@rokkit/themes 1.0.0-next.99 → 1.0.1

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 (356) hide show
  1. package/README.md +118 -9
  2. package/build.mjs +254 -0
  3. package/package.json +221 -48
  4. package/src/ant-design/button.css +190 -0
  5. package/src/ant-design/card.css +100 -0
  6. package/src/ant-design/chart.css +34 -0
  7. package/src/ant-design/connector.css +11 -0
  8. package/src/ant-design/dropdown.css +50 -0
  9. package/src/ant-design/floating-action.css +63 -0
  10. package/src/ant-design/floating-navigation.css +70 -0
  11. package/src/ant-design/grid.css +46 -0
  12. package/src/ant-design/index.css +35 -0
  13. package/src/ant-design/input.css +151 -0
  14. package/src/ant-design/list.css +126 -0
  15. package/src/ant-design/menu.css +88 -0
  16. package/src/ant-design/message.css +35 -0
  17. package/src/ant-design/range.css +61 -0
  18. package/src/ant-design/search-filter.css +49 -0
  19. package/src/ant-design/select.css +158 -0
  20. package/src/ant-design/status-list.css +66 -0
  21. package/src/ant-design/step-indicator.css +38 -0
  22. package/src/ant-design/switch.css +29 -0
  23. package/src/ant-design/table.css +91 -0
  24. package/src/ant-design/tabs.css +153 -0
  25. package/src/ant-design/timeline.css +45 -0
  26. package/src/ant-design/toc.css +18 -0
  27. package/src/ant-design/toggle.css +48 -0
  28. package/src/ant-design/toolbar.css +85 -0
  29. package/src/ant-design/tree.css +137 -0
  30. package/src/ant-design/upload-progress.css +102 -0
  31. package/src/ant-design/upload-target.css +50 -0
  32. package/src/base/alert-list.css +91 -0
  33. package/src/base/avatar.css +82 -0
  34. package/src/base/badge.css +41 -0
  35. package/src/base/breadcrumbs.css +47 -0
  36. package/src/base/button.css +254 -0
  37. package/src/base/card.css +39 -0
  38. package/src/base/carousel.css +122 -12
  39. package/src/base/chart.css +94 -0
  40. package/src/base/connector.css +92 -0
  41. package/src/base/density.css +51 -0
  42. package/src/base/display.css +91 -0
  43. package/src/base/divider.css +49 -0
  44. package/src/base/dropdown.css +167 -0
  45. package/src/base/floating-action.css +388 -0
  46. package/src/base/floating-navigation.css +405 -0
  47. package/src/base/graph-paper.css +83 -0
  48. package/src/base/grid.css +93 -0
  49. package/src/base/index.css +55 -0
  50. package/src/base/input.css +290 -0
  51. package/src/base/item.css +78 -0
  52. package/src/base/list.css +188 -0
  53. package/src/base/menu.css +277 -0
  54. package/src/base/message.css +62 -0
  55. package/src/base/pill.css +57 -0
  56. package/src/base/progress.css +34 -0
  57. package/src/base/range.css +121 -0
  58. package/src/base/rating.css +42 -0
  59. package/src/base/reveal.css +37 -0
  60. package/src/base/search-filter.css +132 -0
  61. package/src/base/select.css +413 -0
  62. package/src/base/shine.css +14 -0
  63. package/src/base/stack.css +76 -0
  64. package/src/base/status-list.css +19 -0
  65. package/src/base/step-indicator.css +74 -0
  66. package/src/base/stepper.css +140 -0
  67. package/src/base/swatch.css +85 -0
  68. package/src/base/switch.css +152 -0
  69. package/src/base/table.css +193 -33
  70. package/src/base/tabs.css +171 -0
  71. package/src/base/tilt.css +14 -0
  72. package/src/base/timeline.css +84 -0
  73. package/src/base/toc.css +50 -0
  74. package/src/base/toggle.css +138 -0
  75. package/src/base/toolbar.css +341 -0
  76. package/src/base/tooltip.css +64 -0
  77. package/src/base/tree.css +228 -11
  78. package/src/base/typography.css +31 -0
  79. package/src/base/upload-progress.css +155 -0
  80. package/src/base/upload-target.css +77 -0
  81. package/src/bits-ui/button.css +176 -0
  82. package/src/bits-ui/card.css +99 -0
  83. package/src/bits-ui/chart.css +34 -0
  84. package/src/bits-ui/connector.css +11 -0
  85. package/src/bits-ui/dropdown.css +50 -0
  86. package/src/bits-ui/floating-action.css +63 -0
  87. package/src/bits-ui/floating-navigation.css +70 -0
  88. package/src/bits-ui/grid.css +46 -0
  89. package/src/bits-ui/index.css +35 -0
  90. package/src/bits-ui/input.css +154 -0
  91. package/src/bits-ui/list.css +126 -0
  92. package/src/bits-ui/menu.css +88 -0
  93. package/src/bits-ui/message.css +35 -0
  94. package/src/bits-ui/range.css +61 -0
  95. package/src/bits-ui/search-filter.css +49 -0
  96. package/src/bits-ui/select.css +158 -0
  97. package/src/bits-ui/status-list.css +66 -0
  98. package/src/bits-ui/step-indicator.css +40 -0
  99. package/src/bits-ui/switch.css +29 -0
  100. package/src/bits-ui/table.css +89 -0
  101. package/src/bits-ui/tabs.css +151 -0
  102. package/src/bits-ui/timeline.css +45 -0
  103. package/src/bits-ui/toc.css +18 -0
  104. package/src/bits-ui/toggle.css +48 -0
  105. package/src/bits-ui/toolbar.css +85 -0
  106. package/src/bits-ui/tree.css +135 -0
  107. package/src/bits-ui/upload-progress.css +102 -0
  108. package/src/bits-ui/upload-target.css +50 -0
  109. package/src/carbon/button.css +186 -0
  110. package/src/carbon/card.css +97 -0
  111. package/src/carbon/chart.css +34 -0
  112. package/src/carbon/connector.css +11 -0
  113. package/src/carbon/dropdown.css +50 -0
  114. package/src/carbon/floating-action.css +63 -0
  115. package/src/carbon/floating-navigation.css +70 -0
  116. package/src/carbon/grid.css +46 -0
  117. package/src/carbon/index.css +34 -0
  118. package/src/carbon/input.css +148 -0
  119. package/src/carbon/list.css +124 -0
  120. package/src/carbon/menu.css +88 -0
  121. package/src/carbon/message.css +37 -0
  122. package/src/carbon/range.css +61 -0
  123. package/src/carbon/search-filter.css +49 -0
  124. package/src/carbon/select.css +158 -0
  125. package/src/carbon/status-list.css +66 -0
  126. package/src/carbon/step-indicator.css +40 -0
  127. package/src/carbon/switch.css +31 -0
  128. package/src/carbon/table.css +93 -0
  129. package/src/carbon/tabs.css +151 -0
  130. package/src/carbon/timeline.css +45 -0
  131. package/src/carbon/toc.css +22 -0
  132. package/src/carbon/toggle.css +48 -0
  133. package/src/carbon/toolbar.css +84 -0
  134. package/src/carbon/tree.css +135 -0
  135. package/src/carbon/upload-progress.css +102 -0
  136. package/src/carbon/upload-target.css +50 -0
  137. package/src/daisy-ui/button.css +196 -0
  138. package/src/daisy-ui/card.css +99 -0
  139. package/src/daisy-ui/chart.css +34 -0
  140. package/src/daisy-ui/connector.css +11 -0
  141. package/src/daisy-ui/dropdown.css +50 -0
  142. package/src/daisy-ui/floating-action.css +63 -0
  143. package/src/daisy-ui/floating-navigation.css +70 -0
  144. package/src/daisy-ui/grid.css +46 -0
  145. package/src/daisy-ui/index.css +34 -0
  146. package/src/daisy-ui/input.css +148 -0
  147. package/src/daisy-ui/list.css +127 -0
  148. package/src/daisy-ui/menu.css +88 -0
  149. package/src/daisy-ui/message.css +37 -0
  150. package/src/daisy-ui/range.css +61 -0
  151. package/src/daisy-ui/search-filter.css +49 -0
  152. package/src/daisy-ui/select.css +158 -0
  153. package/src/daisy-ui/status-list.css +66 -0
  154. package/src/daisy-ui/step-indicator.css +37 -0
  155. package/src/daisy-ui/switch.css +31 -0
  156. package/src/daisy-ui/table.css +91 -0
  157. package/src/daisy-ui/tabs.css +153 -0
  158. package/src/daisy-ui/timeline.css +45 -0
  159. package/src/daisy-ui/toc.css +22 -0
  160. package/src/daisy-ui/toggle.css +48 -0
  161. package/src/daisy-ui/toolbar.css +85 -0
  162. package/src/daisy-ui/tree.css +137 -0
  163. package/src/daisy-ui/upload-progress.css +102 -0
  164. package/src/daisy-ui/upload-target.css +50 -0
  165. package/src/frosted/button.css +224 -0
  166. package/src/frosted/card.css +130 -0
  167. package/src/frosted/chart.css +38 -0
  168. package/src/frosted/dropdown.css +66 -0
  169. package/src/frosted/floating-action.css +61 -0
  170. package/src/frosted/floating-navigation.css +74 -0
  171. package/src/frosted/index.css +31 -0
  172. package/src/frosted/input.css +135 -0
  173. package/src/frosted/list.css +122 -0
  174. package/src/frosted/menu.css +108 -0
  175. package/src/frosted/message.css +35 -0
  176. package/src/frosted/range.css +61 -0
  177. package/src/frosted/search-filter.css +49 -0
  178. package/src/frosted/select.css +178 -0
  179. package/src/frosted/status-list.css +66 -0
  180. package/src/frosted/step-indicator.css +41 -0
  181. package/src/frosted/swatch.css +21 -0
  182. package/src/frosted/switch.css +43 -0
  183. package/src/frosted/table.css +106 -0
  184. package/src/frosted/tabs.css +58 -0
  185. package/src/frosted/timeline.css +46 -0
  186. package/src/frosted/toc.css +18 -0
  187. package/src/frosted/toggle.css +48 -0
  188. package/src/frosted/toolbar.css +84 -0
  189. package/src/frosted/tree.css +110 -0
  190. package/src/grada-ui/button.css +249 -0
  191. package/src/grada-ui/card.css +96 -0
  192. package/src/grada-ui/chart.css +34 -0
  193. package/src/grada-ui/dropdown.css +58 -0
  194. package/src/grada-ui/floating-action.css +66 -0
  195. package/src/grada-ui/floating-navigation.css +69 -0
  196. package/src/grada-ui/index.css +56 -0
  197. package/src/grada-ui/input.css +154 -0
  198. package/src/grada-ui/list.css +124 -0
  199. package/src/grada-ui/menu.css +81 -0
  200. package/src/grada-ui/message.css +48 -0
  201. package/src/grada-ui/range.css +59 -0
  202. package/src/grada-ui/search-filter.css +47 -0
  203. package/src/grada-ui/select.css +190 -0
  204. package/src/grada-ui/status-list.css +66 -0
  205. package/src/grada-ui/step-indicator.css +37 -0
  206. package/src/grada-ui/switch.css +35 -0
  207. package/src/grada-ui/table.css +79 -0
  208. package/src/grada-ui/tabs.css +59 -0
  209. package/src/grada-ui/timeline.css +46 -0
  210. package/src/grada-ui/toc.css +24 -0
  211. package/src/grada-ui/toggle.css +47 -0
  212. package/src/grada-ui/toolbar.css +91 -0
  213. package/src/grada-ui/tree.css +100 -0
  214. package/src/index.css +18 -0
  215. package/src/index.js +25 -3
  216. package/src/material/button.css +178 -0
  217. package/src/material/card.css +99 -0
  218. package/src/material/chart.css +38 -0
  219. package/src/material/dropdown.css +50 -0
  220. package/src/material/floating-action.css +64 -0
  221. package/src/material/floating-navigation.css +74 -0
  222. package/src/material/index.css +31 -0
  223. package/src/material/input.css +139 -40
  224. package/src/material/list.css +94 -64
  225. package/src/material/menu.css +92 -0
  226. package/src/material/message.css +35 -0
  227. package/src/material/range.css +62 -0
  228. package/src/material/search-filter.css +49 -0
  229. package/src/material/select.css +177 -0
  230. package/src/material/status-list.css +66 -0
  231. package/src/material/step-indicator.css +41 -0
  232. package/src/material/swatch.css +21 -0
  233. package/src/material/switch.css +28 -0
  234. package/src/material/table.css +110 -0
  235. package/src/material/tabs.css +88 -0
  236. package/src/material/timeline.css +46 -0
  237. package/src/material/toc.css +18 -0
  238. package/src/material/toggle.css +48 -0
  239. package/src/material/toolbar.css +85 -0
  240. package/src/material/tree.css +134 -0
  241. package/src/minimal/button.css +176 -0
  242. package/src/minimal/card.css +99 -0
  243. package/src/minimal/chart.css +38 -0
  244. package/src/minimal/dropdown.css +50 -0
  245. package/src/minimal/floating-action.css +63 -0
  246. package/src/minimal/floating-navigation.css +70 -0
  247. package/src/minimal/index.css +31 -0
  248. package/src/minimal/input.css +137 -120
  249. package/src/minimal/list.css +96 -104
  250. package/src/minimal/menu.css +88 -0
  251. package/src/minimal/message.css +35 -0
  252. package/src/minimal/range.css +61 -0
  253. package/src/minimal/search-filter.css +49 -0
  254. package/src/minimal/select.css +170 -0
  255. package/src/minimal/status-list.css +66 -0
  256. package/src/minimal/step-indicator.css +40 -0
  257. package/src/minimal/swatch.css +21 -0
  258. package/src/minimal/switch.css +32 -0
  259. package/src/minimal/table.css +108 -0
  260. package/src/minimal/tabs.css +135 -28
  261. package/src/minimal/timeline.css +45 -0
  262. package/src/minimal/toc.css +18 -0
  263. package/src/minimal/toggle.css +48 -0
  264. package/src/minimal/toolbar.css +85 -0
  265. package/src/minimal/tree.css +135 -0
  266. package/src/palette.css +2 -20
  267. package/src/rokkit/avatar.css +29 -0
  268. package/src/rokkit/badge.css +29 -0
  269. package/src/rokkit/button.css +290 -0
  270. package/src/rokkit/card.css +102 -0
  271. package/src/rokkit/chart.css +38 -0
  272. package/src/rokkit/connector.css +11 -0
  273. package/src/rokkit/divider.css +26 -0
  274. package/src/rokkit/dropdown.css +70 -0
  275. package/src/rokkit/floating-action.css +65 -0
  276. package/src/rokkit/floating-navigation.css +83 -0
  277. package/src/rokkit/grid.css +46 -0
  278. package/src/rokkit/index.css +40 -0
  279. package/src/rokkit/input.css +124 -26
  280. package/src/rokkit/list.css +177 -0
  281. package/src/rokkit/menu.css +93 -0
  282. package/src/rokkit/message.css +44 -0
  283. package/src/rokkit/range.css +62 -0
  284. package/src/rokkit/search-filter.css +49 -0
  285. package/src/rokkit/select.css +190 -0
  286. package/src/rokkit/stack.css +6 -0
  287. package/src/rokkit/status-list.css +68 -0
  288. package/src/rokkit/step-indicator.css +41 -0
  289. package/src/rokkit/swatch.css +20 -0
  290. package/src/rokkit/switch.css +29 -0
  291. package/src/rokkit/table.css +88 -37
  292. package/src/rokkit/tabs.css +111 -0
  293. package/src/rokkit/timeline.css +46 -0
  294. package/src/rokkit/toc.css +18 -0
  295. package/src/rokkit/toggle.css +41 -11
  296. package/src/rokkit/toolbar.css +90 -0
  297. package/src/rokkit/tooltip.css +7 -0
  298. package/src/rokkit/tree.css +149 -0
  299. package/src/rokkit/upload-progress.css +102 -0
  300. package/src/rokkit/upload-target.css +50 -0
  301. package/src/shadcn/button.css +175 -0
  302. package/src/shadcn/card.css +99 -0
  303. package/src/shadcn/chart.css +34 -0
  304. package/src/shadcn/connector.css +11 -0
  305. package/src/shadcn/dropdown.css +50 -0
  306. package/src/shadcn/floating-action.css +63 -0
  307. package/src/shadcn/floating-navigation.css +70 -0
  308. package/src/shadcn/grid.css +46 -0
  309. package/src/shadcn/index.css +35 -0
  310. package/src/shadcn/input.css +143 -0
  311. package/src/shadcn/list.css +124 -0
  312. package/src/shadcn/menu.css +88 -0
  313. package/src/shadcn/message.css +35 -0
  314. package/src/shadcn/range.css +61 -0
  315. package/src/shadcn/search-filter.css +49 -0
  316. package/src/shadcn/select.css +158 -0
  317. package/src/shadcn/status-list.css +66 -0
  318. package/src/shadcn/step-indicator.css +37 -0
  319. package/src/shadcn/switch.css +31 -0
  320. package/src/shadcn/table.css +89 -0
  321. package/src/shadcn/tabs.css +151 -0
  322. package/src/shadcn/timeline.css +45 -0
  323. package/src/shadcn/toc.css +20 -0
  324. package/src/shadcn/toggle.css +48 -0
  325. package/src/shadcn/toolbar.css +84 -0
  326. package/src/shadcn/tree.css +135 -0
  327. package/src/shadcn/upload-progress.css +102 -0
  328. package/src/shadcn/upload-target.css +50 -0
  329. package/LICENSE +0 -21
  330. package/src/base/alert.css +0 -30
  331. package/src/base/animation.css +0 -22
  332. package/src/base/atoms.css +0 -58
  333. package/src/base/core.css +0 -92
  334. package/src/base/layout.css +0 -65
  335. package/src/base/molecules.css +0 -126
  336. package/src/base/organisms.css +0 -26
  337. package/src/base/scrollbar.css +0 -16
  338. package/src/base.css +0 -11
  339. package/src/constants.js +0 -8
  340. package/src/markdown.css +0 -955
  341. package/src/material/base.css +0 -12
  342. package/src/material/form.css +0 -30
  343. package/src/material.css +0 -9
  344. package/src/minimal/base.css +0 -8
  345. package/src/minimal/form.css +0 -87
  346. package/src/minimal.css +0 -11
  347. package/src/mixins/mixins.scss +0 -66
  348. package/src/mixins/palette.scss +0 -48
  349. package/src/prism.css +0 -102
  350. package/src/rokkit/alert.css +0 -4
  351. package/src/rokkit/atoms.css +0 -69
  352. package/src/rokkit/carousel.css +0 -19
  353. package/src/rokkit/layout.css +0 -17
  354. package/src/rokkit/molecules.css +0 -119
  355. package/src/rokkit/organisms.css +0 -315
  356. package/src/rokkit.css +0 -11
