All outline text draws with Slug curves on every platform (SDF/MSDF stays selectable per size); a frame never presents a blank glyph and retained draw lists keep theirs. One coverage model for vector feathering, widget families split out of the core crate, fewer steady-state allocations, video keeps its aspect (Contain/Cover), render and SSAO pass unification. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
229 lines
9.4 KiB
Text
229 lines
9.4 KiB
Text
mod.theme = mod.themes.light
|
|
|
|
// Worn safety-yellow painted steel. Every control is black rubber or dark
|
|
// gunmetal standing on the paint with a warm shadow under it; knobs are spun
|
|
// chrome in rubber skirts; wells are charcoal cut into the plate. Colour
|
|
// lives in one lit blue: a lamp, a value line, a lit legend, the focus mouth.
|
|
// Every state of a family is spelled out, because the base derived its
|
|
// states once, from its own colours.
|
|
|
|
// The paint.
|
|
mod.theme.color_bg_app = #dcaa38
|
|
mod.theme.color_fg_app = #dcaa38
|
|
mod.theme.color_bg_container = #dcaa38
|
|
mod.theme.color_surface_container_lowest = #d4a232
|
|
|
|
// Raised faces the sheet does not redraw: dark gunmetal caps.
|
|
mod.theme.color_outset = #3c3c3d
|
|
mod.theme.color_outset_1 = #474748
|
|
mod.theme.color_outset_2 = #2a2a2b
|
|
mod.theme.color_outset_hover = #444445
|
|
mod.theme.color_outset_1_hover = #505051
|
|
mod.theme.color_outset_2_hover = #303031
|
|
mod.theme.color_outset_down = #242425
|
|
mod.theme.color_outset_1_down = #242425
|
|
mod.theme.color_outset_2_down = #242425
|
|
mod.theme.color_outset_focus = #3c3c3d
|
|
mod.theme.color_outset_1_focus = #474748
|
|
mod.theme.color_outset_2_focus = #2a2a2b
|
|
mod.theme.color_outset_active = #242425
|
|
mod.theme.color_outset_1_active = #242425
|
|
mod.theme.color_outset_2_active = #242425
|
|
mod.theme.color_outset_disabled = #4a4843
|
|
mod.theme.color_outset_1_disabled = #4a4843
|
|
mod.theme.color_outset_2_disabled = #4a4843
|
|
|
|
// Wells: charcoal cut into the paint.
|
|
mod.theme.color_inset = #252527
|
|
mod.theme.color_inset_1 = #252527
|
|
mod.theme.color_inset_2 = #252527
|
|
mod.theme.color_inset_hover = #2b2b2d
|
|
mod.theme.color_inset_1_hover = #2b2b2d
|
|
mod.theme.color_inset_2_hover = #2b2b2d
|
|
mod.theme.color_inset_focus = #29292b
|
|
mod.theme.color_inset_1_focus = #29292b
|
|
mod.theme.color_inset_2_focus = #29292b
|
|
mod.theme.color_inset_active = #252527
|
|
mod.theme.color_inset_1_active = #252527
|
|
mod.theme.color_inset_2_active = #252527
|
|
mod.theme.color_inset_down = #1f1f21
|
|
mod.theme.color_inset_1_down = #1f1f21
|
|
mod.theme.color_inset_2_down = #1f1f21
|
|
mod.theme.color_inset_drag = #1f1f21
|
|
mod.theme.color_inset_1_drag = #1f1f21
|
|
mod.theme.color_inset_2_drag = #1f1f21
|
|
mod.theme.color_inset_empty = #252527
|
|
mod.theme.color_inset_1_empty = #252527
|
|
mod.theme.color_inset_2_empty = #252527
|
|
mod.theme.color_inset_disabled = #3a3833
|
|
mod.theme.color_inset_1_disabled = #3a3833
|
|
mod.theme.color_inset_2_disabled = #3a3833
|
|
|
|
// The edge a stock face still draws: black rubber.
|
|
mod.theme.color_bevel = #181715
|
|
mod.theme.color_bevel_hover = #181715
|
|
mod.theme.color_bevel_focus = #3a9ad8
|
|
mod.theme.color_bevel_down = #0e0d0c
|
|
mod.theme.color_bevel_active = #181715
|
|
mod.theme.color_bevel_empty = #181715
|
|
mod.theme.color_bevel_disabled = #5a4f33
|
|
mod.theme.color_bevel_inset_1 = #181715
|
|
mod.theme.color_bevel_inset_2 = #6a5424
|
|
mod.theme.color_bevel_outset_1 = #5f5e5a
|
|
mod.theme.color_bevel_outset_2 = #181715
|
|
mod.theme.beveling = 0.5
|
|
|
|
// Ink. On the paint a warm near-black (8:1); on the caps and in the wells
|
|
// a light grey the faces set on their own templates.
|
|
mod.theme.color_text = #1c1a14
|
|
mod.theme.color_text_hover = #0e0d0a
|
|
mod.theme.color_text_focus = #0e0d0a
|
|
mod.theme.color_text_active = #0e0d0a
|
|
mod.theme.color_text_down = #0e0d0a
|
|
mod.theme.color_text_disabled = #7a6630
|
|
mod.theme.color_text_placeholder = #5a4a26
|
|
mod.theme.color_text_placeholder_hover = #4a3c1e
|
|
mod.theme.color_text_val = #1c1a14
|
|
mod.theme.color_text_meta = #3a3020
|
|
mod.theme.color_text_cursor = #1c1a14
|
|
mod.theme.color_cursor = #1c1a14
|
|
mod.theme.color_label = #1c1a14
|
|
mod.theme.color_label_hover = #0e0d0a
|
|
mod.theme.color_label_focus = #1c1a14
|
|
mod.theme.color_label_active = #1c1a14
|
|
mod.theme.color_label_down = #0e0d0a
|
|
mod.theme.color_label_disabled = #7a6630
|
|
mod.theme.color_label_inner = #e4e2dc
|
|
mod.theme.color_label_inner_hover = #f4f2ec
|
|
mod.theme.color_label_inner_focus = #e4e2dc
|
|
mod.theme.color_label_inner_down = #c8c6c0
|
|
mod.theme.color_label_inner_drag = #c8c6c0
|
|
mod.theme.color_label_inner_active = #e4e2dc
|
|
mod.theme.color_label_inner_inactive = #e4e2dc
|
|
mod.theme.color_label_inner_disabled = #8e8b82
|
|
mod.theme.color_label_outer = #1c1a14
|
|
mod.theme.color_label_outer_off = #1c1a14
|
|
mod.theme.color_label_outer_hover = #0e0d0a
|
|
mod.theme.color_label_outer_down = #0e0d0a
|
|
mod.theme.color_label_outer_drag = #0e0d0a
|
|
mod.theme.color_label_outer_focus = #0e0d0a
|
|
mod.theme.color_label_outer_active = #0e0d0a
|
|
mod.theme.color_label_outer_active_focus = #0e0d0a
|
|
mod.theme.color_label_outer_disabled = #7a6630
|
|
mod.theme.color_icon = #e4e2dc
|
|
mod.theme.color_icon_hover = #f4f2ec
|
|
mod.theme.color_icon_focus = #e4e2dc
|
|
mod.theme.color_icon_active = #e4e2dc
|
|
mod.theme.color_icon_down = #c8c6c0
|
|
mod.theme.color_icon_disabled = #8e8b82
|
|
|
|
// The accent seed: the primary, secondary and tertiary families are grown
|
|
// from it. A deep blue, so the grown roles keep their contrast; the lit sky
|
|
// blue of lamps and values is drawn by the faces themselves.
|
|
mod.theme.color_ctrl_selected = #1d5f99
|
|
mod.theme.color_focus = #3a9ad8
|
|
mod.theme.color_ctrl_active = #1d5f99
|
|
mod.theme.color_val = #3a9ad8
|
|
mod.theme.color_val_hover = #4aa8e4
|
|
mod.theme.color_val_focus = #4aa8e4
|
|
mod.theme.color_val_drag = #56b8f0
|
|
mod.theme.color_mark = #e4e2dc
|
|
mod.theme.color_mark_active = #e4e2dc
|
|
mod.theme.color_selection_hover = #3a9ad84d
|
|
mod.theme.color_selection_focus = #3a9ad866
|
|
mod.theme.color_selection_down = #3a9ad866
|
|
mod.theme.color_bg_highlight_inline = #3a9ad84d
|
|
mod.theme.color_handle = #3c3c3d
|
|
mod.theme.color_handle_hover = #474748
|
|
mod.theme.color_handle_1 = #474748
|
|
mod.theme.color_handle_2 = #2a2a2b
|
|
|
|
mod.theme.color_terminal_bg = #252527
|
|
mod.theme.color_terminal_text = #e4e2dc
|
|
|
|
// The instruments: lit blue digits in a charcoal well, dark lamp lenses.
|
|
mod.theme.color_screen = #1e1e20
|
|
mod.theme.color_screen_ink = #56b8f0
|
|
mod.theme.screen_ghost = 0.1
|
|
mod.theme.color_lamp_off = #2a2a2b
|
|
mod.theme.color_lamp_plain = #e8e6e0
|
|
mod.theme.lamp_halo = 0.2
|
|
|
|
// The surface ladder in the paint, with ink that holds on the deepest rung.
|
|
mod.theme.color_surface = #dcaa38
|
|
mod.theme.color_surface_dim = #cf9f33
|
|
mod.theme.color_surface_bright = #e6b942
|
|
mod.theme.color_surface_container_low = #d8a636
|
|
mod.theme.color_surface_container = #d4a234
|
|
mod.theme.color_surface_container_high = #cc9c31
|
|
mod.theme.color_surface_container_highest = #c3952f
|
|
mod.theme.color_on_surface = #14120c
|
|
mod.theme.color_on_surface_variant = #2e2616
|
|
mod.theme.color_outline = #4a3c1c
|
|
mod.theme.color_outline_variant = #a8842a
|
|
mod.theme.color_inverse_surface = #252527
|
|
mod.theme.color_inverse_on_surface = #e8c860
|
|
|
|
// Slim: a 26 point control row, 6 point gaps inside a group, true radii of
|
|
// 2 points on controls and 4 on panels.
|
|
mod.theme.space_factor = 6.0
|
|
mod.theme.space_1 = 3.0
|
|
mod.theme.space_2 = 6.0
|
|
mod.theme.space_3 = 9.0
|
|
mod.theme.space_4 = 12.0
|
|
mod.theme.space_5 = 18.0
|
|
mod.theme.space_6 = 24.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: 6.0 bottom: 6.0 left: 6.0}
|
|
mod.theme.mspace_h_2 = mod.turtle.Inset{top: 0.0 right: 6.0 bottom: 0.0 left: 6.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: 12.0 right: 12.0 bottom: 12.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: 12.0 right: 0.0 bottom: 12.0 left: 0.0}
|
|
// The rungs the base froze at its own space factor, restated at ours.
|
|
mod.theme.size_control_s = 22.0
|
|
mod.theme.size_control_m = 26.0
|
|
mod.theme.size_control_l = 30.0
|
|
mod.theme.tab_height = 26.0
|
|
mod.theme.tab_flat_height = 24.0
|
|
mod.theme.data_item_height = 22.0
|
|
mod.theme.corner_radius = 2.0
|
|
mod.theme.container_corner_radius = 4.0
|
|
mod.theme.textselection_corner_radius = 1.0
|
|
mod.theme.radius_xs = 1.5
|
|
mod.theme.radius_s = 2.0
|
|
mod.theme.radius_m = 3.0
|
|
mod.theme.radius_l = 4.0
|
|
|
|
// The base grotesque. A font size draws 1.333 layout points per unit, so
|
|
// 8.25 is the 11 point legend of a 26 point row (cap 0.3 of the row).
|
|
mod.theme.font_size_base = 8.25
|
|
mod.theme.font_size_p = 8.25
|
|
mod.theme.font_size_code = 8.25
|
|
mod.theme.font_regular = mod.theme.font_regular{font_size: 8.25}
|
|
mod.theme.font_label = mod.theme.font_label{font_size: 8.25}
|
|
mod.theme.font_bold = mod.theme.font_bold{font_size: 8.25}
|
|
mod.theme.font_italic = mod.theme.font_italic{font_size: 8.25}
|
|
mod.theme.font_bold_italic = mod.theme.font_bold_italic{font_size: 8.25}
|
|
mod.theme.font_code = mod.theme.font_code{font_size: 8.25}
|
|
mod.theme.type_title_l_size = 12.0
|
|
mod.theme.type_title_m_size = 10.5
|
|
mod.theme.type_title_s_size = 9.0
|
|
mod.theme.font_title_l = mod.theme.font_bold{font_size: 12.0 line_spacing: 1.2}
|
|
mod.theme.font_title_m = mod.theme.font_bold{font_size: 10.5 line_spacing: 1.2}
|
|
mod.theme.font_title_s = mod.theme.font_bold{font_size: 9.0 line_spacing: 1.2}
|
|
mod.theme.type_body_l_size = 9.0
|
|
mod.theme.type_body_m_size = 8.25
|
|
mod.theme.type_body_s_size = 7.5
|
|
mod.theme.type_label_l_size = 8.25
|
|
mod.theme.type_label_m_size = 7.5
|
|
mod.theme.type_label_s_size = 6.75
|
|
mod.theme.font_body_l = mod.theme.font_regular{font_size: 9.0 line_spacing: 1.35}
|
|
mod.theme.font_body_m = mod.theme.font_regular{font_size: 8.25 line_spacing: 1.35}
|
|
mod.theme.font_body_s = mod.theme.font_regular{font_size: 7.5 line_spacing: 1.35}
|
|
mod.theme.font_label_l = mod.theme.font_bold{font_size: 8.25 line_spacing: 1.2}
|
|
mod.theme.font_label_m = mod.theme.font_bold{font_size: 7.5 line_spacing: 1.2}
|
|
mod.theme.font_label_s = mod.theme.font_bold{font_size: 6.75 line_spacing: 1.2}
|
|
true
|