The bundled-theme list and the Tier-0 i18n namespace list were each hand-maintained in 3+ places that had drifted: the testmode harness loaded 8 themes (catppuccin silently unvalidated) while the app and contrast gate loaded 10, and the i18n gate checked 4 of the shipped namespaces. Export one canonical const each — kBundledThemePaths and kTier0Namespaces — and have the app, the testmode harness, and the a11y gates iterate them. Drift-proof meta-assertions: - contrast gate fails if any theme YAML on disk is absent from kBundledThemePaths (so a theme can't sit unvalidated). - i18n gate derives its subjects from assets/i18n/en_us/ at test time and asserts en/nl key parity for every shipped catalog (26, was 4), plus that every kTier0Namespaces entry has a shipped catalog. Surfaced summer-night.yaml: a legacy-ported palette on disk, unbundled and never contrast-checked. Per the maintainer's call, ship it: flesh the palette to full token + syntax coverage (honouring the v1.2 colours, clide derivation pattern for the new keys) and add a structurally identical summer-night-hc sibling that clears the strict extended gate. Both pass. No licenses.yaml change: summer-night is clide's own (ported from legacy clide v1.2 under legacy/, MIT); the only third-party palette, Catppuccin, is already acknowledged; no fonts added. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
50 lines
1.3 KiB
YAML
50 lines
1.3 KiB
YAML
# Summer Night — cyan/teal/pink on blue-grey (ported from legacy clide v1.2.0).
|
|
#
|
|
# The 12 original palette colors are kept as the v1.2 designer chose them. The
|
|
# expanded keys (surfaceHi, border/borderHi, textDim/textMute, accentSoft) and
|
|
# the syntax set follow the clide derivation pattern, re-tinted to this theme's
|
|
# identity. Base honours the design and clears the canonical contrast gate;
|
|
# the high-contrast sibling (summer-night-hc) clears the strict extended gate.
|
|
|
|
name: summer-night
|
|
display_name: Summer Night
|
|
dark: true
|
|
|
|
palette:
|
|
# Accents (legacy: primary cyan / secondary teal / accent pink)
|
|
primary: "#00a3d2"
|
|
secondary: "#00a9b9"
|
|
accent: "#fa5f8b"
|
|
|
|
# Backgrounds
|
|
background: "#21262f"
|
|
surface: "#393e48"
|
|
panel: "#292e38"
|
|
|
|
# Text. `muted` is WCAG-AA-calibrated against `panel`.
|
|
foreground: "#e2e8f5"
|
|
muted: "#a6adbb"
|
|
|
|
# Status
|
|
success: "#00ab9a"
|
|
warning: "#d08447"
|
|
error: "#f06c6f"
|
|
info: "#00a3d2"
|
|
|
|
# Expanded keys (clide pattern, summer-night tint)
|
|
surfaceHi: "#434a57"
|
|
border: "#3a414d"
|
|
borderHi: "#4a5260"
|
|
textDim: "#9aa2b2"
|
|
textMute: "#727a8a"
|
|
accentSoft: "#21fa5f8b"
|
|
|
|
syntax:
|
|
keyword: "#fa8fb0" # pink
|
|
type: "#5ec8e6" # cyan
|
|
string: "#7fd3a8" # green
|
|
number: "#e0b070" # amber
|
|
comment: "#727a8a" # muted
|
|
method: "#6fc6e0" # teal-cyan
|
|
punct: "#9aa2b2" # dim
|