@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.
Files changed (58) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +17 -0
  3. package/base.css +225 -0
  4. package/components/inputs/input.mjs +43 -43
  5. package/components/inputs/select.mjs +1 -1
  6. package/components/loaders/loader.mjs +21 -21
  7. package/components/typography/index.mjs +30 -30
  8. package/index.css +1 -1
  9. package/index.js +1 -1
  10. package/macos/index.css +15 -0
  11. package/macos/sonoma/index.css +34 -0
  12. package/macos/sonoma/macos-auth.css +162 -0
  13. package/macos/sonoma/macos-backgrounds.css +314 -0
  14. package/macos/sonoma/macos-buttons.css +231 -0
  15. package/macos/sonoma/macos-cards.css +104 -0
  16. package/macos/sonoma/macos-content.css +157 -0
  17. package/macos/sonoma/macos-dialogs.css +122 -0
  18. package/macos/sonoma/macos-feedback.css +237 -0
  19. package/macos/sonoma/macos-fonts.css +7 -0
  20. package/macos/sonoma/macos-foundations.css +479 -0
  21. package/macos/sonoma/macos-inputs.css +1580 -0
  22. package/macos/sonoma/macos-layouts.css +223 -0
  23. package/macos/sonoma/macos-liquid-glass.css +279 -0
  24. package/macos/sonoma/macos-menus.css +184 -0
  25. package/macos/sonoma/macos-misc.css +635 -0
  26. package/macos/sonoma/macos-navigation.css +145 -0
  27. package/macos/sonoma/macos-selection.css +237 -0
  28. package/macos/sonoma/macos-sidebar.css +416 -0
  29. package/macos/sonoma/macos-tables.css +318 -0
  30. package/macos/sonoma/macos-toolbar.css +302 -0
  31. package/macos/sonoma/macos-typography.css +485 -0
  32. package/macos/sonoma/macos-window.css +273 -0
  33. package/macos/tahoe/index.css +34 -0
  34. package/macos/tahoe/macos-auth.css +162 -0
  35. package/macos/tahoe/macos-backgrounds.css +314 -0
  36. package/macos/tahoe/macos-buttons.css +286 -0
  37. package/macos/tahoe/macos-cards.css +125 -0
  38. package/macos/tahoe/macos-content.css +157 -0
  39. package/macos/tahoe/macos-dialogs.css +195 -0
  40. package/macos/tahoe/macos-feedback.css +273 -0
  41. package/macos/tahoe/macos-fonts.css +7 -0
  42. package/macos/tahoe/macos-foundations.css +516 -0
  43. package/macos/tahoe/macos-inputs.css +1656 -0
  44. package/macos/tahoe/macos-layouts.css +438 -0
  45. package/macos/tahoe/macos-liquid-glass.css +279 -0
  46. package/macos/tahoe/macos-menus.css +184 -0
  47. package/macos/tahoe/macos-misc.css +635 -0
  48. package/macos/tahoe/macos-navigation.css +191 -0
  49. package/macos/tahoe/macos-selection.css +237 -0
  50. package/macos/tahoe/macos-sidebar.css +420 -0
  51. package/macos/tahoe/macos-tables.css +320 -0
  52. package/macos/tahoe/macos-toolbar.css +304 -0
  53. package/macos/tahoe/macos-typography.css +485 -0
  54. package/macos/tahoe/macos-window.css +273 -0
  55. package/package.json +3 -2
  56. package/theme.css +812 -0
  57. package/third-party.css +39 -0
  58. package/utilities.css +105 -0
