# client/scripts/theme/theme_keys.gd class_name ThemeKeys extends RefCounted ## Type-variation names for game_theme.tres. Scripts set `theme_type_variation` ## to one of these so a typo is a compile-time symbol error, not a silent miss. ## §2: presentation. const PRIMARY_CTA := &"PrimaryCTA" const TAB := &"Tab" const TAB_ACTIVE := &"TabActive" const CHIP := &"Chip" const DOCK_BUTTON := &"DockButton" const PARCHMENT_BUTTON := &"ParchmentButton" const ITEM_TILE := &"ItemTile" const ITEM_TILE_EMPTY := &"ItemTileEmpty" const PARCHMENT_CARD := &"ParchmentCard" const PARCHMENT_INSET := &"ParchmentInset" const DARK_PANEL := &"DarkPanel" const SELECT_CARD := &"SelectCard" # race/calling card: a Button whose `pressed` is CHOSEN const SKILL_CHIP := &"SkillChip" # toggle: unpicked / picked / granted-so-inert const CHOSEN_TAG := &"ChosenTag" # the little crimson "CHOSEN" flag const PRIMARY_TAG := &"PrimaryTag" # the little gold "PRIMARY" flag const PRIMARY_CARD := &"PrimaryCard" # the ability card ringed as the calling's primary ## Font roles (Label type-variations carrying a font, not a stylebox). Kept ## separate from ALL below, which is stylebox variations + their base type only. const HEADING := &"Heading" const ACCENT := &"Accent" const MONO := &"Mono" const TITLE_LOGO := &"TitleLogo" const TITLE_KICKER := &"TitleKicker" const SECTION_LABEL := &"SectionLabel" ## Every FONT role + the base Control type it decorates. Deliberately NOT folded ## into ALL — ALL's "stylebox variations only" contract is relied on elsewhere ## (test_every_variation_resolves, and the styleboxes the screens set). Kept as a ## second enumerable set so a guard that means "every variation the builder ## touches" can iterate BOTH and never silently cover only half of them: the ## drift guard used to iterate ALL alone, so a font, a font size or a font colour ## could change in the builder and the committed .tres stay stale, suite green. const FONT_ROLES := { HEADING: "Label", ACCENT: "Label", MONO: "Label", TITLE_LOGO: "Label", TITLE_KICKER: "Label", SECTION_LABEL: "Label", } ## Every variation name + the base Control type it decorates. The builder and the ## test both iterate this so they can never drift apart. const ALL := { PRIMARY_CTA: "Button", TAB: "Button", TAB_ACTIVE: "Button", CHIP: "Button", DOCK_BUTTON: "Button", PARCHMENT_BUTTON: "Button", ITEM_TILE: "PanelContainer", ITEM_TILE_EMPTY: "PanelContainer", PARCHMENT_CARD: "PanelContainer", PARCHMENT_INSET: "PanelContainer", DARK_PANEL: "PanelContainer", SELECT_CARD: "Button", SKILL_CHIP: "Button", CHOSEN_TAG: "Label", PRIMARY_TAG: "Label", PRIMARY_CARD: "PanelContainer", }