From eeaec1f5edf828cd85164558e225dc20976b433f Mon Sep 17 00:00:00 2001 From: David Karlsson <35727626+dvdksn@users.noreply.github.com> Date: Wed, 16 Sep 2026 10:13:04 +0000 Subject: [PATCH 01/11] style: prototype Trident token integration --- TRIDENT-PROTOTYPE.md | 85 ++ _vale/config/vocabularies/Docker/accept.txt | 2 + assets/css/global.css | 8 +- assets/css/style.css | 87 +- assets/css/trident.css | 262 ++++ assets/css/vendor/trident/manifest.json | 19 + assets/css/vendor/trident/tri-component.css | 50 + assets/css/vendor/trident/tri-elevation.css | 35 + assets/css/vendor/trident/tri-motion.css | 45 + assets/css/vendor/trident/tri-primitives.css | 163 +++ assets/css/vendor/trident/tri-radius.css | 31 + assets/css/vendor/trident/tri-semantic.css | 1280 +++++++++++++++++ assets/css/vendor/trident/tri-spacing.css | 5 + assets/css/vendor/trident/tri-themes.css | 31 + assets/css/vendor/trident/tri-tokens.css | 10 + assets/css/vendor/trident/tri-typography.css | 155 ++ hack/vendor-trident-tokens.mjs | 62 + layouts/_partials/head.html | 4 +- layouts/_partials/header.html | 4 +- layouts/baseof.html | 9 +- static/assets/fonts/manrope/LICENSE | 93 ++ .../manrope-cyrillic-ext-wght-normal.woff2 | Bin 0 -> 2552 bytes .../manrope-cyrillic-wght-normal.woff2 | Bin 0 -> 14500 bytes .../manrope/manrope-greek-wght-normal.woff2 | Bin 0 -> 9444 bytes .../manrope-latin-ext-wght-normal.woff2 | Bin 0 -> 15120 bytes .../manrope/manrope-latin-wght-normal.woff2 | Bin 0 -> 24836 bytes .../manrope-vietnamese-wght-normal.woff2 | Bin 0 -> 8520 bytes 27 files changed, 2421 insertions(+), 19 deletions(-) create mode 100644 TRIDENT-PROTOTYPE.md create mode 100644 assets/css/trident.css create mode 100644 assets/css/vendor/trident/manifest.json create mode 100644 assets/css/vendor/trident/tri-component.css create mode 100644 assets/css/vendor/trident/tri-elevation.css create mode 100644 assets/css/vendor/trident/tri-motion.css create mode 100644 assets/css/vendor/trident/tri-primitives.css create mode 100644 assets/css/vendor/trident/tri-radius.css create mode 100644 assets/css/vendor/trident/tri-semantic.css create mode 100644 assets/css/vendor/trident/tri-spacing.css create mode 100644 assets/css/vendor/trident/tri-themes.css create mode 100644 assets/css/vendor/trident/tri-tokens.css create mode 100644 assets/css/vendor/trident/tri-typography.css create mode 100644 hack/vendor-trident-tokens.mjs create mode 100644 static/assets/fonts/manrope/LICENSE create mode 100644 static/assets/fonts/manrope/manrope-cyrillic-ext-wght-normal.woff2 create mode 100644 static/assets/fonts/manrope/manrope-cyrillic-wght-normal.woff2 create mode 100644 static/assets/fonts/manrope/manrope-greek-wght-normal.woff2 create mode 100644 static/assets/fonts/manrope/manrope-latin-ext-wght-normal.woff2 create mode 100644 static/assets/fonts/manrope/manrope-latin-wght-normal.woff2 create mode 100644 static/assets/fonts/manrope/manrope-vietnamese-wght-normal.woff2 diff --git a/TRIDENT-PROTOTYPE.md b/TRIDENT-PROTOTYPE.md new file mode 100644 index 000000000000..1f9298ec0b0d --- /dev/null +++ b/TRIDENT-PROTOTYPE.md @@ -0,0 +1,85 @@ +# Trident token prototype + +This prototype applies Trident tokens to the existing Hugo and Tailwind docs +site. Builds use checked-in CSS and fonts, with no access to a private registry. + +## Preview + +```console +$ npm ci +$ hugo server --port 1313 +``` + +Review these pages in light and dark mode, at desktop and mobile widths: + +- `/desktop/setup/install/linux/`: article typography, navigation, callouts, + tables, and code +- `/get-started/docker-concepts/running-containers/sharing-local-files/`: tabs and code blocks +- `/get-started/`: landing pages and cards + +Search requires the separate Pagefind indexing step used by the existing build. + +## Integration + +`assets/css/style.css` imports the legacy theme, the Trident snapshot, and the +docs adapter in that order. Generated Tailwind mappings supply prefixed palette +utilities and replace shared type, spacing, and radius values. Legacy palette utilities remain +available during the migration. The adapter maps selected docs aliases and +components to Trident semantic colors. + +`assets/css/trident.css` maps docs aliases to semantic tokens and styles the +header, sidebar selection, article text, cards, buttons, tabs, and callouts. +The `docs` cascade layer follows utilities so existing light and dark classes +cannot override these semantic color pairs. Token imports stay at the root +because they contain Tailwind directives as well as CSS layer declarations. + +Manrope supplies the interface and article typeface. Article body text uses the +16-pixel reading scale, while navigation uses the smaller label scale. Code keeps +the existing Roboto Mono font. The existing theme switch activates Trident's +`.dark` overrides. + +This is an integration prototype. Syntax highlighting, search internals, Gordon, +landing-page layouts, and other components still need a design review. Loading +tokens does not provide Trident component behavior or certify accessibility. + +## Snapshot provenance + +- Package: `@docker/trident-tokens@2.0.0-beta.3` +- Repository: +- Release commit: `bbc0746b17209071ceddabcb14b180fcb32b2fa9` +- CSS: ten unmodified generated files in `assets/css/vendor/trident/` +- Checksums: SHA-256 per file in that directory's `manifest.json` + +The registry rejected the available credentials. This snapshot was generated +from the release commit using the upstream `sd.config.ts` and +`scripts/check-dark-coverage.ts`. It was not extracted from the published npm +archive. The build used Node.js and these dependency versions from the upstream +lockfile: `tsx@4.23.1`, `style-dictionary@5.5.1`, `apca-w3@0.1.9`, and +`culori@4.0.2`. Upstream checks reported 97 contrast pairs with zero failures and +explicit dark overrides for all 286 aliased tokens. + +The token package does not declare a license. Public redistribution terms remain +an open item for the Trident team. + +Font files come from `@fontsource-variable/manrope@5.2.8` on npmjs.org. The +unmodified WOFF2 subsets and their SIL Open Font License are under +`static/assets/fonts/manrope/`. The font declarations retain the package's +Unicode ranges and use local asset URLs. + +## Refresh the snapshot + +A maintainer with Trident access can build an agreed release in a separate +checkout, or extract its published package. Then run: + +```console +$ node hack/vendor-trident-tokens.mjs /path/to/trident/packages/tokens <40-character-source-commit> +``` + +The script validates the package name and local CSS imports, copies the +generated files without modification, and records their version and checksums. +Review the CSS diff and any upstream license terms. Keep docs adjustments in +`assets/css/trident.css`. The refresh step is separate from ordinary builds. + +If the token package becomes available publicly on npmjs.org, replace the +snapshot import with the package import and pin its version in `package.json`. +The docs adapter can remain in place. diff --git a/_vale/config/vocabularies/Docker/accept.txt b/_vale/config/vocabularies/Docker/accept.txt index 75ac4e3e93b7..8c25b0f492b1 100644 --- a/_vale/config/vocabularies/Docker/accept.txt +++ b/_vale/config/vocabularies/Docker/accept.txt @@ -449,3 +449,5 @@ superset tokenization WebGL Xubuntu +Pagefind +Roboto diff --git a/assets/css/global.css b/assets/css/global.css index ba29b4dc6d16..13debd516625 100644 --- a/assets/css/global.css +++ b/assets/css/global.css @@ -56,19 +56,19 @@ input[type="search"]::-ms-clear { @apply mt-8 mb-4; } :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - font-weight: 500 !important; - font-size: 180% !important; + font-weight: var(--tri-font-weight-heading); + font-size: var(--tri-scale-heading-1-font-size); margin-bottom: 0.4em !important; } > h2 { @apply mt-7! mb-3!; - font-size: 160% !important; + font-size: var(--tri-scale-heading-3-font-size); a { @apply hover:no-underline!; } } > h3 { - font-size: 130% !important; + font-size: var(--tri-scale-heading-4-font-size); a { @apply hover:no-underline!; } diff --git a/assets/css/style.css b/assets/css/style.css index f63fc6f5aec2..3e55a16bf62c 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,15 +1,84 @@ /* Main CSS entry point */ +@layer theme, tri, base, components, utilities, docs; @import "tailwindcss"; @plugin "@tailwindcss/typography"; @source "hugo_stats.json"; +/* manrope-cyrillic-ext-wght-normal */ @font-face { - font-family: "Roboto Flex"; - src: url("/assets/fonts/RobotoFlex.woff2") format("woff2"); - font-weight: 100 1000; /* Range of weights Roboto Flex supports */ - font-stretch: 100%; /* Range of width Roboto Flex supports */ - font-style: oblique 0deg 10deg; /* Range of oblique angle Roboto Flex supports */ - font-display: fallback; + font-family: "Manrope Variable"; + font-style: normal; + font-display: swap; + font-weight: 200 800; + src: url(/assets/fonts/manrope/manrope-cyrillic-ext-wght-normal.woff2) + format("woff2-variations"); + unicode-range: + U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} + +/* manrope-cyrillic-wght-normal */ +@font-face { + font-family: "Manrope Variable"; + font-style: normal; + font-display: swap; + font-weight: 200 800; + src: url(/assets/fonts/manrope/manrope-cyrillic-wght-normal.woff2) + format("woff2-variations"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} + +/* manrope-greek-wght-normal */ +@font-face { + font-family: "Manrope Variable"; + font-style: normal; + font-display: swap; + font-weight: 200 800; + src: url(/assets/fonts/manrope/manrope-greek-wght-normal.woff2) + format("woff2-variations"); + unicode-range: + U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} + +/* manrope-vietnamese-wght-normal */ +@font-face { + font-family: "Manrope Variable"; + font-style: normal; + font-display: swap; + font-weight: 200 800; + src: url(/assets/fonts/manrope/manrope-vietnamese-wght-normal.woff2) + format("woff2-variations"); + unicode-range: + U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, + U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, + U+1EA0-1EF9, U+20AB; +} + +/* manrope-latin-ext-wght-normal */ +@font-face { + font-family: "Manrope Variable"; + font-style: normal; + font-display: swap; + font-weight: 200 800; + src: url(/assets/fonts/manrope/manrope-latin-ext-wght-normal.woff2) + format("woff2-variations"); + unicode-range: + U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, + U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, + U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} + +/* manrope-latin-wght-normal */ +@font-face { + font-family: "Manrope Variable"; + font-style: normal; + font-display: swap; + font-weight: 200 800; + src: url(/assets/fonts/manrope/manrope-latin-wght-normal.woff2) + format("woff2-variations"); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, + U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, + U+2215, U+FEFF, U+FFFD; } /* Roboto Mono */ @@ -30,9 +99,9 @@ font-display: fallback; } -@layer theme { - @import "theme.css"; -} +@import "theme.css"; +@import "vendor/trident/tri-tokens.css"; +@import "trident.css"; @layer base { @import "global.css"; diff --git a/assets/css/trident.css b/assets/css/trident.css new file mode 100644 index 000000000000..88f6719d8717 --- /dev/null +++ b/assets/css/trident.css @@ -0,0 +1,262 @@ +/* Docs adapter. Keep the upstream snapshot untouched; migrate legacy aliases here. */ +@theme inline { + --default-font-family: var(--tri-font-family-sans); + --font-mono: "Roboto Mono", ui-monospace, monospace; + --color-blue: var(--tri-primary); + --color-primary-blue: var(--tri-primary); + --color-gray: var(--tri-muted-foreground); + --color-background-light: var(--tri-background); + --color-background-dark: var(--tri-background); + --color-navbar-bg: var(--tri-sidebar); + --color-navbar-bg-dark: var(--tri-sidebar); + --color-navbar-text: var(--tri-sidebar-foreground); + --color-navbar-text-dark: var(--tri-sidebar-foreground); + --color-divider-light: var(--tri-border); + --color-divider-dark: var(--tri-border); +} + +/* This layer follows utilities so legacy light/dark classes cannot override + semantic pairs on the components migrated by this prototype. */ +@layer docs { + :root { + --navbar-font-size: var(--tri-scale-label-font-size); + --tw-prose-code-bg: var(--tri-muted); + --tw-prose-code-bg-dark: var(--tri-muted); + color-scheme: light; + } + + :root.dark { + color-scheme: dark; + } + + body { + font-family: var(--tri-font-family-sans); + font-weight: var(--tri-font-weight-body); + } + + .docs-body, + .docs-content { + background: var(--tri-background); + color: var(--tri-foreground); + } + + .docs-header { + background: var(--tri-sidebar); + color: var(--tri-foreground); + border-bottom: 1px solid var(--tri-border); + } + + .docs-header a[title="Docker Docs home page"] path[fill="white"] { + fill: currentColor; + } + + .docs-header nav li { + border-bottom-width: 2px; + } + + .docs-header nav li:not(.border-transparent) { + color: var(--tri-primary); + border-color: var(--tri-primary); + } + + .docs-header nav li:hover { + color: var(--tri-primary); + border-color: var(--tri-border-accent); + } + + .docs-header #buttons button { + background: var(--tri-background); + color: var(--tri-foreground); + border: 1px solid var(--tri-border); + border-radius: var(--tri-radius-default); + font-weight: var(--tri-font-weight-label); + } + + .docs-header #buttons button:hover { + background: var(--tri-action-hover); + } + + .docs-header .shimmer::after { + display: none; + } + + :where(a, button, input, select, textarea, summary):focus-visible { + outline: 2px solid var(--tri-ring); + outline-offset: 3px; + } + + .navbar-group-font-title { + color: var(--tri-sidebar-foreground-muted); + text-transform: none; + font-weight: var(--tri-font-weight-label); + } + + .navbar-entry-background-current { + background: var(--tri-sidebar-accent); + color: var(--tri-sidebar-accent-foreground); + border-radius: var(--tri-radius-default); + } + + .navbar-entry-background-current a[aria-current="page"] { + color: var(--tri-primary); + font-weight: var(--tri-font-weight-semibold); + } + + .prose { + --tw-prose-body: var(--tri-foreground); + --tw-prose-headings: var(--tri-foreground); + --tw-prose-links: var(--tri-primary); + --tw-prose-bold: var(--tri-foreground); + --tw-prose-counters: var(--tri-muted-foreground); + --tw-prose-bullets: var(--tri-muted-foreground); + --tw-prose-hr: var(--tri-border); + --tw-prose-quotes: var(--tri-foreground); + --tw-prose-quote-borders: var(--tri-border); + --tw-prose-captions: var(--tri-muted-foreground); + --tw-prose-code: var(--tri-foreground); + --tw-prose-th-borders: var(--tri-border); + --tw-prose-td-borders: var(--tri-border); + font-size: var(--tri-scale-body-font-size); + line-height: var(--tri-scale-body-line-height); + letter-spacing: var(--tri-scale-body-letter-spacing); + } + + .prose :is(h1, h2, h3, h4) { + font-weight: var(--tri-font-weight-heading); + line-height: var(--tri-line-height-tight); + } + + .prose h1 { + font-size: var(--tri-scale-heading-1-font-size); + letter-spacing: var(--tri-scale-heading-1-letter-spacing); + } + + .prose h2 { + font-size: var(--tri-scale-heading-3-font-size); + letter-spacing: var(--tri-scale-heading-3-letter-spacing); + } + + .prose h3 { + font-size: var(--tri-scale-heading-4-font-size); + letter-spacing: var(--tri-scale-heading-4-letter-spacing); + } + + .link { + color: var(--tri-primary); + } + + .prose [marlin-action] { + color: var(--tri-muted-foreground); + } + + .prose [marlin-action]:hover { + color: var(--tri-foreground); + } + + .card, + .section-card { + background: var(--tri-card); + color: var(--tri-card-foreground); + border-color: var(--tri-border); + border-radius: var(--tri-radius-lg); + filter: none; + } + + .card:hover, + .section-card:hover { + border-color: var(--tri-primary); + } + + .card-header, + .card-icon, + .section-card-title, + .section-card-text { + color: var(--tri-card-foreground); + } + + .card-description { + color: var(--tri-muted-foreground); + } + + .button { + background: var(--tri-primary); + color: var(--tri-primary-foreground); + padding: calc(var(--spacing) * 2) calc(var(--spacing) * 4); + border-radius: var(--tri-radius-default); + font-weight: var(--tri-font-weight-label); + text-decoration: none; + } + + .button:hover { + background: var(--tri-primary); + text-decoration: underline; + text-underline-offset: 3px; + } + + .tabs, + .summary-bar { + background: var(--tri-card); + border: 1px solid var(--tri-border); + border-radius: var(--tri-radius-lg); + } + + .tablist { + border-color: var(--tri-border); + } + + .tab-item { + color: var(--tri-muted-foreground); + font-weight: var(--tri-font-weight-label); + } + + .tab-item:hover { + background: var(--tri-action-hover); + color: var(--tri-foreground); + } + + .tab-item.border-b-4 { + color: var(--tri-primary); + border-color: var(--tri-primary); + border-bottom-width: 2px; + } + + .admonition { + --docs-callout-border: var(--tri-border); + --docs-callout-bg: var(--tri-card); + --docs-callout-title: var(--tri-foreground); + border: 1px solid var(--docs-callout-border); + border-radius: var(--tri-radius-lg); + background: var(--docs-callout-bg); + color: var(--docs-callout-title); + } + + .admonition-note { + --docs-callout-border: var(--tri-alert-info-border); + --docs-callout-bg: var(--tri-alert-info-bg); + --docs-callout-title: var(--tri-alert-info-title); + } + + .admonition-tip { + --docs-callout-border: var(--tri-alert-success-border); + --docs-callout-bg: var(--tri-alert-success-bg); + --docs-callout-title: var(--tri-alert-success-title); + } + + .admonition-warning { + --docs-callout-border: var(--tri-alert-warning-border); + --docs-callout-bg: var(--tri-alert-warning-bg); + --docs-callout-title: var(--tri-alert-warning-title); + } + + .admonition-danger { + --docs-callout-border: var(--tri-alert-error-border); + --docs-callout-bg: var(--tri-alert-error-bg); + --docs-callout-title: var(--tri-alert-error-title); + } + + .admonition-important { + --docs-callout-border: var(--tri-alert-premium-border); + --docs-callout-bg: var(--tri-alert-premium-bg); + --docs-callout-title: var(--tri-alert-premium-title); + } +} diff --git a/assets/css/vendor/trident/manifest.json b/assets/css/vendor/trident/manifest.json new file mode 100644 index 000000000000..9c9cc19b38d5 --- /dev/null +++ b/assets/css/vendor/trident/manifest.json @@ -0,0 +1,19 @@ +{ + "package": "@docker/trident-tokens", + "version": "2.0.0-beta.3", + "repository": "https://github.com/docker/trident", + "revision": "bbc0746b17209071ceddabcb14b180fcb32b2fa9", + "license": null, + "files": { + "tri-component.css": "21d6c0ca2a19b17b3ad7e6ce9fd19e5014344fdeabbc707c7f46181a74236bd6", + "tri-elevation.css": "935c565c62ea6409c17cf0874ebaceab29298d363c7261eafafb6e7a0f92ab7a", + "tri-motion.css": "bde397fd1484793a8bb6007a69d224ac2470f1f7ff5eb1e3080a507826f2fe8f", + "tri-primitives.css": "ff0f3f18db01cbf26fa9d790b38e64f56bde491541f641d9423c5c50b0c057e4", + "tri-radius.css": "bc026830e2af72566d0c5dfaa1a68918ddfee08f7e9585f88869f831b0422a5e", + "tri-semantic.css": "71a19fcc11b8dd8ac9a79a2bb753e83827e3abc81b30367ea553349c923991a3", + "tri-spacing.css": "e2f09390c1a4523b0c6e24a30588376c6d54ffca8f8e7415438fbbfb45fb1cc5", + "tri-themes.css": "2365ca5871714ead9fb291a35cd6e208e0f79d2ec98b18614d5572685db925cd", + "tri-tokens.css": "af50705ffffed685a1e648130c2374b2d52445262451ff674072b93337112b22", + "tri-typography.css": "67f573500db670818e8b0e282ee9497e9fa444233cb5e2217567bd4f3501f94b" + } +} diff --git a/assets/css/vendor/trident/tri-component.css b/assets/css/vendor/trident/tri-component.css new file mode 100644 index 000000000000..ef6580b5079d --- /dev/null +++ b/assets/css/vendor/trident/tri-component.css @@ -0,0 +1,50 @@ +/* Auto-generated from tokens/ — DO NOT EDIT — run `pnpm run tokens:build` */ + + +@layer tri.component { +:root { + --tri-border-offset: 2px; + --tri-button-error: oklch(0.566 0.208 23); + --tri-button-premium: oklch(0.548 0.275 291.4); + --tri-button-primary: oklch(0.546 0.219 262); + --tri-button-secondary: oklch(0.55 0.016 245); + --tri-button-success: oklch(0.481 0.077 179.4); + --tri-button-warning: oklch(0.443 0.125 43.7); + --tri-button-white: oklch(1 0 0); + --tri-height-app-header-default: 3.5rem; + --tri-height-tab-indicator-inset: 1px; + --tri-repo-card-hover-border: oklch(0.546 0.219 262 / 0.56); + --tri-shadow-glow-error: 0 0 4px 0px oklch(0.69 0.199 22.3 / 0.70), 0 0 12px 2px oklch(0.69 0.199 22.3 / 0.25); + --tri-shadow-glow-running: 0 0 4px 0px oklch(0.720 0.170 145 / 0.70), 0 0 12px 2px oklch(0.720 0.170 145 / 0.25); + --tri-shadow-glow-warning: 0 0 4px 0px oklch(0.666 0.158 55.8 / 0.65), 0 0 12px 2px oklch(0.666 0.158 55.8 / 0.20); + --tri-spacing-tabs-inner: 3px; + --tri-tooltip-tooltip: oklch(0.462 0.014 245); + --tri-width-context-switcher: 220px; + --tri-width-date-picker-md: 300px; + --tri-width-date-picker-sm: 280px; + --tri-width-sidebar-collapsed: 3rem; + --tri-width-sidebar-default: 16rem; + --tri-width-sidebar-expanded: 18rem; +} + +.dark { + --tri-button-error: oklch(0.642 0.183 16.8); + --tri-button-premium: oklch(0.664 0.2 297.3); + --tri-button-primary: oklch(0.633 0.199 257.2); + --tri-button-secondary: oklch(0.661 0.014 245); + --tri-button-success: oklch(0.735 0.117 180.8); + --tri-button-warning: oklch(0.817 0.137 65.7); + --tri-repo-card-hover-border: oklch(0.633 0.199 257.2 / 0.56); + --tri-tooltip-tooltip: oklch(0.661 0.014 245); +} + +.high-contrast { + --tri-button-error: oklch(0.952 0.021 17.5); + --tri-button-premium: oklch(0.957 0.028 311.3); + --tri-button-primary: oklch(0.954 0.019 240.7); + --tri-button-secondary: oklch(0.661 0.014 245); + --tri-button-success: oklch(0.958 0.016 187.3); + --tri-button-warning: oklch(0.969 0.034 86.3); + --tri-tooltip-tooltip: oklch(0.661 0.014 245); +} +} diff --git a/assets/css/vendor/trident/tri-elevation.css b/assets/css/vendor/trident/tri-elevation.css new file mode 100644 index 000000000000..6ce1a46d9cd5 --- /dev/null +++ b/assets/css/vendor/trident/tri-elevation.css @@ -0,0 +1,35 @@ +/* Auto-generated from tokens/ — DO NOT EDIT — run `pnpm run tokens:build` */ + + +@layer tri.elevation { +:root { + --tri-elevation-floating-shadow: 0px 4px 6px -1px oklch(0 0 0 / 0.10), 0px 2px 4px -2px oklch(0 0 0 / 0.10); + --tri-elevation-floating-z: var(--tri-z-sticky); + --tri-elevation-modal-shadow: 0px 20px 25px -5px oklch(0 0 0 / 0.10), 0px 8px 10px -6px oklch(0 0 0 / 0.10); + --tri-elevation-modal-z: var(--tri-z-modal); + --tri-elevation-overlay-shadow: 0px 10px 15px -3px oklch(0 0 0 / 0.10), 0px 4px 6px -4px oklch(0 0 0 / 0.10); + --tri-elevation-overlay-z: var(--tri-z-overlay); + --tri-elevation-raised-shadow: 0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 1px 2px -1px oklch(0 0 0 / 0.10); + --tri-elevation-raised-z: var(--tri-z-dropdown); + --tri-elevation-toast-shadow: 0px 20px 25px -5px oklch(0 0 0 / 0.10), 0px 8px 10px -6px oklch(0 0 0 / 0.10); + --tri-elevation-toast-z: var(--tri-z-toast); +} +} + +@theme inline { + --z-raised: var(--tri-elevation-raised-z); + --z-floating: var(--tri-elevation-floating-z); + --z-overlay: var(--tri-elevation-overlay-z); + --z-modal: var(--tri-elevation-modal-z); + --z-toast: var(--tri-elevation-toast-z); + --z-sticky: var(--tri-z-sticky); + --z-dropdown: var(--tri-z-dropdown); +} + +@utility z-raised { z-index: var(--tri-elevation-raised-z); } +@utility z-floating { z-index: var(--tri-elevation-floating-z); } +@utility z-overlay { z-index: var(--tri-elevation-overlay-z); } +@utility z-modal { z-index: var(--tri-elevation-modal-z); } +@utility z-toast { z-index: var(--tri-elevation-toast-z); } +@utility z-sticky { z-index: var(--tri-z-sticky); } +@utility z-dropdown { z-index: var(--tri-z-dropdown); } diff --git a/assets/css/vendor/trident/tri-motion.css b/assets/css/vendor/trident/tri-motion.css new file mode 100644 index 000000000000..98e18507138d --- /dev/null +++ b/assets/css/vendor/trident/tri-motion.css @@ -0,0 +1,45 @@ +/* Auto-generated from tokens/ — DO NOT EDIT — run `pnpm run tokens:build` */ + +@layer tri.motion { +:root { + --tri-duration-expressive: 200ms; + --tri-duration-fast: 100ms; + --tri-duration-instant: 50ms; + --tri-duration-normal: 200ms; + --tri-duration-productive: 120ms; + --tri-duration-slow: 300ms; + --tri-duration-slower: 500ms; + --tri-duration-structural: 300ms; + --tri-ease-default: cubic-bezier(0.2, 0, 0, 1); + --tri-ease-expressive: cubic-bezier(0.2, 0, 0, 1); + --tri-ease-in: cubic-bezier(0.4, 0, 1, 1); + --tri-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); + --tri-ease-out: cubic-bezier(0, 0, 0.2, 1); + --tri-ease-productive: cubic-bezier(0.2, 0, 0.4, 1); +} +} +@theme inline { + --duration-expressive: var(--tri-duration-expressive); + --duration-fast: var(--tri-duration-fast); + --duration-instant: var(--tri-duration-instant); + --duration-normal: var(--tri-duration-normal); + --duration-productive: var(--tri-duration-productive); + --duration-slow: var(--tri-duration-slow); + --duration-slower: var(--tri-duration-slower); + --duration-structural: var(--tri-duration-structural); + --ease-default: var(--tri-ease-default); + --ease-expressive: var(--tri-ease-expressive); + --ease-in: var(--tri-ease-in); + --ease-in-out: var(--tri-ease-in-out); + --ease-out: var(--tri-ease-out); + --ease-productive: var(--tri-ease-productive); +} + +@utility duration-expressive { transition-duration: var(--tri-duration-expressive); } +@utility duration-fast { transition-duration: var(--tri-duration-fast); } +@utility duration-instant { transition-duration: var(--tri-duration-instant); } +@utility duration-normal { transition-duration: var(--tri-duration-normal); } +@utility duration-productive { transition-duration: var(--tri-duration-productive); } +@utility duration-slow { transition-duration: var(--tri-duration-slow); } +@utility duration-slower { transition-duration: var(--tri-duration-slower); } +@utility duration-structural { transition-duration: var(--tri-duration-structural); } diff --git a/assets/css/vendor/trident/tri-primitives.css b/assets/css/vendor/trident/tri-primitives.css new file mode 100644 index 000000000000..0f5fe2c34832 --- /dev/null +++ b/assets/css/vendor/trident/tri-primitives.css @@ -0,0 +1,163 @@ +/* Auto-generated from tokens/ — DO NOT EDIT — run `pnpm run tokens:build` */ + + +@layer tri.primitives { +:root { + --tri-black-100: oklch(0 0 0); + --tri-black-12: oklch(0 0 0 / 0.12); + --tri-black-16: oklch(0 0 0 / 0.16); + --tri-black-24: oklch(0 0 0 / 0.24); + --tri-black-32: oklch(0 0 0 / 0.32); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-black-4: oklch(0 0 0 / 0.04); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-black-40: oklch(0 0 0 / 0.4); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-black-56: oklch(0 0 0 / 0.56); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-black-64: oklch(0 0 0 / 0.64); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-black-8: oklch(0 0 0 / 0.08); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-black-80: oklch(0 0 0 / 0.8); + --tri-black-main: oklch(0 0 0); + --tri-blue-100: oklch(0.933 0.029 241.4); + --tri-blue-200: oklch(0.892 0.049 242.8); + --tri-blue-300: oklch(0.806 0.09 242.2); + --tri-blue-400: oklch(0.64 0.169 249.4); + --tri-blue-450: oklch(0.633 0.199 257.2); + --tri-blue-50: oklch(0.954 0.019 240.7); + --tri-blue-500: oklch(0.546 0.219 262); + --tri-blue-600: oklch(0.455 0.198 262.2); + --tri-blue-700: oklch(0.353 0.161 261.8); + --tri-blue-800: oklch(0.208 0.081 259.1); + --tri-blue-900: oklch(0.204 0.122 264.1); + --tri-gray-100: oklch(0.968 0.005 245); + --tri-gray-200: oklch(0.913 0.007 245); + --tri-gray-300: oklch(0.832 0.01 245); + --tri-gray-400: oklch(0.661 0.014 245); + --tri-gray-50: oklch(0.985 0.004 245); + --tri-gray-500: oklch(0.55 0.016 245); + --tri-gray-600: oklch(0.462 0.014 245); + --tri-gray-700: oklch(0.366 0.012 245); + --tri-gray-775: oklch(0.23 0.014 245); + --tri-gray-800: oklch(0.214 0.008 245); + --tri-gray-850: oklch(0.2 0.014 245); + --tri-gray-900: oklch(0.184 0.008 245); + --tri-gray-925: oklch(0.16 0.012 245); + --tri-gray-950: oklch(0.1 0.008 245); + --tri-green-100: oklch(0.909 0.039 178.6); + --tri-green-200: oklch(0.817 0.082 175); + --tri-green-300: oklch(0.73 0.089 176.7); + --tri-green-400: oklch(0.642 0.097 178.3); + --tri-green-50: oklch(0.958 0.016 187.3); + --tri-green-500: oklch(0.544 0.08 182.8); + --tri-green-600: oklch(0.481 0.077 179.4); + --tri-green-700: oklch(0.424 0.066 182.1); + --tri-green-800: oklch(0.268 0.038 183.9); + --tri-lime-100: oklch(0.91 0.06 145); + --tri-lime-200: oklch(0.85 0.1 145); + --tri-lime-300: oklch(0.79 0.14 145); + --tri-lime-400: oklch(0.72 0.17 145); + --tri-lime-50: oklch(0.96 0.03 145); + --tri-lime-500: oklch(0.61 0.19 145); + --tri-lime-600: oklch(0.5 0.2 145); + --tri-lime-700: oklch(0.4 0.17 145); + --tri-lime-800: oklch(0.27 0.11 145); + --tri-orange-100: oklch(0.919 0.078 85.1); + --tri-orange-200: oklch(0.821 0.14 72.9); + --tri-orange-300: oklch(0.747 0.15 65.3); + --tri-orange-400: oklch(0.673 0.16 57.7); + --tri-orange-450: oklch(0.666 0.158 55.8); + --tri-orange-50: oklch(0.969 0.034 86.3); + --tri-orange-500: oklch(0.564 0.149 49.6); + --tri-orange-600: oklch(0.52 0.143 44.4); + --tri-orange-700: oklch(0.443 0.125 43.7); + --tri-orange-800: oklch(0.274 0.071 48.2); + --tri-pink-100: oklch(0.933 0.054 331.4); + --tri-pink-200: oklch(0.897 0.084 332); + --tri-pink-300: oklch(0.836 0.139 333); + --tri-pink-400: oklch(0.69 0.245 329.8); + --tri-pink-50: oklch(0.951 0.039 331.1); + --tri-pink-500: oklch(0.587 0.256 330.8); + --tri-pink-600: oklch(0.516 0.234 330.6); + --tri-pink-700: oklch(0.426 0.195 329.6); + --tri-pink-800: oklch(0.268 0.122 331.2); + --tri-red-100: oklch(0.922 0.039 17.2); + --tri-red-200: oklch(0.861 0.075 16.7); + --tri-red-300: oklch(0.773 0.134 18.9); + --tri-red-400: oklch(0.69 0.199 22.3); + --tri-red-50: oklch(0.952 0.021 17.5); + --tri-red-500: oklch(0.566 0.208 23); + --tri-red-600: oklch(0.507 0.184 21.7); + --tri-red-700: oklch(0.416 0.148 22.1); + --tri-red-800: oklch(0.225 0.068 16.7); + --tri-shadow-2xl: 0px 25px 50px -12px oklch(0 0 0 / 0.25); + --tri-shadow-2xs: 0px 1px 0px 0px oklch(0 0 0 / 0.05); + --tri-shadow-lg: 0px 10px 15px -3px oklch(0 0 0 / 0.10), 0px 4px 6px -4px oklch(0 0 0 / 0.10); + --tri-shadow-md: 0px 4px 6px -1px oklch(0 0 0 / 0.10), 0px 2px 4px -2px oklch(0 0 0 / 0.10); + --tri-shadow-sm: 0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 1px 2px -1px oklch(0 0 0 / 0.10); + --tri-shadow-xl: 0px 20px 25px -5px oklch(0 0 0 / 0.10), 0px 8px 10px -6px oklch(0 0 0 / 0.10); + --tri-shadow-xs: 0px 1px 2px 0px oklch(0 0 0 / 0.05); + --tri-terminal-blue-300: oklch(0.74 0.17 262); + --tri-terminal-blue-400: oklch(0.68 0.18 262); + --tri-terminal-blue-600: oklch(0.44 0.18 262); + --tri-terminal-blue-700: oklch(0.4 0.17 262); + --tri-terminal-cyan-300: oklch(0.78 0.09 195); + --tri-terminal-cyan-400: oklch(0.72 0.1 195); + --tri-terminal-cyan-600: oklch(0.4 0.1 195); + --tri-terminal-cyan-700: oklch(0.36 0.09 195); + --tri-terminal-green-300: oklch(0.78 0.15 155); + --tri-terminal-green-400: oklch(0.72 0.17 145); + --tri-terminal-green-600: oklch(0.38 0.15 145); + --tri-terminal-green-700: oklch(0.34 0.13 155); + --tri-terminal-red-300: oklch(0.78 0.17 25); + --tri-terminal-red-400: oklch(0.72 0.2 25); + --tri-terminal-red-600: oklch(0.48 0.2 25); + --tri-terminal-red-700: oklch(0.44 0.17 25); + --tri-terminal-violet-300: oklch(0.74 0.19 290); + --tri-terminal-violet-400: oklch(0.68 0.2 290); + --tri-terminal-violet-600: oklch(0.46 0.2 290); + --tri-terminal-violet-700: oklch(0.42 0.19 290); + --tri-terminal-yellow-300: oklch(0.81 0.14 65); + --tri-terminal-yellow-400: oklch(0.75 0.15 65); + --tri-terminal-yellow-600: oklch(0.42 0.14 65); + --tri-terminal-yellow-700: oklch(0.38 0.13 75); + --tri-violet-100: oklch(0.9 0.062 307.2); + --tri-violet-200: oklch(0.845 0.095 304.4); + --tri-violet-300: oklch(0.789 0.128 301.6); + --tri-violet-400: oklch(0.63 0.225 295.4); + --tri-violet-50: oklch(0.957 0.028 311.3); + --tri-violet-500: oklch(0.548 0.275 291.4); + --tri-violet-600: oklch(0.489 0.275 290.9); + --tri-violet-700: oklch(0.414 0.232 291.7); + --tri-violet-800: oklch(0.208 0.111 300.8); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-white-100: oklch(1 0 0); + --tri-white-12: oklch(1 0 0 / 0.12); + --tri-white-16: oklch(1 0 0 / 0.16); + --tri-white-24: oklch(1 0 0 / 0.24); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-white-32: oklch(1 0 0 / 0.32); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-white-4: oklch(1 0 0 / 0.04); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-white-40: oklch(1 0 0 / 0.4); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-white-56: oklch(1 0 0 / 0.56); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-white-64: oklch(1 0 0 / 0.64); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-white-8: oklch(1 0 0 / 0.08); + /* DEPRECATED: Not referenced by any overlay/scrim/surface token today. (remove in 4.0.0) */ + --tri-white-80: oklch(1 0 0 / 0.8); + --tri-white-main: oklch(1 0 0); + --tri-z-base: 0; + --tri-z-dropdown: 50; + --tri-z-modal: 300; + --tri-z-overlay: 200; + --tri-z-popover: 400; + --tri-z-sticky: 100; + --tri-z-toast: 500; +} +} diff --git a/assets/css/vendor/trident/tri-radius.css b/assets/css/vendor/trident/tri-radius.css new file mode 100644 index 000000000000..4de7967b1aab --- /dev/null +++ b/assets/css/vendor/trident/tri-radius.css @@ -0,0 +1,31 @@ +/* Auto-generated from tokens/ — DO NOT EDIT — run `pnpm run tokens:build` */ + +@layer tri.radius { +:root { + --tri-radius-2xl: 16px; + --tri-radius-3xl: 24px; + --tri-radius-4xl: 32px; + --tri-radius-default: 5px; + --tri-radius-full: 9999px; + --tri-radius-lg: 8px; + --tri-radius-md: 6px; + --tri-radius-none: 0px; + --tri-radius-sm: 4px; + --tri-radius-xl: 12px; + --tri-radius-xs: 2px; +} +} + +@theme inline { + --radius-2xl: var(--tri-radius-2xl); + --radius-3xl: var(--tri-radius-3xl); + --radius-4xl: var(--tri-radius-4xl); + --radius-default: var(--tri-radius-default); + --radius-full: var(--tri-radius-full); + --radius-lg: var(--tri-radius-lg); + --radius-md: var(--tri-radius-md); + --radius-none: var(--tri-radius-none); + --radius-sm: var(--tri-radius-sm); + --radius-xl: var(--tri-radius-xl); + --radius-xs: var(--tri-radius-xs); +} diff --git a/assets/css/vendor/trident/tri-semantic.css b/assets/css/vendor/trident/tri-semantic.css new file mode 100644 index 000000000000..a04fbf53412f --- /dev/null +++ b/assets/css/vendor/trident/tri-semantic.css @@ -0,0 +1,1280 @@ +/* Auto-generated from tokens/ — DO NOT EDIT — run `pnpm run tokens:build` */ + +@custom-variant dark (&:is(.dark *)); +@custom-variant high-contrast (&:is(.high-contrast *)); + +@theme inline { + --color-accent: var(--tri-accent); + --color-accent-active: var(--tri-accent-active); + --color-accent-foreground: var(--tri-accent-foreground); + --color-accent-hover: var(--tri-accent-hover); + --color-accent-subtle: var(--tri-accent-subtle); + --color-accent-track: var(--tri-accent-track); + --color-accent-track-fill: var(--tri-accent-track-fill); + --color-accent-wash: var(--tri-accent-wash); + --color-action-disabled: var(--tri-action-disabled); + --color-action-disabled-bg: var(--tri-action-disabled-bg); + --color-action-focus: var(--tri-action-focus); + --color-action-hover: var(--tri-action-hover); + --color-action-selected: var(--tri-action-selected); + --color-active-overlay: var(--tri-active-overlay); + --color-alert-error-bg: var(--tri-alert-error-bg); + --color-alert-error-border: var(--tri-alert-error-border); + --color-alert-error-fg: var(--tri-alert-error-fg); + --color-alert-error-icon: var(--tri-alert-error-icon); + --color-alert-error-title: var(--tri-alert-error-title); + --color-alert-info-bg: var(--tri-alert-info-bg); + --color-alert-info-border: var(--tri-alert-info-border); + --color-alert-info-fg: var(--tri-alert-info-fg); + --color-alert-info-icon: var(--tri-alert-info-icon); + --color-alert-info-title: var(--tri-alert-info-title); + --color-alert-premium-bg: var(--tri-alert-premium-bg); + --color-alert-premium-border: var(--tri-alert-premium-border); + --color-alert-premium-fg: var(--tri-alert-premium-fg); + --color-alert-premium-icon: var(--tri-alert-premium-icon); + --color-alert-premium-title: var(--tri-alert-premium-title); + --color-alert-success-bg: var(--tri-alert-success-bg); + --color-alert-success-border: var(--tri-alert-success-border); + --color-alert-success-fg: var(--tri-alert-success-fg); + --color-alert-success-icon: var(--tri-alert-success-icon); + --color-alert-success-title: var(--tri-alert-success-title); + --color-alert-warning-bg: var(--tri-alert-warning-bg); + --color-alert-warning-border: var(--tri-alert-warning-border); + --color-alert-warning-fg: var(--tri-alert-warning-fg); + --color-alert-warning-icon: var(--tri-alert-warning-icon); + --color-alert-warning-title: var(--tri-alert-warning-title); + --color-artifact: var(--tri-artifact); + --color-artifact-foreground: var(--tri-artifact-foreground); + --color-background: var(--tri-background); + --color-background-paper-elevation-0: var(--tri-background-paper-elevation-0); + --color-background-paper-elevation-1: var(--tri-background-paper-elevation-1); + --color-background-paper-elevation-2: var(--tri-background-paper-elevation-2); + --color-background-paper-elevation-3: var(--tri-background-paper-elevation-3); + --color-background-paper-elevation-4: var(--tri-background-paper-elevation-4); + --color-background-primary: var(--tri-background-primary); + --color-background-secondary: var(--tri-background-secondary); + --color-blockquote-caution: var(--tri-blockquote-caution); + --color-blockquote-caution-bg: var(--tri-blockquote-caution-bg); + --color-blockquote-caution-title: var(--tri-blockquote-caution-title); + --color-blockquote-important: var(--tri-blockquote-important); + --color-blockquote-important-bg: var(--tri-blockquote-important-bg); + --color-blockquote-important-title: var(--tri-blockquote-important-title); + --color-blockquote-note: var(--tri-blockquote-note); + --color-blockquote-note-bg: var(--tri-blockquote-note-bg); + --color-blockquote-note-title: var(--tri-blockquote-note-title); + --color-blockquote-tip: var(--tri-blockquote-tip); + --color-blockquote-tip-bg: var(--tri-blockquote-tip-bg); + --color-blockquote-tip-title: var(--tri-blockquote-tip-title); + --color-blockquote-warning: var(--tri-blockquote-warning); + --color-blockquote-warning-bg: var(--tri-blockquote-warning-bg); + --color-blockquote-warning-title: var(--tri-blockquote-warning-title); + --color-border: var(--tri-border); + --color-border-accent: var(--tri-border-accent); + --color-border-subtle: var(--tri-border-subtle); + --color-canvas-bg: var(--tri-canvas-bg); + --color-card: var(--tri-card); + --color-card-foreground: var(--tri-card-foreground); + --color-chart-1: var(--tri-chart-1); + --color-chart-2: var(--tri-chart-2); + --color-chart-3: var(--tri-chart-3); + --color-chart-4: var(--tri-chart-4); + --color-chart-5: var(--tri-chart-5); + --color-chart-6: var(--tri-chart-6); + --color-chart-7: var(--tri-chart-7); + --color-chart-8: var(--tri-chart-8); + --color-destructive: var(--tri-destructive); + --color-destructive-active: var(--tri-destructive-active); + --color-destructive-foreground: var(--tri-destructive-foreground); + --color-destructive-hover: var(--tri-destructive-hover); + --color-destructive-link-hover: var(--tri-destructive-link-hover); + --color-destructive-ring: var(--tri-destructive-ring); + --color-destructive-subtle: var(--tri-destructive-subtle); + --color-destructive-wash: var(--tri-destructive-wash); + --color-diff-added-bg: var(--tri-diff-added-bg); + --color-diff-added-text: var(--tri-diff-added-text); + --color-diff-hunk-bg: var(--tri-diff-hunk-bg); + --color-diff-removed-bg: var(--tri-diff-removed-bg); + --color-diff-removed-text: var(--tri-diff-removed-text); + --color-disabled-foreground: var(--tri-disabled-foreground); + --color-foreground: var(--tri-foreground); + --color-grade-a: var(--tri-grade-a); + --color-grade-a-bg: var(--tri-grade-a-bg); + --color-grade-a-border: var(--tri-grade-a-border); + --color-grade-a-fg: var(--tri-grade-a-fg); + --color-grade-a-text: var(--tri-grade-a-text); + --color-grade-b: var(--tri-grade-b); + --color-grade-b-bg: var(--tri-grade-b-bg); + --color-grade-b-border: var(--tri-grade-b-border); + --color-grade-b-fg: var(--tri-grade-b-fg); + --color-grade-b-text: var(--tri-grade-b-text); + --color-grade-c: var(--tri-grade-c); + --color-grade-c-bg: var(--tri-grade-c-bg); + --color-grade-c-border: var(--tri-grade-c-border); + --color-grade-c-fg: var(--tri-grade-c-fg); + --color-grade-c-text: var(--tri-grade-c-text); + --color-grade-d: var(--tri-grade-d); + --color-grade-d-bg: var(--tri-grade-d-bg); + --color-grade-d-border: var(--tri-grade-d-border); + --color-grade-d-fg: var(--tri-grade-d-fg); + --color-grade-d-text: var(--tri-grade-d-text); + --color-grade-e: var(--tri-grade-e); + --color-grade-e-bg: var(--tri-grade-e-bg); + --color-grade-e-border: var(--tri-grade-e-border); + --color-grade-e-fg: var(--tri-grade-e-fg); + --color-grade-e-text: var(--tri-grade-e-text); + --color-grade-f: var(--tri-grade-f); + --color-grade-f-bg: var(--tri-grade-f-bg); + --color-grade-f-border: var(--tri-grade-f-border); + --color-grade-f-fg: var(--tri-grade-f-fg); + --color-grade-f-text: var(--tri-grade-f-text); + --color-header-accent: var(--tri-header-accent); + --color-header-accent-foreground: var(--tri-header-accent-foreground); + --color-header-foreground: var(--tri-header-foreground); + --color-header-foreground-muted: var(--tri-header-foreground-muted); + --color-header-from: var(--tri-header-from); + --color-header-ring: var(--tri-header-ring); + --color-header-to: var(--tri-header-to); + --color-hover-overlay: var(--tri-hover-overlay); + --color-info: var(--tri-info); + --color-info-foreground: var(--tri-info-foreground); + --color-input: var(--tri-input); + --color-input-bg: var(--tri-input-bg); + --color-invalid-ring: var(--tri-invalid-ring); + --color-link-hover: var(--tri-link-hover); + --color-log-warn-bg: var(--tri-log-warn-bg); + --color-muted: var(--tri-muted); + --color-muted-foreground: var(--tri-muted-foreground); + --color-muted-foreground-decoration: var(--tri-muted-foreground-decoration); + --color-muted-foreground-track: var(--tri-muted-foreground-track); + --color-neutral-focus: var(--tri-neutral-focus); + --color-neutral-focus-visible: var(--tri-neutral-focus-visible); + --color-neutral-hover: var(--tri-neutral-hover); + --color-neutral-outlined-border: var(--tri-neutral-outlined-border); + --color-neutral-selected: var(--tri-neutral-selected); + --color-overlay-backdrop: var(--tri-overlay-backdrop); + --color-overlay-frosted: var(--tri-overlay-frosted); + --color-overlay-scrim: var(--tri-overlay-scrim); + --color-popover: var(--tri-popover); + --color-popover-foreground: var(--tri-popover-foreground); + --color-premium: var(--tri-premium); + --color-premium-foreground: var(--tri-premium-foreground); + --color-premium-hover: var(--tri-premium-hover); + --color-primary: var(--tri-primary); + --color-primary-foreground: var(--tri-primary-foreground); + --color-primary-foreground-wash: var(--tri-primary-foreground-wash); + --color-primary-subtle: var(--tri-primary-subtle); + --color-primary-wash: var(--tri-primary-wash); + --color-product-gradient-admin-from: var(--tri-product-gradient-admin-from); + --color-product-gradient-admin-to: var(--tri-product-gradient-admin-to); + --color-product-gradient-build-from: var(--tri-product-gradient-build-from); + --color-product-gradient-build-to: var(--tri-product-gradient-build-to); + --color-product-gradient-desktop-from: var(--tri-product-gradient-desktop-from); + --color-product-gradient-desktop-to: var(--tri-product-gradient-desktop-to); + --color-product-gradient-docs-from: var(--tri-product-gradient-docs-from); + --color-product-gradient-docs-to: var(--tri-product-gradient-docs-to); + --color-product-gradient-hub-from: var(--tri-product-gradient-hub-from); + --color-product-gradient-hub-to: var(--tri-product-gradient-hub-to); + --color-product-gradient-scout-from: var(--tri-product-gradient-scout-from); + --color-product-gradient-scout-to: var(--tri-product-gradient-scout-to); + --color-promo: var(--tri-promo); + --color-promo-foreground: var(--tri-promo-foreground); + --color-ring: var(--tri-ring); + --color-scrollbar-thumb: var(--tri-scrollbar-thumb); + --color-scrollbar-thumb-hover: var(--tri-scrollbar-thumb-hover); + --color-scrollbar-track: var(--tri-scrollbar-track); + --color-secondary: var(--tri-secondary); + --color-secondary-foreground: var(--tri-secondary-foreground); + --color-secondary-hover: var(--tri-secondary-hover); + --color-selected-overlay: var(--tri-selected-overlay); + --color-severity-critical: var(--tri-severity-critical); + --color-severity-critical-fg: var(--tri-severity-critical-fg); + --color-severity-high: var(--tri-severity-high); + --color-severity-high-fg: var(--tri-severity-high-fg); + --color-severity-info: var(--tri-severity-info); + --color-severity-info-fg: var(--tri-severity-info-fg); + --color-severity-low: var(--tri-severity-low); + --color-severity-low-border: var(--tri-severity-low-border); + --color-severity-low-fg: var(--tri-severity-low-fg); + --color-severity-medium: var(--tri-severity-medium); + --color-severity-medium-border: var(--tri-severity-medium-border); + --color-severity-medium-fg: var(--tri-severity-medium-fg); + --color-severity-none: var(--tri-severity-none); + --color-severity-none-fg: var(--tri-severity-none-fg); + --color-sidebar: var(--tri-sidebar); + --color-sidebar-accent: var(--tri-sidebar-accent); + --color-sidebar-accent-foreground: var(--tri-sidebar-accent-foreground); + --color-sidebar-border: var(--tri-sidebar-border); + --color-sidebar-foreground: var(--tri-sidebar-foreground); + --color-sidebar-foreground-muted: var(--tri-sidebar-foreground-muted); + --color-sidebar-primary: var(--tri-sidebar-primary); + --color-sidebar-primary-foreground: var(--tri-sidebar-primary-foreground); + --color-sidebar-ring: var(--tri-sidebar-ring); + --color-status-active: var(--tri-status-active); + --color-status-deprecated: var(--tri-status-deprecated); + --color-status-eol: var(--tri-status-eol); + --color-status-error: var(--tri-status-error); + --color-status-error-text: var(--tri-status-error-text); + --color-status-paused: var(--tri-status-paused); + --color-status-paused-text: var(--tri-status-paused-text); + --color-status-running: var(--tri-status-running); + --color-status-running-text: var(--tri-status-running-text); + --color-status-stopped: var(--tri-status-stopped); + --color-success: var(--tri-success); + --color-success-foreground: var(--tri-success-foreground); + --color-success-hover: var(--tri-success-hover); + --color-success-wash: var(--tri-success-wash); + --color-syntax-attr: var(--tri-syntax-attr); + --color-syntax-command: var(--tri-syntax-command); + --color-syntax-comment: var(--tri-syntax-comment); + --color-syntax-directive: var(--tri-syntax-directive); + --color-syntax-keyword: var(--tri-syntax-keyword); + --color-syntax-number: var(--tri-syntax-number); + --color-syntax-string: var(--tri-syntax-string); + --color-syntax-type: var(--tri-syntax-type); + --color-syntax-value: var(--tri-syntax-value); + --color-tag-default-bg: var(--tri-tag-default-bg); + --color-tag-default-fg: var(--tri-tag-default-fg); + --color-tag-destructive-bg: var(--tri-tag-destructive-bg); + --color-tag-destructive-fg: var(--tri-tag-destructive-fg); + --color-tag-info-bg: var(--tri-tag-info-bg); + --color-tag-info-fg: var(--tri-tag-info-fg); + --color-tag-premium-bg: var(--tri-tag-premium-bg); + --color-tag-premium-fg: var(--tri-tag-premium-fg); + --color-tag-primary-bg: var(--tri-tag-primary-bg); + --color-tag-primary-fg: var(--tri-tag-primary-fg); + --color-tag-success-bg: var(--tri-tag-success-bg); + --color-tag-success-fg: var(--tri-tag-success-fg); + --color-tag-warning-bg: var(--tri-tag-warning-bg); + --color-tag-warning-fg: var(--tri-tag-warning-fg); + --color-terminal-bg: var(--tri-terminal-bg); + --color-terminal-black: var(--tri-terminal-black); + --color-terminal-blue: var(--tri-terminal-blue); + --color-terminal-border: var(--tri-terminal-border); + --color-terminal-bright-black: var(--tri-terminal-bright-black); + --color-terminal-bright-blue: var(--tri-terminal-bright-blue); + --color-terminal-bright-cyan: var(--tri-terminal-bright-cyan); + --color-terminal-bright-green: var(--tri-terminal-bright-green); + --color-terminal-bright-magenta: var(--tri-terminal-bright-magenta); + --color-terminal-bright-red: var(--tri-terminal-bright-red); + --color-terminal-bright-white: var(--tri-terminal-bright-white); + --color-terminal-bright-yellow: var(--tri-terminal-bright-yellow); + --color-terminal-cursor: var(--tri-terminal-cursor); + --color-terminal-cyan: var(--tri-terminal-cyan); + --color-terminal-green: var(--tri-terminal-green); + --color-terminal-magenta: var(--tri-terminal-magenta); + --color-terminal-muted: var(--tri-terminal-muted); + --color-terminal-red: var(--tri-terminal-red); + --color-terminal-surface: var(--tri-terminal-surface); + --color-terminal-text: var(--tri-terminal-text); + --color-terminal-white: var(--tri-terminal-white); + --color-terminal-yellow: var(--tri-terminal-yellow); + --color-tertiary-foreground: var(--tri-tertiary-foreground); + --color-text-error: var(--tri-text-error); + --color-text-info: var(--tri-text-info); + --color-text-premium: var(--tri-text-premium); + --color-text-success: var(--tri-text-success); + --color-text-text: var(--tri-text-text); + --color-text-warning: var(--tri-text-warning); + --color-tooltip-kbd-bg: var(--tri-tooltip-kbd-bg); + --color-trust-community: var(--tri-trust-community); + --color-trust-community-bg: var(--tri-trust-community-bg); + --color-trust-community-border: var(--tri-trust-community-border); + --color-trust-community-text: var(--tri-trust-community-text); + --color-trust-hardened: var(--tri-trust-hardened); + --color-trust-hardened-bg: var(--tri-trust-hardened-bg); + --color-trust-hardened-border: var(--tri-trust-hardened-border); + --color-trust-hardened-text: var(--tri-trust-hardened-text); + --color-trust-official: var(--tri-trust-official); + --color-trust-official-bg: var(--tri-trust-official-bg); + --color-trust-official-border: var(--tri-trust-official-border); + --color-trust-official-text: var(--tri-trust-official-text); + --color-trust-verified: var(--tri-trust-verified); + --color-trust-verified-bg: var(--tri-trust-verified-bg); + --color-trust-verified-border: var(--tri-trust-verified-border); + --color-trust-verified-text: var(--tri-trust-verified-text); + --color-warning: var(--tri-warning); + --color-warning-foreground: var(--tri-warning-foreground); + --color-warning-hover: var(--tri-warning-hover); + --color-warning-subtle: var(--tri-warning-subtle); + --color-warning-wash: var(--tri-warning-wash); + --color-tri-black-100: var(--tri-black-100); + --color-tri-black-12: var(--tri-black-12); + --color-tri-black-16: var(--tri-black-16); + --color-tri-black-24: var(--tri-black-24); + --color-tri-black-32: var(--tri-black-32); + --color-tri-black-4: var(--tri-black-4); + --color-tri-black-40: var(--tri-black-40); + --color-tri-black-56: var(--tri-black-56); + --color-tri-black-64: var(--tri-black-64); + --color-tri-black-8: var(--tri-black-8); + --color-tri-black-80: var(--tri-black-80); + --color-tri-black-main: var(--tri-black-main); + --color-tri-blue-100: var(--tri-blue-100); + --color-tri-blue-200: var(--tri-blue-200); + --color-tri-blue-300: var(--tri-blue-300); + --color-tri-blue-400: var(--tri-blue-400); + --color-tri-blue-450: var(--tri-blue-450); + --color-tri-blue-50: var(--tri-blue-50); + --color-tri-blue-500: var(--tri-blue-500); + --color-tri-blue-600: var(--tri-blue-600); + --color-tri-blue-700: var(--tri-blue-700); + --color-tri-blue-800: var(--tri-blue-800); + --color-tri-blue-900: var(--tri-blue-900); + --color-tri-gray-100: var(--tri-gray-100); + --color-tri-gray-200: var(--tri-gray-200); + --color-tri-gray-300: var(--tri-gray-300); + --color-tri-gray-400: var(--tri-gray-400); + --color-tri-gray-50: var(--tri-gray-50); + --color-tri-gray-500: var(--tri-gray-500); + --color-tri-gray-600: var(--tri-gray-600); + --color-tri-gray-700: var(--tri-gray-700); + --color-tri-gray-775: var(--tri-gray-775); + --color-tri-gray-800: var(--tri-gray-800); + --color-tri-gray-850: var(--tri-gray-850); + --color-tri-gray-900: var(--tri-gray-900); + --color-tri-gray-925: var(--tri-gray-925); + --color-tri-gray-950: var(--tri-gray-950); + --color-tri-green-100: var(--tri-green-100); + --color-tri-green-200: var(--tri-green-200); + --color-tri-green-300: var(--tri-green-300); + --color-tri-green-400: var(--tri-green-400); + --color-tri-green-50: var(--tri-green-50); + --color-tri-green-500: var(--tri-green-500); + --color-tri-green-600: var(--tri-green-600); + --color-tri-green-700: var(--tri-green-700); + --color-tri-green-800: var(--tri-green-800); + --color-tri-lime-100: var(--tri-lime-100); + --color-tri-lime-200: var(--tri-lime-200); + --color-tri-lime-300: var(--tri-lime-300); + --color-tri-lime-400: var(--tri-lime-400); + --color-tri-lime-50: var(--tri-lime-50); + --color-tri-lime-500: var(--tri-lime-500); + --color-tri-lime-600: var(--tri-lime-600); + --color-tri-lime-700: var(--tri-lime-700); + --color-tri-lime-800: var(--tri-lime-800); + --color-tri-orange-100: var(--tri-orange-100); + --color-tri-orange-200: var(--tri-orange-200); + --color-tri-orange-300: var(--tri-orange-300); + --color-tri-orange-400: var(--tri-orange-400); + --color-tri-orange-450: var(--tri-orange-450); + --color-tri-orange-50: var(--tri-orange-50); + --color-tri-orange-500: var(--tri-orange-500); + --color-tri-orange-600: var(--tri-orange-600); + --color-tri-orange-700: var(--tri-orange-700); + --color-tri-orange-800: var(--tri-orange-800); + --color-tri-pink-100: var(--tri-pink-100); + --color-tri-pink-200: var(--tri-pink-200); + --color-tri-pink-300: var(--tri-pink-300); + --color-tri-pink-400: var(--tri-pink-400); + --color-tri-pink-50: var(--tri-pink-50); + --color-tri-pink-500: var(--tri-pink-500); + --color-tri-pink-600: var(--tri-pink-600); + --color-tri-pink-700: var(--tri-pink-700); + --color-tri-pink-800: var(--tri-pink-800); + --color-tri-red-100: var(--tri-red-100); + --color-tri-red-200: var(--tri-red-200); + --color-tri-red-300: var(--tri-red-300); + --color-tri-red-400: var(--tri-red-400); + --color-tri-red-50: var(--tri-red-50); + --color-tri-red-500: var(--tri-red-500); + --color-tri-red-600: var(--tri-red-600); + --color-tri-red-700: var(--tri-red-700); + --color-tri-red-800: var(--tri-red-800); + --color-tri-terminal-blue-300: var(--tri-terminal-blue-300); + --color-tri-terminal-blue-400: var(--tri-terminal-blue-400); + --color-tri-terminal-blue-600: var(--tri-terminal-blue-600); + --color-tri-terminal-blue-700: var(--tri-terminal-blue-700); + --color-tri-terminal-cyan-300: var(--tri-terminal-cyan-300); + --color-tri-terminal-cyan-400: var(--tri-terminal-cyan-400); + --color-tri-terminal-cyan-600: var(--tri-terminal-cyan-600); + --color-tri-terminal-cyan-700: var(--tri-terminal-cyan-700); + --color-tri-terminal-green-300: var(--tri-terminal-green-300); + --color-tri-terminal-green-400: var(--tri-terminal-green-400); + --color-tri-terminal-green-600: var(--tri-terminal-green-600); + --color-tri-terminal-green-700: var(--tri-terminal-green-700); + --color-tri-terminal-red-300: var(--tri-terminal-red-300); + --color-tri-terminal-red-400: var(--tri-terminal-red-400); + --color-tri-terminal-red-600: var(--tri-terminal-red-600); + --color-tri-terminal-red-700: var(--tri-terminal-red-700); + --color-tri-terminal-violet-300: var(--tri-terminal-violet-300); + --color-tri-terminal-violet-400: var(--tri-terminal-violet-400); + --color-tri-terminal-violet-600: var(--tri-terminal-violet-600); + --color-tri-terminal-violet-700: var(--tri-terminal-violet-700); + --color-tri-terminal-yellow-300: var(--tri-terminal-yellow-300); + --color-tri-terminal-yellow-400: var(--tri-terminal-yellow-400); + --color-tri-terminal-yellow-600: var(--tri-terminal-yellow-600); + --color-tri-terminal-yellow-700: var(--tri-terminal-yellow-700); + --color-tri-violet-100: var(--tri-violet-100); + --color-tri-violet-200: var(--tri-violet-200); + --color-tri-violet-300: var(--tri-violet-300); + --color-tri-violet-400: var(--tri-violet-400); + --color-tri-violet-50: var(--tri-violet-50); + --color-tri-violet-500: var(--tri-violet-500); + --color-tri-violet-600: var(--tri-violet-600); + --color-tri-violet-700: var(--tri-violet-700); + --color-tri-violet-800: var(--tri-violet-800); + --color-tri-white-100: var(--tri-white-100); + --color-tri-white-12: var(--tri-white-12); + --color-tri-white-16: var(--tri-white-16); + --color-tri-white-24: var(--tri-white-24); + --color-tri-white-32: var(--tri-white-32); + --color-tri-white-4: var(--tri-white-4); + --color-tri-white-40: var(--tri-white-40); + --color-tri-white-56: var(--tri-white-56); + --color-tri-white-64: var(--tri-white-64); + --color-tri-white-8: var(--tri-white-8); + --color-tri-white-80: var(--tri-white-80); + --color-tri-white-main: var(--tri-white-main); +} +@layer tri.semantic { +:root { + --tri-accent: oklch(0.954 0.019 240.7); + --tri-accent-active: oklch(0.353 0.161 261.8); + --tri-accent-foreground: oklch(0.184 0.008 245); + --tri-accent-hover: oklch(0.455 0.198 262.2); + --tri-accent-subtle: oklch(0.455 0.198 262.2 / 0.08); + --tri-accent-track: oklch(0.455 0.198 262.2 / 0.15); + --tri-accent-track-fill: oklch(0.455 0.198 262.2 / 0.35); + --tri-accent-wash: oklch(0.455 0.198 262.2 / 0.05); + --tri-action-disabled: oklch(0 0 0 / 0.32); + --tri-action-disabled-bg: oklch(0 0 0 / 0.12); + --tri-action-focus: oklch(0 0 0 / 0.24); + --tri-action-hover: oklch(0 0 0 / 0.12); + --tri-action-selected: oklch(0 0 0 / 0.16); + --tri-active-overlay: oklch(0 0 0 / 0.06); + --tri-alert-error-bg: oklch(0.952 0.021 17.5); + --tri-alert-error-border: oklch(0.566 0.208 23 / 0.56); + --tri-alert-error-fg: oklch(0.225 0.068 16.7); + --tri-alert-error-icon: oklch(0.566 0.208 23); + --tri-alert-error-title: oklch(0.507 0.184 21.7); + --tri-alert-info-bg: oklch(0.954 0.019 240.7); + --tri-alert-info-border: oklch(0.546 0.219 262 / 0.56); + --tri-alert-info-fg: oklch(0.208 0.081 259.1); + --tri-alert-info-icon: oklch(0.546 0.219 262); + --tri-alert-info-title: oklch(0.455 0.198 262.2); + --tri-alert-premium-bg: oklch(0.957 0.028 311.3); + --tri-alert-premium-border: oklch(0.548 0.275 291.4 / 0.56); + --tri-alert-premium-fg: oklch(0.208 0.111 300.8); + --tri-alert-premium-icon: oklch(0.548 0.275 291.4); + --tri-alert-premium-title: oklch(0.489 0.275 290.9); + --tri-alert-success-bg: oklch(0.958 0.016 187.3); + --tri-alert-success-border: oklch(0.544 0.08 182.8 / 0.56); + --tri-alert-success-fg: oklch(0.268 0.038 183.9); + --tri-alert-success-icon: oklch(0.544 0.08 182.8); + --tri-alert-success-title: oklch(0.481 0.077 179.4); + --tri-alert-warning-bg: oklch(0.969 0.034 86.3); + --tri-alert-warning-border: oklch(0.564 0.149 49.6 / 0.56); + --tri-alert-warning-fg: oklch(0.274 0.071 48.2); + --tri-alert-warning-icon: oklch(0.564 0.149 49.6); + --tri-alert-warning-title: oklch(0.52 0.143 44.4); + --tri-artifact: oklch(0.481 0.077 179.4); + --tri-artifact-foreground: oklch(1 0 0); + --tri-background: oklch(0.985 0.004 245); + --tri-background-paper-elevation-0: oklch(1 0 0); + --tri-background-paper-elevation-1: oklch(1 0 0); + --tri-background-paper-elevation-2: oklch(1 0 0); + --tri-background-paper-elevation-3: oklch(1 0 0); + --tri-background-paper-elevation-4: oklch(1 0 0); + --tri-background-primary: oklch(1 0 0); + --tri-background-secondary: oklch(0.985 0.004 245); + --tri-blockquote-caution: oklch(0.566 0.208 23); + --tri-blockquote-caution-bg: oklch(0.566 0.208 23 / 0.16); + --tri-blockquote-caution-title: oklch(0.416 0.148 22.1); + --tri-blockquote-important: oklch(0.548 0.275 291.4); + --tri-blockquote-important-bg: oklch(0.548 0.275 291.4 / 0.16); + --tri-blockquote-important-title: oklch(0.414 0.232 291.7); + --tri-blockquote-note: oklch(0.546 0.219 262); + --tri-blockquote-note-bg: oklch(0.546 0.219 262 / 0.16); + --tri-blockquote-note-title: oklch(0.353 0.161 261.8); + --tri-blockquote-tip: oklch(0.544 0.08 182.8); + --tri-blockquote-tip-bg: oklch(0.544 0.08 182.8 / 0.16); + --tri-blockquote-tip-title: oklch(0.424 0.066 182.1); + --tri-blockquote-warning: oklch(0.564 0.149 49.6); + --tri-blockquote-warning-bg: oklch(0.564 0.149 49.6 / 0.16); + --tri-blockquote-warning-title: oklch(0.443 0.125 43.7); + --tri-border: oklch(0.913 0.007 245); + --tri-border-accent: oklch(0.455 0.198 262.2 / 0.2); + --tri-border-subtle: oklch(0.913 0.007 245); + --tri-canvas-bg: oklch(0.968 0.005 245); + --tri-card: oklch(1 0 0); + --tri-card-foreground: oklch(0.184 0.008 245); + --tri-chart-1: oklch(0.806 0.09 242.2); + --tri-chart-2: oklch(0.64 0.169 249.4); + --tri-chart-3: oklch(0.455 0.198 262.2); + --tri-chart-4: oklch(0.548 0.275 291.4); + --tri-chart-5: oklch(0.414 0.232 291.7); + --tri-chart-6: oklch(0.544 0.08 182.8); + --tri-chart-7: oklch(0.564 0.149 49.6); + --tri-chart-8: oklch(0.69 0.199 22.3); + --tri-destructive: oklch(0.507 0.184 21.7); + --tri-destructive-active: oklch(0.225 0.068 16.7); + --tri-destructive-foreground: oklch(1 0 0); + --tri-destructive-hover: oklch(0.416 0.148 22.1); + --tri-destructive-link-hover: oklch(0.507 0.184 21.7); + --tri-destructive-ring: oklch(0.507 0.184 21.7 / 0.75); + --tri-destructive-subtle: oklch(0.507 0.184 21.7 / 0.1); + --tri-destructive-wash: oklch(0.507 0.184 21.7 / 0.06); + --tri-diff-added-bg: oklch(0.4 0.17 145 / 0.08); + --tri-diff-added-text: oklch(0.4 0.17 145); + --tri-diff-hunk-bg: oklch(0.455 0.198 262.2 / 0.08); + --tri-diff-removed-bg: oklch(0.507 0.184 21.7 / 0.08); + --tri-diff-removed-text: oklch(0.507 0.184 21.7); + --tri-disabled-foreground: oklch(0.661 0.014 245); + --tri-foreground: oklch(0.184 0.008 245); + --tri-grade-a: oklch(0.544 0.08 182.8); + --tri-grade-a-bg: oklch(0.544 0.08 182.8 / 0.16); + --tri-grade-a-border: oklch(0.544 0.08 182.8 / 0.56); + --tri-grade-a-fg: oklch(1 0 0); + --tri-grade-a-text: oklch(0.424 0.066 182.1); + --tri-grade-b: oklch(0.642 0.097 178.3); + --tri-grade-b-bg: oklch(0.546 0.219 262 / 0.16); + --tri-grade-b-border: oklch(0.546 0.219 262 / 0.56); + --tri-grade-b-fg: oklch(0.184 0.008 245); + --tri-grade-b-text: oklch(0.353 0.161 261.8); + --tri-grade-c: oklch(0.673 0.16 57.7); + --tri-grade-c-bg: oklch(0.564 0.149 49.6 / 0.16); + --tri-grade-c-border: oklch(0.564 0.149 49.6 / 0.56); + --tri-grade-c-fg: oklch(0.184 0.008 245); + --tri-grade-c-text: oklch(0.443 0.125 43.7); + --tri-grade-d: oklch(0.564 0.149 49.6); + --tri-grade-d-bg: oklch(0.566 0.208 23 / 0.12); + --tri-grade-d-border: oklch(0.566 0.208 23 / 0.56); + --tri-grade-d-fg: oklch(1 0 0); + --tri-grade-d-text: oklch(0.507 0.184 21.7); + --tri-grade-e: oklch(0.566 0.208 23); + --tri-grade-e-bg: oklch(0.566 0.208 23 / 0.16); + --tri-grade-e-border: oklch(0.566 0.208 23 / 0.56); + --tri-grade-e-fg: oklch(1 0 0); + --tri-grade-e-text: oklch(0.507 0.184 21.7); + --tri-grade-f: oklch(0.507 0.184 21.7); + --tri-grade-f-bg: oklch(0.566 0.208 23 / 0.16); + --tri-grade-f-border: oklch(0.566 0.208 23 / 0.56); + --tri-grade-f-fg: oklch(1 0 0); + --tri-grade-f-text: oklch(0.416 0.148 22.1); + --tri-header-accent: oklch(0.353 0.161 261.8); + --tri-header-accent-foreground: oklch(1 0 0); + --tri-header-foreground: oklch(1 0 0); + --tri-header-foreground-muted: oklch(0.954 0.019 240.7); + --tri-header-from: oklch(0.455 0.198 262.2); + --tri-header-ring: oklch(1 0 0); + --tri-header-to: oklch(0.546 0.219 262); + --tri-hover-overlay: oklch(0 0 0 / 0.04); + --tri-info: oklch(0.546 0.219 262); + --tri-info-foreground: oklch(0.954 0.019 240.7); + --tri-input: oklch(0.55 0.016 245); + --tri-input-bg: oklch(1 0 0); + --tri-invalid-ring: oklch(0.507 0.184 21.7 / 0.2); + --tri-link-hover: oklch(0.546 0.219 262); + --tri-log-warn-bg: oklch(0.969 0.034 86.3); + --tri-muted: oklch(0.968 0.005 245); + --tri-muted-foreground: oklch(0.462 0.014 245); + --tri-muted-foreground-decoration: oklch(0.462 0.014 245 / 0.5); + --tri-muted-foreground-track: oklch(0.462 0.014 245 / 0.4); + --tri-neutral-focus: oklch(0.55 0.016 245 / 0.24); + --tri-neutral-focus-visible: oklch(0.55 0.016 245 / 0.32); + --tri-neutral-hover: oklch(0.55 0.016 245 / 0.12); + --tri-neutral-outlined-border: oklch(0.55 0.016 245 / 0.56); + --tri-neutral-selected: oklch(0.55 0.016 245 / 0.16); + --tri-overlay-backdrop: oklch(0 0 0 / 0.1); + --tri-overlay-frosted: oklch(0.968 0.005 245 / 0.7); + --tri-overlay-scrim: oklch(0 0 0 / 0.5); + --tri-popover: oklch(1 0 0); + --tri-popover-foreground: oklch(0.184 0.008 245); + --tri-premium: oklch(0.548 0.275 291.4); + --tri-premium-foreground: oklch(0.957 0.028 311.3); + --tri-premium-hover: oklch(0.414 0.232 291.7); + --tri-primary: oklch(0.546 0.219 262); + --tri-primary-foreground: oklch(0.985 0.004 245); + --tri-primary-foreground-wash: oklch(0.985 0.004 245 / 0.1); + --tri-primary-subtle: oklch(0.455 0.198 262.2 / 0.1); + --tri-primary-wash: oklch(0.455 0.198 262.2 / 0.05); + --tri-product-gradient-admin-from: oklch(0.548 0.275 291.4); + --tri-product-gradient-admin-to: oklch(0.546 0.219 262); + --tri-product-gradient-build-from: oklch(0.587 0.256 330.8); + --tri-product-gradient-build-to: oklch(0.546 0.219 262); + --tri-product-gradient-desktop-from: oklch(0.455 0.198 262.2); + --tri-product-gradient-desktop-to: oklch(0.546 0.219 262); + --tri-product-gradient-docs-from: oklch(0.55 0.016 245); + --tri-product-gradient-docs-to: oklch(0.546 0.219 262); + --tri-product-gradient-hub-from: oklch(0.546 0.219 262); + --tri-product-gradient-hub-to: oklch(0.546 0.219 262); + --tri-product-gradient-scout-from: oklch(0.544 0.08 182.8); + --tri-product-gradient-scout-to: oklch(0.546 0.219 262); + --tri-promo: oklch(0.52 0.143 44.4); + --tri-promo-foreground: oklch(1 0 0); + --tri-ring: oklch(0.546 0.219 262 / 0.75); + --tri-scrollbar-thumb: oklch(0 0 0 / 0.24); + --tri-scrollbar-thumb-hover: oklch(0 0 0 / 0.4); + --tri-scrollbar-track: oklch(0 0 0 / 0.04); + --tri-scrollbar-width: 6px; + --tri-secondary: oklch(0.968 0.005 245); + --tri-secondary-foreground: oklch(0.214 0.008 245); + --tri-secondary-hover: oklch(0.913 0.007 245); + --tri-selected-overlay: oklch(0 0 0 / 0.08); + --tri-severity-critical: oklch(0.507 0.184 21.7); + --tri-severity-critical-fg: oklch(1 0 0); + --tri-severity-high: oklch(0.443 0.125 43.7); + --tri-severity-high-fg: oklch(1 0 0); + --tri-severity-info: oklch(0.462 0.014 245); + --tri-severity-info-fg: oklch(0.985 0.004 245); + --tri-severity-low: oklch(0.661 0.014 245); + --tri-severity-low-border: oklch(0.462 0.014 245); + --tri-severity-low-fg: oklch(0.184 0.008 245); + --tri-severity-medium: oklch(0.747 0.15 65.3); + --tri-severity-medium-border: oklch(0.52 0.143 44.4); + --tri-severity-medium-fg: oklch(0.184 0.008 245); + --tri-severity-none: oklch(0.913 0.007 245); + --tri-severity-none-fg: oklch(0.462 0.014 245); + --tri-sidebar: oklch(0.985 0.004 245); + --tri-sidebar-accent: oklch(0.968 0.005 245); + --tri-sidebar-accent-foreground: oklch(0.214 0.008 245); + --tri-sidebar-border: oklch(0.913 0.007 245); + --tri-sidebar-foreground: oklch(0 0 0); + --tri-sidebar-foreground-muted: oklch(0.462 0.014 245); + --tri-sidebar-primary: oklch(0.455 0.198 262.2); + --tri-sidebar-primary-foreground: oklch(0.954 0.019 240.7); + --tri-sidebar-ring: oklch(0.55 0.016 245); + --tri-status-active: oklch(0.544 0.08 182.8); + --tri-status-deprecated: oklch(0.564 0.149 49.6); + --tri-status-eol: oklch(0.566 0.208 23); + --tri-status-error: oklch(0.507 0.184 21.7); + --tri-status-error-text: oklch(0.507 0.184 21.7); + --tri-status-paused: oklch(0.666 0.158 55.8); + --tri-status-paused-text: oklch(0.564 0.149 49.6); + --tri-status-running: oklch(0.5 0.2 145); + --tri-status-running-text: oklch(0.481 0.077 179.4); + --tri-status-stopped: oklch(0.462 0.014 245); + --tri-success: oklch(0.481 0.077 179.4); + --tri-success-foreground: oklch(1 0 0); + --tri-success-hover: oklch(0.268 0.038 183.9); + --tri-success-wash: oklch(0.481 0.077 179.4 / 0.06); + --tri-syntax-attr: oklch(0.455 0.198 262.2); + --tri-syntax-command: oklch(0.548 0.275 291.4); + --tri-syntax-comment: oklch(0.55 0.016 245); + --tri-syntax-directive: oklch(0.806 0.09 242.2); + --tri-syntax-keyword: oklch(0.566 0.208 23); + --tri-syntax-number: oklch(0.564 0.149 49.6); + --tri-syntax-string: oklch(0.544 0.08 182.8); + --tri-syntax-type: oklch(0.489 0.275 290.9); + --tri-syntax-value: oklch(0.55 0.016 245); + --tri-tag-default-bg: oklch(0.968 0.005 245); + --tri-tag-default-fg: oklch(0.366 0.012 245); + --tri-tag-destructive-bg: oklch(0.952 0.021 17.5); + --tri-tag-destructive-fg: oklch(0.416 0.148 22.1); + --tri-tag-info-bg: oklch(0.954 0.019 240.7); + --tri-tag-info-fg: oklch(0.353 0.161 261.8); + --tri-tag-premium-bg: oklch(0.957 0.028 311.3); + --tri-tag-premium-fg: oklch(0.414 0.232 291.7); + --tri-tag-primary-bg: oklch(0.954 0.019 240.7); + --tri-tag-primary-fg: oklch(0.353 0.161 261.8); + --tri-tag-success-bg: oklch(0.958 0.016 187.3); + --tri-tag-success-fg: oklch(0.424 0.066 182.1); + --tri-tag-warning-bg: oklch(0.969 0.034 86.3); + --tri-tag-warning-fg: oklch(0.443 0.125 43.7); + --tri-terminal-bg: oklch(0.968 0.005 245); + --tri-terminal-black: oklch(0.462 0.014 245); + --tri-terminal-blue: oklch(0.44 0.18 262); + --tri-terminal-border: oklch(0.832 0.01 245); + --tri-terminal-bright-black: oklch(0.462 0.014 245); + --tri-terminal-bright-blue: oklch(0.4 0.17 262); + --tri-terminal-bright-cyan: oklch(0.36 0.09 195); + --tri-terminal-bright-green: oklch(0.34 0.13 155); + --tri-terminal-bright-magenta: oklch(0.42 0.19 290); + --tri-terminal-bright-red: oklch(0.44 0.17 25); + --tri-terminal-bright-white: oklch(0.184 0.008 245); + --tri-terminal-bright-yellow: oklch(0.38 0.13 75); + --tri-terminal-cursor: oklch(0.184 0.008 245); + --tri-terminal-cyan: oklch(0.4 0.1 195); + --tri-terminal-green: oklch(0.38 0.15 145); + --tri-terminal-magenta: oklch(0.46 0.2 290); + --tri-terminal-muted: oklch(0.462 0.014 245); + --tri-terminal-red: oklch(0.48 0.2 25); + --tri-terminal-surface: oklch(0.985 0.004 245); + --tri-terminal-text: oklch(0.184 0.008 245); + --tri-terminal-white: oklch(0.184 0.008 245); + --tri-terminal-yellow: oklch(0.42 0.14 65); + --tri-tertiary-foreground: oklch(0.55 0.016 245); + --tri-text-error: oklch(0.566 0.208 23); + --tri-text-info: oklch(0.546 0.219 262); + --tri-text-premium: oklch(0.548 0.275 291.4); + --tri-text-success: oklch(0.544 0.08 182.8); + --tri-text-text: oklch(0 0 0); + --tri-text-warning: oklch(0.564 0.149 49.6); + --tri-tooltip-kbd-bg: oklch(1 0 0 / 0.12); + --tri-trust-community: oklch(0.55 0.016 245); + --tri-trust-community-bg: transparent; + --tri-trust-community-border: oklch(0.832 0.01 245); + --tri-trust-community-text: oklch(0.55 0.016 245); + --tri-trust-hardened: oklch(0.462 0.014 245); + --tri-trust-hardened-bg: oklch(0.968 0.005 245); + --tri-trust-hardened-border: oklch(0.832 0.01 245); + --tri-trust-hardened-text: oklch(0.462 0.014 245); + --tri-trust-official: oklch(0.546 0.219 262); + --tri-trust-official-bg: oklch(0.933 0.029 241.4); + --tri-trust-official-border: oklch(0.64 0.169 249.4); + --tri-trust-official-text: oklch(0.353 0.161 261.8); + --tri-trust-verified: oklch(0.64 0.169 249.4); + --tri-trust-verified-bg: oklch(0.954 0.019 240.7); + --tri-trust-verified-border: oklch(0.661 0.014 245); + --tri-trust-verified-text: oklch(0.462 0.014 245); + --tri-warning: oklch(0.564 0.149 49.6); + --tri-warning-foreground: oklch(1 0 0); + --tri-warning-hover: oklch(0.443 0.125 43.7); + --tri-warning-subtle: oklch(0.443 0.125 43.7 / 0.1); + --tri-warning-wash: oklch(0.443 0.125 43.7 / 0.06); +} + +.dark { + --tri-accent: oklch(0.214 0.008 245); + --tri-accent-active: oklch(0.806 0.09 242.2); + --tri-accent-foreground: oklch(0.913 0.007 245); + --tri-accent-hover: oklch(0.633 0.199 257.2); + --tri-accent-subtle: oklch(0.633 0.199 257.2 / 0.1); + --tri-accent-track: oklch(0.633 0.199 257.2 / 0.2); + --tri-accent-track-fill: oklch(0.633 0.199 257.2 / 0.4); + --tri-accent-wash: oklch(0.633 0.199 257.2 / 0.06); + --tri-action-disabled: oklch(0.366 0.012 245); + --tri-action-disabled-bg: oklch(1 0 0 / 0.12); + --tri-action-focus: oklch(1 0 0 / 0.24); + --tri-action-hover: oklch(1 0 0 / 0.12); + --tri-action-selected: oklch(1 0 0 / 0.16); + --tri-active-overlay: oklch(1 0 0 / 0.1); + --tri-alert-error-bg: oklch(0.225 0.068 16.7); + --tri-alert-error-border: oklch(0.69 0.199 22.3 / 0.56); + --tri-alert-error-fg: oklch(0.861 0.075 16.7); + --tri-alert-error-icon: oklch(0.69 0.199 22.3); + --tri-alert-error-title: oklch(0.773 0.134 18.9); + --tri-alert-info-bg: oklch(0.208 0.081 259.1); + --tri-alert-info-border: oklch(0.633 0.199 257.2 / 0.56); + --tri-alert-info-fg: oklch(0.806 0.09 242.2); + --tri-alert-info-icon: oklch(0.633 0.199 257.2); + --tri-alert-info-title: oklch(0.806 0.09 242.2); + --tri-alert-premium-bg: oklch(0.208 0.111 300.8); + --tri-alert-premium-border: oklch(0.63 0.225 295.4 / 0.56); + --tri-alert-premium-fg: oklch(0.845 0.095 304.4); + --tri-alert-premium-icon: oklch(0.63 0.225 295.4); + --tri-alert-premium-title: oklch(0.789 0.128 301.6); + --tri-alert-success-bg: oklch(0.268 0.038 183.9); + --tri-alert-success-border: oklch(0.642 0.097 178.3 / 0.56); + --tri-alert-success-fg: oklch(0.817 0.082 175); + --tri-alert-success-icon: oklch(0.642 0.097 178.3); + --tri-alert-success-title: oklch(0.73 0.089 176.7); + --tri-alert-warning-bg: oklch(0.274 0.071 48.2); + --tri-alert-warning-border: oklch(0.666 0.158 55.8 / 0.56); + --tri-alert-warning-fg: oklch(0.919 0.078 85.1); + --tri-alert-warning-icon: oklch(0.666 0.158 55.8); + --tri-alert-warning-title: oklch(0.747 0.15 65.3); + --tri-artifact: oklch(0.73 0.089 176.7); + --tri-artifact-foreground: oklch(0.268 0.038 183.9); + --tri-background: oklch(0.1 0.008 245); + --tri-background-paper-elevation-0: oklch(0.184 0.008 245); + --tri-background-paper-elevation-1: oklch(0.184 0.008 245); + --tri-background-paper-elevation-2: oklch(0.214 0.008 245); + --tri-background-paper-elevation-3: oklch(0.214 0.008 245); + --tri-background-paper-elevation-4: oklch(0.214 0.008 245); + --tri-background-primary: oklch(0.184 0.008 245); + --tri-background-secondary: oklch(0 0 0); + --tri-blockquote-caution-bg: oklch(0.69 0.199 22.3 / 0.16); + --tri-blockquote-caution-title: oklch(0.69 0.199 22.3); + --tri-blockquote-important: oklch(0.63 0.225 295.4); + --tri-blockquote-important-bg: oklch(0.63 0.225 295.4 / 0.16); + --tri-blockquote-important-title: oklch(0.789 0.128 301.6); + --tri-blockquote-note: oklch(0.633 0.199 257.2); + --tri-blockquote-note-bg: oklch(0.633 0.199 257.2 / 0.16); + --tri-blockquote-note-title: oklch(0.64 0.169 249.4); + --tri-blockquote-tip-bg: oklch(0.642 0.097 178.3 / 0.16); + --tri-blockquote-tip-title: oklch(0.73 0.089 176.7); + --tri-blockquote-warning-bg: oklch(0.666 0.158 55.8 / 0.16); + --tri-blockquote-warning-title: oklch(0.747 0.15 65.3); + --tri-border: oklch(0.366 0.012 245); + --tri-border-accent: oklch(0.633 0.199 257.2 / 0.2); + --tri-border-subtle: oklch(0.214 0.008 245); + --tri-canvas-bg: oklch(0 0 0); + --tri-card: oklch(0.16 0.012 245); + --tri-card-foreground: oklch(0.913 0.007 245); + --tri-chart-1: oklch(0.455 0.198 262.2); + --tri-chart-2: oklch(0.546 0.219 262); + --tri-chart-3: oklch(0.64 0.169 249.4); + --tri-chart-4: oklch(0.63 0.225 295.4); + --tri-chart-5: oklch(0.789 0.128 301.6); + --tri-chart-6: oklch(0.642 0.097 178.3); + --tri-chart-7: oklch(0.666 0.158 55.8); + --tri-chart-8: oklch(0.566 0.208 23); + --tri-destructive: oklch(0.69 0.199 22.3); + --tri-destructive-active: oklch(0.861 0.075 16.7); + --tri-destructive-foreground: oklch(0.225 0.068 16.7); + --tri-destructive-hover: oklch(0.773 0.134 18.9); + --tri-destructive-link-hover: oklch(0.566 0.208 23); + --tri-destructive-ring: oklch(0.69 0.199 22.3 / 0.75); + --tri-destructive-subtle: oklch(0.69 0.199 22.3 / 0.12); + --tri-destructive-wash: oklch(0.69 0.199 22.3 / 0.08); + --tri-diff-added-bg: oklch(0.72 0.17 145 / 0.1); + --tri-diff-added-text: oklch(0.72 0.17 145); + --tri-diff-hunk-bg: oklch(0.633 0.199 257.2 / 0.1); + --tri-diff-removed-bg: oklch(0.69 0.199 22.3 / 0.1); + --tri-diff-removed-text: oklch(0.69 0.199 22.3); + --tri-disabled-foreground: oklch(0.366 0.012 245); + --tri-foreground: oklch(0.913 0.007 245); + --tri-grade-a: oklch(0.642 0.097 178.3); + --tri-grade-a-bg: oklch(0.642 0.097 178.3 / 0.16); + --tri-grade-a-border: oklch(0.642 0.097 178.3 / 0.56); + --tri-grade-a-text: oklch(0.817 0.082 175); + --tri-grade-b: oklch(0.544 0.08 182.8); + --tri-grade-b-bg: oklch(0.633 0.199 257.2 / 0.16); + --tri-grade-b-border: oklch(0.633 0.199 257.2 / 0.56); + --tri-grade-b-fg: oklch(0.968 0.005 245); + --tri-grade-b-text: oklch(0.806 0.09 242.2); + --tri-grade-c: oklch(0.564 0.149 49.6); + --tri-grade-c-bg: oklch(0.666 0.158 55.8 / 0.16); + --tri-grade-c-border: oklch(0.666 0.158 55.8 / 0.56); + --tri-grade-c-fg: oklch(0.968 0.005 245); + --tri-grade-c-text: oklch(0.821 0.14 72.9); + --tri-grade-d: oklch(0.666 0.158 55.8); + --tri-grade-d-bg: oklch(0.69 0.199 22.3 / 0.12); + --tri-grade-d-border: oklch(0.69 0.199 22.3 / 0.56); + --tri-grade-d-text: oklch(0.773 0.134 18.9); + --tri-grade-e: oklch(0.69 0.199 22.3); + --tri-grade-e-bg: oklch(0.69 0.199 22.3 / 0.16); + --tri-grade-e-border: oklch(0.69 0.199 22.3 / 0.56); + --tri-grade-e-text: oklch(0.773 0.134 18.9); + --tri-grade-f: oklch(0.566 0.208 23); + --tri-grade-f-bg: oklch(0.69 0.199 22.3 / 0.16); + --tri-grade-f-border: oklch(0.69 0.199 22.3 / 0.56); + --tri-grade-f-text: oklch(0.773 0.134 18.9); + --tri-header-accent: oklch(0.208 0.081 259.1); + --tri-header-foreground-muted: oklch(0.892 0.049 242.8); + --tri-header-from: oklch(0.353 0.161 261.8); + --tri-header-to: oklch(0.455 0.198 262.2); + --tri-hover-overlay: oklch(1 0 0 / 0.06); + --tri-info: oklch(0.633 0.199 257.2); + --tri-info-foreground: oklch(0.208 0.081 259.1); + --tri-input-bg: oklch(0.184 0.008 245); + --tri-invalid-ring: oklch(0.69 0.199 22.3 / 0.2); + --tri-link-hover: oklch(0.633 0.199 257.2); + --tri-log-warn-bg: oklch(0.274 0.071 48.2); + --tri-muted: oklch(0.2 0.014 245); + --tri-muted-foreground: oklch(0.661 0.014 245); + --tri-muted-foreground-decoration: oklch(0.661 0.014 245 / 0.5); + --tri-muted-foreground-track: oklch(0.661 0.014 245 / 0.4); + --tri-overlay-backdrop: oklch(0 0 0 / 0.25); + --tri-overlay-frosted: oklch(0.184 0.008 245 / 0.7); + --tri-overlay-scrim: oklch(0 0 0 / 0.4); + --tri-popover: oklch(0.23 0.014 245); + --tri-popover-foreground: oklch(0.913 0.007 245); + --tri-premium: oklch(0.63 0.225 295.4); + --tri-premium-foreground: oklch(0.208 0.111 300.8); + --tri-premium-hover: oklch(0.789 0.128 301.6); + --tri-primary: oklch(0.64 0.169 249.4); + --tri-primary-foreground: oklch(0.184 0.008 245); + --tri-primary-foreground-wash: oklch(0.184 0.008 245 / 0.1); + --tri-primary-subtle: oklch(0.633 0.199 257.2 / 0.12); + --tri-primary-wash: oklch(0.633 0.199 257.2 / 0.06); + --tri-product-gradient-admin-from: oklch(0.63 0.225 295.4); + --tri-product-gradient-admin-to: oklch(0.633 0.199 257.2); + --tri-product-gradient-build-from: oklch(0.69 0.245 329.8); + --tri-product-gradient-build-to: oklch(0.633 0.199 257.2); + --tri-product-gradient-desktop-from: oklch(0.64 0.169 249.4); + --tri-product-gradient-desktop-to: oklch(0.633 0.199 257.2); + --tri-product-gradient-docs-from: oklch(0.661 0.014 245); + --tri-product-gradient-docs-to: oklch(0.633 0.199 257.2); + --tri-product-gradient-hub-from: oklch(0.633 0.199 257.2); + --tri-product-gradient-hub-to: oklch(0.633 0.199 257.2); + --tri-product-gradient-scout-from: oklch(0.642 0.097 178.3); + --tri-product-gradient-scout-to: oklch(0.633 0.199 257.2); + --tri-promo: oklch(0.747 0.15 65.3); + --tri-promo-foreground: oklch(0.274 0.071 48.2); + --tri-ring: oklch(0.633 0.199 257.2 / 0.75); + --tri-scrollbar-thumb: oklch(1 0 0 / 0.24); + --tri-scrollbar-thumb-hover: oklch(1 0 0 / 0.4); + --tri-scrollbar-track: oklch(1 0 0 / 0.04); + --tri-secondary: oklch(0.2 0.014 245); + --tri-secondary-foreground: oklch(0.832 0.01 245); + --tri-secondary-hover: oklch(0.366 0.012 245); + --tri-selected-overlay: oklch(1 0 0 / 0.14); + --tri-severity-critical: oklch(0.773 0.134 18.9); + --tri-severity-critical-fg: oklch(0.184 0.008 245); + --tri-severity-high: oklch(0.821 0.14 72.9); + --tri-severity-high-fg: oklch(0.184 0.008 245); + --tri-severity-info: oklch(0.661 0.014 245); + --tri-severity-info-fg: oklch(0.184 0.008 245); + --tri-severity-low-border: transparent; + --tri-severity-medium-border: transparent; + --tri-severity-medium-fg: oklch(0.214 0.008 245); + --tri-severity-none-fg: oklch(0.366 0.012 245); + --tri-sidebar: oklch(0.16 0.012 245); + --tri-sidebar-accent: oklch(0.214 0.008 245); + --tri-sidebar-accent-foreground: oklch(1 0 0); + --tri-sidebar-border: oklch(1 0 0 / 0.12); + --tri-sidebar-foreground: oklch(1 0 0); + --tri-sidebar-foreground-muted: oklch(0.661 0.014 245); + --tri-sidebar-primary-foreground: oklch(0.832 0.01 245); + --tri-sidebar-ring: oklch(0.633 0.199 257.2); + --tri-status-active: oklch(0.642 0.097 178.3); + --tri-status-deprecated: oklch(0.666 0.158 55.8); + --tri-status-eol: oklch(0.69 0.199 22.3); + --tri-status-error: oklch(0.69 0.199 22.3); + --tri-status-error-text: oklch(0.69 0.199 22.3); + --tri-status-paused-text: oklch(0.666 0.158 55.8); + --tri-status-running: oklch(0.72 0.17 145); + --tri-status-running-text: oklch(0.73 0.089 176.7); + --tri-status-stopped: oklch(0.661 0.014 245); + --tri-success: oklch(0.73 0.089 176.7); + --tri-success-foreground: oklch(0.268 0.038 183.9); + --tri-success-hover: oklch(0.817 0.082 175); + --tri-success-wash: oklch(0.73 0.089 176.7 / 0.08); + --tri-syntax-attr: oklch(0.73 0.089 176.7); + --tri-syntax-command: oklch(0.789 0.128 301.6); + --tri-syntax-comment: oklch(0.661 0.014 245); + --tri-syntax-directive: oklch(0.64 0.169 249.4); + --tri-syntax-keyword: oklch(0.69 0.199 22.3); + --tri-syntax-number: oklch(0.747 0.15 65.3); + --tri-syntax-string: oklch(0.73 0.089 176.7); + --tri-syntax-type: oklch(0.789 0.128 301.6); + --tri-syntax-value: oklch(0.661 0.014 245); + --tri-tag-default-bg: oklch(0.184 0.008 245); + --tri-tag-default-fg: oklch(0.832 0.01 245); + --tri-tag-destructive-bg: oklch(0.225 0.068 16.7); + --tri-tag-destructive-fg: oklch(0.773 0.134 18.9); + --tri-tag-info-bg: oklch(0.208 0.081 259.1); + --tri-tag-info-fg: oklch(0.806 0.09 242.2); + --tri-tag-premium-bg: oklch(0.208 0.111 300.8); + --tri-tag-premium-fg: oklch(0.789 0.128 301.6); + --tri-tag-primary-bg: oklch(0.208 0.081 259.1); + --tri-tag-primary-fg: oklch(0.806 0.09 242.2); + --tri-tag-success-bg: oklch(0.268 0.038 183.9); + --tri-tag-success-fg: oklch(0.817 0.082 175); + --tri-tag-warning-bg: oklch(0.274 0.071 48.2); + --tri-tag-warning-fg: oklch(0.821 0.14 72.9); + --tri-terminal-bg: oklch(0 0 0); + --tri-terminal-black: oklch(0.55 0.016 245); + --tri-terminal-blue: oklch(0.68 0.18 262); + --tri-terminal-border: oklch(0.214 0.008 245); + --tri-terminal-bright-black: oklch(0.661 0.014 245); + --tri-terminal-bright-blue: oklch(0.74 0.17 262); + --tri-terminal-bright-cyan: oklch(0.78 0.09 195); + --tri-terminal-bright-green: oklch(0.78 0.15 155); + --tri-terminal-bright-magenta: oklch(0.74 0.19 290); + --tri-terminal-bright-red: oklch(0.78 0.17 25); + --tri-terminal-bright-white: oklch(0.913 0.007 245); + --tri-terminal-bright-yellow: oklch(0.81 0.14 65); + --tri-terminal-cursor: oklch(0.913 0.007 245); + --tri-terminal-cyan: oklch(0.72 0.1 195); + --tri-terminal-green: oklch(0.72 0.17 145); + --tri-terminal-magenta: oklch(0.68 0.2 290); + --tri-terminal-muted: oklch(0.55 0.016 245); + --tri-terminal-red: oklch(0.72 0.2 25); + --tri-terminal-surface: oklch(0.184 0.008 245); + --tri-terminal-text: oklch(0.913 0.007 245); + --tri-terminal-white: oklch(0.913 0.007 245); + --tri-terminal-yellow: oklch(0.75 0.15 65); + --tri-text-error: oklch(0.69 0.199 22.3); + --tri-text-info: oklch(0.633 0.199 257.2); + --tri-text-premium: oklch(0.63 0.225 295.4); + --tri-text-success: oklch(0.642 0.097 178.3); + --tri-text-text: oklch(0.913 0.007 245); + --tri-text-warning: oklch(0.666 0.158 55.8); + --tri-tooltip-kbd-bg: oklch(0 0 0 / 0.12); + --tri-trust-community-border: oklch(0.462 0.014 245); + --tri-trust-hardened: oklch(0.661 0.014 245); + --tri-trust-hardened-bg: oklch(0.184 0.008 245); + --tri-trust-hardened-border: oklch(0.55 0.016 245); + --tri-trust-hardened-text: oklch(0.661 0.014 245); + --tri-trust-official: oklch(0.633 0.199 257.2); + --tri-trust-official-bg: oklch(0.208 0.081 259.1); + --tri-trust-official-border: oklch(0.55 0.016 245); + --tri-trust-official-text: oklch(0.806 0.09 242.2); + --tri-trust-verified: oklch(0.546 0.219 262); + --tri-trust-verified-bg: oklch(0.184 0.008 245); + --tri-trust-verified-border: oklch(0.55 0.016 245); + --tri-trust-verified-text: oklch(0.661 0.014 245); + --tri-vulnerability-chip-critical: oklch(0.756 0.119 11.8); + --tri-vulnerability-chip-high: oklch(0.73 0.158 61.3); + --tri-vulnerability-chip-low: oklch(0.487 0.128 50.6); + --tri-vulnerability-chip-medium: oklch(0.666 0.158 55.8); + --tri-vulnerability-chip-unspecified: oklch(0.214 0.008 245); + --tri-warning: oklch(0.666 0.158 55.8); + --tri-warning-foreground: oklch(0.274 0.071 48.2); + --tri-warning-hover: oklch(0.821 0.14 72.9); + --tri-warning-subtle: oklch(0.747 0.15 65.3 / 0.12); + --tri-warning-wash: oklch(0.747 0.15 65.3 / 0.08); +} + +.high-contrast { + --tri-accent: oklch(0.462 0.014 245); + --tri-accent-active: oklch(0.546 0.219 262); + --tri-accent-foreground: oklch(1 0 0); + --tri-accent-hover: oklch(0.455 0.198 262.2); + --tri-accent-subtle: oklch(0.633 0.199 257.2 / 0.2); + --tri-accent-track: oklch(0.633 0.199 257.2 / 0.3); + --tri-accent-track-fill: oklch(0.633 0.199 257.2 / 0.6); + --tri-accent-wash: oklch(0.633 0.199 257.2 / 0.15); + --tri-action-disabled: oklch(0.55 0.016 245); + --tri-action-disabled-bg: oklch(0.214 0.008 245); + --tri-action-focus: oklch(1 0 0 / 0.4); + --tri-action-hover: oklch(1 0 0 / 0.2); + --tri-action-selected: oklch(1 0 0 / 0.25); + --tri-active-overlay: oklch(1 0 0 / 0.15); + --tri-alert-error-bg: oklch(0.225 0.068 16.7); + --tri-alert-error-border: oklch(0.773 0.134 18.9); + --tri-alert-error-fg: oklch(0.861 0.075 16.7); + --tri-alert-error-icon: oklch(0.773 0.134 18.9); + --tri-alert-error-title: oklch(0.861 0.075 16.7); + --tri-alert-info-bg: oklch(0.208 0.081 259.1); + --tri-alert-info-border: oklch(0.806 0.09 242.2); + --tri-alert-info-fg: oklch(0.892 0.049 242.8); + --tri-alert-info-icon: oklch(0.806 0.09 242.2); + --tri-alert-info-title: oklch(0.892 0.049 242.8); + --tri-alert-premium-bg: oklch(0.208 0.111 300.8); + --tri-alert-premium-border: oklch(0.789 0.128 301.6); + --tri-alert-premium-fg: oklch(0.845 0.095 304.4); + --tri-alert-premium-icon: oklch(0.789 0.128 301.6); + --tri-alert-premium-title: oklch(0.845 0.095 304.4); + --tri-alert-success-bg: oklch(0.268 0.038 183.9); + --tri-alert-success-border: oklch(0.73 0.089 176.7); + --tri-alert-success-fg: oklch(0.817 0.082 175); + --tri-alert-success-icon: oklch(0.73 0.089 176.7); + --tri-alert-success-title: oklch(0.817 0.082 175); + --tri-alert-warning-bg: oklch(0.274 0.071 48.2); + --tri-alert-warning-border: oklch(0.747 0.15 65.3); + --tri-alert-warning-fg: oklch(0.821 0.14 72.9); + --tri-alert-warning-icon: oklch(0.747 0.15 65.3); + --tri-alert-warning-title: oklch(0.821 0.14 72.9); + --tri-background: oklch(0 0 0); + --tri-background-paper-elevation-0: oklch(0 0 0); + --tri-background-paper-elevation-1: oklch(0 0 0); + --tri-background-paper-elevation-2: oklch(0 0 0); + --tri-background-paper-elevation-3: oklch(0 0 0); + --tri-background-paper-elevation-4: oklch(0 0 0); + --tri-background-primary: oklch(0 0 0); + --tri-background-secondary: oklch(0 0 0); + --tri-blockquote-caution: oklch(0.773 0.134 18.9); + --tri-blockquote-caution-bg: oklch(0.773 0.134 18.9 / 0.2); + --tri-blockquote-caution-title: oklch(0.773 0.134 18.9); + --tri-blockquote-important: oklch(0.789 0.128 301.6); + --tri-blockquote-important-bg: oklch(0.789 0.128 301.6 / 0.2); + --tri-blockquote-important-title: oklch(0.789 0.128 301.6); + --tri-blockquote-note: oklch(0.806 0.09 242.2); + --tri-blockquote-note-bg: oklch(0.806 0.09 242.2 / 0.2); + --tri-blockquote-note-title: oklch(0.806 0.09 242.2); + --tri-blockquote-tip: oklch(0.73 0.089 176.7); + --tri-blockquote-tip-bg: oklch(0.73 0.089 176.7 / 0.2); + --tri-blockquote-tip-title: oklch(0.73 0.089 176.7); + --tri-blockquote-warning: oklch(0.747 0.15 65.3); + --tri-blockquote-warning-bg: oklch(0.747 0.15 65.3 / 0.2); + --tri-blockquote-warning-title: oklch(0.747 0.15 65.3); + --tri-border: oklch(1 0 0); + --tri-border-accent: oklch(0.546 0.219 262); + --tri-border-subtle: oklch(0.462 0.014 245); + --tri-canvas-bg: oklch(0 0 0); + --tri-card: oklch(0 0 0); + --tri-card-foreground: oklch(1 0 0); + --tri-chart-1: oklch(0.892 0.049 242.8); + --tri-chart-2: oklch(0.806 0.09 242.2); + --tri-chart-3: oklch(0.64 0.169 249.4); + --tri-chart-4: oklch(0.789 0.128 301.6); + --tri-chart-5: oklch(0.63 0.225 295.4); + --tri-chart-6: oklch(0.73 0.089 176.7); + --tri-chart-7: oklch(0.747 0.15 65.3); + --tri-chart-8: oklch(0.773 0.134 18.9); + --tri-destructive: oklch(0.952 0.021 17.5); + --tri-destructive-active: oklch(0.507 0.184 21.7); + --tri-destructive-foreground: oklch(0.416 0.148 22.1); + --tri-destructive-hover: oklch(0.507 0.184 21.7); + --tri-destructive-link-hover: oklch(0.566 0.208 23); + --tri-destructive-ring: oklch(0.952 0.021 17.5 / 0.75); + --tri-destructive-subtle: oklch(0.69 0.199 22.3 / 0.2); + --tri-destructive-wash: oklch(0.69 0.199 22.3 / 0.15); + --tri-diff-added-bg: oklch(0.642 0.097 178.3 / 0.2); + --tri-diff-added-text: oklch(0.544 0.08 182.8); + --tri-diff-hunk-bg: oklch(0.633 0.199 257.2 / 0.2); + --tri-diff-removed-bg: oklch(0.69 0.199 22.3 / 0.2); + --tri-diff-removed-text: oklch(0.566 0.208 23); + --tri-foreground: oklch(1 0 0); + --tri-grade-a: oklch(0.958 0.016 187.3); + --tri-grade-a-bg: oklch(0.642 0.097 178.3 / 0.2); + --tri-grade-a-border: oklch(0.544 0.08 182.8); + --tri-grade-a-fg: oklch(0.424 0.066 182.1); + --tri-grade-a-text: oklch(0.73 0.089 176.7); + --tri-grade-b: oklch(0.954 0.019 240.7); + --tri-grade-b-bg: oklch(0.633 0.199 257.2 / 0.2); + --tri-grade-b-border: oklch(0.546 0.219 262); + --tri-grade-b-fg: oklch(0.353 0.161 261.8); + --tri-grade-b-text: oklch(0.806 0.09 242.2); + --tri-grade-c: oklch(0.969 0.034 86.3); + --tri-grade-c-bg: oklch(0.666 0.158 55.8 / 0.2); + --tri-grade-c-border: oklch(0.564 0.149 49.6); + --tri-grade-c-fg: oklch(0.443 0.125 43.7); + --tri-grade-c-text: oklch(0.747 0.15 65.3); + --tri-grade-d: oklch(0.952 0.021 17.5); + --tri-grade-d-bg: oklch(0.69 0.199 22.3 / 0.15); + --tri-grade-d-border: oklch(0.566 0.208 23); + --tri-grade-d-fg: oklch(0.416 0.148 22.1); + --tri-grade-d-text: oklch(0.773 0.134 18.9); + --tri-grade-e: oklch(0.952 0.021 17.5); + --tri-grade-e-bg: oklch(0.69 0.199 22.3 / 0.2); + --tri-grade-e-border: oklch(0.566 0.208 23); + --tri-grade-e-fg: oklch(0.416 0.148 22.1); + --tri-grade-e-text: oklch(0.773 0.134 18.9); + --tri-grade-f: oklch(0.952 0.021 17.5); + --tri-grade-f-bg: oklch(0.69 0.199 22.3 / 0.2); + --tri-grade-f-border: oklch(0.566 0.208 23); + --tri-grade-f-fg: oklch(0.416 0.148 22.1); + --tri-grade-f-text: oklch(0.773 0.134 18.9); + --tri-header-foreground: oklch(1 0 0); + --tri-header-foreground-muted: oklch(0.968 0.005 245); + --tri-header-from: oklch(0 0 0); + --tri-header-ring: oklch(1 0 0); + --tri-header-to: oklch(0 0 0); + --tri-hover-overlay: oklch(1 0 0 / 0.12); + --tri-info: oklch(0.954 0.019 240.7); + --tri-info-foreground: oklch(0.353 0.161 261.8); + --tri-input: oklch(1 0 0); + --tri-input-bg: oklch(0 0 0); + --tri-invalid-ring: oklch(0.952 0.021 17.5 / 0.2); + --tri-link-hover: oklch(0.806 0.09 242.2); + --tri-log-warn-bg: oklch(0.274 0.071 48.2); + --tri-muted: oklch(0.214 0.008 245); + --tri-muted-foreground: oklch(0.968 0.005 245); + --tri-muted-foreground-decoration: oklch(0.832 0.01 245 / 0.7); + --tri-muted-foreground-track: oklch(0.832 0.01 245 / 0.6); + --tri-overlay-backdrop: oklch(0 0 0 / 0.8); + --tri-overlay-frosted: oklch(0 0 0 / 0.85); + --tri-overlay-scrim: oklch(0 0 0 / 0.8); + --tri-popover: oklch(0 0 0); + --tri-popover-foreground: oklch(1 0 0); + --tri-premium: oklch(0.957 0.028 311.3); + --tri-premium-foreground: oklch(0.414 0.232 291.7); + --tri-premium-hover: oklch(0.63 0.225 295.4); + --tri-primary: oklch(0.954 0.019 240.7); + --tri-primary-foreground: oklch(0.353 0.161 261.8); + --tri-primary-foreground-wash: oklch(0.806 0.09 242.2 / 0.15); + --tri-product-gradient-admin-from: oklch(0.789 0.128 301.6); + --tri-product-gradient-admin-to: oklch(0.806 0.09 242.2); + --tri-product-gradient-build-from: oklch(0.789 0.128 301.6); + --tri-product-gradient-build-to: oklch(0.806 0.09 242.2); + --tri-product-gradient-desktop-from: oklch(0.64 0.169 249.4); + --tri-product-gradient-desktop-to: oklch(0.806 0.09 242.2); + --tri-product-gradient-docs-from: oklch(0.832 0.01 245); + --tri-product-gradient-docs-to: oklch(0.806 0.09 242.2); + --tri-product-gradient-hub-from: oklch(0.806 0.09 242.2); + --tri-product-gradient-hub-to: oklch(0.64 0.169 249.4); + --tri-product-gradient-scout-from: oklch(0.73 0.089 176.7); + --tri-product-gradient-scout-to: oklch(0.806 0.09 242.2); + --tri-ring: oklch(0.806 0.09 242.2); + --tri-scrollbar-thumb: oklch(1 0 0 / 0.4); + --tri-scrollbar-thumb-hover: oklch(1 0 0 / 0.6); + --tri-scrollbar-track: oklch(1 0 0 / 0.08); + --tri-secondary: oklch(0.462 0.014 245); + --tri-secondary-foreground: oklch(1 0 0); + --tri-secondary-hover: oklch(0.661 0.014 245); + --tri-selected-overlay: oklch(1 0 0 / 0.18); + --tri-severity-critical: oklch(0.952 0.021 17.5); + --tri-severity-critical-fg: oklch(0.416 0.148 22.1); + --tri-severity-high: oklch(0.821 0.14 72.9); + --tri-severity-high-fg: oklch(0.274 0.071 48.2); + --tri-severity-info: oklch(0.661 0.014 245); + --tri-severity-info-fg: oklch(0.184 0.008 245); + --tri-severity-low: oklch(0.968 0.005 245); + --tri-severity-low-border: oklch(0.55 0.016 245); + --tri-severity-low-fg: oklch(0.184 0.008 245); + --tri-severity-medium: oklch(0.969 0.034 86.3); + --tri-severity-medium-border: oklch(0.443 0.125 43.7); + --tri-severity-medium-fg: oklch(0.443 0.125 43.7); + --tri-severity-none: oklch(0.214 0.008 245); + --tri-severity-none-fg: oklch(0.968 0.005 245); + --tri-sidebar: oklch(0 0 0); + --tri-sidebar-accent: oklch(0.214 0.008 245); + --tri-sidebar-accent-foreground: oklch(1 0 0); + --tri-sidebar-border: oklch(1 0 0); + --tri-sidebar-foreground: oklch(1 0 0); + --tri-sidebar-foreground-muted: oklch(0.661 0.014 245); + --tri-sidebar-primary: oklch(0.546 0.219 262); + --tri-sidebar-primary-foreground: oklch(1 0 0); + --tri-sidebar-ring: oklch(0.546 0.219 262); + --tri-status-active: oklch(0.73 0.089 176.7); + --tri-status-deprecated: oklch(0.747 0.15 65.3); + --tri-status-eol: oklch(0.773 0.134 18.9); + --tri-status-error: oklch(0.773 0.134 18.9); + --tri-status-error-text: oklch(0.773 0.134 18.9); + --tri-status-paused: oklch(0.747 0.15 65.3); + --tri-status-paused-text: oklch(0.747 0.15 65.3); + --tri-status-running: oklch(0.73 0.089 176.7); + --tri-status-running-text: oklch(0.73 0.089 176.7); + --tri-status-stopped: oklch(0.832 0.01 245); + --tri-success: oklch(0.958 0.016 187.3); + --tri-success-foreground: oklch(0.424 0.066 182.1); + --tri-success-hover: oklch(0.642 0.097 178.3); + --tri-success-wash: oklch(0.642 0.097 178.3 / 0.15); + --tri-syntax-attr: oklch(0.73 0.089 176.7); + --tri-syntax-command: oklch(0.789 0.128 301.6); + --tri-syntax-comment: oklch(0.661 0.014 245); + --tri-syntax-directive: oklch(0.892 0.049 242.8); + --tri-syntax-keyword: oklch(0.773 0.134 18.9); + --tri-syntax-number: oklch(0.747 0.15 65.3); + --tri-syntax-string: oklch(0.73 0.089 176.7); + --tri-syntax-type: oklch(0.789 0.128 301.6); + --tri-syntax-value: oklch(0.661 0.014 245); + --tri-tag-default-bg: oklch(0.968 0.005 245); + --tri-tag-default-fg: oklch(0.366 0.012 245); + --tri-tag-destructive-bg: oklch(0.952 0.021 17.5); + --tri-tag-destructive-fg: oklch(0.416 0.148 22.1); + --tri-tag-info-bg: oklch(0.954 0.019 240.7); + --tri-tag-info-fg: oklch(0.353 0.161 261.8); + --tri-tag-premium-bg: oklch(0.957 0.028 311.3); + --tri-tag-premium-fg: oklch(0.414 0.232 291.7); + --tri-tag-primary-bg: oklch(0.954 0.019 240.7); + --tri-tag-primary-fg: oklch(0.353 0.161 261.8); + --tri-tag-success-bg: oklch(0.958 0.016 187.3); + --tri-tag-success-fg: oklch(0.424 0.066 182.1); + --tri-tag-warning-bg: oklch(0.969 0.034 86.3); + --tri-tag-warning-fg: oklch(0.443 0.125 43.7); + --tri-terminal-bg: oklch(0 0 0); + --tri-terminal-black: oklch(1 0 0); + --tri-terminal-blue: oklch(0.806 0.09 242.2); + --tri-terminal-border: oklch(1 0 0); + --tri-terminal-bright-black: oklch(0.661 0.014 245); + --tri-terminal-bright-blue: oklch(0.806 0.09 242.2); + --tri-terminal-bright-cyan: oklch(0.892 0.049 242.8); + --tri-terminal-bright-green: oklch(0.73 0.089 176.7); + --tri-terminal-bright-magenta: oklch(0.789 0.128 301.6); + --tri-terminal-bright-red: oklch(0.773 0.134 18.9); + --tri-terminal-bright-white: oklch(1 0 0); + --tri-terminal-bright-yellow: oklch(0.747 0.15 65.3); + --tri-terminal-cursor: oklch(1 0 0); + --tri-terminal-cyan: oklch(0.892 0.049 242.8); + --tri-terminal-green: oklch(0.73 0.089 176.7); + --tri-terminal-magenta: oklch(0.789 0.128 301.6); + --tri-terminal-muted: oklch(0.661 0.014 245); + --tri-terminal-red: oklch(0.773 0.134 18.9); + --tri-terminal-surface: oklch(0 0 0); + --tri-terminal-text: oklch(1 0 0); + --tri-terminal-white: oklch(1 0 0); + --tri-terminal-yellow: oklch(0.747 0.15 65.3); + --tri-text-error: oklch(0.773 0.134 18.9); + --tri-text-info: oklch(0.806 0.09 242.2); + --tri-text-premium: oklch(0.789 0.128 301.6); + --tri-text-success: oklch(0.73 0.089 176.7); + --tri-text-text: oklch(1 0 0); + --tri-text-warning: oklch(0.747 0.15 65.3); + --tri-tooltip-kbd-bg: oklch(0 0 0); + --tri-trust-community: oklch(0.661 0.014 245); + --tri-trust-community-bg: transparent; + --tri-trust-community-border: oklch(0.661 0.014 245); + --tri-trust-community-text: oklch(0.661 0.014 245); + --tri-trust-hardened: oklch(0.832 0.01 245); + --tri-trust-hardened-bg: oklch(0 0 0); + --tri-trust-hardened-border: oklch(0.661 0.014 245); + --tri-trust-hardened-text: oklch(0.832 0.01 245); + --tri-trust-official: oklch(0.806 0.09 242.2); + --tri-trust-official-bg: oklch(0 0 0); + --tri-trust-official-border: oklch(0.806 0.09 242.2); + --tri-trust-official-text: oklch(0.806 0.09 242.2); + --tri-trust-verified: oklch(0.806 0.09 242.2); + --tri-trust-verified-bg: oklch(0 0 0); + --tri-trust-verified-border: oklch(0.806 0.09 242.2); + --tri-trust-verified-text: oklch(0.806 0.09 242.2); + --tri-warning: oklch(0.969 0.034 86.3); + --tri-warning-foreground: oklch(0.443 0.125 43.7); + --tri-warning-hover: oklch(0.673 0.16 57.7); +} +} diff --git a/assets/css/vendor/trident/tri-spacing.css b/assets/css/vendor/trident/tri-spacing.css new file mode 100644 index 000000000000..447880928784 --- /dev/null +++ b/assets/css/vendor/trident/tri-spacing.css @@ -0,0 +1,5 @@ +/* Auto-generated from tokens/ — DO NOT EDIT — run `pnpm run tokens:build` */ + +@theme inline { + --spacing: 4px; +} diff --git a/assets/css/vendor/trident/tri-themes.css b/assets/css/vendor/trident/tri-themes.css new file mode 100644 index 000000000000..b0b779243b3c --- /dev/null +++ b/assets/css/vendor/trident/tri-themes.css @@ -0,0 +1,31 @@ +/* Auto-generated from tokens/src/themes/ — DO NOT EDIT — run `pnpm run tokens:build` */ + +/* Product and marketing themes override spatial/typographic tokens only. + Color tokens in theme files are a build error. + Apply via: or */ + +.marketing { + --tri-font-size-base: 16px; + --tri-font-weight-body: 400; + --tri-font-weight-heading: 800; + --tri-font-weight-label: 600; + --tri-icon-size-default: 24px; + --tri-icon-size-lg: 32px; + --tri-icon-size-md: 24px; + --tri-icon-size-sm: 20px; + --tri-icon-stroke: 2; + --tri-radius-default: 8px; +} + +.product { + --tri-font-size-base: 14px; + --tri-font-weight-body: 420; + --tri-font-weight-heading: 680; + --tri-font-weight-label: 520; + --tri-icon-size-default: 16px; + --tri-icon-size-lg: 24px; + --tri-icon-size-md: 20px; + --tri-icon-size-sm: 16px; + --tri-icon-stroke: 1.5; + --tri-radius-default: 5px; +} diff --git a/assets/css/vendor/trident/tri-tokens.css b/assets/css/vendor/trident/tri-tokens.css new file mode 100644 index 000000000000..302c023b7cac --- /dev/null +++ b/assets/css/vendor/trident/tri-tokens.css @@ -0,0 +1,10 @@ +/* Auto-generated barrel — DO NOT EDIT */ +@import './tri-primitives.css'; +@import './tri-semantic.css'; +@import './tri-spacing.css'; +@import './tri-typography.css'; +@import './tri-motion.css'; +@import './tri-radius.css'; +@import './tri-elevation.css'; +@import './tri-component.css'; +@import './tri-themes.css'; diff --git a/assets/css/vendor/trident/tri-typography.css b/assets/css/vendor/trident/tri-typography.css new file mode 100644 index 000000000000..e9a4f51faafe --- /dev/null +++ b/assets/css/vendor/trident/tri-typography.css @@ -0,0 +1,155 @@ +/* Auto-generated from tokens/ — DO NOT EDIT — run `pnpm run tokens:build` */ + +@layer tri.typography { +:root { + --tri-font-family-display: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-font-family-mono: 'ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', monospace; + --tri-font-family-mono-code: 'JetBrains Mono Variable', 'JetBrains Mono', 'ui-monospace', 'SFMono-Regular', monospace; + --tri-font-family-sans: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-font-size-2xl: 24px; + --tri-font-size-2xs: 10px; + --tri-font-size-3xl: 30px; + --tri-font-size-3xs: 9px; + --tri-font-size-4xl: 36px; + --tri-font-size-5xl: 48px; + --tri-font-size-base: 14px; + --tri-font-size-lg: 18px; + --tri-font-size-md: 16px; + --tri-font-size-micro: 11px; + --tri-font-size-sm: 14px; + --tri-font-size-xl: 20px; + --tri-font-size-xs: 12px; + --tri-font-weight-black: 900; + --tri-font-weight-body: 420; + --tri-font-weight-bold: 700; + --tri-font-weight-extrabold: 800; + --tri-font-weight-extralight: 200; + --tri-font-weight-heading: 680; + --tri-font-weight-label: 520; + --tri-font-weight-light: 300; + --tri-font-weight-medium: 500; + --tri-font-weight-mono: 400; + --tri-font-weight-regular: 400; + --tri-font-weight-semibold: 600; + --tri-font-weight-thin: 100; + --tri-letter-spacing-normal: 0em; + --tri-letter-spacing-tight: -0.025em; + --tri-letter-spacing-tighter: -0.05em; + --tri-letter-spacing-wide: 0.025em; + --tri-letter-spacing-wider: 0.05em; + --tri-letter-spacing-widest: 0.1em; + --tri-line-height-comfortable: 1.45; + --tri-line-height-loose: 2; + --tri-line-height-none: 1; + --tri-line-height-normal: 1.5; + --tri-line-height-reading: 1.55; + --tri-line-height-relaxed: 1.625; + --tri-line-height-snug: 1.375; + --tri-line-height-tight: 1.25; + --tri-scale-body-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-body-font-size: 16px; + --tri-scale-body-font-weight: 420; + --tri-scale-body-letter-spacing: -0.008em; + --tri-scale-body-line-height: 1.625; + --tri-scale-body-sm-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-body-sm-font-size: 14px; + --tri-scale-body-sm-font-weight: 420; + --tri-scale-body-sm-letter-spacing: -0.011em; + --tri-scale-body-sm-line-height: 1.625; + --tri-scale-caption-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-caption-font-size: 12px; + --tri-scale-caption-font-weight: 420; + --tri-scale-caption-letter-spacing: -0.006em; + --tri-scale-caption-line-height: 1.45; + --tri-scale-display-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-display-font-size: 48px; + --tri-scale-display-font-weight: 680; + --tri-scale-display-letter-spacing: -0.025em; + --tri-scale-display-line-height: 1.25; + --tri-scale-heading-1-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-heading-1-font-size: 36px; + --tri-scale-heading-1-font-weight: 680; + --tri-scale-heading-1-letter-spacing: -0.022em; + --tri-scale-heading-1-line-height: 1.25; + --tri-scale-heading-2-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-heading-2-font-size: 30px; + --tri-scale-heading-2-font-weight: 680; + --tri-scale-heading-2-letter-spacing: -0.018em; + --tri-scale-heading-2-line-height: 1.375; + --tri-scale-heading-3-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-heading-3-font-size: 24px; + --tri-scale-heading-3-font-weight: 680; + --tri-scale-heading-3-letter-spacing: -0.015em; + --tri-scale-heading-3-line-height: 1.375; + --tri-scale-heading-4-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-heading-4-font-size: 20px; + --tri-scale-heading-4-font-weight: 680; + --tri-scale-heading-4-letter-spacing: -0.012em; + --tri-scale-heading-4-line-height: 1.375; + --tri-scale-label-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-label-font-size: 13px; + --tri-scale-label-font-weight: 520; + --tri-scale-label-letter-spacing: -0.008em; + --tri-scale-label-line-height: 1.4; + --tri-scale-mono-code-font-family: 'JetBrains Mono Variable', 'JetBrains Mono', 'ui-monospace', 'SFMono-Regular', monospace; + --tri-scale-mono-code-font-size: 13px; + --tri-scale-mono-code-font-weight: 400; + --tri-scale-mono-code-letter-spacing: 0em; + --tri-scale-mono-code-line-height: 1.55; + --tri-scale-mono-data-font-family: 'ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', monospace; + --tri-scale-mono-data-font-size: 12px; + --tri-scale-mono-data-font-weight: 400; + --tri-scale-mono-data-letter-spacing: 0em; + --tri-scale-mono-data-line-height: 1.45; + --tri-scale-overline-font-family: 'Manrope Variable', 'Manrope', system-ui, sans-serif; + --tri-scale-overline-font-size: 10px; + --tri-scale-overline-font-weight: 520; + --tri-scale-overline-letter-spacing: 0.08em; + --tri-scale-overline-line-height: 1.3; +} +} +@theme inline { + --font-display: var(--tri-font-family-display); + --font-mono: var(--tri-font-family-mono); + --font-mono-code: var(--tri-font-family-mono-code); + --font-sans: var(--tri-font-family-sans); + --text-2xl: var(--tri-font-size-2xl); + --text-2xs: var(--tri-font-size-2xs); + --text-3xl: var(--tri-font-size-3xl); + --text-3xs: var(--tri-font-size-3xs); + --text-4xl: var(--tri-font-size-4xl); + --text-5xl: var(--tri-font-size-5xl); + --text-base: var(--tri-font-size-base); + --text-lg: var(--tri-font-size-lg); + --text-micro: var(--tri-font-size-micro); + --text-sm: var(--tri-font-size-sm); + --text-xl: var(--tri-font-size-xl); + --text-xs: var(--tri-font-size-xs); + --font-weight-black: var(--tri-font-weight-black); + --font-weight-body: var(--tri-font-weight-body); + --font-weight-bold: var(--tri-font-weight-bold); + --font-weight-extrabold: var(--tri-font-weight-extrabold); + --font-weight-extralight: var(--tri-font-weight-extralight); + --font-weight-heading: var(--tri-font-weight-heading); + --font-weight-label: var(--tri-font-weight-label); + --font-weight-light: var(--tri-font-weight-light); + --font-weight-medium: var(--tri-font-weight-medium); + --font-weight-mono: var(--tri-font-weight-mono); + --font-weight-normal: var(--tri-font-weight-regular); + --font-weight-semibold: var(--tri-font-weight-semibold); + --font-weight-thin: var(--tri-font-weight-thin); + --tracking-normal: var(--tri-letter-spacing-normal); + --tracking-tight: var(--tri-letter-spacing-tight); + --tracking-tighter: var(--tri-letter-spacing-tighter); + --tracking-wide: var(--tri-letter-spacing-wide); + --tracking-wider: var(--tri-letter-spacing-wider); + --tracking-widest: var(--tri-letter-spacing-widest); + --leading-comfortable: var(--tri-line-height-comfortable); + --leading-loose: var(--tri-line-height-loose); + --leading-none: var(--tri-line-height-none); + --leading-normal: var(--tri-line-height-normal); + --leading-reading: var(--tri-line-height-reading); + --leading-relaxed: var(--tri-line-height-relaxed); + --leading-snug: var(--tri-line-height-snug); + --leading-tight: var(--tri-line-height-tight); +} diff --git a/hack/vendor-trident-tokens.mjs b/hack/vendor-trident-tokens.mjs new file mode 100644 index 000000000000..c7bb96e83094 --- /dev/null +++ b/hack/vendor-trident-tokens.mjs @@ -0,0 +1,62 @@ +#!/usr/bin/env node +// Import generated CSS from an extracted package or a built Trident checkout. +import { createHash } from "node:crypto"; +import { mkdir, readFile, readdir, writeFile } from "node:fs/promises"; +import { resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +const [packagePath, revision] = process.argv.slice(2); +if (!packagePath || !/^[a-f0-9]{40}$/.test(revision || "")) { + throw new Error( + "Usage: node hack/vendor-trident-tokens.mjs ", + ); +} +const source = resolve(packagePath); +const pkg = JSON.parse(await readFile(resolve(source, "package.json"), "utf8")); +if (pkg.name !== "@docker/trident-tokens") { + throw new Error("Expected @docker/trident-tokens"); +} +const styles = resolve(source, "dist/styles"); +const names = (await readdir(styles)) + .filter((name) => /^tri-[a-z-]+\.css$/.test(name)) + .sort(); +const files = new Map( + await Promise.all( + names.map(async (name) => [name, await readFile(resolve(styles, name))]), + ), +); +if (!files.has("tri-tokens.css")) + throw new Error("Missing generated CSS entry point"); +for (const content of files.values()) { + for (const match of content + .toString() + .matchAll(/@import\s+['"]\.\/([^'"]+)['"]/g)) { + if (!files.has(match[1])) + throw new Error(`Missing imported file: ${match[1]}`); + } +} +const target = fileURLToPath( + new URL("../assets/css/vendor/trident/", import.meta.url), +); +await mkdir(target, { recursive: true }); +const hashes = {}; +for (const [name, content] of files) { + await writeFile(resolve(target, name), content); + hashes[name] = createHash("sha256").update(content).digest("hex"); +} +await writeFile( + resolve(target, "manifest.json"), + JSON.stringify( + { + package: pkg.name, + version: pkg.version, + repository: "https://github.com/docker/trident", + revision, + license: pkg.license || null, + files: hashes, + }, + null, + 2, + ) + "\n", +); +console.log(`Vendored ${files.size} CSS files from ${pkg.name}@${pkg.version}`); diff --git a/layouts/_partials/head.html b/layouts/_partials/head.html index 15afc7ad4338..3d65bc4c3ded 100644 --- a/layouts/_partials/head.html +++ b/layouts/_partials/head.html @@ -86,9 +86,9 @@ {{- end -}} {{- end -}} -{{/* preload Roboto Flex as it's a critical font: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/preload */}} +{{/* preload Manrope as it's a critical font: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/preload */}} +
{{- if not .IsHome }} diff --git a/layouts/baseof.html b/layouts/baseof.html index 823d4a087912..9de711b3bd19 100644 --- a/layouts/baseof.html +++ b/layouts/baseof.html @@ -5,7 +5,7 @@ {{ partial "header.html" . }} {{ partial "gordon-chat.html" . }} @@ -30,7 +30,10 @@ } } })" - class="bg-background-toc dark:bg-background-toc fixed top-0 z-40 hidden h-screen w-full flex-none overflow-x-hidden overflow-y-auto{{ if ne .Type "guides" }} md:sticky md:top-16 md:z-auto md:block md:h-[calc(100vh-64px)] md:w-[320px]{{ end }}" + class="bg-background-toc dark:bg-background-toc overflow-y-auto{{ if ne .Type "guides" }} + md:sticky md:top-16 md:z-auto md:block md:h-[calc(100vh-64px)] + md:w-[320px] + {{ end }} fixed top-0 z-40 hidden h-screen w-full flex-none overflow-x-hidden" :class="{ 'hidden': ! $store.showSidebar }" > @@ -61,7 +64,7 @@
{{ partial "pagefind-meta.html" . }} {{ block "main" . }} diff --git a/static/assets/fonts/manrope/LICENSE b/static/assets/fonts/manrope/LICENSE new file mode 100644 index 000000000000..462280f3e403 --- /dev/null +++ b/static/assets/fonts/manrope/LICENSE @@ -0,0 +1,93 @@ +Copyright 2019 The Manrope Project Authors (https://github.com/sharanda/manrope) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/static/assets/fonts/manrope/manrope-cyrillic-ext-wght-normal.woff2 b/static/assets/fonts/manrope/manrope-cyrillic-ext-wght-normal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..57c7c0eefb32d1c9cf8780f8c95020499bf06e9c GIT binary patch literal 2552 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 OOoF>N3^%;Um8 literal 0 HcmV?d00001 diff --git a/static/assets/fonts/manrope/manrope-cyrillic-wght-normal.woff2 b/static/assets/fonts/manrope/manrope-cyrillic-wght-normal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3a062296a1269ded5bf605334d18f3e43088c888 GIT binary patch literal 14500 zcmV;VI9tbePew8T0RR91063%o6951J0DPDL05~=P0RR9100000000000000000000 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 C%jrD; literal 0 HcmV?d00001 diff --git a/static/assets/fonts/manrope/manrope-greek-wght-normal.woff2 b/static/assets/fonts/manrope/manrope-greek-wght-normal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e74e7189632e9be70aa32c83057e9637cce6b3df GIT binary patch literal 9444 zcmV+;0RR9100000000000000000000 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 yUH7%t literal 0 HcmV?d00001 diff --git a/static/assets/fonts/manrope/manrope-latin-wght-normal.woff2 b/static/assets/fonts/manrope/manrope-latin-wght-normal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..71eb731d558046199aa7f985adbf812890a093a1 GIT binary patch literal 24836 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 literal 0 HcmV?d00001 diff --git a/static/assets/fonts/manrope/manrope-vietnamese-wght-normal.woff2 b/static/assets/fonts/manrope/manrope-vietnamese-wght-normal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1e4b7a4b3fb95ad762a8882885b3331cc0e073ed GIT binary patch literal 8520 zcmV-OA-CRlPew8T0RR9103k>K6951J0EdJC03g}`0RR9100000000000000000000 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 Csflp_ literal 0 HcmV?d00001 From 8486d86fe0ab1d1677d8a833644eec9095cb9253 Mon Sep 17 00:00:00 2001 From: David Karlsson <35727626+dvdksn@users.noreply.github.com> Date: Wed, 16 Sep 2026 10:25:53 +0000 Subject: [PATCH 02/11] docs: remove resolved Trident licensing caveat --- TRIDENT-PROTOTYPE.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/TRIDENT-PROTOTYPE.md b/TRIDENT-PROTOTYPE.md index 1f9298ec0b0d..f9e41e552e1d 100644 --- a/TRIDENT-PROTOTYPE.md +++ b/TRIDENT-PROTOTYPE.md @@ -58,9 +58,6 @@ lockfile: `tsx@4.23.1`, `style-dictionary@5.5.1`, `apca-w3@0.1.9`, and `culori@4.0.2`. Upstream checks reported 97 contrast pairs with zero failures and explicit dark overrides for all 286 aliased tokens. -The token package does not declare a license. Public redistribution terms remain -an open item for the Trident team. - Font files come from `@fontsource-variable/manrope@5.2.8` on npmjs.org. The unmodified WOFF2 subsets and their SIL Open Font License are under `static/assets/fonts/manrope/`. The font declarations retain the package's @@ -77,7 +74,7 @@ $ node hack/vendor-trident-tokens.mjs /path/to/trident/packages/tokens <40-chara The script validates the package name and local CSS imports, copies the generated files without modification, and records their version and checksums. -Review the CSS diff and any upstream license terms. Keep docs adjustments in +Review the CSS diff. Keep docs adjustments in `assets/css/trident.css`. The refresh step is separate from ordinary builds. If the token package becomes available publicly on npmjs.org, replace the From 9f67b34cfaf77b71584eb46bbcd1eef650b6924f Mon Sep 17 00:00:00 2001 From: David Karlsson <35727626+dvdksn@users.noreply.github.com> Date: Wed, 16 Sep 2026 13:17:17 +0000 Subject: [PATCH 03/11] style: align text contrast with Trident color roles --- TRIDENT-PROTOTYPE.md | 9 +++++++++ assets/css/trident.css | 34 ++++++++++++++++++++++++---------- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/TRIDENT-PROTOTYPE.md b/TRIDENT-PROTOTYPE.md index f9e41e552e1d..c276267bd989 100644 --- a/TRIDENT-PROTOTYPE.md +++ b/TRIDENT-PROTOTYPE.md @@ -38,6 +38,15 @@ Manrope supplies the interface and article typeface. Article body text uses the the existing Roboto Mono font. The existing theme switch activates Trident's `.dark` overrides. +Body text and card descriptions use `muted-foreground`; headings, emphasis, and +alert content use `foreground`. Inactive sidebar items use +`sidebar-foreground-muted`, with stronger text on the active item. These roles +follow Trident's Markdown renderer and component recipes. The near-black dark +page background is Trident's default, not its separate high-contrast mode. + +The neutral header is a docs-specific adaptation. Trident's `AppHeader` component +uses the `header-from` and `header-to` blue gradient tokens. + This is an integration prototype. Syntax highlighting, search internals, Gordon, landing-page layouts, and other components still need a design review. Loading tokens does not provide Trident component behavior or certify accessibility. diff --git a/assets/css/trident.css b/assets/css/trident.css index 88f6719d8717..6126f86e443b 100644 --- a/assets/css/trident.css +++ b/assets/css/trident.css @@ -9,8 +9,8 @@ --color-background-dark: var(--tri-background); --color-navbar-bg: var(--tri-sidebar); --color-navbar-bg-dark: var(--tri-sidebar); - --color-navbar-text: var(--tri-sidebar-foreground); - --color-navbar-text-dark: var(--tri-sidebar-foreground); + --color-navbar-text: var(--tri-sidebar-foreground-muted); + --color-navbar-text-dark: var(--tri-sidebar-foreground-muted); --color-divider-light: var(--tri-border); --color-divider-dark: var(--tri-border); } @@ -92,25 +92,29 @@ } .navbar-entry-background-current { - background: var(--tri-sidebar-accent); - color: var(--tri-sidebar-accent-foreground); + background: var(--tri-accent-subtle); + color: var(--tri-foreground); border-radius: var(--tri-radius-default); } + .navbar-font a:hover { + color: var(--tri-sidebar-foreground); + } + .navbar-entry-background-current a[aria-current="page"] { - color: var(--tri-primary); + color: var(--tri-foreground); font-weight: var(--tri-font-weight-semibold); } .prose { - --tw-prose-body: var(--tri-foreground); + --tw-prose-body: var(--tri-muted-foreground); --tw-prose-headings: var(--tri-foreground); --tw-prose-links: var(--tri-primary); --tw-prose-bold: var(--tri-foreground); --tw-prose-counters: var(--tri-muted-foreground); --tw-prose-bullets: var(--tri-muted-foreground); --tw-prose-hr: var(--tri-border); - --tw-prose-quotes: var(--tri-foreground); + --tw-prose-quotes: var(--tri-muted-foreground); --tw-prose-quote-borders: var(--tri-border); --tw-prose-captions: var(--tri-muted-foreground); --tw-prose-code: var(--tri-foreground); @@ -169,12 +173,12 @@ .card-header, .card-icon, - .section-card-title, - .section-card-text { + .section-card-title { color: var(--tri-card-foreground); } - .card-description { + .card-description, + .section-card-text { color: var(--tri-muted-foreground); } @@ -227,9 +231,19 @@ border: 1px solid var(--docs-callout-border); border-radius: var(--tri-radius-lg); background: var(--docs-callout-bg); + color: var(--tri-muted-foreground); + } + + .admonition-header { color: var(--docs-callout-title); } + /* Trident alerts keep body copy neutral and strong on tinted surfaces. */ + .admonition-content, + .admonition strong { + color: var(--tri-foreground); + } + .admonition-note { --docs-callout-border: var(--tri-alert-info-border); --docs-callout-bg: var(--tri-alert-info-bg); From d94e95314ac970ffab13d93d19b78bf15569e426 Mon Sep 17 00:00:00 2001 From: David Karlsson <35727626+dvdksn@users.noreply.github.com> Date: Wed, 16 Sep 2026 13:34:02 +0000 Subject: [PATCH 04/11] style: add docs reading foreground token --- TRIDENT-PROTOTYPE.md | 16 +++++++++++----- assets/css/trident.css | 9 ++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/TRIDENT-PROTOTYPE.md b/TRIDENT-PROTOTYPE.md index c276267bd989..2dabb0f9c856 100644 --- a/TRIDENT-PROTOTYPE.md +++ b/TRIDENT-PROTOTYPE.md @@ -38,11 +38,17 @@ Manrope supplies the interface and article typeface. Article body text uses the the existing Roboto Mono font. The existing theme switch activates Trident's `.dark` overrides. -Body text and card descriptions use `muted-foreground`; headings, emphasis, and -alert content use `foreground`. Inactive sidebar items use -`sidebar-foreground-muted`, with stronger text on the active item. These roles -follow Trident's Markdown renderer and component recipes. The near-black dark -page background is Trident's default, not its separate high-contrast mode. +Article body text and ordinary quotations use `--docs-reading-foreground`, a +docs-specific semantic token for sustained reading. It aliases Trident gray 700 +in light mode and gray 300 in dark mode, between the primary and muted text +roles. Contrast against the page background is approximately 10.1:1 in light +mode and 12.3:1 in dark mode. This is a local adaptation, not an upstream Trident +token or a global override of `muted-foreground`. + +Card descriptions and metadata retain their muted colors. Headings, emphasis, +and alert content use `foreground`. Inactive sidebar items use +`sidebar-foreground-muted`, with stronger text on the active item. The near-black +dark page background is Trident's default, not its separate high-contrast mode. The neutral header is a docs-specific adaptation. Trident's `AppHeader` component uses the `header-from` and `header-to` blue gradient tokens. diff --git a/assets/css/trident.css b/assets/css/trident.css index 6126f86e443b..7890b39f4755 100644 --- a/assets/css/trident.css +++ b/assets/css/trident.css @@ -19,6 +19,8 @@ semantic pairs on the components migrated by this prototype. */ @layer docs { :root { + /* Long-form reading sits between Trident's primary and muted text roles. */ + --docs-reading-foreground: var(--tri-gray-700); --navbar-font-size: var(--tri-scale-label-font-size); --tw-prose-code-bg: var(--tri-muted); --tw-prose-code-bg-dark: var(--tri-muted); @@ -26,6 +28,7 @@ } :root.dark { + --docs-reading-foreground: var(--tri-gray-300); color-scheme: dark; } @@ -107,14 +110,14 @@ } .prose { - --tw-prose-body: var(--tri-muted-foreground); + --tw-prose-body: var(--docs-reading-foreground); --tw-prose-headings: var(--tri-foreground); --tw-prose-links: var(--tri-primary); --tw-prose-bold: var(--tri-foreground); --tw-prose-counters: var(--tri-muted-foreground); --tw-prose-bullets: var(--tri-muted-foreground); --tw-prose-hr: var(--tri-border); - --tw-prose-quotes: var(--tri-muted-foreground); + --tw-prose-quotes: var(--docs-reading-foreground); --tw-prose-quote-borders: var(--tri-border); --tw-prose-captions: var(--tri-muted-foreground); --tw-prose-code: var(--tri-foreground); @@ -231,7 +234,7 @@ border: 1px solid var(--docs-callout-border); border-radius: var(--tri-radius-lg); background: var(--docs-callout-bg); - color: var(--tri-muted-foreground); + color: var(--docs-reading-foreground); } .admonition-header { From cf26e5dcf948b2daf46a3a7a07c04404424b432c Mon Sep 17 00:00:00 2001 From: David Karlsson <35727626+dvdksn@users.noreply.github.com> Date: Wed, 16 Sep 2026 13:49:03 +0000 Subject: [PATCH 05/11] style: strengthen Trident reading contrast and surface hierarchy --- TRIDENT-PROTOTYPE.md | 22 ++++++++++----------- assets/css/trident.css | 36 +++++++++++++++++++++++++++++++---- assets/css/utilities.css | 12 ++++++++---- layouts/_partials/aside.html | 2 +- layouts/_partials/header.html | 6 +++++- layouts/baseof.html | 2 +- 6 files changed, 58 insertions(+), 22 deletions(-) diff --git a/TRIDENT-PROTOTYPE.md b/TRIDENT-PROTOTYPE.md index 2dabb0f9c856..611d627c1f37 100644 --- a/TRIDENT-PROTOTYPE.md +++ b/TRIDENT-PROTOTYPE.md @@ -38,17 +38,17 @@ Manrope supplies the interface and article typeface. Article body text uses the the existing Roboto Mono font. The existing theme switch activates Trident's `.dark` overrides. -Article body text and ordinary quotations use `--docs-reading-foreground`, a -docs-specific semantic token for sustained reading. It aliases Trident gray 700 -in light mode and gray 300 in dark mode, between the primary and muted text -roles. Contrast against the page background is approximately 10.1:1 in light -mode and 12.3:1 in dark mode. This is a local adaptation, not an upstream Trident -token or a global override of `muted-foreground`. - -Card descriptions and metadata retain their muted colors. Headings, emphasis, -and alert content use `foreground`. Inactive sidebar items use -`sidebar-foreground-muted`, with stronger text on the active item. The near-black -dark page background is Trident's default, not its separate high-contrast mode. +Article body text and ordinary quotations use Trident's primary foreground +through the local `--docs-reading-foreground` alias. The reading surface uses +`background-primary`: white in light mode and a lifted dark surface in dark +mode. Subtle borders separate the navigation from the reading area. These are +local layout adaptations; the separate Trident high-contrast mode stays inactive. + +Card descriptions and metadata retain their muted colors. Inactive sidebar +items use `sidebar-foreground-muted`, with stronger text on the active item. +Inactive table-of-contents links are neutral; active and hovered links use the +primary accent. Inline code uses a faint foreground tint and compact padding, +while fenced code retains its existing syntax highlighting. The neutral header is a docs-specific adaptation. Trident's `AppHeader` component uses the `header-from` and `header-to` blue gradient tokens. diff --git a/assets/css/trident.css b/assets/css/trident.css index 7890b39f4755..98cc9269ff33 100644 --- a/assets/css/trident.css +++ b/assets/css/trident.css @@ -19,8 +19,12 @@ semantic pairs on the components migrated by this prototype. */ @layer docs { :root { - /* Long-form reading sits between Trident's primary and muted text roles. */ - --docs-reading-foreground: var(--tri-gray-700); + --docs-reading-foreground: var(--tri-foreground); + --docs-inline-code-bg: color-mix( + in oklab, + var(--tri-foreground) 5%, + var(--tri-background-primary) + ); --navbar-font-size: var(--tri-scale-label-font-size); --tw-prose-code-bg: var(--tri-muted); --tw-prose-code-bg-dark: var(--tri-muted); @@ -28,7 +32,6 @@ } :root.dark { - --docs-reading-foreground: var(--tri-gray-300); color-scheme: dark; } @@ -43,13 +46,26 @@ color: var(--tri-foreground); } + .docs-content { + background: var(--tri-background-primary); + } + + .docs-sidebar { + border-right: 1px solid var(--tri-border-subtle); + } + + .docs-aside { + border-left: 1px solid var(--tri-border-subtle); + padding-left: 1rem; + } + .docs-header { background: var(--tri-sidebar); color: var(--tri-foreground); border-bottom: 1px solid var(--tri-border); } - .docs-header a[title="Docker Docs home page"] path[fill="white"] { + .docs-logo path { fill: currentColor; } @@ -152,6 +168,18 @@ color: var(--tri-primary); } + .toc a { + color: var(--tri-muted-foreground); + background: none; + border-left: 2px solid transparent; + } + + .toc a[aria-current="true"], + .toc a:hover { + color: var(--tri-primary); + border-left-color: var(--tri-primary); + } + .prose [marlin-action] { color: var(--tri-muted-foreground); } diff --git a/assets/css/utilities.css b/assets/css/utilities.css index 819af1bf9880..628c8caa806b 100644 --- a/assets/css/utilities.css +++ b/assets/css/utilities.css @@ -108,17 +108,21 @@ } /* code in `inline code` style */ - :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)), + :where(code):not(:where(pre *, [class~="not-prose"], [class~="not-prose"] *)), a > code { + overflow-wrap: anywhere; font-size: 0.875em; font-weight: 400 !important; border: 1px solid !important; border-radius: 0.25rem; border: none !important; - padding: 4px !important; - background: var(--tw-prose-code-bg) !important; + padding: 0.1em 0.25em !important; + background: var(--docs-inline-code-bg, var(--tw-prose-code-bg)) !important; .dark & { - background: var(--tw-prose-code-bg-dark) !important; + background: var( + --docs-inline-code-bg, + var(--tw-prose-code-bg-dark) + ) !important; } &::before, &::after { diff --git a/layouts/_partials/aside.html b/layouts/_partials/aside.html index 5ed76e1a20cb..52e485d7e923 100644 --- a/layouts/_partials/aside.html +++ b/layouts/_partials/aside.html @@ -1,5 +1,5 @@