@ropav/styles 0.5.0 → 0.6.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 (98) hide show
  1. package/README.md +79 -0
  2. package/dist/components/accordion.css +1 -9
  3. package/dist/components/alert-dialog.css +0 -12
  4. package/dist/components/autocomplete.css +25 -35
  5. package/dist/components/breadcrumbs.css +9 -2
  6. package/dist/components/button-group.css +0 -4
  7. package/dist/components/button.css +3 -7
  8. package/dist/components/calendar-year-picker.css +19 -7
  9. package/dist/components/calendar.css +46 -21
  10. package/dist/components/checkbox.css +54 -56
  11. package/dist/components/chip.css +3 -1
  12. package/dist/components/close-button.css +7 -6
  13. package/dist/components/color-area.css +6 -6
  14. package/dist/components/color-input-group.css +10 -27
  15. package/dist/components/color-picker.css +1 -5
  16. package/dist/components/color-slider.css +14 -12
  17. package/dist/components/color-swatch-picker.css +2 -85
  18. package/dist/components/color-swatch.css +1 -1
  19. package/dist/components/combo-box.css +13 -3
  20. package/dist/components/date-input-group.css +34 -32
  21. package/dist/components/date-picker.css +1 -5
  22. package/dist/components/date-range-picker.css +1 -5
  23. package/dist/components/disclosure.css +0 -4
  24. package/dist/components/drawer.css +4 -8
  25. package/dist/components/drop-zone/drop-zone.styles.d.ts +34 -0
  26. package/dist/components/drop-zone/drop-zone.styles.d.ts.map +1 -0
  27. package/dist/components/drop-zone/drop-zone.styles.js +8 -0
  28. package/dist/components/drop-zone/index.d.ts +2 -0
  29. package/dist/components/drop-zone/index.d.ts.map +1 -0
  30. package/dist/components/drop-zone/index.js +2 -0
  31. package/dist/components/drop-zone.css +78 -0
  32. package/dist/components/dropdown.css +0 -4
  33. package/dist/components/error-message.css +0 -4
  34. package/dist/components/field-error.css +0 -4
  35. package/dist/components/index.css +1 -0
  36. package/dist/components/index.d.ts +1 -0
  37. package/dist/components/index.d.ts.map +1 -1
  38. package/dist/components/input-group.css +12 -37
  39. package/dist/components/input-otp.css +14 -26
  40. package/dist/components/input.css +11 -32
  41. package/dist/components/kbd.css +3 -1
  42. package/dist/components/label.css +7 -2
  43. package/dist/components/link.css +13 -11
  44. package/dist/components/list-box-item.css +4 -10
  45. package/dist/components/menu-item.css +4 -10
  46. package/dist/components/meter.css +8 -16
  47. package/dist/components/modal.css +0 -12
  48. package/dist/components/number-field.css +23 -35
  49. package/dist/components/pagination.css +0 -4
  50. package/dist/components/popover.css +0 -4
  51. package/dist/components/progress-bar/progress-bar.styles.d.ts +36 -0
  52. package/dist/components/progress-bar/progress-bar.styles.d.ts.map +1 -1
  53. package/dist/components/progress-bar/progress-bar.styles.js +10 -0
  54. package/dist/components/progress-bar.css +82 -16
  55. package/dist/components/progress-circle.css +0 -4
  56. package/dist/components/radio.css +7 -9
  57. package/dist/components/range-calendar.css +73 -31
  58. package/dist/components/search-field.css +11 -28
  59. package/dist/components/segmented-control.css +9 -14
  60. package/dist/components/select.css +18 -32
  61. package/dist/components/sidebar/sidebar.styles.d.ts +36 -0
  62. package/dist/components/sidebar/sidebar.styles.d.ts.map +1 -1
  63. package/dist/components/sidebar/sidebar.styles.js +14 -1
  64. package/dist/components/sidebar.css +132 -38
  65. package/dist/components/slider.css +10 -11
  66. package/dist/components/splitter.css +44 -36
  67. package/dist/components/switch.css +16 -15
  68. package/dist/components/table.css +69 -27
  69. package/dist/components/tabs.css +8 -19
  70. package/dist/components/tag.css +32 -24
  71. package/dist/components/textarea.css +11 -32
  72. package/dist/components/toast.css +3 -1
  73. package/dist/components/toggle-button-group.css +0 -4
  74. package/dist/components/toggle-button.css +2 -6
  75. package/dist/components/tooltip.css +0 -4
  76. package/dist/components/typography.css +12 -4
  77. package/dist/components/virtualizer.css +11 -3
  78. package/dist/index.js +2 -1
  79. package/dist/ropav.min.css +1 -1
  80. package/dist/themes/airbnb.css +6 -4
  81. package/dist/themes/coinbase.css +6 -4
  82. package/dist/themes/default.css +24 -4
  83. package/dist/themes/discord.css +6 -4
  84. package/dist/themes/hero.css +24 -4
  85. package/dist/themes/lavender.css +6 -4
  86. package/dist/themes/mint.css +6 -4
  87. package/dist/themes/netflix.css +6 -4
  88. package/dist/themes/rabbit.css +6 -4
  89. package/dist/themes/shared/theme.css +1 -0
  90. package/dist/themes/sky.css +6 -4
  91. package/dist/themes/spotify.css +6 -4
  92. package/dist/themes/uber.css +6 -4
  93. package/package.json +1 -1
  94. package/src/components/drop-zone/drop-zone.styles.ts +12 -0
  95. package/src/components/drop-zone/index.ts +1 -0
  96. package/src/components/index.ts +1 -0
  97. package/src/components/progress-bar/progress-bar.styles.ts +14 -0
  98. package/src/components/sidebar/sidebar.styles.ts +23 -0
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0 17.07);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0 17.07);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0 17.07);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="airbnb"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0 17.07);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0 17.07);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0 17.07);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0.002 262.87);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0.002 262.87);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0.002 262.87);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="coinbase"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0.002 262.87);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0.002 262.87);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0.002 262.87);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -98,8 +98,12 @@
98
98
  --segment-foreground: var(--eclipse);
