@takazudo/zudo-doc 3.2.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/README.md +2 -2
- package/bin/tag-cli-config.ts +126 -0
- package/bin/tags-audit-runner.ts +60 -76
- package/bin/tags-audit.mjs +17 -36
- package/bin/tags-suggest-runner.ts +429 -0
- package/bin/tags-suggest.mjs +30 -0
- package/bin/zudo-doc.mjs +78 -25
- package/dist/breadcrumb/breadcrumb.d.ts +4 -4
- package/dist/breadcrumb/find-path.d.ts +2 -2
- package/dist/breadcrumb/index.d.ts +1 -1
- package/dist/breadcrumb/types.d.ts +0 -5
- package/dist/chrome/derive.d.ts +16 -4
- package/dist/chrome/derive.js +64 -4
- package/dist/chrome/index.d.ts +13 -10
- package/dist/chrome/index.js +12 -6
- package/dist/chrome/primary-slots.d.ts +21 -0
- package/dist/chrome/primary-slots.js +59 -0
- package/dist/chrome-bindings.d.ts +227 -0
- package/dist/chrome-bindings.js +6 -0
- package/dist/code-syntax/code-block-enhancer-script.d.ts +4 -0
- package/dist/code-syntax/code-block-enhancer-script.js +7 -4
- package/dist/code-syntax/code-block-enhancer.d.ts +2 -2
- package/dist/code-syntax/code-block-enhancer.js +1 -3
- package/dist/code-syntax/index.d.ts +5 -5
- package/dist/code-syntax/index.js +4 -13
- package/dist/code-syntax/mermaid-init-script.d.ts +1 -22
- package/dist/code-syntax/mermaid-init-script.js +0 -2
- package/dist/code-syntax/mermaid-init.d.ts +0 -1
- package/dist/code-syntax/mermaid-init.js +3 -4
- package/dist/code-syntax/tabs-init.d.ts +0 -1
- package/dist/code-syntax/tabs-init.js +1 -3
- package/dist/code-syntax/tabs.d.ts +0 -1
- package/dist/code-syntax/tabs.js +1 -3
- package/dist/color-scheme-utils.d.ts +72 -4
- package/dist/color-scheme-utils.js +137 -0
- package/dist/color-schemes-defaults/index.d.ts +23 -0
- package/dist/color-schemes-defaults/index.js +134 -0
- package/dist/config.d.ts +459 -0
- package/dist/config.js +125 -0
- package/dist/content/component-map.d.ts +0 -16
- package/dist/content/component-map.js +2 -4
- package/dist/content/index.d.ts +1 -1
- package/dist/content/index.js +2 -3
- package/dist/content.css +1 -1
- package/dist/design-token-panel-bootstrap.d.ts +82 -27
- package/dist/design-token-panel-bootstrap.js +110 -21
- package/dist/design-token-panel-config/index.d.ts +49 -0
- package/dist/design-token-panel-config/index.js +211 -0
- package/dist/design-token-panel-config/manifest.d.ts +46 -0
- package/dist/design-token-panel-config/manifest.js +105 -0
- package/dist/directive-vocabulary-defaults/index.d.ts +16 -0
- package/dist/directive-vocabulary-defaults/index.js +12 -0
- package/dist/doc-body-end-islands/design-token-panel-island.d.ts +15 -0
- package/dist/doc-body-end-islands/design-token-panel-island.js +31 -0
- package/dist/doc-body-end-islands/index.d.ts +52 -7
- package/dist/doc-body-end-islands/index.js +19 -0
- package/dist/doc-body-end-islands/theme-pack-switcher-island.d.ts +37 -0
- package/dist/doc-body-end-islands/theme-pack-switcher-island.js +18 -0
- package/dist/doc-content-header/index.js +1 -1
- package/dist/doc-history-area/index.d.ts +10 -4
- package/dist/doc-history-area/index.js +3 -2
- package/dist/doc-metainfo-area/index.d.ts +1 -0
- package/dist/doc-page-props/index.d.ts +7 -23
- package/dist/doc-page-renderer/index.d.ts +1 -0
- package/dist/doc-page-renderer/index.js +1 -0
- package/dist/doc-page-shell/index.js +19 -12
- package/dist/doc-pager/index.js +1 -1
- package/dist/doc-route-entries/index.d.ts +2 -2
- package/dist/doclayout/doc-layout-with-defaults.js +4 -4
- package/dist/doclayout/doc-layout.d.ts +8 -0
- package/dist/doclayout/doc-layout.js +10 -1
- package/dist/docs-schema/index.d.ts +67 -0
- package/dist/docs-schema/index.js +43 -0
- package/dist/eject/index.d.ts +16 -0
- package/dist/eject/index.js +122 -28
- package/dist/extract-headings/index.d.ts +5 -8
- package/dist/extract-headings/index.js +2 -9
- package/dist/factory-context/index.d.ts +56 -4
- package/dist/features.css +65 -43
- package/dist/find-in-page/find-bar.d.ts +9 -0
- package/dist/find-in-page/find-bar.js +114 -0
- package/dist/find-in-page/find-in-page.d.ts +17 -0
- package/dist/find-in-page/find-in-page.js +131 -0
- package/dist/find-in-page/index.d.ts +11 -0
- package/dist/find-in-page/index.js +49 -0
- package/dist/footer/footer.js +1 -0
- package/dist/frontmatter-preview-defaults/index.d.ts +16 -0
- package/dist/frontmatter-preview-defaults/index.js +25 -0
- package/dist/head-with-defaults/index.d.ts +2 -0
- package/dist/head-with-defaults/index.js +16 -0
- package/dist/header/header.d.ts +10 -5
- package/dist/header/header.js +45 -5
- package/dist/header/index.d.ts +1 -1
- package/dist/header/types.d.ts +30 -1
- package/dist/header-with-defaults/index.js +1 -0
- package/dist/home-page/index.d.ts +2 -0
- package/dist/home-page/index.js +11 -5
- package/dist/home-page/prepare-home-data.js +1 -1
- package/dist/i18n-defaults/index.d.ts +22 -0
- package/dist/i18n-defaults/index.js +167 -0
- package/dist/locale-merge/index.d.ts +9 -14
- package/dist/locale-merge/index.js +6 -4
- package/dist/mdx-components/index.js +4 -4
- package/dist/plugins/claude-resources.d.ts +1 -0
- package/dist/plugins/claude-resources.js +4 -2
- package/dist/plugins/doc-history.js +1 -1
- package/dist/{integrations → plugins/internal}/claude-resources/index.d.ts +1 -16
- package/dist/{integrations → plugins/internal}/claude-resources/index.js +0 -9
- package/dist/{integrations → plugins/internal}/doc-history/index.d.ts +0 -17
- package/dist/{integrations → plugins/internal}/doc-history/index.js +0 -4
- package/dist/{integrations → plugins/internal}/doc-history/pre-build.d.ts +2 -4
- package/dist/plugins/internal/llms-txt/index.d.ts +7 -0
- package/dist/{integrations → plugins/internal}/llms-txt/load.d.ts +1 -1
- package/dist/{integrations → plugins/internal}/llms-txt/load.js +2 -2
- package/dist/{integrations → plugins/internal}/llms-txt/strip.d.ts +2 -3
- package/dist/{integrations → plugins/internal}/llms-txt/strip.js +1 -1
- package/dist/{integrations → plugins/internal}/llms-txt/types.d.ts +13 -22
- package/dist/{integrations → plugins/internal}/search-index/collect.js +1 -1
- package/dist/plugins/internal/theme-packs/copy.d.ts +32 -0
- package/dist/plugins/internal/theme-packs/copy.js +45 -0
- package/dist/plugins/internal/theme-packs/dev-middleware.d.ts +22 -0
- package/dist/plugins/internal/theme-packs/dev-middleware.js +80 -0
- package/dist/plugins/internal/theme-packs/index.d.ts +6 -0
- package/dist/plugins/internal/theme-packs/index.js +9 -0
- package/dist/plugins/internal/theme-packs/resolve.d.ts +17 -0
- package/dist/plugins/internal/theme-packs/resolve.js +17 -0
- package/dist/plugins/internal/theme-packs/types.d.ts +22 -0
- package/dist/plugins/internal/theme-packs/types.js +0 -0
- package/dist/plugins/llms-txt.js +1 -1
- package/dist/plugins/routes.js +55 -21
- package/dist/plugins/search-index.js +1 -1
- package/dist/plugins/theme-packs.d.ts +3 -0
- package/dist/plugins/theme-packs.js +40 -0
- package/dist/preset.d.ts +28 -14
- package/dist/preset.js +24 -9
- package/dist/route-context/index.js +4 -6
- package/dist/route-enumerators/index.d.ts +6 -18
- package/dist/route-enumerators/index.js +8 -6
- package/dist/routes/404.js +3 -1
- package/dist/routes/_chrome.js +3 -2
- package/dist/routes/_context.d.ts +7 -3
- package/dist/routes/_context.js +2 -0
- package/dist/routes/_docs-helpers.js +9 -21
- package/dist/safelist.css +1 -1
- package/dist/settings.d.ts +64 -12
- package/dist/sidebar-tree/build-tree.d.ts +3 -4
- package/dist/sidebar-tree/build-tree.js +4 -3
- package/dist/sidebar-tree/index.d.ts +2 -2
- package/dist/sidebar-tree/types.d.ts +6 -17
- package/dist/site-tree-nav-island/index.d.ts +3 -1
- package/dist/site-tree-nav-island/index.js +17 -5
- package/dist/site-tree-nav-island/state.d.ts +4 -0
- package/dist/site-tree-nav-island/state.js +10 -0
- package/dist/tag-helpers/index.d.ts +6 -13
- package/dist/tag-helpers/index.js +5 -23
- package/dist/tag-pages/index.d.ts +8 -21
- package/dist/tag-pages/index.js +14 -10
- package/dist/tags-audit.d.ts +16 -44
- package/dist/tags-audit.js +9 -172
- package/dist/theme/color-scheme-provider.d.ts +2 -3
- package/dist/theme/color-scheme-provider.js +2 -10
- package/dist/theme/index.d.ts +1 -4
- package/dist/theme/index.js +2 -30
- package/dist/theme/theme-pack-provider.d.ts +42 -0
- package/dist/theme/theme-pack-provider.js +75 -0
- package/dist/theme-cli/apply.d.ts +16 -0
- package/dist/theme-cli/apply.js +61 -0
- package/dist/theme-cli/config-io.d.ts +15 -0
- package/dist/theme-cli/config-io.js +51 -0
- package/dist/theme-cli/config-rewriter.d.ts +21 -0
- package/dist/theme-cli/config-rewriter.js +141 -0
- package/dist/theme-cli/config-scanner.d.ts +63 -0
- package/dist/theme-cli/config-scanner.js +288 -0
- package/dist/theme-cli/index.d.ts +7 -0
- package/dist/theme-cli/index.js +38 -0
- package/dist/theme-cli/list.d.ts +27 -0
- package/dist/theme-cli/list.js +64 -0
- package/dist/theme-cli/provenance.d.ts +17 -0
- package/dist/theme-cli/provenance.js +35 -0
- package/dist/theme-cli/registry.d.ts +14 -0
- package/dist/theme-cli/registry.js +13 -0
- package/dist/theme-pack-dialog/dialog-state.d.ts +25 -0
- package/dist/theme-pack-dialog/dialog-state.js +40 -0
- package/dist/theme-pack-dialog/index.d.ts +5 -0
- package/dist/theme-pack-dialog/index.js +152 -0
- package/dist/theme-pack-dialog/theme-pack-card.d.ts +25 -0
- package/dist/theme-pack-dialog/theme-pack-card.js +72 -0
- package/dist/theme-pack-switcher/index.d.ts +49 -0
- package/dist/theme-pack-switcher/index.js +205 -0
- package/dist/theme-pack-switcher/switcher-state.d.ts +56 -0
- package/dist/theme-pack-switcher/switcher-state.js +43 -0
- package/dist/theme-pack-switcher/theme-pack-sync.d.ts +85 -0
- package/dist/theme-pack-switcher/theme-pack-sync.js +121 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-400-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-700-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-italic-400-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-italic-700-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegibleMono-italic-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegibleMono-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/OFL.txt +94 -0
- package/dist/theme-packs/beacon/meta.json +37 -0
- package/dist/theme-packs/beacon/pack.css +442 -0
- package/dist/theme-packs/broadsheet/fonts/CourierPrime-400-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/CourierPrime-700-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/OFL.txt +95 -0
- package/dist/theme-packs/broadsheet/fonts/PlayfairDisplay-italic-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/PlayfairDisplay-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/SourceSerif4-italic-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/SourceSerif4-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/meta.json +38 -0
- package/dist/theme-packs/broadsheet/pack.css +448 -0
- package/dist/theme-packs/brutalist/fonts/ArchivoBlack-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/fonts/IBMPlexMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/fonts/OFL.txt +95 -0
- package/dist/theme-packs/brutalist/fonts/SpaceGrotesk-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/meta.json +38 -0
- package/dist/theme-packs/brutalist/pack.css +546 -0
- package/dist/theme-packs/default/meta.json +37 -0
- package/dist/theme-packs/drift/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexSans-italic-latin.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexSans-latin-ext.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexSans-latin.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/OFL.txt +93 -0
- package/dist/theme-packs/drift/meta.json +37 -0
- package/dist/theme-packs/drift/pack.css +478 -0
- package/dist/theme-packs/fjord/fonts/Inter-latin-ext.woff2 +0 -0
- package/dist/theme-packs/fjord/fonts/Inter-latin.woff2 +0 -0
- package/dist/theme-packs/fjord/fonts/JetBrainsMono-latin-ext.woff2 +0 -0
- package/dist/theme-packs/fjord/fonts/JetBrainsMono-latin.woff2 +0 -0
- package/dist/theme-packs/fjord/fonts/OFL.txt +94 -0
- package/dist/theme-packs/fjord/meta.json +37 -0
- package/dist/theme-packs/fjord/pack.css +375 -0
- package/dist/theme-packs/foundry/fonts/Inter-latin-ext.woff2 +0 -0
- package/dist/theme-packs/foundry/fonts/Inter-latin.woff2 +0 -0
- package/dist/theme-packs/foundry/fonts/OFL.txt +93 -0
- package/dist/theme-packs/foundry/meta.json +37 -0
- package/dist/theme-packs/foundry/pack.css +202 -0
- package/dist/theme-packs/futura-editorial/fonts/Jost-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/fonts/NotoSans-italic-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/fonts/NotoSans-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/fonts/OFL.txt +95 -0
- package/dist/theme-packs/futura-editorial/fonts/SpaceMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/fonts/SpaceMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/meta.json +38 -0
- package/dist/theme-packs/futura-editorial/pack.css +313 -0
- package/dist/theme-packs/hearth/fonts/Fraunces-italic-latin.woff2 +0 -0
- package/dist/theme-packs/hearth/fonts/Fraunces-latin.woff2 +0 -0
- package/dist/theme-packs/hearth/fonts/Nunito-latin.woff2 +0 -0
- package/dist/theme-packs/hearth/fonts/OFL.txt +95 -0
- package/dist/theme-packs/hearth/fonts/SplineSansMono-latin.woff2 +0 -0
- package/dist/theme-packs/hearth/meta.json +38 -0
- package/dist/theme-packs/hearth/pack.css +385 -0
- package/dist/theme-packs/hollow/fonts/OFL.txt +94 -0
- package/dist/theme-packs/hollow/fonts/SpaceGrotesk-latin.woff2 +0 -0
- package/dist/theme-packs/hollow/fonts/SpaceMono-400-italic-latin.woff2 +0 -0
- package/dist/theme-packs/hollow/fonts/SpaceMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/hollow/fonts/SpaceMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/hollow/meta.json +37 -0
- package/dist/theme-packs/hollow/pack.css +428 -0
- package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-ext-italic.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-ext.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-italic.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/CrimsonPro-latin.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/OFL.txt +94 -0
- package/dist/theme-packs/ledger/meta.json +37 -0
- package/dist/theme-packs/ledger/pack.css +463 -0
- package/dist/theme-packs/manuscript/fonts/CourierPrime-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/CourierPrime-400-latin.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/CourierPrime-700-latin-ext.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/CourierPrime-700-latin.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/EBGaramond-latin-italic.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/EBGaramond-latin.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/OFL.txt +94 -0
- package/dist/theme-packs/manuscript/meta.json +37 -0
- package/dist/theme-packs/manuscript/pack.css +376 -0
- package/dist/theme-packs/matcha/fonts/MPLUS1Code-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/fonts/OFL.txt +95 -0
- package/dist/theme-packs/matcha/fonts/ShipporiMincho-500-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/fonts/ShipporiMincho-700-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/meta.json +38 -0
- package/dist/theme-packs/matcha/pack.css +409 -0
- package/dist/theme-packs/nocturne/fonts/CormorantGaramond-italic-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/CormorantGaramond-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/IBMPlexMono-italic-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/Manrope-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/OFL.txt +95 -0
- package/dist/theme-packs/nocturne/meta.json +38 -0
- package/dist/theme-packs/nocturne/pack.css +502 -0
- package/dist/theme-packs/observatory/fonts/JosefinSans-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/Jost-italic-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/Jost-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/OFL.txt +95 -0
- package/dist/theme-packs/observatory/fonts/SpaceMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/SpaceMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/SpaceMono-italic-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/meta.json +38 -0
- package/dist/theme-packs/observatory/pack.css +728 -0
- package/dist/theme-packs/onyx/fonts/CormorantGaramond-italic-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/CormorantGaramond-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/Jost-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/OFL.txt +95 -0
- package/dist/theme-packs/onyx/meta.json +38 -0
- package/dist/theme-packs/onyx/pack.css +497 -0
- package/dist/theme-packs/phosphor/fonts/JetBrainsMono-latin-ext.woff2 +0 -0
- package/dist/theme-packs/phosphor/fonts/JetBrainsMono-latin.woff2 +0 -0
- package/dist/theme-packs/phosphor/fonts/OFL.txt +94 -0
- package/dist/theme-packs/phosphor/fonts/VT323-latin-ext.woff2 +0 -0
- package/dist/theme-packs/phosphor/fonts/VT323-latin.woff2 +0 -0
- package/dist/theme-packs/phosphor/meta.json +38 -0
- package/dist/theme-packs/phosphor/pack.css +493 -0
- package/dist/theme-packs/solar/fonts/OFL.txt +94 -0
- package/dist/theme-packs/solar/fonts/SourceCodePro-italic-latin.woff2 +0 -0
- package/dist/theme-packs/solar/fonts/SourceCodePro-latin.woff2 +0 -0
- package/dist/theme-packs/solar/fonts/SourceSans3-italic-latin.woff2 +0 -0
- package/dist/theme-packs/solar/fonts/SourceSans3-latin.woff2 +0 -0
- package/dist/theme-packs/solar/meta.json +37 -0
- package/dist/theme-packs/solar/pack.css +380 -0
- package/dist/theme-packs/sumi/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/OFL.txt +95 -0
- package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-600-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-700-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-800-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/meta.json +38 -0
- package/dist/theme-packs/sumi/pack.css +502 -0
- package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-600-latin.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/Inter-latin-ext.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/Inter-latin.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/InterTight-latin.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/OFL.txt +95 -0
- package/dist/theme-packs/swissgrid/meta.json +38 -0
- package/dist/theme-packs/swissgrid/pack.css +518 -0
- package/dist/theme-packs/washi/fonts/MPlus1Code-400-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/MPlus1Code-500-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/OFL.txt +95 -0
- package/dist/theme-packs/washi/fonts/ShipporiMincho-500-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ShipporiMincho-600-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ShipporiMincho-700-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-700-latin.woff2 +0 -0
- package/dist/theme-packs/washi/meta.json +38 -0
- package/dist/theme-packs/washi/pack.css +479 -0
- package/dist/theme-packs-registry/index.d.ts +5 -0
- package/dist/theme-packs-registry/index.js +30 -0
- package/dist/theme-packs-registry/load-registry.d.ts +23 -0
- package/dist/theme-packs-registry/load-registry.js +64 -0
- package/dist/theme-packs-registry/meta-schema.d.ts +70 -0
- package/dist/theme-packs-registry/meta-schema.js +38 -0
- package/dist/theme-packs-registry/resolve-enabled-packs.d.ts +25 -0
- package/dist/theme-packs-registry/resolve-enabled-packs.js +43 -0
- package/dist/theme-packs-registry/token-manifest.d.ts +19 -0
- package/dist/theme-packs-registry/token-manifest.js +57 -0
- package/dist/theme-packs-registry/validator.d.ts +35 -0
- package/dist/theme-packs-registry/validator.js +284 -0
- package/dist/theme-toggle/color-scheme-sync.d.ts +2 -4
- package/dist/theme.css +319 -0
- package/dist/versions-page/index.d.ts +2 -2
- package/dist/versions-page/index.js +8 -8
- package/dist/z-index-defaults/index.d.ts +45 -0
- package/dist/z-index-defaults/index.js +34 -0
- package/eject/breadcrumb/breadcrumb.tsx +4 -4
- package/eject/breadcrumb/find-path.ts +2 -2
- package/eject/breadcrumb/index.ts +1 -1
- package/eject/breadcrumb/types.ts +0 -6
- package/eject/code-group/index.tsx +2 -2
- package/eject/doc-history/index.tsx +1 -1
- package/eject/doc-pager/index.tsx +1 -1
- package/eject/footer/footer.tsx +1 -0
- package/eject/header/header.tsx +86 -21
- package/eject/header/index.ts +3 -0
- package/eject/header/types.ts +39 -1
- package/eject/site-tree-nav-island/index.tsx +15 -3
- package/eject/site-tree-nav-island/state.ts +9 -0
- package/eject/theme-toggle/color-scheme-sync.ts +2 -4
- package/package.json +82 -29
- package/routes-src/404.tsx +4 -1
- package/routes-src/_chrome.tsx +31 -8
- package/routes-src/_context.ts +4 -0
- package/routes-src/_docs-helpers.ts +9 -29
- package/routes-src/_virtual.d.ts +38 -2
- package/tsconfig.base.json +29 -0
- package/virtual-modules.d.ts +83 -0
- package/zfb-config-shim.d.ts +210 -0
- package/dist/integrations/llms-txt/index.d.ts +0 -33
- package/dist/theme/color-tweak-export-modal.d.ts +0 -16
- package/dist/theme/color-tweak-export-modal.js +0 -138
- package/dist/theme/design-token-serde.d.ts +0 -183
- package/dist/theme/design-token-serde.js +0 -346
- package/dist/theme/design-token-types.d.ts +0 -13
- package/dist/theme/design-token-types.js +0 -6
- package/dist/theme/iframe-bridge.d.ts +0 -42
- package/dist/theme/iframe-bridge.js +0 -72
- /package/dist/{integrations → plugins/internal}/claude-resources/escape-for-mdx.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/claude-resources/escape-for-mdx.js +0 -0
- /package/dist/{integrations → plugins/internal}/claude-resources/generate.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/claude-resources/generate.js +0 -0
- /package/dist/{integrations → plugins/internal}/doc-history/pre-build.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/dev-middleware.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/dev-middleware.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/emit.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/emit.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/generate.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/generate.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/index.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/types.js +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/build-emitter.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/build-emitter.js +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/collect.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/dev-middleware.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/dev-middleware.js +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/index.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/index.js +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/types.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/types.js +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright 2017 IBM Corp. with Reserved Font Name "Plex" (https://github.com/IBM/plex)
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
https://scripts.sil.org/OFL
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "drift",
|
|
4
|
+
"name": "Drift",
|
|
5
|
+
"description": "Floaty slate-blue comfort dark for long reading — soft glows in place of borders, gentle elevation, relaxed Plex type.",
|
|
6
|
+
"mode": "dark",
|
|
7
|
+
"version": "1.0.1",
|
|
8
|
+
"fonts": {
|
|
9
|
+
"sans": "IBM Plex Sans",
|
|
10
|
+
"mono": "IBM Plex Mono",
|
|
11
|
+
"loaded": ["IBM Plex Sans", "IBM Plex Mono"]
|
|
12
|
+
},
|
|
13
|
+
"preview": {
|
|
14
|
+
"light": {
|
|
15
|
+
"bg": "#edf2f6",
|
|
16
|
+
"fg": "#24303d",
|
|
17
|
+
"accent": "#236799",
|
|
18
|
+
"syntax": {
|
|
19
|
+
"keyword": "#49539c",
|
|
20
|
+
"string": "#2b754f",
|
|
21
|
+
"comment": "#596673",
|
|
22
|
+
"callable": "#00688d"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"dark": {
|
|
26
|
+
"bg": "#181f26",
|
|
27
|
+
"fg": "#d6dee4",
|
|
28
|
+
"accent": "#6cafd9",
|
|
29
|
+
"syntax": {
|
|
30
|
+
"keyword": "#9caeee",
|
|
31
|
+
"string": "#88cba4",
|
|
32
|
+
"comment": "#8494a4",
|
|
33
|
+
"callable": "#75c6e1"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Drift — zudo-doc theme pack (ADR docs/adr/theme-packs.md)
|
|
3
|
+
|
|
4
|
+
Floaty slate-blue comfort dark for long reading — soft glows in
|
|
5
|
+
place of borders, gentle elevation, relaxed IBM Plex type. Dark
|
|
6
|
+
(hero): blue-gray field, desaturated blue accents, soft
|
|
7
|
+
blue-tinted white text — a low-glare comfort dark. Light
|
|
8
|
+
(companion): misty-morning slate — pale blue-gray paper with the
|
|
9
|
+
same desaturated blue accent family, never harsh white. Chrome is
|
|
10
|
+
ringed by glow rather than drawn by border: hairline rings +
|
|
11
|
+
layered soft shadows on code, cards, and admonitions; fixed
|
|
12
|
+
radial light pools drift at opposite page corners; nav/TOC
|
|
13
|
+
actives are pill-shaped and glowing. Syntax is a hushed pastel
|
|
14
|
+
palette around the blue axis.
|
|
15
|
+
|
|
16
|
+
Every rule below is scoped under html[data-theme-pack="drift"]
|
|
17
|
+
— this is what makes the runtime pack swap atomic (Decision 3)
|
|
18
|
+
and lets the validator prove a pack can never leak styles while
|
|
19
|
+
inactive (Decision 6.7). The @font-face blocks are the sole
|
|
20
|
+
exception (at-rules can't be selector-scoped).
|
|
21
|
+
|
|
22
|
+
Prototype-selector adaptations against the REAL DOM (tokens-dump
|
|
23
|
+
§6 + component sources), noted inline where they matter:
|
|
24
|
+
- `.sb-group a` → `#desktop-sidebar a` (hover wash) +
|
|
25
|
+
`a[data-nav-active]` (active pill)
|
|
26
|
+
- `.toc-active` → `nav[data-zd-toc] a[aria-current="true"]`
|
|
27
|
+
(toc/toc.tsx marks the active entry with
|
|
28
|
+
aria-current, not a mock class)
|
|
29
|
+
- `.doc-pager` → `.zd-content > nav[data-doc-pager] > a`
|
|
30
|
+
(the DocPager nav now carries a stable
|
|
31
|
+
data-doc-pager hook, #2876)
|
|
32
|
+
- `footer[data-footer]` → ships literally now — the real footer
|
|
33
|
+
carries the stable data-footer hook (#2876)
|
|
34
|
+
- `.hdr-search` / `.hdr-icon-btn` — prototype-mock markup with no
|
|
35
|
+
stable hook; their pill/glow styling is NOT ported.
|
|
36
|
+
- the theme-switcher flyout + launcher carry stable hooks now
|
|
37
|
+
([data-switcher-card] / [data-switcher-launcher]) but their
|
|
38
|
+
styling is intentionally NOT ported — no visual intent to
|
|
39
|
+
preserve there.
|
|
40
|
+
- the prototype's `--drift-hairline` / `--drift-shadow` /
|
|
41
|
+
`--drift-halo` helper properties are not part of the token
|
|
42
|
+
manifest, so their light-dark() values are inlined at each use
|
|
43
|
+
site below:
|
|
44
|
+
hairline: light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13))
|
|
45
|
+
shadow: light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6))
|
|
46
|
+
halo: light-dark(oklch(0.55 0.1 240 / 0.1), oklch(0.725 0.092 238 / 0.1))
|
|
47
|
+
- the prototype's `--radius` / `--radius-lg` are likewise not in
|
|
48
|
+
the manifest; the 14–16px "generously soft" radii are applied
|
|
49
|
+
directly at each component site.
|
|
50
|
+
============================================================ */
|
|
51
|
+
|
|
52
|
+
/* ---- IBM Plex Sans — the reading AND heading face (variable
|
|
53
|
+
100–700 upright, latin + latin-ext; true italic 400–700,
|
|
54
|
+
latin only — em/blockquote want a real italic, latin-ext
|
|
55
|
+
italic was dropped for payload). ---- */
|
|
56
|
+
|
|
57
|
+
@font-face {
|
|
58
|
+
font-family: "IBM Plex Sans";
|
|
59
|
+
font-style: normal;
|
|
60
|
+
font-weight: 100 700;
|
|
61
|
+
font-display: swap;
|
|
62
|
+
src: url("./fonts/IBMPlexSans-latin.woff2") format("woff2");
|
|
63
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
64
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
65
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@font-face {
|
|
69
|
+
font-family: "IBM Plex Sans";
|
|
70
|
+
font-style: normal;
|
|
71
|
+
font-weight: 100 700;
|
|
72
|
+
font-display: swap;
|
|
73
|
+
src: url("./fonts/IBMPlexSans-latin-ext.woff2") format("woff2");
|
|
74
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
|
|
75
|
+
U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
|
|
76
|
+
U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
|
|
77
|
+
U+A720-A7FF;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@font-face {
|
|
81
|
+
font-family: "IBM Plex Sans";
|
|
82
|
+
font-style: italic;
|
|
83
|
+
font-weight: 100 700;
|
|
84
|
+
font-display: swap;
|
|
85
|
+
src: url("./fonts/IBMPlexSans-italic-latin.woff2") format("woff2");
|
|
86
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
87
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
88
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* ---- IBM Plex Mono — the code face (400/500, latin + latin-ext) ---- */
|
|
92
|
+
|
|
93
|
+
@font-face {
|
|
94
|
+
font-family: "IBM Plex Mono";
|
|
95
|
+
font-style: normal;
|
|
96
|
+
font-weight: 400;
|
|
97
|
+
font-display: swap;
|
|
98
|
+
src: url("./fonts/IBMPlexMono-400-latin.woff2") format("woff2");
|
|
99
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
100
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
101
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@font-face {
|
|
105
|
+
font-family: "IBM Plex Mono";
|
|
106
|
+
font-style: normal;
|
|
107
|
+
font-weight: 400;
|
|
108
|
+
font-display: swap;
|
|
109
|
+
src: url("./fonts/IBMPlexMono-400-latin-ext.woff2") format("woff2");
|
|
110
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
|
|
111
|
+
U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
|
|
112
|
+
U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
|
|
113
|
+
U+A720-A7FF;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@font-face {
|
|
117
|
+
font-family: "IBM Plex Mono";
|
|
118
|
+
font-style: normal;
|
|
119
|
+
font-weight: 500;
|
|
120
|
+
font-display: swap;
|
|
121
|
+
src: url("./fonts/IBMPlexMono-500-latin.woff2") format("woff2");
|
|
122
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
123
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
124
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@font-face {
|
|
128
|
+
font-family: "IBM Plex Mono";
|
|
129
|
+
font-style: normal;
|
|
130
|
+
font-weight: 500;
|
|
131
|
+
font-display: swap;
|
|
132
|
+
src: url("./fonts/IBMPlexMono-500-latin-ext.woff2") format("woff2");
|
|
133
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
|
|
134
|
+
U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
|
|
135
|
+
U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
|
|
136
|
+
U+A720-A7FF;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
html[data-theme-pack="drift"] {
|
|
140
|
+
/* Tier-2 semantic roles — misty slate morning / blue-gray comfort
|
|
141
|
+
dark. Both modes always via light-dark(). */
|
|
142
|
+
--zd-bg: light-dark(oklch(0.958 0.008 245), oklch(0.235 0.018 252));
|
|
143
|
+
--zd-fg: light-dark(oklch(0.305 0.028 250), oklch(0.895 0.012 242));
|
|
144
|
+
--zd-selection-bg: light-dark(oklch(0.85 0.05 240), oklch(0.43 0.065 246));
|
|
145
|
+
--zd-selection-fg: light-dark(oklch(0.24 0.03 250), oklch(0.965 0.008 240));
|
|
146
|
+
--zd-surface: light-dark(oklch(0.974 0.006 243), oklch(0.263 0.02 250));
|
|
147
|
+
--zd-muted: light-dark(oklch(0.495 0.032 248), oklch(0.68 0.028 244));
|
|
148
|
+
--zd-accent: light-dark(oklch(0.495 0.105 245), oklch(0.725 0.092 238));
|
|
149
|
+
--zd-accent-hover: light-dark(oklch(0.415 0.11 248), oklch(0.79 0.08 232));
|
|
150
|
+
--zd-code-bg: light-dark(oklch(0.928 0.013 243), oklch(0.278 0.022 251));
|
|
151
|
+
--zd-code-fg: light-dark(oklch(0.3 0.028 250), oklch(0.9 0.012 242));
|
|
152
|
+
--zd-success: light-dark(oklch(0.485 0.095 160), oklch(0.745 0.095 158));
|
|
153
|
+
--zd-danger: light-dark(oklch(0.51 0.14 22), oklch(0.705 0.115 22));
|
|
154
|
+
--zd-warning: light-dark(oklch(0.5 0.1 80), oklch(0.795 0.095 84));
|
|
155
|
+
--zd-info: light-dark(oklch(0.49 0.1 240), oklch(0.735 0.095 234));
|
|
156
|
+
|
|
157
|
+
/* syntax — all 9 roles, both modes: hushed pastels drifting around
|
|
158
|
+
the blue axis — periwinkle keywords, cyan callables, sea-green
|
|
159
|
+
strings, teal types, one warm amber float for numbers. Comments
|
|
160
|
+
and light-mode numbers run a step darker than the prototype's ink
|
|
161
|
+
(comment light L .545 → .505, dark L .600 → .660; number light
|
|
162
|
+
L .545 → .515) to clear WCAG AA (≥4.5:1) on the code panel.
|
|
163
|
+
inserted/deleted reuse the success/danger hues. */
|
|
164
|
+
--zd-syntax-comment: light-dark(oklch(0.505 0.026 248), oklch(0.66 0.03 246));
|
|
165
|
+
--zd-syntax-string: light-dark(oklch(0.505 0.095 158), oklch(0.785 0.088 158));
|
|
166
|
+
--zd-syntax-number: light-dark(oklch(0.515 0.105 72), oklch(0.805 0.09 84));
|
|
167
|
+
--zd-syntax-keyword: light-dark(oklch(0.47 0.118 275), oklch(0.76 0.095 272));
|
|
168
|
+
--zd-syntax-callable: light-dark(oklch(0.485 0.1 232), oklch(0.785 0.088 222));
|
|
169
|
+
--zd-syntax-type: light-dark(oklch(0.5 0.085 195), oklch(0.785 0.078 192));
|
|
170
|
+
--zd-syntax-name: light-dark(oklch(0.305 0.028 250), oklch(0.885 0.014 242));
|
|
171
|
+
--zd-syntax-inserted: light-dark(oklch(0.49 0.095 160), oklch(0.745 0.095 158));
|
|
172
|
+
--zd-syntax-deleted: light-dark(oklch(0.52 0.14 22), oklch(0.705 0.115 22));
|
|
173
|
+
|
|
174
|
+
/* fonts — relaxed Plex everywhere: one quiet family for prose and
|
|
175
|
+
headings, Plex Mono for code. */
|
|
176
|
+
--font-sans: "IBM Plex Sans", system-ui, sans-serif;
|
|
177
|
+
--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
178
|
+
|
|
179
|
+
/* Tier-3 component seams — semibold Plex headings with gentle
|
|
180
|
+
negative tracking, generously soft 12–14px pillows. */
|
|
181
|
+
--zdc-doc-title-font: var(--font-sans);
|
|
182
|
+
--zdc-doc-title-weight: 600;
|
|
183
|
+
--zdc-doc-title-tracking: -0.015em;
|
|
184
|
+
--zdc-doc-h2-font: var(--font-sans);
|
|
185
|
+
--zdc-doc-h2-weight: 600;
|
|
186
|
+
--zdc-doc-h2-tracking: -0.005em;
|
|
187
|
+
--zdc-doc-link-decoration: underline;
|
|
188
|
+
--zdc-admonition-radius: 12px;
|
|
189
|
+
--zdc-admonition-border-width: 3px;
|
|
190
|
+
--zdc-card-radius: 14px;
|
|
191
|
+
--zdc-nav-active-indicator-color: light-dark(oklch(0.495 0.105 245), oklch(0.725 0.092 238));
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/* ---- Drift extras ---- */
|
|
195
|
+
|
|
196
|
+
/* relaxed long-read rhythm + floating atmosphere: two faint blue
|
|
197
|
+
pools of light drift at opposite page corners */
|
|
198
|
+
html[data-theme-pack="drift"] body {
|
|
199
|
+
line-height: 1.75;
|
|
200
|
+
background-image:
|
|
201
|
+
radial-gradient(
|
|
202
|
+
56rem 38rem at 88% -12%,
|
|
203
|
+
light-dark(oklch(0.55 0.1 240 / 0.1), oklch(0.725 0.092 238 / 0.1)),
|
|
204
|
+
transparent 65%
|
|
205
|
+
),
|
|
206
|
+
radial-gradient(
|
|
207
|
+
48rem 34rem at -12% 104%,
|
|
208
|
+
light-dark(oklch(0.58 0.08 205 / 0.07), oklch(0.6 0.08 205 / 0.07)),
|
|
209
|
+
transparent 62%
|
|
210
|
+
);
|
|
211
|
+
background-attachment: fixed;
|
|
212
|
+
}
|
|
213
|
+
/* the base stylesheet sets `.zd-content { line-height: var(--leading-relaxed) }`
|
|
214
|
+
(1.625), which beats the inherited body value — restate the relaxed
|
|
215
|
+
1.75 rhythm on the prose container itself */
|
|
216
|
+
html[data-theme-pack="drift"] .zd-content {
|
|
217
|
+
line-height: 1.75;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* soft focus halo everywhere instead of hard outlines. The light
|
|
221
|
+
ring runs less transparent than the prototype's 65% (composited
|
|
222
|
+
~2.75:1 on the pale page) to clear the 3:1 focus-indicator
|
|
223
|
+
minimum; dark keeps the softer halo (3.7:1 there). */
|
|
224
|
+
html[data-theme-pack="drift"] :focus-visible {
|
|
225
|
+
outline: 2px solid light-dark(oklch(0.495 0.105 245 / 0.8), oklch(0.725 0.092 238 / 0.65));
|
|
226
|
+
outline-offset: 2px;
|
|
227
|
+
border-radius: 6px;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/* slim, quiet scrollbars */
|
|
231
|
+
html[data-theme-pack="drift"],
|
|
232
|
+
html[data-theme-pack="drift"] * {
|
|
233
|
+
scrollbar-width: thin;
|
|
234
|
+
scrollbar-color: color-mix(in oklch, var(--zd-muted) 38%, transparent) transparent;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* header floats: hairline + falling glow replaces the border */
|
|
238
|
+
html[data-theme-pack="drift"] header[data-header] {
|
|
239
|
+
border-bottom-color: transparent;
|
|
240
|
+
background-color: color-mix(in oklch, var(--zd-surface) 88%, transparent);
|
|
241
|
+
-webkit-backdrop-filter: blur(10px);
|
|
242
|
+
backdrop-filter: blur(10px);
|
|
243
|
+
box-shadow:
|
|
244
|
+
0 1px 0 light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13)),
|
|
245
|
+
0 14px 34px -20px light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6));
|
|
246
|
+
}
|
|
247
|
+
html[data-theme-pack="drift"] [data-nav-item] {
|
|
248
|
+
border-radius: 999px;
|
|
249
|
+
transition:
|
|
250
|
+
color 0.2s,
|
|
251
|
+
background-color 0.2s;
|
|
252
|
+
}
|
|
253
|
+
html[data-theme-pack="drift"] [data-nav-item]:hover {
|
|
254
|
+
text-decoration: none;
|
|
255
|
+
color: var(--zd-fg);
|
|
256
|
+
background: color-mix(in oklch, var(--zd-accent) 11%, transparent);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* sidebar: borderless, dissolving into the page with an inset
|
|
260
|
+
hairline; links become soft pills */
|
|
261
|
+
html[data-theme-pack="drift"] #desktop-sidebar {
|
|
262
|
+
border-right-color: transparent;
|
|
263
|
+
background: linear-gradient(
|
|
264
|
+
to right,
|
|
265
|
+
color-mix(in oklch, var(--zd-surface) 55%, var(--zd-bg)),
|
|
266
|
+
var(--zd-bg)
|
|
267
|
+
);
|
|
268
|
+
box-shadow: inset -1px 0 0 light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13));
|
|
269
|
+
}
|
|
270
|
+
html[data-theme-pack="drift"] #desktop-sidebar a {
|
|
271
|
+
border-radius: 999px;
|
|
272
|
+
transition:
|
|
273
|
+
color 0.2s,
|
|
274
|
+
background-color 0.2s,
|
|
275
|
+
box-shadow 0.25s;
|
|
276
|
+
}
|
|
277
|
+
html[data-theme-pack="drift"] #desktop-sidebar a:hover {
|
|
278
|
+
text-decoration: none;
|
|
279
|
+
background: color-mix(in oklch, var(--zd-accent) 10%, transparent);
|
|
280
|
+
}
|
|
281
|
+
/* active item: glowing accent-wash pill — ring + soft halo instead
|
|
282
|
+
of the stock ink fill */
|
|
283
|
+
html[data-theme-pack="drift"] a[data-nav-active] {
|
|
284
|
+
background: color-mix(in oklch, var(--zd-accent) 16%, transparent);
|
|
285
|
+
color: light-dark(oklch(0.36 0.1 246), oklch(0.84 0.07 235));
|
|
286
|
+
border-radius: 999px;
|
|
287
|
+
box-shadow:
|
|
288
|
+
0 0 0 1px color-mix(in oklch, var(--zd-accent) 30%, transparent),
|
|
289
|
+
0 0 18px -4px color-mix(in oklch, var(--zd-accent) 45%, transparent);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/* headings: quiet luminance instead of heavy rules. The h2 keeps a
|
|
293
|
+
gradient bar but fades it into the accent glow — !important
|
|
294
|
+
defeats the SSR-inlined `style="border-image:linear-gradient(...)"`
|
|
295
|
+
(Decision 6.6's sole allowlisted carve-out). */
|
|
296
|
+
html[data-theme-pack="drift"] .zd-content h1 {
|
|
297
|
+
text-shadow: 0 0 34px color-mix(in oklch, var(--zd-accent) 32%, transparent);
|
|
298
|
+
}
|
|
299
|
+
html[data-theme-pack="drift"] .zd-content h2 {
|
|
300
|
+
border-top-width: 1px;
|
|
301
|
+
border-image: linear-gradient(
|
|
302
|
+
to right,
|
|
303
|
+
color-mix(in oklch, var(--zd-accent) 55%, transparent),
|
|
304
|
+
transparent 72%
|
|
305
|
+
)
|
|
306
|
+
1 !important;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/* links: airy underline that brightens on approach */
|
|
310
|
+
html[data-theme-pack="drift"] .zd-content a {
|
|
311
|
+
text-decoration-color: color-mix(in oklch, var(--zd-accent) 42%, transparent);
|
|
312
|
+
text-decoration-thickness: 1px;
|
|
313
|
+
text-underline-offset: 3px;
|
|
314
|
+
transition:
|
|
315
|
+
color 0.2s,
|
|
316
|
+
text-decoration-color 0.2s;
|
|
317
|
+
}
|
|
318
|
+
html[data-theme-pack="drift"] .zd-content a:hover {
|
|
319
|
+
text-decoration-color: currentColor;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/* blockquote: a floating whisper card, no rule */
|
|
323
|
+
html[data-theme-pack="drift"] .zd-content blockquote {
|
|
324
|
+
border-left: none;
|
|
325
|
+
padding: 0.85rem 1.2rem;
|
|
326
|
+
border-radius: 12px;
|
|
327
|
+
background: color-mix(in oklch, var(--zd-accent) 7%, transparent);
|
|
328
|
+
box-shadow: inset 0 0 0 1px light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13));
|
|
329
|
+
font-style: italic;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/* inline code: ringed by hairline glow, not border */
|
|
333
|
+
html[data-theme-pack="drift"] .zd-content code:not(pre code) {
|
|
334
|
+
border-color: transparent;
|
|
335
|
+
border-radius: 7px;
|
|
336
|
+
box-shadow: inset 0 0 0 1px light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13));
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/* code block centerpiece: borderless slab held up by layered glow */
|
|
340
|
+
html[data-theme-pack="drift"] pre.hi-root {
|
|
341
|
+
border-color: transparent;
|
|
342
|
+
border-radius: 14px;
|
|
343
|
+
padding: 1.15rem 1.3rem;
|
|
344
|
+
box-shadow:
|
|
345
|
+
0 0 0 1px light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13)),
|
|
346
|
+
0 20px 48px -26px light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6)),
|
|
347
|
+
0 0 40px -12px light-dark(oklch(0.55 0.1 240 / 0.1), oklch(0.725 0.092 238 / 0.1));
|
|
348
|
+
background-image: linear-gradient(
|
|
349
|
+
170deg,
|
|
350
|
+
color-mix(in oklch, var(--zd-accent) 4%, transparent),
|
|
351
|
+
transparent 45%
|
|
352
|
+
);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/* admonitions: soft pillows with a tinted glow matching their voice */
|
|
356
|
+
html[data-theme-pack="drift"] [data-admonition] {
|
|
357
|
+
box-shadow: 0 14px 34px -24px light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6));
|
|
358
|
+
}
|
|
359
|
+
html[data-theme-pack="drift"] [data-admonition="note"] {
|
|
360
|
+
box-shadow:
|
|
361
|
+
0 14px 34px -24px light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6)),
|
|
362
|
+
0 0 28px -12px color-mix(in oklch, var(--zd-accent) 50%, transparent);
|
|
363
|
+
}
|
|
364
|
+
html[data-theme-pack="drift"] [data-admonition="tip"] {
|
|
365
|
+
box-shadow:
|
|
366
|
+
0 14px 34px -24px light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6)),
|
|
367
|
+
0 0 28px -12px color-mix(in oklch, var(--zd-success) 50%, transparent);
|
|
368
|
+
}
|
|
369
|
+
html[data-theme-pack="drift"] [data-admonition="warning"] {
|
|
370
|
+
box-shadow:
|
|
371
|
+
0 14px 34px -24px light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6)),
|
|
372
|
+
0 0 28px -12px color-mix(in oklch, var(--zd-warning) 50%, transparent);
|
|
373
|
+
}
|
|
374
|
+
html[data-theme-pack="drift"] [data-admonition="note"] .admonition-title::before {
|
|
375
|
+
content: "✦ ";
|
|
376
|
+
}
|
|
377
|
+
html[data-theme-pack="drift"] [data-admonition="tip"] .admonition-title::before {
|
|
378
|
+
content: "❋ ";
|
|
379
|
+
}
|
|
380
|
+
html[data-theme-pack="drift"] [data-admonition="warning"] .admonition-title::before {
|
|
381
|
+
content: "△ ";
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/* tables: hairline rules, breath on hover */
|
|
385
|
+
html[data-theme-pack="drift"] .zd-content td {
|
|
386
|
+
border-bottom-color: light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13));
|
|
387
|
+
}
|
|
388
|
+
html[data-theme-pack="drift"] .zd-content th {
|
|
389
|
+
border-bottom-color: color-mix(in oklch, var(--zd-muted) 42%, transparent);
|
|
390
|
+
}
|
|
391
|
+
html[data-theme-pack="drift"] .zd-content tbody tr {
|
|
392
|
+
transition: background-color 0.2s;
|
|
393
|
+
}
|
|
394
|
+
html[data-theme-pack="drift"] .zd-content tbody tr:hover {
|
|
395
|
+
background: color-mix(in oklch, var(--zd-accent) 5%, transparent);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/* hr: fading mist line */
|
|
399
|
+
html[data-theme-pack="drift"] .zd-content hr {
|
|
400
|
+
border: none;
|
|
401
|
+
height: 1px;
|
|
402
|
+
background: linear-gradient(
|
|
403
|
+
to right,
|
|
404
|
+
transparent,
|
|
405
|
+
light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13)) 20%,
|
|
406
|
+
light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13)) 80%,
|
|
407
|
+
transparent
|
|
408
|
+
);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/* pager cards: levitating panels — glow ring, lift on hover. The
|
|
412
|
+
DocPager nav now carries a stable data-doc-pager hook (#2876). */
|
|
413
|
+
html[data-theme-pack="drift"] .zd-content > nav[data-doc-pager] > a {
|
|
414
|
+
border-color: transparent;
|
|
415
|
+
border-radius: 14px;
|
|
416
|
+
background: color-mix(in oklch, var(--zd-surface) 72%, var(--zd-bg));
|
|
417
|
+
box-shadow:
|
|
418
|
+
0 0 0 1px light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13)),
|
|
419
|
+
0 16px 38px -24px light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6));
|
|
420
|
+
transition:
|
|
421
|
+
box-shadow 0.25s,
|
|
422
|
+
transform 0.25s;
|
|
423
|
+
}
|
|
424
|
+
html[data-theme-pack="drift"] .zd-content > nav[data-doc-pager] > a:hover {
|
|
425
|
+
border-color: transparent;
|
|
426
|
+
transform: translateY(-2px);
|
|
427
|
+
box-shadow:
|
|
428
|
+
0 0 0 1px color-mix(in oklch, var(--zd-accent) 35%, transparent),
|
|
429
|
+
0 22px 46px -22px light-dark(oklch(0.38 0.05 250 / 0.17), oklch(0.08 0.02 255 / 0.6)),
|
|
430
|
+
0 0 30px -8px color-mix(in oklch, var(--zd-accent) 40%, transparent);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/* TOC: fading spine, glowing pill for the active line. The real DOM
|
|
434
|
+
marks the active entry with aria-current="true" (toc/toc.tsx). The
|
|
435
|
+
pill pulls left within the ul's padding (the rail-side overflow
|
|
436
|
+
clips at the padding edge — see the foundry note). */
|
|
437
|
+
html[data-theme-pack="drift"] nav[data-zd-toc] ul {
|
|
438
|
+
border-left-color: transparent;
|
|
439
|
+
border-image: linear-gradient(
|
|
440
|
+
to bottom,
|
|
441
|
+
light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13)),
|
|
442
|
+
transparent
|
|
443
|
+
)
|
|
444
|
+
1;
|
|
445
|
+
}
|
|
446
|
+
html[data-theme-pack="drift"] nav[data-zd-toc] a {
|
|
447
|
+
transition: color 0.2s;
|
|
448
|
+
}
|
|
449
|
+
html[data-theme-pack="drift"] nav[data-zd-toc] a:hover {
|
|
450
|
+
text-decoration: none;
|
|
451
|
+
color: var(--zd-fg);
|
|
452
|
+
}
|
|
453
|
+
html[data-theme-pack="drift"] nav[data-zd-toc] a[aria-current="true"] {
|
|
454
|
+
background: color-mix(in oklch, var(--zd-accent) 15%, transparent);
|
|
455
|
+
color: light-dark(oklch(0.36 0.1 246), oklch(0.845 0.07 235));
|
|
456
|
+
border-radius: 999px;
|
|
457
|
+
padding-left: 0.5rem;
|
|
458
|
+
padding-right: 0.5rem;
|
|
459
|
+
margin-left: -0.5rem;
|
|
460
|
+
box-shadow: 0 0 16px -4px color-mix(in oklch, var(--zd-accent) 42%, transparent);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/* breadcrumb: accent on approach, matching the airy content links */
|
|
464
|
+
html[data-theme-pack="drift"] main nav[aria-label="Breadcrumb"] a:hover {
|
|
465
|
+
color: var(--zd-accent);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/* footer: dissolves upward, hairline + settling gradient (the real
|
|
469
|
+
footer now carries the stable data-footer hook, #2876) */
|
|
470
|
+
html[data-theme-pack="drift"] footer[data-footer] {
|
|
471
|
+
border-top-color: transparent;
|
|
472
|
+
box-shadow: 0 -1px 0 light-dark(oklch(0.45 0.04 248 / 0.17), oklch(0.78 0.04 240 / 0.13));
|
|
473
|
+
background: linear-gradient(
|
|
474
|
+
to bottom,
|
|
475
|
+
var(--zd-bg),
|
|
476
|
+
color-mix(in oklch, var(--zd-surface) 75%, var(--zd-bg))
|
|
477
|
+
);
|
|
478
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|