@rokkit/themes 1.0.0-next.14 → 1.0.0-next.141
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/LICENSE +1 -1
- package/README.md +106 -9
- package/build.mjs +235 -0
- package/dist/base.css +4934 -0
- package/dist/glass.css +1400 -0
- package/dist/index.css +10991 -0
- package/dist/material.css +1435 -0
- package/dist/minimal.css +1389 -0
- package/dist/rokkit.css +1829 -0
- package/package.json +53 -52
- package/src/base/breadcrumbs.css +47 -0
- package/src/base/button.css +254 -0
- package/src/base/card.css +36 -0
- package/src/base/carousel.css +128 -0
- package/src/base/connector.css +92 -0
- package/src/base/display.css +91 -0
- package/src/base/floating-action.css +388 -0
- package/src/base/floating-navigation.css +405 -0
- package/src/base/graph-paper.css +83 -0
- package/src/base/grid.css +93 -0
- package/src/base/index.css +40 -0
- package/src/base/input.css +238 -0
- package/src/base/item.css +78 -0
- package/src/base/list.css +179 -0
- package/src/base/menu.css +274 -0
- package/src/base/pill.css +57 -0
- package/src/base/progress.css +34 -0
- package/src/base/range.css +121 -0
- package/src/base/rating.css +42 -0
- package/src/base/reveal.css +37 -0
- package/src/base/search-filter.css +132 -0
- package/src/base/select.css +411 -0
- package/src/base/shine.css +14 -0
- package/src/base/stepper.css +140 -0
- package/src/base/switch.css +152 -0
- package/src/base/table.css +159 -0
- package/src/base/tabs.css +171 -0
- package/src/base/tilt.css +14 -0
- package/src/base/timeline.css +84 -0
- package/src/base/toggle.css +138 -0
- package/src/base/toolbar.css +337 -0
- package/src/base/tree.css +235 -0
- package/src/base/upload-progress.css +155 -0
- package/src/base/upload-target.css +67 -0
- package/src/glass/button.css +153 -0
- package/src/glass/card.css +66 -0
- package/src/glass/floating-action.css +61 -0
- package/src/glass/floating-navigation.css +74 -0
- package/src/glass/index.css +23 -0
- package/src/glass/input.css +126 -0
- package/src/glass/list.css +122 -0
- package/src/glass/menu.css +92 -0
- package/src/glass/range.css +61 -0
- package/src/glass/search-filter.css +49 -0
- package/src/glass/select.css +178 -0
- package/src/glass/switch.css +28 -0
- package/src/glass/table.css +87 -0
- package/src/glass/tabs.css +58 -0
- package/src/glass/timeline.css +46 -0
- package/src/glass/toggle.css +48 -0
- package/src/glass/toolbar.css +84 -0
- package/src/glass/tree.css +110 -0
- package/src/index.css +18 -0
- package/src/index.js +25 -2
- package/src/material/button.css +157 -0
- package/src/material/card.css +61 -0
- package/src/material/floating-action.css +60 -0
- package/src/material/floating-navigation.css +74 -0
- package/src/material/index.css +23 -0
- package/src/material/input.css +159 -0
- package/src/material/list.css +126 -0
- package/src/material/menu.css +92 -0
- package/src/material/range.css +62 -0
- package/src/material/search-filter.css +49 -0
- package/src/material/select.css +170 -0
- package/src/material/switch.css +28 -0
- package/src/material/table.css +91 -0
- package/src/material/tabs.css +62 -0
- package/src/material/timeline.css +46 -0
- package/src/material/toggle.css +48 -0
- package/src/material/toolbar.css +85 -0
- package/src/material/tree.css +103 -0
- package/src/minimal/button.css +155 -0
- package/src/minimal/card.css +61 -0
- package/src/minimal/floating-action.css +59 -0
- package/src/minimal/floating-navigation.css +70 -0
- package/src/minimal/index.css +23 -0
- package/src/minimal/input.css +119 -0
- package/src/minimal/list.css +126 -0
- package/src/minimal/menu.css +88 -0
- package/src/minimal/range.css +61 -0
- package/src/minimal/search-filter.css +49 -0
- package/src/minimal/select.css +170 -0
- package/src/minimal/switch.css +28 -0
- package/src/minimal/table.css +89 -0
- package/src/minimal/tabs.css +68 -0
- package/src/minimal/timeline.css +45 -0
- package/src/minimal/toggle.css +48 -0
- package/src/minimal/toolbar.css +85 -0
- package/src/minimal/tree.css +106 -0
- package/src/palette.css +7 -0
- package/src/rokkit/button.css +254 -0
- package/src/rokkit/card.css +64 -0
- package/src/rokkit/connector.css +11 -0
- package/src/rokkit/floating-action.css +65 -0
- package/src/rokkit/floating-navigation.css +83 -0
- package/src/rokkit/grid.css +46 -0
- package/src/rokkit/index.css +27 -0
- package/src/rokkit/input.css +134 -0
- package/src/rokkit/list.css +132 -0
- package/src/rokkit/menu.css +93 -0
- package/src/rokkit/range.css +62 -0
- package/src/rokkit/search-filter.css +49 -0
- package/src/rokkit/select.css +190 -0
- package/src/rokkit/switch.css +28 -0
- package/src/rokkit/table.css +89 -0
- package/src/rokkit/tabs.css +87 -0
- package/src/rokkit/timeline.css +46 -0
- package/src/rokkit/toggle.css +48 -0
- package/src/rokkit/toolbar.css +84 -0
- package/src/rokkit/tree.css +149 -0
- package/src/rokkit/upload-progress.css +102 -0
- package/src/rokkit/upload-target.css +50 -0
- package/src/constants.js +0 -4
- package/src/utils.js +0 -88
|
@@ -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,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Button - Glass Theme Styles
|
|
3
|
+
*
|
|
4
|
+
* Glassmorphism styling with blur and transparency.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* =============================================================================
|
|
8
|
+
Default Style (filled)
|
|
9
|
+
============================================================================= */
|
|
10
|
+
|
|
11
|
+
[data-style='glass'] [data-button][data-style='default'][data-variant='default'],
|
|
12
|
+
[data-style='glass'] [data-button]:not([data-style])[data-variant='default'],
|
|
13
|
+
[data-style='glass'] [data-button][data-style='default']:not([data-variant]),
|
|
14
|
+
[data-style='glass'] [data-button]:not([data-style]):not([data-variant]) {
|
|
15
|
+
@apply bg-surface-z2/70 border-surface-z5/20 text-surface-z9 border shadow-sm backdrop-blur-md;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
[data-style='glass'] [data-button][data-style='default'][data-variant='primary'],
|
|
19
|
+
[data-style='glass'] [data-button]:not([data-style])[data-variant='primary'] {
|
|
20
|
+
@apply bg-primary-z5/80 text-on-primary shadow-sm backdrop-blur-md;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-style='glass'] [data-button][data-style='default'][data-variant='secondary'],
|
|
24
|
+
[data-style='glass'] [data-button]:not([data-style])[data-variant='secondary'] {
|
|
25
|
+
@apply bg-secondary-z4/80 text-on-secondary shadow-sm backdrop-blur-md;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
[data-style='glass'] [data-button][data-style='default'][data-variant='danger'],
|
|
29
|
+
[data-style='glass'] [data-button]:not([data-style])[data-variant='danger'] {
|
|
30
|
+
@apply bg-danger-z4/80 text-on-danger shadow-sm backdrop-blur-md;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* =============================================================================
|
|
34
|
+
Outline Style
|
|
35
|
+
============================================================================= */
|
|
36
|
+
|
|
37
|
+
[data-style='glass'] [data-button][data-style='outline'][data-variant='default'],
|
|
38
|
+
[data-style='glass'] [data-button][data-style='outline']:not([data-variant]) {
|
|
39
|
+
@apply border-surface-z5/30 text-surface-z8 border bg-transparent;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
[data-style='glass'] [data-button][data-style='outline'][data-variant='primary'] {
|
|
43
|
+
@apply border-primary-z4/40 text-primary-z6 border bg-transparent;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
[data-style='glass'] [data-button][data-style='outline'][data-variant='secondary'] {
|
|
47
|
+
@apply border-secondary-z4/40 text-secondary-z6 border bg-transparent;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
[data-style='glass'] [data-button][data-style='outline'][data-variant='danger'] {
|
|
51
|
+
@apply border-danger-z4/40 text-danger-z4 border bg-transparent;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* =============================================================================
|
|
55
|
+
Ghost Style
|
|
56
|
+
============================================================================= */
|
|
57
|
+
|
|
58
|
+
[data-style='glass'] [data-button][data-style='ghost'] {
|
|
59
|
+
@apply border-transparent bg-transparent;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
[data-style='glass'] [data-button][data-style='ghost'][data-variant='default'],
|
|
63
|
+
[data-style='glass'] [data-button][data-style='ghost']:not([data-variant]) {
|
|
64
|
+
@apply text-surface-z8;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
[data-style='glass'] [data-button][data-style='ghost'][data-variant='primary'] {
|
|
68
|
+
@apply text-primary-z6;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
[data-style='glass'] [data-button][data-style='ghost'][data-variant='secondary'] {
|
|
72
|
+
@apply text-secondary-z6;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
[data-style='glass'] [data-button][data-style='ghost'][data-variant='danger'] {
|
|
76
|
+
@apply text-danger-z4;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* =============================================================================
|
|
80
|
+
Gradient Style
|
|
81
|
+
============================================================================= */
|
|
82
|
+
|
|
83
|
+
[data-style='glass'] [data-button][data-style='gradient'][data-variant='default'],
|
|
84
|
+
[data-style='glass'] [data-button][data-style='gradient']:not([data-variant]) {
|
|
85
|
+
@apply from-surface-z3/80 to-surface-z1/60 text-surface-z10 bg-gradient-to-br backdrop-blur-md;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
[data-style='glass'] [data-button][data-style='gradient'][data-variant='primary'] {
|
|
89
|
+
@apply from-primary-z5/80 to-primary-z3/60 text-on-primary bg-gradient-to-br backdrop-blur-md;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
[data-style='glass'] [data-button][data-style='gradient'][data-variant='secondary'] {
|
|
93
|
+
@apply from-secondary-z5/80 to-secondary-z3/60 text-on-secondary bg-gradient-to-br backdrop-blur-md;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
[data-style='glass'] [data-button][data-style='gradient'][data-variant='danger'] {
|
|
97
|
+
@apply from-danger-z5/80 to-danger-z3/60 text-on-danger bg-gradient-to-br backdrop-blur-md;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
[data-style='glass']
|
|
101
|
+
[data-button][data-style='gradient']:hover:not(:disabled):not([data-disabled]) {
|
|
102
|
+
filter: brightness(1.1);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* =============================================================================
|
|
106
|
+
Link Style
|
|
107
|
+
============================================================================= */
|
|
108
|
+
|
|
109
|
+
[data-style='glass'] [data-button][data-style='link'][data-variant='default'],
|
|
110
|
+
[data-style='glass'] [data-button][data-style='link']:not([data-variant]) {
|
|
111
|
+
@apply text-surface-z8;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
[data-style='glass'] [data-button][data-style='link'][data-variant='primary'] {
|
|
115
|
+
@apply text-primary-z6;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
[data-style='glass'] [data-button][data-style='link'][data-variant='secondary'] {
|
|
119
|
+
@apply text-secondary-z6;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
[data-style='glass'] [data-button][data-style='link'][data-variant='danger'] {
|
|
123
|
+
@apply text-danger-z4;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
[data-style='glass'] [data-button][data-style='link']:hover:not(:disabled):not([data-disabled]) {
|
|
127
|
+
@apply text-primary-z7;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* =============================================================================
|
|
131
|
+
Hover States
|
|
132
|
+
============================================================================= */
|
|
133
|
+
|
|
134
|
+
[data-style='glass'] [data-button][data-style='default']:hover:not(:disabled):not([data-disabled]),
|
|
135
|
+
[data-style='glass'] [data-button]:not([data-style]):hover:not(:disabled):not([data-disabled]) {
|
|
136
|
+
@apply shadow-md;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
[data-style='glass'] [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled]) {
|
|
140
|
+
@apply bg-surface-z2/40;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
[data-style='glass'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled]) {
|
|
144
|
+
@apply bg-surface-z2/30;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* =============================================================================
|
|
148
|
+
Focus
|
|
149
|
+
============================================================================= */
|
|
150
|
+
|
|
151
|
+
[data-style='glass'] [data-button]:focus-visible {
|
|
152
|
+
@apply ring-surface-z5/40 ring-2 outline-none;
|
|
153
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 bg-surface-z2/60 border-surface-z5/20 text-surface-z9 border shadow-lg backdrop-blur-md;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Interactive cards (buttons) */
|
|
16
|
+
[data-style='glass'] [data-card][data-card-interactive] {
|
|
17
|
+
cursor: pointer;
|
|
18
|
+
transition:
|
|
19
|
+
transform 0.2s ease,
|
|
20
|
+
box-shadow 0.2s ease,
|
|
21
|
+
background-color 0.2s ease;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
[data-style='glass'] [data-card][data-card-interactive]:hover {
|
|
25
|
+
@apply bg-surface-z2/80 shadow-xl;
|
|
26
|
+
transform: translateY(-2px);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
[data-style='glass'] [data-card][data-card-interactive]:active {
|
|
30
|
+
@apply shadow-lg;
|
|
31
|
+
transform: translateY(0);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* =============================================================================
|
|
35
|
+
Card Sections
|
|
36
|
+
============================================================================= */
|
|
37
|
+
|
|
38
|
+
[data-style='glass'] [data-card-header] {
|
|
39
|
+
@apply border-surface-z5/20 border-b;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
[data-style='glass'] [data-card-body] {
|
|
43
|
+
@apply text-surface-z8;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
[data-style='glass'] [data-card-footer] {
|
|
47
|
+
@apply border-surface-z5/20 text-surface-z7 border-t;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* =============================================================================
|
|
51
|
+
Focus States
|
|
52
|
+
============================================================================= */
|
|
53
|
+
|
|
54
|
+
[data-style='glass'] [data-card][data-card-interactive]:focus-visible {
|
|
55
|
+
@apply ring-surface-z5/40 ring-2 outline-none;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* =============================================================================
|
|
59
|
+
Disabled State
|
|
60
|
+
============================================================================= */
|
|
61
|
+
|
|
62
|
+
[data-style='glass'] [data-card][data-card-interactive][data-disabled],
|
|
63
|
+
[data-style='glass'] [data-card][data-card-interactive]:disabled {
|
|
64
|
+
@apply cursor-not-allowed opacity-50;
|
|
65
|
+
transform: none;
|
|
66
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FloatingAction - Glass Theme Styles
|
|
3
|
+
*
|
|
4
|
+
* Glassmorphism styling with blur and transparency.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* =============================================================================
|
|
8
|
+
FAB Trigger Button
|
|
9
|
+
============================================================================= */
|
|
10
|
+
|
|
11
|
+
[data-style='glass'] [data-fab-trigger] {
|
|
12
|
+
@apply bg-primary-z5/80 text-white shadow-lg backdrop-blur-md;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[data-style='glass'] [data-fab-trigger]:hover:not(:disabled) {
|
|
16
|
+
@apply bg-primary-z5/90 shadow-xl;
|
|
17
|
+
transform: scale(1.05);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
[data-style='glass'] [data-fab-trigger]:focus-visible {
|
|
21
|
+
@apply ring-surface-z5/40 ring-2 outline-none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
[data-style='glass'] [data-fab][data-open='true'] [data-fab-trigger] {
|
|
25
|
+
@apply bg-surface-z6/80;
|
|
26
|
+
transform: rotate(45deg);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* =============================================================================
|
|
30
|
+
FAB Items
|
|
31
|
+
============================================================================= */
|
|
32
|
+
|
|
33
|
+
[data-style='glass'] [data-fab-item] {
|
|
34
|
+
@apply text-surface-z9 bg-surface-z1/70 border-surface-z5/20 border shadow-md backdrop-blur-md;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
[data-style='glass'] [data-fab-item]:hover:not(:disabled) {
|
|
38
|
+
@apply text-surface-z10 bg-surface-z2/80 shadow-lg;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
[data-style='glass'] [data-fab-item]:focus-visible {
|
|
42
|
+
@apply ring-surface-z5/40 ring-2 outline-none;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* Item icon */
|
|
46
|
+
[data-style='glass'] [data-fab-item] [data-fab-item-icon] {
|
|
47
|
+
@apply text-primary-z6;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
[data-style='glass'] [data-fab-item]:hover:not(:disabled) [data-fab-item-icon] {
|
|
51
|
+
@apply text-primary-z7;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* =============================================================================
|
|
55
|
+
Backdrop
|
|
56
|
+
============================================================================= */
|
|
57
|
+
|
|
58
|
+
[data-style='glass'] [data-fab-backdrop] {
|
|
59
|
+
background: rgba(0, 0, 0, 0.3);
|
|
60
|
+
backdrop-filter: blur(4px);
|
|
61
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FloatingNavigation - Glass Theme Styles
|
|
3
|
+
*
|
|
4
|
+
* Glassmorphism styling with blur and transparency.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* =============================================================================
|
|
8
|
+
Container
|
|
9
|
+
============================================================================= */
|
|
10
|
+
|
|
11
|
+
[data-style='glass'] [data-floating-nav] {
|
|
12
|
+
@apply bg-surface-z1/70 border-surface-z5/20 border shadow-xl backdrop-blur-xl;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* =============================================================================
|
|
16
|
+
Header
|
|
17
|
+
============================================================================= */
|
|
18
|
+
|
|
19
|
+
[data-style='glass'] [data-floating-nav-title] {
|
|
20
|
+
@apply text-surface-z6;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-style='glass'] [data-floating-nav-pin] {
|
|
24
|
+
@apply text-surface-z6;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[data-style='glass'] [data-floating-nav-pin]:hover {
|
|
28
|
+
@apply text-primary-z6;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
[data-style='glass'] [data-floating-nav-pin][aria-pressed='true'] {
|
|
32
|
+
@apply text-primary-z7;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* =============================================================================
|
|
36
|
+
Items
|
|
37
|
+
============================================================================= */
|
|
38
|
+
|
|
39
|
+
[data-style='glass'] [data-floating-nav-item] {
|
|
40
|
+
@apply text-surface-z8;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
[data-style='glass'] [data-floating-nav-item]:hover {
|
|
44
|
+
@apply text-surface-z10 bg-surface-z2/50;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
[data-style='glass'] [data-floating-nav-item][data-active] {
|
|
48
|
+
@apply text-primary-z7 bg-primary-z5/10;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
[data-style='glass'] [data-floating-nav-item]:focus-visible {
|
|
52
|
+
@apply ring-surface-z5/40 ring-2 outline-none;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Icon */
|
|
56
|
+
[data-style='glass'] [data-floating-nav-icon] {
|
|
57
|
+
@apply text-surface-z6;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
[data-style='glass'] [data-floating-nav-item]:hover [data-floating-nav-icon] {
|
|
61
|
+
@apply text-primary-z6;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
[data-style='glass'] [data-floating-nav-item][data-active] [data-floating-nav-icon] {
|
|
65
|
+
@apply text-primary-z7;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* =============================================================================
|
|
69
|
+
Active Indicator
|
|
70
|
+
============================================================================= */
|
|
71
|
+
|
|
72
|
+
[data-style='glass'] [data-floating-nav-indicator] {
|
|
73
|
+
@apply bg-primary-z5/80;
|
|
74
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rokkit/themes - Glass Theme
|
|
3
|
+
*
|
|
4
|
+
* Glassmorphism styling with blur, transparency, and subtle borders.
|
|
5
|
+
* Use with data-style="glass" wrapper.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
@import './button.css';
|
|
9
|
+
@import './input.css';
|
|
10
|
+
@import './toolbar.css';
|
|
11
|
+
@import './tabs.css';
|
|
12
|
+
@import './toggle.css';
|
|
13
|
+
@import './switch.css';
|
|
14
|
+
@import './list.css';
|
|
15
|
+
@import './tree.css';
|
|
16
|
+
@import './select.css';
|
|
17
|
+
@import './menu.css';
|
|
18
|
+
@import './floating-action.css';
|
|
19
|
+
@import './table.css';
|
|
20
|
+
@import './search-filter.css';
|
|
21
|
+
@import './range.css';
|
|
22
|
+
@import './timeline.css';
|
|
23
|
+
@import './floating-navigation.css';
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* Glass Theme - Form field and input styles
|
|
2
|
+
* Glassmorphism inputs with blur, transparency, and subtle borders.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/* Field root: text color, spacing */
|
|
6
|
+
[data-style='glass'] [data-field-root] {
|
|
7
|
+
@apply text-surface-z9 gap-1 rounded-md transition-all;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* Disabled state */
|
|
11
|
+
[data-style='glass'] [data-field-root][data-field-disabled] [data-input-root] {
|
|
12
|
+
@apply cursor-not-allowed opacity-50;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Labels */
|
|
16
|
+
[data-style='glass'] [data-field] > label {
|
|
17
|
+
@apply text-surface-z7;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
[data-style='glass'] [data-form-root] label {
|
|
21
|
+
@apply text-surface-z7;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* Info field value */
|
|
25
|
+
[data-style='glass'] [data-field-info] {
|
|
26
|
+
@apply text-primary-z6 font-medium;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Separator */
|
|
30
|
+
[data-style='glass'] [data-form-separator] {
|
|
31
|
+
@apply border-surface-z5/20;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Input root: glass container — p-0.5 gives a small gap between border and content.
|
|
35
|
+
* No backdrop-blur here: it creates a stacking context that traps select dropdowns.
|
|
36
|
+
* The semi-transparent background provides the frosted glass look. */
|
|
37
|
+
[data-style='glass'] [data-input-root] {
|
|
38
|
+
@apply bg-surface-z1/70 border-surface-z5/20 flex items-center rounded-md border p-0.5 transition-all;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
[data-style='glass'] [data-input-root]:hover {
|
|
42
|
+
@apply border-surface-z5/30;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
[data-style='glass'] [data-input-root]:focus-within {
|
|
46
|
+
@apply border-primary-z5/50 bg-surface-z1/70;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* Standard inputs inside wrapper */
|
|
50
|
+
[data-style='glass'] [data-input-root] input:not([type='checkbox'], [type='radio'], [type='color']),
|
|
51
|
+
[data-style='glass'] [data-input-root] select {
|
|
52
|
+
@apply text-surface-z8 rounded-md border-none bg-transparent px-3 focus:outline-none;
|
|
53
|
+
font-size: 0.875rem;
|
|
54
|
+
height: 2.25rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
[data-style='glass'] [data-input-root] textarea {
|
|
58
|
+
@apply text-surface-z8 rounded-md border-none bg-transparent px-3 py-2 focus:outline-none;
|
|
59
|
+
font-size: 0.875rem;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Select inside input-root: suppress standalone glass select styles */
|
|
63
|
+
[data-style='glass'] [data-input-root] [data-select-trigger] {
|
|
64
|
+
@apply text-surface-z8 rounded-md border-none bg-transparent shadow-none ring-0 focus:outline-none;
|
|
65
|
+
background-image: none;
|
|
66
|
+
backdrop-filter: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Suppress standalone select open-state when inside input-root */
|
|
70
|
+
[data-style='glass'] [data-input-root] [data-select][data-open='true'] [data-select-trigger] {
|
|
71
|
+
@apply border-none shadow-none ring-0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Placeholders */
|
|
75
|
+
[data-style='glass'] [data-input-root] input::placeholder,
|
|
76
|
+
[data-style='glass'] [data-input-root] textarea::placeholder {
|
|
77
|
+
@apply text-surface-z5;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* Checkbox field */
|
|
81
|
+
[data-style='glass'] [data-field-type='checkbox'] [data-field] {
|
|
82
|
+
@apply flex items-center leading-loose;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Checkbox icon */
|
|
86
|
+
[data-style='glass'] [data-checkbox-icon] {
|
|
87
|
+
@apply text-surface-z5 cursor-pointer rounded text-lg transition-colors;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
[data-style='glass'] [data-checkbox-icon]:focus-visible {
|
|
91
|
+
@apply outline-primary-z4 outline-2 outline-offset-2;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
[data-style='glass']
|
|
95
|
+
[data-checkbox-root][data-variant='custom']:has(input:checked)
|
|
96
|
+
[data-checkbox-icon] {
|
|
97
|
+
@apply text-primary-z6;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
[data-style='glass'] [data-field] textarea {
|
|
101
|
+
@apply resize-vertical min-h-20 py-2;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Color input */
|
|
105
|
+
[data-style='glass'] [data-field-type='color'] [data-input-root] {
|
|
106
|
+
@apply overflow-hidden;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
[data-style='glass'] [data-field-type='color'] input[type='color'] {
|
|
110
|
+
@apply flex min-h-11 flex-1 rounded-md bg-transparent focus:outline-none;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* Description and message */
|
|
114
|
+
[data-style='glass'] [data-description],
|
|
115
|
+
[data-style='glass'] [data-message] {
|
|
116
|
+
@apply text-surface-z6;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
[data-style='glass'] [data-message] {
|
|
120
|
+
@apply rounded-md px-2 py-1;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* Error state */
|
|
124
|
+
[data-style='glass'] [data-field-root][data-field-state='fail'] [data-input-root] {
|
|
125
|
+
@apply border-danger-z5/50;
|
|
126
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List - Glass Theme Styles
|
|
3
|
+
*
|
|
4
|
+
* Glassmorphism styling with blur and transparency.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* =============================================================================
|
|
8
|
+
List Container
|
|
9
|
+
============================================================================= */
|
|
10
|
+
|
|
11
|
+
[data-style='glass'] [data-list]:focus-within {
|
|
12
|
+
@apply ring-surface-z5/40 rounded ring-1;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* =============================================================================
|
|
16
|
+
List Items
|
|
17
|
+
============================================================================= */
|
|
18
|
+
|
|
19
|
+
[data-style='glass'] [data-list] [data-list-item] {
|
|
20
|
+
@apply text-surface-z8;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-style='glass'] [data-list] a[data-list-item],
|
|
24
|
+
[data-style='glass'] [data-list] button[data-list-item] {
|
|
25
|
+
@apply text-surface-z7;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Hover and focus (keyboard navigation) */
|
|
29
|
+
[data-style='glass'] [data-list] [data-list-item]:hover:not(:disabled):not([data-disabled='true']),
|
|
30
|
+
[data-style='glass'] [data-list] [data-list-item]:focus:not(:disabled):not([data-disabled='true']) {
|
|
31
|
+
@apply text-surface-z10 bg-surface-z2/15 outline-none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Active state — muted when list not focused */
|
|
35
|
+
[data-style='glass'] [data-list] [data-list-item][data-active='true'] {
|
|
36
|
+
@apply bg-surface-z2/15 text-primary-z9;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Active state — full highlight when list has focus */
|
|
40
|
+
[data-style='glass'] [data-list]:focus-within [data-list-item][data-active='true'] {
|
|
41
|
+
@apply bg-primary-z5/30 text-primary-z9;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Active + hover/focus */
|
|
45
|
+
[data-style='glass'] [data-list] [data-list-item][data-active='true']:hover:not(:disabled),
|
|
46
|
+
[data-style='glass'] [data-list] [data-list-item][data-active='true']:focus:not(:disabled) {
|
|
47
|
+
@apply bg-primary-z5/40;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* =============================================================================
|
|
51
|
+
Item Elements
|
|
52
|
+
============================================================================= */
|
|
53
|
+
|
|
54
|
+
[data-style='glass'] [data-list] [data-list-item] [data-item-icon] {
|
|
55
|
+
@apply text-surface-z5;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
[data-style='glass'] [data-list] [data-list-item]:hover:not(:disabled) [data-item-icon],
|
|
59
|
+
[data-style='glass'] [data-list] [data-list-item]:focus:not(:disabled) [data-item-icon] {
|
|
60
|
+
@apply text-surface-z7;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
[data-style='glass'] [data-list] [data-list-item][data-active='true'] [data-item-icon] {
|
|
64
|
+
@apply text-primary-z6;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
[data-style='glass'] [data-list] [data-list-item] [data-item-description] {
|
|
68
|
+
@apply text-surface-z5;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
[data-style='glass'] [data-list] [data-list-item][data-active='true'] [data-item-description] {
|
|
72
|
+
@apply text-primary-z7;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
[data-style='glass'] [data-list] [data-list-item] [data-item-badge] {
|
|
76
|
+
@apply text-surface-z6 bg-surface-z2/15;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
[data-style='glass'] [data-list] [data-list-item][data-active='true'] [data-item-badge] {
|
|
80
|
+
@apply text-primary-z8 bg-primary-z5/25;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* =============================================================================
|
|
84
|
+
Groups
|
|
85
|
+
============================================================================= */
|
|
86
|
+
|
|
87
|
+
[data-style='glass'] [data-list] [data-list-group] {
|
|
88
|
+
@apply text-surface-z6;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
[data-style='glass'] [data-list] [data-list-group]:hover:not(:disabled),
|
|
92
|
+
[data-style='glass'] [data-list] [data-list-group]:focus:not(:disabled) {
|
|
93
|
+
@apply bg-surface-z3/25 text-surface-z8;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* =============================================================================
|
|
97
|
+
Separator
|
|
98
|
+
============================================================================= */
|
|
99
|
+
|
|
100
|
+
[data-style='glass'] [data-list] [data-list-separator] {
|
|
101
|
+
@apply bg-surface-z5/20;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* =============================================================================
|
|
105
|
+
Multi-Selection
|
|
106
|
+
============================================================================= */
|
|
107
|
+
|
|
108
|
+
[data-style='glass'] [data-list] [data-list-item][data-selected='true'] {
|
|
109
|
+
@apply bg-primary-z5/20 text-primary-z9;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
[data-style='glass'] [data-list]:focus-within [data-list-item][data-selected='true'] {
|
|
113
|
+
@apply bg-primary-z5/30;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
[data-style='glass'] [data-list] [data-list-item][data-selected='true']:hover:not(:disabled) {
|
|
117
|
+
@apply bg-primary-z5/40;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
[data-style='glass'] [data-list] [data-list-item][data-selected='true'] [data-item-icon] {
|
|
121
|
+
@apply text-primary-z6;
|
|
122
|
+
}
|