@@ -0,0 +1,70 @@
1
+ /**
2
+ * FloatingNavigation - Minimal Theme Styles
3
+ *
4
+ * Clean, understated styling with subtle borders.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Container
9
+ ============================================================================= */
10
+
11
+ [data-style='minimal'] [data-floating-nav] {
12
+ @apply bg-surface-z1 border-surface-z4 border bg-none;
13
+ }
14
+
15
+ /* =============================================================================
16
+ Header
17
+ ============================================================================= */
18
+
19
+ [data-style='minimal'] [data-floating-nav-title] {
20
+ @apply text-surface-z5;
21
+ }
22
+
23
+ [data-style='minimal'] [data-floating-nav-pin] {
24
+ @apply text-surface-z5;
25
+ }
26
+
27
+ [data-style='minimal'] [data-floating-nav-pin]:hover {
28
+ @apply text-surface-z8;
29
+ }
30
+
31
+ [data-style='minimal'] [data-floating-nav-pin][aria-pressed='true'] {
32
+ @apply text-surface-z9;
33
+ }
34
+
35
+ /* =============================================================================
36
+ Items
37
+ ============================================================================= */
38
+
39
+ [data-style='minimal'] [data-floating-nav-item] {
40
+ @apply text-surface-z7;
41
+ }
42
+
43
+ [data-style='minimal'] [data-floating-nav-item]:hover {
44
+ @apply bg-surface-z2 text-surface-z9 bg-none;
45
+ }
46
+
47
+ [data-style='minimal'] [data-floating-nav-item][data-active] {
48
+ @apply text-surface-z10 bg-surface-z2 bg-none;
49
+ }
50
+
51
+ [data-style='minimal'] [data-floating-nav-item]:focus-visible {
52
+ @apply ring-surface-z5 ring-1 outline-none;
53
+ }
54
+
55
+ /* Icon */
56
+ [data-style='minimal'] [data-floating-nav-icon] {
57
+ @apply text-surface-z6;
58
+ }
59
+
60
+ [data-style='minimal'] [data-floating-nav-item][data-active] [data-floating-nav-icon] {
61
+ @apply text-surface-z10;
62
+ }
63
+
64
+ /* =============================================================================
65
+ Active Indicator
66
+ ============================================================================= */
67
+
68
+ [data-style='minimal'] [data-floating-nav-indicator] {
69
+ @apply bg-surface-z8 bg-none;
70
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @rokkit/themes - Minimal Theme
3
+ *
4
+ * Clean, understated visual styling with subtle borders and soft backgrounds.
5
+ * Use with data-style="minimal" wrapper.
6
+ */
7
+
8
+ @import './button.css';
9
+ @import './toolbar.css';
10
+ @import './tabs.css';
11
+ @import './toggle.css';
12
+ @import './switch.css';
13
+ @import './list.css';
14
+ @import './tree.css';
15
+ @import './select.css';
16
+ @import './menu.css';
17
+ @import './dropdown.css';
18
+ @import './floating-action.css';
19
+ @import './input.css';
20
+ @import './table.css';
21
+ @import './search-filter.css';
22
+ @import './range.css';
23
+ @import './timeline.css';
24
+ @import './floating-navigation.css';
25
+ @import './toc.css';
26
+ @import './card.css';
27
+ @import './message.css';
28
+ @import './status-list.css';
29
+ @import './step-indicator.css';
30
+ @import './chart.css';
31
+ @import './swatch.css';
@@ -1,154 +1,171 @@
1
- /* .minimal input, */
1
+ /* Minimal Theme - Form field and input styles
2
+ * Underline-only inputs with animated expanding focus line.
3
+ */
2
4
 
3
- .minimal textarea,
4
- .minimal select,
5
- .minimal fieldset {
6
- @apply rounded leading-loose px-2 border border-neutral-muted outline-none;
5
+ /* Input root: transparent background, bottom border only */
6
+ [data-style='minimal'] [data-input-root] {
7
+ @apply border-surface-z4 relative flex items-center border-b bg-transparent p-0;
8
+ border-radius: 0;
9
+ background-image: none;
10
+ transition: background-color 150ms ease;
7
11
  }
8
12
 
9
- .minimal fieldset {
10
- @apply p-4 pt-2 gap-2 rounded-md;
13
+ /* Hover: very subtle neutral tint */
14
+ [data-style='minimal'] [data-input-root]:hover:not(:focus-within) {
15
+ @apply bg-surface-z2;
16
+ background-image: none;
11
17
  }
12
- .minimal fieldset legend {
13
- @apply px-2 border-l border-r rounded-md leading-tight border-neutral-muted hover:text-primary select-none;
18
+
19
+ /* Focus: keep transparent the ::after animated line handles the accent */
20
+ [data-style='minimal'] [data-input-root]:focus-within {
21
+ @apply bg-surface-z1;
22
+ background-image: none;
14
23
  }
15
- .minimal fieldset icon {
16
- @apply text-2xl;
24
+
25
+ /* Animated underline — grows left to right on focus */
26
+ [data-style='minimal'] [data-input-root]::after {
27
+ content: '';
28
+ position: absolute;
29
+ bottom: -1px;
30
+ left: 0;
31
+ width: 0%;
32
+ height: 2px;
33
+ @apply bg-secondary-z6;
34
+ transition: width 0.3s ease;
17
35
  }
18
36
 
19
- .minimal input-field {
20
- @apply w-full m-0 py-1;
37
+ [data-style='minimal'] [data-input-root]:focus-within::after {
38
+ width: 100%;
21
39
  }
22
40
 
23
- .minimal input-field field {
24
- @apply box-border border-b-1 border-neutral-muted min-h-9 overflow-hidden;
25
- @apply focus-within:border-b-secondary-600;
41
+ /* Inputs inside wrapper */
42
+ [data-style='minimal']
43
+ [data-input-root]
44
+ input:not([type='checkbox'], [type='radio'], [type='color']),
45
+ [data-style='minimal'] [data-input-root] textarea,
46
+ [data-style='minimal'] [data-input-root] select {
47
+ @apply text-surface-z9 w-full border-none bg-transparent px-1 py-1.5 outline-none;
48
+ border-radius: 0;
49
+ font-size: 0.875rem;
50
+ line-height: 1.25rem;
51
+ transition: color 150ms ease;
26
52
  }
27
- .minimal input-field:focus-within label {
28
- @apply text-secondary-600;
53
+
54
+ [data-style='minimal'] [data-input-root] textarea {
55
+ @apply resize-vertical min-h-20 py-2;
29
56
  }
30
- .minimal input-field span {
31
- @apply border-r border-neutral-muted bg-neutral-base px-1 h-full aspect-square;
57
+
58
+ /* Select inside input-root: match text input appearance */
59
+ [data-style='minimal'] [data-input-root] [data-select-trigger] {
60
+ @apply text-surface-z9 rounded-none border-none bg-transparent px-1 shadow-none ring-0 focus:outline-none;
61
+ font-size: 0.875rem;
62
+ background-image: none;
63
+ transition: color 150ms ease;
32
64
  }
33
- .minimal input-field input,
34
- .minimal input-field textarea,
35
- .minimal input-field select,
36
- .minimal input-field > field > :not(icon) {
37
- @apply flex-grow border-0 focus:outline-none bg-transparent;
65
+
66
+ [data-style='minimal'] [data-input-root] [data-select-trigger]:hover:not(:disabled) {
67
+ @apply bg-transparent;
68
+ background-image: none;
38
69
  }
39
70
 
40
- .minimal input-field label {
41
- @apply leading-6 w-full uppercase text-sm text-neutral;
71
+ [data-style='minimal'] [data-input-root] [data-select][data-open='true'] [data-select-trigger] {
72
+ @apply border-none bg-transparent shadow-none ring-0;
42
73
  }
43
- .minimal input-field message {
44
- @apply px-2 py-1 bg-neutral-base rounded;
74
+
75
+ /* Labels: smaller, uppercase */
76
+ [data-style='minimal'] [data-field] > label {
77
+ @apply text-surface-z5 text-xs tracking-wide uppercase;
78
+ transition: color 150ms ease;
45
79
  }
46
80
 
47
- .minimal input-field.fail {
48
- @apply bg-error rounded px-2;
81
+ [data-style='minimal'] [data-form-root] label {
82
+ @apply text-surface-z5 text-xs tracking-wide uppercase;
49
83
  }
50
84
 
51
- .minimal input-range range-track {
52
- @apply h-1 mt-3 relative;
85
+ /* Focused label: secondary color */
86
+ [data-style='minimal'] [data-field]:has([data-input-root]:focus-within) > label {
87
+ @apply text-secondary-z6;
53
88
  }
54
- .minimal input-range range-track span {
55
- @apply bg-neutral-subtle box-border border-neutral-muted rounded-full;
89
+
90
+ /* Field root */
91
+ [data-style='minimal'] [data-field-root] {
92
+ @apply gap-0.5;
56
93
  }
57
- .minimal input-range range-track selected {
58
- @apply border -top-0px -bottom-0px border-secondary bg-secondary-600 rounded-full;
94
+
95
+ /* Info field value */
96
+ [data-style='minimal'] [data-field-info] {
97
+ @apply text-primary-z6;
59
98
  }
60
- .minimal input-range range-track thumb {
61
- @apply rounded-full;
99
+
100
+ /* Separator */
101
+ [data-style='minimal'] [data-form-separator] {
102
+ @apply border-surface-z3;
62
103
  }
63
104
 
64
- .minimal input-range range-ticks {
65
- font-size: 6px;
66
- @apply bg-primary-100;
105
+ /* Disabled state */
106
+ [data-style='minimal'] [data-field-disabled] [data-input-root] {
107
+ @apply border-surface-z2 cursor-not-allowed opacity-40;
67
108
  }
68
109
 
69
- .minimal .bookend range-track span::before,
70
- .minimal .bookend range-track span::after {
71
- content: '';
72
- @apply absolute w-1px rounded-full -top-2 -bottom-2 bg-gray-300;
110
+ [data-style='minimal'] [data-field-disabled] [data-input-root]::after {
111
+ display: none;
73
112
  }
74
- .minimal .bookend range-track span::before {
75
- @apply -left-1px;
113
+
114
+ /* Error state */
115
+ [data-style='minimal'] [data-field-state='fail'] [data-input-root] {
116
+ @apply border-danger-z4 bg-danger-z1;
76
117
  }
77
- .minimal .bookend range-track span::after {
78
- @apply -right-2px;
118
+
119
+ [data-style='minimal'] [data-field-state='fail'] [data-input-root]:hover:not(:focus-within) {
120
+ @apply bg-danger-z2;
79
121
  }
80
122
 
81
- /* .minimal tick {
82
- @apply h-6;
83
- } */
84
- .minimal tick span {
85
- @apply border-neutral h-full;
123
+ [data-style='minimal'] [data-field-state='fail'] [data-input-root]::after {
124
+ @apply bg-danger-z5;
86
125
  }
87
- .minimal tick p {
88
- @apply items-top;
89
- font-size: 8px;
126
+
127
+ /* Pass state */
128
+ [data-style='minimal'] [data-field-state='pass'] [data-input-root] {
129
+ @apply bg-success-z1;
90
130
  }
91
131
 
92
- .minimal thumb {
93
- @apply -top-1.5 bg-secondary shadow-xl border border-secondary;
132
+ [data-style='minimal'] [data-field-state='pass'] [data-input-root]:hover:not(:focus-within) {
133
+ @apply bg-success-z2;
134
+ }
135
+
136
+ [data-style='minimal'] [data-field-state='pass'] [data-input-root]::after {
137
+ @apply bg-success-z5;
138
+ width: 100%;
139
+ }
140
+
141
+ /* Description */
142
+ [data-style='minimal'] [data-description] {
143
+ @apply text-surface-z5 mt-0.5 text-xs;
144
+ }
145
+
146
+ /* Message */
147
+ [data-style='minimal'] [data-message] {
148
+ @apply text-danger-z5 mt-0.5 text-xs;
149
+ }
150
+
151
+ /* Checkbox */
152
+ [data-style='minimal'] [data-checkbox-icon] {
153
+ @apply text-surface-z5 text-lg;
154
+ }
155
+
156
+ [data-style='minimal']
157
+ [data-checkbox-root][data-variant='custom']:has(input:checked)
158
+ [data-checkbox-icon] {
159
+ @apply text-secondary-z6;
160
+ }
161
+
162
+ /* Checkbox label: secondary on focus (checkbox has no input-root) */
163
+ [data-style='minimal'] [data-field-type='checkbox'] [data-field]:has(:focus-within) > label {
164
+ @apply text-secondary-z6;
165
+ }
166
+
167
+ /* Placeholders */
168
+ [data-style='minimal'] [data-input-root] input::placeholder,
169
+ [data-style='minimal'] [data-input-root] textarea::placeholder {
170
+ @apply text-surface-z3;
94
171
  }
95
- .minimal thumb.sliding::before {
96
- content: '';
97
- @apply absolute left-0 top-0 right-0 bottom-0 bg-secondary-400 opacity-30 rounded-full;
98
- transform: scale(2, 2);
99
- }
100
-
101
- .minimal rating {
102
- @apply text-secondary-600 text-xl focus:outline-none;
103
- }
104
- .minimal rating > icon {
105
- @apply w-8;
106
- }
107
- .minimal rating:focus-within icon[aria-checked='true'] {
108
- @apply text-primary-600;
109
- }
110
-
111
- .minimal rating icon.hovering > i {
112
- @apply text-secondary-600;
113
- }
114
- /* .error,
115
- .fail {
116
- input,
117
- textarea,
118
- select {
119
- @apply text-error border-error bg-error;
120
- }
121
- message {
122
- @apply text-error bg-error rounded-md;
123
- }
124
- }
125
- .info {
126
- input,
127
- textarea,
128
- select {
129
- @apply text-info border-info;
130
- }
131
- message {
132
- @apply text-info bg-info rounded-md;
133
- }
134
- }
135
- .warn {
136
- input,
137
- textarea,
138
- select {
139
- @apply text-warn border-warn bg-warn;
140
- }
141
- message {
142
- @apply text-warn bg-warn rounded-md;
143
- }
144
- }
145
- .pass {
146
- input,
147
- textarea,
148
- select {
149
- @apply text-pass border-pass bg-pass;
150
- }
151
- message {
152
- @apply text-pass bg-pass rounded-md;
153
- }
154
- } */
@@ -1,136 +1,128 @@
1
- .minimal item {
2
- @apply flex items-center gap-1;
3
- }
4
- .minimal accordion {
5
- @apply flex-grow overflow-y-scroll focus-within:outline-none;
6
- }
7
- .minimal accordion > div,
8
- .minimal accordion > details {
9
- @apply relative;
10
- }
11
- .minimal list,
12
- .minimal accordion summary {
13
- @apply border-l-2px border-l-neutral-muted;
14
- }
15
- .minimal :not(accordion > div) list:focus-within {
16
- @apply outline outline-offset-3 outline-secondary-700;
17
- }
18
- .minimal list > item,
19
- .minimal accordion summary {
20
- @apply px-2 text-neutral-700 bg-neutral-base items-center leading-8;
21
- }
1
+ /**
2
+ * List - Minimal Theme Styles
3
+ *
4
+ * Clean, understated list with subtle left-border accents.
5
+ * Hover is text-only (no border); active/selected uses secondary accent border.
6
+ */
22
7
 
23
- .minimal item > a {
24
- @apply px-0 gap-2;
25
- }
8
+ /* =============================================================================
9
+ List Container
10
+ ============================================================================= */
26
11
 
27
- .minimal list item:hover {
28
- @apply -m-l-2px border-l-2px border-l-neutral-subtle;
29
- }
30
- .minimal accordion summary:hover {
31
- @apply border-l-neutral-subtle;
32
- }
33
- .minimal list item[aria-selected='true'] {
34
- @apply -m-l-2px border-l-2px border-l-secondary-600 text-secondary-600 bg-neutral-subtle;
35
- }
36
- .minimal accordion .is-selected summary {
37
- @apply border-l-2px border-l-secondary-600 bg-neutral-subtle;
12
+ [data-style='minimal'] [data-list]:focus-within {
13
+ @apply outline-none;
38
14
  }
39
15
 
40
- .minimal accordion .is-expanded summary {
41
- @apply sticky top-0 z-1;
42
- }
43
- .minimal accordion item > a {
44
- @apply px-0;
45
- }
46
- .minimal item > img,
47
- .minimal item > a > img {
48
- @apply w-6 h-6;
49
- }
16
+ /* =============================================================================
17
+ List Items
18
+ ============================================================================= */
50
19
 
51
- .minimal accordion .is-selected summary,
52
- .minimal accordion .is-selected summary > a,
53
- .minimal accordion item[aria-selected='true'],
54
- .minimal accordion item[aria-selected='true'] > a {
55
- @apply text-secondary-600;
56
- /* @apply hover:text-secondary; */
20
+ [data-style='minimal'] [data-list] [data-list-item] {
21
+ @apply text-surface-z7 border-0 border-solid border-transparent;
57
22
  }
58
23
 
59
- /* .minimal nested-list {
60
- @apply text-sm;
61
- } */
62
- .minimal node > div {
63
- @apply h-7 px-2 py-1;
64
- }
65
- .minimal node > item {
66
- @apply px-1 gap-1;
24
+ [data-style='minimal'] [data-list] a[data-list-item],
25
+ [data-style='minimal'] [data-list] button[data-list-item] {
26
+ @apply text-surface-z6;
67
27
  }
68
- .minimal node > div > span > i {
69
- @apply border-none w-3;
28
+
29
+ /* Hover and focus — text brightening only, no border */
30
+ [data-style='minimal']
31
+ [data-list]
32
+ [data-list-item]:hover:not(:disabled):not([data-disabled='true']),
33
+ [data-style='minimal']
34
+ [data-list]
35
+ [data-list-item]:focus:not(:disabled):not([data-disabled='true']) {
36
+ @apply text-surface-z9 bg-none outline-none;
70
37
  }
71
- .minimal node > div > icon {
72
- @apply text-xs text-neutral-400;
38
+
39
+ /* Active state — muted when list not focused */
40
+ [data-style='minimal'] [data-list] [data-list-item][data-active='true'] {
41
+ @apply text-surface-z8 border-secondary-z3 border-l-2 bg-none;
73
42
  }
74
- .minimal node[aria-selected='true'] > item > p {
75
- @apply text-secondary-600;
43
+
44
+ /* Active state — full highlight when list has focus */
45
+ [data-style='minimal'] [data-list]:focus-within [data-list-item][data-active='true'] {
46
+ @apply text-secondary-z7 border-secondary-z4 border-l-2 bg-none;
76
47
  }
77
- .minimal node.is-selected icon {
78
- @apply text-secondary-600;
79
- @apply hover:text-secondary-600;
48
+
49
+ /* Active + hover/focus */
50
+ [data-style='minimal'] [data-list] [data-list-item][data-active='true']:hover:not(:disabled),
51
+ [data-style='minimal'] [data-list] [data-list-item][data-active='true']:focus:not(:disabled) {
52
+ @apply text-secondary-z8 bg-none;
80
53
  }
81
54
 
82
- .minimal .small list > item,
83
- .minimal .small accordion summary {
84
- @apply text-sm;
55
+ /* =============================================================================
56
+ Item Elements
57
+ ============================================================================= */
58
+
59
+ [data-style='minimal'] [data-list] [data-list-item] [data-item-icon] {
60
+ @apply text-surface-z5;
85
61
  }
86
62
 
87
- .minimal .small node > div {
88
- @apply text-sm gap-1 h-5;
63
+ [data-style='minimal'] [data-list] [data-list-item]:hover:not(:disabled) [data-item-icon],
64
+ [data-style='minimal'] [data-list] [data-list-item]:focus:not(:disabled) [data-item-icon] {
65
+ @apply text-surface-z6;
89
66
  }
90
- .minimal .small node > div > icon {
91
- @apply text-sm;
67
+
68
+ [data-style='minimal'] [data-list] [data-list-item][data-active='true'] [data-item-icon] {
69
+ @apply text-secondary-z5;
92
70
  }
93
- .minimal .small item > img,
94
- .minimal .small item > a > img {
95
- @apply w-4 h-4;
71
+
72
+ [data-style='minimal'] [data-list] [data-list-item] [data-item-description] {
73
+ @apply text-surface-z5;
96
74
  }
97
- .minimal .small item > a > icon {
98
- @apply text-sm leading-6;
75
+
76
+ [data-style='minimal'] [data-list] [data-list-item][data-active='true'] [data-item-description] {
77
+ @apply text-secondary-z6;
99
78
  }
100
- .minimal accordion.indented list > item {
101
- @apply px-4;
79
+
80
+ [data-style='minimal'] [data-list] [data-list-item] [data-item-badge] {
81
+ @apply text-surface-z6 border-surface-z4 border bg-transparent bg-none;
102
82
  }
103
83
 
104
- .minimal .folder-tree {
105
- @apply h-full bg-neutral-inset min-w-40;
84
+ [data-style='minimal'] [data-list] [data-list-item][data-active='true'] [data-item-badge] {
85
+ @apply text-secondary-z7 border-secondary-z4 bg-none;
106
86
  }
107
87
 
108
- /* .minimal node > div > i {
109
- @apply border-neutral-muted;
110
- } */
88
+ /* =============================================================================
89
+ Groups
90
+ ============================================================================= */
111
91
 
112
- .minimal crumbs {
113
- @apply flex-grow gap-1 text-sm;
92
+ [data-style='minimal'] [data-list] [data-list-group] {
93
+ @apply text-surface-z5;
114
94
  }
115
- .minimal crumbs crumb.is-selected {
116
- @apply text-secondary;
95
+
96
+ /* Group hover — text-only, no border */
97
+ [data-style='minimal'] [data-list] [data-list-group]:hover:not(:disabled),
98
+ [data-style='minimal'] [data-list] [data-list-group]:focus:not(:disabled) {
99
+ @apply text-surface-z7 bg-none;
117
100
  }
118
101
 
119
- .minimal toggle-switch {
120
- @apply min-w-12 min-h-6 rounded mx-auto;
121
- @apply bg-neutral-subtle border border-neutral-muted;
122
- @apply leading-loose p-2px;
102
+ /* =============================================================================
103
+ Separator
104
+ ============================================================================= */
105
+
106
+ [data-style='minimal'] [data-list] [data-list-separator] {
107
+ @apply bg-surface-z3 bg-none;
123
108
  }
124
- .minimal toggle-switch item {
125
- @apply items-center justify-center px-3 gap-1;
126
- @apply min-w-6 min-h-6 rounded cursor-pointer;
109
+
110
+ /* =============================================================================
111
+ Multi-Selection
112
+ ============================================================================= */
113
+
114
+ [data-style='minimal'] [data-list] [data-list-item][data-selected='true'] {
115
+ @apply text-secondary-z7 border-secondary-z3 border-l-2;
127
116
  }
128
- .minimal toggle-switch.compact {
129
- @apply rounded-full;
117
+
118
+ [data-style='minimal'] [data-list]:focus-within [data-list-item][data-selected='true'] {
119
+ @apply text-secondary-z7 border-secondary-z4 border-l-2;
130
120
  }
131
- .minimal toggle-switch.compact > item {
132
- @apply px-0 gap-0 rounded-full;
121
+
122
+ [data-style='minimal'] [data-list] [data-list-item][data-selected='true']:hover:not(:disabled) {
123
+ @apply text-secondary-z8;
133
124
  }
134
- .minimal toggle-switch item[aria-selected='true'] {
135
- @apply bg-secondary text-neutral-800;
125
+
126
+ [data-style='minimal'] [data-list] [data-list-item][data-selected='true'] [data-item-icon] {
127
+ @apply text-secondary-z5;
136
128
  }