@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,546 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Brutalist — zudo-doc theme pack (ADR docs/adr/theme-packs.md)
|
|
3
|
+
|
|
4
|
+
Raw concrete web: stark black ink on poured-white slab, 4px
|
|
5
|
+
structural borders, zero radius everywhere, hazard-orange tape.
|
|
6
|
+
Archivo Black uppercase display headings with mono section
|
|
7
|
+
counters (01 /) and orange // h3 prefixes over a Space Grotesk
|
|
8
|
+
reading face and IBM Plex Mono signage. The header is an
|
|
9
|
+
inverted slab (black bar on white / white bar on black) with a
|
|
10
|
+
hazard-tape edge, echoed on the shadowless 4px flyout crate.
|
|
11
|
+
The code slab is a black room in BOTH modes — white/gray
|
|
12
|
+
structure, orange for the load-bearing words. Admonitions are
|
|
13
|
+
4px boxes with stamped full-bleed title bars; links, pager
|
|
14
|
+
cards, and sidebar entries fully invert on hover. Dark mode is
|
|
15
|
+
the same structure at night: near-black concrete, white rebar
|
|
16
|
+
borders, orange kept hot.
|
|
17
|
+
|
|
18
|
+
RADIUS DECISION: zero. Everything is square — the brief is
|
|
19
|
+
structure you can see, and rounded corners lie about it.
|
|
20
|
+
|
|
21
|
+
Every rule below is scoped under html[data-theme-pack="brutalist"]
|
|
22
|
+
— this is what makes the runtime pack swap atomic (Decision 3)
|
|
23
|
+
and lets the validator prove a pack can never leak styles while
|
|
24
|
+
inactive (Decision 6.7). The @font-face blocks are the sole
|
|
25
|
+
exception (at-rules can't be selector-scoped).
|
|
26
|
+
|
|
27
|
+
Prototype-selector adaptations against the REAL DOM (tokens-dump
|
|
28
|
+
§6 + component sources), noted inline where they matter:
|
|
29
|
+
- `.hdr-icon-btn` / `.hdr-search` → the header-right controls
|
|
30
|
+
have no per-control hooks; the inverted slab instead recolors
|
|
31
|
+
every header control via ONE exclusion-listed rule (see the
|
|
32
|
+
header section) that skips the popover surfaces nested inside
|
|
33
|
+
the header (nav-more menu, nav dropdown panels, the version-
|
|
34
|
+
switcher menu, the search <dialog>) — those keep their default
|
|
35
|
+
ink-on-surface colors, which stay readable unchanged.
|
|
36
|
+
- `.sb-group a` → `#desktop-sidebar a`; the default active
|
|
37
|
+
item is ALREADY the inverted bg-fg/text-bg
|
|
38
|
+
stamp, so the pack only bolds it
|
|
39
|
+
(--zdc-nav-active-weight) and squares it.
|
|
40
|
+
- `.sb-group > p` → prototype-mock markup with no stable
|
|
41
|
+
hook; NOT ported.
|
|
42
|
+
- `.crumb-current` → `nav[aria-label="Breadcrumb"] li > span`
|
|
43
|
+
(the current page is the only <span>
|
|
44
|
+
directly inside a breadcrumb <li>).
|
|
45
|
+
- `.doc-pager` → `.zd-content > nav[data-doc-pager] > a`
|
|
46
|
+
(the DocPager nav now carries a stable
|
|
47
|
+
data-doc-pager hook, #2876); label =
|
|
48
|
+
`> a div`, title = `> a p`.
|
|
49
|
+
- `.toc-active` → the real TOC active entry already carries
|
|
50
|
+
the inverted `bg-fg text-bg` fill
|
|
51
|
+
(toc.tsx aria-current) — the pack only
|
|
52
|
+
bolds it.
|
|
53
|
+
- `footer[data-footer]` → ships literally now — the real footer
|
|
54
|
+
carries the stable data-footer hook (#2876);
|
|
55
|
+
the mock's `.footer-copy` has no hook, so
|
|
56
|
+
only the 4px signage rule is ported.
|
|
57
|
+
- `.tp-flyout` → `div[data-switcher-card]`; its title is
|
|
58
|
+
`p[aria-live="polite"]`. The launcher
|
|
59
|
+
button carries a data-switcher-launcher
|
|
60
|
+
hook too, but its styling and the other
|
|
61
|
+
control buttons are intentionally NOT
|
|
62
|
+
ported.
|
|
63
|
+
- the prototype's `--bru-tape` / `--bru-hot` helper properties are
|
|
64
|
+
not part of the token manifest; their values are inlined at each
|
|
65
|
+
use site (tape = repeating -45deg #ff5c00/fg 10px stripes; hot =
|
|
66
|
+
light-dark(#ff5c00, #ff6a1f)).
|
|
67
|
+
- `--radius` / `--radius-lg` are not pack-settable tokens; the
|
|
68
|
+
zero-radius decision is carried by --zdc-admonition-radius /
|
|
69
|
+
--zdc-card-radius plus explicit border-radius: 0 on the
|
|
70
|
+
remaining square-cornered hooks.
|
|
71
|
+
- light-mode --zd-warning runs a step darker than the prototype
|
|
72
|
+
(#d14b00 → #c24400) to clear WCAG AA (≥4.5:1) as text on the
|
|
73
|
+
white slab.
|
|
74
|
+
============================================================ */
|
|
75
|
+
|
|
76
|
+
/* ---- Archivo Black — the display face: h1/h2, logo, flyout
|
|
77
|
+
title. Single 400 weight (that IS the family). Latin subset
|
|
78
|
+
only (all three families): a stray latin-ext or CJK glyph
|
|
79
|
+
falls through to the stack's system face. ---- */
|
|
80
|
+
|
|
81
|
+
@font-face {
|
|
82
|
+
font-family: "Archivo Black";
|
|
83
|
+
font-style: normal;
|
|
84
|
+
font-weight: 400;
|
|
85
|
+
font-display: swap;
|
|
86
|
+
src: url("./fonts/ArchivoBlack-latin.woff2") format("woff2");
|
|
87
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
88
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
89
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* ---- Space Grotesk — the reading face. Variable 300–700 (bold
|
|
93
|
+
prose emphasis and nav weights ride the same file). ---- */
|
|
94
|
+
|
|
95
|
+
@font-face {
|
|
96
|
+
font-family: "Space Grotesk";
|
|
97
|
+
font-style: normal;
|
|
98
|
+
font-weight: 300 700;
|
|
99
|
+
font-display: swap;
|
|
100
|
+
src: url("./fonts/SpaceGrotesk-latin.woff2") format("woff2");
|
|
101
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
102
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
103
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* ---- IBM Plex Mono — code + signage (section counters, table
|
|
107
|
+
headers, admonition stamps). Static 400/500/700 — the
|
|
108
|
+
stamped labels want a TRUE bold, not a synthesized one. ---- */
|
|
109
|
+
|
|
110
|
+
@font-face {
|
|
111
|
+
font-family: "IBM Plex Mono";
|
|
112
|
+
font-style: normal;
|
|
113
|
+
font-weight: 400;
|
|
114
|
+
font-display: swap;
|
|
115
|
+
src: url("./fonts/IBMPlexMono-400-latin.woff2") format("woff2");
|
|
116
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
117
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
118
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@font-face {
|
|
122
|
+
font-family: "IBM Plex Mono";
|
|
123
|
+
font-style: normal;
|
|
124
|
+
font-weight: 500;
|
|
125
|
+
font-display: swap;
|
|
126
|
+
src: url("./fonts/IBMPlexMono-500-latin.woff2") format("woff2");
|
|
127
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
128
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
129
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
@font-face {
|
|
133
|
+
font-family: "IBM Plex Mono";
|
|
134
|
+
font-style: normal;
|
|
135
|
+
font-weight: 700;
|
|
136
|
+
font-display: swap;
|
|
137
|
+
src: url("./fonts/IBMPlexMono-700-latin.woff2") format("woff2");
|
|
138
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
139
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
140
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
html[data-theme-pack="brutalist"] {
|
|
144
|
+
/* Tier-2 semantic roles — poured white slab, black ink, hazard
|
|
145
|
+
orange. Dark: the same structure at night. Both modes always
|
|
146
|
+
via light-dark(). */
|
|
147
|
+
--zd-bg: light-dark(#ffffff, #0d0d0d);
|
|
148
|
+
--zd-fg: light-dark(#000000, #f5f5f5);
|
|
149
|
+
--zd-selection-bg: light-dark(#ff5c00, #ff6a1f);
|
|
150
|
+
--zd-selection-fg: light-dark(#000000, #000000);
|
|
151
|
+
--zd-surface: light-dark(#ffffff, #0d0d0d);
|
|
152
|
+
--zd-muted: light-dark(#444444, #b0b0b0);
|
|
153
|
+
--zd-accent: light-dark(#c2410c, #ff6a1f);
|
|
154
|
+
--zd-accent-hover: light-dark(#9a3412, #ff8a4d);
|
|
155
|
+
--zd-code-bg: light-dark(#0a0a0a, #000000);
|
|
156
|
+
--zd-code-fg: light-dark(#f5f5f5, #f0f0f0);
|
|
157
|
+
--zd-success: light-dark(#000000, #f5f5f5);
|
|
158
|
+
--zd-danger: light-dark(#c2410c, #ff6a1f);
|
|
159
|
+
--zd-warning: light-dark(#c24400, #ff7a2e);
|
|
160
|
+
--zd-info: light-dark(#000000, #f5f5f5);
|
|
161
|
+
|
|
162
|
+
/* syntax — the code slab is a black room in BOTH modes: white/
|
|
163
|
+
gray structure, orange for the load-bearing words. All 9 roles;
|
|
164
|
+
inserted/deleted (absent from the prototype) read as restrained
|
|
165
|
+
mint/salmon so diffs stay legible on the black room without
|
|
166
|
+
breaking the mono+orange discipline. */
|
|
167
|
+
--zd-syntax-comment: light-dark(#8f8f8f, #878787);
|
|
168
|
+
--zd-syntax-string: light-dark(#ffb38a, #ffb38a);
|
|
169
|
+
--zd-syntax-number: light-dark(#ff9d5c, #ff9d5c);
|
|
170
|
+
--zd-syntax-keyword: light-dark(#ff6a1f, #ff7a2e);
|
|
171
|
+
--zd-syntax-callable: light-dark(#ffffff, #ffffff);
|
|
172
|
+
--zd-syntax-type: light-dark(#d4d4d4, #d4d4d4);
|
|
173
|
+
--zd-syntax-name: light-dark(#f0f0f0, #ececec);
|
|
174
|
+
--zd-syntax-inserted: light-dark(#9be9a8, #9be9a8);
|
|
175
|
+
--zd-syntax-deleted: light-dark(#ff8a8a, #ff8a8a);
|
|
176
|
+
|
|
177
|
+
/* fonts — Space Grotesk reading face, IBM Plex Mono signage,
|
|
178
|
+
Archivo Black display caps. */
|
|
179
|
+
--font-sans: "Space Grotesk", system-ui, sans-serif;
|
|
180
|
+
--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
181
|
+
--font-display: "Archivo Black", "Space Grotesk", system-ui, sans-serif;
|
|
182
|
+
|
|
183
|
+
/* Tier-3 component seams — poured-concrete caps, square slabs,
|
|
184
|
+
the stock inverted nav stamp kept and bolded. */
|
|
185
|
+
--zdc-doc-title-font: var(--font-display);
|
|
186
|
+
--zdc-doc-title-weight: 400;
|
|
187
|
+
--zdc-doc-title-tracking: 0.01em;
|
|
188
|
+
--zdc-doc-h2-font: var(--font-display);
|
|
189
|
+
--zdc-doc-h2-weight: 400;
|
|
190
|
+
--zdc-doc-h2-tracking: 0.02em;
|
|
191
|
+
--zdc-doc-link-decoration: underline;
|
|
192
|
+
--zdc-admonition-radius: 0;
|
|
193
|
+
--zdc-admonition-border-width: 4px;
|
|
194
|
+
--zdc-card-radius: 0;
|
|
195
|
+
--zdc-nav-active-indicator-color: var(--zd-fg);
|
|
196
|
+
--zdc-nav-active-weight: 700;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/* ---- Brutalist extras ---- */
|
|
200
|
+
|
|
201
|
+
/* honest focus — a 3px hazard outline on every interactive element */
|
|
202
|
+
html[data-theme-pack="brutalist"] a:focus-visible,
|
|
203
|
+
html[data-theme-pack="brutalist"] button:focus-visible {
|
|
204
|
+
outline: 3px solid var(--zd-accent);
|
|
205
|
+
outline-offset: 2px;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* header: inverted slab (black bar on white / white bar on black)
|
|
209
|
+
with a hazard-tape edge below it */
|
|
210
|
+
html[data-theme-pack="brutalist"] header[data-header] {
|
|
211
|
+
background-color: var(--zd-fg);
|
|
212
|
+
border-bottom-color: transparent;
|
|
213
|
+
}
|
|
214
|
+
html[data-theme-pack="brutalist"] header[data-header]::after {
|
|
215
|
+
content: "";
|
|
216
|
+
position: absolute;
|
|
217
|
+
left: 0;
|
|
218
|
+
right: 0;
|
|
219
|
+
bottom: -6px;
|
|
220
|
+
height: 6px;
|
|
221
|
+
background: repeating-linear-gradient(
|
|
222
|
+
-45deg,
|
|
223
|
+
#ff5c00 0 10px,
|
|
224
|
+
var(--zd-fg) 10px 20px
|
|
225
|
+
);
|
|
226
|
+
pointer-events: none;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* every control sitting directly on the slab flips to bg-colored
|
|
230
|
+
ink. The :not() exclusion skips the popover surfaces nested
|
|
231
|
+
inside the header (nav-more menu, nav dropdown panels, the
|
|
232
|
+
version-switcher menu, the search <dialog>) — those keep their
|
|
233
|
+
default ink-on-surface colors. */
|
|
234
|
+
html[data-theme-pack="brutalist"] header[data-header] a:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *),
|
|
235
|
+
html[data-theme-pack="brutalist"] header[data-header] button:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *),
|
|
236
|
+
html[data-theme-pack="brutalist"] header[data-header] span:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *),
|
|
237
|
+
html[data-theme-pack="brutalist"] header[data-header] svg:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *) {
|
|
238
|
+
color: color-mix(in srgb, var(--zd-bg) 80%, var(--zd-fg));
|
|
239
|
+
}
|
|
240
|
+
html[data-theme-pack="brutalist"] header[data-header] a:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):hover,
|
|
241
|
+
html[data-theme-pack="brutalist"] header[data-header] button:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):hover,
|
|
242
|
+
html[data-theme-pack="brutalist"] header[data-header] a:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):hover svg,
|
|
243
|
+
html[data-theme-pack="brutalist"] header[data-header] button:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):hover svg {
|
|
244
|
+
color: var(--zd-bg);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* the inverted slab needs its own focus-ring color: the page-level
|
|
248
|
+
hazard outline fails 3:1 against the dark-mode header (a light
|
|
249
|
+
surface there), so pick per-mode oranges that clear it on the slab */
|
|
250
|
+
html[data-theme-pack="brutalist"] header[data-header] a:focus-visible,
|
|
251
|
+
html[data-theme-pack="brutalist"] header[data-header] button:focus-visible {
|
|
252
|
+
outline-color: light-dark(#ff6a1f, #c2410c);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
html[data-theme-pack="brutalist"] [data-header-logo] {
|
|
256
|
+
color: var(--zd-bg);
|
|
257
|
+
font-family: var(--font-display);
|
|
258
|
+
font-weight: 400;
|
|
259
|
+
font-size: 1.02rem;
|
|
260
|
+
text-transform: uppercase;
|
|
261
|
+
letter-spacing: 0.04em;
|
|
262
|
+
}
|
|
263
|
+
html[data-theme-pack="brutalist"] header[data-header] [data-header-logo]:hover {
|
|
264
|
+
color: var(--zd-bg);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/* nav: mono signage; the current page is a reversed stamp (white
|
|
268
|
+
chip, black ink) punched into the slab */
|
|
269
|
+
html[data-theme-pack="brutalist"] header[data-header] a[data-nav-item],
|
|
270
|
+
html[data-theme-pack="brutalist"] header[data-header] [data-nav-item] > a,
|
|
271
|
+
html[data-theme-pack="brutalist"] header[data-header] [data-nav-more-toggle] {
|
|
272
|
+
font-family: var(--font-mono);
|
|
273
|
+
font-weight: 500;
|
|
274
|
+
font-size: 0.72rem;
|
|
275
|
+
text-transform: uppercase;
|
|
276
|
+
letter-spacing: 0.08em;
|
|
277
|
+
}
|
|
278
|
+
html[data-theme-pack="brutalist"] header[data-header] a[data-nav-item]:hover,
|
|
279
|
+
html[data-theme-pack="brutalist"] header[data-header] [data-nav-item] > a:hover {
|
|
280
|
+
text-decoration-thickness: 2px;
|
|
281
|
+
text-underline-offset: 4px;
|
|
282
|
+
}
|
|
283
|
+
html[data-theme-pack="brutalist"] header[data-header] a[aria-current="page"],
|
|
284
|
+
html[data-theme-pack="brutalist"] header[data-header] a[aria-current="page"]:hover {
|
|
285
|
+
background-color: var(--zd-bg);
|
|
286
|
+
color: var(--zd-fg);
|
|
287
|
+
}
|
|
288
|
+
html[data-theme-pack="brutalist"] header[data-header] a[aria-current="page"] svg {
|
|
289
|
+
color: var(--zd-fg);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/* the language switcher's current-locale marker sits directly on
|
|
293
|
+
the slab as a bare span — full bg-colored ink, not the 80% mix */
|
|
294
|
+
html[data-theme-pack="brutalist"]
|
|
295
|
+
header[data-header]
|
|
296
|
+
[data-header-right]
|
|
297
|
+
span[aria-current="true"] {
|
|
298
|
+
color: var(--zd-bg);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* the version-switcher trigger: a stamped outline chip on the slab */
|
|
302
|
+
html[data-theme-pack="brutalist"] header[data-header] [data-version-switcher] > button {
|
|
303
|
+
border-color: color-mix(in srgb, var(--zd-bg) 55%, var(--zd-fg));
|
|
304
|
+
border-radius: 0;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/* popover crates hanging off the slab: square, 2px ink frame, no
|
|
308
|
+
shadow (their inner ink-on-surface colors are untouched) */
|
|
309
|
+
html[data-theme-pack="brutalist"] header[data-header] [data-nav-more-menu],
|
|
310
|
+
html[data-theme-pack="brutalist"] header[data-header] [data-version-switcher] ul,
|
|
311
|
+
html[data-theme-pack="brutalist"] header[data-header] [data-nav-item-dropdown] div > div {
|
|
312
|
+
border: 2px solid var(--zd-fg);
|
|
313
|
+
border-radius: 0;
|
|
314
|
+
box-shadow: none;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/* sidebar: a 4px structural wall, hover inverts like a stamp */
|
|
318
|
+
html[data-theme-pack="brutalist"] #desktop-sidebar {
|
|
319
|
+
border-right: 4px solid var(--zd-fg);
|
|
320
|
+
}
|
|
321
|
+
html[data-theme-pack="brutalist"] #desktop-sidebar a {
|
|
322
|
+
border-radius: 0;
|
|
323
|
+
}
|
|
324
|
+
html[data-theme-pack="brutalist"] #desktop-sidebar a:hover {
|
|
325
|
+
background-color: var(--zd-fg);
|
|
326
|
+
color: var(--zd-bg);
|
|
327
|
+
text-decoration: none;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/* breadcrumb: wayfinding signage (the current page is the only
|
|
331
|
+
<span> directly inside a breadcrumb <li>) */
|
|
332
|
+
html[data-theme-pack="brutalist"] main nav[aria-label="Breadcrumb"] {
|
|
333
|
+
font-family: var(--font-mono);
|
|
334
|
+
font-size: 0.72rem;
|
|
335
|
+
text-transform: uppercase;
|
|
336
|
+
letter-spacing: 0.06em;
|
|
337
|
+
}
|
|
338
|
+
html[data-theme-pack="brutalist"] main nav[aria-label="Breadcrumb"] li > span {
|
|
339
|
+
font-weight: 700;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* headings: poured-concrete caps with visible section numbering */
|
|
343
|
+
html[data-theme-pack="brutalist"] .zd-content {
|
|
344
|
+
counter-reset: bru-sec;
|
|
345
|
+
}
|
|
346
|
+
html[data-theme-pack="brutalist"] .zd-content h1 {
|
|
347
|
+
text-transform: uppercase;
|
|
348
|
+
line-height: 1.08;
|
|
349
|
+
border-bottom: 8px solid var(--zd-fg);
|
|
350
|
+
padding-bottom: 0.4rem;
|
|
351
|
+
}
|
|
352
|
+
html[data-theme-pack="brutalist"] .zd-content h2 {
|
|
353
|
+
text-transform: uppercase;
|
|
354
|
+
border-image: none !important;
|
|
355
|
+
border-top: 4px solid var(--zd-fg);
|
|
356
|
+
counter-increment: bru-sec;
|
|
357
|
+
}
|
|
358
|
+
html[data-theme-pack="brutalist"] .zd-content h2::before {
|
|
359
|
+
content: counter(bru-sec, decimal-leading-zero) " / ";
|
|
360
|
+
font-family: var(--font-mono);
|
|
361
|
+
font-size: 0.78em;
|
|
362
|
+
color: var(--zd-accent);
|
|
363
|
+
letter-spacing: 0;
|
|
364
|
+
}
|
|
365
|
+
html[data-theme-pack="brutalist"] .zd-content h3 {
|
|
366
|
+
text-transform: uppercase;
|
|
367
|
+
letter-spacing: 0.04em;
|
|
368
|
+
}
|
|
369
|
+
html[data-theme-pack="brutalist"] .zd-content h3::before {
|
|
370
|
+
content: "// ";
|
|
371
|
+
font-family: var(--font-mono);
|
|
372
|
+
color: var(--zd-accent);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/* prose links: thick ink underlines; hover paints over in hazard
|
|
376
|
+
orange. Scoped to prose containers so pager cards, tag pills, and
|
|
377
|
+
heading anchors keep their own hover treatments. The li branches
|
|
378
|
+
exclude [aria-label] anchors — TagNav's all-tags chips render as
|
|
379
|
+
li > a[aria-label] and keep their clipped-chip hover. */
|
|
380
|
+
html[data-theme-pack="brutalist"] .zd-content p a,
|
|
381
|
+
html[data-theme-pack="brutalist"] .zd-content li a:not([aria-label]),
|
|
382
|
+
html[data-theme-pack="brutalist"] .zd-content td a,
|
|
383
|
+
html[data-theme-pack="brutalist"] .zd-content blockquote a {
|
|
384
|
+
text-decoration-thickness: 2px;
|
|
385
|
+
text-underline-offset: 3px;
|
|
386
|
+
font-weight: 500;
|
|
387
|
+
}
|
|
388
|
+
html[data-theme-pack="brutalist"] .zd-content p a:hover,
|
|
389
|
+
html[data-theme-pack="brutalist"] .zd-content li a:not([aria-label]):hover,
|
|
390
|
+
html[data-theme-pack="brutalist"] .zd-content td a:hover,
|
|
391
|
+
html[data-theme-pack="brutalist"] .zd-content blockquote a:hover {
|
|
392
|
+
background-color: var(--zd-accent);
|
|
393
|
+
color: var(--zd-bg);
|
|
394
|
+
text-decoration-color: var(--zd-bg);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/* prose furniture */
|
|
398
|
+
html[data-theme-pack="brutalist"] .zd-content blockquote {
|
|
399
|
+
border-left: 4px solid var(--zd-fg);
|
|
400
|
+
color: var(--zd-fg);
|
|
401
|
+
font-weight: 500;
|
|
402
|
+
background-color: color-mix(in srgb, var(--zd-fg) 6%, var(--zd-bg));
|
|
403
|
+
padding: 0.8rem 1.1rem;
|
|
404
|
+
}
|
|
405
|
+
html[data-theme-pack="brutalist"] .zd-content hr {
|
|
406
|
+
border-top: 4px solid var(--zd-fg);
|
|
407
|
+
}
|
|
408
|
+
html[data-theme-pack="brutalist"] .zd-content code:not(pre code) {
|
|
409
|
+
border: 1px solid color-mix(in srgb, var(--zd-fg) 35%, transparent);
|
|
410
|
+
border-radius: 0;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
/* code slab: black room, 4px frame (white rebar in dark mode) */
|
|
414
|
+
html[data-theme-pack="brutalist"] pre.hi-root {
|
|
415
|
+
border: 4px solid var(--zd-fg);
|
|
416
|
+
border-radius: 0;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/* tables: full 2px grid, inverted header row */
|
|
420
|
+
html[data-theme-pack="brutalist"] .zd-content th,
|
|
421
|
+
html[data-theme-pack="brutalist"] .zd-content td {
|
|
422
|
+
border: 2px solid var(--zd-fg);
|
|
423
|
+
}
|
|
424
|
+
html[data-theme-pack="brutalist"] .zd-content th {
|
|
425
|
+
background-color: var(--zd-fg);
|
|
426
|
+
color: var(--zd-bg);
|
|
427
|
+
font-family: var(--font-mono);
|
|
428
|
+
font-weight: 700;
|
|
429
|
+
font-size: 0.74rem;
|
|
430
|
+
text-transform: uppercase;
|
|
431
|
+
letter-spacing: 0.08em;
|
|
432
|
+
}
|
|
433
|
+
/* links inside the inverted header row carry their own accent color
|
|
434
|
+
(ContentLink) — repaint them bg-colored so they clear 4.5:1 */
|
|
435
|
+
html[data-theme-pack="brutalist"] .zd-content th a {
|
|
436
|
+
color: var(--zd-bg);
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
/* admonitions: 4px boxes with stamped full-bleed title bars. The
|
|
440
|
+
title bar's negative margins pull it flush against the box border
|
|
441
|
+
(the box's own padding is vsp-md/hsp-lg, content.css). */
|
|
442
|
+
html[data-theme-pack="brutalist"] [data-admonition] {
|
|
443
|
+
border: 4px solid var(--zd-fg);
|
|
444
|
+
background-color: var(--zd-bg);
|
|
445
|
+
}
|
|
446
|
+
html[data-theme-pack="brutalist"] [data-admonition] .admonition-title {
|
|
447
|
+
margin: calc(-1 * var(--spacing-vsp-md, 1rem)) calc(-1 * var(--spacing-hsp-lg, 1rem))
|
|
448
|
+
0.8rem;
|
|
449
|
+
padding: 0.45rem 1rem 0.4rem;
|
|
450
|
+
background-color: var(--zd-fg);
|
|
451
|
+
color: var(--zd-bg);
|
|
452
|
+
font-family: var(--font-mono);
|
|
453
|
+
font-weight: 700;
|
|
454
|
+
font-size: 0.76rem;
|
|
455
|
+
text-transform: uppercase;
|
|
456
|
+
letter-spacing: 0.14em;
|
|
457
|
+
}
|
|
458
|
+
html[data-theme-pack="brutalist"] [data-admonition="note"] .admonition-title::before {
|
|
459
|
+
content: "■ ";
|
|
460
|
+
}
|
|
461
|
+
html[data-theme-pack="brutalist"] [data-admonition="tip"] .admonition-title::before {
|
|
462
|
+
content: "→ ";
|
|
463
|
+
}
|
|
464
|
+
html[data-theme-pack="brutalist"] [data-admonition="warning"] {
|
|
465
|
+
border-color: light-dark(#ff5c00, #ff6a1f);
|
|
466
|
+
}
|
|
467
|
+
html[data-theme-pack="brutalist"] [data-admonition="warning"] .admonition-title {
|
|
468
|
+
background-color: light-dark(#ff5c00, #ff6a1f);
|
|
469
|
+
color: #000000;
|
|
470
|
+
}
|
|
471
|
+
html[data-theme-pack="brutalist"] [data-admonition="warning"] .admonition-title::before {
|
|
472
|
+
content: "▲ ";
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/* pager: slab cards, full inversion on hover. The DocPager nav now
|
|
476
|
+
carries a stable data-doc-pager hook (#2876). */
|
|
477
|
+
html[data-theme-pack="brutalist"] .zd-content > nav[data-doc-pager] > a {
|
|
478
|
+
border: 4px solid var(--zd-fg);
|
|
479
|
+
border-radius: 0;
|
|
480
|
+
}
|
|
481
|
+
html[data-theme-pack="brutalist"]
|
|
482
|
+
.zd-content
|
|
483
|
+
> nav[data-doc-pager]
|
|
484
|
+
> a:hover {
|
|
485
|
+
border-color: var(--zd-fg);
|
|
486
|
+
background-color: var(--zd-fg);
|
|
487
|
+
}
|
|
488
|
+
html[data-theme-pack="brutalist"] .zd-content > nav[data-doc-pager] > a div {
|
|
489
|
+
font-family: var(--font-mono);
|
|
490
|
+
font-size: 0.66rem;
|
|
491
|
+
text-transform: uppercase;
|
|
492
|
+
letter-spacing: 0.1em;
|
|
493
|
+
}
|
|
494
|
+
html[data-theme-pack="brutalist"] .zd-content > nav[data-doc-pager] > a p {
|
|
495
|
+
font-weight: 700;
|
|
496
|
+
}
|
|
497
|
+
html[data-theme-pack="brutalist"] .zd-content > nav[data-doc-pager] > a:hover div,
|
|
498
|
+
html[data-theme-pack="brutalist"] .zd-content > nav[data-doc-pager] > a:hover p,
|
|
499
|
+
html[data-theme-pack="brutalist"] .zd-content > nav[data-doc-pager] > a:hover svg {
|
|
500
|
+
color: var(--zd-bg);
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
/* TOC: a 2px plumb line; the active entry already carries the
|
|
504
|
+
inverted bg-fg/text-bg stamp — just bold it */
|
|
505
|
+
html[data-theme-pack="brutalist"] nav[data-zd-toc] ul {
|
|
506
|
+
border-left: 2px solid var(--zd-fg);
|
|
507
|
+
}
|
|
508
|
+
html[data-theme-pack="brutalist"] nav[data-zd-toc] a[aria-current="true"] {
|
|
509
|
+
font-weight: 700;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/* footer: signage strip (the real footer now carries the stable
|
|
513
|
+
data-footer hook, #2876) */
|
|
514
|
+
html[data-theme-pack="brutalist"] footer[data-footer] {
|
|
515
|
+
border-top: 4px solid var(--zd-fg);
|
|
516
|
+
background-color: var(--zd-bg);
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/* theme-pack flyout: a shadowless 4px crate with a hazard-tape lid
|
|
520
|
+
(the launcher button and control buttons keep their styling
|
|
521
|
+
intentionally NOT ported) */
|
|
522
|
+
html[data-theme-pack="brutalist"] div[data-switcher-card] {
|
|
523
|
+
border: 4px solid var(--zd-fg);
|
|
524
|
+
border-radius: 0;
|
|
525
|
+
box-shadow: none;
|
|
526
|
+
}
|
|
527
|
+
html[data-theme-pack="brutalist"]
|
|
528
|
+
div[data-switcher-card]::before {
|
|
529
|
+
content: "";
|
|
530
|
+
height: 6px;
|
|
531
|
+
margin: calc(-1 * var(--spacing-hsp-lg, 1rem)) calc(-1 * var(--spacing-hsp-lg, 1rem)) 0;
|
|
532
|
+
background: repeating-linear-gradient(
|
|
533
|
+
-45deg,
|
|
534
|
+
#ff5c00 0 10px,
|
|
535
|
+
var(--zd-fg) 10px 20px
|
|
536
|
+
);
|
|
537
|
+
}
|
|
538
|
+
html[data-theme-pack="brutalist"]
|
|
539
|
+
div[data-switcher-card]
|
|
540
|
+
p[aria-live="polite"] {
|
|
541
|
+
font-family: var(--font-display);
|
|
542
|
+
font-weight: 400;
|
|
543
|
+
font-size: 1rem;
|
|
544
|
+
text-transform: uppercase;
|
|
545
|
+
letter-spacing: 0.03em;
|
|
546
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "default",
|
|
4
|
+
"name": "Default",
|
|
5
|
+
"description": "The stock zudo-doc look. No pack stylesheet is loaded — your project's configured color scheme and fonts render unchanged.",
|
|
6
|
+
"mode": "dark",
|
|
7
|
+
"version": "1.0.0",
|
|
8
|
+
"fonts": {
|
|
9
|
+
"sans": "System",
|
|
10
|
+
"mono": "System",
|
|
11
|
+
"loaded": []
|
|
12
|
+
},
|
|
13
|
+
"preview": {
|
|
14
|
+
"light": {
|
|
15
|
+
"bg": "oklch(0.965 0.004 65)",
|
|
16
|
+
"fg": "oklch(0.185 0.005 65)",
|
|
17
|
+
"accent": "oklch(0.470 0.120 56)",
|
|
18
|
+
"syntax": {
|
|
19
|
+
"keyword": "oklch(0.470 0.120 56)",
|
|
20
|
+
"string": "oklch(0.470 0.140 145)",
|
|
21
|
+
"comment": "oklch(0.480 0.008 65)",
|
|
22
|
+
"callable": "oklch(0.485 0.122 245)"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"dark": {
|
|
26
|
+
"bg": "oklch(0.185 0.005 65)",
|
|
27
|
+
"fg": "oklch(0.965 0.004 65)",
|
|
28
|
+
"accent": "oklch(0.700 0.158 62)",
|
|
29
|
+
"syntax": {
|
|
30
|
+
"keyword": "oklch(0.700 0.158 62)",
|
|
31
|
+
"string": "oklch(0.680 0.145 145)",
|
|
32
|
+
"comment": "oklch(0.705 0.008 65)",
|
|
33
|
+
"callable": "oklch(0.680 0.130 245)"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|