@rokkit/themes 1.0.0-next.98 → 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
@@ -1,65 +1,164 @@
1
- .material input {
2
- @apply border-box focus:outline-none;
1
+ /* Material Theme - Form field and input styles
2
+ * Material Design outlined text field with floating label.
3
+ */
4
+
5
+ /* Form background */
6
+ [data-style='material'] [data-form-root] {
7
+ @apply bg-surface-z1;
3
8
  }
4
- .material input-field {
5
- @apply box-border border border-neutral-muted rounded;
6
- @apply text-neutral-800 leading-loose relative pb-0;
9
+
10
+ /* Field root: relative positioning for floating label */
11
+ [data-style='material'] [data-field-root] {
12
+ @apply relative gap-0;
7
13
  }
8
- .material input-field.empty label {
9
- @apply absolute top-0 my-3.5 align-middle;
14
+
15
+ /* Input root: outlined border — force transparent even in dark mode
16
+ * (prevents body[data-mode="dark"][data-style="rokkit"] bleed on comparison pages) */
17
+ [data-style='material'] [data-input-root],
18
+ [data-mode='dark'] [data-style='material'] [data-input-root] {
19
+ @apply border-surface-z4 flex items-center rounded border bg-transparent p-0 transition-all;
20
+ background-color: transparent;
21
+ background-image: none;
10
22
  }
11
23
 
12
- .material input-field input,
13
- .material input-field > field > :not(icon) {
14
- @apply border-none focus:outline-none bg-transparent;
24
+ [data-style='material'] [data-input-root]:hover {
25
+ @apply border-surface-z6;
15
26
  }
16
27
 
17
- .material input-field:focus-within {
18
- @apply border-primary;
28
+ [data-style='material'] [data-input-root]:focus-within {
29
+ @apply border-primary-z5 bg-transparent;
30
+ background-image: none;
19
31
  }
20
32
 
21
- .material input-field label,
22
- .material input-field:focus-within label {
23
- @apply bg-neutral-base absolute block z-1;
24
- @apply -top-2 left-3 my-0 px-1 leading-tight opacity-100;
33
+ /* Inputs inside wrapper — also target dark-mode to prevent rokkit bleed */
34
+ [data-style='material']
35
+ [data-input-root]
36
+ input:not([type='checkbox'], [type='radio'], [type='color']),
37
+ [data-mode='dark']
38
+ [data-style='material']
39
+ [data-input-root]
40
+ input:not([type='checkbox'], [type='radio'], [type='color']),
41
+ [data-style='material'] [data-input-root] textarea,
42
+ [data-mode='dark'] [data-style='material'] [data-input-root] textarea,
43
+ [data-style='material'] [data-input-root] select,
44
+ [data-mode='dark'] [data-style='material'] [data-input-root] select {
45
+ @apply text-surface-z9 w-full border-none bg-transparent px-3 py-2.5 transition-all outline-none;
46
+ background-color: transparent;
47
+ border-radius: 4px;
48
+ font-size: 0.875rem;
49
+ line-height: 1.25rem;
25
50
  }
26
51
 
27
- .material input-select {
28
- @apply rounded cursor-pointer select-none;
52
+ [data-style='material'] [data-input-root] textarea {
53
+ @apply resize-vertical min-h-20;
29
54
  }
30
- .material input-select > selected-item {
31
- @apply h-10 pl-4 pr-0 items-center bg-neutral-base normal-case;
32
- @apply rounded border border-neutral-muted text-neutral-800;
33
- @apply hover:bg-neutral-muted hover:border-secondary-600;
55
+
56
+ /* Select inside input-root */
57
+ [data-style='material'] [data-input-root] [data-select-trigger] {
58
+ @apply text-surface-z9 rounded border-none bg-transparent px-3 shadow-none ring-0 focus:outline-none;
59
+ font-size: 0.875rem;
34
60
  }
35
61
 
36
- .material input-select:hover square-icon {
37
- @apply border-neutral;
62
+ /* Suppress standalone select open-state ring/border when inside input-root */
63
+ [data-style='material'] [data-input-root] [data-select][data-open='true'] [data-select-trigger] {
64
+ @apply border-none shadow-none ring-0;
38
65
  }
39
- .material input-select scroll {
40
- @apply mt-2 shadow-lg;
66
+
67
+ /* Labels: floating label effect (exclude checkbox — uses inline label) */
68
+ [data-style='material'] [data-field-root]:not([data-field-type='checkbox']) [data-field] > label {
69
+ @apply text-surface-z5 pointer-events-none absolute left-3 px-1 text-sm transition-all;
70
+ top: 50%;
71
+ transform: translateY(-50%);
72
+ z-index: 1;
41
73
  }
42
74
 
43
- .material input-range range-track selected {
44
- @apply border-0 bg-primary;
75
+ /* Label floats up when input has focus or value */
76
+ [data-style='material']
77
+ [data-field-root]:not([data-field-type='checkbox'])
78
+ [data-field]:has([data-input-root]:focus-within)
79
+ > label,
80
+ [data-style='material']
81
+ [data-field-root]:not([data-field-type='checkbox']):not([data-field-empty='true'])
82
+ [data-field]
83
+ > label {
84
+ @apply bg-surface-z1 text-xs;
85
+ top: 0;
86
+ transform: translateY(-50%);
87
+ padding-inline: 0.25rem;
88
+ border-radius: 2px;
45
89
  }
46
- .material input-range range-track thumb {
47
- @apply -top-1.5 bg-primary-600;
90
+
91
+ [data-style='material']
92
+ [data-field-root]:not([data-field-type='checkbox'])
93
+ [data-field]:has([data-input-root]:focus-within)
94
+ > label {
95
+ @apply text-primary-z5;
48
96
  }
49
- .material input-range thumb.sliding::before {
50
- @apply bg-primary-400;
97
+
98
+ /* Checkbox fields: inline label, centered with icon */
99
+ [data-style='material'] [data-field-type='checkbox'] [data-field] {
100
+ @apply flex flex-row items-center gap-2;
51
101
  }
52
102
 
53
- .material rating {
54
- @apply text-neutral-600 text-xl focus:outline-none;
103
+ [data-style='material'] [data-field-type='checkbox'] [data-field] > label {
104
+ @apply text-surface-z7 text-sm;
55
105
  }
56
- .material rating > icon {
57
- @apply w-8;
106
+
107
+ /* Form-level labels (FormRenderer) */
108
+ [data-style='material'] [data-form-root] label {
109
+ @apply text-surface-z5 text-sm;
110
+ }
111
+
112
+ /* Info field value */
113
+ [data-style='material'] [data-field-info] {
114
+ @apply text-primary-z6;
58
115
  }
59
- .material rating:focus-within icon[aria-checked='true'] {
60
- @apply text-secondary;
116
+
117
+ /* Separator */
118
+ [data-style='material'] [data-form-separator] {
119
+ @apply border-surface-z3;
120
+ }
121
+
122
+ /* Disabled state */
123
+ [data-style='material'] [data-field-disabled] [data-input-root] {
124
+ @apply border-surface-z3 bg-surface-z1 cursor-not-allowed opacity-60;
125
+ }
126
+
127
+ /* Error state */
128
+ [data-style='material'] [data-field-state='fail'] [data-input-root] {
129
+ @apply border-danger-z4;
130
+ }
131
+
132
+ [data-style='material']
133
+ [data-field-root]:not([data-field-type='checkbox'])[data-field-state='fail']
134
+ [data-field]
135
+ > label {
136
+ @apply text-danger-z4;
137
+ }
138
+
139
+ /* Description */
140
+ [data-style='material'] [data-description] {
141
+ @apply text-surface-z5 mt-1 px-3 text-xs;
142
+ }
143
+
144
+ /* Message */
145
+ [data-style='material'] [data-message] {
146
+ @apply text-danger-z5 mt-1 px-3 text-xs;
147
+ }
148
+
149
+ /* Checkbox */
150
+ [data-style='material'] [data-checkbox-icon] {
151
+ @apply text-surface-z5 text-lg;
152
+ }
153
+
154
+ [data-style='material']
155
+ [data-checkbox-root][data-variant='custom']:has(input:checked)
156
+ [data-checkbox-icon] {
157
+ @apply text-primary-z5;
61
158
  }
62
159
 
63
- .material rating icon.hovering > i {
64
- @apply text-primary;
160
+ /* Placeholders */
161
+ [data-style='material'] [data-input-root] input::placeholder,
162
+ [data-style='material'] [data-input-root] textarea::placeholder {
163
+ @apply text-surface-z4;
65
164
  }
@@ -1,96 +1,126 @@
1
- .material accordion,
2
- .material list {
3
- @apply rounded gap-1px;
4
- }
5
- .material list > item {
6
- @apply bg-neutral-subtle;
7
- }
8
- .material item {
9
- @apply flex leading-10 items-center gap-2 px-3;
10
- }
11
- .material item > img,
12
- .material item > a > img {
13
- @apply w-4 h-4 rounded;
14
- }
15
- .material .tab.is-hovering {
16
- @apply bg-primary;
1
+ /**
2
+ * List - Material Theme Styles
3
+ *
4
+ * Material Design inspired with subtle elevation and ripple effects.
5
+ */
6
+
7
+ /* =============================================================================
8
+ List Container
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-list]:focus-within {
12
+ @apply outline-none;
17
13
  }
18
14
 
19
- .material tabs .tab {
20
- @apply cursor-pointer;
15
+ /* =============================================================================
16
+ List Items
17
+ ============================================================================= */
18
+
19
+ [data-style='material'] [data-list] [data-list-item] {
20
+ @apply text-surface-z8;
21
21
  }
22
- .material tabs .tab[aria-selected='true'] {
23
- @apply border-b-3 border-primary;
22
+
23
+ [data-style='material'] [data-list] a[data-list-item],
24
+ [data-style='material'] [data-list] button[data-list-item] {
25
+ @apply text-surface-z7;
24
26
  }
25
- .material tabs.is-below .tab[aria-selected='true'] {
26
- @apply border-b-0 border-t-3;
27
+
28
+ /* Hover and focus (keyboard navigation) */
29
+ [data-style='material']
30
+ [data-list]
31
+ [data-list-item]:hover:not(:disabled):not([data-disabled='true']),
32
+ [data-style='material']
33
+ [data-list]
34
+ [data-list-item]:focus:not(:disabled):not([data-disabled='true']) {
35
+ @apply bg-surface-z2 text-surface-z10 bg-none outline-none;
27
36
  }
28
37
 
29
- .material node > div {
30
- @apply h-7 px-2;
38
+ /* Active state muted when list not focused */
39
+ [data-style='material'] [data-list] [data-list-item][data-active='true'] {
40
+ @apply bg-surface-z2 text-primary-z9 bg-none;
31
41
  }
32
- .material node > item {
33
- @apply px-1 gap-1 bg-transparent;
42
+
43
+ /* Active state — full highlight when list has focus */
44
+ [data-style='material'] [data-list]:focus-within [data-list-item][data-active='true'] {
45
+ @apply bg-primary-z2 text-primary-z9 bg-none;
34
46
  }
35
- .material node > span {
36
- @apply w-3;
47
+
48
+ /* Active + hover/focus */
49
+ [data-style='material'] [data-list] [data-list-item][data-active='true']:hover:not(:disabled),
50
+ [data-style='material'] [data-list] [data-list-item][data-active='true']:focus:not(:disabled) {
51
+ @apply bg-primary-z3 bg-none;
37
52
  }
38
53
 
39
- .material node > span > icon {
40
- @apply text-sm;
54
+ /* =============================================================================
55
+ Item Elements
56
+ ============================================================================= */
57
+
58
+ [data-style='material'] [data-list] [data-list-item] [data-item-icon] {
59
+ @apply text-surface-z5;
41
60
  }
42
61
 
43
- .material nested-list:focus-within {
44
- @apply outline-none;
62
+ [data-style='material'] [data-list] [data-list-item]:hover:not(:disabled) [data-item-icon],
63
+ [data-style='material'] [data-list] [data-list-item]:focus:not(:disabled) [data-item-icon] {
64
+ @apply text-surface-z7;
45
65
  }
46
66
 
47
- .material node > span > i {
48
- @apply border-transparent;
67
+ [data-style='material'] [data-list] [data-list-item][data-active='true'] [data-item-icon] {
68
+ @apply text-primary-z6;
49
69
  }
50
70
 
51
- .material accordion .is-expanded summary {
52
- @apply border-b border-neutral-muted rounded-b-none sticky top-0 z-1;
71
+ [data-style='material'] [data-list] [data-list-item] [data-item-description] {
72
+ @apply text-surface-z5;
53
73
  }
54
74
 
55
- .material accordion .is-selected summary {
56
- @apply border-b-primary border-b text-primary-600;
57
- @apply hover:text-primary-600;
75
+ [data-style='material'] [data-list] [data-list-item][data-active='true'] [data-item-description] {
76
+ @apply text-primary-z7;
58
77
  }
59
- /* .material list item[aria-selected='true'] {
60
- @apply bg-primary text-primary-800;
61
- } */
62
- .material node[aria-selected='true'],
63
- .material list item[aria-selected='true'] {
64
- @apply bg-primary text-neutral-base;
78
+
79
+ [data-style='material'] [data-list] [data-list-item] [data-item-badge] {
80
+ @apply bg-surface-z2 text-surface-z6 rounded-full bg-none;
65
81
  }
66
- .material crumbs {
67
- @apply flex-grow gap-1 text-sm;
82
+
83
+ [data-style='material'] [data-list] [data-list-item][data-active='true'] [data-item-badge] {
84
+ @apply bg-primary-z2 text-primary-z8 bg-none;
68
85
  }
69
86
 
70
- .material toggle-switch item[aria-selected='true'] {
71
- @apply bg-primary text-neutral-200 dark:text-neutral-800;
87
+ /* =============================================================================
88
+ Groups
89
+ ============================================================================= */
90
+
91
+ [data-style='material'] [data-list] [data-list-group] {
92
+ @apply text-surface-z6 font-medium;
72
93
  }
73
- .material crumbs crumb.is-selected {
74
- @apply text-secondary;
94
+
95
+ [data-style='material'] [data-list] [data-list-group]:hover:not(:disabled),
96
+ [data-style='material'] [data-list] [data-list-group]:focus:not(:disabled) {
97
+ @apply bg-surface-z3 text-surface-z8 bg-none;
75
98
  }
76
99
 
77
- .material toggle-switch {
78
- @apply min-w-12 min-h-6 rounded-full mx-auto;
79
- @apply bg-neutral-subtle border border-neutral-muted;
80
- @apply p-2px;
100
+ /* =============================================================================
101
+ Separator
102
+ ============================================================================= */
103
+
104
+ [data-style='material'] [data-list] [data-list-separator] {
105
+ @apply bg-surface-z3 bg-none;
81
106
  }
82
- .material toggle-switch item {
83
- @apply items-center justify-center px-3 gap-1 leading-tight;
84
- @apply min-w-6 min-h-6 rounded-full cursor-pointer;
107
+
108
+ /* =============================================================================
109
+ Multi-Selection
110
+ ============================================================================= */
111
+
112
+ [data-style='material'] [data-list] [data-list-item][data-selected='true'] {
113
+ @apply bg-primary-z2 text-primary-z9 bg-none;
85
114
  }
86
115
 
87
- .material toggle-switch.compact > item {
88
- @apply px-0 gap-0;
116
+ [data-style='material'] [data-list]:focus-within [data-list-item][data-selected='true'] {
117
+ @apply bg-primary-z2 bg-none;
89
118
  }
90
119
 
91
- .minimal tabs .tab icon[role='img'] {
92
- @apply w-6 h-6;
120
+ [data-style='material'] [data-list] [data-list-item][data-selected='true']:hover:not(:disabled) {
121
+ @apply bg-primary-z3 bg-none;
93
122
  }
94
- .minimal tabs .tab icon[role='button'] {
95
- @apply w-4 h-4;
123
+
124
+ [data-style='material'] [data-list] [data-list-item][data-selected='true'] [data-item-icon] {
125
+ @apply text-primary-z6;
96
126
  }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Menu - Material Theme Styles
3
+ *
4
+ * Material Design inspired with elevation and shadows.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Menu Trigger
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-menu-trigger] {
12
+ @apply bg-surface-z1 border-surface-z4 text-surface-z8 border bg-none shadow-sm;
13
+ }
14
+
15
+ [data-style='material'] [data-menu-trigger]:hover:not(:disabled) {
16
+ @apply bg-surface-z2 text-surface-z10 border-surface-z5 bg-none shadow-md;
17
+ }
18
+
19
+ [data-style='material'] [data-menu-trigger]:focus-visible {
20
+ @apply ring-primary-z4 ring-2 outline-none;
21
+ }
22
+
23
+ [data-style='material'] [data-menu][data-open='true'] [data-menu-trigger] {
24
+ @apply bg-primary-z2 border-primary-z5 bg-none shadow-md;
25
+ }
26
+
27
+ /* Trigger elements */
28
+ [data-style='material'] [data-menu-trigger] [data-menu-icon] {
29
+ @apply text-surface-z5;
30
+ }
31
+
32
+ [data-style='material'] [data-menu-trigger]:hover:not(:disabled) [data-menu-icon] {
33
+ @apply text-surface-z7;
34
+ }
35
+
36
+ [data-style='material'] [data-menu-trigger] [data-menu-arrow] {
37
+ @apply text-surface-z5;
38
+ }
39
+
40
+ /* =============================================================================
41
+ Menu Dropdown
42
+ ============================================================================= */
43
+
44
+ [data-style='material'] [data-menu-dropdown] {
45
+ @apply bg-surface-z1 border-surface-z3 border bg-none shadow-lg;
46
+ }
47
+
48
+ /* =============================================================================
49
+ Menu Items
50
+ ============================================================================= */
51
+
52
+ [data-style='material'] [data-menu-item] {
53
+ @apply text-surface-z8;
54
+ }
55
+
56
+ [data-style='material'] [data-menu-item]:hover:not(:disabled),
57
+ [data-style='material'] [data-menu-item]:focus:not(:disabled) {
58
+ @apply bg-surface-z2 text-surface-z10 bg-none outline-none;
59
+ }
60
+
61
+ [data-style='material'] [data-menu-item]:focus-visible {
62
+ @apply ring-primary-z4 ring-2 outline-none ring-inset;
63
+ }
64
+
65
+ /* Item elements */
66
+ [data-style='material'] [data-menu-item] [data-item-icon] {
67
+ @apply text-surface-z5;
68
+ }
69
+
70
+ [data-style='material'] [data-menu-item]:hover:not(:disabled) [data-item-icon] {
71
+ @apply text-surface-z7;
72
+ }
73
+
74
+ [data-style='material'] [data-menu-item] [data-item-description] {
75
+ @apply text-surface-z5;
76
+ }
77
+
78
+ /* =============================================================================
79
+ Groups
80
+ ============================================================================= */
81
+
82
+ [data-style='material'] [data-menu-group] {
83
+ @apply text-surface-z5 font-medium;
84
+ }
85
+
86
+ /* =============================================================================
87
+ Divider
88
+ ============================================================================= */
89
+
90
+ [data-style='material'] [data-menu-separator] {
91
+ @apply bg-surface-z3 bg-none;
92
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Message - Material Theme Styles
3
+ */
4
+
5
+ [data-style='material'] [data-message-root][data-type='error'] {
6
+ @apply bg-error-z1 border-error-z3 text-error-z9 shadow-sm;
7
+ }
8
+ [data-style='material'] [data-message-root][data-type='error'] [data-message-icon],
9
+ [data-style='material'] [data-message-root][data-type='error'] [data-message-dismiss] {
10
+ @apply text-error-z6;
11
+ }
12
+
13
+ [data-style='material'] [data-message-root][data-type='warning'] {
14
+ @apply bg-warning-z1 border-warning-z3 text-warning-z9 shadow-sm;
15
+ }
16
+ [data-style='material'] [data-message-root][data-type='warning'] [data-message-icon],
17
+ [data-style='material'] [data-message-root][data-type='warning'] [data-message-dismiss] {
18
+ @apply text-warning-z6;
19
+ }
20
+
21
+ [data-style='material'] [data-message-root][data-type='info'] {
22
+ @apply bg-info-z1 border-info-z3 text-info-z9 shadow-sm;
23
+ }
24
+ [data-style='material'] [data-message-root][data-type='info'] [data-message-icon],
25
+ [data-style='material'] [data-message-root][data-type='info'] [data-message-dismiss] {
26
+ @apply text-info-z6;
27
+ }
28
+
29
+ [data-style='material'] [data-message-root][data-type='success'] {
30
+ @apply bg-success-z1 border-success-z3 text-success-z9 shadow-sm;
31
+ }
32
+ [data-style='material'] [data-message-root][data-type='success'] [data-message-icon],
33
+ [data-style='material'] [data-message-root][data-type='success'] [data-message-dismiss] {
34
+ @apply text-success-z6;
35
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Range - Material Theme Styles
3
+ *
4
+ * Flat design with subtle elevation.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Track
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-range-bar] {
12
+ @apply bg-surface-z3;
13
+ }
14
+
15
+ [data-style='material'] [data-range-selected] {
16
+ @apply bg-primary bg-none;
17
+ }
18
+
19
+ /* =============================================================================
20
+ Thumb
21
+ ============================================================================= */
22
+
23
+ [data-style='material'] [data-range-thumb] {
24
+ @apply bg-primary border-primary shadow-md;
25
+ }
26
+
27
+ [data-style='material'] [data-range-thumb][data-sliding] {
28
+ @apply shadow-lg;
29
+ box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 25%, transparent);
30
+ }
31
+
32
+ [data-style='material'] [data-range-thumb]:focus-visible {
33
+ box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 25%, transparent);
34
+ }
35
+
36
+ /* =============================================================================
37
+ Ticks
38
+ ============================================================================= */
39
+
40
+ [data-style='material'] [data-range-tick] {
41
+ @apply text-surface-z6;
42
+ }
43
+
44
+ [data-style='material'] [data-tick-bar] {
45
+ @apply border-surface-z5;
46
+ }
47
+
48
+ [data-style='material'] [data-tick-label] {
49
+ @apply text-surface-z6;
50
+ }
51
+
52
+ /* =============================================================================
53
+ Disabled
54
+ ============================================================================= */
55
+
56
+ [data-style='material'] [data-range][data-disabled] [data-range-thumb] {
57
+ @apply bg-surface-z4 border-surface-z4 shadow-none;
58
+ }
59
+
60
+ [data-style='material'] [data-range][data-disabled] [data-range-selected] {
61
+ @apply bg-surface-z4;
62
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * SearchFilter - Material Theme Styles
3
+ *
4
+ * Material Design inspired with elevation and shadows.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Input
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-search-input] {
12
+ @apply text-surface-z8 border-surface-z4 bg-surface-z1 border shadow-sm;
13
+ }
14
+
15
+ [data-style='material'] [data-search-input]:focus {
16
+ @apply border-primary-z5 ring-primary-z4 ring-1;
17
+ }
18
+
19
+ [data-style='material'] [data-search-input]::placeholder {
20
+ @apply text-surface-z5;
21
+ }
22
+
23
+ /* =============================================================================
24
+ Clear Button
25
+ ============================================================================= */
26
+
27
+ [data-style='material'] [data-search-clear] {
28
+ @apply text-surface-z5;
29
+ }
30
+
31
+ [data-style='material'] [data-search-clear]:hover {
32
+ @apply text-surface-z8 bg-surface-z2 rounded;
33
+ }
34
+
35
+ /* =============================================================================
36
+ Tags
37
+ ============================================================================= */
38
+
39
+ [data-style='material'] [data-search-tag] {
40
+ @apply text-surface-z8 bg-surface-z2 rounded-full bg-none shadow-sm;
41
+ }
42
+
43
+ [data-style='material'] [data-search-tag-remove] {
44
+ @apply text-surface-z6 rounded-full;
45
+ }
46
+
47
+ [data-style='material'] [data-search-tag-remove]:hover {
48
+ @apply text-surface-z9 bg-surface-z3;
49
+ }