@e-burgos/tucu-ui 2.7.3 → 2.8.0
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/CHANGELOG.md +13 -0
- package/base.css +225 -0
- package/components/inputs/select.mjs +1 -1
- package/components/loaders/loader.mjs +21 -21
- package/components/typography/index.mjs +30 -30
- package/index.css +1 -1
- package/index.js +1 -1
- package/macos/index.css +15 -0
- package/macos/sonoma/index.css +34 -0
- package/macos/sonoma/macos-auth.css +162 -0
- package/macos/sonoma/macos-backgrounds.css +314 -0
- package/macos/sonoma/macos-buttons.css +231 -0
- package/macos/sonoma/macos-cards.css +104 -0
- package/macos/sonoma/macos-content.css +157 -0
- package/macos/sonoma/macos-dialogs.css +122 -0
- package/macos/sonoma/macos-feedback.css +237 -0
- package/macos/sonoma/macos-fonts.css +7 -0
- package/macos/sonoma/macos-foundations.css +479 -0
- package/macos/sonoma/macos-inputs.css +1580 -0
- package/macos/sonoma/macos-layouts.css +223 -0
- package/macos/sonoma/macos-liquid-glass.css +279 -0
- package/macos/sonoma/macos-menus.css +184 -0
- package/macos/sonoma/macos-misc.css +635 -0
- package/macos/sonoma/macos-navigation.css +145 -0
- package/macos/sonoma/macos-selection.css +237 -0
- package/macos/sonoma/macos-sidebar.css +416 -0
- package/macos/sonoma/macos-tables.css +318 -0
- package/macos/sonoma/macos-toolbar.css +302 -0
- package/macos/sonoma/macos-typography.css +485 -0
- package/macos/sonoma/macos-window.css +273 -0
- package/macos/tahoe/index.css +34 -0
- package/macos/tahoe/macos-auth.css +162 -0
- package/macos/tahoe/macos-backgrounds.css +314 -0
- package/macos/tahoe/macos-buttons.css +286 -0
- package/macos/tahoe/macos-cards.css +125 -0
- package/macos/tahoe/macos-content.css +157 -0
- package/macos/tahoe/macos-dialogs.css +195 -0
- package/macos/tahoe/macos-feedback.css +273 -0
- package/macos/tahoe/macos-fonts.css +7 -0
- package/macos/tahoe/macos-foundations.css +516 -0
- package/macos/tahoe/macos-inputs.css +1656 -0
- package/macos/tahoe/macos-layouts.css +438 -0
- package/macos/tahoe/macos-liquid-glass.css +279 -0
- package/macos/tahoe/macos-menus.css +184 -0
- package/macos/tahoe/macos-misc.css +635 -0
- package/macos/tahoe/macos-navigation.css +191 -0
- package/macos/tahoe/macos-selection.css +237 -0
- package/macos/tahoe/macos-sidebar.css +420 -0
- package/macos/tahoe/macos-tables.css +320 -0
- package/macos/tahoe/macos-toolbar.css +304 -0
- package/macos/tahoe/macos-typography.css +485 -0
- package/macos/tahoe/macos-window.css +273 -0
- package/package.json +3 -2
- package/theme.css +812 -0
- package/third-party.css +39 -0
- package/utilities.css +105 -0
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
macOS Tahoe 26 — Spatial Backgrounds
|
|
3
|
+
|
|
4
|
+
Original CSS-generated spatial backgrounds inspired by macOS Tahoe.
|
|
5
|
+
DO NOT include, copy or derive proprietary Apple assets:
|
|
6
|
+
no Apple wallpapers, screenshots, SF Symbols, UI Kit images or
|
|
7
|
+
promotional materials.
|
|
8
|
+
|
|
9
|
+
All gradients are original project assets.
|
|
10
|
+
|
|
11
|
+
Usage rules:
|
|
12
|
+
- Apply to root/window background, hero/demo surfaces or
|
|
13
|
+
wallpaper-like app backgrounds ONLY.
|
|
14
|
+
- Never apply inside cards, tables, buttons, forms or per-row elements.
|
|
15
|
+
- Content surfaces (Card, BasicTable, Form) must use solid or standard
|
|
16
|
+
material backgrounds for legibility.
|
|
17
|
+
- Text over spatial backgrounds must maintain WCAG AA contrast.
|
|
18
|
+
Add --macos-wallpaper-overlay or a dim layer if contrast fails.
|
|
19
|
+
- prefers-reduced-transparency: replace with opaque tokenised bg.
|
|
20
|
+
- prefers-contrast: more → reduce aurora opacity.
|
|
21
|
+
- prefers-reduced-motion: disable aurora animations.
|
|
22
|
+
============================================================ */
|
|
23
|
+
|
|
24
|
+
html.macos-tahoe {
|
|
25
|
+
/* ── Spatial Background Tokens — Light ──────────────────── */
|
|
26
|
+
|
|
27
|
+
/* Root/window base (uses window-bg from foundations) */
|
|
28
|
+
--macos-spatial-bg: #f0f2f7;
|
|
29
|
+
--macos-spatial-bg-muted: #f5f5f7; /* Low-saturation, docs/demos */
|
|
30
|
+
--macos-wallpaper-overlay: rgba(
|
|
31
|
+
255,
|
|
32
|
+
255,
|
|
33
|
+
255,
|
|
34
|
+
0.62
|
|
35
|
+
); /* Holds contrast over bright surfaces */
|
|
36
|
+
--macos-spatial-halo: radial-gradient(
|
|
37
|
+
ellipse 70% 50% at 50% 0%,
|
|
38
|
+
rgba(180, 210, 255, 0.55) 0%,
|
|
39
|
+
transparent 70%
|
|
40
|
+
);
|
|
41
|
+
--macos-spatial-blur: 80px;
|
|
42
|
+
|
|
43
|
+
/* Aurora color stops — light (original, not Apple assets) */
|
|
44
|
+
--macos-aurora-1: rgba(142, 200, 255, 0.45); /* soft blue */
|
|
45
|
+
--macos-aurora-2: rgba(100, 200, 240, 0.35); /* cyan-blue */
|
|
46
|
+
--macos-aurora-3: rgba(170, 150, 255, 0.28); /* soft indigo */
|
|
47
|
+
--macos-aurora-4: rgba(200, 160, 255, 0.22); /* soft violet */
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
html.macos-tahoe.dark {
|
|
51
|
+
/* ── Spatial Background Tokens — Dark ───────────────────── */
|
|
52
|
+
--macos-spatial-bg: #131318;
|
|
53
|
+
--macos-spatial-bg-muted: #1a1a20;
|
|
54
|
+
--macos-wallpaper-overlay: rgba(0, 0, 0, 0.52);
|
|
55
|
+
--macos-spatial-halo: radial-gradient(
|
|
56
|
+
ellipse 70% 50% at 50% 0%,
|
|
57
|
+
rgba(0, 80, 180, 0.3) 0%,
|
|
58
|
+
transparent 70%
|
|
59
|
+
);
|
|
60
|
+
--macos-spatial-blur: 80px;
|
|
61
|
+
|
|
62
|
+
/* Aurora color stops — dark */
|
|
63
|
+
--macos-aurora-1: rgba(18, 60, 100, 0.8); /* deep blue */
|
|
64
|
+
--macos-aurora-2: rgba(30, 50, 110, 0.7); /* indigo-navy */
|
|
65
|
+
--macos-aurora-3: rgba(55, 30, 100, 0.6); /* deep violet */
|
|
66
|
+
--macos-aurora-4: rgba(80, 20, 80, 0.45); /* deep purple */
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* ============================================================
|
|
70
|
+
.macos-window-surface
|
|
71
|
+
Plain surface using the window background token.
|
|
72
|
+
Use for standard window/panel areas without aurora.
|
|
73
|
+
============================================================ */
|
|
74
|
+
html.macos-tahoe .macos-window-surface {
|
|
75
|
+
background-color: var(--macos-spatial-bg);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* ============================================================
|
|
79
|
+
.macos-bg-spatial-aurora
|
|
80
|
+
Primary spatial background: blue/cyan/indigo aurora gradients.
|
|
81
|
+
For root/window/hero — NOT inside components.
|
|
82
|
+
Light: soft blue aurora. Dark: deep navy/violet aurora.
|
|
83
|
+
============================================================ */
|
|
84
|
+
html.macos-tahoe .macos-bg-spatial-aurora {
|
|
85
|
+
position: relative;
|
|
86
|
+
background-color: var(--macos-spatial-bg);
|
|
87
|
+
overflow: hidden;
|
|
88
|
+
isolation: isolate;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
html.macos-tahoe .macos-bg-spatial-aurora::before,
|
|
92
|
+
html.macos-tahoe .macos-bg-spatial-aurora::after {
|
|
93
|
+
content: '';
|
|
94
|
+
position: absolute;
|
|
95
|
+
inset: -50%;
|
|
96
|
+
width: 200%;
|
|
97
|
+
height: 200%;
|
|
98
|
+
z-index: -1;
|
|
99
|
+
pointer-events: none;
|
|
100
|
+
border-radius: 50%;
|
|
101
|
+
filter: blur(var(--macos-spatial-blur));
|
|
102
|
+
opacity: 1;
|
|
103
|
+
will-change: transform;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
html.macos-tahoe .macos-bg-spatial-aurora::before {
|
|
107
|
+
background: radial-gradient(
|
|
108
|
+
circle at 28% 32%,
|
|
109
|
+
var(--macos-aurora-1) 0%,
|
|
110
|
+
transparent 42%
|
|
111
|
+
),
|
|
112
|
+
radial-gradient(
|
|
113
|
+
circle at 72% 68%,
|
|
114
|
+
var(--macos-aurora-3) 0%,
|
|
115
|
+
transparent 42%
|
|
116
|
+
);
|
|
117
|
+
animation: macos-aurora-drift 22s ease-in-out infinite alternate;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
html.macos-tahoe .macos-bg-spatial-aurora::after {
|
|
121
|
+
background: radial-gradient(
|
|
122
|
+
circle at 68% 28%,
|
|
123
|
+
var(--macos-aurora-2) 0%,
|
|
124
|
+
transparent 42%
|
|
125
|
+
),
|
|
126
|
+
radial-gradient(
|
|
127
|
+
circle at 32% 72%,
|
|
128
|
+
var(--macos-aurora-4) 0%,
|
|
129
|
+
transparent 42%
|
|
130
|
+
);
|
|
131
|
+
animation: macos-aurora-drift 28s ease-in-out infinite alternate-reverse;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@keyframes macos-aurora-drift {
|
|
135
|
+
0% {
|
|
136
|
+
transform: translate(0, 0) scale(1);
|
|
137
|
+
}
|
|
138
|
+
33% {
|
|
139
|
+
transform: translate(3%, -2%) scale(1.04);
|
|
140
|
+
}
|
|
141
|
+
66% {
|
|
142
|
+
transform: translate(-2%, 3%) scale(0.97);
|
|
143
|
+
}
|
|
144
|
+
100% {
|
|
145
|
+
transform: translate(2%, 1%) scale(1.02);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* ============================================================
|
|
150
|
+
.macos-bg-spatial-depth
|
|
151
|
+
Sober/data-focused spatial background.
|
|
152
|
+
Light: warm neutral. Dark: graphite with subtle depth.
|
|
153
|
+
============================================================ */
|
|
154
|
+
html.macos-tahoe .macos-bg-spatial-depth {
|
|
155
|
+
position: relative;
|
|
156
|
+
overflow: hidden;
|
|
157
|
+
isolation: isolate;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
html.macos-tahoe:not(.dark) .macos-bg-spatial-depth {
|
|
161
|
+
background: linear-gradient(
|
|
162
|
+
160deg,
|
|
163
|
+
#f0f2f6 0%,
|
|
164
|
+
#eaedf4 40%,
|
|
165
|
+
#f2f0f8 70%,
|
|
166
|
+
#eef2f6 100%
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
html.macos-tahoe.dark .macos-bg-spatial-depth {
|
|
171
|
+
background: linear-gradient(
|
|
172
|
+
160deg,
|
|
173
|
+
#141418 0%,
|
|
174
|
+
#18181e 40%,
|
|
175
|
+
#191520 70%,
|
|
176
|
+
#141418 100%
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* Subtle halo using the token */
|
|
181
|
+
html.macos-tahoe .macos-bg-spatial-depth::before {
|
|
182
|
+
content: '';
|
|
183
|
+
position: absolute;
|
|
184
|
+
inset: 0;
|
|
185
|
+
background: var(--macos-spatial-halo);
|
|
186
|
+
pointer-events: none;
|
|
187
|
+
z-index: 0;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* ============================================================
|
|
191
|
+
.macos-bg-spatial-demo
|
|
192
|
+
Expressive spatial background for hero sections and showcases.
|
|
193
|
+
Includes a dim layer by default for text legibility.
|
|
194
|
+
Use only in documentation, landing, or showcase contexts.
|
|
195
|
+
============================================================ */
|
|
196
|
+
html.macos-tahoe .macos-bg-spatial-demo {
|
|
197
|
+
position: relative;
|
|
198
|
+
overflow: hidden;
|
|
199
|
+
isolation: isolate;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
html.macos-tahoe:not(.dark) .macos-bg-spatial-demo {
|
|
203
|
+
background: radial-gradient(
|
|
204
|
+
ellipse 80% 60% at 20% 10%,
|
|
205
|
+
rgba(100, 180, 255, 0.4) 0%,
|
|
206
|
+
transparent 55%
|
|
207
|
+
),
|
|
208
|
+
radial-gradient(
|
|
209
|
+
ellipse 60% 50% at 80% 80%,
|
|
210
|
+
rgba(160, 120, 255, 0.3) 0%,
|
|
211
|
+
transparent 55%
|
|
212
|
+
),
|
|
213
|
+
radial-gradient(
|
|
214
|
+
ellipse 50% 40% at 60% 30%,
|
|
215
|
+
rgba(80, 210, 220, 0.22) 0%,
|
|
216
|
+
transparent 50%
|
|
217
|
+
),
|
|
218
|
+
#f0f2f7;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
html.macos-tahoe.dark .macos-bg-spatial-demo {
|
|
222
|
+
background: radial-gradient(
|
|
223
|
+
ellipse 80% 60% at 20% 10%,
|
|
224
|
+
rgba(0, 60, 160, 0.55) 0%,
|
|
225
|
+
transparent 55%
|
|
226
|
+
),
|
|
227
|
+
radial-gradient(
|
|
228
|
+
ellipse 60% 50% at 80% 80%,
|
|
229
|
+
rgba(80, 0, 160, 0.4) 0%,
|
|
230
|
+
transparent 55%
|
|
231
|
+
),
|
|
232
|
+
radial-gradient(
|
|
233
|
+
ellipse 50% 40% at 60% 30%,
|
|
234
|
+
rgba(0, 100, 140, 0.3) 0%,
|
|
235
|
+
transparent 50%
|
|
236
|
+
),
|
|
237
|
+
#101014;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Default dim layer on demo — keeps text legible */
|
|
241
|
+
html.macos-tahoe .macos-bg-spatial-demo::before {
|
|
242
|
+
content: '';
|
|
243
|
+
position: absolute;
|
|
244
|
+
inset: 0;
|
|
245
|
+
background: var(--macos-wallpaper-overlay);
|
|
246
|
+
pointer-events: none;
|
|
247
|
+
z-index: 0;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* ============================================================
|
|
251
|
+
.macos-wallpaper-overlay
|
|
252
|
+
Standalone overlay class for holding contrast over any
|
|
253
|
+
spatial background. Apply as a sibling/child element.
|
|
254
|
+
============================================================ */
|
|
255
|
+
html.macos-tahoe .macos-wallpaper-overlay {
|
|
256
|
+
background: var(--macos-wallpaper-overlay);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* ============================================================
|
|
260
|
+
Accessibility: Reduced Motion
|
|
261
|
+
Disable aurora animations — keep static gradients.
|
|
262
|
+
============================================================ */
|
|
263
|
+
@media (prefers-reduced-motion: reduce) {
|
|
264
|
+
html.macos-tahoe .macos-bg-spatial-aurora::before,
|
|
265
|
+
html.macos-tahoe .macos-bg-spatial-aurora::after {
|
|
266
|
+
animation: none !important;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/* ============================================================
|
|
271
|
+
Accessibility: Increased Contrast
|
|
272
|
+
Reduce aurora opacity to prevent interference with text contrast.
|
|
273
|
+
============================================================ */
|
|
274
|
+
@media (prefers-contrast: more) {
|
|
275
|
+
html.macos-tahoe .macos-bg-spatial-aurora::before,
|
|
276
|
+
html.macos-tahoe .macos-bg-spatial-aurora::after {
|
|
277
|
+
opacity: 0.15 !important;
|
|
278
|
+
filter: blur(120px) !important;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
html.macos-tahoe:not(.dark) .macos-bg-spatial-demo {
|
|
282
|
+
background: #f5f5f7;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
html.macos-tahoe.dark .macos-bg-spatial-demo {
|
|
286
|
+
background: #141418;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/* ============================================================
|
|
291
|
+
Accessibility: Reduced Transparency
|
|
292
|
+
Replace translucid overlay with opaque background.
|
|
293
|
+
============================================================ */
|
|
294
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
295
|
+
html.macos-tahoe {
|
|
296
|
+
--macos-wallpaper-overlay: #f5f5f7;
|
|
297
|
+
}
|
|
298
|
+
html.macos-tahoe.dark {
|
|
299
|
+
--macos-wallpaper-overlay: #1a1a20;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
html.macos-tahoe .macos-bg-spatial-aurora::before,
|
|
303
|
+
html.macos-tahoe .macos-bg-spatial-aurora::after {
|
|
304
|
+
display: none !important;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
html.macos-tahoe .macos-bg-spatial-aurora {
|
|
308
|
+
background-color: var(--macos-spatial-bg-muted) !important;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
html.macos-tahoe .macos-bg-spatial-demo::before {
|
|
312
|
+
background: var(--macos-wallpaper-overlay) !important;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
macOS Tahoe 26 — Button Overrides
|
|
3
|
+
|
|
4
|
+
Targets: Button (solid|ghost|transparent), Hamburger, TopupButton
|
|
5
|
+
Selector: html.macos-tahoe [data-tucu="button"]
|
|
6
|
+
|
|
7
|
+
References:
|
|
8
|
+
- Apple HIG > Buttons > macOS Tahoe 26 > Push Buttons
|
|
9
|
+
- Push button height: 22pt (regular), 28pt (large)
|
|
10
|
+
- Radius: 10pt (Tahoe control), font: 13pt Inter Medium
|
|
11
|
+
- Focus ring: 3px accent 48% opacity
|
|
12
|
+
6 states: default, hover, pressed, disabled, focus-visible, loading
|
|
13
|
+
============================================================ */
|
|
14
|
+
|
|
15
|
+
/* ── Base button ─────────────────────────────────────────────── */
|
|
16
|
+
html.macos-tahoe [data-tucu='button'] {
|
|
17
|
+
border-radius: var(--macos-radius-control);
|
|
18
|
+
font-family: var(--macos-font-family);
|
|
19
|
+
font-size: var(--macos-font-size-body);
|
|
20
|
+
font-weight: var(--macos-font-weight-medium);
|
|
21
|
+
letter-spacing: var(--macos-tracking-13);
|
|
22
|
+
line-height: 1.4;
|
|
23
|
+
transition: background-color 0.1s ease, filter 0.1s ease, box-shadow 0.1s ease;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Suppress the generic hover translate that conflicts with our overrides */
|
|
27
|
+
html.macos-tahoe [data-tucu='button']:not(:disabled):not([aria-busy='true']) {
|
|
28
|
+
transform: none !important;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* ── Solid variant: subtle shadow like native push button ──── */
|
|
32
|
+
html.macos-tahoe [data-tucu='button'][data-variant='solid'] {
|
|
33
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.14), 0 0.5px 0.5px rgba(0, 0, 0, 0.08),
|
|
34
|
+
inset 0 0.5px 0 rgba(255, 255, 255, 0.4);
|
|
35
|
+
}
|
|
36
|
+
html.macos-tahoe [data-tucu='button'][data-variant='solid']:hover {
|
|
37
|
+
filter: brightness(1.06);
|
|
38
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.16), 0 0.5px 0.5px rgba(0, 0, 0, 0.1),
|
|
39
|
+
inset 0 0.5px 0 rgba(255, 255, 255, 0.4);
|
|
40
|
+
}
|
|
41
|
+
html.macos-tahoe [data-tucu='button'][data-variant='solid']:active {
|
|
42
|
+
filter: brightness(0.94);
|
|
43
|
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
|
|
44
|
+
}
|
|
45
|
+
html.macos-tahoe.dark [data-tucu='button'][data-variant='solid'] {
|
|
46
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3),
|
|
47
|
+
inset 0 0.5px 0 rgba(255, 255, 255, 0.1);
|
|
48
|
+
}
|
|
49
|
+
html.macos-tahoe.dark [data-tucu='button'][data-variant='solid']:hover {
|
|
50
|
+
filter: brightness(1.08);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* ── Ghost variant: subtle border ──────────────────────────── */
|
|
54
|
+
html.macos-tahoe [data-tucu='button'][data-variant='ghost'] {
|
|
55
|
+
background-color: var(--macos-control-bg) !important;
|
|
56
|
+
border: 0.5px solid var(--macos-separator) !important;
|
|
57
|
+
color: var(--macos-label) !important;
|
|
58
|
+
box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.1),
|
|
59
|
+
inset 0 0.5px 0 rgba(255, 255, 255, 0.6);
|
|
60
|
+
}
|
|
61
|
+
html.macos-tahoe [data-tucu='button'][data-variant='ghost']:hover {
|
|
62
|
+
background-color: var(--macos-control-bg-hover) !important;
|
|
63
|
+
filter: none;
|
|
64
|
+
}
|
|
65
|
+
html.macos-tahoe [data-tucu='button'][data-variant='ghost']:active {
|
|
66
|
+
background-color: var(--macos-control-bg-active) !important;
|
|
67
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
|
|
68
|
+
}
|
|
69
|
+
html.macos-tahoe.dark [data-tucu='button'][data-variant='ghost'] {
|
|
70
|
+
background-color: rgba(255, 255, 255, 0.1) !important;
|
|
71
|
+
border-color: rgba(255, 255, 255, 0.12) !important;
|
|
72
|
+
box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.25);
|
|
73
|
+
}
|
|
74
|
+
html.macos-tahoe.dark [data-tucu='button'][data-variant='ghost']:hover {
|
|
75
|
+
background-color: rgba(255, 255, 255, 0.14) !important;
|
|
76
|
+
}
|
|
77
|
+
html.macos-tahoe.dark [data-tucu='button'][data-variant='ghost']:active {
|
|
78
|
+
background-color: rgba(255, 255, 255, 0.06) !important;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* ── Transparent variant ───────────────────────────────────── */
|
|
82
|
+
html.macos-tahoe [data-tucu='button'][data-variant='transparent'] {
|
|
83
|
+
background-color: transparent !important;
|
|
84
|
+
border: none !important;
|
|
85
|
+
box-shadow: none !important;
|
|
86
|
+
color: var(--macos-control-accent) !important;
|
|
87
|
+
}
|
|
88
|
+
html.macos-tahoe [data-tucu='button'][data-variant='transparent']:hover {
|
|
89
|
+
background-color: rgba(0, 0, 0, 0.04) !important;
|
|
90
|
+
}
|
|
91
|
+
html.macos-tahoe [data-tucu='button'][data-variant='transparent']:active {
|
|
92
|
+
background-color: rgba(0, 0, 0, 0.08) !important;
|
|
93
|
+
}
|
|
94
|
+
html.macos-tahoe.dark [data-tucu='button'][data-variant='transparent'] {
|
|
95
|
+
color: var(--macos-control-accent) !important;
|
|
96
|
+
}
|
|
97
|
+
html.macos-tahoe.dark [data-tucu='button'][data-variant='transparent']:hover {
|
|
98
|
+
background-color: rgba(255, 255, 255, 0.06) !important;
|
|
99
|
+
}
|
|
100
|
+
html.macos-tahoe.dark [data-tucu='button'][data-variant='transparent']:active {
|
|
101
|
+
background-color: rgba(255, 255, 255, 0.1) !important;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* ── Shape overrides ───────────────────────────────────────── */
|
|
105
|
+
html.macos-tahoe [data-tucu='button'][data-shape='pill'],
|
|
106
|
+
html.macos-tahoe [data-tucu='button'][data-shape='circle'] {
|
|
107
|
+
border-radius: var(--macos-radius-full);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* ── Size overrides: match macOS native control sizes ──────── */
|
|
111
|
+
html.macos-tahoe [data-tucu='button'][data-size='large'] {
|
|
112
|
+
min-height: 28px;
|
|
113
|
+
padding-left: 20px;
|
|
114
|
+
padding-right: 20px;
|
|
115
|
+
font-size: var(--macos-font-size-title3);
|
|
116
|
+
}
|
|
117
|
+
html.macos-tahoe [data-tucu='button'][data-size='medium'] {
|
|
118
|
+
min-height: var(--macos-control-height);
|
|
119
|
+
padding-left: 16px;
|
|
120
|
+
padding-right: 16px;
|
|
121
|
+
font-size: var(--macos-font-size-body);
|
|
122
|
+
}
|
|
123
|
+
html.macos-tahoe [data-tucu='button'][data-size='small'] {
|
|
124
|
+
min-height: var(--macos-control-height);
|
|
125
|
+
padding-left: 12px;
|
|
126
|
+
padding-right: 12px;
|
|
127
|
+
font-size: var(--macos-font-size-body);
|
|
128
|
+
}
|
|
129
|
+
html.macos-tahoe [data-tucu='button'][data-size='mini'] {
|
|
130
|
+
min-height: var(--macos-control-height-sm);
|
|
131
|
+
padding-left: 10px;
|
|
132
|
+
padding-right: 10px;
|
|
133
|
+
font-size: var(--macos-font-size-callout);
|
|
134
|
+
}
|
|
135
|
+
html.macos-tahoe [data-tucu='button'][data-size='tiny'] {
|
|
136
|
+
min-height: var(--macos-control-height-mini);
|
|
137
|
+
padding-left: 8px;
|
|
138
|
+
padding-right: 8px;
|
|
139
|
+
font-size: var(--macos-font-size-subheadline);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* ── Focus ring ────────────────────────────────────────────── */
|
|
143
|
+
html.macos-tahoe [data-tucu='button']:focus-visible {
|
|
144
|
+
outline: none;
|
|
145
|
+
box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* ── Disabled state ────────────────────────────────────────── */
|
|
149
|
+
html.macos-tahoe [data-tucu='button']:disabled {
|
|
150
|
+
opacity: 0.4;
|
|
151
|
+
cursor: default;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/* ── Responsive: larger touch targets on mobile ──────────────── */
|
|
155
|
+
@media (max-width: 767px) {
|
|
156
|
+
html.macos-tahoe [data-tucu='button'] {
|
|
157
|
+
min-height: 44px;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* ============================================================
|
|
162
|
+
macOS Tahoe 26 — Button Overrides (Liquid Glass)
|
|
163
|
+
============================================================ */
|
|
164
|
+
|
|
165
|
+
/* ── Tahoe Solid (Prominent Material) ───────────────────────── */
|
|
166
|
+
html.macos-tahoe [data-tucu='button'][data-variant='solid'] {
|
|
167
|
+
background: var(--macos-glass-prominent-bg);
|
|
168
|
+
backdrop-filter: blur(var(--macos-glass-prominent-blur)) saturate(200%);
|
|
169
|
+
-webkit-backdrop-filter: blur(var(--macos-glass-prominent-blur))
|
|
170
|
+
saturate(200%);
|
|
171
|
+
border: 1px solid var(--macos-glass-prominent-border);
|
|
172
|
+
box-shadow: var(--macos-glass-shadow), var(--macos-glass-highlight);
|
|
173
|
+
color: var(--macos-label);
|
|
174
|
+
}
|
|
175
|
+
html.macos-tahoe [data-tucu='button'][data-variant='solid']:hover {
|
|
176
|
+
background: var(--macos-glass-regular-bg);
|
|
177
|
+
filter: brightness(1.1);
|
|
178
|
+
}
|
|
179
|
+
html.macos-tahoe [data-tucu='button'][data-variant='solid']:active {
|
|
180
|
+
background: var(--macos-glass-dim-layer);
|
|
181
|
+
filter: brightness(0.9);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* ── Tahoe Ghost (Clear/Regular Material) ───────────────────── */
|
|
185
|
+
html.macos-tahoe [data-tucu='button'][data-variant='ghost'] {
|
|
186
|
+
background: var(--macos-glass-clear-bg);
|
|
187
|
+
backdrop-filter: blur(var(--macos-glass-clear-blur));
|
|
188
|
+
-webkit-backdrop-filter: blur(var(--macos-glass-clear-blur));
|
|
189
|
+
border: 1px solid var(--macos-glass-clear-border);
|
|
190
|
+
}
|
|
191
|
+
html.macos-tahoe [data-tucu='button'][data-variant='ghost']:hover {
|
|
192
|
+
background: var(--macos-glass-regular-bg);
|
|
193
|
+
backdrop-filter: blur(var(--macos-glass-regular-blur)) saturate(150%);
|
|
194
|
+
-webkit-backdrop-filter: blur(var(--macos-glass-regular-blur)) saturate(150%);
|
|
195
|
+
border: 1px solid var(--macos-glass-regular-border);
|
|
196
|
+
box-shadow: var(--macos-glass-shadow), var(--macos-glass-highlight);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/* ── Tahoe Transparent (Plain) ──────────────────────────────── */
|
|
200
|
+
html.macos-tahoe [data-tucu='button'][data-variant='transparent']:hover {
|
|
201
|
+
background: var(--macos-glass-clear-bg);
|
|
202
|
+
backdrop-filter: blur(var(--macos-glass-clear-blur));
|
|
203
|
+
-webkit-backdrop-filter: blur(var(--macos-glass-clear-blur));
|
|
204
|
+
border-radius: var(--macos-radius-md);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
208
|
+
html.macos-tahoe [data-tucu='button'][data-variant='solid'],
|
|
209
|
+
html.macos-tahoe [data-tucu='button'][data-variant='ghost'],
|
|
210
|
+
html.macos-tahoe [data-tucu='button'][data-variant='transparent']:hover {
|
|
211
|
+
backdrop-filter: none !important;
|
|
212
|
+
-webkit-backdrop-filter: none !important;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/* ── Hamburger button ────────────────────────────────────────── */
|
|
217
|
+
|
|
218
|
+
html.macos-tahoe [data-tucu='hamburger'] {
|
|
219
|
+
border-radius: var(--macos-radius-control);
|
|
220
|
+
background-color: transparent;
|
|
221
|
+
border: none;
|
|
222
|
+
transition: background-color 0.1s ease;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
html.macos-tahoe [data-tucu='hamburger']:hover {
|
|
226
|
+
background-color: rgba(0, 0, 0, 0.06);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
html.macos-tahoe [data-tucu='hamburger']:active {
|
|
230
|
+
background-color: rgba(0, 0, 0, 0.1);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
html.macos-tahoe [data-tucu='hamburger']:focus-visible {
|
|
234
|
+
outline: none;
|
|
235
|
+
box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
html.macos-tahoe.dark [data-tucu='hamburger']:hover {
|
|
239
|
+
background-color: rgba(255, 255, 255, 0.08);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
html.macos-tahoe.dark [data-tucu='hamburger']:active {
|
|
243
|
+
background-color: rgba(255, 255, 255, 0.12);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/* ── TopupButton ─────────────────────────────────────────────── */
|
|
247
|
+
|
|
248
|
+
html.macos-tahoe [data-tucu='topup-button'] {
|
|
249
|
+
border-radius: var(--macos-radius-control);
|
|
250
|
+
font-family: var(--macos-font-family);
|
|
251
|
+
font-size: var(--macos-font-size-body);
|
|
252
|
+
font-weight: var(--macos-font-weight-medium);
|
|
253
|
+
box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.1);
|
|
254
|
+
transition: filter 0.1s ease, box-shadow 0.1s ease;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
html.macos-tahoe [data-tucu='topup-button']:hover {
|
|
258
|
+
filter: brightness(1.05);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
html.macos-tahoe [data-tucu='topup-button']:active {
|
|
262
|
+
filter: brightness(0.95);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
html.macos-tahoe [data-tucu='topup-button']:focus-visible {
|
|
266
|
+
outline: none;
|
|
267
|
+
box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/* ── Loading state ───────────────────────────────────────────── */
|
|
271
|
+
|
|
272
|
+
html.macos-tahoe [data-tucu='button'][aria-busy='true'] {
|
|
273
|
+
opacity: 0.7;
|
|
274
|
+
cursor: wait;
|
|
275
|
+
pointer-events: none;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/* ── Reduced motion ──────────────────────────────────────────── */
|
|
279
|
+
|
|
280
|
+
@media (prefers-reduced-motion: reduce) {
|
|
281
|
+
html.macos-tahoe [data-tucu='button'],
|
|
282
|
+
html.macos-tahoe [data-tucu='hamburger'],
|
|
283
|
+
html.macos-tahoe [data-tucu='topup-button'] {
|
|
284
|
+
transition: none;
|
|
285
|
+
}
|
|
286
|
+
}
|