290 lines
12 KiB
Text
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
|