99
99
 
100
100
  /* Misc Colors */
101
- --border: oklch(90% 0.004 286.32);
102
- --separator: oklch(92% 0.004 286.32);
101
+ /* An edge, as an alpha of the surface foreground - `--surface-hover`'s reasoning, applied to a
102
+ * line. A flat neutral is picked against one fill and then disappears against any other of its
103
+ * own lightness: in the dark half `--separator` sat 0.7% from `--surface-secondary`, so a box
104
+ * drawn on the secondary fill had no edge left. */
105
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
106
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
103
107
  --focus: var(--accent);
104
108
  --link: var(--foreground);
105
109
 
@@ -109,6 +113,21 @@
109
113
  /* Calculated Colors */
110
114
  --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
111
115
 
116
+ /* The layer a state paints on whatever is behind it, named for what it is rather than for one
117
+ * of the states it serves - hover reads it, so do a press and the muted selection a calendar
118
+ * gives a day outside the month. Distinct from `--surface-hover` above, which is a surface
119
+ * that has been tinted and stays opaque: this one is an alpha, so a component transparent at
120
+ * rest can mark a state without inventing a fill of its own.
121
+ *
122
+ * A neutral cannot do this job. It has to be picked against one background and is then wrong
123
+ * on every other - invisible against a fill of its own lightness, and against a translucent
124
+ * surface it cannot know what is behind at all. An alpha darkens whatever it lands on.
125
+ *
126
+ * The halves carry different percentages because compositing happens in sRGB while the palette
127
+ * is authored in Oklab: the same alpha reads stronger over a dark surface than a light one.
128
+ * These are the pair that lands where the flat neutral used to. */
129
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
130
+
112
131
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
113
132
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
114
133
  --background-inverse: var(--foreground);
@@ -237,8 +256,8 @@
237
256
  --segment-foreground: var(--foreground);
238
257
 
239
258
  /* Misc Colors */
240
- --border: oklch(28% 0.006 286.033);
241
- --separator: oklch(25% 0.006 286.033);
259
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
260
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
242
261
  --focus: var(--accent);
243
262
  --link: var(--foreground);
