@ropav/styles 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.
Files changed (62) hide show
  1. package/README.md +155 -19
  2. package/dist/components/accordion.css +7 -0
  3. package/dist/components/alert.css +8 -0
  4. package/dist/components/autocomplete.css +8 -0
  5. package/dist/components/avatar.css +9 -0
  6. package/dist/components/badge.css +7 -0
  7. package/dist/components/button.css +27 -0
  8. package/dist/components/calendar-year-picker.css +1 -0
  9. package/dist/components/calendar.css +8 -0
  10. package/dist/components/card.css +21 -0
  11. package/dist/components/chip.css +21 -0
  12. package/dist/components/close-button.css +8 -0
  13. package/dist/components/color-input-group.css +9 -0
  14. package/dist/components/color-swatch-picker.css +11 -0
  15. package/dist/components/date-input-group.css +9 -0
  16. package/dist/components/dropdown/dropdown.styles.d.ts.map +1 -1
  17. package/dist/components/dropdown/dropdown.styles.js +1 -1
  18. package/dist/components/dropdown.css +16 -11
  19. package/dist/components/input-group.css +9 -0
  20. package/dist/components/input.css +10 -0
  21. package/dist/components/menu.css +6 -0
  22. package/dist/components/meter.css +12 -0
  23. package/dist/components/number-field.css +8 -0
  24. package/dist/components/pagination.css +4 -0
  25. package/dist/components/progress-bar.css +12 -0
  26. package/dist/components/progress-circle.css +12 -0
  27. package/dist/components/radio.css +7 -0
  28. package/dist/components/range-calendar.css +28 -0
  29. package/dist/components/search-field.css +8 -0
  30. package/dist/components/select.css +9 -0
  31. package/dist/components/separator.css +18 -1
  32. package/dist/components/skeleton.css +9 -0
  33. package/dist/components/slider.css +61 -0
  34. package/dist/components/surface.css +24 -0
  35. package/dist/components/switch.css +30 -0
  36. package/dist/components/table.css +8 -0
  37. package/dist/components/tabs.css +28 -0
  38. package/dist/components/tag.css +10 -0
  39. package/dist/components/textarea.css +10 -0
  40. package/dist/components/toggle-button.css +10 -0
  41. package/dist/components/toolbar.css +7 -0
  42. package/dist/components/typography.css +21 -0
  43. package/dist/index.css +7 -2
  44. package/dist/ropav.min.css +1 -1
  45. package/dist/themes/airbnb.css +226 -0
  46. package/dist/themes/all.css +16 -0
  47. package/dist/themes/coinbase.css +226 -0
  48. package/dist/themes/{default/variables.css → default.css} +12 -5
  49. package/dist/themes/discord.css +226 -0
  50. package/dist/themes/lavender.css +226 -0
  51. package/dist/themes/mint.css +226 -0
  52. package/dist/themes/netflix.css +226 -0
  53. package/dist/themes/rabbit.css +226 -0
  54. package/dist/themes/sky.css +226 -0
  55. package/dist/themes/spotify.css +226 -0
  56. package/dist/themes/uber.css +226 -0
  57. package/dist/utilities/index.css +70 -0
  58. package/dist/variants/index.css +5 -15
  59. package/package.json +2 -3
  60. package/src/components/dropdown/dropdown.styles.ts +3 -1
  61. package/dist/themes/default/components/index.css +0 -6
  62. package/dist/themes/default/index.css +0 -8
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Airbnb theme — GENERATED, do not edit by hand.
3
+ *
4
+ * Run `pnpm generate:themes` after changing `scripts/themes/presets.ts`.
5
+ * Seed values: lightness 0.6579, chroma 0.2309, hue 17.07, base 0.
6
+ *
7
+ * The `theme` layer is declared inside this file, so it can be imported with or without a
8
+ * `layer()` wrapper:
9
+ *
10
+ * @import "@ropav/styles";
11
+ * @import "@ropav/styles/themes/airbnb.css";
12
+ *
13
+ * Light is the default; dark needs the `dark` class alongside the attribute:
14
+ * <html data-theme="airbnb"> light
15
+ * <html data-theme="airbnb" class="dark"> dark
16
+ */
17
+
18
+ @layer theme {
19
+ [data-theme="airbnb"] {
20
+ color-scheme: light;
21
+
22
+ --field-radius: 0.75rem;
23
+ --radius: 0.5rem;
24
+
25
+ /* Base Colors */
26
+ --background: oklch(97.02% 0 17.07);
27
+ --foreground: oklch(21.03% 0 17.07);
28
+
29
+ /* Surfaces */
30
+ --overlay: oklch(100% 0 17.07);
31
+ --overlay-foreground: oklch(21.03% 0 17.07);
32
+ --surface: oklch(100% 0 17.07);
33
+ --surface-foreground: oklch(21.03% 0 17.07);
34
+ --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
35
+ --surface-secondary: oklch(95.24% 0 17.07);
36
+ --surface-secondary-foreground: oklch(21.03% 0 17.07);
37
+ --surface-tertiary: oklch(93.73% 0 17.07);
38
+ --surface-tertiary-foreground: oklch(21.03% 0 17.07);
39
+
40
+ /* Muted and scrollbar */
41
+ --muted: oklch(51.6% 0 17.07);
42
+ --scrollbar: var(--scrollbar-thumb);
43
+ --scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
44
+ --scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
45
+
46
+ /* Default */
47
+ --default: oklch(94% 0 17.07);
48
+ --default-foreground: oklch(21.03% 0.0059 17.07);
49
+ --default-hover: color-mix(in oklab, var(--default) 96%, var(--default-foreground) 4%);
50
+ --default-soft: color-mix(in oklab, var(--default) 50%, transparent);
51
+ --default-soft-foreground: var(--default-foreground);
52
+ --default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
53
+
54
+ /* Accent */
55
+ --accent: oklch(65.79% 0.2309 17.07);
56
+ --accent-foreground: oklch(0.9911 0 0);
57
+ --accent-hover: color-mix(in oklab, var(--accent) 90%, var(--accent-foreground) 10%);
58
+ --accent-soft: color-mix(in oklab, var(--accent) 15%, transparent);
59
+ --accent-soft-foreground: color-mix(in oklab, var(--accent) 70%, var(--foreground) 45%);
60
+ --accent-soft-hover: color-mix(in oklab, var(--accent) 20%, transparent);
61
+ --focus: oklch(65.79% 0.2309 17.07);
62
+
63
+ /* Form Fields */
64
+ --field-background: oklch(100% 0 17.07);
65
+ --field-border: transparent;
66
+ --field-border-focus: color-mix(
67
+ in oklab,
68
+ var(--field-border, var(--border)) 74%,
69
+ var(--field-foreground, var(--foreground)) 22%
70
+ );
71
+ --field-border-hover: color-mix(
72
+ in oklab,
73
+ var(--field-border, var(--border)) 88%,
74
+ var(--field-foreground, var(--foreground)) 10%
75
+ );
76
+ --field-focus: var(--field-background, var(--default));
77
+ --field-foreground: oklch(21.03% 0 17.07);
78
+ --field-hover: color-mix(
79
+ in oklab,
80
+ var(--field-background, var(--default)) 90%,
81
+ var(--field-foreground, var(--foreground)) 2%
82
+ );
83
+ --field-placeholder: oklch(51.6% 0 17.07);
84
+
85
+ /* Status Colors */
86
+ --danger: oklch(0.5392 0.1816 33.72);
87
+ --danger-foreground: oklch(0.9911 0 0);
88
+ --danger-hover: color-mix(in oklab, var(--danger) 90%, var(--danger-foreground) 10%);
89
+ --danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
90
+ --danger-soft-foreground: color-mix(in oklab, var(--danger) 70%, var(--foreground) 40%);
91
+ --danger-soft-hover: color-mix(in oklab, var(--danger) 20%, transparent);
92
+ --success: oklch(0.5573 0.0947 199.48);
93
+ --success-foreground: oklch(0.9911 0 0);
94
+ --success-hover: color-mix(in oklab, var(--success) 90%, var(--success-foreground) 10%);
95
+ --success-soft: color-mix(in oklab, var(--success) 15%, transparent);
96
+ --success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 75%);
97
+ --success-soft-hover: color-mix(in oklab, var(--success) 20%, transparent);
98
+ --warning: oklch(0.6904 0.1972 38.75);
99
+ --warning-foreground: oklch(0.9911 0 0);
100
+ --warning-hover: color-mix(in oklab, var(--warning) 90%, var(--warning-foreground) 10%);
101
+ --warning-soft: color-mix(in oklab, var(--warning) 15%, transparent);
102
+ --warning-soft-foreground: color-mix(in oklab, var(--warning) 80%, var(--foreground) 70%);
103
+ --warning-soft-hover: color-mix(in oklab, var(--warning) 20%, transparent);
104
+
105
+ /* Component Colors */
106
+ --link: var(--foreground);
107
+ --segment: oklch(100% 0 17.07);
108
+ --segment-foreground: oklch(21.03% 0 17.07);
109
+
110
+ /* Borders and separators */
111
+ --border: oklch(90% 0 17.07);
112
+ --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
113
+ --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
114
+ --separator: oklch(92% 0 17.07);
115
+ --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
116
+ --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
117
+
118
+ /* Other */
119
+ --background-inverse: var(--foreground);
120
+ --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
121
+ --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
122
+ }
123
+
124
+ [data-theme="airbnb"].dark,
125
+ .dark [data-theme="airbnb"] {
126
+ color-scheme: dark;
127
+
128
+ /* Base Colors */
129
+ --background: oklch(12% 0 17.07);
130
+ --foreground: oklch(99.11% 0 17.07);
131
+
132
+ /* Surfaces */
133
+ --overlay: oklch(21.03% 0 17.07);
134
+ --overlay-foreground: oklch(99.11% 0 17.07);
135
+ --surface: oklch(21.03% 0 17.07);
136
+ --surface-foreground: oklch(99.11% 0 17.07);
137
+ --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
138
+ --surface-secondary: oklch(25.7% 0 17.07);
139
+ --surface-secondary-foreground: oklch(99.11% 0 17.07);
140
+ --surface-tertiary: oklch(27.21% 0 17.07);
141
+ --surface-tertiary-foreground: oklch(99.11% 0 17.07);
142
+
143
+ /* Muted and scrollbar */
144
+ --muted: oklch(70.5% 0 17.07);
145
+ --scrollbar: var(--scrollbar-thumb);
146
+ --scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
147
+ --scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
148
+
149
+ /* Default */
150
+ --default: oklch(27.4% 0 17.07);
151
+ --default-foreground: oklch(99.11% 0 0);
152
+ --default-hover: color-mix(in oklab, var(--default) 96%, var(--default-foreground) 4%);
153
+ --default-soft: color-mix(in oklab, var(--default) 50%, transparent);
154
+ --default-soft-foreground: var(--default-foreground);
155
+ --default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
156
+
157
+ /* Accent */
158
+ --accent: oklch(65.79% 0.2309 17.07);
159
+ --accent-foreground: oklch(0.9911 0 0);
160
+ --accent-hover: color-mix(in oklab, var(--accent) 90%, var(--accent-foreground) 10%);
161
+ --accent-soft: color-mix(in oklab, var(--accent) 12%, transparent);
162
+ --accent-soft-foreground: color-mix(in oklab, var(--accent) 80%, var(--foreground) 30%);
163
+ --accent-soft-hover: color-mix(in oklab, var(--accent) 16%, transparent);
164
+ --focus: oklch(65.79% 0.2309 17.07);
165
+
166
+ /* Form Fields */
167
+ --field-background: oklch(21.03% 0 17.07);
168
+ --field-border: transparent;
169
+ --field-border-focus: color-mix(
170
+ in oklab,
171
+ var(--field-border, var(--border)) 74%,
172
+ var(--field-foreground, var(--foreground)) 22%
173
+ );
174
+ --field-border-hover: color-mix(
175
+ in oklab,
176
+ var(--field-border, var(--border)) 88%,
177
+ var(--field-foreground, var(--foreground)) 10%
178
+ );
179
+ --field-focus: var(--field-background, var(--default));
180
+ --field-foreground: oklch(99.11% 0 17.07);
181
+ --field-hover: color-mix(
182
+ in oklab,
183
+ var(--field-background, var(--default)) 90%,
184
+ var(--field-foreground, var(--foreground)) 2%
185
+ );
186
+ --field-placeholder: oklch(70.5% 0 17.07);
187
+
188
+ /* Status Colors */
189
+ --danger: oklch(0.5392 0.1816 33.72);
190
+ --danger-foreground: oklch(0.9911 0 0);
191
+ --danger-hover: color-mix(in oklab, var(--danger) 90%, var(--danger-foreground) 10%);
192
+ --danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
193
+ --danger-soft-foreground: color-mix(in oklab, var(--danger) 80%, var(--foreground) 30%);
194
+ --danger-soft-hover: color-mix(in oklab, var(--danger) 20%, transparent);
195
+ --success: oklch(0.652 0.114864 185.0749);
196
+ --success-foreground: oklch(0.9911 0 0);
197
+ --success-hover: color-mix(in oklab, var(--success) 90%, var(--success-foreground) 10%);
198
+ --success-soft: color-mix(in oklab, var(--success) 12%, transparent);
199
+ --success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 30%);
200
+ --success-soft-hover: color-mix(in oklab, var(--success) 16%, transparent);
201
+ --warning: oklch(0.8197 0.170602 78.4658);
202
+ --warning-foreground: oklch(15% 0.05 78.47);
203
+ --warning-hover: color-mix(in oklab, var(--warning) 90%, var(--warning-foreground) 10%);
204
+ --warning-soft: color-mix(in oklab, var(--warning) 12%, transparent);
205
+ --warning-soft-foreground: color-mix(in oklab, var(--warning) 80%, var(--foreground) 30%);
206
+ --warning-soft-hover: color-mix(in oklab, var(--warning) 16%, transparent);
207
+
208
+ /* Component Colors */
209
+ --link: var(--foreground);
210
+ --segment: oklch(39.64% 0 17.07);
211
+ --segment-foreground: oklch(99.11% 0 17.07);
212
+
213
+ /* Borders and separators */
214
+ --border: oklch(28% 0 17.07);
215
+ --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
216
+ --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
217
+ --separator: oklch(25% 0 17.07);
218
+ --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
219
+ --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
220
+
221
+ /* Other */
222
+ --background-inverse: var(--foreground);
223
+ --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
224
+ --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
225
+ }
226
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Every bundled theme — GENERATED, do not edit by hand.
3
+ *
4
+ * Convenience for docs and playgrounds. Apps should import only the themes they offer.
5
+ * Import without a `layer()` wrapper.
6
+ */
7
+ @import "./sky.css";
8
+ @import "./lavender.css";
9
+ @import "./mint.css";
10
+ @import "./netflix.css";
11
+ @import "./uber.css";
12
+ @import "./spotify.css";
13
+ @import "./coinbase.css";
14
+ @import "./airbnb.css";
15
+ @import "./discord.css";
16
+ @import "./rabbit.css";
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Coinbase theme — GENERATED, do not edit by hand.
3
+ *
4
+ * Run `pnpm generate:themes` after changing `scripts/themes/presets.ts`.
5
+ * Seed values: lightness 0.5282, chroma 0.2628, hue 262.87, base 0.002.
6
+ *
7
+ * The `theme` layer is declared inside this file, so it can be imported with or without a
8
+ * `layer()` wrapper:
9
+ *
10
+ * @import "@ropav/styles";
11
+ * @import "@ropav/styles/themes/coinbase.css";
12
+ *
13
+ * Light is the default; dark needs the `dark` class alongside the attribute:
14
+ * <html data-theme="coinbase"> light
15
+ * <html data-theme="coinbase" class="dark"> dark
16
+ */
17
+
18
+ @layer theme {
19
+ [data-theme="coinbase"] {
20
+ color-scheme: light;
21
+
22
+ --field-radius: 0.125rem;
23
+ --radius: 0.5rem;
24
+
25
+ /* Base Colors */
26
+ --background: oklch(97.02% 0.002 262.87);
27
+ --foreground: oklch(21.03% 0.002 262.87);
28
+
29
+ /* Surfaces */
30
+ --overlay: oklch(100% 0.0006 262.87);
31
+ --overlay-foreground: oklch(21.03% 0.002 262.87);
32
+ --surface: oklch(100% 0.001 262.87);
33
+ --surface-foreground: oklch(21.03% 0.002 262.87);
34
+ --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
35
+ --surface-secondary: oklch(95.24% 0.0016 262.87);
36
+ --surface-secondary-foreground: oklch(21.03% 0.002 262.87);
37
+ --surface-tertiary: oklch(93.73% 0.0016 262.87);
38
+ --surface-tertiary-foreground: oklch(21.03% 0.002 262.87);
39
+
40
+ /* Muted and scrollbar */
41
+ --muted: oklch(51.6% 0.004 262.87);
42
+ --scrollbar: var(--scrollbar-thumb);
43
+ --scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
44
+ --scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
45
+
46
+ /* Default */
47
+ --default: oklch(94% 0.002 262.87);
48
+ --default-foreground: oklch(21.03% 0.0059 262.87);
49
+ --default-hover: color-mix(in oklab, var(--default) 96%, var(--default-foreground) 4%);
50
+ --default-soft: color-mix(in oklab, var(--default) 50%, transparent);
51
+ --default-soft-foreground: var(--default-foreground);
52
+ --default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
53
+
54
+ /* Accent */
55
+ --accent: oklch(52.82% 0.2628 262.87);
56
+ --accent-foreground: oklch(99.11% 0 0);
57
+ --accent-hover: color-mix(in oklab, var(--accent) 90%, var(--accent-foreground) 10%);
58
+ --accent-soft: color-mix(in oklab, var(--accent) 15%, transparent);
59
+ --accent-soft-foreground: color-mix(in oklab, var(--accent) 70%, var(--foreground) 45%);
60
+ --accent-soft-hover: color-mix(in oklab, var(--accent) 20%, transparent);
61
+ --focus: oklch(52.82% 0.2628 262.87);
62
+
63
+ /* Form Fields */
64
+ --field-background: oklch(100% 0.001 262.87);
65
+ --field-border: transparent;
66
+ --field-border-focus: color-mix(
67
+ in oklab,
68
+ var(--field-border, var(--border)) 74%,
69
+ var(--field-foreground, var(--foreground)) 22%
70
+ );
71
+ --field-border-hover: color-mix(
72
+ in oklab,
73
+ var(--field-border, var(--border)) 88%,
74
+ var(--field-foreground, var(--foreground)) 10%
75
+ );
76
+ --field-focus: var(--field-background, var(--default));
77
+ --field-foreground: oklch(21.03% 0.002 262.87);
78
+ --field-hover: color-mix(
79
+ in oklab,
80
+ var(--field-background, var(--default)) 90%,
81
+ var(--field-foreground, var(--foreground)) 2%
82
+ );
83
+ --field-placeholder: oklch(51.6% 0.004 262.87);
84
+
85
+ /* Status Colors */
86
+ --danger: oklch(0.5507 0.2062 24);
87
+ --danger-foreground: oklch(98% 0.02 24);
88
+ --danger-hover: color-mix(in oklab, var(--danger) 90%, var(--danger-foreground) 10%);
89
+ --danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
90
+ --danger-soft-foreground: color-mix(in oklab, var(--danger) 70%, var(--foreground) 40%);
91
+ --danger-soft-hover: color-mix(in oklab, var(--danger) 20%, transparent);
92
+ --success: oklch(0.5438 0.1268 157.17);
93
+ --success-foreground: oklch(98% 0.0127 157.17);
94
+ --success-hover: color-mix(in oklab, var(--success) 90%, var(--success-foreground) 10%);
95
+ --success-soft: color-mix(in oklab, var(--success) 15%, transparent);
96
+ --success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 75%);
97
+ --success-soft-hover: color-mix(in oklab, var(--success) 20%, transparent);
98
+ --warning: oklch(0.8095 0.1119 61.69);
99
+ --warning-foreground: oklch(15% 0.0336 61.69);
100
+ --warning-hover: color-mix(in oklab, var(--warning) 90%, var(--warning-foreground) 10%);
101
+ --warning-soft: color-mix(in oklab, var(--warning) 15%, transparent);
102
+ --warning-soft-foreground: color-mix(in oklab, var(--warning) 80%, var(--foreground) 70%);
103
+ --warning-soft-hover: color-mix(in oklab, var(--warning) 20%, transparent);
104
+
105
+ /* Component Colors */
106
+ --link: var(--foreground);
107
+ --segment: oklch(100% 0.002 262.87);
108
+ --segment-foreground: oklch(21.03% 0.002 262.87);
109
+
110
+ /* Borders and separators */
111
+ --border: oklch(90% 0.002 262.87);
112
+ --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
113
+ --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
114
+ --separator: oklch(92% 0.002 262.87);
115
+ --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
116
+ --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
117
+
118
+ /* Other */
119
+ --background-inverse: var(--foreground);
120
+ --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
121
+ --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
122
+ }
123
+
124
+ [data-theme="coinbase"].dark,
125
+ .dark [data-theme="coinbase"] {
126
+ color-scheme: dark;
127
+
128
+ /* Base Colors */
129
+ --background: oklch(12% 0.002 262.87);
130
+ --foreground: oklch(99.11% 0.002 262.87);
131
+
132
+ /* Surfaces */
133
+ --overlay: oklch(21.03% 0.004 262.87);
134
+ --overlay-foreground: oklch(99.11% 0.002 262.87);
135
+ --surface: oklch(21.03% 0.004 262.87);
136
+ --surface-foreground: oklch(99.11% 0.002 262.87);
137
+ --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
138
+ --surface-secondary: oklch(25.7% 0.003 262.87);
139
+ --surface-secondary-foreground: oklch(99.11% 0.002 262.87);
140
+ --surface-tertiary: oklch(27.21% 0.003 262.87);
141
+ --surface-tertiary-foreground: oklch(99.11% 0.002 262.87);
142
+
143
+ /* Muted and scrollbar */
144
+ --muted: oklch(70.5% 0.004 262.87);
145
+ --scrollbar: var(--scrollbar-thumb);
146
+ --scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
147
+ --scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
148
+
149
+ /* Default */
150
+ --default: oklch(27.4% 0.002 262.87);
151
+ --default-foreground: oklch(99.11% 0 0);
152
+ --default-hover: color-mix(in oklab, var(--default) 96%, var(--default-foreground) 4%);
153
+ --default-soft: color-mix(in oklab, var(--default) 50%, transparent);
154
+ --default-soft-foreground: var(--default-foreground);
155
+ --default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
156
+
157
+ /* Accent */
158
+ --accent: oklch(52.82% 0.2628 262.87);
159
+ --accent-foreground: oklch(99.11% 0 0);
160
+ --accent-hover: color-mix(in oklab, var(--accent) 90%, var(--accent-foreground) 10%);
161
+ --accent-soft: color-mix(in oklab, var(--accent) 12%, transparent);
162
+ --accent-soft-foreground: color-mix(in oklab, var(--accent) 80%, var(--foreground) 30%);
163
+ --accent-soft-hover: color-mix(in oklab, var(--accent) 16%, transparent);
164
+ --focus: oklch(52.82% 0.2628 262.87);
165
+
166
+ /* Form Fields */
167
+ --field-background: oklch(21.03% 0.004 262.87);
168
+ --field-border: transparent;
169
+ --field-border-focus: color-mix(
170
+ in oklab,
171
+ var(--field-border, var(--border)) 74%,
172
+ var(--field-foreground, var(--foreground)) 22%
173
+ );
174
+ --field-border-hover: color-mix(
175
+ in oklab,
176
+ var(--field-border, var(--border)) 88%,
177
+ var(--field-foreground, var(--foreground)) 10%
178
+ );
179
+ --field-focus: var(--field-background, var(--default));
180
+ --field-foreground: oklch(99.11% 0.002 262.87);
181
+ --field-hover: color-mix(
182
+ in oklab,
183
+ var(--field-background, var(--default)) 90%,
184
+ var(--field-foreground, var(--foreground)) 2%
185
+ );
186
+ --field-placeholder: oklch(70.5% 0.004 262.87);
187
+
188
+ /* Status Colors */
189
+ --danger: oklch(0.6545 0.2145 22.31);
190
+ --danger-foreground: oklch(15% 0.05 22.31);
191
+ --danger-hover: color-mix(in oklab, var(--danger) 90%, var(--danger-foreground) 10%);
192
+ --danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
193
+ --danger-soft-foreground: color-mix(in oklab, var(--danger) 80%, var(--foreground) 30%);
194
+ --danger-soft-hover: color-mix(in oklab, var(--danger) 20%, transparent);
195
+ --success: oklch(0.7574 0.180554 156.931);
196
+ --success-foreground: oklch(15% 0.05 156.93);
197
+ --success-hover: color-mix(in oklab, var(--success) 90%, var(--success-foreground) 10%);
198
+ --success-soft: color-mix(in oklab, var(--success) 12%, transparent);
199
+ --success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 30%);
200
+ --success-soft-hover: color-mix(in oklab, var(--success) 16%, transparent);
201
+ --warning: oklch(0.8095 0.1119 61.69);
202
+ --warning-foreground: oklch(15% 0.0336 61.69);
203
+ --warning-hover: color-mix(in oklab, var(--warning) 90%, var(--warning-foreground) 10%);
204
+ --warning-soft: color-mix(in oklab, var(--warning) 12%, transparent);
205
+ --warning-soft-foreground: color-mix(in oklab, var(--warning) 80%, var(--foreground) 30%);
206
+ --warning-soft-hover: color-mix(in oklab, var(--warning) 16%, transparent);
207
+
208
+ /* Component Colors */
209
+ --link: var(--foreground);
210
+ --segment: oklch(39.64% 0.002 262.87);
211
+ --segment-foreground: oklch(99.11% 0.002 262.87);
212
+
213
+ /* Borders and separators */
214
+ --border: oklch(28% 0.002 262.87);
215
+ --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
216
+ --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
217
+ --separator: oklch(25% 0.002 262.87);
218
+ --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
219
+ --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
220
+
221
+ /* Other */
222
+ --background-inverse: var(--foreground);
223
+ --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
224
+ --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
225
+ }
226
+ }
@@ -1,5 +1,12 @@
1
- @layer base {
2
- /* Ropav Default Theme */
1
+ /**
2
+ * Ropav default theme — hand-written.
3
+ *
4
+ * Also the base layer every other theme sits on: the structural tokens declared here
5
+ * (`--spacing`, `--radius`, `--cursor-*`, the primitives, the shadows, `--backdrop`) are
6
+ * not repeated by the generated themes, which only swap colours. `:root` and `.dark` keep
7
+ * matching an element that carries a `data-theme`, so those tokens still come through.
8
+ */
9
+ @layer theme {
3
10
  :root,
4
11
  .light,
5
12
  .default,
@@ -54,7 +61,7 @@
54
61
  --overlay: var(--white);
55
62
  --overlay-foreground: var(--foreground);
56
63
 
57
- --muted: oklch(0.5517 0.0138 285.94);
64
+ --muted: oklch(0.516 0.0138 285.94);
58
65
 
59
66
  --scrollbar: var(--scrollbar-thumb);
60
67
  --scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
@@ -133,7 +140,7 @@
133
140
  --default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
134
141
 
135
142
  --accent-soft: color-mix(in oklab, var(--accent) 15%, transparent);
136
- --accent-soft-foreground: color-mix(in oklab, var(--accent) 70%, var(--foreground) 30%);
143
+ --accent-soft-foreground: color-mix(in oklab, var(--accent) 70%, var(--foreground) 45%);
137
144
  --accent-soft-hover: color-mix(in oklab, var(--accent) 20%, transparent);
138
145
 
139
146
  --danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
@@ -145,7 +152,7 @@
145
152
  --warning-soft-hover: color-mix(in oklab, var(--warning) 20%, transparent);
146
153
 
147
154
  --success-soft: color-mix(in oklab, var(--success) 15%, transparent);
148
- --success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 60%);
155
+ --success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 75%);
149
156
  --success-soft-hover: color-mix(in oklab, var(--success) 20%, transparent);
150
157
 
151
158
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);