@rokkit/themes 1.0.0-next.127 → 1.0.0-next.129
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.
- package/build.mjs +237 -0
- package/package.json +17 -6
- package/src/base/breadcrumbs.css +1 -0
- package/src/base/button.css +7 -3
- package/src/base/connector.css +0 -14
- package/src/base/graph-paper.css +83 -0
- package/src/base/grid.css +93 -0
- package/src/base/index.css +4 -0
- package/src/base/input.css +16 -12
- package/src/base/item.css +26 -0
- package/src/base/list.css +28 -107
- package/src/base/menu.css +28 -76
- package/src/base/toggle.css +4 -0
- package/src/base/tree.css +44 -5
- package/src/base/upload-progress.css +155 -0
- package/src/base/upload-target.css +67 -0
- package/src/glass/card.css +63 -0
- package/src/glass/list.css +6 -6
- package/src/glass/menu.css +2 -2
- package/src/index.js +2 -2
- package/src/material/card.css +61 -0
- package/src/material/list.css +6 -6
- package/src/material/menu.css +2 -2
- package/src/minimal/card.css +59 -0
- package/src/minimal/list.css +6 -6
- package/src/minimal/menu.css +2 -2
- package/src/rokkit/button.css +54 -54
- package/src/rokkit/card.css +62 -0
- package/src/rokkit/grid.css +46 -0
- package/src/rokkit/index.css +3 -0
- package/src/rokkit/list.css +6 -20
- package/src/rokkit/menu.css +5 -35
- package/src/rokkit/upload-progress.css +102 -0
- package/src/rokkit/upload-target.css +50 -0
package/src/base/list.css
CHANGED
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
opacity: 0.5;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
[dir='rtl'] [data-list] [data-list-item] {
|
|
23
|
+
flex-direction: row-reverse;
|
|
24
|
+
text-align: right;
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
/* =============================================================================
|
|
23
28
|
List Items (shared for links and buttons)
|
|
24
29
|
============================================================================= */
|
|
@@ -92,38 +97,16 @@ button[data-list-item] {
|
|
|
92
97
|
Item Elements - uses shared [data-item-*] from item.css
|
|
93
98
|
============================================================================= */
|
|
94
99
|
|
|
95
|
-
/* =============================================================================
|
|
96
|
-
Custom Snippet Wrapper
|
|
97
|
-
============================================================================= */
|
|
98
|
-
|
|
99
|
-
[data-list-item-custom] {
|
|
100
|
-
display: contents;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
[data-list-item-custom] > a,
|
|
104
|
-
[data-list-item-custom] > button {
|
|
105
|
-
display: flex;
|
|
106
|
-
align-items: center;
|
|
107
|
-
width: 100%;
|
|
108
|
-
text-align: left;
|
|
109
|
-
text-decoration: none;
|
|
110
|
-
cursor: pointer;
|
|
111
|
-
transition: background-color 150ms ease;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
100
|
/* =============================================================================
|
|
115
101
|
Groups
|
|
116
102
|
============================================================================= */
|
|
117
103
|
|
|
118
104
|
[data-list-group] {
|
|
119
|
-
padding-block: 0.25rem;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
[data-list-group-label] {
|
|
123
105
|
display: flex;
|
|
124
106
|
align-items: center;
|
|
125
107
|
width: 100%;
|
|
126
108
|
gap: 0.5rem;
|
|
109
|
+
padding-block: 0.25rem;
|
|
127
110
|
font-size: 0.75rem;
|
|
128
111
|
font-weight: 600;
|
|
129
112
|
text-transform: uppercase;
|
|
@@ -133,113 +116,46 @@ button[data-list-item] {
|
|
|
133
116
|
}
|
|
134
117
|
|
|
135
118
|
/* Non-collapsible group labels are not interactive */
|
|
136
|
-
[data-list]:not([data-collapsible='true']) [data-list-group
|
|
119
|
+
[data-list]:not([data-collapsible='true']) [data-list-group] {
|
|
137
120
|
cursor: default;
|
|
138
121
|
}
|
|
139
122
|
|
|
140
|
-
[data-list-group
|
|
123
|
+
[data-list-group]:focus {
|
|
141
124
|
outline: none;
|
|
142
125
|
}
|
|
143
126
|
|
|
144
127
|
/* Group label sizes */
|
|
145
|
-
[data-list][data-size='sm'] [data-list-group
|
|
128
|
+
[data-list][data-size='sm'] [data-list-group] {
|
|
146
129
|
padding: 0.25rem 0.5rem;
|
|
147
130
|
}
|
|
148
|
-
[data-list][data-size='md'] [data-list-group
|
|
149
|
-
[data-list]:not([data-size]) [data-list-group
|
|
131
|
+
[data-list][data-size='md'] [data-list-group],
|
|
132
|
+
[data-list]:not([data-size]) [data-list-group] {
|
|
150
133
|
padding: 0.375rem 0.75rem;
|
|
151
134
|
}
|
|
152
|
-
[data-list][data-size='lg'] [data-list-group
|
|
135
|
+
[data-list][data-size='lg'] [data-list-group] {
|
|
153
136
|
padding: 0.5rem 1rem;
|
|
154
137
|
}
|
|
155
138
|
|
|
156
|
-
|
|
157
|
-
|
|
139
|
+
/* Group item content — inherits font from [data-list-group], label stays inline */
|
|
140
|
+
[data-list-group] > [data-item-icon] {
|
|
158
141
|
opacity: 0.7;
|
|
159
142
|
}
|
|
160
143
|
|
|
161
|
-
[data-list-group
|
|
162
|
-
|
|
163
|
-
text-align: left;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
[data-list-group-label] > [data-list-group-arrow] {
|
|
167
|
-
flex-shrink: 0;
|
|
168
|
-
transition: transform 150ms ease;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
[data-list-group][data-list-group-collapsed='true'] [data-list-group-arrow] {
|
|
172
|
-
transform: rotate(-90deg);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/* Group label with nested button */
|
|
176
|
-
[data-list-group-label] > button {
|
|
177
|
-
display: flex;
|
|
178
|
-
align-items: center;
|
|
179
|
-
justify-content: space-between;
|
|
180
|
-
width: 100%;
|
|
181
|
-
padding: 0.5rem 0.75rem;
|
|
182
|
-
font-size: 0.875rem;
|
|
183
|
-
font-weight: 500;
|
|
184
|
-
cursor: pointer;
|
|
185
|
-
transition:
|
|
186
|
-
background-color 150ms ease,
|
|
187
|
-
color 150ms ease;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
[data-list-group-label] > button [data-icon] {
|
|
191
|
-
flex-shrink: 0;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
[data-list-group-label] > button [data-chevron] {
|
|
195
|
-
flex-shrink: 0;
|
|
196
|
-
font-size: 0.75rem;
|
|
197
|
-
transition: transform 150ms ease;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
[data-list-group-label] > button[data-state='open'] [data-chevron] {
|
|
201
|
-
transform: rotate(180deg);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/* Group label as button directly */
|
|
205
|
-
button[data-list-group-label] {
|
|
206
|
-
display: flex;
|
|
207
|
-
align-items: center;
|
|
208
|
-
justify-content: space-between;
|
|
209
|
-
width: 100%;
|
|
210
|
-
padding: 0.5rem 0.75rem;
|
|
211
|
-
font-size: 0.75rem;
|
|
212
|
-
font-weight: 600;
|
|
213
|
-
text-transform: uppercase;
|
|
214
|
-
letter-spacing: 0.05em;
|
|
215
|
-
cursor: pointer;
|
|
216
|
-
transition: color 150ms ease;
|
|
144
|
+
[data-list-group] > [data-item-text] {
|
|
145
|
+
display: contents;
|
|
217
146
|
}
|
|
218
147
|
|
|
219
|
-
|
|
220
|
-
|
|
148
|
+
[data-list-group] [data-item-label] {
|
|
149
|
+
font-weight: inherit;
|
|
221
150
|
}
|
|
222
151
|
|
|
223
|
-
|
|
152
|
+
/* Expand/collapse chevron — pushed to the right edge */
|
|
153
|
+
[data-list-expand-icon] {
|
|
224
154
|
flex-shrink: 0;
|
|
225
|
-
|
|
155
|
+
margin-left: auto;
|
|
226
156
|
transition: transform 150ms ease;
|
|
227
157
|
}
|
|
228
158
|
|
|
229
|
-
button[data-list-group-label][data-state='open'] [data-chevron] {
|
|
230
|
-
transform: rotate(180deg);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
button[data-list-group-label] [data-stats] {
|
|
234
|
-
font-weight: 400;
|
|
235
|
-
text-transform: none;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
[data-list-group-items] {
|
|
239
|
-
display: flex;
|
|
240
|
-
flex-direction: column;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
159
|
/* =============================================================================
|
|
244
160
|
Multi-selection
|
|
245
161
|
============================================================================= */
|
|
@@ -249,10 +165,15 @@ button[data-list-group-label] [data-stats] {
|
|
|
249
165
|
}
|
|
250
166
|
|
|
251
167
|
/* =============================================================================
|
|
252
|
-
|
|
168
|
+
Separator / Spacer
|
|
253
169
|
============================================================================= */
|
|
254
170
|
|
|
255
|
-
[data-list-
|
|
171
|
+
[data-list-separator] {
|
|
256
172
|
height: 1px;
|
|
257
173
|
margin-block: 0.25rem;
|
|
174
|
+
border: none;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
[data-list-spacer] {
|
|
178
|
+
height: 0.5rem;
|
|
258
179
|
}
|
package/src/base/menu.css
CHANGED
|
@@ -211,112 +211,64 @@
|
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
/* =============================================================================
|
|
214
|
-
Item Elements
|
|
214
|
+
Item Elements - uses shared [data-item-*] from item.css
|
|
215
215
|
============================================================================= */
|
|
216
216
|
|
|
217
|
-
[data-menu-item] > [data-menu-item-icon] {
|
|
218
|
-
flex-shrink: 0;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
[data-menu-item] > [data-menu-item-content] {
|
|
222
|
-
display: flex;
|
|
223
|
-
flex-direction: column;
|
|
224
|
-
flex: 1;
|
|
225
|
-
min-width: 0;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
[data-menu-item] > [data-menu-item-content] > [data-menu-item-label] {
|
|
229
|
-
font-weight: 500;
|
|
230
|
-
white-space: nowrap;
|
|
231
|
-
overflow: hidden;
|
|
232
|
-
text-overflow: ellipsis;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
[data-menu-item] > [data-menu-item-content] > [data-menu-item-description] {
|
|
236
|
-
font-size: 0.75em;
|
|
237
|
-
white-space: nowrap;
|
|
238
|
-
overflow: hidden;
|
|
239
|
-
text-overflow: ellipsis;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
[data-menu-item] > [data-menu-item-shortcut] {
|
|
243
|
-
flex-shrink: 0;
|
|
244
|
-
margin-left: auto;
|
|
245
|
-
padding: 0.125rem 0.375rem;
|
|
246
|
-
font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
|
|
247
|
-
font-size: 0.75em;
|
|
248
|
-
font-weight: 500;
|
|
249
|
-
border-radius: 0.25rem;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
/* =============================================================================
|
|
253
|
-
Custom Snippet Wrapper
|
|
254
|
-
============================================================================= */
|
|
255
|
-
|
|
256
|
-
[data-menu-item-custom] {
|
|
257
|
-
display: contents;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/* Style direct children of custom wrapper */
|
|
261
|
-
[data-menu-item-custom] > button,
|
|
262
|
-
[data-menu-item-custom] > a {
|
|
263
|
-
display: flex;
|
|
264
|
-
align-items: center;
|
|
265
|
-
width: 100%;
|
|
266
|
-
text-align: left;
|
|
267
|
-
background: transparent;
|
|
268
|
-
border: none;
|
|
269
|
-
cursor: pointer;
|
|
270
|
-
transition: background-color 150ms ease;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
[data-menu-item-custom][data-disabled='true'] > button,
|
|
274
|
-
[data-menu-item-custom][data-disabled='true'] > a {
|
|
275
|
-
pointer-events: none;
|
|
276
|
-
opacity: 0.5;
|
|
277
|
-
cursor: not-allowed;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
217
|
/* =============================================================================
|
|
281
218
|
Groups
|
|
282
219
|
============================================================================= */
|
|
283
220
|
|
|
284
221
|
[data-menu-group] {
|
|
285
|
-
padding-block: 0.25rem;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
[data-menu-group-label] {
|
|
289
222
|
display: flex;
|
|
290
223
|
align-items: center;
|
|
224
|
+
width: 100%;
|
|
291
225
|
gap: 0.5rem;
|
|
292
226
|
font-size: 0.75rem;
|
|
293
227
|
font-weight: 600;
|
|
294
228
|
text-transform: uppercase;
|
|
295
229
|
letter-spacing: 0.05em;
|
|
230
|
+
cursor: pointer;
|
|
231
|
+
transition: color 150ms ease;
|
|
296
232
|
}
|
|
297
233
|
|
|
298
|
-
/* Group
|
|
299
|
-
[data-menu][data-size='sm'] [data-menu-group
|
|
234
|
+
/* Group sizes */
|
|
235
|
+
[data-menu][data-size='sm'] [data-menu-group] {
|
|
300
236
|
padding: 0.25rem 0.5rem;
|
|
301
237
|
}
|
|
302
|
-
[data-menu][data-size='md'] [data-menu-group
|
|
303
|
-
[data-menu]:not([data-size]) [data-menu-group
|
|
238
|
+
[data-menu][data-size='md'] [data-menu-group],
|
|
239
|
+
[data-menu]:not([data-size]) [data-menu-group] {
|
|
304
240
|
padding: 0.375rem 0.75rem;
|
|
305
241
|
}
|
|
306
|
-
[data-menu][data-size='lg'] [data-menu-group
|
|
242
|
+
[data-menu][data-size='lg'] [data-menu-group] {
|
|
307
243
|
padding: 0.5rem 1rem;
|
|
308
244
|
}
|
|
309
245
|
|
|
310
|
-
[data-menu-group
|
|
246
|
+
[data-menu-group]:focus {
|
|
247
|
+
outline: none;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
[data-menu-group] > [data-menu-group-icon] {
|
|
311
251
|
flex-shrink: 0;
|
|
312
252
|
opacity: 0.7;
|
|
313
253
|
}
|
|
314
254
|
|
|
255
|
+
[data-menu-group] > [data-menu-group-text] {
|
|
256
|
+
flex: 1;
|
|
257
|
+
text-align: left;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
[data-menu-expand-icon] {
|
|
261
|
+
flex-shrink: 0;
|
|
262
|
+
margin-left: auto;
|
|
263
|
+
transition: transform 150ms ease;
|
|
264
|
+
}
|
|
265
|
+
|
|
315
266
|
/* =============================================================================
|
|
316
|
-
|
|
267
|
+
Separator
|
|
317
268
|
============================================================================= */
|
|
318
269
|
|
|
319
|
-
[data-menu-
|
|
270
|
+
[data-menu-separator] {
|
|
320
271
|
height: 1px;
|
|
321
272
|
margin-block: 0.25rem;
|
|
273
|
+
border: none;
|
|
322
274
|
}
|
package/src/base/toggle.css
CHANGED
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
opacity: 0.5;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
[dir='rtl'] [data-toggle] {
|
|
26
|
+
flex-direction: row-reverse;
|
|
27
|
+
}
|
|
28
|
+
|
|
25
29
|
/* =============================================================================
|
|
26
30
|
Toggle Options
|
|
27
31
|
============================================================================= */
|
package/src/base/tree.css
CHANGED
|
@@ -84,13 +84,52 @@
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
/* =============================================================================
|
|
87
|
-
|
|
87
|
+
Line Style Variants
|
|
88
|
+
Connectors have no borders by default. data-line-style activates them.
|
|
89
|
+
'none' keeps connectors in DOM for spacing but lines stay invisible.
|
|
88
90
|
============================================================================= */
|
|
89
91
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
/* Shared: activate 1px border for all visible line styles (solid/dashed/dotted).
|
|
93
|
+
Uses longhand width+style so theme border-color is not overridden. */
|
|
94
|
+
[data-tree]:not([data-line-style='none']) [data-connector-v] {
|
|
95
|
+
border-right-width: 1px;
|
|
96
|
+
}
|
|
97
|
+
[data-tree]:not([data-line-style='none']) [data-connector-h] {
|
|
98
|
+
border-bottom-width: 1px;
|
|
99
|
+
}
|
|
100
|
+
[data-tree]:not([data-line-style='none']) [data-connector-corner] {
|
|
101
|
+
border-bottom-width: 1px;
|
|
102
|
+
border-right-width: 1px;
|
|
103
|
+
}
|
|
104
|
+
[data-tree]:not([data-line-style='none']) [data-connector-rtl] [data-connector-v] {
|
|
105
|
+
border-right-width: 0;
|
|
106
|
+
border-left-width: 1px;
|
|
107
|
+
}
|
|
108
|
+
[data-tree]:not([data-line-style='none']) [data-connector-rtl] [data-connector-corner] {
|
|
109
|
+
border-right-width: 0;
|
|
110
|
+
border-left-width: 1px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* Solid (default visible style) */
|
|
114
|
+
[data-tree][data-line-style='solid'] [data-connector-v] { border-right-style: solid; }
|
|
115
|
+
[data-tree][data-line-style='solid'] [data-connector-h] { border-bottom-style: solid; }
|
|
116
|
+
[data-tree][data-line-style='solid'] [data-connector-corner] { border-bottom-style: solid; border-right-style: solid; }
|
|
117
|
+
[data-tree][data-line-style='solid'] [data-connector-rtl] [data-connector-v] { border-left-style: solid; }
|
|
118
|
+
[data-tree][data-line-style='solid'] [data-connector-rtl] [data-connector-corner] { border-left-style: solid; }
|
|
119
|
+
|
|
120
|
+
/* Dashed */
|
|
121
|
+
[data-tree][data-line-style='dashed'] [data-connector-v] { border-right-style: dashed; }
|
|
122
|
+
[data-tree][data-line-style='dashed'] [data-connector-h] { border-bottom-style: dashed; }
|
|
123
|
+
[data-tree][data-line-style='dashed'] [data-connector-corner] { border-bottom-style: dashed; border-right-style: dashed; }
|
|
124
|
+
[data-tree][data-line-style='dashed'] [data-connector-rtl] [data-connector-v] { border-left-style: dashed; }
|
|
125
|
+
[data-tree][data-line-style='dashed'] [data-connector-rtl] [data-connector-corner] { border-left-style: dashed; }
|
|
126
|
+
|
|
127
|
+
/* Dotted */
|
|
128
|
+
[data-tree][data-line-style='dotted'] [data-connector-v] { border-right-style: dotted; }
|
|
129
|
+
[data-tree][data-line-style='dotted'] [data-connector-h] { border-bottom-style: dotted; }
|
|
130
|
+
[data-tree][data-line-style='dotted'] [data-connector-corner] { border-bottom-style: dotted; border-right-style: dotted; }
|
|
131
|
+
[data-tree][data-line-style='dotted'] [data-connector-rtl] [data-connector-v] { border-left-style: dotted; }
|
|
132
|
+
[data-tree][data-line-style='dotted'] [data-connector-rtl] [data-connector-corner] { border-left-style: dotted; }
|
|
94
133
|
|
|
95
134
|
/* =============================================================================
|
|
96
135
|
Tree Item Content
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UploadProgress - Base Structural Styles
|
|
3
|
+
*
|
|
4
|
+
* Layout: header flex, file row layout, progress bar track, action positioning.
|
|
5
|
+
* No colors or visual theming - those belong in theme styles.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/* =============================================================================
|
|
9
|
+
Container
|
|
10
|
+
============================================================================= */
|
|
11
|
+
|
|
12
|
+
[data-upload-progress] {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
gap: 0.25rem;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* =============================================================================
|
|
19
|
+
Header
|
|
20
|
+
============================================================================= */
|
|
21
|
+
|
|
22
|
+
[data-upload-header] {
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: space-between;
|
|
26
|
+
gap: 0.75rem;
|
|
27
|
+
padding: 0.5rem 0.75rem;
|
|
28
|
+
font-size: 0.875rem;
|
|
29
|
+
font-weight: 500;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
[data-upload-clear] {
|
|
33
|
+
padding: 0.25rem 0.5rem;
|
|
34
|
+
border-radius: 0.25rem;
|
|
35
|
+
font-size: 0.75rem;
|
|
36
|
+
cursor: pointer;
|
|
37
|
+
border: 1px solid currentColor;
|
|
38
|
+
background: transparent;
|
|
39
|
+
transition:
|
|
40
|
+
background-color 150ms ease,
|
|
41
|
+
color 150ms ease;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* =============================================================================
|
|
45
|
+
File Status
|
|
46
|
+
============================================================================= */
|
|
47
|
+
|
|
48
|
+
[data-upload-file-status] {
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
gap: 0.75rem;
|
|
52
|
+
padding: 0.375rem 0.75rem;
|
|
53
|
+
font-size: 0.875rem;
|
|
54
|
+
transition: background-color 150ms ease;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* =============================================================================
|
|
58
|
+
File Elements
|
|
59
|
+
============================================================================= */
|
|
60
|
+
|
|
61
|
+
[data-upload-file-icon] {
|
|
62
|
+
flex-shrink: 0;
|
|
63
|
+
font-size: 1.25rem;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
[data-upload-file-name] {
|
|
67
|
+
flex: 1;
|
|
68
|
+
min-width: 0;
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
text-overflow: ellipsis;
|
|
71
|
+
white-space: nowrap;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
[data-upload-file-size] {
|
|
75
|
+
flex-shrink: 0;
|
|
76
|
+
font-size: 0.75rem;
|
|
77
|
+
white-space: nowrap;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* =============================================================================
|
|
81
|
+
Progress Bar
|
|
82
|
+
============================================================================= */
|
|
83
|
+
|
|
84
|
+
[data-upload-bar] {
|
|
85
|
+
position: relative;
|
|
86
|
+
width: 6rem;
|
|
87
|
+
height: 0.375rem;
|
|
88
|
+
border-radius: 9999px;
|
|
89
|
+
overflow: hidden;
|
|
90
|
+
flex-shrink: 0;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
[data-upload-fill] {
|
|
94
|
+
height: 100%;
|
|
95
|
+
border-radius: 9999px;
|
|
96
|
+
transition: width 0.3s ease;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* =============================================================================
|
|
100
|
+
Status Badge
|
|
101
|
+
============================================================================= */
|
|
102
|
+
|
|
103
|
+
[data-upload-status] {
|
|
104
|
+
flex-shrink: 0;
|
|
105
|
+
font-size: 0.75rem;
|
|
106
|
+
font-weight: 500;
|
|
107
|
+
text-transform: capitalize;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* =============================================================================
|
|
111
|
+
Action Buttons
|
|
112
|
+
============================================================================= */
|
|
113
|
+
|
|
114
|
+
[data-upload-actions] {
|
|
115
|
+
display: flex;
|
|
116
|
+
gap: 0.25rem;
|
|
117
|
+
flex-shrink: 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
[data-upload-actions] button {
|
|
121
|
+
display: inline-flex;
|
|
122
|
+
align-items: center;
|
|
123
|
+
justify-content: center;
|
|
124
|
+
width: 1.5rem;
|
|
125
|
+
height: 1.5rem;
|
|
126
|
+
padding: 0;
|
|
127
|
+
border: none;
|
|
128
|
+
border-radius: 0.25rem;
|
|
129
|
+
cursor: pointer;
|
|
130
|
+
background: transparent;
|
|
131
|
+
font-size: 0.875rem;
|
|
132
|
+
transition:
|
|
133
|
+
background-color 150ms ease,
|
|
134
|
+
color 150ms ease;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* =============================================================================
|
|
138
|
+
Grid View Tiles
|
|
139
|
+
============================================================================= */
|
|
140
|
+
|
|
141
|
+
[data-grid] [data-upload-file-status] {
|
|
142
|
+
flex-direction: column;
|
|
143
|
+
align-items: center;
|
|
144
|
+
text-align: center;
|
|
145
|
+
padding: 1rem;
|
|
146
|
+
gap: 0.5rem;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
[data-grid] [data-upload-file-status] [data-upload-file-icon] {
|
|
150
|
+
font-size: 2rem;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
[data-grid] [data-upload-file-status] [data-upload-bar] {
|
|
154
|
+
width: 100%;
|
|
155
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UploadTarget - Base Structural Styles
|
|
3
|
+
*
|
|
4
|
+
* Layout: flex centering, dashed border, sizing, transitions.
|
|
5
|
+
* No colors or visual theming - those belong in theme styles.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/* =============================================================================
|
|
9
|
+
Drop Zone Container
|
|
10
|
+
============================================================================= */
|
|
11
|
+
|
|
12
|
+
[data-upload-target] {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
align-items: center;
|
|
16
|
+
justify-content: center;
|
|
17
|
+
gap: 0.75rem;
|
|
18
|
+
min-height: 10rem;
|
|
19
|
+
padding: 2rem;
|
|
20
|
+
border: 2px dashed currentColor;
|
|
21
|
+
border-radius: 0.5rem;
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
transition:
|
|
24
|
+
border-color 150ms ease,
|
|
25
|
+
background-color 150ms ease;
|
|
26
|
+
user-select: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
[data-upload-target]:focus {
|
|
30
|
+
outline: none;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
[data-upload-target][data-disabled] {
|
|
34
|
+
pointer-events: none;
|
|
35
|
+
opacity: 0.5;
|
|
36
|
+
cursor: not-allowed;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* =============================================================================
|
|
40
|
+
Upload Icon
|
|
41
|
+
============================================================================= */
|
|
42
|
+
|
|
43
|
+
[data-upload-target] [data-upload-icon] {
|
|
44
|
+
font-size: 2rem;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* =============================================================================
|
|
48
|
+
Browse Button
|
|
49
|
+
============================================================================= */
|
|
50
|
+
|
|
51
|
+
[data-upload-target] [data-upload-button] {
|
|
52
|
+
padding: 0.375rem 0.75rem;
|
|
53
|
+
border-radius: 0.375rem;
|
|
54
|
+
font-size: 0.875rem;
|
|
55
|
+
font-weight: 500;
|
|
56
|
+
cursor: pointer;
|
|
57
|
+
border: 1px solid currentColor;
|
|
58
|
+
background: transparent;
|
|
59
|
+
transition:
|
|
60
|
+
background-color 150ms ease,
|
|
61
|
+
color 150ms ease;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
[data-upload-target] [data-upload-button]:disabled {
|
|
65
|
+
pointer-events: none;
|
|
66
|
+
opacity: 0.5;
|
|
67
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Card - Glass Theme Styles
|
|
3
|
+
*
|
|
4
|
+
* Glassmorphism styling with blur and transparency.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* =============================================================================
|
|
8
|
+
Base Card Styles
|
|
9
|
+
============================================================================= */
|
|
10
|
+
|
|
11
|
+
[data-style='glass'] [data-card] {
|
|
12
|
+
@apply backdrop-blur-md border shadow-lg bg-surface-z2/60 border-surface-z5/20 text-surface-z9;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Interactive cards (buttons) */
|
|
16
|
+
[data-style='glass'] [data-card][data-card-interactive] {
|
|
17
|
+
cursor: pointer;
|
|
18
|
+
transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
[data-style='glass'] [data-card][data-card-interactive]:hover {
|
|
22
|
+
@apply shadow-xl bg-surface-z2/80;
|
|
23
|
+
transform: translateY(-2px);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
[data-style='glass'] [data-card][data-card-interactive]:active {
|
|
27
|
+
@apply shadow-lg;
|
|
28
|
+
transform: translateY(0);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* =============================================================================
|
|
32
|
+
Card Sections
|
|
33
|
+
============================================================================= */
|
|
34
|
+
|
|
35
|
+
[data-style='glass'] [data-card-header] {
|
|
36
|
+
@apply border-surface-z5/20 border-b;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[data-style='glass'] [data-card-body] {
|
|
40
|
+
@apply text-surface-z8;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
[data-style='glass'] [data-card-footer] {
|
|
44
|
+
@apply border-surface-z5/20 border-t text-surface-z7;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* =============================================================================
|
|
48
|
+
Focus States
|
|
49
|
+
============================================================================= */
|
|
50
|
+
|
|
51
|
+
[data-style='glass'] [data-card][data-card-interactive]:focus-visible {
|
|
52
|
+
@apply outline-none ring-2 ring-surface-z5/40;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* =============================================================================
|
|
56
|
+
Disabled State
|
|
57
|
+
============================================================================= */
|
|
58
|
+
|
|
59
|
+
[data-style='glass'] [data-card][data-card-interactive][data-disabled],
|
|
60
|
+
[data-style='glass'] [data-card][data-card-interactive]:disabled {
|
|
61
|
+
@apply opacity-50 cursor-not-allowed;
|
|
62
|
+
transform: none;
|
|
63
|
+
}
|