@e-burgos/tucu-ui 2.7.3 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +17 -0
- package/base.css +225 -0
- package/components/inputs/input.mjs +43 -43
- 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
package/macos/index.css
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
macOS Themes — CSS Overrides Barrel
|
|
3
|
+
Sonoma 14 and Tahoe 26 are fully independent.
|
|
4
|
+
Each sub-barrel imports fonts → foundations → components.
|
|
5
|
+
============================================================ */
|
|
6
|
+
|
|
7
|
+
@import './sonoma/index.css';
|
|
8
|
+
@import './tahoe/index.css';
|
|
9
|
+
|
|
10
|
+
/* ── Navbar typography overrides ────────────────────────────────── */
|
|
11
|
+
html.macos [data-tucu*='navbar-toolbar'] a,
|
|
12
|
+
html.macos [data-tucu*='navbar-toolbar'] span {
|
|
13
|
+
font-family: var(--macos-font-family) !important;
|
|
14
|
+
text-transform: none !important;
|
|
15
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
macOS Sonoma 14 — CSS Overrides Barrel
|
|
3
|
+
Import order matters: fonts first, then foundations, then components
|
|
4
|
+
============================================================ */
|
|
5
|
+
|
|
6
|
+
@import './macos-fonts.css';
|
|
7
|
+
@import './macos-foundations.css';
|
|
8
|
+
@import './macos-liquid-glass.css';
|
|
9
|
+
@import './macos-backgrounds.css';
|
|
10
|
+
|
|
11
|
+
/* Shell: Window, Toolbar, Sidebar */
|
|
12
|
+
@import './macos-window.css';
|
|
13
|
+
@import './macos-toolbar.css';
|
|
14
|
+
@import './macos-sidebar.css';
|
|
15
|
+
|
|
16
|
+
/* High-visibility components */
|
|
17
|
+
@import './macos-buttons.css';
|
|
18
|
+
@import './macos-selection.css';
|
|
19
|
+
@import './macos-cards.css';
|
|
20
|
+
@import './macos-inputs.css';
|
|
21
|
+
@import './macos-dialogs.css';
|
|
22
|
+
|
|
23
|
+
/* Data & navigation */
|
|
24
|
+
@import './macos-tables.css';
|
|
25
|
+
@import './macos-navigation.css';
|
|
26
|
+
@import './macos-menus.css';
|
|
27
|
+
@import './macos-content.css';
|
|
28
|
+
@import './macos-feedback.css';
|
|
29
|
+
|
|
30
|
+
/* Typography, layouts, misc */
|
|
31
|
+
@import './macos-typography.css';
|
|
32
|
+
@import './macos-layouts.css';
|
|
33
|
+
@import './macos-auth.css';
|
|
34
|
+
@import './macos-misc.css';
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
macOS Sonoma 14 — Auth & Blockchain Component Overrides
|
|
3
|
+
|
|
4
|
+
Targets: SignInForm, SignUpForm, ForgetPasswordForm, ResetPinForm,
|
|
5
|
+
CoinCard, CoinInfoCard, CollectionCard, LivePriceFeed
|
|
6
|
+
Selectors: html.macos [data-tucu="auth-form"], etc.
|
|
7
|
+
|
|
8
|
+
References:
|
|
9
|
+
- Apple HIG > Forms: grouped table style, radius-xl
|
|
10
|
+
- Apple HIG > Typography: Label/SecondaryLabel system colors
|
|
11
|
+
- Crypto: monospace numbers, system green/red for price changes
|
|
12
|
+
============================================================ */
|
|
13
|
+
|
|
14
|
+
/* ══ AUTH FORMS ══════════════════════════════════════════════ */
|
|
15
|
+
|
|
16
|
+
html.macos [data-tucu='auth-form'] {
|
|
17
|
+
font-family: var(--macos-font-family);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
html.macos [data-tucu='auth-form-panel'] {
|
|
21
|
+
background-color: var(--macos-content-bg) !important;
|
|
22
|
+
border: 0.5px solid var(--macos-separator);
|
|
23
|
+
border-radius: var(--macos-radius-xl);
|
|
24
|
+
box-shadow: var(--macos-shadow-window);
|
|
25
|
+
padding: var(--macos-space-6) !important;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
html.macos.dark [data-tucu='auth-form-panel'] {
|
|
29
|
+
background-color: var(--macos-content-bg) !important;
|
|
30
|
+
border-color: var(--macos-separator);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Auth form headings use macOS title2 */
|
|
34
|
+
html.macos [data-tucu='auth-form-panel'] h2 {
|
|
35
|
+
font-size: 17px;
|
|
36
|
+
font-weight: var(--macos-font-weight-semibold);
|
|
37
|
+
letter-spacing: -0.4px;
|
|
38
|
+
color: var(--macos-label);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Auth form description */
|
|
42
|
+
html.macos [data-tucu='auth-form-panel'] p {
|
|
43
|
+
font-size: var(--macos-font-size-body);
|
|
44
|
+
color: var(--macos-secondary-label);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Inline error in auth form */
|
|
48
|
+
html.macos [data-tucu='auth-form-panel'] [role='alert'] {
|
|
49
|
+
border-radius: var(--macos-radius-control);
|
|
50
|
+
border-color: var(--macos-system-red) !important;
|
|
51
|
+
background-color: color-mix(
|
|
52
|
+
in srgb,
|
|
53
|
+
var(--macos-system-red) 10%,
|
|
54
|
+
var(--macos-content-bg)
|
|
55
|
+
) !important;
|
|
56
|
+
color: var(--macos-system-red) !important;
|
|
57
|
+
font-size: var(--macos-font-size-callout);
|
|
58
|
+
font-family: var(--macos-font-family);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Inline success in auth form */
|
|
62
|
+
html.macos [data-tucu='auth-form-panel'] .bg-green-50,
|
|
63
|
+
html.macos [data-tucu='auth-form-panel'] [class*='bg-green'] {
|
|
64
|
+
border-color: var(--macos-system-green) !important;
|
|
65
|
+
background-color: color-mix(
|
|
66
|
+
in srgb,
|
|
67
|
+
var(--macos-system-green) 10%,
|
|
68
|
+
var(--macos-content-bg)
|
|
69
|
+
) !important;
|
|
70
|
+
color: var(--macos-system-green) !important;
|
|
71
|
+
border-radius: var(--macos-radius-control);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* ══ BLOCKCHAIN COMPONENTS ═══════════════════════════════════ */
|
|
75
|
+
|
|
76
|
+
/* ── Coin Card ───────────────────────────────────────────────── */
|
|
77
|
+
|
|
78
|
+
html.macos [data-tucu='coin-card'] {
|
|
79
|
+
border-radius: var(--macos-radius-xl) !important;
|
|
80
|
+
border: 0.5px solid rgba(0, 0, 0, 0.08);
|
|
81
|
+
box-shadow: var(--macos-shadow-card);
|
|
82
|
+
transition: box-shadow var(--macos-transition-fast);
|
|
83
|
+
font-family: var(--macos-font-family);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
html.macos [data-tucu='coin-card']:hover {
|
|
87
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
html.macos.dark [data-tucu='coin-card'] {
|
|
91
|
+
border-color: rgba(255, 255, 255, 0.08);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Coin card label: use callout uppercase */
|
|
95
|
+
html.macos [data-tucu='coin-card'] h4 {
|
|
96
|
+
font-size: var(--macos-font-size-callout);
|
|
97
|
+
font-weight: var(--macos-font-weight-semibold);
|
|
98
|
+
letter-spacing: 0.04em;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* ── Coin Info Card ──────────────────────────────────────────── */
|
|
102
|
+
|
|
103
|
+
html.macos [data-tucu='coin-info-card'] {
|
|
104
|
+
background-color: var(--macos-content-bg) !important;
|
|
105
|
+
border: 0.5px solid var(--macos-separator);
|
|
106
|
+
border-radius: var(--macos-radius-control) !important;
|
|
107
|
+
box-shadow: var(--macos-shadow-card);
|
|
108
|
+
font-family: var(--macos-font-family);
|
|
109
|
+
font-size: var(--macos-font-size-body);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
html.macos [data-tucu='coin-info-card'] > div:first-child {
|
|
113
|
+
gap: 0.75rem;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
html.macos.dark [data-tucu='coin-info-card'] {
|
|
117
|
+
background-color: var(--macos-content-bg) !important;
|
|
118
|
+
border-color: var(--macos-separator);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* ── Collection Card ─────────────────────────────────────────── */
|
|
122
|
+
|
|
123
|
+
html.macos [data-tucu='collection-card'] {
|
|
124
|
+
border-radius: var(--macos-radius-xl) !important;
|
|
125
|
+
overflow: hidden;
|
|
126
|
+
box-shadow: var(--macos-shadow-card);
|
|
127
|
+
transition: transform var(--macos-transition-fast),
|
|
128
|
+
box-shadow var(--macos-transition-fast);
|
|
129
|
+
font-family: var(--macos-font-family);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
html.macos [data-tucu='collection-card']:hover {
|
|
133
|
+
transform: translateY(-2px);
|
|
134
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* ── Live Price Feed (positive/negative) ─────────────────────── */
|
|
138
|
+
|
|
139
|
+
html.macos .price-up,
|
|
140
|
+
html.macos [class*='text-green'] {
|
|
141
|
+
color: var(--macos-system-green) !important;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
html.macos .price-down,
|
|
145
|
+
html.macos [class*='text-red-5'] {
|
|
146
|
+
color: var(--macos-system-red) !important;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* Monospace for crypto values */
|
|
150
|
+
html.macos [data-tucu='coin-card'] span[class*='font-medium'],
|
|
151
|
+
html.macos [data-tucu='coin-info-card'] span[class*='font-medium'] {
|
|
152
|
+
font-variant-numeric: tabular-nums;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* ── Reduced motion ──────────────────────────────────────────── */
|
|
156
|
+
|
|
157
|
+
@media (prefers-reduced-motion: reduce) {
|
|
158
|
+
html.macos [data-tucu='coin-card'],
|
|
159
|
+
html.macos [data-tucu='collection-card'] {
|
|
160
|
+
transition: none;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
macOS Sonoma 14 — Spatial Backgrounds
|
|
3
|
+
|
|
4
|
+
Original CSS-generated spatial backgrounds inspired by macOS Sonoma.
|
|
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 {
|
|
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.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 .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 .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 .macos-bg-spatial-aurora::before,
|
|
92
|
+
html.macos .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 .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 .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 .macos-bg-spatial-depth {
|
|
155
|
+
position: relative;
|
|
156
|
+
overflow: hidden;
|
|
157
|
+
isolation: isolate;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
html.macos: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.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 .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 .macos-bg-spatial-demo {
|
|
197
|
+
position: relative;
|
|
198
|
+
overflow: hidden;
|
|
199
|
+
isolation: isolate;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
html.macos: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.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 .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 .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 .macos-bg-spatial-aurora::before,
|
|
265
|
+
html.macos .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 .macos-bg-spatial-aurora::before,
|
|
276
|
+
html.macos .macos-bg-spatial-aurora::after {
|
|
277
|
+
opacity: 0.15 !important;
|
|
278
|
+
filter: blur(120px) !important;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
html.macos:not(.dark) .macos-bg-spatial-demo {
|
|
282
|
+
background: #f5f5f7;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
html.macos.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 {
|
|
296
|
+
--macos-wallpaper-overlay: #f5f5f7;
|
|
297
|
+
}
|
|
298
|
+
html.macos.dark {
|
|
299
|
+
--macos-wallpaper-overlay: #1a1a20;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
html.macos .macos-bg-spatial-aurora::before,
|
|
303
|
+
html.macos .macos-bg-spatial-aurora::after {
|
|
304
|
+
display: none !important;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
html.macos .macos-bg-spatial-aurora {
|
|
308
|
+
background-color: var(--macos-spatial-bg-muted) !important;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
html.macos .macos-bg-spatial-demo::before {
|
|
312
|
+
background: var(--macos-wallpaper-overlay) !important;
|
|
313
|
+
}
|
|
314
|
+
}
|