244
263
 
@@ -256,6 +275,7 @@
256
275
 
257
276
  /* Calculated Colors */
258
277
  --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
278
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
259
279
 
260
280
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
261
281
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0.01 273.85);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0.01 273.85);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0.01 273.85);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="discord"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0.01 273.85);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0.01 273.85);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0.01 273.85);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -90,14 +90,33 @@
90
90
  --segment-foreground: oklch(0.2103 0.0059 285.89);
91
91
 
92
92
  /* Misc Colors */
93
- --border: oklch(90% 0.004 286.32);
94
- --separator: oklch(92% 0.004 286.32);
93
+ /* An edge, as an alpha of the surface foreground - `--surface-hover`'s reasoning, applied to a
94
+ * line. A flat neutral is picked against one fill and then disappears against any other of its
95
+ * own lightness: in the dark half `--separator` sat 0.7% from `--surface-secondary`, so a box
96
+ * drawn on the secondary fill had no edge left. */
97
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
98
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
95
99
  --focus: var(--accent);
96
100
  --link: var(--foreground);
97
101
 
98
102
  /* Calculated Colors */
99
103
  --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
100
104
 
105
+ /* The layer a state paints on whatever is behind it, named for what it is rather than for one
106
+ * of the states it serves - hover reads it, so do a press and the muted selection a calendar
107
+ * gives a day outside the month. Distinct from `--surface-hover` above, which is a surface
108
+ * that has been tinted and stays opaque: this one is an alpha, so a component transparent at
109
+ * rest can mark a state without inventing a fill of its own.
110
+ *
111
+ * A neutral cannot do this job. It has to be picked against one background and is then wrong
112
+ * on every other - invisible against a fill of its own lightness, and against a translucent
113
+ * surface it cannot know what is behind at all. An alpha darkens whatever it lands on.
114
+ *
115
+ * The halves carry different percentages because compositing happens in sRGB while the palette
116
+ * is authored in Oklab: the same alpha reads stronger over a dark surface than a light one.
117
+ * These are the pair that lands where the flat neutral used to. */
118
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
119
+
101
120
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
102
121
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
103
122
  --background-inverse: var(--foreground);
@@ -198,13 +217,14 @@
198
217
  --segment-foreground: var(--foreground);
199
218
 
200
219
  /* Misc Colors */
201
- --border: oklch(28% 0.006 286.033);
202
- --separator: oklch(25% 0.006 286.033);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
221
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
203
222
  --focus: var(--accent);
204
223
  --link: var(--foreground);
205
224
 
206
225
  /* Calculated Colors */
207
226
  --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
227
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
208
228
 
209
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
210
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0.0015 305);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0.0015 305);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0.0015 305);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="lavender"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0.0015 305);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0.0015 305);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0.0015 305);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0.0015 155);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0.0015 155);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0.0015 155);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="mint"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0.0015 155);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0.0015 155);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0.0015 155);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0 27.99);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0 27.99);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0 27.99);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="netflix"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0 27.99);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0 27.99);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0 27.99);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0.01 36.66);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0.01 36.66);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0.01 36.66);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="rabbit"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0.01 36.66);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0.01 36.66);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0.01 36.66);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -5,6 +5,7 @@
5
5
  --color-surface: var(--surface);
6
6
  --color-surface-foreground: var(--surface-foreground);
7
7
  --color-surface-hover: var(--surface-hover);
8
+ --color-state-layer: var(--state-layer);
8
9
 
9
10
  --color-surface-secondary: var(--surface-secondary);
10
11
  --color-surface-secondary-foreground: var(--surface-secondary-foreground);
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0.0015 225);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0.0015 225);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0.0015 225);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="sky"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0.0015 225);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0.0015 225);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0.0015 225);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0.002 148.67);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0.002 148.67);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0.002 148.67);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="spotify"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0.002 148.67);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0.002 148.67);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0.002 148.67);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
@@ -112,10 +112,10 @@
112
112
  --segment-foreground: oklch(21.03% 0 0);
113
113
 
114
114
  /* Borders and separators */
