@cascivo/themes 0.2.1 → 0.2.2
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 +5 -1
- package/package.json +5 -3
- package/readme.body.md +4 -0
- package/src/arcade.css +186 -0
- package/src/brutalist.css +7 -0
- package/src/corporate.css +7 -0
- package/src/cyberpunk.css +7 -0
- package/src/dark.css +7 -0
- package/src/flat.css +7 -0
- package/src/light.css +7 -0
- package/src/midnight.css +7 -0
- package/src/minimal.css +7 -0
- package/src/pastel.css +7 -0
- package/src/terminal.css +7 -0
- package/src/warm.css +7 -0
package/README.md
CHANGED
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
# @cascivo/themes
|
|
4
4
|
|
|
5
|
-
> First-party cascivo themes: light, dark, warm, flat, minimal, midnight, pastel, brutalist, corporate, terminal, cyberpunk
|
|
5
|
+
> First-party cascivo themes: light, dark, warm, flat, minimal, midnight, pastel, brutalist, corporate, terminal, cyberpunk, arcade
|
|
6
6
|
|
|
7
7
|
[cascivo.com](https://cascivo.com) · [Docs](https://docs.cascivo.com) · [Storybook](https://storybook.cascivo.com) · [GitHub](https://github.com/urbanisierung/cascivo)
|
|
8
8
|
|
|
9
9
|
First-party themes for cascade — `light.css`, `dark.css`, `warm.css`, and more. Apply via `data-theme` on any container; themes override the semantic token layer only, leaving component and primitive tokens unchanged.
|
|
10
10
|
|
|
11
|
+
## Per-theme fonts
|
|
12
|
+
|
|
13
|
+
A theme can carry its own **display** (headline/brand) face via `--cascivo-font-display`. The token defaults to `var(--cascivo-font-sans)` (so themes that don't override it look unchanged) and is declared in every theme to keep token parity. The `Heading` component renders in the display face, so an override is visible wherever headings appear — e.g. `terminal` maps it to the mono stack and `brutalist` to a heavy grotesk. `--cascivo-font-sans`/`-mono` remain the global body/code defaults.
|
|
14
|
+
|
|
11
15
|
## Install
|
|
12
16
|
|
|
13
17
|
```sh
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cascivo/themes",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "First-party cascivo themes: light, dark, warm, flat, minimal, midnight, pastel, brutalist, corporate, terminal, cyberpunk",
|
|
5
|
+
"description": "First-party cascivo themes: light, dark, warm, flat, minimal, midnight, pastel, brutalist, corporate, terminal, cyberpunk, arcade",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"cascivo",
|
|
8
8
|
"css",
|
|
@@ -52,7 +52,9 @@
|
|
|
52
52
|
"./terminal": "./src/terminal.css",
|
|
53
53
|
"./terminal.css": "./src/terminal.css",
|
|
54
54
|
"./cyberpunk": "./src/cyberpunk.css",
|
|
55
|
-
"./cyberpunk.css": "./src/cyberpunk.css"
|
|
55
|
+
"./cyberpunk.css": "./src/cyberpunk.css",
|
|
56
|
+
"./arcade": "./src/arcade.css",
|
|
57
|
+
"./arcade.css": "./src/arcade.css"
|
|
56
58
|
},
|
|
57
59
|
"publishConfig": {
|
|
58
60
|
"access": "public",
|
package/readme.body.md
CHANGED
|
@@ -1 +1,5 @@
|
|
|
1
1
|
First-party themes for cascade — `light.css`, `dark.css`, `warm.css`, and more. Apply via `data-theme` on any container; themes override the semantic token layer only, leaving component and primitive tokens unchanged.
|
|
2
|
+
|
|
3
|
+
## Per-theme fonts
|
|
4
|
+
|
|
5
|
+
A theme can carry its own **display** (headline/brand) face via `--cascivo-font-display`. The token defaults to `var(--cascivo-font-sans)` (so themes that don't override it look unchanged) and is declared in every theme to keep token parity. The `Heading` component renders in the display face, so an override is visible wherever headings appear — e.g. `terminal` maps it to the mono stack and `brutalist` to a heavy grotesk. `--cascivo-font-sans`/`-mono` remain the global body/code defaults.
|
package/src/arcade.css
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/* cascivo — Arcade Theme */
|
|
2
|
+
/* 8-bit / pixel-arcade: bright cool paper, coin-op red, electric blue, zero radius, hard shadows, pixel display font */
|
|
3
|
+
|
|
4
|
+
@import '@cascivo/tokens';
|
|
5
|
+
|
|
6
|
+
@layer cascivo.theme {
|
|
7
|
+
[data-theme='arcade'] {
|
|
8
|
+
color-scheme: light;
|
|
9
|
+
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.5;
|
|
12
|
+
--cascivo-hover-opacity: 0.8;
|
|
13
|
+
|
|
14
|
+
/* ── Typography — pixel display face ──────────── */
|
|
15
|
+
--cascivo-font-display: 'Press Start 2P', 'Courier New', ui-monospace, monospace;
|
|
16
|
+
|
|
17
|
+
/* ── Surface ──────────────────────────────────────── */
|
|
18
|
+
--cascivo-color-background: oklch(0.96 0.008 250);
|
|
19
|
+
--cascivo-color-surface: oklch(1 0 0);
|
|
20
|
+
--cascivo-color-surface-2: oklch(0.93 0.012 250);
|
|
21
|
+
--cascivo-color-bg: var(--cascivo-color-background);
|
|
22
|
+
--cascivo-color-bg-subtle: var(--cascivo-color-surface);
|
|
23
|
+
--cascivo-color-surface-raised: var(--cascivo-color-surface);
|
|
24
|
+
--cascivo-color-surface-overlay: oklch(1 0 0);
|
|
25
|
+
--cascivo-color-border: oklch(0.15 0.02 265);
|
|
26
|
+
--cascivo-color-border-strong: oklch(0.08 0.02 265);
|
|
27
|
+
--cascivo-border-subtle: oklch(0.32 0.02 265);
|
|
28
|
+
--cascivo-border-default: oklch(0.15 0.02 265);
|
|
29
|
+
--cascivo-border-strong: oklch(0.08 0.02 265);
|
|
30
|
+
|
|
31
|
+
/* ── Text ─────────────────────────────────────────── */
|
|
32
|
+
--cascivo-color-foreground: oklch(0.16 0.02 265);
|
|
33
|
+
--cascivo-color-foreground-muted: oklch(0.4 0.02 265);
|
|
34
|
+
--cascivo-color-text: var(--cascivo-color-foreground);
|
|
35
|
+
--cascivo-color-text-subtle: var(--cascivo-color-foreground-muted);
|
|
36
|
+
--cascivo-color-text-muted: oklch(0.52 0.02 265);
|
|
37
|
+
--cascivo-color-text-on-accent: oklch(0.98 0 0);
|
|
38
|
+
--cascivo-color-text-on-destructive: oklch(0.98 0 0);
|
|
39
|
+
|
|
40
|
+
/* ── Accent — coin-op red ─────────────────────────── */
|
|
41
|
+
--cascivo-color-accent: oklch(0.55 0.22 27);
|
|
42
|
+
--cascivo-color-accent-foreground: oklch(0.98 0 0);
|
|
43
|
+
--cascivo-color-accent-hover: oklch(0.49 0.23 27);
|
|
44
|
+
--cascivo-color-accent-active: oklch(0.44 0.23 27);
|
|
45
|
+
--cascivo-color-accent-subtle: oklch(0.55 0.22 27 / 0.12);
|
|
46
|
+
--cascivo-color-accent-muted: oklch(0.55 0.22 27 / 0.2);
|
|
47
|
+
|
|
48
|
+
/* ── Primary — accent-mapped ─────────────────────── */
|
|
49
|
+
--cascivo-color-primary: var(--cascivo-color-accent);
|
|
50
|
+
--cascivo-color-primary-fg: oklch(0.98 0 0);
|
|
51
|
+
--cascivo-color-primary-hover: var(--cascivo-color-accent-hover);
|
|
52
|
+
--cascivo-color-primary-active: var(--cascivo-color-accent-active);
|
|
53
|
+
--cascivo-color-active-bg: oklch(0.55 0.22 27 / 0.12);
|
|
54
|
+
|
|
55
|
+
/* ── Destructive ──────────────────────────────────── */
|
|
56
|
+
--cascivo-color-destructive: oklch(0.52 0.24 25);
|
|
57
|
+
--cascivo-color-destructive-hover: oklch(0.46 0.24 25);
|
|
58
|
+
--cascivo-color-destructive-subtle: oklch(0.95 0.05 25);
|
|
59
|
+
|
|
60
|
+
/* ── Semantic status colors ───────────────────────── */
|
|
61
|
+
--cascivo-color-error: oklch(0.52 0.24 25);
|
|
62
|
+
--cascivo-color-warning: oklch(0.68 0.17 75);
|
|
63
|
+
--cascivo-color-success: oklch(0.54 0.18 145);
|
|
64
|
+
--cascivo-color-success-subtle: oklch(0.95 0.05 145);
|
|
65
|
+
--cascivo-color-warning-subtle: oklch(0.96 0.06 75);
|
|
66
|
+
--cascivo-color-info: oklch(0.5 0.2 250);
|
|
67
|
+
--cascivo-color-info-subtle: oklch(0.95 0.05 250);
|
|
68
|
+
--cascivo-color-success-foreground: oklch(0.54 0.18 145);
|
|
69
|
+
--cascivo-color-warning-foreground: oklch(0.5 0.15 75);
|
|
70
|
+
--cascivo-color-destructive-foreground: oklch(0.42 0.22 25);
|
|
71
|
+
|
|
72
|
+
/* ── Radius — zero (pixel-blocky) ─────────────────── */
|
|
73
|
+
--cascivo-radius-base: 0;
|
|
74
|
+
--cascivo-radius-control: 0;
|
|
75
|
+
--cascivo-radius-surface: 0;
|
|
76
|
+
--cascivo-radius-indicator: 0;
|
|
77
|
+
--cascivo-radius-full: 0;
|
|
78
|
+
--cascivo-radius-component: 0;
|
|
79
|
+
--cascivo-radius-button: 0;
|
|
80
|
+
--cascivo-radius-input: 0;
|
|
81
|
+
--cascivo-radius-card: 0;
|
|
82
|
+
--cascivo-radius-badge: 0;
|
|
83
|
+
--cascivo-radius-modal: 0;
|
|
84
|
+
|
|
85
|
+
/* ── Shadows — hard offset, no blur ─────────────── */
|
|
86
|
+
--cascivo-shadow-xs: 1px 1px 0 oklch(0.15 0.02 265);
|
|
87
|
+
--cascivo-shadow-sm: 2px 2px 0 oklch(0.15 0.02 265);
|
|
88
|
+
--cascivo-shadow-md: 4px 4px 0 oklch(0.15 0.02 265);
|
|
89
|
+
--cascivo-shadow-overlay: 6px 6px 0 oklch(0.15 0.02 265);
|
|
90
|
+
--cascivo-shadow-lg: var(--cascivo-shadow-overlay);
|
|
91
|
+
|
|
92
|
+
/* ── Focus ring — electric blue ──────────────────── */
|
|
93
|
+
--cascivo-ring-width: 3px;
|
|
94
|
+
--cascivo-ring-offset: 2px;
|
|
95
|
+
--cascivo-ring-color: oklch(0.5 0.2 250);
|
|
96
|
+
--cascivo-color-focus-ring: oklch(0.5 0.2 250);
|
|
97
|
+
--cascivo-focus-ring: 0 0 0 var(--cascivo-ring-width) var(--cascivo-ring-color);
|
|
98
|
+
|
|
99
|
+
/* ── Chart overrides (CVD-safe ramp, reused from brutalist) ── */
|
|
100
|
+
--cascivo-chart-1: oklch(0.64 0.18 70);
|
|
101
|
+
--cascivo-chart-2: oklch(0.62 0.16 240);
|
|
102
|
+
--cascivo-chart-3: oklch(0.6 0.18 135);
|
|
103
|
+
--cascivo-chart-4: oklch(0.6 0.2 55);
|
|
104
|
+
--cascivo-chart-5: oklch(0.45 0.18 250);
|
|
105
|
+
--cascivo-chart-6: oklch(0.55 0.22 40);
|
|
106
|
+
--cascivo-chart-7: oklch(0.6 0.17 350);
|
|
107
|
+
--cascivo-chart-8: oklch(0.48 0.1 200);
|
|
108
|
+
--cascivo-chart-grid: oklch(0.72 0.005 250);
|
|
109
|
+
--cascivo-chart-axis: oklch(0.3 0.01 265);
|
|
110
|
+
|
|
111
|
+
/* ── -content tokens (foreground ≥4.5:1 on paired background) ── */
|
|
112
|
+
--cascivo-color-primary-content: var(--cascivo-color-primary-fg);
|
|
113
|
+
--cascivo-color-accent-content: var(--cascivo-color-text-on-accent);
|
|
114
|
+
--cascivo-color-destructive-content: var(--cascivo-color-text-on-destructive);
|
|
115
|
+
--cascivo-color-info-content: oklch(0.98 0 0);
|
|
116
|
+
--cascivo-color-success-content: oklch(0.98 0 0);
|
|
117
|
+
--cascivo-color-warning-content: oklch(0.145 0 0);
|
|
118
|
+
--cascivo-color-error-content: oklch(0.98 0 0);
|
|
119
|
+
|
|
120
|
+
/* ── Secondary color role — electric blue ────────── */
|
|
121
|
+
--cascivo-color-secondary: oklch(0.5 0.2 250);
|
|
122
|
+
--cascivo-color-secondary-content: oklch(0.98 0 0);
|
|
123
|
+
--cascivo-color-secondary-hover: oklch(0.44 0.21 250);
|
|
124
|
+
--cascivo-color-secondary-subtle: oklch(0.5 0.2 250 / 0.12);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* ── Opt-in signature effects ───────────────────────── */
|
|
128
|
+
/* These never fire unless a consumer opts in via a marker class, so arbitrary */
|
|
129
|
+
/* components stay calm. Each declares its static look first, then layers the */
|
|
130
|
+
/* animation as enhancement; all are disabled under prefers-reduced-motion. */
|
|
131
|
+
|
|
132
|
+
/* Scanline / CRT overlay — dark lines for the light arcade base */
|
|
133
|
+
[data-theme='arcade'] .cascivo-arcade-scanline {
|
|
134
|
+
position: relative;
|
|
135
|
+
}
|
|
136
|
+
[data-theme='arcade'] .cascivo-arcade-scanline::after {
|
|
137
|
+
content: '';
|
|
138
|
+
position: absolute;
|
|
139
|
+
inset: 0;
|
|
140
|
+
z-index: 1;
|
|
141
|
+
pointer-events: none;
|
|
142
|
+
background: repeating-linear-gradient(
|
|
143
|
+
to bottom,
|
|
144
|
+
oklch(0.15 0.02 265 / 0.07) 0,
|
|
145
|
+
oklch(0.15 0.02 265 / 0.07) 1px,
|
|
146
|
+
transparent 1px,
|
|
147
|
+
transparent 3px
|
|
148
|
+
);
|
|
149
|
+
mix-blend-mode: multiply;
|
|
150
|
+
animation: cascivo-arcade-scanline 8s linear infinite;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* Insert-coin blink — hard 8-bit on/off blink. Static look is fully lit
|
|
154
|
+
(the value used when the animation is unsupported or reduced-motion). */
|
|
155
|
+
[data-theme='arcade'] .cascivo-arcade-blink {
|
|
156
|
+
opacity: 1;
|
|
157
|
+
animation: cascivo-arcade-blink 1.06s steps(1, jump-end) infinite;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
@keyframes cascivo-arcade-scanline {
|
|
161
|
+
from {
|
|
162
|
+
background-position-y: 0;
|
|
163
|
+
}
|
|
164
|
+
to {
|
|
165
|
+
background-position-y: 3px;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@keyframes cascivo-arcade-blink {
|
|
170
|
+
0%,
|
|
171
|
+
50% {
|
|
172
|
+
opacity: 1;
|
|
173
|
+
}
|
|
174
|
+
50.01%,
|
|
175
|
+
100% {
|
|
176
|
+
opacity: 0.15;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@media (prefers-reduced-motion: reduce) {
|
|
181
|
+
[data-theme='arcade'] .cascivo-arcade-scanline::after,
|
|
182
|
+
[data-theme='arcade'] .cascivo-arcade-blink {
|
|
183
|
+
animation: none;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
package/src/brutalist.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='brutalist'] {
|
|
8
8
|
color-scheme: light;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.6;
|
|
12
|
+
--cascivo-hover-opacity: 0.85;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: 'Arial Black', 'Helvetica Neue', ui-sans-serif, sans-serif;
|
|
16
|
+
|
|
10
17
|
/* ── Surface ──────────────────────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(0.97 0.02 95);
|
|
12
19
|
--cascivo-color-surface: oklch(1 0 0);
|
package/src/corporate.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='corporate'] {
|
|
8
8
|
color-scheme: light;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.5;
|
|
12
|
+
--cascivo-hover-opacity: 0.8;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
16
|
+
|
|
10
17
|
/* ── Surface ──────────────────────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(0.99 0.003 250);
|
|
12
19
|
--cascivo-color-surface: oklch(0.97 0.004 250);
|
package/src/cyberpunk.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='cyberpunk'] {
|
|
8
8
|
color-scheme: dark;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.55;
|
|
12
|
+
--cascivo-hover-opacity: 0.75;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
16
|
+
|
|
10
17
|
/* ── Surface ──────────────────────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(0.16 0.03 285);
|
|
12
19
|
--cascivo-color-surface: oklch(0.2 0.035 285);
|
package/src/dark.css
CHANGED
|
@@ -8,6 +8,13 @@
|
|
|
8
8
|
[data-theme='dark'] {
|
|
9
9
|
color-scheme: dark;
|
|
10
10
|
|
|
11
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
12
|
+
--cascivo-disabled-opacity: 0.5;
|
|
13
|
+
--cascivo-hover-opacity: 0.8;
|
|
14
|
+
|
|
15
|
+
/* ── Typography ───────────── */
|
|
16
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
17
|
+
|
|
11
18
|
/* ── Surface ──────────────────────────────────────── */
|
|
12
19
|
--cascivo-color-background: oklch(0.145 0.005 250);
|
|
13
20
|
--cascivo-color-surface: oklch(0.185 0.007 250);
|
package/src/flat.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='flat'] {
|
|
8
8
|
color-scheme: light;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.5;
|
|
12
|
+
--cascivo-hover-opacity: 0.8;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
16
|
+
|
|
10
17
|
/* ── Surface ──────────────────────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(1 0 0);
|
|
12
19
|
--cascivo-color-surface: oklch(0.97 0 0);
|
package/src/light.css
CHANGED
|
@@ -9,6 +9,13 @@
|
|
|
9
9
|
:root:not([data-theme]) {
|
|
10
10
|
color-scheme: light;
|
|
11
11
|
|
|
12
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
13
|
+
--cascivo-disabled-opacity: 0.5;
|
|
14
|
+
--cascivo-hover-opacity: 0.8;
|
|
15
|
+
|
|
16
|
+
/* ── Typography ───────────── */
|
|
17
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
18
|
+
|
|
12
19
|
/* ── Surface ──────────────────────────────────────── */
|
|
13
20
|
--cascivo-color-background: oklch(1 0 0);
|
|
14
21
|
--cascivo-color-surface: oklch(0.985 0.002 264);
|
package/src/midnight.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='midnight'] {
|
|
8
8
|
color-scheme: dark;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.5;
|
|
12
|
+
--cascivo-hover-opacity: 0.8;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
16
|
+
|
|
10
17
|
/* ── Surface ──────────────────────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(0.16 0.02 280);
|
|
12
19
|
--cascivo-color-surface: oklch(0.2 0.025 280);
|
package/src/minimal.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='minimal'] {
|
|
8
8
|
color-scheme: light;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.5;
|
|
12
|
+
--cascivo-hover-opacity: 0.8;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
16
|
+
|
|
10
17
|
/* ── Surface — warm off-white ─────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(0.98 0.005 80);
|
|
12
19
|
--cascivo-color-surface: oklch(0.965 0.006 80);
|
package/src/pastel.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='pastel'] {
|
|
8
8
|
color-scheme: light;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.5;
|
|
12
|
+
--cascivo-hover-opacity: 0.8;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
16
|
+
|
|
10
17
|
/* ── Surface ──────────────────────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(0.99 0.01 330);
|
|
12
19
|
--cascivo-color-surface: oklch(0.975 0.013 330);
|
package/src/terminal.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='terminal'] {
|
|
8
8
|
color-scheme: dark;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.5;
|
|
12
|
+
--cascivo-hover-opacity: 0.75;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: var(--cascivo-font-mono);
|
|
16
|
+
|
|
10
17
|
/* ── Surface ──────────────────────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(0.17 0.01 150);
|
|
12
19
|
--cascivo-color-surface: oklch(0.21 0.012 150);
|
package/src/warm.css
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
[data-theme='warm'] {
|
|
8
8
|
color-scheme: light;
|
|
9
9
|
|
|
10
|
+
/* ── Interaction state (HeroUI parity) ── */
|
|
11
|
+
--cascivo-disabled-opacity: 0.5;
|
|
12
|
+
--cascivo-hover-opacity: 0.8;
|
|
13
|
+
|
|
14
|
+
/* ── Typography ───────────── */
|
|
15
|
+
--cascivo-font-display: var(--cascivo-font-sans);
|
|
16
|
+
|
|
10
17
|
/* ── Surface ──────────────────────────────────────── */
|
|
11
18
|
--cascivo-color-background: oklch(0.995 0.006 80);
|
|
12
19
|
--cascivo-color-surface: oklch(0.975 0.01 80);
|