diff --git a/spacecraft-standard-constitution.skill b/spacecraft-standard-constitution.skill index e9c53e0..2c8dd2f 100644 Binary files a/spacecraft-standard-constitution.skill and b/spacecraft-standard-constitution.skill differ diff --git a/spacecraft-standard-constitution.zip b/spacecraft-standard-constitution.zip index 9452771..487c7d2 100644 Binary files a/spacecraft-standard-constitution.zip and b/spacecraft-standard-constitution.zip differ diff --git a/spacecraft-standard-constitution/SKILL.md b/spacecraft-standard-constitution/SKILL.md index d73638a..212d874 100644 --- a/spacecraft-standard-constitution/SKILL.md +++ b/spacecraft-standard-constitution/SKILL.md @@ -8,7 +8,7 @@ description: > Spacecraft Software-umbrella project — even if the user doesn't explicitly mention the Standard. If the user mentions "Spacecraft Software", a Spacecraft Software subproject name, or asks you to work on anything in the Spacecraft Software ecosystem, consult this skill immediately. It encodes - The Steelbore Standard v1.38 (§4.3 LICENSE + LICENSES symlink; §11 palette family; §18 accessibility; §17 progress reporting; §3.2 compiler flags; concurrency; §3.3 security-by-design; §8 Texinfo; §7 Shell Environment) so + The Steelbore Standard v1.39 (§11 palettes + §11.5 fidelity; §4.3 LICENSE symlink; §11 palette family; §18 accessibility; §17 progress reporting; §3.2 compiler flags; concurrency; §3.3 security-by-design; §8 Texinfo; §7 Shell Environment) so you never need to ask for it or have it attached to a prompt again. license: GPL-3.0-or-later maintainer: Mohamed Hammad @@ -17,7 +17,7 @@ website: https://Construct.SpacecraftSoftware.org/ # The Steelbore Standard — Compliance Reference -**Version:** 1.38 | **Date:** 2026-07-26 | **Author:** Mohamed Hammad +**Version:** 1.39 | **Date:** 2026-07-26 | **Author:** Mohamed Hammad **Maintainer:** Mohamed Hammad | **Contact:** [Mohamed.Hammad@SpacecraftSoftware.org](mailto:Mohamed.Hammad@SpacecraftSoftware.org) **Copyright:** Copyright (C) 2026 Mohamed Hammad & Spacecraft Software | **License:** GPL-3.0-or-later **Website:** [https://Construct.SpacecraftSoftware.org/](https://Construct.SpacecraftSoftware.org/) @@ -742,7 +742,7 @@ Radium Green on Liquid Coolant 1.01:1. ### §11.3 — Alternate Palettes -Four alternates, each anchored on two colors that never change, each verified +Five alternates, each anchored on two colors that never change, each verified against its own canvas and surfaces. Full role tables and three-background matrices live in the `steelbore-color-palette` skill's `assets/steelbore.toml`; every token clears 4.5:1 on all three of its @@ -754,6 +754,22 @@ backgrounds unless marked †. | Steelbore BlackPinkPanther | `steelbore-blackpinkpanther` | Core Black `#141418` | Plasma Magenta `#E445FF` | No restricted pairings | | Steelbore MatrixGreen | `steelbore-matrixgreen` | Circuit Navy `#0C1A2B` | Solar Lime `#B6FF3B` | `surface-alt` (Ambient Black `#05070A`) is darker than the canvas — permitted | | Steelbore NavyWhite | `steelbore-navywhite` | Pearl Silver `#E7E5E0` | Lunar Navy `#111827` (foreground) | **Light canvas**; high contrast *darkens*. Lighter source tints are non-text fills only | +| Tokyo Night | `tokyonight` | Night `#1A1B26` | Tokyo Blue `#7AA2F7` | Verbatim from the upstream editor theme; no restricted pairings. `surface` is the Storm background `#24283B`, `surface-alt` the Night `bg_dark` `#16161E` (darker than the canvas — permitted) | + +#### §11.3.5 — Tokyo Night + +Registered verbatim from [enkia/tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). +It needed **no Spacecraft-derived substitutes** — every role token clears 4.5:1 +on all three backgrounds — so it is a conforming alternate, not a §11.5 fidelity +palette: `foreground` `#C0CAF5` 10.59:1, `accent` `#7AA2F7` 6.79:1, `structure` +`#BB9AF7` 7.39:1, `success` `#9ECE6A` 9.35:1, `error` `#F7768E` 6.46:1, +`warning` `#E0AF68` 8.55:1, `focus` `#7DCFFF` 9.96:1 (vs canvas). + +`tokyonight-high-contrast` lifts the two tokens below 7:1 on the canvas — +`accent` → `#97B6F9` (8.44:1) and `error` → `#F998AA` (8.22:1); the other six +carry over verbatim. The upstream comment tone `#565F89` (2.76:1) clears neither +the 4.5:1 text floor nor the 3:1 non-text floor and is **not bindable to a role +token**; boundaries are drawn in `structure` per §11.0.1. ### §11.4 — Palette Selection @@ -767,6 +783,59 @@ backgrounds unless marked †. - **The canvas is mandatory within its palette.** Substituting a different background for a declared palette is non-compliant. - **Values are read, never retyped** — from `assets/steelbore.toml`. +- **Fidelity palettes are not adoptable.** The §11.5 palettes are registered for + interoperability only; a project may not declare one, and they ship no + high-contrast sibling. +- **Palettes have reference names** (§11.4.1) alongside their slugs. The slug + stays the machine identifier. + +#### §11.4.1 — Reference Names + +Additive. The slug remains the machine identifier used by theme lookups and +`steelbore.toml` keys; the reference name is for prose and conversation. Both +ship in the canonical file, the reference name as each palette's `reference` key. + +| Slug | Reference name | +|------|----------------| +| `steelbore` | `steelbore-color-palette` | +| `steelbore-classic` | `steelboreclassic-color-palette` | +| `steelbore-blue` | `blue-color-palette` | +| `steelbore-blackpinkpanther` | `blackpinkpanther-color-palette` | +| `steelbore-matrixgreen` | `matrixgreen-color-palette` | +| `steelbore-navywhite` | `navywhite-color-palette` | +| `tokyonight` | `tokyonight-color-palette` | +| `solarized-dark` | `solarizeddark-color-palette` | +| `solarized-light` | `solarizedlight-color-palette` | + +### §11.5 — Fidelity Palettes (registered, non-conforming) + +A **fidelity palette** reproduces a widely used external theme **exactly**, so +Spacecraft Software tooling can meet a user who already works in it. Values are +copied verbatim; no token is substituted, deepened, or lifted to make a number +pass. The consequence is stated plainly: **a fidelity palette is not required to +satisfy §11's contrast guarantee, and neither registered one does.** The ratios +below are *the measurement, not a target*. + +| Palette | Slug | Canvas | Body text | Worst pairings | +|---------|------|--------|-----------|----------------| +| Solarized Dark | `solarized-dark` | `base03` `#002B36` | `base0` 4.75:1 | 12 below 4.5:1; `structure`/`border` 2.97:1 and `error` 2.81:1 below 3:1 on `base02` | +| Solarized Light | `solarized-light` | `base3` `#FDF6E3` | `base00` **4.13:1 — under the AA floor** | `success` 2.97:1, `warning` 2.98:1, `focus` 2.93:1 below 3:1 — status cannot be signalled by color at all | + +Rules: + +- A project **MUST NOT** adopt a fidelity palette as its declared §11.4 palette. + §13 (WCAG 2.2 AA) and §18 (accessible mode) are unaffected by this section. +- Offered as a *user-selectable* theme, a conforming palette stays the default + and `steelbore-mono` (§11.1.1) stays the accessible-mode path. +- **No `-high-contrast` sibling.** Lifting the tokens would change the values the + palette exists to reproduce. +- Recorded in `steelbore.toml` under `meta.fidelity-palettes`, with + `conformance = "non-conforming"` in each theme's `rules` table. +- † marks a worst pairing of 3:1–4.5:1 (large text, icons, non-text UI only); + ‡ marks below 3:1, which carries no legible use at any size. + +Solarized (Ethan Schoonover, [ethanschoonover.com/solarized](https://ethanschoonover.com/solarized/)) +defines one elevated tone per mode, so `surface-alt` shares `surface`. --- diff --git a/spacecraft-standard-constitution/references/CHANGELOG.md b/spacecraft-standard-constitution/references/CHANGELOG.md index 35ded47..8596552 100644 --- a/spacecraft-standard-constitution/references/CHANGELOG.md +++ b/spacecraft-standard-constitution/references/CHANGELOG.md @@ -12,6 +12,7 @@ activation. The canonical record is the published Standard's own `standard/CHANGELOG.md` (extracted from §1 of the document itself in v1.37); this file mirrors it and must be synced to the same version and date. +- **v1.39 (2026-07-26):** **Three external palettes registered, and a new class for the two that cannot conform.** **§11.3.5 added — Tokyo Night**, verbatim from the upstream editor theme (canvas Night `#1A1B26`, `surface` the documented Storm background `#24283B`, `surface-alt` the Night `bg_dark` `#16161E`, darker than the canvas as §11.0.1 permits). No Spacecraft-derived substitutes were needed — every role token clears 4.5:1 on all three backgrounds (accent `#7AA2F7` 6.79:1, structure `#BB9AF7` 7.39:1, success `#9ECE6A` 9.35:1, error `#F7768E` 6.46:1, warning `#E0AF68` 8.55:1, focus `#7DCFFF` 9.96:1) — so it registers as a conforming alternate, with `tokyonight-high-contrast` lifting the two tokens below 7:1 on the canvas (`accent` → `#97B6F9` 8.44:1, `error` → `#F998AA` 8.22:1). The upstream comment tone `#565F89` (2.76:1) is recorded as not bindable to a role token. **§11.5 added — Fidelity Palettes (registered, non-conforming):** a class for palettes reproduced exactly from a widely used external theme so tooling can meet a user already working in it. **Solarized Dark** and **Solarized Light** are registered verbatim from Ethan Schoonover's Solarized with no token substituted, deepened, or lifted, and they do **not** satisfy §11's contrast guarantee — Solarized Dark carries twelve pairings below 4.5:1 plus `structure`/`border` (2.97:1) and `error` (2.81:1) below 3:1 on `base02`; Solarized Light's body text `base00` measures 4.13:1, under the AA floor, and `success` (2.97:1), `warning` (2.98:1), and `focus` (2.93:1) fall below 3:1, so status cannot be signalled by color at all. The printed ratios are the measurement, not a target. §11.5 bars adopting a fidelity palette as a project's §11.4 palette, keeps `steelbore-mono` as the accessible-mode path, ships no `-high-contrast` sibling, and marks the two failure bands † (3:1–4.5:1) and ‡ (below 3:1). Solarized defines one elevated tone per mode, so `surface-alt` shares `surface`. **§11.4.1 added — Reference Names:** every palette gains an additive reference name for prose (`steelbore-color-palette`, `steelboreclassic-color-palette`, `blue-color-palette`, `blackpinkpanther-color-palette`, `matrixgreen-color-palette`, `navywhite-color-palette`, `tokyonight-color-palette`, `solarizeddark-color-palette`, `solarizedlight-color-palette`), carried in `steelbore.toml` as each palette's `reference` key. Slugs are unchanged and remain the machine identifier, so no consumer breaks. `assets/steelbore.toml` → v3.1.0: 9 palettes, 17 themes, `meta.fidelity-palettes` added. - **v1.38 (2026-07-26):** **§4.3 corrected — the symlink runs the other way.** v1.36 required the root `LICENSE` to be a symlink into `LICENSES/`, on the premise that GitHub follows symlinks for license detection. It does not: GitHub's detector reads **git blobs**, and a symlink's blob is the target *path*, not the license text. Measured after v1.36 landed, both `Standard` and `Construct` reported `NOASSERTION` — no identified license — where sibling repos with a regular `LICENSE` file report `GPL-3.0`. Inverted: the root `LICENSE` is a **regular file** holding the verbatim primary license text, and `LICENSES/.txt` for that license is a **symlink back to it** (`ln -s ../LICENSE LICENSES/GPL-3.0-or-later.txt`). `reuse` reads the working tree through the filesystem, so it follows the link and lints clean; GitHub gets a real blob. The text still exists exactly once, so v1.36's single-source-of-truth goal is preserved and two independently maintained copies remain non-compliant. Added: the root text MUST be a **canonical, unmodified** copy as published (FSF text for the GPL family, Creative Commons text for CC-BY-SA-4.0, or the choosealicense.com copy) — reflowed or Markdown-formatted texts defeat detection even when the wording is intact. Secondary licenses in `LICENSES/` stay regular files; only the primary license is linked. §5.2 `LICENSE` row and the §16 checklist bullet updated to match. - **v1.37 (2026-07-26):** **Changelog extracted from the published Standard document.** The full version history moved out of §1 — Preamble into `CHANGELOG.md` at the root of the Standard repo, newest-first; the Preamble now carries a pointer to it plus the current version and date. All 37 entries (v1.0 → v1.36) were preserved verbatim. **No normative change** — every rule in force is unchanged, and this skill's encoding of the rules is untouched apart from the masthead and frontmatter version. The two changelogs (`standard/CHANGELOG.md` and this file) remain parallel records synced to the same version and date; the Standard's is canonical. - **v1.36 (2026-07-26):** **§4.3:** the root `LICENSE` file is now **required** and MUST be a **symbolic link** to the project's primary license text in `LICENSES/` (e.g. `ln -s LICENSES/GPL-3.0-or-later.txt LICENSE`), upgrading the former "a root `LICENSE` MAY remain as a GitHub-detection pointer" allowance. GitHub reads a repository's license from a root `LICENSE` file while REUSE requires the verbatim texts under `LICENSES/`; the symlink satisfies both from one source of truth — Git stores it as mode `120000`, GitHub follows it for detection, and `reuse lint` stays clean. A duplicated regular-file `LICENSE` is **non-compliant**: the two copies drift, and a stale root `LICENSE` misreports the project's license to every GitHub visitor. The link target is the repository's **primary** license per §4.1.1 — `GPL-3.0-or-later` (or `AGPL-3.0-or-later` when network-facing) for a software-primary repo, `CC-BY-SA-4.0` for a document-primary repo. **§5.2:** `LICENSE` added as a required posture file in its own right, alongside `README.md`, `NOTICE.md`, `CONTRIBUTING.md`, and `LICENSES/`. **§16:** compliance-checklist §4.3 bullet extended with the symlink requirement. diff --git a/steelbore-color-palette.skill b/steelbore-color-palette.skill index dfe5d08..e80beb9 100644 Binary files a/steelbore-color-palette.skill and b/steelbore-color-palette.skill differ diff --git a/steelbore-color-palette.zip b/steelbore-color-palette.zip index 5bbc2be..60652dc 100644 Binary files a/steelbore-color-palette.zip and b/steelbore-color-palette.zip differ diff --git a/steelbore-color-palette/SKILL.md b/steelbore-color-palette/SKILL.md index 89f9af4..f8d50e0 100644 --- a/steelbore-color-palette/SKILL.md +++ b/steelbore-color-palette/SKILL.md @@ -1,19 +1,19 @@ --- name: steelbore-color-palette description: > - Single source of truth for the Steelbore palette family (Standard §11 - v1.35) — six palettes, their hex tokens, measured WCAG contrast matrices, - the §11.1 role-token contract, and every §11.1.1 accessibility variant. - Steelbore Modern is the default; Classic, Blue, BlackPinkPanther, - MatrixGreen, and NavyWhite are opt-in per §11.4. ALWAYS consult whenever a - color, hex value, palette token, theme, contrast ratio, or brand hue is - needed for ANY Spacecraft Software or Steelbore OS artifact — UI code, TUI - styling, editor/terminal themes, documents, diagrams, SVGs, or CSS — even - if the user never says "palette". Triggers: "Void Navy", "Plasma Orange", - "Orbit Navy", "Solar Lime", "Pearl Silver", "steelbore theme", "brand - colors", "high contrast variant", and any WCAG / EN 301 549 question about - Spacecraft colors. Consumer skills defer here for values — never restate - hexes from memory; read them here. + Single source of truth for the Steelbore palette family (Standard §11 v1.39) + — nine palettes, their hex tokens, WCAG contrast matrices, the §11.1 + role-token contract, and every §11.1.1 accessibility variant. Modern is the + default; Classic, Blue, BlackPinkPanther, MatrixGreen, NavyWhite, and Tokyo + Night are opt-in (§11.4); Solarized Dark and Light are §11.5 fidelity + palettes — verbatim, non-conforming, never adoptable. ALWAYS consult whenever + a color, hex, palette token, theme, contrast ratio, or brand hue is needed for + ANY Spacecraft Software or Steelbore OS artifact — UI code, TUI styling, + editor/terminal themes, documents, diagrams, SVGs, or CSS — even if the user + never says "palette". Triggers: "Void Navy", "Plasma Orange", "Orbit Navy", + "Solar Lime", "Tokyo Night", "Solarized", "brand colors", "high contrast + variant", and any WCAG / EN 301 549 question about Spacecraft colors. Consumer + skills defer here for values — never restate hexes from memory. license: GPL-3.0-or-later maintainer: Mohamed Hammad website: https://Construct.SpacecraftSoftware.org/ @@ -25,7 +25,7 @@ website: https://Construct.SpacecraftSoftware.org/ **Copyright:** (C) 2026 Mohamed Hammad & Spacecraft Software | **License:** GPL-3.0-or-later **Website:** [https://Construct.SpacecraftSoftware.org/](https://Construct.SpacecraftSoftware.org/) -> **Authority chain:** The Steelbore Standard §11 (v1.35) is the normative +> **Authority chain:** The Steelbore Standard §11 (v1.39) is the normative > text; this skill is its canonical machine-readable mirror and the **only** > place palette hexes should be read from. If this skill and the Standard ever > disagree, the Standard governs — and this skill must be fixed. Consumer @@ -35,7 +35,7 @@ website: https://Construct.SpacecraftSoftware.org/ ## The family (§11) -Six palettes. **Steelbore Modern is the default** — use it unless the project +Nine palettes — seven conforming, two §11.5 fidelity. **Steelbore Modern is the default** — use it unless the project has declared an alternate in its `README.md` (§11.4). A project uses **exactly one** palette; tokens are never mixed across palettes, because every contrast guarantee is computed per-palette. @@ -48,9 +48,22 @@ guarantee is computed per-palette. | `steelbore-blackpinkpanther` | Steelbore BlackPinkPanther | `#141418` Core Black | Alternate (§11.3.2) | | `steelbore-matrixgreen` | Steelbore MatrixGreen | `#0C1A2B` Circuit Navy | Alternate (§11.3.3) | | `steelbore-navywhite` | Steelbore NavyWhite | `#E7E5E0` Pearl Silver | Alternate (§11.3.4) — **light canvas** | - -Each has a `-high-contrast` sibling for §18.1 accessible mode. -`steelbore-mono` is palette-independent and serves them all. +| `tokyonight` | Tokyo Night | `#1A1B26` Night | Alternate (§11.3.5) — upstream theme, verbatim, no restricted pairings | +| `solarized-dark` | Solarized Dark | `#002B36` base03 | **Fidelity (§11.5) — non-conforming**, not adoptable | +| `solarized-light` | Solarized Light | `#FDF6E3` base3 | **Fidelity (§11.5) — non-conforming**, not adoptable; body text 4.13:1 | + +Each conforming palette has a `-high-contrast` sibling for §18.1 +accessible mode. The §11.5 fidelity palettes have **none** — lifting their +tokens would change the values they exist to reproduce, so `steelbore-mono` +(palette-independent) is the accessible path for them. + +**Reference names (§11.4.1)** are additive prose labels; the slug above stays +the machine identifier: `steelbore-color-palette`, +`steelboreclassic-color-palette`, `blue-color-palette`, +`blackpinkpanther-color-palette`, `matrixgreen-color-palette`, +`navywhite-color-palette`, `tokyonight-color-palette`, +`solarizeddark-color-palette`, `solarizedlight-color-palette`. Each is carried +in the TOML as its palette's `reference` key. **All values for every palette are in [`assets/steelbore.toml`](assets/steelbore.toml) — read them there.** The @@ -214,7 +227,7 @@ Colors ship with type: **Share Tech Mono** (headings) and **Inconsolata** | File | What it is | |------|------------| -| [`assets/steelbore.toml`](assets/steelbore.toml) | **The canonical contract for the whole family** — `[palettes.*]` for all six, `[themes.*]` (13 themes: six palettes, their `-high-contrast` siblings, and `steelbore-mono`) with measured per-background contrast tables and per-palette rules, plus `[typography]`. Copy or parse it; never retype hexes. | +| [`assets/steelbore.toml`](assets/steelbore.toml) | **The canonical contract for the whole family** — `[palettes.*]` for all nine, `[themes.*]` (17 themes: seven conforming palettes with their `-high-contrast` siblings, two §11.5 fidelity palettes, and `steelbore-mono`) with measured per-background contrast tables and per-palette rules, plus `[typography]`. Copy or parse it; never retype hexes. | | [`assets/spacecraft.css`](assets/spacecraft.css) | The canonical Spacecraft HTML theme for `texi2any --css-include`. The copies in `standard/` and `spacecraft-texinfo-document/assets/` are synced derivatives — edit this one first, keep all three byte-identical. | ## Where application rules live diff --git a/steelbore-color-palette/assets/steelbore.toml b/steelbore-color-palette/assets/steelbore.toml index cc75db1..c3f6f35 100644 --- a/steelbore-color-palette/assets/steelbore.toml +++ b/steelbore-color-palette/assets/steelbore.toml @@ -12,18 +12,20 @@ [meta] name = "Steelbore" default-theme = "steelbore" -palette-family = ["steelbore", "steelbore-classic", "steelbore-blue", "steelbore-blackpinkpanther", "steelbore-matrixgreen", "steelbore-navywhite"] -version = "3.0.0" +palette-family = ["steelbore", "steelbore-classic", "steelbore-blue", "steelbore-blackpinkpanther", "steelbore-matrixgreen", "steelbore-navywhite", "tokyonight"] +fidelity-palettes = ["solarized-dark", "solarized-light"] # §11.5 — registered, non-conforming +version = "3.1.0" date = "2026-07-25T00:00:00Z" maintainer = "Mohamed Hammad " website = "https://Construct.SpacecraftSoftware.org/" license = "GPL-3.0-or-later" -standard = "The Steelbore Standard §11 (v1.35)" +standard = "The Steelbore Standard §11 (v1.39)" # ------------------------------------------------------------------------- # Steelbore Modern (§11.0) — DEFAULT palette # ------------------------------------------------------------------------- [palettes.steelbore] +reference = "steelbore-color-palette" "Void Navy" = "#000027" "Quantum Blue" = "#0E2A47" "Deep Matrix" = "#0B1A12" @@ -115,6 +117,7 @@ border = "9.19:1" # Steelbore Blue (§11.3.1) — anchors: Orbit Navy #0A1024 / Electric Blue #0066FF # ------------------------------------------------------------------------- [palettes.steelbore-blue] +reference = "blue-color-palette" "Orbit Navy" = "#0A1024" "Deep Orbit" = "#0F1728" "Orbit Divider" = "#1B2436" @@ -206,6 +209,7 @@ border = "7.41:1" # Steelbore BlackPinkPanther (§11.3.2) — anchors: Core Black #141418 / Plasma Magenta #E445FF # ------------------------------------------------------------------------- [palettes.steelbore-blackpinkpanther] +reference = "blackpinkpanther-color-palette" "Core Black" = "#141418" "Panther Slate" = "#1E1E22" "Dark Grey" = "#28282D" @@ -293,6 +297,7 @@ border = "8.94:1" # Steelbore MatrixGreen (§11.3.3) — anchors: Circuit Navy #0C1A2B / Solar Lime #B6FF3B # ------------------------------------------------------------------------- [palettes.steelbore-matrixgreen] +reference = "matrixgreen-color-palette" "Circuit Navy" = "#0C1A2B" "Slate Charcoal" = "#1B2630" "Ambient Black" = "#05070A" @@ -382,6 +387,7 @@ border = "12.44:1" # LIGHT CANVAS: high contrast darkens foregrounds rather than lightening them. # ------------------------------------------------------------------------- [palettes.steelbore-navywhite] +reference = "navywhite-color-palette" "Pearl Silver" = "#E7E5E0" "Pearl Silver Light" = "#F4F3F1" "Pearl Silver Dark" = "#D4D2CD" @@ -482,6 +488,7 @@ border = "12.36:1" # against Void Navy alone. # ------------------------------------------------------------------------- [palettes.steelbore-classic] +reference = "steelboreclassic-color-palette" "Void Navy" = "#000027" "Molten Amber" = "#D98E32" "Steel Blue" = "#4B7EB0" @@ -525,6 +532,236 @@ success = "14.87:1" error = "8.41:1" info = "14.74:1" +# ------------------------------------------------------------------------- +# Tokyo Night (§11.3.5) — anchors: Night #1A1B26 / Blue #7AA2F7 +# Upstream: enkia/tokyo-night-vscode-theme (Night variant); surface is the +# documented Storm background, surface-alt the Night bg_dark. Every role token +# clears AA on all three backgrounds — a conforming alternate, not a §11.5 +# fidelity palette. +# ------------------------------------------------------------------------- +[palettes.tokyonight] +reference = "tokyonight-color-palette" +"Night" = "#1A1B26" +"Storm" = "#24283B" +"Night Deep" = "#16161E" +"Starlight" = "#C0CAF5" +"Tokyo Blue" = "#7AA2F7" +"Neon Purple" = "#BB9AF7" +"Signal Green" = "#9ECE6A" +"Sakura Red" = "#F7768E" +"Lantern Yellow" = "#E0AF68" +"Ice Cyan" = "#7DCFFF" +"Tokyo Blue Lift" = "#97B6F9" # high-contrast only +"Sakura Lift" = "#F998AA" # high-contrast only +"Comment Slate (upstream)" = "#565F89" # 2.76:1 on Night — not bindable to a role token + +[themes.tokyonight] +background = "#1A1B26" +surface = "#24283B" +surface-alt = "#16161E" +foreground = "#C0CAF5" +accent = "#7AA2F7" +structure = "#BB9AF7" +success = "#9ECE6A" +error = "#F7768E" +warning = "#E0AF68" +focus = "#7DCFFF" +border = "#BB9AF7" + +[themes.tokyonight.contrast.vs-background] # vs #1A1B26 +foreground = "10.59:1" +accent = "6.79:1" +structure = "7.39:1" +success = "9.35:1" +error = "6.46:1" +warning = "8.55:1" +focus = "9.96:1" +border = "7.39:1" + +[themes.tokyonight.contrast.vs-surface] # vs #24283B +foreground = "9.02:1" +accent = "5.78:1" +structure = "6.30:1" +success = "7.97:1" +error = "5.51:1" +warning = "7.28:1" +focus = "8.49:1" +border = "6.30:1" + +[themes.tokyonight.contrast.vs-surface-alt] # vs #16161E +foreground = "11.14:1" +accent = "7.14:1" +structure = "7.77:1" +success = "9.84:1" +error = "6.80:1" +warning = "8.99:1" +focus = "10.48:1" +border = "7.77:1" + +[themes.tokyonight.rules] +surface-tokens-as-text = "forbidden" +surface-boundary-border = "structure" +non-role-colors = ["#565F89"] + +[themes.tokyonight-high-contrast] # §11.1.1 — accessible-mode sibling of tokyonight +background = "#1A1B26" +surface = "#24283B" +surface-alt = "#16161E" +foreground = "#C0CAF5" +accent = "#97B6F9" +structure = "#BB9AF7" +success = "#9ECE6A" +error = "#F998AA" +warning = "#E0AF68" +focus = "#7DCFFF" +border = "#BB9AF7" + +[themes.tokyonight-high-contrast.contrast.vs-background] # vs #1A1B26 +foreground = "10.59:1" +accent = "8.44:1" +structure = "7.39:1" +success = "9.35:1" +error = "8.22:1" +warning = "8.55:1" +focus = "9.96:1" +border = "7.39:1" + +[themes.tokyonight-high-contrast.rules] +surface-tokens-as-text = "forbidden" +surface-boundary-border = "structure" + +# ------------------------------------------------------------------------- +# Solarized Dark / Light (§11.5) — FIDELITY PALETTES, registered verbatim from +# Ethan Schoonover's Solarized (ethanschoonover.com/solarized) for +# interoperability with editors and terminals already using it. +# NON-CONFORMING: Solarized predates WCAG 2.2 AA as a target and its accent set +# does not reach 4.5:1 on its own canvases. Values are reproduced EXACTLY — no +# Spacecraft-derived substitutes — so the numbers below are the measurement, not +# a target. A project may not adopt these as its declared §11.4 palette (§11.5). +# Solarized defines two background tones per mode, so surface-alt shares surface. +# ------------------------------------------------------------------------- +[palettes.solarized-dark] +reference = "solarizeddark-color-palette" +"base03" = "#002B36" +"base02" = "#073642" +"base01" = "#586E75" +"base00" = "#657B83" +"base0" = "#839496" +"base1" = "#93A1A1" +"yellow" = "#B58900" +"orange" = "#CB4B16" +"red" = "#DC322F" +"magenta" = "#D33682" +"violet" = "#6C71C4" +"blue" = "#268BD2" +"cyan" = "#2AA198" +"green" = "#859900" + +[themes.solarized-dark] +background = "#002B36" +surface = "#073642" +surface-alt = "#073642" +foreground = "#839496" +accent = "#268BD2" +structure = "#6C71C4" +success = "#859900" +error = "#DC322F" +warning = "#B58900" +focus = "#2AA198" +border = "#6C71C4" + +[themes.solarized-dark.contrast.vs-background] # vs #002B36 +foreground = "4.75:1" +accent = "4.08:1" +structure = "3.43:1" +success = "4.69:1" +error = "3.25:1" +warning = "4.68:1" +focus = "4.75:1" +border = "3.43:1" + +[themes.solarized-dark.contrast.vs-surface] # vs #073642 +foreground = "4.11:1" +accent = "3.53:1" +structure = "2.97:1" +success = "4.06:1" +error = "2.81:1" +warning = "4.05:1" +focus = "4.12:1" +border = "2.97:1" + +[themes.solarized-dark.rules] +conformance = "non-conforming" +wcag-aa = "fail" +adoptable-as-project-palette = "no" +accessible-mode = "steelbore-mono" +high-contrast-sibling = "not-defined" +surface-tokens-as-text = "forbidden" +surface-boundary-border = "structure" +surface-alt-shares-surface = "upstream defines a single elevated tone" +below-3-to-1 = ["structure (2.97:1)", "error (2.81:1)", "border (2.97:1)"] + +[palettes.solarized-light] +reference = "solarizedlight-color-palette" +"base3" = "#FDF6E3" +"base2" = "#EEE8D5" +"base1" = "#93A1A1" +"base0" = "#839496" +"base00" = "#657B83" +"base01" = "#586E75" +"yellow" = "#B58900" +"orange" = "#CB4B16" +"red" = "#DC322F" +"magenta" = "#D33682" +"violet" = "#6C71C4" +"blue" = "#268BD2" +"cyan" = "#2AA198" +"green" = "#859900" + +[themes.solarized-light] +background = "#FDF6E3" +surface = "#EEE8D5" +surface-alt = "#EEE8D5" +foreground = "#657B83" +accent = "#268BD2" +structure = "#6C71C4" +success = "#859900" +error = "#DC322F" +warning = "#B58900" +focus = "#2AA198" +border = "#6C71C4" + +[themes.solarized-light.contrast.vs-background] # vs #FDF6E3 +foreground = "4.13:1" +accent = "3.41:1" +structure = "4.06:1" +success = "2.97:1" +error = "4.29:1" +warning = "2.98:1" +focus = "2.93:1" +border = "4.06:1" + +[themes.solarized-light.contrast.vs-surface] # vs #EEE8D5 +foreground = "3.64:1" +accent = "3.00:1" +structure = "3.57:1" +success = "2.62:1" +error = "3.77:1" +warning = "2.62:1" +focus = "2.58:1" +border = "3.57:1" + +[themes.solarized-light.rules] +conformance = "non-conforming" +wcag-aa = "fail" +adoptable-as-project-palette = "no" +accessible-mode = "steelbore-mono" +high-contrast-sibling = "not-defined" +surface-tokens-as-text = "forbidden" +surface-boundary-border = "structure" +surface-alt-shares-surface = "upstream defines a single elevated tone" +below-3-to-1 = ["success (2.62:1)", "warning (2.62:1)", "focus (2.58:1)"] + # ------------------------------------------------------------------------- # Mono variant (§11.1.1) — palette-independent. 4-bit ANSI only; defers hue # entirely to the user's terminal palette. Selected explicitly or via NO_COLOR.