@rokkit/themes 1.0.4 → 1.0.5

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 (246) hide show
  1. package/README.md +11 -19
  2. package/build.mjs +5 -21
  3. package/package.json +23 -132
  4. package/src/base/carousel.css +1 -2
  5. package/src/base/input.css +9 -5
  6. package/src/base/nav-content.css +3 -3
  7. package/src/base/stepper.css +9 -14
  8. package/src/frosted/button.css +6 -11
  9. package/src/frosted/card.css +5 -9
  10. package/src/frosted/dropdown.css +5 -10
  11. package/src/frosted/floating-action.css +2 -2
  12. package/src/frosted/input.css +2 -3
  13. package/src/frosted/list.css +25 -0
  14. package/src/frosted/menu.css +4 -8
  15. package/src/frosted/range.css +2 -2
  16. package/src/frosted/select.css +1 -1
  17. package/src/frosted/step-indicator.css +1 -2
  18. package/src/frosted/switch.css +2 -3
  19. package/src/frosted/timeline.css +1 -2
  20. package/src/index.css +2 -0
  21. package/src/index.js +0 -1
  22. package/src/material/floating-action.css +2 -2
  23. package/src/material/list.css +14 -0
  24. package/src/material/range.css +2 -2
  25. package/src/material/select.css +1 -1
  26. package/src/material/step-indicator.css +1 -2
  27. package/src/material/switch.css +1 -1
  28. package/src/material/tabs.css +2 -2
  29. package/src/material/timeline.css +1 -2
  30. package/src/material/toggle.css +2 -2
  31. package/src/minimal/floating-action.css +1 -1
  32. package/src/minimal/list.css +14 -0
  33. package/src/minimal/select.css +1 -13
  34. package/src/rokkit/floating-action.css +5 -5
  35. package/src/rokkit/floating-navigation.css +1 -1
  36. package/src/rokkit/index.css +0 -1
  37. package/src/rokkit/input.css +1 -1
  38. package/src/rokkit/list.css +25 -0
  39. package/src/rokkit/range.css +2 -2
  40. package/src/rokkit/select.css +1 -1
  41. package/src/rokkit/step-indicator.css +1 -2
  42. package/src/rokkit/swatch.css +1 -1
  43. package/src/rokkit/switch.css +1 -1
  44. package/src/rokkit/timeline.css +1 -2
  45. package/src/rokkit/upload-progress.css +4 -4
  46. package/src/zen-sumi/button.css +176 -0
  47. package/src/zen-sumi/card.css +104 -0
  48. package/src/zen-sumi/chart.css +41 -0
  49. package/src/zen-sumi/dropdown.css +53 -0
  50. package/src/zen-sumi/floating-action.css +68 -0
  51. package/src/zen-sumi/floating-navigation.css +74 -0
  52. package/src/{grada-ui → zen-sumi}/index.css +25 -30
  53. package/src/zen-sumi/input.css +145 -0
  54. package/src/zen-sumi/list.css +128 -0
  55. package/src/zen-sumi/menu.css +91 -0
  56. package/src/zen-sumi/message.css +37 -0
  57. package/src/zen-sumi/range.css +62 -0
  58. package/src/zen-sumi/search-filter.css +49 -0
  59. package/src/zen-sumi/select.css +160 -0
  60. package/src/zen-sumi/status-list.css +66 -0
  61. package/src/zen-sumi/step-indicator.css +40 -0
  62. package/src/zen-sumi/swatch.css +21 -0
  63. package/src/zen-sumi/switch.css +34 -0
  64. package/src/zen-sumi/table.css +118 -0
  65. package/src/zen-sumi/tabs.css +78 -0
  66. package/src/zen-sumi/timeline.css +46 -0
  67. package/src/zen-sumi/toc.css +22 -0
  68. package/src/zen-sumi/toggle.css +51 -0
  69. package/src/zen-sumi/toolbar.css +86 -0
  70. package/src/zen-sumi/tree.css +137 -0
  71. package/dist/ant-design.css +0 -2129
  72. package/dist/base.css +0 -6506
  73. package/dist/bits-ui.css +0 -2113
  74. package/dist/carbon.css +0 -2123
  75. package/dist/daisy-ui.css +0 -2138
  76. package/dist/frosted.css +0 -1953
  77. package/dist/grada-ui.css +0 -1915
  78. package/dist/index.css +0 -27359
  79. package/dist/material.css +0 -1924
  80. package/dist/minimal.css +0 -1978
  81. package/dist/rokkit.css +0 -2471
  82. package/dist/shadcn.css +0 -2099
  83. package/src/ant-design/button.css +0 -190
  84. package/src/ant-design/card.css +0 -100
  85. package/src/ant-design/chart.css +0 -34
  86. package/src/ant-design/connector.css +0 -11
  87. package/src/ant-design/dropdown.css +0 -50
  88. package/src/ant-design/floating-action.css +0 -63
  89. package/src/ant-design/floating-navigation.css +0 -70
  90. package/src/ant-design/grid.css +0 -46
  91. package/src/ant-design/index.css +0 -35
  92. package/src/ant-design/input.css +0 -151
  93. package/src/ant-design/list.css +0 -126
  94. package/src/ant-design/menu.css +0 -88
  95. package/src/ant-design/message.css +0 -35
  96. package/src/ant-design/range.css +0 -61
  97. package/src/ant-design/search-filter.css +0 -49
  98. package/src/ant-design/select.css +0 -158
  99. package/src/ant-design/status-list.css +0 -66
  100. package/src/ant-design/step-indicator.css +0 -38
  101. package/src/ant-design/switch.css +0 -29
  102. package/src/ant-design/table.css +0 -91
  103. package/src/ant-design/tabs.css +0 -153
  104. package/src/ant-design/timeline.css +0 -45
  105. package/src/ant-design/toc.css +0 -18
  106. package/src/ant-design/toggle.css +0 -48
  107. package/src/ant-design/toolbar.css +0 -85
  108. package/src/ant-design/tree.css +0 -137
  109. package/src/ant-design/upload-progress.css +0 -102
  110. package/src/ant-design/upload-target.css +0 -50
  111. package/src/bits-ui/button.css +0 -176
  112. package/src/bits-ui/card.css +0 -99
  113. package/src/bits-ui/chart.css +0 -34
  114. package/src/bits-ui/connector.css +0 -11
  115. package/src/bits-ui/dropdown.css +0 -50
  116. package/src/bits-ui/floating-action.css +0 -63
  117. package/src/bits-ui/floating-navigation.css +0 -70
  118. package/src/bits-ui/grid.css +0 -46
  119. package/src/bits-ui/index.css +0 -35
  120. package/src/bits-ui/input.css +0 -154
  121. package/src/bits-ui/list.css +0 -126
  122. package/src/bits-ui/menu.css +0 -88
  123. package/src/bits-ui/message.css +0 -35
  124. package/src/bits-ui/range.css +0 -61
  125. package/src/bits-ui/search-filter.css +0 -49
  126. package/src/bits-ui/select.css +0 -158
  127. package/src/bits-ui/status-list.css +0 -66
  128. package/src/bits-ui/step-indicator.css +0 -40
  129. package/src/bits-ui/switch.css +0 -29
  130. package/src/bits-ui/table.css +0 -89
  131. package/src/bits-ui/tabs.css +0 -151
  132. package/src/bits-ui/timeline.css +0 -45
  133. package/src/bits-ui/toc.css +0 -18
  134. package/src/bits-ui/toggle.css +0 -48
  135. package/src/bits-ui/toolbar.css +0 -85
  136. package/src/bits-ui/tree.css +0 -135
  137. package/src/bits-ui/upload-progress.css +0 -102
  138. package/src/bits-ui/upload-target.css +0 -50
  139. package/src/carbon/button.css +0 -186
  140. package/src/carbon/card.css +0 -97
  141. package/src/carbon/chart.css +0 -34
  142. package/src/carbon/connector.css +0 -11
  143. package/src/carbon/dropdown.css +0 -50
  144. package/src/carbon/floating-action.css +0 -63
  145. package/src/carbon/floating-navigation.css +0 -70
  146. package/src/carbon/grid.css +0 -46
  147. package/src/carbon/index.css +0 -34
  148. package/src/carbon/input.css +0 -148
  149. package/src/carbon/list.css +0 -124
  150. package/src/carbon/menu.css +0 -88
  151. package/src/carbon/message.css +0 -37
  152. package/src/carbon/range.css +0 -61
  153. package/src/carbon/search-filter.css +0 -49
  154. package/src/carbon/select.css +0 -158
  155. package/src/carbon/status-list.css +0 -66
  156. package/src/carbon/step-indicator.css +0 -40
  157. package/src/carbon/switch.css +0 -31
  158. package/src/carbon/table.css +0 -93
  159. package/src/carbon/tabs.css +0 -151
  160. package/src/carbon/timeline.css +0 -45
  161. package/src/carbon/toc.css +0 -22
  162. package/src/carbon/toggle.css +0 -48
  163. package/src/carbon/toolbar.css +0 -84
  164. package/src/carbon/tree.css +0 -135
  165. package/src/carbon/upload-progress.css +0 -102
  166. package/src/carbon/upload-target.css +0 -50
  167. package/src/daisy-ui/button.css +0 -196
  168. package/src/daisy-ui/card.css +0 -99
  169. package/src/daisy-ui/chart.css +0 -34
  170. package/src/daisy-ui/connector.css +0 -11
  171. package/src/daisy-ui/dropdown.css +0 -50
  172. package/src/daisy-ui/floating-action.css +0 -63
  173. package/src/daisy-ui/floating-navigation.css +0 -70
  174. package/src/daisy-ui/grid.css +0 -46
  175. package/src/daisy-ui/index.css +0 -34
  176. package/src/daisy-ui/input.css +0 -148
  177. package/src/daisy-ui/list.css +0 -127
  178. package/src/daisy-ui/menu.css +0 -88
  179. package/src/daisy-ui/message.css +0 -37
  180. package/src/daisy-ui/range.css +0 -61
  181. package/src/daisy-ui/search-filter.css +0 -49
  182. package/src/daisy-ui/select.css +0 -158
  183. package/src/daisy-ui/status-list.css +0 -66
  184. package/src/daisy-ui/step-indicator.css +0 -37
  185. package/src/daisy-ui/switch.css +0 -31
  186. package/src/daisy-ui/table.css +0 -91
  187. package/src/daisy-ui/tabs.css +0 -153
  188. package/src/daisy-ui/timeline.css +0 -45
  189. package/src/daisy-ui/toc.css +0 -22
  190. package/src/daisy-ui/toggle.css +0 -48
  191. package/src/daisy-ui/toolbar.css +0 -85
  192. package/src/daisy-ui/tree.css +0 -137
  193. package/src/daisy-ui/upload-progress.css +0 -102
  194. package/src/daisy-ui/upload-target.css +0 -50
  195. package/src/grada-ui/button.css +0 -249
  196. package/src/grada-ui/card.css +0 -96
  197. package/src/grada-ui/chart.css +0 -34
  198. package/src/grada-ui/dropdown.css +0 -58
  199. package/src/grada-ui/floating-action.css +0 -66
  200. package/src/grada-ui/floating-navigation.css +0 -69
  201. package/src/grada-ui/input.css +0 -154
  202. package/src/grada-ui/list.css +0 -124
  203. package/src/grada-ui/menu.css +0 -81
  204. package/src/grada-ui/message.css +0 -48
  205. package/src/grada-ui/range.css +0 -59
  206. package/src/grada-ui/search-filter.css +0 -47
  207. package/src/grada-ui/select.css +0 -190
  208. package/src/grada-ui/status-list.css +0 -66
  209. package/src/grada-ui/step-indicator.css +0 -37
  210. package/src/grada-ui/switch.css +0 -35
  211. package/src/grada-ui/table.css +0 -79
  212. package/src/grada-ui/tabs.css +0 -59
  213. package/src/grada-ui/timeline.css +0 -46
  214. package/src/grada-ui/toc.css +0 -24
  215. package/src/grada-ui/toggle.css +0 -47
  216. package/src/grada-ui/toolbar.css +0 -91
  217. package/src/grada-ui/tree.css +0 -100
  218. package/src/rokkit/stack.css +0 -6
  219. package/src/shadcn/button.css +0 -175
  220. package/src/shadcn/card.css +0 -99
  221. package/src/shadcn/chart.css +0 -34
  222. package/src/shadcn/connector.css +0 -11
  223. package/src/shadcn/dropdown.css +0 -50
  224. package/src/shadcn/floating-action.css +0 -63
  225. package/src/shadcn/floating-navigation.css +0 -70
  226. package/src/shadcn/grid.css +0 -46
  227. package/src/shadcn/index.css +0 -35
  228. package/src/shadcn/input.css +0 -143
  229. package/src/shadcn/list.css +0 -124
  230. package/src/shadcn/menu.css +0 -88
  231. package/src/shadcn/message.css +0 -35
  232. package/src/shadcn/range.css +0 -61
  233. package/src/shadcn/search-filter.css +0 -49
  234. package/src/shadcn/select.css +0 -158
  235. package/src/shadcn/status-list.css +0 -66
  236. package/src/shadcn/step-indicator.css +0 -37
  237. package/src/shadcn/switch.css +0 -31
  238. package/src/shadcn/table.css +0 -89
  239. package/src/shadcn/tabs.css +0 -151
  240. package/src/shadcn/timeline.css +0 -45
  241. package/src/shadcn/toc.css +0 -20
  242. package/src/shadcn/toggle.css +0 -48
  243. package/src/shadcn/toolbar.css +0 -84
  244. package/src/shadcn/tree.css +0 -135
  245. package/src/shadcn/upload-progress.css +0 -102
  246. package/src/shadcn/upload-target.css +0 -50
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Button - Zen-Sumi Theme Styles
3
+ *
4
+ * Ink-on-paper aesthetics. No gradients. No shadows.
5
+ * Primary filled = ink background (surface-z9) with paper text.
6
+ * CTA/accent = shu vermillion (primary-z5).
7
+ * Focus: border darkens — no glow ring.
8
+ */
9
+
10
+ /* =============================================================================
11
+ Default Style (filled)
12
+ ============================================================================= */
13
+
14
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='default'],
15
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='default'],
16
+ [data-style='zen-sumi'] [data-button][data-style='default']:not([data-variant]),
17
+ [data-style='zen-sumi'] [data-button]:not([data-style]):not([data-variant]) {
18
+ @apply bg-surface-z9 text-surface-z0 border-transparent bg-none;
19
+ }
20
+
21
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='primary'],
22
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='primary'] {
23
+ @apply bg-primary-z5 text-on-primary border-transparent bg-none;
24
+ }
25
+
26
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='secondary'],
27
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='secondary'] {
28
+ @apply bg-secondary-z5 text-on-secondary border-transparent bg-none;
29
+ }
30
+
31
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='accent'],
32
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='accent'] {
33
+ @apply bg-accent-z5 text-on-accent border-transparent bg-none;
34
+ }
35
+
36
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='danger'],
37
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='danger'] {
38
+ @apply bg-danger-z5 text-on-danger border-transparent bg-none;
39
+ }
40
+
41
+ /* =============================================================================
42
+ Outline Style
43
+ ============================================================================= */
44
+
45
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='default'],
46
+ [data-style='zen-sumi'] [data-button][data-style='outline']:not([data-variant]) {
47
+ @apply border-surface-z3 text-ink-z2 border bg-transparent;
48
+ }
49
+
50
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='primary'] {
51
+ @apply border-primary-z4 text-primary-z6 border bg-transparent;
52
+ }
53
+
54
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='secondary'] {
55
+ @apply border-secondary-z4 text-secondary-z6 border bg-transparent;
56
+ }
57
+
58
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='accent'] {
59
+ @apply border-accent-z4 text-accent-z6 border bg-transparent;
60
+ }
61
+
62
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='danger'] {
63
+ @apply border-danger-z4 text-danger-z5 border bg-transparent;
64
+ }
65
+
66
+ /* =============================================================================
67
+ Ghost Style
68
+ ============================================================================= */
69
+
70
+ [data-style='zen-sumi'] [data-button][data-style='ghost'] {
71
+ @apply border-transparent bg-transparent;
72
+ }
73
+
74
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='default'],
75
+ [data-style='zen-sumi'] [data-button][data-style='ghost']:not([data-variant]) {
76
+ @apply text-ink-z3;
77
+ }
78
+
79
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='primary'] {
80
+ @apply text-primary-z6;
81
+ }
82
+
83
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='secondary'] {
84
+ @apply text-secondary-z6;
85
+ }
86
+
87
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='accent'] {
88
+ @apply text-accent-z6;
89
+ }
90
+
91
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='danger'] {
92
+ @apply text-danger-z5;
93
+ }
94
+
95
+ /* =============================================================================
96
+ Gradient Style — zen-sumi uses flat fills, not gradients.
97
+ Minimal override: treat gradient like filled.
98
+ ============================================================================= */
99
+
100
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='default'],
101
+ [data-style='zen-sumi'] [data-button][data-style='gradient']:not([data-variant]) {
102
+ @apply bg-surface-z2 text-ink-z1 bg-none;
103
+ }
104
+
105
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='primary'] {
106
+ @apply bg-primary-z5 text-on-primary bg-none;
107
+ }
108
+
109
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='secondary'] {
110
+ @apply bg-secondary-z5 text-on-secondary bg-none;
111
+ }
112
+
113
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='accent'] {
114
+ @apply bg-accent-z5 text-on-accent bg-none;
115
+ }
116
+
117
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='danger'] {
118
+ @apply bg-danger-z5 text-on-danger bg-none;
119
+ }
120
+
121
+ /* =============================================================================
122
+ Link Style
123
+ ============================================================================= */
124
+
125
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='default'],
126
+ [data-style='zen-sumi'] [data-button][data-style='link']:not([data-variant]) {
127
+ @apply text-ink-z3;
128
+ }
129
+
130
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='primary'] {
131
+ @apply text-primary-z5;
132
+ }
133
+
134
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='secondary'] {
135
+ @apply text-secondary-z5;
136
+ }
137
+
138
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='accent'] {
139
+ @apply text-accent-z5;
140
+ }
141
+
142
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='danger'] {
143
+ @apply text-danger-z5;
144
+ }
145
+
146
+ [data-style='zen-sumi'] [data-button][data-style='link']:hover:not(:disabled):not([data-disabled]) {
147
+ @apply text-ink-z1;
148
+ }
149
+
150
+ /* =============================================================================
151
+ Hover States — darken, no glow
152
+ ============================================================================= */
153
+
154
+ [data-style='zen-sumi']
155
+ [data-button][data-style='default']:hover:not(:disabled):not([data-disabled]),
156
+ [data-style='zen-sumi'] [data-button]:not([data-style]):hover:not(:disabled):not([data-disabled]) {
157
+ @apply bg-surface-z10 bg-none;
158
+ }
159
+
160
+ [data-style='zen-sumi']
161
+ [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled]) {
162
+ @apply bg-surface-z1 border-surface-z5 bg-none;
163
+ }
164
+
165
+ [data-style='zen-sumi'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled]) {
166
+ @apply bg-surface-z2;
167
+ }
168
+
169
+ /* =============================================================================
170
+ Focus — border darkens, no ring glow
171
+ ============================================================================= */
172
+
173
+ [data-style='zen-sumi'] [data-button]:focus-visible {
174
+ @apply outline-none;
175
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
176
+ }
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Card - Zen-Sumi Theme Styles
3
+ *
4
+ * Paper bg with hairline border. No shadows.
5
+ * Depth through background tone shifts only.
6
+ * Interactive: hover darkens border, bg shifts to surface-z2.
7
+ */
8
+
9
+ /* =============================================================================
10
+ Base Card Styles
11
+ ============================================================================= */
12
+
13
+ [data-style='zen-sumi'] [data-card] {
14
+ @apply bg-surface-z1 border-surface-z2 text-ink-z1 border bg-none;
15
+ box-shadow: none;
16
+ }
17
+
18
+ /* Interactive cards */
19
+ [data-style='zen-sumi'] [data-card][data-card-interactive] {
20
+ cursor: pointer;
21
+ transition: border-color 0.2s ease;
22
+ }
23
+
24
+ [data-style='zen-sumi'] [data-card][data-card-interactive]:hover {
25
+ @apply border-surface-z4 bg-surface-z2 bg-none;
26
+ }
27
+
28
+ [data-style='zen-sumi'] [data-card][data-card-interactive]:active {
29
+ @apply bg-surface-z3 bg-none;
30
+ }
31
+
32
+ /* =============================================================================
33
+ Card Sections
34
+ ============================================================================= */
35
+
36
+ [data-style='zen-sumi'] [data-card-header] {
37
+ @apply border-surface-z2 border-b;
38
+ }
39
+
40
+ [data-style='zen-sumi'] [data-card-body] {
41
+ @apply text-ink-z2;
42
+ }
43
+
44
+ [data-style='zen-sumi'] [data-card-footer] {
45
+ @apply border-surface-z2 text-ink-z4 border-t;
46
+ }
47
+
48
+ /* =============================================================================
49
+ Focus States
50
+ ============================================================================= */
51
+
52
+ [data-style='zen-sumi'] [data-card][data-card-interactive]:focus-visible {
53
+ @apply outline-none;
54
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
55
+ }
56
+
57
+ /* =============================================================================
58
+ Disabled State
59
+ ============================================================================= */
60
+
61
+ [data-style='zen-sumi'] [data-card][data-card-interactive][data-disabled],
62
+ [data-style='zen-sumi'] [data-card][data-card-interactive]:disabled {
63
+ @apply cursor-not-allowed opacity-50;
64
+ }
65
+
66
+ /* =============================================================================
67
+ Variants
68
+ ============================================================================= */
69
+
70
+ /* Primary — shu vermillion fill */
71
+ [data-style='zen-sumi'] [data-card][data-variant='primary'] {
72
+ @apply bg-primary-z5 border-primary-z6 text-on-primary border bg-none;
73
+ box-shadow: none;
74
+ }
75
+
76
+ [data-style='zen-sumi'] [data-card][data-variant='primary'] [data-card-header],
77
+ [data-style='zen-sumi'] [data-card][data-variant='primary'] [data-card-footer] {
78
+ @apply border-primary-z4/40;
79
+ }
80
+
81
+ [data-style='zen-sumi'] [data-card][data-variant='primary'] [data-card-body] {
82
+ @apply text-on-primary/80;
83
+ }
84
+
85
+ /* Secondary */
86
+ [data-style='zen-sumi'] [data-card][data-variant='secondary'] {
87
+ @apply bg-secondary-z4 border-secondary-z5 text-on-secondary border bg-none;
88
+ box-shadow: none;
89
+ }
90
+
91
+ [data-style='zen-sumi'] [data-card][data-variant='secondary'] [data-card-header],
92
+ [data-style='zen-sumi'] [data-card][data-variant='secondary'] [data-card-footer] {
93
+ @apply border-secondary-z3/40;
94
+ }
95
+
96
+ [data-style='zen-sumi'] [data-card][data-variant='secondary'] [data-card-body] {
97
+ @apply text-on-secondary/80;
98
+ }
99
+
100
+ /* Tertiary — recessed surface, lighter border */
101
+ [data-style='zen-sumi'] [data-card][data-variant='tertiary'] {
102
+ @apply bg-surface-z0 border-surface-z2 text-ink-z3 border bg-none;
103
+ box-shadow: none;
104
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Chart - Zen-Sumi Theme Styles
3
+ *
4
+ * Ink-wash aesthetic. Axes and grids: hairline surface-z2.
5
+ * Labels: surface-z5 (secondary text). Dimmed elements: very low opacity.
6
+ */
7
+
8
+ [data-style='zen-sumi'] [data-chart-axis-line],
9
+ [data-style='zen-sumi'] [data-chart-tick] line {
10
+ @apply stroke-surface-z2;
11
+ }
12
+
13
+ [data-style='zen-sumi'] [data-chart-tick-label] {
14
+ @apply fill-surface-z5;
15
+ }
16
+
17
+ [data-style='zen-sumi'] [data-chart-grid-line] {
18
+ @apply stroke-surface-z2;
19
+ stroke-opacity: 0.4;
20
+ stroke-dasharray: 2 4;
21
+ }
22
+
23
+ [data-style='zen-sumi'] [data-chart-legend-label] {
24
+ @apply fill-surface-z5;
25
+ }
26
+
27
+ [data-style='zen-sumi'] [data-chart-legend-item]:hover {
28
+ @apply text-ink-z2;
29
+ }
30
+
31
+ [data-style='zen-sumi'] [data-plot-element='bar'][data-dimmed],
32
+ [data-style='zen-sumi'] [data-plot-element='point'][data-dimmed],
33
+ [data-style='zen-sumi'] [data-plot-element='arc'][data-dimmed],
34
+ [data-style='zen-sumi'] [data-plot-element='line'][data-dimmed],
35
+ [data-style='zen-sumi'] [data-plot-element='area'][data-dimmed] {
36
+ opacity: 0.1;
37
+ }
38
+
39
+ [data-style='zen-sumi'] [data-facet-title] {
40
+ @apply text-ink-z5;
41
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Dropdown - Zen-Sumi Theme Styles
3
+ *
4
+ * Hairline trigger. Panel: paper bg, no shadow.
5
+ * Options: transparent → surface-z2 on hover.
6
+ */
7
+
8
+ [data-style='zen-sumi'] [data-dropdown-trigger] {
9
+ @apply border-surface-z3 text-ink-z3 border bg-transparent bg-none;
10
+ }
11
+
12
+ [data-style='zen-sumi'] [data-dropdown-trigger]:hover:not(:disabled) {
13
+ @apply text-ink-z1 border-surface-z4 bg-none;
14
+ }
15
+
16
+ [data-style='zen-sumi'] [data-dropdown-trigger]:focus-visible {
17
+ @apply outline-none;
18
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
19
+ }
20
+
21
+ [data-style='zen-sumi'] [data-dropdown][data-open='true'] [data-dropdown-trigger] {
22
+ @apply border-surface-z5 bg-none;
23
+ }
24
+
25
+ [data-style='zen-sumi'] [data-dropdown-trigger] [data-dropdown-icon] {
26
+ @apply text-ink-z5;
27
+ }
28
+
29
+ [data-style='zen-sumi'] [data-dropdown-trigger] [data-dropdown-arrow] {
30
+ @apply text-surface-z4;
31
+ }
32
+
33
+ [data-style='zen-sumi'] [data-dropdown-panel] {
34
+ @apply bg-surface-z0 border-surface-z2 border bg-none;
35
+ box-shadow: none;
36
+ }
37
+
38
+ [data-style='zen-sumi'] [data-dropdown-option] {
39
+ @apply text-ink-z3;
40
+ }
41
+
42
+ [data-style='zen-sumi'] [data-dropdown-option]:hover:not(:disabled),
43
+ [data-style='zen-sumi'] [data-dropdown-option]:focus:not(:disabled) {
44
+ @apply bg-surface-z2 text-ink-z1 bg-none outline-none;
45
+ }
46
+
47
+ [data-style='zen-sumi'] [data-dropdown-option][data-active='true'] {
48
+ @apply text-ink-z1 border-primary-z4 border-l-2 bg-none;
49
+ }
50
+
51
+ [data-style='zen-sumi'] [data-dropdown-separator] {
52
+ @apply bg-surface-z2 bg-none;
53
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * FloatingAction - Zen-Sumi Theme Styles
3
+ *
4
+ * Paper bg with hairline border. No shadow.
5
+ * Hover: surface-z2 wash. No glow rings.
6
+ */
7
+
8
+ /* =============================================================================
9
+ FAB Trigger Button
10
+ ============================================================================= */
11
+
12
+ [data-style='zen-sumi'] [data-fab-trigger] {
13
+ @apply bg-surface-z1 text-ink-z2 border-surface-z2 border bg-none;
14
+ box-shadow: none;
15
+ }
16
+
17
+ [data-style='zen-sumi'] [data-fab-trigger]:hover:not(:disabled) {
18
+ @apply bg-surface-z2 text-ink-z1 border-surface-z4 bg-none;
19
+ }
20
+
21
+ [data-style='zen-sumi'] [data-fab-trigger]:focus-visible {
22
+ @apply outline-none;
23
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
24
+ }
25
+
26
+ [data-style='zen-sumi'] [data-fab][data-open='true'] [data-fab-trigger] {
27
+ @apply bg-surface-z2 border-surface-z4 bg-none;
28
+ transform: rotate(45deg);
29
+ }
30
+
31
+ [data-style='zen-sumi'] [data-fab][data-open='true'] [data-fab-trigger]:hover:not(:disabled) {
32
+ @apply bg-none;
33
+ }
34
+
35
+ /* =============================================================================
36
+ FAB Items
37
+ ============================================================================= */
38
+
39
+ [data-style='zen-sumi'] [data-fab-item] {
40
+ @apply bg-surface-z1 text-ink-z3 border-surface-z2 border bg-none;
41
+ box-shadow: none;
42
+ }
43
+
44
+ [data-style='zen-sumi'] [data-fab-item]:hover:not(:disabled) {
45
+ @apply bg-surface-z2 text-ink-z1 border-surface-z4 bg-none;
46
+ }
47
+
48
+ [data-style='zen-sumi'] [data-fab-item]:focus-visible {
49
+ @apply outline-none;
50
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
51
+ }
52
+
53
+ /* Item icon */
54
+ [data-style='zen-sumi'] [data-fab-item] [data-fab-item-icon] {
55
+ @apply text-ink-z5;
56
+ }
57
+
58
+ [data-style='zen-sumi'] [data-fab-item]:hover:not(:disabled) [data-fab-item-icon] {
59
+ @apply text-ink-z3;
60
+ }
61
+
62
+ /* =============================================================================
63
+ Backdrop
64
+ ============================================================================= */
65
+
66
+ [data-style='zen-sumi'] [data-fab-backdrop] {
67
+ background: color-mix(in oklch, var(--color-surface-z9) 15%, transparent);
68
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * FloatingNavigation - Zen-Sumi Theme Styles
3
+ *
4
+ * Paper bg, hairline border, no shadow.
5
+ * Items: text-only default, surface-z2 wash on hover.
6
+ * Active: ink text + surface-z1 bg + primary indicator.
7
+ */
8
+
9
+ /* =============================================================================
10
+ Container
11
+ ============================================================================= */
12
+
13
+ [data-style='zen-sumi'] [data-floating-nav] {
14
+ @apply bg-surface-z0 border-surface-z2 border bg-none;
15
+ box-shadow: none;
16
+ }
17
+
18
+ /* =============================================================================
19
+ Header
20
+ ============================================================================= */
21
+
22
+ [data-style='zen-sumi'] [data-floating-nav-title] {
23
+ @apply text-ink-z5;
24
+ }
25
+
26
+ [data-style='zen-sumi'] [data-floating-nav-pin] {
27
+ @apply text-surface-z4;
28
+ }
29
+
30
+ [data-style='zen-sumi'] [data-floating-nav-pin]:hover {
31
+ @apply text-ink-z3;
32
+ }
33
+
34
+ [data-style='zen-sumi'] [data-floating-nav-pin][aria-pressed='true'] {
35
+ @apply text-ink-z1;
36
+ }
37
+
38
+ /* =============================================================================
39
+ Items
40
+ ============================================================================= */
41
+
42
+ [data-style='zen-sumi'] [data-floating-nav-item] {
43
+ @apply text-ink-z4;
44
+ }
45
+
46
+ [data-style='zen-sumi'] [data-floating-nav-item]:hover {
47
+ @apply bg-surface-z2 text-ink-z2 bg-none;
48
+ }
49
+
50
+ [data-style='zen-sumi'] [data-floating-nav-item][data-active] {
51
+ @apply bg-surface-z1 text-ink-z1 bg-none;
52
+ }
53
+
54
+ [data-style='zen-sumi'] [data-floating-nav-item]:focus-visible {
55
+ @apply outline-none;
56
+ box-shadow: inset 0 0 0 1px var(--color-surface-z4);
57
+ }
58
+
59
+ /* Icon */
60
+ [data-style='zen-sumi'] [data-floating-nav-icon] {
61
+ @apply text-ink-z5;
62
+ }
63
+
64
+ [data-style='zen-sumi'] [data-floating-nav-item][data-active] [data-floating-nav-icon] {
65
+ @apply text-primary-z5;
66
+ }
67
+
68
+ /* =============================================================================
69
+ Active Indicator
70
+ ============================================================================= */
71
+
72
+ [data-style='zen-sumi'] [data-floating-nav-indicator] {
73
+ @apply bg-primary-z5 bg-none;
74
+ }
@@ -1,38 +1,20 @@
1
1
  /**
2
- * @rokkit/themes - Grada UI Theme
2
+ * @rokkit/themes - Zen-Sumi Theme
3
3
  *
4
- * Coral/purple gradient identity with Montserrat typography.
5
- * Clean white form elements, pill buttons, left-border accent states.
6
- * Use with data-style="grada-ui" wrapper.
4
+ * 禅墨 The aesthetic of ink on paper. Restraint as luxury.
5
+ *
6
+ * Key principles:
7
+ * - No shadows. Depth through background tone variation only.
8
+ * - No gradients. Color conveys meaning, not decoration.
9
+ * - Hairline borders (surface-z2). Paper-edge precision.
10
+ * - Ink-on-paper primary: surface-z9 bg / surface-z0 text.
11
+ * - Single accent: primary (shu/vermillion) for active and CTA.
12
+ * - Focus: border darkens — no glow rings.
13
+ *
14
+ * Use with data-style="zen-sumi" wrapper.
7
15
  */
8
16
 
9
- /* =============================================================================
10
- Grada UI Design Tokens
11
- ============================================================================= */
12
-
13
- [data-style='grada-ui'] {
14
- /* Brand colors (from Figma) */
15
- --gd-primary: #f27a54;
16
- --gd-secondary: #a154f2;
17
- --gd-gradient: linear-gradient(to right, #f27a54, #a154f2);
18
-
19
- /* Semantic colors */
20
- --gd-success: #6fcf97;
21
- --gd-error-border: #cf6f8a;
22
- --gd-error-text: #f27474;
23
-
24
- /* Surface palette */
25
- --gd-dark: #30363d;
26
- --gd-surface-a: #3c444c;
27
- --gd-surface-b: #747d88;
28
- --gd-grey-c: #cbcfd4;
29
-
30
- /* Typography */
31
- font-family: 'Montserrat', sans-serif;
32
- }
33
-
34
17
  @import './button.css';
35
- @import './input.css';
36
18
  @import './toolbar.css';
37
19
  @import './tabs.css';
38
20
  @import './toggle.css';
@@ -43,6 +25,7 @@
43
25
  @import './menu.css';
44
26
  @import './dropdown.css';
45
27
  @import './floating-action.css';
28
+ @import './input.css';
46
29
  @import './table.css';
47
30
  @import './search-filter.css';
48
31
  @import './range.css';
@@ -54,3 +37,15 @@
54
37
  @import './status-list.css';
55
38
  @import './step-indicator.css';
56
39
  @import './chart.css';
40
+ @import './swatch.css';
41
+
42
+ /* =============================================================================
43
+ Layout overrides — Ma (間) generous spacing
44
+ ============================================================================= */
45
+
46
+ [data-style='zen-sumi'] {
47
+ --layout-section-gap: 2.5rem;
48
+ --layout-section-padding: 1.75rem;
49
+ --layout-content-padding: 2rem;
50
+ --layout-card-gap: 0.75rem;
51
+ }