@ojiepermana/angular 22.1.11 → 22.1.12
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/README.md +32 -26
- package/chart/README.md +272 -0
- package/component/README.md +89 -0
- package/component/accordion/README.md +195 -0
- package/component/alert/README.md +184 -0
- package/component/alert-dialog/README.md +255 -0
- package/component/aspect-ratio/README.md +116 -0
- package/component/avatar/README.md +182 -0
- package/component/badge/README.md +143 -0
- package/component/breadcrumb/README.md +223 -0
- package/component/button/README.md +141 -0
- package/component/button-group/README.md +214 -0
- package/component/calendar/README.md +137 -0
- package/component/card/README.md +232 -0
- package/component/carousel/README.md +276 -0
- package/component/checkbox/README.md +153 -0
- package/component/collapsible/README.md +216 -0
- package/component/combobox/README.md +202 -0
- package/component/command/README.md +287 -0
- package/component/composer/README.md +241 -0
- package/component/context-menu/README.md +268 -0
- package/component/date-picker/README.md +202 -0
- package/component/dialog/README.md +276 -0
- package/component/drawer/README.md +147 -0
- package/component/dropdown-menu/README.md +336 -0
- package/component/editor/README.md +152 -0
- package/component/empty/README.md +193 -0
- package/component/form/README.md +216 -0
- package/component/hover-card/README.md +150 -0
- package/component/icon/README.md +25 -0
- package/component/input/README.md +160 -0
- package/component/input-group/README.md +245 -0
- package/component/input-otp/README.md +331 -0
- package/component/item/README.md +254 -0
- package/component/kanban/README.md +81 -0
- package/component/kbd/README.md +141 -0
- package/component/label/README.md +137 -0
- package/component/menubar/README.md +270 -0
- package/component/native-select/README.md +176 -0
- package/component/navigation-menu/README.md +165 -0
- package/component/pagination/README.md +151 -0
- package/component/pillbox/README.md +68 -0
- package/component/popover/README.md +54 -0
- package/component/progress/README.md +160 -0
- package/component/radio/README.md +212 -0
- package/component/resizable/README.md +178 -0
- package/component/scroll-area/README.md +150 -0
- package/component/select/README.md +228 -0
- package/component/separator/README.md +175 -0
- package/component/sheet/README.md +190 -0
- package/component/skeleton/README.md +158 -0
- package/component/slider/README.md +207 -0
- package/component/spinner/README.md +160 -0
- package/component/switch/README.md +170 -0
- package/component/table/README.md +292 -0
- package/component/tabs/README.md +220 -0
- package/component/textarea/README.md +169 -0
- package/component/timeline/README.md +94 -0
- package/component/toast/README.md +173 -0
- package/component/toggle/README.md +133 -0
- package/component/toggle-group/README.md +234 -0
- package/component/tooltip/README.md +230 -0
- package/fesm2022/ojiepermana-angular-chart-area.mjs +289 -3
- package/fesm2022/ojiepermana-angular-chart-bar.mjs +722 -3
- package/fesm2022/ojiepermana-angular-chart-core.mjs +1482 -3
- package/fesm2022/ojiepermana-angular-chart-line.mjs +294 -3
- package/fesm2022/ojiepermana-angular-chart-pie.mjs +291 -3
- package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1301 -3
- package/fesm2022/ojiepermana-angular-chart-radar.mjs +421 -3
- package/fesm2022/ojiepermana-angular-chart-radial.mjs +295 -3
- package/fesm2022/ojiepermana-angular-chart-scatter.mjs +306 -3
- package/fesm2022/ojiepermana-angular-chart.mjs +12 -3
- package/fesm2022/ojiepermana-angular-component-accordion.mjs +267 -3
- package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +359 -3
- package/fesm2022/ojiepermana-angular-component-alert.mjs +101 -3
- package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +31 -3
- package/fesm2022/ojiepermana-angular-component-avatar.mjs +139 -3
- package/fesm2022/ojiepermana-angular-component-badge.mjs +57 -3
- package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +192 -3
- package/fesm2022/ojiepermana-angular-component-button-group.mjs +95 -3
- package/fesm2022/ojiepermana-angular-component-button.mjs +73 -3
- package/fesm2022/ojiepermana-angular-component-calendar.mjs +718 -3
- package/fesm2022/ojiepermana-angular-component-card.mjs +167 -3
- package/fesm2022/ojiepermana-angular-component-carousel.mjs +326 -3
- package/fesm2022/ojiepermana-angular-component-checkbox.mjs +190 -3
- package/fesm2022/ojiepermana-angular-component-collapsible.mjs +117 -3
- package/fesm2022/ojiepermana-angular-component-combobox.mjs +327 -3
- package/fesm2022/ojiepermana-angular-component-command.mjs +351 -3
- package/fesm2022/ojiepermana-angular-component-composer.mjs +359 -3
- package/fesm2022/ojiepermana-angular-component-context-menu.mjs +158 -3
- package/fesm2022/ojiepermana-angular-component-date-picker.mjs +482 -3
- package/fesm2022/ojiepermana-angular-component-dialog.mjs +400 -3
- package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -3
- package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +689 -3
- package/fesm2022/ojiepermana-angular-component-editor.mjs +511 -3
- package/fesm2022/ojiepermana-angular-component-empty.mjs +134 -3
- package/fesm2022/ojiepermana-angular-component-form.mjs +438 -3
- package/fesm2022/ojiepermana-angular-component-hover-card.mjs +273 -3
- package/fesm2022/ojiepermana-angular-component-icon.mjs +139 -3
- package/fesm2022/ojiepermana-angular-component-input-group.mjs +176 -3
- package/fesm2022/ojiepermana-angular-component-input-otp.mjs +550 -3
- package/fesm2022/ojiepermana-angular-component-input.mjs +52 -3
- package/fesm2022/ojiepermana-angular-component-item.mjs +264 -3
- package/fesm2022/ojiepermana-angular-component-kanban.mjs +310 -3
- package/fesm2022/ojiepermana-angular-component-kbd.mjs +48 -3
- package/fesm2022/ojiepermana-angular-component-label.mjs +27 -3
- package/fesm2022/ojiepermana-angular-component-menubar.mjs +327 -3
- package/fesm2022/ojiepermana-angular-component-native-select.mjs +62 -3
- package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +378 -3
- package/fesm2022/ojiepermana-angular-component-pagination.mjs +238 -3
- package/fesm2022/ojiepermana-angular-component-pillbox.mjs +999 -3
- package/fesm2022/ojiepermana-angular-component-popover.mjs +201 -3
- package/fesm2022/ojiepermana-angular-component-progress.mjs +57 -3
- package/fesm2022/ojiepermana-angular-component-radio.mjs +180 -3
- package/fesm2022/ojiepermana-angular-component-resizable.mjs +493 -3
- package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +51 -3
- package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +227 -3
- package/fesm2022/ojiepermana-angular-component-select.mjs +609 -3
- package/fesm2022/ojiepermana-angular-component-separator.mjs +31 -3
- package/fesm2022/ojiepermana-angular-component-sheet.mjs +407 -3
- package/fesm2022/ojiepermana-angular-component-skeleton.mjs +25 -3
- package/fesm2022/ojiepermana-angular-component-slider.mjs +456 -3
- package/fesm2022/ojiepermana-angular-component-spinner.mjs +56 -3
- package/fesm2022/ojiepermana-angular-component-switch.mjs +145 -3
- package/fesm2022/ojiepermana-angular-component-table.mjs +155 -3
- package/fesm2022/ojiepermana-angular-component-tabs.mjs +315 -3
- package/fesm2022/ojiepermana-angular-component-textarea.mjs +46 -3
- package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -3
- package/fesm2022/ojiepermana-angular-component-toast.mjs +241 -3
- package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +290 -3
- package/fesm2022/ojiepermana-angular-component-toggle.mjs +76 -3
- package/fesm2022/ojiepermana-angular-component-tooltip.mjs +519 -3
- package/fesm2022/ojiepermana-angular-component-utils-core.mjs +310 -3
- package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +62 -3
- package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +34 -3
- package/fesm2022/ojiepermana-angular-component-utils.mjs +3 -2
- package/fesm2022/ojiepermana-angular-component.mjs +4 -4
- package/fesm2022/ojiepermana-angular-navigation-core.mjs +21 -3
- package/fesm2022/ojiepermana-angular-navigation-icon.mjs +20 -3
- package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +91 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +512 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs +623 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +404 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +466 -0
- package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +2642 -0
- package/fesm2022/ojiepermana-angular-navigation-service.mjs +725 -3
- package/fesm2022/ojiepermana-angular-navigation-types.mjs +65 -4
- package/fesm2022/ojiepermana-angular-navigation.mjs +4 -10
- package/fesm2022/ojiepermana-angular-sdk.mjs +204 -4
- package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1387 -3
- package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +331 -3
- package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +45 -4
- package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1044 -3
- package/fesm2022/ojiepermana-angular-theme-layout.mjs +729 -3
- package/fesm2022/ojiepermana-angular-theme-page-core.mjs +381 -3
- package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +267 -3
- package/fesm2022/ojiepermana-angular-theme-page-root.mjs +361 -3
- package/fesm2022/ojiepermana-angular-theme-page-side.mjs +198 -3
- package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +110 -3
- package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -2
- package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +338 -3
- package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +160 -4
- package/fesm2022/ojiepermana-angular-theme-shell.mjs +811 -3
- package/fesm2022/ojiepermana-angular-theme-styles.mjs +783 -3
- package/fesm2022/ojiepermana-angular-theme.mjs +4 -4
- package/fesm2022/ojiepermana-angular.mjs +6 -11
- package/navigation/README.md +374 -0
- package/package.json +81 -20
- package/sdk/README.md +212 -0
- package/sdk/schematics/collection.json +20 -0
- package/sdk/schematics/init/index.js +83 -0
- package/sdk/schematics/init/schema.json +19 -0
- package/sdk/schematics/ng-add/index.js +147 -0
- package/sdk/schematics/ng-add/schema.json +14 -0
- package/sdk/schematics/package.json +3 -0
- package/sdk/schematics/sdk/index.js +175 -0
- package/sdk/schematics/sdk/schema.json +19 -0
- package/sdk/sdk.config.example.json +24 -0
- package/sdk/src/config/loader.js +43 -0
- package/sdk/src/config/schema.js +59 -0
- package/sdk/src/emit/client.js +251 -0
- package/sdk/src/emit/metadata.js +310 -0
- package/sdk/src/emit/models.js +104 -0
- package/sdk/src/emit/navigation.js +56 -0
- package/sdk/src/emit/operations.js +118 -0
- package/sdk/src/emit/public-api.js +54 -0
- package/sdk/src/emit/services.js +110 -0
- package/sdk/src/engine.js +67 -0
- package/sdk/src/layout/per-domain.js +360 -0
- package/sdk/src/package.json +3 -0
- package/sdk/src/parser/bundle.js +25 -0
- package/sdk/src/parser/ir.js +429 -0
- package/sdk/src/parser/types.js +7 -0
- package/sdk/src/render/template.js +152 -0
- package/sdk/src/writer/index.js +286 -0
- package/theme/README.md +126 -0
- package/theme/component/settings/README.md +135 -0
- package/theme/layout/README.md +539 -0
- package/theme/page/README.md +453 -0
- package/theme/shell/README.md +340 -0
- package/theme/styles/README.md +178 -0
- package/theme/styles/css/base/components.css +553 -0
- package/theme/styles/css/base/index.css +14 -0
- package/theme/styles/css/base/package.css +9 -0
- package/theme/styles/css/base/prefers-dark.css +86 -0
- package/theme/styles/css/base/print.css +62 -0
- package/theme/styles/css/base/status.css +38 -0
- package/theme/styles/css/base/tailwind.css +165 -0
- package/theme/styles/css/base/theme.css +373 -0
- package/theme/styles/css/base/tokens.css +361 -0
- package/theme/styles/css/color/amber.css +72 -0
- package/theme/styles/css/color/blue.css +72 -0
- package/theme/styles/css/color/brand.css +38 -0
- package/theme/styles/css/color/cyan.css +72 -0
- package/theme/styles/css/color/emerald.css +72 -0
- package/theme/styles/css/color/fuchsia.css +72 -0
- package/theme/styles/css/color/green.css +72 -0
- package/theme/styles/css/color/index.css +19 -0
- package/theme/styles/css/color/indigo.css +72 -0
- package/theme/styles/css/color/lime.css +72 -0
- package/theme/styles/css/color/orange.css +72 -0
- package/theme/styles/css/color/pink.css +72 -0
- package/theme/styles/css/color/purple.css +72 -0
- package/theme/styles/css/color/red.css +72 -0
- package/theme/styles/css/color/rose.css +72 -0
- package/theme/styles/css/color/sky.css +72 -0
- package/theme/styles/css/color/teal.css +72 -0
- package/theme/styles/css/color/violet.css +72 -0
- package/theme/styles/css/color/yellow.css +72 -0
- package/theme/styles/css/index.css +18 -0
- package/theme/styles/css/neutral/gray.css +63 -0
- package/theme/styles/css/neutral/index.css +11 -0
- package/theme/styles/css/neutral/mauve.css +63 -0
- package/theme/styles/css/neutral/mist.css +63 -0
- package/theme/styles/css/neutral/neutral.css +63 -0
- package/theme/styles/css/neutral/olive.css +63 -0
- package/theme/styles/css/neutral/slate.css +63 -0
- package/theme/styles/css/neutral/stone.css +63 -0
- package/theme/styles/css/neutral/taupe.css +63 -0
- package/theme/styles/css/neutral/zinc.css +63 -0
- package/theme/styles/css/radius/index.css +30 -0
- package/theme/styles/css/space/index.css +20 -0
- package/types/ojiepermana-angular-chart-area.d.ts +76 -1
- package/types/ojiepermana-angular-chart-bar.d.ts +201 -1
- package/types/ojiepermana-angular-chart-core.d.ts +811 -1
- package/types/ojiepermana-angular-chart-line.d.ts +75 -1
- package/types/ojiepermana-angular-chart-pie.d.ts +131 -1
- package/types/ojiepermana-angular-chart-primitives.d.ts +291 -1
- package/types/ojiepermana-angular-chart-radar.d.ts +116 -1
- package/types/ojiepermana-angular-chart-radial.d.ts +116 -1
- package/types/ojiepermana-angular-chart-scatter.d.ts +125 -1
- package/types/ojiepermana-angular-chart.d.ts +2 -1
- package/types/ojiepermana-angular-component-accordion.d.ts +85 -1
- package/types/ojiepermana-angular-component-alert-dialog.d.ts +140 -1
- package/types/ojiepermana-angular-component-alert.d.ts +42 -1
- package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -1
- package/types/ojiepermana-angular-component-avatar.d.ts +56 -1
- package/types/ojiepermana-angular-component-badge.d.ts +24 -1
- package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -1
- package/types/ojiepermana-angular-component-button-group.d.ts +26 -1
- package/types/ojiepermana-angular-component-button.d.ts +27 -1
- package/types/ojiepermana-angular-component-calendar.d.ts +111 -1
- package/types/ojiepermana-angular-component-card.d.ts +69 -1
- package/types/ojiepermana-angular-component-carousel.d.ts +86 -1
- package/types/ojiepermana-angular-component-checkbox.d.ts +42 -1
- package/types/ojiepermana-angular-component-collapsible.d.ts +42 -1
- package/types/ojiepermana-angular-component-combobox.d.ts +60 -1
- package/types/ojiepermana-angular-component-command.d.ts +130 -1
- package/types/ojiepermana-angular-component-composer.d.ts +90 -1
- package/types/ojiepermana-angular-component-context-menu.d.ts +54 -1
- package/types/ojiepermana-angular-component-date-picker.d.ts +109 -1
- package/types/ojiepermana-angular-component-dialog.d.ts +136 -1
- package/types/ojiepermana-angular-component-drawer.d.ts +1 -1
- package/types/ojiepermana-angular-component-dropdown-menu.d.ts +248 -1
- package/types/ojiepermana-angular-component-editor.d.ts +135 -1
- package/types/ojiepermana-angular-component-empty.d.ts +50 -1
- package/types/ojiepermana-angular-component-form.d.ts +159 -1
- package/types/ojiepermana-angular-component-hover-card.d.ts +75 -1
- package/types/ojiepermana-angular-component-icon.d.ts +89 -1
- package/types/ojiepermana-angular-component-input-group.d.ts +51 -1
- package/types/ojiepermana-angular-component-input-otp.d.ts +155 -1
- package/types/ojiepermana-angular-component-input.d.ts +21 -1
- package/types/ojiepermana-angular-component-item.d.ts +93 -1
- package/types/ojiepermana-angular-component-kanban.d.ts +70 -1
- package/types/ojiepermana-angular-component-kbd.d.ts +16 -1
- package/types/ojiepermana-angular-component-label.d.ts +11 -1
- package/types/ojiepermana-angular-component-menubar.d.ts +93 -1
- package/types/ojiepermana-angular-component-native-select.d.ts +26 -1
- package/types/ojiepermana-angular-component-navigation-menu.d.ts +104 -1
- package/types/ojiepermana-angular-component-pagination.d.ts +33 -1
- package/types/ojiepermana-angular-component-pillbox.d.ts +222 -1
- package/types/ojiepermana-angular-component-popover.d.ts +66 -1
- package/types/ojiepermana-angular-component-progress.d.ts +17 -1
- package/types/ojiepermana-angular-component-radio.d.ts +60 -1
- package/types/ojiepermana-angular-component-resizable.d.ts +117 -1
- package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -1
- package/types/ojiepermana-angular-component-segmented-control.d.ts +58 -1
- package/types/ojiepermana-angular-component-select.d.ts +122 -1
- package/types/ojiepermana-angular-component-separator.d.ts +14 -1
- package/types/ojiepermana-angular-component-sheet.d.ts +130 -1
- package/types/ojiepermana-angular-component-skeleton.d.ts +10 -1
- package/types/ojiepermana-angular-component-slider.d.ts +83 -1
- package/types/ojiepermana-angular-component-spinner.d.ts +13 -1
- package/types/ojiepermana-angular-component-switch.d.ts +44 -1
- package/types/ojiepermana-angular-component-table.d.ts +57 -1
- package/types/ojiepermana-angular-component-tabs.d.ts +124 -1
- package/types/ojiepermana-angular-component-textarea.d.ts +17 -1
- package/types/ojiepermana-angular-component-timeline.d.ts +64 -1
- package/types/ojiepermana-angular-component-toast.d.ts +64 -1
- package/types/ojiepermana-angular-component-toggle-group.d.ts +90 -1
- package/types/ojiepermana-angular-component-toggle.d.ts +25 -1
- package/types/ojiepermana-angular-component-tooltip.d.ts +143 -1
- package/types/ojiepermana-angular-component-utils-core.d.ts +184 -1
- package/types/ojiepermana-angular-component-utils-overlay.d.ts +21 -1
- package/types/ojiepermana-angular-component-utils-scale.d.ts +19 -1
- package/types/ojiepermana-angular-component-utils.d.ts +2 -1
- package/types/ojiepermana-angular-component.d.ts +2 -1
- package/types/ojiepermana-angular-navigation-core.d.ts +59 -1
- package/types/ojiepermana-angular-navigation-icon.d.ts +12 -1
- package/types/ojiepermana-angular-navigation-service.d.ts +116 -1
- package/types/ojiepermana-angular-navigation-types.d.ts +144 -1
- package/types/ojiepermana-angular-navigation.d.ts +507 -1
- package/types/ojiepermana-angular-sdk.d.ts +89 -1
- package/types/ojiepermana-angular-theme-component-settings.d.ts +154 -1
- package/types/ojiepermana-angular-theme-layout-services.d.ts +147 -1
- package/types/ojiepermana-angular-theme-layout-types.d.ts +40 -1
- package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +299 -1
- package/types/ojiepermana-angular-theme-layout.d.ts +129 -1
- package/types/ojiepermana-angular-theme-page-core.d.ts +157 -1
- package/types/ojiepermana-angular-theme-page-filter.d.ts +77 -1
- package/types/ojiepermana-angular-theme-page-root.d.ts +88 -1
- package/types/ojiepermana-angular-theme-page-side.d.ts +50 -1
- package/types/ojiepermana-angular-theme-page-slots.d.ts +40 -1
- package/types/ojiepermana-angular-theme-page.d.ts +5 -1
- package/types/ojiepermana-angular-theme-shell-services.d.ts +193 -1
- package/types/ojiepermana-angular-theme-shell-types.d.ts +105 -1
- package/types/ojiepermana-angular-theme-shell.d.ts +100 -1
- package/types/ojiepermana-angular-theme-styles.d.ts +319 -1
- package/types/ojiepermana-angular-theme.d.ts +2 -1
- package/types/ojiepermana-angular.d.ts +5 -5
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default theme color, style, and layout tokens.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
:root {
|
|
6
|
+
--highlight: 0 0% 64%;
|
|
7
|
+
--highlight-border-alpha: 0.7;
|
|
8
|
+
--highlight-background-alpha: 0.7;
|
|
9
|
+
|
|
10
|
+
/* App/layout-frame surface — CONSTANT white (near-black in dark). The
|
|
11
|
+
* theme-color/theme-neutral axes deliberately do NOT emit this token; the
|
|
12
|
+
* FluxUI-style tint lives on --layout-canvas (the shell behind the layout
|
|
13
|
+
* frame) instead. */
|
|
14
|
+
--background: 0 0% 100%;
|
|
15
|
+
/* Shell canvas behind the layout frame. Tinted per theme-neutral (strong)
|
|
16
|
+
* and theme-color (fallback) by the generated palettes. */
|
|
17
|
+
--layout-canvas: 0 0% 95%;
|
|
18
|
+
--surface: 0 0% 89.8%;
|
|
19
|
+
--surface-foreground: 0 0% 12%;
|
|
20
|
+
--foreground: 0 0% 12%;
|
|
21
|
+
|
|
22
|
+
--card: 0 0% 100%;
|
|
23
|
+
--card-foreground: 0 0% 12%;
|
|
24
|
+
|
|
25
|
+
--popover: 0 0% 100%;
|
|
26
|
+
--popover-foreground: 0 0% 12%;
|
|
27
|
+
|
|
28
|
+
--muted: 0 0% 94%;
|
|
29
|
+
--muted-foreground: 0 0% 38%;
|
|
30
|
+
|
|
31
|
+
--border: 0 0% 82%;
|
|
32
|
+
--input: 0 0% 82%;
|
|
33
|
+
|
|
34
|
+
/* Surface-grid line for the base neutral. Explicit (not var(--border)) so the
|
|
35
|
+
* grid keeps the same tonal contract as every generated neutral. */
|
|
36
|
+
--layout-grid-line: 0 0% 82%;
|
|
37
|
+
/* LIGHTNESS of the `grid` surface LINE tier. Pattern hue and saturation come
|
|
38
|
+
* from the achromatic base neutral or the active family on non-base neutrals;
|
|
39
|
+
* this tonal anchor stays at ~82% in light mode. */
|
|
40
|
+
--layout-grid-l: 82%;
|
|
41
|
+
|
|
42
|
+
/* `grid-line` surface highlight LIGHTNESS. The glow (pattern HIGHLIGHT tier,
|
|
43
|
+
* base/theme.css) uses this tonal anchor for the base neutral or the active
|
|
44
|
+
* neutral family.
|
|
45
|
+
* Medium-dark in light mode so the mosaic reads as soft darker lines on a
|
|
46
|
+
* light surface; inverts to near-white in dark (dark block). Global
|
|
47
|
+
* faintness lives in --layout-grid-highlight-opacity (base/theme.css). */
|
|
48
|
+
--layout-grid-highlight-l: 45%;
|
|
49
|
+
|
|
50
|
+
/* Base accent = near-black neutral (FluxUI "base"); inverts to near-white in
|
|
51
|
+
* dark mode (see :root[data-mode='dark'] below). Accent palettes
|
|
52
|
+
* (theme-color) override these at higher specificity. */
|
|
53
|
+
--primary: 0 0% 10%;
|
|
54
|
+
--primary-foreground: 0 0% 100%;
|
|
55
|
+
--accent: 0 0% 95%;
|
|
56
|
+
--accent-foreground: 0 0% 14%;
|
|
57
|
+
--secondary: 0 0% 95%;
|
|
58
|
+
--secondary-foreground: 0 0% 18%;
|
|
59
|
+
--ring: 0 0% 16%;
|
|
60
|
+
|
|
61
|
+
/* Brand identity color — set by the consumer via ThemeBrandService
|
|
62
|
+
* (provideUiTheme({ brand }) or setBrand()). Concrete (not var(--primary))
|
|
63
|
+
* so the theme-color='brand' preset never forms a var() cycle. Defaults to
|
|
64
|
+
* the base accent and inverts in dark mode. */
|
|
65
|
+
--brand: 0 0% 10%;
|
|
66
|
+
--brand-foreground: 0 0% 100%;
|
|
67
|
+
|
|
68
|
+
/* Tailwind's stock `rounded-md`, matching the theme-radius='md' default. */
|
|
69
|
+
--radius-base: 0.375rem;
|
|
70
|
+
--radius: var(--radius-base);
|
|
71
|
+
|
|
72
|
+
--border-width-base: 1px;
|
|
73
|
+
--border-width: var(--border-width-base);
|
|
74
|
+
|
|
75
|
+
/* Concrete values live in the *-base primitives; --shadow-* and
|
|
76
|
+
* --theme-shadow-* are aliases. Never alias --theme-shadow-* back to
|
|
77
|
+
* --shadow-* — the Tailwind @theme mapping re-emits
|
|
78
|
+
* --shadow-*: var(--theme-shadow-*) in the later `theme` layer, which
|
|
79
|
+
* turns that into a var() cycle and invalidates both tokens. */
|
|
80
|
+
--shadow-base: 0 1px 0 0 hsl(0 0% 12% / 0.08);
|
|
81
|
+
--shadow-md-base: 0 8px 18px -14px hsl(0 0% 12% / 0.24);
|
|
82
|
+
--shadow-lg-base: 0 18px 36px -28px hsl(0 0% 12% / 0.34);
|
|
83
|
+
--shadow-xl-base: 0 24px 48px -36px hsl(0 0% 12% / 0.4);
|
|
84
|
+
--shadow-sm: var(--shadow-base);
|
|
85
|
+
--shadow-md: var(--shadow-md-base);
|
|
86
|
+
--shadow-lg: var(--shadow-lg-base);
|
|
87
|
+
--shadow-xl: var(--shadow-xl-base);
|
|
88
|
+
|
|
89
|
+
--theme-shadow-sm: var(--shadow-base);
|
|
90
|
+
--theme-shadow: 0 2px 4px -2px hsl(0 0% 12% / 0.14);
|
|
91
|
+
--theme-shadow-md: var(--shadow-md-base);
|
|
92
|
+
--theme-shadow-lg: var(--shadow-lg-base);
|
|
93
|
+
--theme-shadow-xl: var(--shadow-xl-base);
|
|
94
|
+
--shadow: var(--theme-shadow);
|
|
95
|
+
|
|
96
|
+
--theme-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
97
|
+
--theme-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
|
|
98
|
+
|
|
99
|
+
--font-sans: var(--theme-font-sans);
|
|
100
|
+
--font-mono: var(--theme-font-mono);
|
|
101
|
+
--font-weight-bold: 600;
|
|
102
|
+
--theme-text-scale: 1;
|
|
103
|
+
--font-size-base: 1rem;
|
|
104
|
+
--line-height-base: 1.5;
|
|
105
|
+
/* Derived, not fixed: this is the middle rung of the control height ladder
|
|
106
|
+
* and it has to move with the theme-space density axis like every other
|
|
107
|
+
* rung. Nine units, which is 2.25rem at the 0.25rem default, so the value
|
|
108
|
+
* this line used to hold is exactly what it still produces. Redeclaring it
|
|
109
|
+
* as a literal here is what kept `h-control-md` frozen while the rest of the
|
|
110
|
+
* ladder followed the axis. */
|
|
111
|
+
--control-height-base: calc(var(--spacing-base) * 9);
|
|
112
|
+
--nav-font-family: var(--font-sans);
|
|
113
|
+
/* Item labels — a dedicated 13px tier between --text-xs and --text-sm, with
|
|
114
|
+
* slightly negative tracking and a mid weight. Weight/tracking are tokens so
|
|
115
|
+
* the whole tier can be re-tuned without touching components. */
|
|
116
|
+
--nav-text-size: calc(var(--font-size-base) * 0.8125);
|
|
117
|
+
--nav-text-line-height: 1.4;
|
|
118
|
+
--nav-text-weight: 450;
|
|
119
|
+
--nav-text-tracking: -0.006em;
|
|
120
|
+
--nav-heading-font-family: var(--font-sans);
|
|
121
|
+
/* Section/group headings — a distinct micro-label tier *below* item labels:
|
|
122
|
+
* smaller (11px), uppercase, heavier weight, restrained tracking. Keeping it
|
|
123
|
+
* smaller than --nav-text-size is what gives the sidebar a clear hierarchy. */
|
|
124
|
+
--nav-heading-size: var(--text-2xs-plus);
|
|
125
|
+
--nav-heading-line-height: var(--text-2xs-plus--line-height);
|
|
126
|
+
--nav-heading-weight: 600;
|
|
127
|
+
--nav-heading-letter-spacing: 0.08em;
|
|
128
|
+
--nav-badge-font-family: var(--font-sans);
|
|
129
|
+
/* Badges/counters — compact pill tier (11px), aligned with the heading tier. */
|
|
130
|
+
--nav-badge-size: var(--text-2xs-plus);
|
|
131
|
+
--nav-badge-line-height: var(--text-2xs-plus--line-height);
|
|
132
|
+
--nav-badge-weight: 500;
|
|
133
|
+
/* Item subtitles/descriptions — a quiet 12px tier under labels. */
|
|
134
|
+
--nav-subtitle-size: calc(var(--font-size-base) * 0.75);
|
|
135
|
+
--nav-subtitle-line-height: 1.35;
|
|
136
|
+
|
|
137
|
+
/* Shared opacity for section chrome: Page and Navigation headers/footers,
|
|
138
|
+
* flyout/panel frames, entry borders, and tree rails. */
|
|
139
|
+
--section-border-opacity: 0.666;
|
|
140
|
+
|
|
141
|
+
/* Navigation geometry — ONE proportional system for every nav surface
|
|
142
|
+
* (sidebar, dockbar, navbar, flyout, entry grid). Icons are naked glyphs;
|
|
143
|
+
* derived tokens keep alignment exact: --nav-indent places a child's icon
|
|
144
|
+
* under its parent's label, --nav-rail-offset places tree rails under the
|
|
145
|
+
* parent icon's center. Heights/gaps ride --spacing-base so the whole nav
|
|
146
|
+
* rescales with the theme-space density axis. */
|
|
147
|
+
--nav-icon-size: 1.125rem; /* inline glyph beside a label */
|
|
148
|
+
--nav-icon-size-rail: 1.25rem; /* icon-only rail/dock glyph */
|
|
149
|
+
--nav-icon-size-sub: 1rem; /* chevrons + secondary glyphs */
|
|
150
|
+
--nav-item-height: calc(var(--spacing-base) * 8); /* 32px @ normal density */
|
|
151
|
+
--nav-rail-item-size: calc(var(--spacing-base) * 10); /* 40px icon-only button */
|
|
152
|
+
--nav-item-gap: calc(var(--spacing-base) * 2); /* icon ↔ label */
|
|
153
|
+
--nav-item-padding-x: calc(var(--spacing-base) * 3);
|
|
154
|
+
--nav-indent: calc(var(--nav-icon-size) + var(--nav-item-gap));
|
|
155
|
+
--nav-rail-offset: calc(var(--nav-item-padding-x) + var(--nav-icon-size) / 2);
|
|
156
|
+
--nav-entry-box-size: calc(var(--spacing-base) * 9); /* entry-grid icon chip */
|
|
157
|
+
--letter-spacing: 0;
|
|
158
|
+
--spacing-base: 0.25rem;
|
|
159
|
+
--space-unit: var(--spacing-base);
|
|
160
|
+
/* Shell bar height for the navigation header/footer/navbar AND the page
|
|
161
|
+
* header/footer. Spacing-based (12 × --spacing-base = 3rem @ normal) so it
|
|
162
|
+
* tracks the theme-space density axis in lockstep with h-12/top-12
|
|
163
|
+
* utilities — the nav bars and page bars stay border-aligned at every
|
|
164
|
+
* density, not just the default. */
|
|
165
|
+
--layout-topbar-height: calc(var(--spacing-base) * 12);
|
|
166
|
+
|
|
167
|
+
--layout-shell-padding: clamp(1rem, 2vw, 2rem);
|
|
168
|
+
--layout-frame-radius: var(--radius-lg);
|
|
169
|
+
--layout-frame-shadow: var(--shadow-sm);
|
|
170
|
+
--layout-sidebar-width: 17.5rem;
|
|
171
|
+
--layout-sidebar-collapsed-width: 4rem;
|
|
172
|
+
--layout-aside-width: 15rem;
|
|
173
|
+
--container-base: 80rem;
|
|
174
|
+
--layout-main-max-width: var(--container-base);
|
|
175
|
+
--layout-vertical-shell-max-width: calc(
|
|
176
|
+
var(--layout-sidebar-width) + var(--layout-main-max-width)
|
|
177
|
+
);
|
|
178
|
+
--layout-empty-max-width: 24rem;
|
|
179
|
+
--layout-empty-padding: clamp(1.5rem, 4vw, 3rem);
|
|
180
|
+
--layout-topbar-inline: 0.875rem;
|
|
181
|
+
--layout-logo-mark-size: 2rem;
|
|
182
|
+
|
|
183
|
+
/* Desktop shell geometry (@ojiepermana/angular/theme/shell), active when the
|
|
184
|
+
* app owns the OS window (<Shell mode="desktop">). --shell-bar-height is the
|
|
185
|
+
* single titlebar thickness knob and rides --spacing-base like
|
|
186
|
+
* --layout-topbar-height, so window chrome tracks the theme-space density
|
|
187
|
+
* axis. --shell-traffic-light-inset reserves the leading run macOS keeps
|
|
188
|
+
* drawing its native window buttons into on a decoration-less window. */
|
|
189
|
+
--shell-bar-height: calc(var(--spacing-base) * 9);
|
|
190
|
+
--shell-bar-inline: calc(var(--spacing-base) * 2);
|
|
191
|
+
--shell-bar-gap: calc(var(--spacing-base) * 1);
|
|
192
|
+
--shell-control-size: calc(var(--spacing-base) * 7);
|
|
193
|
+
--shell-traffic-light-inset: 4.75rem;
|
|
194
|
+
/* Diameter of one macOS traffic light — ~13.1px, a little over the 12px the OS
|
|
195
|
+
* itself draws. The app's own lights sit in a titlebar the user can mis-click, so
|
|
196
|
+
* they get a slightly larger target than the window server's, without growing
|
|
197
|
+
* enough to look oversized next to a real macOS window. */
|
|
198
|
+
--shell-traffic-light-size: calc(0.75rem * 1.0925);
|
|
199
|
+
/* `frame='modern'`: how far the inset app sits from the window edge. Rides
|
|
200
|
+
* --spacing-base (3 units = 0.75rem at normal density), so the gap tracks the
|
|
201
|
+
* theme-space axis like the rest of the shell geometry. */
|
|
202
|
+
--shell-frame-inset: calc(var(--spacing-base) * 3);
|
|
203
|
+
/* Corner radius of the app inside a desktop window. Deliberately a fixed 12px
|
|
204
|
+
* rather than riding --radius-base: this is window geometry, matching what the
|
|
205
|
+
* OS rounds its own windows to, not a component-styling choice the theme-radius
|
|
206
|
+
* axis should retune. */
|
|
207
|
+
--shell-frame-radius: 0.75rem;
|
|
208
|
+
/* Edge of the app panel inside a desktop window. The full-strength structural
|
|
209
|
+
* border tier: this is the boundary between the app and the window chrome, the
|
|
210
|
+
* same weight as a page or nav outer edge. */
|
|
211
|
+
--shell-frame-border: var(--border);
|
|
212
|
+
|
|
213
|
+
/* Titlebar surface. These are the `color='sync'` values: the selected
|
|
214
|
+
* theme-color is promoted to the shell chrome through the semantic primary
|
|
215
|
+
* pair. `color='default'` swaps them for the active device's native palette
|
|
216
|
+
* (see the blocks after the dark theme). */
|
|
217
|
+
--shell-bar-background: var(--primary);
|
|
218
|
+
--shell-bar-foreground: var(--primary-foreground);
|
|
219
|
+
--shell-bar-border: var(--border);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
:root[data-mode='dark'] {
|
|
223
|
+
--highlight: 0 0% 64%;
|
|
224
|
+
--highlight-border-alpha: 0.45;
|
|
225
|
+
--highlight-background-alpha: 0.55;
|
|
226
|
+
|
|
227
|
+
/* Constant near-black (see light block) — the axes tint --layout-canvas. */
|
|
228
|
+
--background: 0 0% 5%;
|
|
229
|
+
--layout-canvas: 0 0% 15%;
|
|
230
|
+
--surface: 0 0% 18%;
|
|
231
|
+
--surface-foreground: 0 0% 96%;
|
|
232
|
+
--foreground: 0 0% 96%;
|
|
233
|
+
|
|
234
|
+
--card: 0 0% 11%;
|
|
235
|
+
--card-foreground: 0 0% 96%;
|
|
236
|
+
|
|
237
|
+
--popover: 0 0% 11%;
|
|
238
|
+
--popover-foreground: 0 0% 96%;
|
|
239
|
+
|
|
240
|
+
--muted: 0 0% 18%;
|
|
241
|
+
--muted-foreground: 0 0% 70%;
|
|
242
|
+
|
|
243
|
+
--border: 0 0% 24%;
|
|
244
|
+
--input: 0 0% 24%;
|
|
245
|
+
|
|
246
|
+
/* Surface-grid line for the base neutral (dark). See light block. */
|
|
247
|
+
--layout-grid-line: 0 0% 24%;
|
|
248
|
+
/* `grid` surface line lightness (dark) — see light block. */
|
|
249
|
+
--layout-grid-l: 24%;
|
|
250
|
+
|
|
251
|
+
/* `grid-line` highlight lightness inverts to near-white so the glow squares
|
|
252
|
+
* read bright on the dark surface, matching the dark mosaic reference. */
|
|
253
|
+
--layout-grid-highlight-l: 88%;
|
|
254
|
+
--layout-grid-highlight-opacity: 0.62;
|
|
255
|
+
|
|
256
|
+
/* `matrix` is tinted with the pattern NODE tier, which is bright on dark
|
|
257
|
+
* (near-white achromatic base node or L78 family hue elsewhere)
|
|
258
|
+
* — so tone the field down here to keep it as faint behind content as it is
|
|
259
|
+
* in light mode (see --layout-matrix-opacity in base/theme.css). The
|
|
260
|
+
* edge-glow accents are raised instead: bright-on-near-black actually
|
|
261
|
+
* blooms, so the lit digits read as a glow against the dark surface. */
|
|
262
|
+
--layout-matrix-opacity: 0.24;
|
|
263
|
+
--layout-matrix-glow-opacity: 0.72;
|
|
264
|
+
|
|
265
|
+
/* `circuit` via nodes are tinted with the pattern NODE tier, which is
|
|
266
|
+
* bright on dark (see the matrix note above) and blooms — so tone the node
|
|
267
|
+
* layer down here to keep the glints as quiet as they are in light mode
|
|
268
|
+
* (same treatment as --layout-matrix-opacity). The traces use the LINE tier
|
|
269
|
+
* (already per-mode), so they need no dark override. */
|
|
270
|
+
--layout-circuit-node-opacity: 0.3;
|
|
271
|
+
|
|
272
|
+
--layout-pattern-node: 0 0% 78%;
|
|
273
|
+
|
|
274
|
+
/* Base accent inverts: near-white primary on dark. */
|
|
275
|
+
--primary: 0 0% 98%;
|
|
276
|
+
--primary-foreground: 0 0% 12%;
|
|
277
|
+
--accent: 0 0% 16%;
|
|
278
|
+
--accent-foreground: 0 0% 98%;
|
|
279
|
+
--secondary: 0 0% 18%;
|
|
280
|
+
--secondary-foreground: 0 0% 96%;
|
|
281
|
+
--ring: 0 0% 85%;
|
|
282
|
+
|
|
283
|
+
--brand: 0 0% 98%;
|
|
284
|
+
--brand-foreground: 0 0% 12%;
|
|
285
|
+
|
|
286
|
+
--shadow-base: 0 1px 0 0 hsl(0 0% 96% / 0.08);
|
|
287
|
+
--shadow-sm: var(--shadow-base);
|
|
288
|
+
--theme-shadow-sm: var(--shadow-base);
|
|
289
|
+
|
|
290
|
+
--layout-frame-shadow: 0 0 0 1px hsl(var(--border));
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/*
|
|
294
|
+
* Native-like titlebar chrome — `<Shell color="default">`.
|
|
295
|
+
*
|
|
296
|
+
* `sync` (the default) maps the shell background to the selected Theme color
|
|
297
|
+
* through --primary, paired with --primary-foreground for readable chrome.
|
|
298
|
+
* `default` instead paints the real chrome of the active device, for an app that
|
|
299
|
+
* wants to disappear into its OS: each palette below is that platform's own
|
|
300
|
+
* titlebar grey, in the same `H S% L%` triplet form as every other token, with a
|
|
301
|
+
* dark counterpart.
|
|
302
|
+
*
|
|
303
|
+
* Scoped to [data-shell-color='default'] on the <Shell> host (and the titlebar
|
|
304
|
+
* it renders), so it never leaks into the rest of the app. Only desktop devices
|
|
305
|
+
* appear here — the other modes draw no chrome of their own.
|
|
306
|
+
*/
|
|
307
|
+
/* Re-declare sync chrome at each shell boundary. Custom properties inherit, so a
|
|
308
|
+
* nested preview must resolve its own semantic primary pair and structural border
|
|
309
|
+
* rather than inheriting native chrome from an outer shell. */
|
|
310
|
+
[data-shell-color='sync'] {
|
|
311
|
+
--shell-bar-background: var(--primary);
|
|
312
|
+
--shell-bar-foreground: var(--primary-foreground);
|
|
313
|
+
--shell-bar-border: var(--border);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
[data-shell-color='default'][data-shell-device='macos'] {
|
|
317
|
+
--shell-bar-background: 0 0% 93%;
|
|
318
|
+
--shell-bar-foreground: 0 0% 20%;
|
|
319
|
+
--shell-bar-border: 0 0% 80%;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
[data-shell-color='default'][data-shell-device='windows'] {
|
|
323
|
+
--shell-bar-background: 0 0% 96%;
|
|
324
|
+
--shell-bar-foreground: 0 0% 16%;
|
|
325
|
+
--shell-bar-border: 0 0% 87%;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
[data-shell-color='default'][data-shell-device='linux'] {
|
|
329
|
+
--shell-bar-background: 0 0% 92%;
|
|
330
|
+
--shell-bar-foreground: 0 0% 18%;
|
|
331
|
+
--shell-bar-border: 0 0% 78%;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
:root[data-mode='dark'] [data-shell-color='default'][data-shell-device='macos'] {
|
|
335
|
+
--shell-bar-background: 240 2% 18%;
|
|
336
|
+
--shell-bar-foreground: 0 0% 90%;
|
|
337
|
+
--shell-bar-border: 240 2% 26%;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
:root[data-mode='dark'] [data-shell-color='default'][data-shell-device='windows'] {
|
|
341
|
+
--shell-bar-background: 0 0% 13%;
|
|
342
|
+
--shell-bar-foreground: 0 0% 93%;
|
|
343
|
+
--shell-bar-border: 0 0% 22%;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
:root[data-mode='dark'] [data-shell-color='default'][data-shell-device='linux'] {
|
|
347
|
+
--shell-bar-background: 0 0% 19%;
|
|
348
|
+
--shell-bar-foreground: 0 0% 92%;
|
|
349
|
+
--shell-bar-border: 0 0% 27%;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
@layer utilities {
|
|
354
|
+
.border-highlight {
|
|
355
|
+
border-color: hsl(var(--highlight, var(--border)) / var(--highlight-border-alpha, 0.7));
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.bg-highlight {
|
|
359
|
+
background-color: hsl(var(--highlight, var(--border)) / var(--highlight-background-alpha, 0.7));
|
|
360
|
+
}
|
|
361
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accent theme: amber. Generated by scripts/gen-theme-colors.mjs — do not edit.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-color='amber'][data-mode='light'] {
|
|
6
|
+
--foreground: 38 31% 16%;
|
|
7
|
+
--surface: 38 32% 95%;
|
|
8
|
+
--surface-foreground: 38 31% 16%;
|
|
9
|
+
--card: 38 52% 99%;
|
|
10
|
+
--card-foreground: 38 31% 16%;
|
|
11
|
+
--popover: 38 52% 99%;
|
|
12
|
+
--popover-foreground: 38 31% 16%;
|
|
13
|
+
--muted: 38 28% 95%;
|
|
14
|
+
--muted-foreground: 38 18% 40%;
|
|
15
|
+
--border: 38 28% 87%;
|
|
16
|
+
--input: 38 28% 87%;
|
|
17
|
+
--primary: 38 92% 48%;
|
|
18
|
+
--primary-foreground: 0 0% 12%;
|
|
19
|
+
--accent: 38 55% 94%;
|
|
20
|
+
--accent-foreground: 38 92% 31%;
|
|
21
|
+
--secondary: 38 37% 93%;
|
|
22
|
+
--secondary-foreground: 38 92% 28%;
|
|
23
|
+
--ring: 38 92% 41%;
|
|
24
|
+
--highlight: 38 92% 64%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
html[theme-color='amber'][data-mode='dark'] {
|
|
28
|
+
--foreground: 38 14% 96%;
|
|
29
|
+
--surface: 38 23% 12%;
|
|
30
|
+
--surface-foreground: 38 14% 96%;
|
|
31
|
+
--card: 38 28% 9%;
|
|
32
|
+
--card-foreground: 38 14% 96%;
|
|
33
|
+
--popover: 38 28% 9%;
|
|
34
|
+
--popover-foreground: 38 14% 96%;
|
|
35
|
+
--muted: 38 23% 16%;
|
|
36
|
+
--muted-foreground: 38 18% 64%;
|
|
37
|
+
--border: 38 23% 18%;
|
|
38
|
+
--input: 38 23% 18%;
|
|
39
|
+
--primary: 38 92% 58%;
|
|
40
|
+
--primary-foreground: 0 0% 10%;
|
|
41
|
+
--accent: 38 46% 18%;
|
|
42
|
+
--accent-foreground: 38 74% 80%;
|
|
43
|
+
--secondary: 38 37% 18%;
|
|
44
|
+
--secondary-foreground: 38 64% 82%;
|
|
45
|
+
--ring: 38 92% 58%;
|
|
46
|
+
--highlight: 38 92% 58%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@media (prefers-color-scheme: dark) {
|
|
50
|
+
html[theme-color='amber']:not([data-mode='light']) {
|
|
51
|
+
--foreground: 38 14% 96%;
|
|
52
|
+
--surface: 38 23% 12%;
|
|
53
|
+
--surface-foreground: 38 14% 96%;
|
|
54
|
+
--card: 38 28% 9%;
|
|
55
|
+
--card-foreground: 38 14% 96%;
|
|
56
|
+
--popover: 38 28% 9%;
|
|
57
|
+
--popover-foreground: 38 14% 96%;
|
|
58
|
+
--muted: 38 23% 16%;
|
|
59
|
+
--muted-foreground: 38 18% 64%;
|
|
60
|
+
--border: 38 23% 18%;
|
|
61
|
+
--input: 38 23% 18%;
|
|
62
|
+
--primary: 38 92% 58%;
|
|
63
|
+
--primary-foreground: 0 0% 10%;
|
|
64
|
+
--accent: 38 46% 18%;
|
|
65
|
+
--accent-foreground: 38 74% 80%;
|
|
66
|
+
--secondary: 38 37% 18%;
|
|
67
|
+
--secondary-foreground: 38 64% 82%;
|
|
68
|
+
--ring: 38 92% 58%;
|
|
69
|
+
--highlight: 38 92% 58%;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accent theme: blue. Generated by scripts/gen-theme-colors.mjs — do not edit.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-color='blue'][data-mode='light'] {
|
|
6
|
+
--foreground: 221 29% 16%;
|
|
7
|
+
--surface: 221 29% 95%;
|
|
8
|
+
--surface-foreground: 221 29% 16%;
|
|
9
|
+
--card: 221 52% 99%;
|
|
10
|
+
--card-foreground: 221 29% 16%;
|
|
11
|
+
--popover: 221 52% 99%;
|
|
12
|
+
--popover-foreground: 221 29% 16%;
|
|
13
|
+
--muted: 221 25% 95%;
|
|
14
|
+
--muted-foreground: 221 17% 40%;
|
|
15
|
+
--border: 221 25% 87%;
|
|
16
|
+
--input: 221 25% 87%;
|
|
17
|
+
--primary: 221 83% 48%;
|
|
18
|
+
--primary-foreground: 0 0% 100%;
|
|
19
|
+
--accent: 221 50% 94%;
|
|
20
|
+
--accent-foreground: 221 83% 32%;
|
|
21
|
+
--secondary: 221 33% 93%;
|
|
22
|
+
--secondary-foreground: 221 83% 28%;
|
|
23
|
+
--ring: 221 83% 48%;
|
|
24
|
+
--highlight: 221 83% 64%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
html[theme-color='blue'][data-mode='dark'] {
|
|
28
|
+
--foreground: 221 12% 96%;
|
|
29
|
+
--surface: 221 21% 12%;
|
|
30
|
+
--surface-foreground: 221 12% 96%;
|
|
31
|
+
--card: 221 25% 9%;
|
|
32
|
+
--card-foreground: 221 12% 96%;
|
|
33
|
+
--popover: 221 25% 9%;
|
|
34
|
+
--popover-foreground: 221 12% 96%;
|
|
35
|
+
--muted: 221 21% 16%;
|
|
36
|
+
--muted-foreground: 221 17% 64%;
|
|
37
|
+
--border: 221 21% 18%;
|
|
38
|
+
--input: 221 21% 18%;
|
|
39
|
+
--primary: 221 83% 58%;
|
|
40
|
+
--primary-foreground: 0 0% 4%;
|
|
41
|
+
--accent: 221 42% 18%;
|
|
42
|
+
--accent-foreground: 221 66% 80%;
|
|
43
|
+
--secondary: 221 33% 18%;
|
|
44
|
+
--secondary-foreground: 221 58% 82%;
|
|
45
|
+
--ring: 221 83% 58%;
|
|
46
|
+
--highlight: 221 83% 58%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@media (prefers-color-scheme: dark) {
|
|
50
|
+
html[theme-color='blue']:not([data-mode='light']) {
|
|
51
|
+
--foreground: 221 12% 96%;
|
|
52
|
+
--surface: 221 21% 12%;
|
|
53
|
+
--surface-foreground: 221 12% 96%;
|
|
54
|
+
--card: 221 25% 9%;
|
|
55
|
+
--card-foreground: 221 12% 96%;
|
|
56
|
+
--popover: 221 25% 9%;
|
|
57
|
+
--popover-foreground: 221 12% 96%;
|
|
58
|
+
--muted: 221 21% 16%;
|
|
59
|
+
--muted-foreground: 221 17% 64%;
|
|
60
|
+
--border: 221 21% 18%;
|
|
61
|
+
--input: 221 21% 18%;
|
|
62
|
+
--primary: 221 83% 58%;
|
|
63
|
+
--primary-foreground: 0 0% 4%;
|
|
64
|
+
--accent: 221 42% 18%;
|
|
65
|
+
--accent-foreground: 221 66% 80%;
|
|
66
|
+
--secondary: 221 33% 18%;
|
|
67
|
+
--secondary-foreground: 221 58% 82%;
|
|
68
|
+
--ring: 221 83% 58%;
|
|
69
|
+
--highlight: 221 83% 58%;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accent theme: brand. Maps the chromatic accent tokens to the consumer's
|
|
3
|
+
* --brand / --brand-foreground (set by ThemeBrandService). Layout canvas and
|
|
4
|
+
* surface patterns are left to the neutral axis. Hand-written, not emitted by
|
|
5
|
+
* the generated index.
|
|
6
|
+
*
|
|
7
|
+
* --accent-foreground and --secondary-foreground are deliberately NOT mapped to
|
|
8
|
+
* --brand. Those are text on a neutral tint, and --brand is a value the consumer
|
|
9
|
+
* chooses while the tint underneath it also moves with the theme-neutral axis, so
|
|
10
|
+
* no fixed mapping can promise 4.5 to 1. They fall through to the base theme
|
|
11
|
+
* instead, which is measured and passes. The brand colour still comes through on
|
|
12
|
+
* --primary, --ring, and --highlight, where it is paired with
|
|
13
|
+
* --brand-foreground.
|
|
14
|
+
*
|
|
15
|
+
* --ring reads --brand-ring rather than --brand, for the same reason a generated
|
|
16
|
+
* accent emits a --ring separate from its --primary: the fill keeps the
|
|
17
|
+
* lightness it was designed with, and only the focus indicator is darkened to
|
|
18
|
+
* clear 3 to 1 against the background. ThemeBrandService solves that value once
|
|
19
|
+
* per mode (--brand-ring-light / --brand-ring-dark); without it the ring simply
|
|
20
|
+
* falls back to the brand.
|
|
21
|
+
*/
|
|
22
|
+
@layer tokens {
|
|
23
|
+
html[theme-color='brand'][data-mode='light'] {
|
|
24
|
+
--brand-ring: var(--brand-ring-light, var(--brand));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
html[theme-color='brand'][data-mode='dark'] {
|
|
28
|
+
--brand-ring: var(--brand-ring-dark, var(--brand));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
html[theme-color='brand'][data-mode='light'],
|
|
32
|
+
html[theme-color='brand'][data-mode='dark'] {
|
|
33
|
+
--primary: var(--brand);
|
|
34
|
+
--primary-foreground: var(--brand-foreground);
|
|
35
|
+
--ring: var(--brand-ring, var(--brand));
|
|
36
|
+
--highlight: var(--brand);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accent theme: cyan. Generated by scripts/gen-theme-colors.mjs — do not edit.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-color='cyan'][data-mode='light'] {
|
|
6
|
+
--foreground: 191 29% 16%;
|
|
7
|
+
--surface: 191 30% 95%;
|
|
8
|
+
--surface-foreground: 191 29% 16%;
|
|
9
|
+
--card: 191 52% 99%;
|
|
10
|
+
--card-foreground: 191 29% 16%;
|
|
11
|
+
--popover: 191 52% 99%;
|
|
12
|
+
--popover-foreground: 191 29% 16%;
|
|
13
|
+
--muted: 191 26% 95%;
|
|
14
|
+
--muted-foreground: 191 17% 40%;
|
|
15
|
+
--border: 191 26% 87%;
|
|
16
|
+
--input: 191 26% 87%;
|
|
17
|
+
--primary: 191 85% 48%;
|
|
18
|
+
--primary-foreground: 0 0% 12%;
|
|
19
|
+
--accent: 191 51% 94%;
|
|
20
|
+
--accent-foreground: 191 85% 30%;
|
|
21
|
+
--secondary: 191 34% 93%;
|
|
22
|
+
--secondary-foreground: 191 85% 28%;
|
|
23
|
+
--ring: 191 85% 41%;
|
|
24
|
+
--highlight: 191 85% 64%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
html[theme-color='cyan'][data-mode='dark'] {
|
|
28
|
+
--foreground: 191 13% 96%;
|
|
29
|
+
--surface: 191 21% 12%;
|
|
30
|
+
--surface-foreground: 191 13% 96%;
|
|
31
|
+
--card: 191 26% 9%;
|
|
32
|
+
--card-foreground: 191 13% 96%;
|
|
33
|
+
--popover: 191 26% 9%;
|
|
34
|
+
--popover-foreground: 191 13% 96%;
|
|
35
|
+
--muted: 191 21% 16%;
|
|
36
|
+
--muted-foreground: 191 17% 64%;
|
|
37
|
+
--border: 191 21% 18%;
|
|
38
|
+
--input: 191 21% 18%;
|
|
39
|
+
--primary: 191 85% 58%;
|
|
40
|
+
--primary-foreground: 0 0% 10%;
|
|
41
|
+
--accent: 191 43% 18%;
|
|
42
|
+
--accent-foreground: 191 68% 80%;
|
|
43
|
+
--secondary: 191 34% 18%;
|
|
44
|
+
--secondary-foreground: 191 59% 82%;
|
|
45
|
+
--ring: 191 85% 58%;
|
|
46
|
+
--highlight: 191 85% 58%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@media (prefers-color-scheme: dark) {
|
|
50
|
+
html[theme-color='cyan']:not([data-mode='light']) {
|
|
51
|
+
--foreground: 191 13% 96%;
|
|
52
|
+
--surface: 191 21% 12%;
|
|
53
|
+
--surface-foreground: 191 13% 96%;
|
|
54
|
+
--card: 191 26% 9%;
|
|
55
|
+
--card-foreground: 191 13% 96%;
|
|
56
|
+
--popover: 191 26% 9%;
|
|
57
|
+
--popover-foreground: 191 13% 96%;
|
|
58
|
+
--muted: 191 21% 16%;
|
|
59
|
+
--muted-foreground: 191 17% 64%;
|
|
60
|
+
--border: 191 21% 18%;
|
|
61
|
+
--input: 191 21% 18%;
|
|
62
|
+
--primary: 191 85% 58%;
|
|
63
|
+
--primary-foreground: 0 0% 10%;
|
|
64
|
+
--accent: 191 43% 18%;
|
|
65
|
+
--accent-foreground: 191 68% 80%;
|
|
66
|
+
--secondary: 191 34% 18%;
|
|
67
|
+
--secondary-foreground: 191 59% 82%;
|
|
68
|
+
--ring: 191 85% 58%;
|
|
69
|
+
--highlight: 191 85% 58%;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accent theme: emerald. Generated by scripts/gen-theme-colors.mjs — do not edit.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-color='emerald'][data-mode='light'] {
|
|
6
|
+
--foreground: 160 28% 16%;
|
|
7
|
+
--surface: 160 27% 95%;
|
|
8
|
+
--surface-foreground: 160 28% 16%;
|
|
9
|
+
--card: 160 52% 99%;
|
|
10
|
+
--card-foreground: 160 28% 16%;
|
|
11
|
+
--popover: 160 52% 99%;
|
|
12
|
+
--popover-foreground: 160 28% 16%;
|
|
13
|
+
--muted: 160 23% 95%;
|
|
14
|
+
--muted-foreground: 160 16% 40%;
|
|
15
|
+
--border: 160 23% 87%;
|
|
16
|
+
--input: 160 23% 87%;
|
|
17
|
+
--primary: 160 78% 48%;
|
|
18
|
+
--primary-foreground: 0 0% 12%;
|
|
19
|
+
--accent: 160 47% 94%;
|
|
20
|
+
--accent-foreground: 160 78% 27%;
|
|
21
|
+
--secondary: 160 31% 93%;
|
|
22
|
+
--secondary-foreground: 160 78% 27%;
|
|
23
|
+
--ring: 160 78% 37%;
|
|
24
|
+
--highlight: 160 78% 64%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
html[theme-color='emerald'][data-mode='dark'] {
|
|
28
|
+
--foreground: 160 12% 96%;
|
|
29
|
+
--surface: 160 20% 12%;
|
|
30
|
+
--surface-foreground: 160 12% 96%;
|
|
31
|
+
--card: 160 23% 9%;
|
|
32
|
+
--card-foreground: 160 12% 96%;
|
|
33
|
+
--popover: 160 23% 9%;
|
|
34
|
+
--popover-foreground: 160 12% 96%;
|
|
35
|
+
--muted: 160 20% 16%;
|
|
36
|
+
--muted-foreground: 160 16% 64%;
|
|
37
|
+
--border: 160 20% 18%;
|
|
38
|
+
--input: 160 20% 18%;
|
|
39
|
+
--primary: 160 78% 58%;
|
|
40
|
+
--primary-foreground: 0 0% 10%;
|
|
41
|
+
--accent: 160 39% 18%;
|
|
42
|
+
--accent-foreground: 160 62% 80%;
|
|
43
|
+
--secondary: 160 31% 18%;
|
|
44
|
+
--secondary-foreground: 160 55% 82%;
|
|
45
|
+
--ring: 160 78% 58%;
|
|
46
|
+
--highlight: 160 78% 58%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@media (prefers-color-scheme: dark) {
|
|
50
|
+
html[theme-color='emerald']:not([data-mode='light']) {
|
|
51
|
+
--foreground: 160 12% 96%;
|
|
52
|
+
--surface: 160 20% 12%;
|
|
53
|
+
--surface-foreground: 160 12% 96%;
|
|
54
|
+
--card: 160 23% 9%;
|
|
55
|
+
--card-foreground: 160 12% 96%;
|
|
56
|
+
--popover: 160 23% 9%;
|
|
57
|
+
--popover-foreground: 160 12% 96%;
|
|
58
|
+
--muted: 160 20% 16%;
|
|
59
|
+
--muted-foreground: 160 16% 64%;
|
|
60
|
+
--border: 160 20% 18%;
|
|
61
|
+
--input: 160 20% 18%;
|
|
62
|
+
--primary: 160 78% 58%;
|
|
63
|
+
--primary-foreground: 0 0% 10%;
|
|
64
|
+
--accent: 160 39% 18%;
|
|
65
|
+
--accent-foreground: 160 62% 80%;
|
|
66
|
+
--secondary: 160 31% 18%;
|
|
67
|
+
--secondary-foreground: 160 55% 82%;
|
|
68
|
+
--ring: 160 78% 58%;
|
|
69
|
+
--highlight: 160 78% 58%;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|