actual-css 0.3.0 → 0.4.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 +78 -3
- package/README.md +35 -30
- package/dist/actual.css +98 -4882
- package/dist/actual.full.css +7090 -0
- package/dist/actual.full.js +1 -0
- package/dist/actual.full.min.css +1 -0
- package/dist/actual.js +1 -1
- package/dist/actual.min.css +1 -1
- package/docs/design-notes/cascade-layer.md +35 -13
- package/docs/design-notes/column-layout.md +677 -0
- package/docs/design-notes/forced-colors.md +3 -0
- package/docs/design-notes/grid.md +612 -0
- package/docs/design-notes/naming.md +15 -0
- package/docs/design-notes/widget-primitives.md +1 -0
- package/docs/navigation.json +5 -1
- package/docs/pages/components/alert.md +16 -14
- package/docs/pages/components/aura.md +1 -1
- package/docs/pages/components/avatar.md +6 -6
- package/docs/pages/components/badge.md +7 -7
- package/docs/pages/components/button.md +22 -17
- package/docs/pages/components/card.md +29 -13
- package/docs/pages/components/chat.md +8 -8
- package/docs/pages/components/dialog.md +7 -7
- package/docs/pages/components/drawer.md +3 -3
- package/docs/pages/components/fab.md +7 -7
- package/docs/pages/components/navbar.md +9 -8
- package/docs/pages/components/pagination.md +4 -3
- package/docs/pages/components/skeleton.md +4 -4
- package/docs/pages/components/spinner.md +5 -5
- package/docs/pages/components/table.md +30 -5
- package/docs/pages/enhancements/flyout.md +13 -13
- package/docs/pages/enhancements/overview.md +1 -1
- package/docs/pages/enhancements/scrollspy.md +6 -6
- package/docs/pages/enhancements/status-bar.md +5 -1
- package/docs/pages/enhancements/tabs.md +6 -6
- package/docs/pages/enhancements/tooltip.md +1 -1
- package/docs/pages/examples/overview.md +41 -22
- package/docs/pages/forms/choice-cards.md +11 -6
- package/docs/pages/forms/controls.md +1 -1
- package/docs/pages/forms/detached-actions.md +1 -1
- package/docs/pages/forms/floating-field.md +10 -5
- package/docs/pages/forms/form-actions.md +1 -1
- package/docs/pages/forms/input-policy.md +1 -1
- package/docs/pages/forms/joined-controls.md +4 -4
- package/docs/pages/forms/labels.md +6 -6
- package/docs/pages/forms/otp.md +1 -1
- package/docs/pages/forms/overview.md +19 -19
- package/docs/pages/forms/password.md +1 -1
- package/docs/pages/forms/range.md +1 -1
- package/docs/pages/forms/states-and-sizes.md +41 -45
- package/docs/pages/forms/sticky-actions.md +3 -3
- package/docs/pages/forms/switch.md +110 -2
- package/docs/pages/forms/validation.md +9 -9
- package/docs/pages/foundations/philosophy.md +1 -1
- package/docs/pages/foundations/theming.md +29 -7
- package/docs/pages/foundations/tokens.md +22 -10
- package/docs/pages/foundations/typography.md +50 -20
- package/docs/pages/guides/bootstrap.md +11 -11
- package/docs/pages/guides/integrating-actual-css.md +186 -0
- package/docs/pages/guides/introduction.md +23 -26
- package/docs/pages/guides/modular-import.md +173 -0
- package/docs/pages/guides/progressive-enhancement.md +81 -78
- package/docs/pages/guides/tailwind.md +6 -8
- package/docs/pages/layout/app-shell.md +1 -1
- package/docs/pages/layout/center.md +1 -1
- package/docs/pages/layout/choosing.md +39 -0
- package/docs/pages/layout/cluster.md +4 -2
- package/docs/pages/layout/column-layout.md +206 -0
- package/docs/pages/layout/frame.md +6 -1
- package/docs/pages/layout/grid.md +100 -102
- package/docs/pages/layout/list.md +1 -1
- package/docs/pages/layout/media.md +10 -3
- package/docs/pages/layout/overview.md +15 -2
- package/docs/pages/layout/scroll-snap.md +2 -2
- package/docs/pages/layout/scroll-target.md +45 -0
- package/docs/pages/layout/sidebar-layout.md +20 -19
- package/docs/pages/layout/stack.md +90 -1
- package/docs/pages/layout/switcher.md +10 -26
- package/docs/pages/layout/topbar.md +2 -2
- package/docs/pages/patterns/actions.md +1 -1
- package/docs/pages/patterns/code-block.md +1 -1
- package/docs/pages/patterns/exclusive-accordion.md +1 -1
- package/docs/pages/patterns/hierarchical-nav.md +1 -1
- package/docs/pages/patterns/icon-input.md +1 -1
- package/docs/pages/patterns/intent-nesting.md +1 -1
- package/docs/pages/patterns/navigation-list.md +1 -1
- package/docs/pages/patterns/overview.md +1 -1
- package/docs/pages/patterns/structured-lists.md +1 -1
- package/docs/pages/utilities/accessibility.md +3 -3
- package/docs/pages/utilities/flex.md +15 -15
- package/docs/pages/utilities/links.md +4 -4
- package/docs/pages/utilities/list.md +8 -7
- package/docs/pages/utilities/overflow.md +8 -8
- package/docs/pages/utilities/overview.md +1 -1
- package/docs/pages/utilities/shape.md +3 -3
- package/docs/pages/utilities/sizing-wrapping.md +23 -16
- package/docs/pages/utilities/spacing.md +20 -20
- package/docs/pages/utilities/text.md +10 -10
- package/llms.txt +46 -4
- package/package.json +43 -13
- package/scripts/reserved-classes.json +261 -0
- package/src/cli/actual-css.js +133 -0
- package/src/css/actual.css +1 -28
- package/src/css/actual.full.css +11 -2
- package/src/css/components/alert.css +33 -10
- package/src/css/components/badge.css +38 -19
- package/src/css/components/breadcrumb.css +1 -1
- package/src/css/components/button.css +35 -13
- package/src/css/components/card.css +37 -4
- package/src/css/components/drawer.css +27 -2
- package/src/css/components/flyout.css +5 -0
- package/src/css/components/index.css +32 -27
- package/src/css/components/join.css +8 -1
- package/src/css/components/key.css +2 -0
- package/src/css/components/menu.css +11 -1
- package/src/css/components/meter.css +4 -1
- package/src/css/components/modal.css +5 -0
- package/src/css/components/navbar.css +13 -5
- package/src/css/components/pagination.css +11 -0
- package/src/css/components/spinner.css +5 -0
- package/src/css/components/status-bar.css +5 -0
- package/src/css/components/surface.css +5 -0
- package/src/css/components/table.css +6 -0
- package/src/css/components/tooltip.css +5 -0
- package/src/css/core/index.css +9 -0
- package/src/css/core/print.css +18 -0
- package/src/css/{theme.css → core/theme.css} +20 -10
- package/src/css/{tokens.css → core/tokens.css} +15 -2
- package/src/css/{variants.css → core/variants.css} +27 -13
- package/src/css/effects/index.css +2 -0
- package/src/css/forms/base.css +8 -0
- package/src/css/forms/choice-card.css +5 -4
- package/src/css/forms/choice.css +49 -37
- package/src/css/forms/control.css +6 -1
- package/src/css/forms/custom-select.css +2 -0
- package/src/css/{optional → forms}/floating-field.css +25 -7
- package/src/css/forms/index.css +10 -13
- package/src/css/forms/native.css +15 -2
- package/src/css/{optional → forms}/otp.css +20 -16
- package/src/css/forms/switch.css +31 -29
- package/src/css/layout/app-shell.css +6 -0
- package/src/css/layout/center.css +13 -0
- package/src/css/layout/cluster.css +21 -0
- package/src/css/layout/column-layout.css +144 -0
- package/src/css/layout/container-query.css +13 -0
- package/src/css/layout/frame.css +19 -0
- package/src/css/layout/grid.css +141 -0
- package/src/css/layout/index.css +42 -0
- package/src/css/layout/measure.css +9 -0
- package/src/css/layout/media.css +10 -0
- package/src/css/layout/scroll-target.css +15 -0
- package/src/css/layout/scroller.css +41 -0
- package/src/css/layout/sidebar-layout.css +31 -0
- package/src/css/layout/stack.css +21 -0
- package/src/css/layout/switcher.css +23 -0
- package/src/css/{optional/layout-extra.css → layout/topbar.css} +0 -20
- package/src/css/typography/index.css +5 -0
- package/src/css/typography/lead.css +7 -0
- package/src/css/{components → typography}/overline.css +10 -4
- package/src/css/{prose.css → typography/prose.css} +53 -38
- package/src/css/{utilities.css → utilities/base.css} +2 -0
- package/src/css/utilities/index.css +3 -0
- package/src/js/escape.js +36 -0
- package/src/js/flyout.js +22 -12
- package/src/js/full.js +26 -0
- package/src/js/index.js +5 -21
- package/src/js/surface.js +4 -32
- package/src/js/tooltip.js +65 -24
- package/src/js/validation.js +1 -1
- package/src/tooling/css-bundle.js +308 -0
- package/dist/actual-themes.min.css +0 -1
- package/dist/optional.css +0 -1048
- package/dist/optional.min.css +0 -1
- package/docs/pages/guides/optional-components.md +0 -33
- package/src/css/grid.css +0 -96
- package/src/css/layout.css +0 -108
- package/src/css/optional/index.css +0 -10
- package/src/css/optional/scroller.css +0 -63
- package/src/css/print.css +0 -47
- package/src/css/themes/corporate.css +0 -60
- package/src/css/themes/cyberpunk.css +0 -60
- package/src/css/themes/dim.css +0 -33
- package/src/css/themes/edge.css +0 -117
- package/src/css/themes/forest.css +0 -65
- package/src/css/themes/gradient.css +0 -97
- package/src/css/themes/index.css +0 -43
- package/src/css/themes/indigo.css +0 -33
- package/src/css/themes/lavender.css +0 -66
- package/src/css/themes/mono.css +0 -60
- package/src/css/themes/neon.css +0 -66
- package/src/css/themes/ocean.css +0 -60
- package/src/css/themes/petrol.css +0 -64
- package/src/css/themes/spruce.css +0 -64
- package/src/css/themes/square.css +0 -65
- package/src/css/themes/sunset.css +0 -66
- /package/src/css/{optional → components}/chat.css +0 -0
- /package/src/css/{optional → components}/fab.css +0 -0
- /package/src/css/{base.css → core/base.css} +0 -0
- /package/src/css/{focus.css → core/focus.css} +0 -0
- /package/src/css/{intents.css → core/intents.css} +0 -0
- /package/src/css/{reset.css → core/reset.css} +0 -0
- /package/src/css/{optional → effects}/aura.css +0 -0
- /package/src/css/{optional → layout}/scroll-snap.css +0 -0
- /package/src/css/{optional/typography-fluid.css → typography/fluid.css} +0 -0
- /package/src/css/{optional/utilities-extra.css → utilities/extra.css} +0 -0
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
[data-theme="forest"] {
|
|
2
|
-
color-scheme: light dark;
|
|
3
|
-
|
|
4
|
-
--primary: hsl(175 48% 26%);
|
|
5
|
-
--primary-fg: white;
|
|
6
|
-
--secondary: hsl(82 42% 34%);
|
|
7
|
-
--secondary-fg: white;
|
|
8
|
-
--success: hsl(148 58% 32%);
|
|
9
|
-
--success-fg: white;
|
|
10
|
-
--warning: hsl(42 88% 48%);
|
|
11
|
-
--warning-fg: hsl(35 35% 12%);
|
|
12
|
-
--danger: hsl(4 62% 48%);
|
|
13
|
-
--danger-fg: white;
|
|
14
|
-
--neutral: hsl(120 10% 34%);
|
|
15
|
-
--neutral-fg: white;
|
|
16
|
-
|
|
17
|
-
--surface: hsl(48 36% 96%);
|
|
18
|
-
--surface-raised: hsl(45 36% 98%);
|
|
19
|
-
--surface-subtle: hsl(112 26% 91%);
|
|
20
|
-
--surface-solid: hsl(130 22% 15%);
|
|
21
|
-
|
|
22
|
-
--text: hsl(130 20% 14%);
|
|
23
|
-
--text-muted: hsl(125 10% 38%);
|
|
24
|
-
--text-subtle: hsl(125 8% 50%);
|
|
25
|
-
|
|
26
|
-
--border: hsl(105 18% 78%);
|
|
27
|
-
--focus: var(--primary);
|
|
28
|
-
--focus-ring: hsl(175 48% 26% / 0.22);
|
|
29
|
-
|
|
30
|
-
/* Organic rounding — demonstrates scaling the radius tokens up. */
|
|
31
|
-
--radius: 0.75rem;
|
|
32
|
-
--radius-sm: 0.5rem;
|
|
33
|
-
--radius-lg: 1.25rem;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@supports (color: light-dark(red, blue)) {
|
|
37
|
-
[data-theme="forest"] {
|
|
38
|
-
--primary: light-dark(hsl(175 48% 26%), hsl(175 45% 76%));
|
|
39
|
-
--primary-fg: light-dark(white, hsl(175 30% 12%));
|
|
40
|
-
--secondary: light-dark(hsl(82 42% 34%), hsl(82 50% 80%));
|
|
41
|
-
--secondary-fg: light-dark(white, hsl(82 30% 12%));
|
|
42
|
-
--success: light-dark(hsl(148 58% 32%), hsl(148 66% 80%));
|
|
43
|
-
--success-fg: light-dark(white, hsl(148 30% 12%));
|
|
44
|
-
--warning: light-dark(hsl(42 88% 48%), hsl(42 75% 80%));
|
|
45
|
-
--warning-fg: light-dark(hsl(35 35% 12%), hsl(42 30% 12%));
|
|
46
|
-
--danger: light-dark(hsl(4 62% 48%), hsl(4 70% 80%));
|
|
47
|
-
--danger-fg: light-dark(white, hsl(4 30% 12%));
|
|
48
|
-
--neutral: light-dark(hsl(120 10% 34%), hsl(120 18% 80%));
|
|
49
|
-
--neutral-fg: light-dark(white, hsl(120 30% 12%));
|
|
50
|
-
|
|
51
|
-
--surface: light-dark(hsl(48 36% 96%), hsl(130 18% 8%));
|
|
52
|
-
--surface-raised: light-dark(hsl(45 36% 98%), hsl(130 16% 11%));
|
|
53
|
-
--surface-subtle: light-dark(hsl(112 26% 91%), hsl(130 14% 16%));
|
|
54
|
-
--surface-solid: light-dark(hsl(130 22% 15%), hsl(0 0% 96%));
|
|
55
|
-
|
|
56
|
-
--text: light-dark(hsl(130 20% 14%), hsl(0 0% 96%));
|
|
57
|
-
--text-muted: light-dark(hsl(125 10% 38%), hsl(130 8% 68%));
|
|
58
|
-
--text-subtle: light-dark(hsl(125 8% 50%), hsl(130 7% 55%));
|
|
59
|
-
|
|
60
|
-
--border: light-dark(hsl(105 18% 78%), hsl(130 12% 24%));
|
|
61
|
-
--focus-ring: light-dark(hsl(175 48% 26% / 0.22), hsl(175 45% 76% / 0.28));
|
|
62
|
-
--hover-overlay: light-dark(hsl(220 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
|
|
63
|
-
--shadow-color: light-dark(hsl(220 30% 10%), hsl(0 0% 0%));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/* Gradient — paired light/dark theme, palette inspired by Bootstrap 4's
|
|
2
|
-
* defaults. Demonstrates that a solid button can be given the classic
|
|
3
|
-
* Bootstrap 4 gradient treatment (a 15%-white-lightened top fading to the
|
|
4
|
-
* flat intent color) purely through token overrides, without touching
|
|
5
|
-
* button.css. Only bare/.solid buttons are targeted — .soft/.outline/.ghost/
|
|
6
|
-
* .link stay flat, matching Bootstrap 4's own gradient mixin, which only
|
|
7
|
-
* wraps its filled button variant. */
|
|
8
|
-
[data-theme="gradient"] {
|
|
9
|
-
color-scheme: light dark;
|
|
10
|
-
|
|
11
|
-
--primary: hsl(211 100% 50%);
|
|
12
|
-
--primary-fg: white;
|
|
13
|
-
--secondary: hsl(208 7% 46%);
|
|
14
|
-
--secondary-fg: white;
|
|
15
|
-
--success: hsl(134 61% 41%);
|
|
16
|
-
--success-fg: white;
|
|
17
|
-
--warning: hsl(45 100% 51%);
|
|
18
|
-
--warning-fg: hsl(45 100% 10%);
|
|
19
|
-
--danger: hsl(354 70% 54%);
|
|
20
|
-
--danger-fg: white;
|
|
21
|
-
--neutral: hsl(210 10% 23%);
|
|
22
|
-
--neutral-fg: white;
|
|
23
|
-
|
|
24
|
-
--surface: hsl(0 0% 100%);
|
|
25
|
-
--surface-raised: hsl(0 0% 100%);
|
|
26
|
-
--surface-subtle: hsl(210 17% 95%);
|
|
27
|
-
--surface-solid: hsl(210 10% 15%);
|
|
28
|
-
|
|
29
|
-
--text: hsl(210 11% 15%);
|
|
30
|
-
--text-muted: hsl(208 7% 46%);
|
|
31
|
-
--text-subtle: hsl(210 9% 62%);
|
|
32
|
-
|
|
33
|
-
--border: hsl(210 14% 89%);
|
|
34
|
-
--focus: var(--primary);
|
|
35
|
-
--focus-ring: hsl(211 100% 50% / 0.25);
|
|
36
|
-
--hover-overlay: hsl(210 30% 10% / 0.04);
|
|
37
|
-
|
|
38
|
-
--radius: 0.25rem;
|
|
39
|
-
--radius-sm: 0.2rem;
|
|
40
|
-
--radius-lg: 0.3rem;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
@supports (color: light-dark(red, blue)) {
|
|
44
|
-
[data-theme="gradient"] {
|
|
45
|
-
--primary: light-dark(hsl(211 100% 50%), hsl(211 90% 72%));
|
|
46
|
-
--primary-fg: light-dark(white, hsl(211 40% 10%));
|
|
47
|
-
--secondary: light-dark(hsl(208 7% 46%), hsl(208 10% 72%));
|
|
48
|
-
--secondary-fg: light-dark(white, hsl(208 15% 10%));
|
|
49
|
-
--success: light-dark(hsl(134 61% 41%), hsl(134 55% 65%));
|
|
50
|
-
--success-fg: light-dark(white, hsl(134 40% 8%));
|
|
51
|
-
--warning: light-dark(hsl(45 100% 51%), hsl(45 90% 70%));
|
|
52
|
-
--warning-fg: light-dark(hsl(45 100% 10%), hsl(45 100% 10%));
|
|
53
|
-
--danger: light-dark(hsl(354 70% 54%), hsl(354 75% 74%));
|
|
54
|
-
--danger-fg: light-dark(white, hsl(354 40% 10%));
|
|
55
|
-
--neutral: light-dark(hsl(210 10% 23%), hsl(210 12% 75%));
|
|
56
|
-
--neutral-fg: light-dark(white, hsl(210 15% 10%));
|
|
57
|
-
|
|
58
|
-
--surface: light-dark(hsl(0 0% 100%), hsl(210 15% 8%));
|
|
59
|
-
--surface-raised: light-dark(hsl(0 0% 100%), hsl(210 13% 11%));
|
|
60
|
-
--surface-subtle: light-dark(hsl(210 17% 95%), hsl(210 12% 16%));
|
|
61
|
-
--surface-solid: light-dark(hsl(210 10% 15%), hsl(0 0% 96%));
|
|
62
|
-
|
|
63
|
-
--text: light-dark(hsl(210 11% 15%), hsl(0 0% 96%));
|
|
64
|
-
--text-muted: light-dark(hsl(208 7% 46%), hsl(210 8% 68%));
|
|
65
|
-
--text-subtle: light-dark(hsl(210 9% 62%), hsl(210 7% 55%));
|
|
66
|
-
|
|
67
|
-
--border: light-dark(hsl(210 14% 89%), hsl(210 12% 24%));
|
|
68
|
-
--focus-ring: light-dark(hsl(211 100% 50% / 0.25), hsl(211 90% 72% / 0.3));
|
|
69
|
-
--hover-overlay: light-dark(hsl(210 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
|
|
70
|
-
--shadow-color: light-dark(hsl(210 30% 10%), hsl(0 0% 0%));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@supports (color: color-mix(in oklch, red, white)) {
|
|
75
|
-
/* Bootstrap 4 gradient recipe (linear-gradient(180deg, mix(white, $color,
|
|
76
|
-
15%), $color)) ported to the token contract. --ui-bg covers explicit
|
|
77
|
-
.solid; --btn-default-bg covers the bare/no-variant default. Bootstrap 4
|
|
78
|
-
still darkens the button on hover even with gradients enabled, so
|
|
79
|
-
--ui-hover-bg reruns the same recipe over a darkened base color instead
|
|
80
|
-
of reusing --ui-bg verbatim — the resting gradient shape survives, just
|
|
81
|
-
shifted darker, same as the flat color-mix darken variants.css uses for
|
|
82
|
-
hover on ungradiented themes. */
|
|
83
|
-
[data-theme="gradient"] .btn:not(:where(.soft, .outline, .ghost, .link)) {
|
|
84
|
-
--gradient-hover-color: color-mix(in oklch, var(--intent, var(--neutral)) 88%, black);
|
|
85
|
-
--ui-bg: linear-gradient(
|
|
86
|
-
180deg,
|
|
87
|
-
color-mix(in oklch, white 15%, var(--intent, var(--neutral))),
|
|
88
|
-
var(--intent, var(--neutral))
|
|
89
|
-
);
|
|
90
|
-
--btn-default-bg: var(--ui-bg);
|
|
91
|
-
--ui-hover-bg: linear-gradient(
|
|
92
|
-
180deg,
|
|
93
|
-
color-mix(in oklch, white 15%, var(--gradient-hover-color)),
|
|
94
|
-
var(--gradient-hover-color)
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
}
|
package/src/css/themes/index.css
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/* Opt-in theme bundle. Importing this file pulls in every theme below, each
|
|
2
|
-
* gated by [data-theme="…"]. The light baseline is :root in src/css/theme.css —
|
|
3
|
-
* there is no light.css here.
|
|
4
|
-
*
|
|
5
|
-
* The themes are illustrative: each one demonstrates a different set of knobs
|
|
6
|
-
* the token contract exposes, beyond recoloring.
|
|
7
|
-
*
|
|
8
|
-
* indigo — deep blue/violet dark palette (single block)
|
|
9
|
-
* dim — dark variant with lifted surface tones
|
|
10
|
-
* corporate — reference paired light/dark recolor via light-dark()
|
|
11
|
-
* forest — paired recolor + scaled-up radius tokens
|
|
12
|
-
* ocean — reference paired recolor
|
|
13
|
-
* spruce — deep spruce-green primary + copper secondary
|
|
14
|
-
* petrol — desaturated petrol-blue primary + apricot secondary
|
|
15
|
-
* sunset — paired recolor + selection and shadow-color theming
|
|
16
|
-
* lavender — paired recolor + soft-variant tuning, tinted shadows
|
|
17
|
-
* mono — grayscale palette, colored status intents only
|
|
18
|
-
* square — paired recolor + full radius scale forced to 0
|
|
19
|
-
* edge — paired recolor + intent-colored button lower edge
|
|
20
|
-
* cyberpunk — light-only stress test: yellow canvas, dark-on-bright
|
|
21
|
-
* intents, 2px borders, hard offset shadows
|
|
22
|
-
* neon — dark-only + wide-gamut P3 upgrade via oklch(), glow
|
|
23
|
-
* shadows, soft-variant tuning
|
|
24
|
-
* gradient — paired recolor + Bootstrap 4 style gradient on solid buttons
|
|
25
|
-
* via component-local button tokens
|
|
26
|
-
*
|
|
27
|
-
* Single-block themes (indigo, dim, cyberpunk, neon) pin one color-scheme and
|
|
28
|
-
* cannot adapt to prefers-color-scheme; the paired ones follow the OS. */
|
|
29
|
-
@import "./indigo.css";
|
|
30
|
-
@import "./dim.css";
|
|
31
|
-
@import "./corporate.css";
|
|
32
|
-
@import "./forest.css";
|
|
33
|
-
@import "./ocean.css";
|
|
34
|
-
@import "./spruce.css";
|
|
35
|
-
@import "./petrol.css";
|
|
36
|
-
@import "./sunset.css";
|
|
37
|
-
@import "./lavender.css";
|
|
38
|
-
@import "./mono.css";
|
|
39
|
-
@import "./square.css";
|
|
40
|
-
@import "./edge.css";
|
|
41
|
-
@import "./cyberpunk.css";
|
|
42
|
-
@import "./neon.css";
|
|
43
|
-
@import "./gradient.css";
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/* Indigo — deep blue/violet palette, dark-only. Single-block shape
|
|
2
|
-
* (color-scheme: dark only) — it does not adapt to prefers-color-scheme;
|
|
3
|
-
* opt in via [data-theme="indigo"]. dim.css is a darker variant with
|
|
4
|
-
* lifted surface tones. */
|
|
5
|
-
[data-theme="indigo"] {
|
|
6
|
-
color-scheme: dark;
|
|
7
|
-
|
|
8
|
-
--primary: hsl(220 90% 66%);
|
|
9
|
-
--primary-fg: hsl(222 30% 8%);
|
|
10
|
-
--secondary: hsl(270 65% 70%);
|
|
11
|
-
--secondary-fg: hsl(270 30% 10%);
|
|
12
|
-
--success: hsl(145 55% 54%);
|
|
13
|
-
--success-fg: hsl(145 40% 8%);
|
|
14
|
-
--warning: hsl(38 92% 62%);
|
|
15
|
-
--warning-fg: hsl(35 35% 10%);
|
|
16
|
-
--danger: hsl(0 75% 66%);
|
|
17
|
-
--danger-fg: hsl(0 35% 10%);
|
|
18
|
-
--neutral: hsl(220 10% 72%);
|
|
19
|
-
--neutral-fg: hsl(222 24% 8%);
|
|
20
|
-
|
|
21
|
-
--surface: hsl(222 24% 8%);
|
|
22
|
-
--surface-raised: hsl(222 22% 11%);
|
|
23
|
-
--surface-subtle: hsl(222 18% 15%);
|
|
24
|
-
--surface-solid: hsl(0 0% 96%);
|
|
25
|
-
|
|
26
|
-
--text: hsl(0 0% 96%);
|
|
27
|
-
--text-muted: hsl(220 10% 68%);
|
|
28
|
-
--text-subtle: hsl(220 8% 55%);
|
|
29
|
-
--border: hsl(222 14% 24%);
|
|
30
|
-
--focus: var(--primary);
|
|
31
|
-
--focus-ring: hsl(220 90% 66% / 0.28);
|
|
32
|
-
--hover-overlay: hsl(0 0% 100% / 0.06);
|
|
33
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
[data-theme="lavender"] {
|
|
2
|
-
color-scheme: light dark;
|
|
3
|
-
|
|
4
|
-
--primary: hsl(258 70% 58%);
|
|
5
|
-
--primary-fg: white;
|
|
6
|
-
--secondary: hsl(305 45% 48%);
|
|
7
|
-
--secondary-fg: white;
|
|
8
|
-
--success: hsl(150 50% 33%);
|
|
9
|
-
--success-fg: white;
|
|
10
|
-
--warning: hsl(42 90% 52%);
|
|
11
|
-
--warning-fg: hsl(35 35% 12%);
|
|
12
|
-
--danger: hsl(350 68% 52%);
|
|
13
|
-
--danger-fg: white;
|
|
14
|
-
--neutral: hsl(260 10% 42%);
|
|
15
|
-
--neutral-fg: white;
|
|
16
|
-
|
|
17
|
-
--surface: hsl(260 45% 98%);
|
|
18
|
-
--surface-raised: hsl(0 0% 100%);
|
|
19
|
-
--surface-subtle: hsl(260 35% 94%);
|
|
20
|
-
--surface-solid: hsl(260 30% 18%);
|
|
21
|
-
|
|
22
|
-
--text: hsl(260 28% 15%);
|
|
23
|
-
--text-muted: hsl(260 12% 43%);
|
|
24
|
-
--text-subtle: hsl(260 10% 57%);
|
|
25
|
-
|
|
26
|
-
--border: hsl(260 28% 85%);
|
|
27
|
-
--focus: var(--primary);
|
|
28
|
-
--focus-ring: hsl(258 70% 58% / 0.22);
|
|
29
|
-
|
|
30
|
-
/* Pastel tuning — demonstrates the soft-variant knobs (paler tints, gentler
|
|
31
|
-
hovers) and violet-tinted shadows. */
|
|
32
|
-
--soft-bg-mix: 92%;
|
|
33
|
-
--soft-hover-alpha: 8%;
|
|
34
|
-
--shadow-color: hsl(260 45% 20%);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@supports (color: light-dark(red, blue)) {
|
|
38
|
-
[data-theme="lavender"] {
|
|
39
|
-
--primary: light-dark(hsl(258 70% 58%), hsl(258 75% 80%));
|
|
40
|
-
--primary-fg: light-dark(white, hsl(258 30% 12%));
|
|
41
|
-
--secondary: light-dark(hsl(305 45% 48%), hsl(305 53% 80%));
|
|
42
|
-
--secondary-fg: light-dark(white, hsl(305 30% 12%));
|
|
43
|
-
--success: light-dark(hsl(150 50% 33%), hsl(150 58% 80%));
|
|
44
|
-
--success-fg: light-dark(white, hsl(150 30% 12%));
|
|
45
|
-
--warning: light-dark(hsl(42 90% 52%), hsl(42 75% 80%));
|
|
46
|
-
--warning-fg: light-dark(hsl(35 35% 12%), hsl(42 30% 12%));
|
|
47
|
-
--danger: light-dark(hsl(350 68% 52%), hsl(350 75% 80%));
|
|
48
|
-
--danger-fg: light-dark(white, hsl(350 30% 12%));
|
|
49
|
-
--neutral: light-dark(hsl(260 10% 42%), hsl(260 18% 80%));
|
|
50
|
-
--neutral-fg: light-dark(white, hsl(260 30% 12%));
|
|
51
|
-
|
|
52
|
-
--surface: light-dark(hsl(260 45% 98%), hsl(260 18% 8%));
|
|
53
|
-
--surface-raised: light-dark(hsl(0 0% 100%), hsl(260 16% 11%));
|
|
54
|
-
--surface-subtle: light-dark(hsl(260 35% 94%), hsl(260 14% 16%));
|
|
55
|
-
--surface-solid: light-dark(hsl(260 30% 18%), hsl(0 0% 96%));
|
|
56
|
-
|
|
57
|
-
--text: light-dark(hsl(260 28% 15%), hsl(0 0% 96%));
|
|
58
|
-
--text-muted: light-dark(hsl(260 12% 43%), hsl(260 8% 68%));
|
|
59
|
-
--text-subtle: light-dark(hsl(260 10% 57%), hsl(260 7% 55%));
|
|
60
|
-
|
|
61
|
-
--border: light-dark(hsl(260 28% 85%), hsl(260 12% 24%));
|
|
62
|
-
--focus-ring: light-dark(hsl(258 70% 58% / 0.22), hsl(258 75% 80% / 0.28));
|
|
63
|
-
--hover-overlay: light-dark(hsl(220 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
|
|
64
|
-
--shadow-color: light-dark(hsl(260 45% 20%), hsl(260 40% 2%));
|
|
65
|
-
}
|
|
66
|
-
}
|
package/src/css/themes/mono.css
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
[data-theme="mono"] {
|
|
2
|
-
color-scheme: light dark;
|
|
3
|
-
|
|
4
|
-
--primary: hsl(220 8% 18%);
|
|
5
|
-
--primary-fg: white;
|
|
6
|
-
--secondary: hsl(220 7% 34%);
|
|
7
|
-
--secondary-fg: white;
|
|
8
|
-
--success: hsl(145 42% 32%);
|
|
9
|
-
--success-fg: white;
|
|
10
|
-
--warning: hsl(40 70% 44%);
|
|
11
|
-
--warning-fg: hsl(35 35% 10%);
|
|
12
|
-
--danger: hsl(0 56% 46%);
|
|
13
|
-
--danger-fg: white;
|
|
14
|
-
--neutral: hsl(220 6% 45%);
|
|
15
|
-
--neutral-fg: white;
|
|
16
|
-
|
|
17
|
-
--surface: hsl(0 0% 99%);
|
|
18
|
-
--surface-raised: hsl(0 0% 100%);
|
|
19
|
-
--surface-subtle: hsl(220 8% 94%);
|
|
20
|
-
--surface-solid: hsl(220 8% 15%);
|
|
21
|
-
|
|
22
|
-
--text: hsl(220 8% 12%);
|
|
23
|
-
--text-muted: hsl(220 6% 42%);
|
|
24
|
-
--text-subtle: hsl(220 5% 58%);
|
|
25
|
-
|
|
26
|
-
--border: hsl(220 8% 84%);
|
|
27
|
-
--focus: var(--primary);
|
|
28
|
-
--focus-ring: hsl(220 8% 18% / 0.22);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@supports (color: light-dark(red, blue)) {
|
|
32
|
-
[data-theme="mono"] {
|
|
33
|
-
--primary: light-dark(hsl(220 8% 18%), hsl(220 16% 80%));
|
|
34
|
-
--primary-fg: light-dark(white, hsl(220 30% 12%));
|
|
35
|
-
--secondary: light-dark(hsl(220 7% 34%), hsl(220 15% 80%));
|
|
36
|
-
--secondary-fg: light-dark(white, hsl(220 30% 12%));
|
|
37
|
-
--success: light-dark(hsl(145 42% 32%), hsl(145 50% 80%));
|
|
38
|
-
--success-fg: light-dark(white, hsl(145 30% 12%));
|
|
39
|
-
--warning: light-dark(hsl(40 70% 44%), hsl(40 75% 80%));
|
|
40
|
-
--warning-fg: light-dark(hsl(35 35% 10%), hsl(40 30% 12%));
|
|
41
|
-
--danger: light-dark(hsl(0 56% 46%), hsl(0 64% 80%));
|
|
42
|
-
--danger-fg: light-dark(white, hsl(0 30% 12%));
|
|
43
|
-
--neutral: light-dark(hsl(220 6% 45%), hsl(220 14% 80%));
|
|
44
|
-
--neutral-fg: light-dark(white, hsl(220 30% 12%));
|
|
45
|
-
|
|
46
|
-
--surface: light-dark(hsl(0 0% 99%), hsl(0 0% 8%));
|
|
47
|
-
--surface-raised: light-dark(hsl(0 0% 100%), hsl(0 0% 11%));
|
|
48
|
-
--surface-subtle: light-dark(hsl(220 8% 94%), hsl(0 0% 16%));
|
|
49
|
-
--surface-solid: light-dark(hsl(220 8% 15%), hsl(0 0% 96%));
|
|
50
|
-
|
|
51
|
-
--text: light-dark(hsl(220 8% 12%), hsl(0 0% 96%));
|
|
52
|
-
--text-muted: light-dark(hsl(220 6% 42%), hsl(0 0% 68%));
|
|
53
|
-
--text-subtle: light-dark(hsl(220 5% 58%), hsl(0 0% 55%));
|
|
54
|
-
|
|
55
|
-
--border: light-dark(hsl(220 8% 84%), hsl(0 0% 24%));
|
|
56
|
-
--focus-ring: light-dark(hsl(220 8% 18% / 0.22), hsl(220 16% 80% / 0.28));
|
|
57
|
-
--hover-overlay: light-dark(hsl(220 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
|
|
58
|
-
--shadow-color: light-dark(hsl(220 30% 10%), hsl(0 0% 0%));
|
|
59
|
-
}
|
|
60
|
-
}
|
package/src/css/themes/neon.css
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/* Neon — dark-only theme (single block, color-scheme: dark, same shape as
|
|
2
|
-
* indigo.css) that demonstrates wide-gamut progressive enhancement. The
|
|
3
|
-
* baseline block uses sRGB-safe hsl() and works everywhere indigo.css works;
|
|
4
|
-
* on P3 displays with oklch() support the intents are re-declared with chroma
|
|
5
|
-
* beyond sRGB. This is the pattern for shipping colors sRGB cannot express
|
|
6
|
-
* without breaking older screens or browsers. Also demonstrates the soft-variant
|
|
7
|
-
* tuning knobs and glow shadows on popovers. */
|
|
8
|
-
[data-theme="neon"] {
|
|
9
|
-
color-scheme: dark;
|
|
10
|
-
|
|
11
|
-
/* Electric intents over near-black: bright hues carry dark ink so solid
|
|
12
|
-
chips read as lit signs rather than white-on-color buttons. */
|
|
13
|
-
--primary: hsl(315 95% 62%);
|
|
14
|
-
--primary-fg: hsl(315 100% 8%);
|
|
15
|
-
--secondary: hsl(182 100% 46%);
|
|
16
|
-
--secondary-fg: hsl(182 100% 7%);
|
|
17
|
-
--success: hsl(135 85% 52%);
|
|
18
|
-
--success-fg: hsl(135 100% 6%);
|
|
19
|
-
--warning: hsl(55 95% 55%);
|
|
20
|
-
--warning-fg: hsl(55 100% 7%);
|
|
21
|
-
--danger: hsl(350 100% 64%);
|
|
22
|
-
--danger-fg: hsl(350 100% 8%);
|
|
23
|
-
--neutral: hsl(260 12% 76%);
|
|
24
|
-
--neutral-fg: hsl(260 25% 8%);
|
|
25
|
-
|
|
26
|
-
--surface: hsl(260 25% 6%);
|
|
27
|
-
--surface-raised: hsl(260 22% 9%);
|
|
28
|
-
--surface-subtle: hsl(260 20% 13%);
|
|
29
|
-
--surface-solid: hsl(0 0% 96%);
|
|
30
|
-
|
|
31
|
-
--text: hsl(0 0% 97%);
|
|
32
|
-
--text-muted: hsl(260 12% 70%);
|
|
33
|
-
--text-subtle: hsl(260 8% 55%);
|
|
34
|
-
|
|
35
|
-
--border: hsl(260 18% 24%);
|
|
36
|
-
--focus: var(--secondary);
|
|
37
|
-
--focus-ring: hsl(182 100% 46% / 0.35);
|
|
38
|
-
--hover-overlay: hsl(0 0% 100% / 0.07);
|
|
39
|
-
--shadow-color: hsl(260 60% 3%);
|
|
40
|
-
|
|
41
|
-
/* Neon tints: stronger soft surfaces and hovers than the default recipe,
|
|
42
|
-
so tinted chips glow against the near-black canvas. */
|
|
43
|
-
--soft-bg-mix: 80%;
|
|
44
|
-
--soft-border-mix: 45%;
|
|
45
|
-
--soft-hover-alpha: 20%;
|
|
46
|
-
|
|
47
|
-
/* Popovers and tooltips glow instead of dropping a shadow. */
|
|
48
|
-
--shadow-popout: 0 0 1rem hsl(315 95% 62% / 0.25);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/* Wide-gamut upgrade: chroma beyond sRGB on P3-capable displays. Both gates
|
|
52
|
-
are required — a P3 screen driven by an older browser keeps the hsl()
|
|
53
|
-
baseline above; -fg inks stay unchanged (near-black is gamut-safe). */
|
|
54
|
-
@media (color-gamut: p3) {
|
|
55
|
-
@supports (color: oklch(0% 0 0)) {
|
|
56
|
-
[data-theme="neon"] {
|
|
57
|
-
--primary: oklch(70% 0.32 340);
|
|
58
|
-
--secondary: oklch(85% 0.17 195);
|
|
59
|
-
--success: oklch(85% 0.28 148);
|
|
60
|
-
--warning: oklch(92% 0.2 105);
|
|
61
|
-
--danger: oklch(68% 0.26 15);
|
|
62
|
-
--focus-ring: oklch(85% 0.17 195 / 0.35);
|
|
63
|
-
--shadow-popout: 0 0 1rem oklch(70% 0.32 340 / 0.3);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
package/src/css/themes/ocean.css
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
[data-theme="ocean"] {
|
|
2
|
-
color-scheme: light dark;
|
|
3
|
-
|
|
4
|
-
--primary: hsl(198 82% 35%);
|
|
5
|
-
--primary-fg: white;
|
|
6
|
-
--secondary: hsl(174 58% 30%);
|
|
7
|
-
--secondary-fg: white;
|
|
8
|
-
--success: hsl(160 62% 30%);
|
|
9
|
-
--success-fg: white;
|
|
10
|
-
--warning: hsl(36 90% 50%);
|
|
11
|
-
--warning-fg: hsl(35 35% 12%);
|
|
12
|
-
--danger: hsl(350 70% 52%);
|
|
13
|
-
--danger-fg: white;
|
|
14
|
-
--neutral: hsl(205 12% 38%);
|
|
15
|
-
--neutral-fg: white;
|
|
16
|
-
|
|
17
|
-
--surface: hsl(200 50% 98%);
|
|
18
|
-
--surface-raised: hsl(0 0% 100%);
|
|
19
|
-
--surface-subtle: hsl(198 42% 94%);
|
|
20
|
-
--surface-solid: hsl(204 38% 16%);
|
|
21
|
-
|
|
22
|
-
--text: hsl(205 34% 14%);
|
|
23
|
-
--text-muted: hsl(205 12% 42%);
|
|
24
|
-
--text-subtle: hsl(205 10% 56%);
|
|
25
|
-
|
|
26
|
-
--border: hsl(198 30% 84%);
|
|
27
|
-
--focus: var(--primary);
|
|
28
|
-
--focus-ring: hsl(198 82% 35% / 0.22);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@supports (color: light-dark(red, blue)) {
|
|
32
|
-
[data-theme="ocean"] {
|
|
33
|
-
--primary: light-dark(hsl(198 82% 35%), hsl(198 75% 80%));
|
|
34
|
-
--primary-fg: light-dark(white, hsl(198 30% 12%));
|
|
35
|
-
--secondary: light-dark(hsl(174 58% 30%), hsl(174 66% 80%));
|
|
36
|
-
--secondary-fg: light-dark(white, hsl(174 30% 12%));
|
|
37
|
-
--success: light-dark(hsl(160 62% 30%), hsl(160 70% 80%));
|
|
38
|
-
--success-fg: light-dark(white, hsl(160 30% 12%));
|
|
39
|
-
--warning: light-dark(hsl(36 90% 50%), hsl(36 75% 80%));
|
|
40
|
-
--warning-fg: light-dark(hsl(35 35% 12%), hsl(36 30% 12%));
|
|
41
|
-
--danger: light-dark(hsl(350 70% 52%), hsl(350 75% 80%));
|
|
42
|
-
--danger-fg: light-dark(white, hsl(350 30% 12%));
|
|
43
|
-
--neutral: light-dark(hsl(205 12% 38%), hsl(205 20% 80%));
|
|
44
|
-
--neutral-fg: light-dark(white, hsl(205 30% 12%));
|
|
45
|
-
|
|
46
|
-
--surface: light-dark(hsl(200 50% 98%), hsl(200 18% 8%));
|
|
47
|
-
--surface-raised: light-dark(hsl(0 0% 100%), hsl(200 16% 11%));
|
|
48
|
-
--surface-subtle: light-dark(hsl(198 42% 94%), hsl(200 14% 16%));
|
|
49
|
-
--surface-solid: light-dark(hsl(204 38% 16%), hsl(0 0% 96%));
|
|
50
|
-
|
|
51
|
-
--text: light-dark(hsl(205 34% 14%), hsl(0 0% 96%));
|
|
52
|
-
--text-muted: light-dark(hsl(205 12% 42%), hsl(200 8% 68%));
|
|
53
|
-
--text-subtle: light-dark(hsl(205 10% 56%), hsl(200 7% 55%));
|
|
54
|
-
|
|
55
|
-
--border: light-dark(hsl(198 30% 84%), hsl(200 12% 24%));
|
|
56
|
-
--focus-ring: light-dark(hsl(198 82% 35% / 0.22), hsl(198 75% 80% / 0.28));
|
|
57
|
-
--hover-overlay: light-dark(hsl(220 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
|
|
58
|
-
--shadow-color: light-dark(hsl(220 30% 10%), hsl(0 0% 0%));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/* Petrol — desaturated petrol-blue primary with apricot secondary over cool
|
|
2
|
-
* blue-tinted neutrals. Paired light/dark via light-dark(). The most
|
|
3
|
-
* conventional of the bundled palettes: warm, highly legible, no semantic
|
|
4
|
-
* hue collisions. */
|
|
5
|
-
[data-theme="petrol"] {
|
|
6
|
-
color-scheme: light dark;
|
|
7
|
-
|
|
8
|
-
--primary: hsl(203 55% 30%);
|
|
9
|
-
--primary-fg: hsl(0 0% 98%);
|
|
10
|
-
--secondary: hsl(22 55% 47%);
|
|
11
|
-
--secondary-fg: hsl(0 0% 98%);
|
|
12
|
-
--success: hsl(155 45% 32%);
|
|
13
|
-
--success-fg: hsl(0 0% 98%);
|
|
14
|
-
--warning: hsl(38 70% 36%);
|
|
15
|
-
--warning-fg: hsl(0 0% 98%);
|
|
16
|
-
--danger: hsl(357 55% 45%);
|
|
17
|
-
--danger-fg: hsl(0 0% 98%);
|
|
18
|
-
--neutral: hsl(210 8% 43%);
|
|
19
|
-
--neutral-fg: hsl(0 0% 98%);
|
|
20
|
-
|
|
21
|
-
--surface: hsl(0 0% 100%);
|
|
22
|
-
--surface-raised: hsl(204 30% 98%);
|
|
23
|
-
--surface-subtle: hsl(204 25% 96%);
|
|
24
|
-
--surface-solid: hsl(207 25% 12%);
|
|
25
|
-
|
|
26
|
-
--text: hsl(207 25% 12%);
|
|
27
|
-
--text-muted: hsl(206 9% 42%);
|
|
28
|
-
--text-subtle: hsl(205 7% 57%);
|
|
29
|
-
|
|
30
|
-
--border: hsl(205 15% 87%);
|
|
31
|
-
--focus: var(--primary);
|
|
32
|
-
--focus-ring: hsl(203 55% 30% / 0.22);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@supports (color: light-dark(red, blue)) {
|
|
36
|
-
[data-theme="petrol"] {
|
|
37
|
-
--primary: light-dark(hsl(203 55% 30%), hsl(202 55% 72%));
|
|
38
|
-
--primary-fg: light-dark(hsl(0 0% 98%), hsl(204 40% 10%));
|
|
39
|
-
--secondary: light-dark(hsl(22 55% 47%), hsl(24 55% 70%));
|
|
40
|
-
--secondary-fg: light-dark(hsl(0 0% 98%), hsl(24 35% 11%));
|
|
41
|
-
--success: light-dark(hsl(155 45% 32%), hsl(155 40% 60%));
|
|
42
|
-
--success-fg: light-dark(hsl(0 0% 98%), hsl(155 35% 8%));
|
|
43
|
-
--warning: light-dark(hsl(38 70% 36%), hsl(40 62% 63%));
|
|
44
|
-
--warning-fg: light-dark(hsl(0 0% 98%), hsl(38 35% 10%));
|
|
45
|
-
--danger: light-dark(hsl(357 55% 45%), hsl(357 58% 70%));
|
|
46
|
-
--danger-fg: light-dark(hsl(0 0% 98%), hsl(357 35% 10%));
|
|
47
|
-
--neutral: light-dark(hsl(210 8% 43%), hsl(208 10% 71%));
|
|
48
|
-
--neutral-fg: light-dark(hsl(0 0% 98%), hsl(208 18% 10%));
|
|
49
|
-
|
|
50
|
-
--surface: light-dark(hsl(0 0% 100%), hsl(206 22% 9%));
|
|
51
|
-
--surface-raised: light-dark(hsl(204 30% 98%), hsl(206 19% 12%));
|
|
52
|
-
--surface-subtle: light-dark(hsl(204 25% 96%), hsl(206 15% 16%));
|
|
53
|
-
--surface-solid: light-dark(hsl(207 25% 12%), hsl(0 0% 96%));
|
|
54
|
-
|
|
55
|
-
--text: light-dark(hsl(207 25% 12%), hsl(205 12% 95%));
|
|
56
|
-
--text-muted: light-dark(hsl(206 9% 42%), hsl(205 8% 67%));
|
|
57
|
-
--text-subtle: light-dark(hsl(205 7% 57%), hsl(205 7% 53%));
|
|
58
|
-
|
|
59
|
-
--border: light-dark(hsl(205 15% 87%), hsl(206 12% 24%));
|
|
60
|
-
--focus-ring: light-dark(hsl(203 55% 30% / 0.22), hsl(202 55% 72% / 0.28));
|
|
61
|
-
--hover-overlay: light-dark(hsl(207 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
|
|
62
|
-
--shadow-color: light-dark(hsl(207 30% 10%), hsl(0 0% 0%));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/* Spruce — deep spruce-green primary with copper secondary over sea-green
|
|
2
|
-
* tinted neutrals. Paired light/dark via light-dark(). The green primary is
|
|
3
|
-
* deliberately far from success in hue (174 vs 135) and saturation so the two
|
|
4
|
-
* never read as the same signal; keep that split when adjusting either. */
|
|
5
|
-
[data-theme="spruce"] {
|
|
6
|
-
color-scheme: light dark;
|
|
7
|
-
|
|
8
|
-
--primary: hsl(174 45% 24%);
|
|
9
|
-
--primary-fg: hsl(160 30% 97%);
|
|
10
|
-
--secondary: hsl(24 48% 42%);
|
|
11
|
-
--secondary-fg: hsl(0 0% 98%);
|
|
12
|
-
--success: hsl(135 38% 33%);
|
|
13
|
-
--success-fg: hsl(0 0% 98%);
|
|
14
|
-
--warning: hsl(42 72% 35%);
|
|
15
|
-
--warning-fg: hsl(0 0% 98%);
|
|
16
|
-
--danger: hsl(3 55% 44%);
|
|
17
|
-
--danger-fg: hsl(0 0% 98%);
|
|
18
|
-
--neutral: hsl(185 8% 40%);
|
|
19
|
-
--neutral-fg: hsl(0 0% 98%);
|
|
20
|
-
|
|
21
|
-
--surface: hsl(0 0% 100%);
|
|
22
|
-
--surface-raised: hsl(160 20% 98%);
|
|
23
|
-
--surface-subtle: hsl(168 18% 95%);
|
|
24
|
-
--surface-solid: hsl(185 25% 11%);
|
|
25
|
-
|
|
26
|
-
--text: hsl(185 25% 11%);
|
|
27
|
-
--text-muted: hsl(183 9% 40%);
|
|
28
|
-
--text-subtle: hsl(182 7% 55%);
|
|
29
|
-
|
|
30
|
-
--border: hsl(170 12% 86%);
|
|
31
|
-
--focus: var(--primary);
|
|
32
|
-
--focus-ring: hsl(174 45% 24% / 0.22);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@supports (color: light-dark(red, blue)) {
|
|
36
|
-
[data-theme="spruce"] {
|
|
37
|
-
--primary: light-dark(hsl(174 45% 24%), hsl(170 35% 66%));
|
|
38
|
-
--primary-fg: light-dark(hsl(160 30% 97%), hsl(174 40% 9%));
|
|
39
|
-
--secondary: light-dark(hsl(24 48% 42%), hsl(26 50% 70%));
|
|
40
|
-
--secondary-fg: light-dark(hsl(0 0% 98%), hsl(26 35% 11%));
|
|
41
|
-
--success: light-dark(hsl(135 38% 33%), hsl(135 35% 60%));
|
|
42
|
-
--success-fg: light-dark(hsl(0 0% 98%), hsl(135 35% 8%));
|
|
43
|
-
--warning: light-dark(hsl(42 72% 35%), hsl(44 60% 62%));
|
|
44
|
-
--warning-fg: light-dark(hsl(0 0% 98%), hsl(42 35% 10%));
|
|
45
|
-
--danger: light-dark(hsl(3 55% 44%), hsl(3 58% 69%));
|
|
46
|
-
--danger-fg: light-dark(hsl(0 0% 98%), hsl(3 35% 10%));
|
|
47
|
-
--neutral: light-dark(hsl(185 8% 40%), hsl(183 10% 70%));
|
|
48
|
-
--neutral-fg: light-dark(hsl(0 0% 98%), hsl(185 18% 10%));
|
|
49
|
-
|
|
50
|
-
--surface: light-dark(hsl(0 0% 100%), hsl(182 20% 8%));
|
|
51
|
-
--surface-raised: light-dark(hsl(160 20% 98%), hsl(182 17% 11%));
|
|
52
|
-
--surface-subtle: light-dark(hsl(168 18% 95%), hsl(182 14% 15%));
|
|
53
|
-
--surface-solid: light-dark(hsl(185 25% 11%), hsl(0 0% 96%));
|
|
54
|
-
|
|
55
|
-
--text: light-dark(hsl(185 25% 11%), hsl(175 12% 94%));
|
|
56
|
-
--text-muted: light-dark(hsl(183 9% 40%), hsl(180 8% 66%));
|
|
57
|
-
--text-subtle: light-dark(hsl(182 7% 55%), hsl(180 7% 52%));
|
|
58
|
-
|
|
59
|
-
--border: light-dark(hsl(170 12% 86%), hsl(182 12% 23%));
|
|
60
|
-
--focus-ring: light-dark(hsl(174 45% 24% / 0.22), hsl(170 35% 66% / 0.28));
|
|
61
|
-
--hover-overlay: light-dark(hsl(185 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
|
|
62
|
-
--shadow-color: light-dark(hsl(185 30% 10%), hsl(0 0% 0%));
|
|
63
|
-
}
|
|
64
|
-
}
|