makepad/widgets/sheets/themes/ferrofluid/theme.splash
Admin 53e0e85b92 draw and widgets: Slug text everywhere, no blank glyphs, slimmer widgets
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>
2026-10-13 12:26:21 +02:00

198 lines
8.3 KiB
Text

mod.theme = mod.themes.light
// Minimal instrument hardware: a pale matte case, square keycaps with a
// short skirt, one black well, one signal orange. Colour is rationed: the
// keys are neutral, orange marks the one main action, the chosen answer and
// the lit lamp. Every state of a family is spelled out, because the base
// derived its states once, from its own colours.
// The case: a pale warm grey, the plates a step darker.
mod.theme.color_bg_app = #efedea
mod.theme.color_fg_app = #efedea
mod.theme.color_bg_container = #e4e1dc
mod.theme.color_surface_container_lowest = #e4e1dc
// Raised faces: white keycaps, lit from above.
mod.theme.color_outset = #f0f0f0
mod.theme.color_outset_1 = #f5f5f5
mod.theme.color_outset_2 = #ebebeb
mod.theme.color_outset_hover = #f4f4f4
mod.theme.color_outset_1_hover = #f8f8f8
mod.theme.color_outset_2_hover = #efefef
mod.theme.color_outset_down = #e4e3e3
mod.theme.color_outset_1_down = #dedddd
mod.theme.color_outset_2_down = #eaeaea
mod.theme.color_outset_focus = #f0f0f0
mod.theme.color_outset_1_focus = #f5f5f5
mod.theme.color_outset_2_focus = #ebebeb
mod.theme.color_outset_active = #e4e3e3
mod.theme.color_outset_1_active = #dedddd
mod.theme.color_outset_2_active = #eaeaea
mod.theme.color_outset_disabled = #ecebe8
mod.theme.color_outset_1_disabled = #ecebe8
mod.theme.color_outset_2_disabled = #ecebe8
// Wells: white fields, recessed into the case.
mod.theme.color_inset = #fbfaf8
mod.theme.color_inset_1 = #fbfaf8
mod.theme.color_inset_2 = #fbfaf8
mod.theme.color_inset_hover = #ffffff
mod.theme.color_inset_1_hover = #ffffff
mod.theme.color_inset_2_hover = #ffffff
mod.theme.color_inset_focus = #ffffff
mod.theme.color_inset_1_focus = #ffffff
mod.theme.color_inset_2_focus = #ffffff
mod.theme.color_inset_active = #ffffff
mod.theme.color_inset_1_active = #ffffff
mod.theme.color_inset_2_active = #ffffff
mod.theme.color_inset_down = #f4f3f1
mod.theme.color_inset_1_down = #f4f3f1
mod.theme.color_inset_2_down = #f4f3f1
mod.theme.color_inset_drag = #f4f3f1
mod.theme.color_inset_1_drag = #f4f3f1
mod.theme.color_inset_2_drag = #f4f3f1
mod.theme.color_inset_empty = #fbfaf8
mod.theme.color_inset_1_empty = #fbfaf8
mod.theme.color_inset_2_empty = #fbfaf8
mod.theme.color_inset_disabled = #ecebe8
mod.theme.color_inset_1_disabled = #ecebe8
mod.theme.color_inset_2_disabled = #ecebe8
// One grey hairline on every face and well: the lamp-off grey, 3.7 to 1 on
// the case.
mod.theme.color_bevel = #7a7977
mod.theme.color_bevel_hover = #7a7977
mod.theme.color_bevel_focus = #c2410c
mod.theme.color_bevel_down = #7a7977
mod.theme.color_bevel_active = #7a7977
mod.theme.color_bevel_empty = #7a7977
mod.theme.color_bevel_disabled = #b4b2af
mod.theme.color_bevel_inset_1 = #7a7977
mod.theme.color_bevel_inset_2 = #7a7977
mod.theme.color_bevel_outset_1 = #7a7977
mod.theme.color_bevel_outset_2 = #7a7977
mod.theme.beveling = 0.5
// Print ink: near black on the case and the keys.
mod.theme.color_text = #1d1d1d
mod.theme.color_text_hover = #1d1d1d
mod.theme.color_text_focus = #1d1d1d
mod.theme.color_text_active = #1d1d1d
mod.theme.color_text_down = #1d1d1d
mod.theme.color_text_disabled = #a9a7a4
mod.theme.color_text_placeholder = #72716f
mod.theme.color_text_placeholder_hover = #6a6967
mod.theme.color_text_meta = #5c5b59
mod.theme.color_text_val = #1d1d1d
mod.theme.color_text_cursor = #ee5a24
mod.theme.color_cursor = #ee5a24
mod.theme.color_label = #1d1d1d
mod.theme.color_label_hover = #1d1d1d
mod.theme.color_label_focus = #1d1d1d
mod.theme.color_label_active = #1d1d1d
mod.theme.color_label_down = #1d1d1d
mod.theme.color_label_disabled = #a9a7a4
mod.theme.color_label_inner = #1d1d1d
mod.theme.color_label_inner_hover = #111111
mod.theme.color_label_inner_focus = #1d1d1d
mod.theme.color_label_inner_active = #1d1d1d
mod.theme.color_label_inner_down = #1d1d1d
mod.theme.color_label_inner_disabled = #a9a7a4
mod.theme.color_label_outer = #1d1d1d
mod.theme.color_label_outer_hover = #111111
mod.theme.color_label_outer_focus = #1d1d1d
mod.theme.color_label_outer_active = #1d1d1d
mod.theme.color_label_outer_down = #1d1d1d
mod.theme.color_label_outer_disabled = #a9a7a4
mod.theme.color_icon = #1d1d1d
mod.theme.color_icon_hover = #111111
mod.theme.color_icon_focus = #1d1d1d
mod.theme.color_icon_active = #1d1d1d
mod.theme.color_icon_down = #1d1d1d
mod.theme.color_icon_disabled = #a9a7a4
// The accent seed: the primary, secondary and tertiary families are grown
// from `color_ctrl_selected`. A deep signal orange, so the grown roles keep
// their ink; the bright signal orange of keys, fills and lamps is drawn by
// the faces themselves.
mod.theme.color_ctrl_selected = #c2410c
mod.theme.color_focus = #ee5a24
mod.theme.color_ctrl_active = #c2410c
mod.theme.color_val = #ee5a24
mod.theme.color_selection_focus = #ee5a2438
mod.theme.color_bg_highlight_inline = #ee5a2438
mod.theme.color_terminal_bg = #1a1a1a
mod.theme.color_terminal_text = #f0f0f0
// The display's ink is the liquid's black, for the figures and the
// captions on a display alike; and a liquid display shows no unlit
// segment unless a page asks for the film the liquid leaves.
mod.theme.color_screen_ink = #07070b
mod.theme.screen_ghost = 0.0
// Slim metrics: rows of 26 (24 of face and a 2 point skirt), gaps of 8
// between controls, 12 between groups, hairline edges.
mod.theme.space_factor = 6.0
mod.theme.space_1 = 4.0
mod.theme.space_2 = 8.0
mod.theme.space_3 = 12.0
mod.theme.space_4 = 16.0
mod.theme.space_5 = 20.0
mod.theme.space_6 = 24.0
mod.theme.mspace_1 = mod.turtle.Inset{top: 4.0 right: 4.0 bottom: 4.0 left: 4.0}
mod.theme.mspace_h_1 = mod.turtle.Inset{top: 0.0 right: 4.0 bottom: 0.0 left: 4.0}
mod.theme.mspace_v_1 = mod.turtle.Inset{top: 4.0 right: 0.0 bottom: 4.0 left: 0.0}
mod.theme.mspace_2 = mod.turtle.Inset{top: 8.0 right: 8.0 bottom: 8.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: 8.0 right: 0.0 bottom: 8.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 = 32.0
mod.theme.tab_height = 24.0
mod.theme.tab_flat_height = 24.0
mod.theme.data_item_height = 22.0
mod.theme.corner_radius = 2.5
mod.theme.container_corner_radius = 6.0
mod.theme.textselection_corner_radius = 1.0
mod.theme.radius_xs = 1.0
mod.theme.radius_s = 2.0
mod.theme.radius_m = 2.5
mod.theme.radius_l = 6.0
// The base's neutral grotesque, kept whole, at legend sizes: a font size
// draws 1.333 layout points per unit, so 8 is a cap of about 7.4 points,
// 0.29 of a 26 point key (the brief's 0.26 to the handbook's 0.30).
mod.theme.font_size_base = 8.0
// The small heading (a card's title): a cap of about 12 device pixels, a
// step over the 11 of a legend, never the heaviest ink on a panel.
mod.theme.font_size_4 = 8.75
mod.theme.font_size_p = 8.0
mod.theme.type_title_l_size = 11.25
mod.theme.type_title_m_size = 9.75
mod.theme.type_title_s_size = 8.75
mod.theme.type_body_l_size = 8.75
mod.theme.type_body_m_size = 8.0
mod.theme.type_body_s_size = 7.25
mod.theme.type_label_l_size = 8.0
mod.theme.type_label_m_size = 7.25
mod.theme.type_label_s_size = 6.5
mod.theme.font_regular = mod.theme.font_regular{font_size: 8.0}
mod.theme.font_label = mod.theme.font_label{font_size: 8.0}
mod.theme.font_bold = mod.theme.font_bold{font_size: 8.0}
mod.theme.font_italic = mod.theme.font_italic{font_size: 8.0}
mod.theme.font_bold_italic = mod.theme.font_bold_italic{font_size: 8.0}
mod.theme.font_title_l = mod.theme.font_bold{font_size: 11.25 line_spacing: 1.2}
mod.theme.font_title_m = mod.theme.font_bold{font_size: 9.75 line_spacing: 1.2}
mod.theme.font_title_s = mod.theme.font_bold{font_size: 8.75 line_spacing: 1.2}
mod.theme.font_body_l = mod.theme.font_regular{font_size: 8.75 line_spacing: 1.35}
mod.theme.font_body_m = mod.theme.font_regular{font_size: 8.0 line_spacing: 1.35}
mod.theme.font_body_s = mod.theme.font_regular{font_size: 7.25 line_spacing: 1.35}
mod.theme.font_label_l = mod.theme.font_bold{font_size: 8.0 line_spacing: 1.2}
mod.theme.font_label_m = mod.theme.font_bold{font_size: 7.25 line_spacing: 1.2}
mod.theme.font_label_s = mod.theme.font_bold{font_size: 6.5 line_spacing: 1.2}
true