makepad/widgets/sheets/themes/terminal/theme.splash

290 lines
12 KiB
Text

mod.theme = mod.themes.dark
// A text interface: one face, one ink, drawn in character cells.
// Phosphor green on a near-black screen. Every control is a whole number of
// monospace cells one row tall, framed by one-device-pixel box lines with
// square corners. State is inverse video -- a lit block, ground-coloured
// letters -- never a bevel or a gradient, and the only light is the ink's
// own faint halo, held under the family's ceiling.
//
// The ladder, darkest first: screen #020401, ground #040603, panel #0e1e09,
// well #0f2403, disabled #1d4611, dim #2e5d1d, frame #43862b, line #60c83e,
// text #6ee747, filled face #74fa4b, accent #98ff20, hot core #b7f588.
mod.theme.color_bg_app = #040603
mod.theme.color_fg_app = #0e1e09
mod.theme.color_bg_container = #0e1e09
mod.theme.color_surface_container_lowest = #020401
mod.theme.color_bg_even = #040603
mod.theme.color_bg_odd = #081005
// Faces: a text interface has none of its own, so a face is the ground it
// stands on; the filled faces are written per widget.
mod.theme.color_outset = #040603
mod.theme.color_outset_1 = #040603
mod.theme.color_outset_2 = #040603
mod.theme.color_outset_hover = #0e1e09
mod.theme.color_outset_1_hover = #0e1e09
mod.theme.color_outset_2_hover = #0e1e09
mod.theme.color_outset_down = #98ff20
mod.theme.color_outset_1_down = #98ff20
mod.theme.color_outset_2_down = #98ff20
mod.theme.color_outset_focus = #040603
mod.theme.color_outset_1_focus = #040603
mod.theme.color_outset_2_focus = #040603
mod.theme.color_outset_active = #74fa4b
mod.theme.color_outset_1_active = #74fa4b
mod.theme.color_outset_2_active = #74fa4b
mod.theme.color_outset_drag = #0e1e09
mod.theme.color_outset_1_drag = #0e1e09
mod.theme.color_outset_2_drag = #0e1e09
mod.theme.color_outset_disabled = #040603
mod.theme.color_outset_1_disabled = #040603
mod.theme.color_outset_2_disabled = #040603
// Wells: fields, tracks, boxes. One flat green-black, no inner shadow.
mod.theme.color_inset = #0f2403
mod.theme.color_inset_1 = #0f2403
mod.theme.color_inset_2 = #0f2403
mod.theme.color_inset_hover = #0f2403
mod.theme.color_inset_1_hover = #0f2403
mod.theme.color_inset_2_hover = #0f2403
mod.theme.color_inset_focus = #0f2403
mod.theme.color_inset_1_focus = #0f2403
mod.theme.color_inset_2_focus = #0f2403
mod.theme.color_inset_active = #0f2403
mod.theme.color_inset_1_active = #0f2403
mod.theme.color_inset_2_active = #0f2403
mod.theme.color_inset_down = #0f2403
mod.theme.color_inset_1_down = #0f2403
mod.theme.color_inset_2_down = #0f2403
mod.theme.color_inset_drag = #0f2403
mod.theme.color_inset_1_drag = #0f2403
mod.theme.color_inset_2_drag = #0f2403
mod.theme.color_inset_empty = #0f2403
mod.theme.color_inset_1_empty = #0f2403
mod.theme.color_inset_2_empty = #0f2403
mod.theme.color_inset_disabled = #040603
mod.theme.color_inset_1_disabled = #040603
mod.theme.color_inset_2_disabled = #040603
// Box lines. One ink for every edge, the frame green; the accent under the
// pointer and on focus; the disabled green when off.
mod.theme.color_bevel = #43862b
mod.theme.color_bevel_hover = #98ff20
mod.theme.color_bevel_focus = #98ff20
mod.theme.color_bevel_active = #60c83e
mod.theme.color_bevel_empty = #43862b
mod.theme.color_bevel_down = #98ff20
mod.theme.color_bevel_drag = #98ff20
mod.theme.color_bevel_disabled = #1d4611
mod.theme.color_bevel_inset_1 = #43862b
mod.theme.color_bevel_inset_2 = #43862b
mod.theme.color_bevel_outset_1 = #60c83e
mod.theme.color_bevel_outset_2 = #60c83e
mod.theme.color_bevel_inset_1_hover = #98ff20
mod.theme.color_bevel_inset_2_hover = #98ff20
mod.theme.color_bevel_outset_1_hover = #98ff20
mod.theme.color_bevel_outset_2_hover = #98ff20
mod.theme.color_bevel_inset_1_focus = #98ff20
mod.theme.color_bevel_inset_2_focus = #98ff20
mod.theme.color_bevel_outset_1_focus = #98ff20
mod.theme.color_bevel_outset_2_focus = #98ff20
mod.theme.color_bevel_inset_1_disabled = #1d4611
mod.theme.color_bevel_inset_2_disabled = #1d4611
mod.theme.color_bevel_outset_1_disabled = #1d4611
mod.theme.color_bevel_outset_2_disabled = #1d4611
// One device pixel on a stock shader, which strokes twice what it is given.
mod.theme.beveling = 0.34
// Inks. Body text the phosphor green; the accent is the hot state; letters
// on a lit block take the ground; the disabled green is a third of the lit.
mod.theme.color_text = #6ee747
mod.theme.color_text_hover = #98ff20
mod.theme.color_text_focus = #98ff20
mod.theme.color_text_active = #98ff20
mod.theme.color_text_down = #98ff20
mod.theme.color_text_disabled = #1d4611
mod.theme.color_text_val = #98ff20
mod.theme.color_text_hl = #b7f588
mod.theme.color_text_meta = #4f9a33
mod.theme.color_text_placeholder = #43862b
mod.theme.color_text_placeholder_hover = #4f9a33
mod.theme.color_text_on_accent = #040603
mod.theme.color_label = #6ee747
mod.theme.color_label_hover = #98ff20
mod.theme.color_label_focus = #98ff20
mod.theme.color_label_active = #98ff20
mod.theme.color_label_down = #98ff20
mod.theme.color_label_disabled = #1d4611
mod.theme.color_label_inner = #6ee747
mod.theme.color_label_inner_hover = #98ff20
mod.theme.color_label_inner_focus = #98ff20
mod.theme.color_label_inner_active = #040603
mod.theme.color_label_inner_down = #98ff20
mod.theme.color_label_inner_inactive = #4f9a33
mod.theme.color_label_inner_disabled = #1d4611
mod.theme.color_label_outer = #6ee747
mod.theme.color_label_outer_off = #4f9a33
mod.theme.color_label_outer_hover = #98ff20
mod.theme.color_label_outer_focus = #98ff20
mod.theme.color_label_outer_active = #6ee747
mod.theme.color_label_outer_down = #98ff20
mod.theme.color_label_outer_drag = #98ff20
mod.theme.color_label_outer_disabled = #1d4611
mod.theme.color_icon = #6ee747
mod.theme.color_icon_active = #98ff20
mod.theme.color_icon_disabled = #1d4611
// Marks, values, handles: the lit ink.
mod.theme.color_mark = #98ff20
mod.theme.color_mark_active = #98ff20
mod.theme.color_mark_active_hover = #b7f588
mod.theme.color_mark_hover = #98ff20
mod.theme.color_mark_focus = #98ff20
mod.theme.color_mark_down = #b7f588
mod.theme.color_mark_disabled = #1d4611
mod.theme.color_val = #98ff20
mod.theme.color_val_hover = #98ff20
mod.theme.color_val_focus = #98ff20
mod.theme.color_val_drag = #b7f588
mod.theme.color_val_disabled = #1d4611
mod.theme.color_handle = #98ff20
mod.theme.color_handle_hover = #b7f588
mod.theme.color_handle_focus = #98ff20
mod.theme.color_handle_drag = #b7f588
mod.theme.color_handle_disabled = #1d4611
// Selection is inverse video; the caret a block of the accent.
mod.theme.color_selection = #00000000
mod.theme.color_selection_hover = #2e5d1d
mod.theme.color_selection_down = #2e5d1d
mod.theme.color_selection_focus = #2e5d1d
mod.theme.color_bg_highlight = #1d4611
mod.theme.color_bg_highlight_inline = #1d4611
mod.theme.color_highlight = #1d4611
mod.theme.color_cursor = #98ff20
mod.theme.color_cursor_focus = #98ff20
mod.theme.color_cursor_empty = #98ff20
mod.theme.color_cursor_border = #98ff20
mod.theme.color_text_cursor = #98ff20
// The accent seed: the primary, secondary and tertiary families are grown
// from `color_ctrl_selected`.
mod.theme.color_ctrl_selected = #74fa4b
mod.theme.color_focus = #98ff20
mod.theme.color_ctrl_active = #98ff20
// The roles the page captions and list rows are drawn in, named here so
// the derived surfaces keep this sheet's inks.
mod.theme.color_on_surface = #6ee747
mod.theme.color_on_surface_variant = #60c83e
mod.theme.color_outline = #43862b
mod.theme.color_outline_variant = #2e5d1d
mod.theme.color_terminal_bg = #040603
mod.theme.color_terminal_text = #6ee747
mod.theme.color_syntax_bg = #020401
// Monospace everywhere, letter spacing zero: the grid is the design. Every
// role takes the monospace family the library already carries for code;
// it has one weight, so a heading is set apart by its ink, not by bold.
use mod.res.*
use mod.text.*
mod.theme.font_size_base = 9.5
mod.theme.font_size_p = 9.5
mod.theme.font_size_code = 9.5
mod.theme.font_size_contrast = 2.0
mod.theme.font_regular = mod.theme.font_regular{font_family: mod.theme.font_regular.font_family{ibm_plex_text := mod.theme.font_code.font_family.liberation_mono}}
mod.theme.font_label = mod.theme.font_label{font_family: mod.theme.font_label.font_family{ibm_plex_text := mod.theme.font_code.font_family.liberation_mono}}
mod.theme.font_bold = mod.theme.font_bold{font_family: mod.theme.font_bold.font_family{ibm_plex_semibold := mod.theme.font_code.font_family.liberation_mono}}
mod.theme.font_italic = mod.theme.font_italic{font_family: mod.theme.font_italic.font_family{ibm_plex_italic := mod.theme.font_code.font_family.liberation_mono}}
mod.theme.font_bold_italic = mod.theme.font_bold_italic{font_family: mod.theme.font_bold_italic.font_family{ibm_plex_bold_italic := mod.theme.font_code.font_family.liberation_mono}}
mod.theme.font_code = mod.theme.font_code{font_size: 9.5}
// The type scale the base theme froze from its own face and sizes, stated
// again on the monospace face: base 9.5, so a cell is 7.5 points and the
// cap about 8.6, the brief's type for a 24 point row.
mod.theme.type_title_l_size = 12.9
mod.theme.type_title_m_size = 11.2
mod.theme.type_title_s_size = 10.3
mod.theme.type_body_l_size = 10.1
mod.theme.type_body_m_size = 9.5
mod.theme.type_body_s_size = 8.8
mod.theme.type_label_l_size = 9.5
mod.theme.type_label_m_size = 8.8
mod.theme.type_label_s_size = 8.1
mod.theme.font_size_1 = 23.2
mod.theme.font_size_2 = 16.3
mod.theme.font_size_3 = 12.9
mod.theme.font_size_4 = 11.2
mod.theme.font_size_5 = 10.6
mod.theme.font_size_6 = 10.1
mod.theme.font_title_l = mod.theme.font_bold{font_size: 12.9 line_spacing: 1.2}
mod.theme.font_title_m = mod.theme.font_bold{font_size: 11.2 line_spacing: 1.2}
mod.theme.font_title_s = mod.theme.font_bold{font_size: 10.3 line_spacing: 1.2}
mod.theme.font_body_l = mod.theme.font_regular{font_size: 10.1 line_spacing: 1.35}
mod.theme.font_body_m = mod.theme.font_regular{font_size: 9.5 line_spacing: 1.35}
mod.theme.font_body_s = mod.theme.font_regular{font_size: 8.8 line_spacing: 1.35}
mod.theme.font_label_l = mod.theme.font_bold{font_size: 9.5 line_spacing: 1.2}
mod.theme.font_label_m = mod.theme.font_bold{font_size: 8.8 line_spacing: 1.2}
mod.theme.font_label_s = mod.theme.font_bold{font_size: 8.1 line_spacing: 1.2}
// Metrics. One cell is 7.5 points; a row is 24.
// A gap is one cell across and a quarter row down.
mod.theme.space_factor = 6.0
mod.theme.space_1 = 3.0
mod.theme.space_2 = 8.0
mod.theme.space_3 = 12.0
mod.theme.space_4 = 16.0
mod.theme.space_5 = 24.0
mod.theme.space_6 = 32.0
mod.theme.mspace_1 = mod.turtle.Inset{top: 3.0 right: 3.0 bottom: 3.0 left: 3.0}
mod.theme.mspace_h_1 = mod.turtle.Inset{top: 0.0 right: 3.0 bottom: 0.0 left: 3.0}
mod.theme.mspace_v_1 = mod.turtle.Inset{top: 3.0 right: 0.0 bottom: 3.0 left: 0.0}
mod.theme.mspace_2 = mod.turtle.Inset{top: 6.0 right: 8.0 bottom: 6.0 left: 8.0}
mod.theme.mspace_h_2 = mod.turtle.Inset{top: 0.0 right: 8.0 bottom: 0.0 left: 8.0}
mod.theme.mspace_v_2 = mod.turtle.Inset{top: 6.0 right: 0.0 bottom: 6.0 left: 0.0}
mod.theme.mspace_3 = mod.turtle.Inset{top: 10.0 right: 12.0 bottom: 10.0 left: 12.0}
mod.theme.mspace_h_3 = mod.turtle.Inset{top: 0.0 right: 12.0 bottom: 0.0 left: 12.0}
mod.theme.mspace_v_3 = mod.turtle.Inset{top: 10.0 right: 0.0 bottom: 10.0 left: 0.0}
mod.theme.size_control_s = 20.0
mod.theme.size_control_m = 24.0
mod.theme.size_control_l = 28.0
mod.theme.data_item_height = 24.0
mod.theme.tab_height = 24.0
mod.theme.tab_flat_height = 22.0
mod.theme.splitter_min_horizontal = 24.0
mod.theme.splitter_max_horizontal = 29.0
mod.theme.size_border = 0.67
mod.theme.size_divider = 0.67
mod.theme.size_focus_ring = 0.67
// Square corners everywhere, the full radius included: the family's only
// curve is the knob's drawn ring.
mod.theme.corner_radius = 0.0
mod.theme.container_corner_radius = 0.0
mod.theme.textselection_corner_radius = 0.0
mod.theme.radius_xs = 0.0
mod.theme.radius_s = 0.0
mod.theme.radius_m = 0.0
mod.theme.radius_l = 0.0
mod.theme.radius_xl = 0.0
mod.theme.radius_full = 0.0
// No soft shadows in this family.
mod.theme.elevation_1_radius = 0.0
mod.theme.elevation_1_offset_y = 0.0
mod.theme.elevation_2_radius = 0.0
mod.theme.elevation_2_offset_y = 0.0
mod.theme.elevation_3_radius = 0.0
mod.theme.elevation_3_offset_y = 0.0
mod.theme.color_elevation_1 = #00000000
mod.theme.color_elevation_2 = #00000000
mod.theme.color_elevation_3 = #00000000
// Transitions are instant; the afterglow of 80 ms is the only fade.
mod.theme.motion_short_1 = 0.0
mod.theme.motion_short_2 = 0.08
mod.theme.motion_short_3 = 0.08
mod.theme.motion_short_4 = 0.08
true