@@ -0,0 +1,273 @@
1
+ /* ============================================================
2
+ macOS Sonoma 14 — Window, TitleBar, TrafficLights
3
+
4
+ Scoped to html.macos — no leakage to default theme.
5
+ References: Apple HIG > Windows > macOS Sonoma 14
6
+ Components: MacOSWindow, MacOSTitleBar, MacOSTrafficLights
7
+ ============================================================ */
8
+
9
+ /* ── MacOSWindow ─────────────────────────────────────────────── */
10
+
11
+ html.macos [data-tucu='window'] {
12
+ border-radius: var(--macos-radius-window);
13
+ background-color: var(--macos-window-bg);
14
+ box-shadow: var(--macos-shadow-window);
15
+ overflow: hidden;
16
+ position: relative;
17
+ display: flex;
18
+ flex-direction: column;
19
+ border: 1px solid rgba(0, 0, 0, 0.1);
20
+ }
21
+
22
+ html.macos.dark [data-tucu='window'] {
23
+ background-color: var(--macos-window-bg);
24
+ border-color: rgba(255, 255, 255, 0.08);
25
+ box-shadow: var(--macos-shadow-window);
26
+ }
27
+
28
+ /* Window states */
29
+ html.macos [data-tucu='window'][data-window-state='key'] {
30
+ box-shadow: var(--macos-shadow-window);
31
+ }
32
+
33
+ html.macos [data-tucu='window'][data-window-state='main'] {
34
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(0, 0, 0, 0.06);
35
+ }
36
+
37
+ html.macos [data-tucu='window'][data-window-state='inactive'] {
38
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
39
+ opacity: 0.95;
40
+ }
41
+
42
+ /* ── MacOSTitleBar ───────────────────────────────────────────── */
43
+
44
+ html.macos [data-tucu='title-bar'] {
45
+ height: var(--macos-titlebar-height);
46
+ min-height: var(--macos-titlebar-height);
47
+ display: flex;
48
+ align-items: center;
49
+ padding: 0 var(--macos-space-2);
50
+ position: relative;
51
+ /* Drag region for window movement */
52
+ -webkit-app-region: drag;
53
+ user-select: none;
54
+ flex-shrink: 0;
55
+ background-color: transparent;
56
+ border-bottom: 1px solid var(--macos-separator);
57
+ }
58
+
59
+ html.macos [data-tucu='title-bar'] > * {
60
+ /* Buttons inside are not draggable */
61
+ -webkit-app-region: no-drag;
62
+ }
63
+
64
+ html.macos [data-tucu='title-bar-title'] {
65
+ position: absolute;
66
+ left: 50%;
67
+ transform: translateX(-50%);
68
+ font-family: var(--macos-font-family);
69
+ font-size: var(--macos-ts-body-size);
70
+ font-weight: var(--macos-font-weight-semibold);
71
+ line-height: var(--macos-ts-body-leading);
72
+ letter-spacing: var(--macos-ts-body-tracking);
73
+ color: var(--macos-label);
74
+ white-space: nowrap;
75
+ pointer-events: none;
76
+ }
77
+
78
+ html.macos [data-tucu='title-bar-leading'] {
79
+ display: flex;
80
+ align-items: center;
81
+ gap: var(--macos-space-2);
82
+ flex-shrink: 0;
83
+ }
84
+
85
+ html.macos [data-tucu='title-bar-trailing'] {
86
+ display: flex;
87
+ align-items: center;
88
+ gap: var(--macos-space-2);
89
+ flex-shrink: 0;
90
+ margin-left: auto;
91
+ }
92
+
93
+ /* ── MacOSTrafficLights ──────────────────────────────────────── */
94
+
95
+ html.macos [data-tucu='traffic-lights'] {
96
+ display: flex;
97
+ align-items: center;
98
+ gap: 8px; /* Apple HIG: 8px gap */
99
+ flex-shrink: 0;
100
+ }
101
+
102
+ /* Individual traffic light button */
103
+ html.macos [data-tucu='traffic-light'] {
104
+ width: 12px;
105
+ height: 12px;
106
+ border-radius: var(--macos-radius-pill);
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ border: none;
111
+ outline: none;
112
+ cursor: default;
113
+ padding: 0;
114
+ transition: filter 0.1s ease;
115
+ position: relative;
116
+ flex-shrink: 0;
117
+ }
118
+
119
+ html.macos [data-tucu='traffic-light']:focus-visible {
120
+ box-shadow: 0 0 0 2px var(--macos-focus-ring);
121
+ }
122
+
123
+ /* Close — red */
124
+ html.macos [data-tucu='traffic-light'][data-type='close'] {
125
+ background-color: var(--macos-traffic-close, #ff5f57);
126
+ border: 0.5px solid rgba(0, 0, 0, 0.12);
127
+ }
128
+
129
+ /* Minimize — yellow */
130
+ html.macos [data-tucu='traffic-light'][data-type='minimize'] {
131
+ background-color: var(--macos-traffic-minimize, #febc2e);
132
+ border: 0.5px solid rgba(0, 0, 0, 0.12);
133
+ }
134
+
135
+ /* Maximize — green */
136
+ html.macos [data-tucu='traffic-light'][data-type='maximize'] {
137
+ background-color: var(--macos-traffic-maximize, #28c840);
138
+ border: 0.5px solid rgba(0, 0, 0, 0.12);
139
+ }
140
+
141
+ /* Hover: show glyph, brighten */
142
+ html.macos [data-tucu='traffic-lights']:hover [data-tucu='traffic-light'] {
143
+ filter: brightness(0.92);
144
+ }
145
+
146
+ /* Glyph icons inside each button */
147
+ html.macos [data-tucu='traffic-light-glyph'] {
148
+ display: none;
149
+ pointer-events: none;
150
+ }
151
+
152
+ html.macos
153
+ [data-tucu='traffic-lights']:hover
154
+ [data-tucu='traffic-light-glyph'] {
155
+ display: block;
156
+ }
157
+
158
+ /* Inactive state: all gray */
159
+ html.macos
160
+ [data-tucu='traffic-lights'][data-inactive='true']
161
+ [data-tucu='traffic-light'],
162
+ html.macos
163
+ [data-tucu='window'][data-window-state='inactive']
164
+ [data-tucu='traffic-light'] {
165
+ background-color: var(--macos-gray4);
166
+ border-color: rgba(0, 0, 0, 0.08);
167
+ }
168
+
169
+ html.macos.dark
170
+ [data-tucu='traffic-lights'][data-inactive='true']
171
+ [data-tucu='traffic-light'],
172
+ html.macos.dark
173
+ [data-tucu='window'][data-window-state='inactive']
174
+ [data-tucu='traffic-light'] {
175
+ background-color: var(--macos-gray4);
176
+ }
177
+
178
+ /* Dark mode: slightly different tones */
179
+ html.macos.dark [data-tucu='traffic-light'][data-type='close'] {
180
+ background-color: #ff5f57;
181
+ }
182
+
183
+ html.macos.dark [data-tucu='traffic-light'][data-type='minimize'] {
184
+ background-color: #febc2e;
185
+ }
186
+
187
+ html.macos.dark [data-tucu='traffic-light'][data-type='maximize'] {
188
+ background-color: #28c840;
189
+ }
190
+
191
+ /* ── Window Content Area ─────────────────────────────────────── */
192
+
193
+ html.macos [data-tucu='window-content'] {
194
+ flex: 1;
195
+ overflow: hidden;
196
+ position: relative;
197
+ background-color: var(--macos-content-bg);
198
+ }
199
+
200
+ /* ── Resize handles ──────────────────────────────────────────── */
201
+
202
+ html.macos [data-tucu='resize-handle'] {
203
+ position: absolute;
204
+ z-index: 10;
205
+ }
206
+
207
+ html.macos [data-tucu='resize-handle'][data-edge='n'],
208
+ html.macos [data-tucu='resize-handle'][data-edge='s'] {
209
+ left: var(--macos-radius-window);
210
+ right: var(--macos-radius-window);
211
+ height: 6px;
212
+ cursor: ns-resize;
213
+ }
214
+
215
+ html.macos [data-tucu='resize-handle'][data-edge='n'] {
216
+ top: 0;
217
+ }
218
+ html.macos [data-tucu='resize-handle'][data-edge='s'] {
219
+ bottom: 0;
220
+ }
221
+
222
+ html.macos [data-tucu='resize-handle'][data-edge='e'],
223
+ html.macos [data-tucu='resize-handle'][data-edge='w'] {
224
+ top: var(--macos-radius-window);
225
+ bottom: var(--macos-radius-window);
226
+ width: 6px;
227
+ cursor: ew-resize;
228
+ }
229
+
230
+ html.macos [data-tucu='resize-handle'][data-edge='e'] {
231
+ right: 0;
232
+ }
233
+ html.macos [data-tucu='resize-handle'][data-edge='w'] {
234
+ left: 0;
235
+ }
236
+
237
+ html.macos [data-tucu='resize-handle'][data-edge='ne'],
238
+ html.macos [data-tucu='resize-handle'][data-edge='nw'],
239
+ html.macos [data-tucu='resize-handle'][data-edge='se'],
240
+ html.macos [data-tucu='resize-handle'][data-edge='sw'] {
241
+ width: 18px;
242
+ height: 18px;
243
+ }
244
+
245
+ html.macos [data-tucu='resize-handle'][data-edge='ne'] {
246
+ top: 0;
247
+ right: 0;
248
+ cursor: ne-resize;
249
+ }
250
+ html.macos [data-tucu='resize-handle'][data-edge='nw'] {
251
+ top: 0;
252
+ left: 0;
253
+ cursor: nw-resize;
254
+ }
255
+ html.macos [data-tucu='resize-handle'][data-edge='se'] {
256
+ bottom: 0;
257
+ right: 0;
258
+ cursor: se-resize;
259
+ }
260
+ html.macos [data-tucu='resize-handle'][data-edge='sw'] {
261
+ bottom: 0;
262
+ left: 0;
263
+ cursor: sw-resize;
264
+ }
265
+
266
+ /* ── Reduced motion ──────────────────────────────────────────── */
267
+
268
+ @media (prefers-reduced-motion: reduce) {
269
+ html.macos [data-tucu='window'],
270
+ html.macos [data-tucu='traffic-light'] {
271
+ transition: none;
272
+ }
273
+ }
@@ -0,0 +1,34 @@
1
+ /* ============================================================
2
+ macOS Tahoe 26 — 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 Tahoe 26 — Auth & Blockchain Component Overrides
3
+
4
+ Targets: SignInForm, SignUpForm, ForgetPasswordForm, ResetPinForm,
5
+ CoinCard, CoinInfoCard, CollectionCard, LivePriceFeed
6
+ Selectors: html.macos-tahoe [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-tahoe [data-tucu='auth-form'] {
17
+ font-family: var(--macos-font-family);
18
+ }
19
+
20
+ html.macos-tahoe [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-tahoe.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-tahoe [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-tahoe [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-tahoe [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-tahoe [data-tucu='auth-form-panel'] .bg-green-50,
63
+ html.macos-tahoe [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-tahoe [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-tahoe [data-tucu='coin-card']:hover {
87
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
88
+ }
89
+
90
+ html.macos-tahoe.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-tahoe [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-tahoe [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-tahoe [data-tucu='coin-info-card'] > div:first-child {
113
+ gap: 0.75rem;
114
+ }
115
+
116
+ html.macos-tahoe.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-tahoe [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-tahoe [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-tahoe .price-up,
140
+ html.macos-tahoe [class*='text-green'] {
141
+ color: var(--macos-system-green) !important;
142
+ }
143
+
144
+ html.macos-tahoe .price-down,
145
+ html.macos-tahoe [class*='text-red-5'] {
146
+ color: var(--macos-system-red) !important;
147
+ }
148
+
149
+ /* Monospace for crypto values */
150
+ html.macos-tahoe [data-tucu='coin-card'] span[class*='font-medium'],
151
+ html.macos-tahoe [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-tahoe [data-tucu='coin-card'],
159
+ html.macos-tahoe [data-tucu='collection-card'] {
160
+ transition: none;
161
+ }
162
+ }