115
- --border: oklch(90% 0 0);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
116
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
117
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
118
- --separator: oklch(92% 0 0);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
119
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
120
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
121
121
 
@@ -123,6 +123,7 @@
123
123
  --background-inverse: var(--foreground);
124
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
125
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
126
127
  }
127
128
 
128
129
  [data-theme="uber"].dark,
@@ -216,10 +217,10 @@
216
217
  --segment-foreground: oklch(99.11% 0 0);
217
218
 
218
219
  /* Borders and separators */
219
- --border: oklch(28% 0 0);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
220
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
221
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
222
- --separator: oklch(25% 0 0);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
223
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
224
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
225
226
 
@@ -227,5 +228,6 @@
227
228
  --background-inverse: var(--foreground);
228
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
229
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
230
232
  }
231
233
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ropav/styles",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Ropav core styles - framework-agnostic CSS and Tailwind variants",
5
5
  "keywords": [
6
6
  "css",
@@ -0,0 +1,12 @@
1
+ import type { VariantProps } from "tailwind-variants";
2
+
3
+ import { tv } from "tailwind-variants";
4
+
5
+ export const dropZoneVariants = tv({
6
+ slots: {
7
+ base: "drop-zone",
8
+ trigger: "drop-zone__trigger",
9
+ },
10
+ });
11
+
12
+ export type DropZoneVariants = VariantProps<typeof dropZoneVariants>;
@@ -0,0 +1 @@
1
+ export * from "./drop-zone.styles";
@@ -32,6 +32,7 @@ export * from "./description";
32
32
  export * from "./drawer";
33
33
  export * from "./disclosure";
34
34
  export * from "./disclosure-group";
35
+ export * from "./drop-zone";
35
36
  export * from "./dropdown";
36
37
  export * from "./empty-state";
37
38
  export * from "./error-message";
@@ -5,6 +5,8 @@ import { tv } from "tailwind-variants";
5
5
  export const progressBarVariants = tv({
6
6
  defaultVariants: {
7
7
  color: "accent",
8
+ isAnimated: false,
9
+ isStriped: false,
8
10
  size: "md",
9
11
  },
10
12
  slots: {
@@ -31,6 +33,18 @@ export const progressBarVariants = tv({
31
33
  base: "progress-bar--warning",
32
34
  },
33
35
  },
36
+ isAnimated: {
37
+ false: {},
38
+ true: {
39
+ base: "progress-bar--animated",
40
+ },
41
+ },
42
+ isStriped: {
43
+ false: {},
44
+ true: {
45
+ base: "progress-bar--striped",
46
+ },
47
+ },
34
48
  size: {
35
49
  lg: {
36
50
  base: "progress-bar--lg",
@@ -16,6 +16,7 @@ export const sidebarVariants = tv({
16
16
  defaultVariants: {
17
17
  collapsible: "icon",
18
18
  side: "left",
19
+ variant: "sidebar",
19
20
  },
20
21
  slots: {
21
22
  base: "sidebar",
@@ -88,6 +89,28 @@ export const sidebarVariants = tv({
88
89
  panel: "sidebar__panel--right",
89
90
  },
90
91
  },
92
+ /*
93
+ * How much chrome the shell paints. Each slot's modifier is named for what that slot does
94
+ * rather than for the value, the way `inDrawer` becomes `--drawer` and `isSub` becomes
95
+ * `--sub`: `inset` is already a slot, so echoing the value would read `sidebar__inset--inset`,
96
+ * and `sidebar__panel--inset` would be false besides — under it the panel is the bare one and
97
+ * the inset is the card.
98
+ *
99
+ * `sidebar` emits nothing, because the base rules already are that look. A modifier saying so
100
+ * would be an empty rule restating the block above it.
101
+ */
102
+ variant: {
103
+ floating: {
104
+ panel: "sidebar__panel--floating",
105
+ rail: "sidebar__rail--quiet",
106
+ },
107
+ inset: {
108
+ inset: "sidebar__inset--card",
109
+ panel: "sidebar__panel--bare",
110
+ rail: "sidebar__rail--quiet",
111
+ },
112
+ sidebar: {},
113
+ },
91
114
  },
92
115
  });
93
116