osi-cards-lib 1.5.32 → 1.5.34
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/fesm2022/osi-cards-lib.mjs +31889 -0
- package/fesm2022/osi-cards-lib.mjs.map +1 -0
- package/index.d.ts +11528 -0
- package/package.json +25 -13
- package/scripts/setup-angular-styles.js +169 -0
- package/styles/_components.scss +38 -0
- package/styles/_index.scss +25 -0
- package/styles/_osi-cards-mixins.scss +459 -0
- package/styles/_osi-cards-tokens.scss +333 -0
- package/styles/_styles-scoped.scss +81 -0
- package/styles/_styles.scss +26 -0
- package/styles/bundles/_ai-card.scss +245 -0
- package/styles/bundles/_all.scss +68 -0
- package/styles/bundles/_base.scss +60 -0
- package/styles/bundles/_card-skeleton.scss +290 -0
- package/styles/bundles/_index.scss +25 -0
- package/styles/bundles/_sections.scss +48 -0
- package/styles/bundles/_tokens-only.scss +139 -0
- package/styles/components/_ai-card-renderer.scss +104 -0
- package/styles/components/_badges.scss +317 -0
- package/styles/components/_card-actions.scss +169 -0
- package/styles/components/_card-footer.scss +47 -0
- package/styles/components/_component-styles.scss +205 -0
- package/styles/components/_empty-state.scss +630 -0
- package/styles/components/_hero-card.scss +422 -0
- package/styles/components/_image-fallback.scss +28 -0
- package/styles/components/_streaming-effects.scss +518 -0
- package/styles/components/cards/_ai-card.scss +718 -0
- package/styles/components/sections/_all-sections.generated.scss +41 -0
- package/styles/components/sections/_all-sections.scss +1086 -0
- package/styles/components/sections/_balanced-compact-system.scss +186 -0
- package/styles/components/sections/_compact-mixins.scss +180 -0
- package/styles/components/sections/_component-mixins.scss +454 -0
- package/styles/components/sections/_design-system.scss +477 -0
- package/styles/components/sections/_design-tokens.scss +308 -0
- package/styles/components/sections/_enhanced-design-variables.scss +147 -0
- package/styles/components/sections/_master-compact-system.scss +302 -0
- package/styles/components/sections/_master-dense-system.scss +239 -0
- package/styles/components/sections/_minimalistic-design.scss +268 -0
- package/styles/components/sections/_modern-effects.scss +392 -0
- package/styles/components/sections/_modern-sections.scss +351 -0
- package/styles/components/sections/_perfect-system.scss +204 -0
- package/styles/components/sections/_section-animations.scss +331 -0
- package/styles/components/sections/_section-shell.scss +337 -0
- package/styles/components/sections/_section-types.generated.scss +30 -0
- package/styles/components/sections/_sections-all.scss +26 -0
- package/styles/components/sections/_sections-base.scss +334 -0
- package/styles/components/sections/_typography-system.scss +327 -0
- package/styles/components/sections/_ultra-compact-tokens.scss +375 -0
- package/styles/components/sections/_unified-section-style.scss +157 -0
- package/styles/components/sections/_utility-classes.scss +567 -0
- package/styles/components/sections/_visual-effects-library.scss +374 -0
- package/styles/core/_animations.scss +1498 -0
- package/styles/core/_bootstrap-reset.scss +445 -0
- package/styles/core/_color-helpers.scss +46 -0
- package/styles/core/_global-unified.scss +118 -0
- package/styles/core/_global.scss +73 -0
- package/styles/core/_mixins.scss +491 -0
- package/styles/core/_surface-layers.scss +76 -0
- package/styles/core/_utilities.scss +326 -0
- package/styles/core/_variables-unified.scss +57 -0
- package/styles/core/_variables.scss +36 -0
- package/styles/core/variables/_colors-source.scss +34 -0
- package/styles/core/variables/_colors-unified.scss +26 -0
- package/styles/core/variables/_colors.scss +21 -0
- package/styles/critical.scss +353 -0
- package/styles/design-system/_compact-theme.scss +159 -0
- package/styles/design-system/_section-base.scss +426 -0
- package/styles/design-system/_tokens.scss +237 -0
- package/styles/design-system/_unified-sections.scss +215 -0
- package/styles/layout/_feature-grid.scss +322 -0
- package/styles/layout/_masonry.scss +734 -0
- package/styles/layout/_tilt.scss +244 -0
- package/styles/micro-interactions.scss +583 -0
- package/styles/mixins/_section-mixins.scss +280 -0
- package/styles/non-critical.scss +643 -0
- package/styles/reset/_framework-reset.scss +457 -0
- package/styles/reset/_index.scss +14 -0
- package/styles/reset/_shadow-reset.scss +383 -0
- package/styles/responsive.scss +326 -0
- package/styles/themes.scss +573 -0
- package/styles/tokens/_index.scss +92 -0
- package/styles/tokens/_master.scss +1404 -0
- package/styles/tokens/_section-tokens.generated.scss +140 -0
- package/postcss.config.js +0 -81
- package/section-registry.json +0 -3864
- package/section-registry.schema.json +0 -264
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
// =====================================================================
|
|
2
|
+
// ULTRA-COMPACT DESIGN TOKENS - Master Design System
|
|
3
|
+
// =====================================================================
|
|
4
|
+
//
|
|
5
|
+
// Unified token system for maximum compactness and consistency
|
|
6
|
+
// 200px/400px column widths with optimized heights
|
|
7
|
+
//
|
|
8
|
+
// =====================================================================
|
|
9
|
+
|
|
10
|
+
@use "../../tokens/master" as *;
|
|
11
|
+
|
|
12
|
+
// =====================================================================
|
|
13
|
+
// CORE SPACING - Ultra Compact Scale
|
|
14
|
+
// =====================================================================
|
|
15
|
+
|
|
16
|
+
:root {
|
|
17
|
+
// Ultra-compact spacing (primary scale)
|
|
18
|
+
--uc-space-1: 1px;
|
|
19
|
+
--uc-space-2: 2px;
|
|
20
|
+
--uc-space-3: 3px;
|
|
21
|
+
--uc-space-4: 4px;
|
|
22
|
+
--uc-space-5: 5px;
|
|
23
|
+
--uc-space-6: 6px;
|
|
24
|
+
--uc-space-8: 8px;
|
|
25
|
+
--uc-space-10: 10px;
|
|
26
|
+
--uc-space-12: 12px;
|
|
27
|
+
|
|
28
|
+
// Section spacing standards
|
|
29
|
+
--uc-section-gap: 8px; // Between sections
|
|
30
|
+
--uc-card-padding: 8px; // Card internal padding
|
|
31
|
+
--uc-card-padding-sm: 6px; // Mobile card padding
|
|
32
|
+
--uc-item-padding: 6px 8px; // List item padding
|
|
33
|
+
--uc-item-padding-sm: 5px 6px; // Mobile item padding
|
|
34
|
+
--uc-internal-gap: 4px; // Between elements
|
|
35
|
+
--uc-internal-gap-sm: 3px; // Tight internal gap
|
|
36
|
+
--uc-grid-gap: 8px; // Grid gap
|
|
37
|
+
--uc-grid-gap-sm: 6px; // Mobile grid gap
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// =====================================================================
|
|
41
|
+
// TYPOGRAPHY - Ultra Compact Scale
|
|
42
|
+
// =====================================================================
|
|
43
|
+
|
|
44
|
+
:root {
|
|
45
|
+
// Font sizes (optimized for density)
|
|
46
|
+
--uc-text-xs: 0.55rem; // 8.8px - Tiny labels
|
|
47
|
+
--uc-text-sm: 0.6rem; // 9.6px - Small labels
|
|
48
|
+
--uc-text-base: 0.65rem; // 10.4px - Labels, meta
|
|
49
|
+
--uc-text-md: 0.7rem; // 11.2px - Body text
|
|
50
|
+
--uc-text-lg: 0.75rem; // 12px - Titles
|
|
51
|
+
--uc-text-xl: 0.8rem; // 12.8px - Values
|
|
52
|
+
--uc-text-2xl: 0.95rem; // 15.2px - Large values
|
|
53
|
+
--uc-text-3xl: 1.1rem; // 17.6px - Metric values
|
|
54
|
+
--uc-text-4xl: 1.2rem; // 19.2px - Large metrics
|
|
55
|
+
|
|
56
|
+
// Line heights (tight)
|
|
57
|
+
--uc-leading-tightest: 1;
|
|
58
|
+
--uc-leading-tight: 1.1;
|
|
59
|
+
--uc-leading-snug: 1.2;
|
|
60
|
+
--uc-leading-normal: 1.3;
|
|
61
|
+
--uc-leading-relaxed: 1.4;
|
|
62
|
+
|
|
63
|
+
// Font weights
|
|
64
|
+
--uc-font-normal: 400;
|
|
65
|
+
--uc-font-medium: 500;
|
|
66
|
+
--uc-font-semibold: 600;
|
|
67
|
+
--uc-font-bold: 700;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// =====================================================================
|
|
71
|
+
// COMPONENT HEIGHTS - Optimized for 200px/400px Columns
|
|
72
|
+
// =====================================================================
|
|
73
|
+
|
|
74
|
+
:root {
|
|
75
|
+
// 200px column cards
|
|
76
|
+
--uc-card-height-200px: 80px; // Analytics, Financials
|
|
77
|
+
--uc-card-height-contact: 140px; // Contact cards
|
|
78
|
+
--uc-card-height-gallery: 150px; // Gallery items
|
|
79
|
+
--uc-card-height-social: 105px; // Social media
|
|
80
|
+
--uc-card-height-network: 105px; // Network cards
|
|
81
|
+
--uc-card-height-news: 210px; // News cards
|
|
82
|
+
--uc-card-height-quote: 130px; // Quotations
|
|
83
|
+
--uc-card-height-color: 110px; // Brand colors
|
|
84
|
+
|
|
85
|
+
// 400px full-width items
|
|
86
|
+
--uc-item-height-info: 42px; // Info items
|
|
87
|
+
--uc-item-height-list: 44px; // List items
|
|
88
|
+
--uc-item-height-event: 52px; // Event items
|
|
89
|
+
--uc-item-height-overview: 48px; // Overview items
|
|
90
|
+
--uc-item-height-product: 54px; // Product items
|
|
91
|
+
--uc-item-height-faq: 42px; // FAQ items
|
|
92
|
+
|
|
93
|
+
// Component-specific
|
|
94
|
+
--uc-avatar-size: 42px; // Compact avatars
|
|
95
|
+
--uc-icon-size: 1rem; // Standard icons
|
|
96
|
+
--uc-icon-size-lg: 1.6rem; // Large icons
|
|
97
|
+
--uc-button-height: 24px; // Compact buttons
|
|
98
|
+
--uc-date-badge: 44px; // Date badges
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// =====================================================================
|
|
102
|
+
// BORDERS & RADIUS - Consistent System
|
|
103
|
+
// =====================================================================
|
|
104
|
+
|
|
105
|
+
:root {
|
|
106
|
+
// Border widths
|
|
107
|
+
--uc-border-width: 1px;
|
|
108
|
+
--uc-border-width-thick: 2px;
|
|
109
|
+
|
|
110
|
+
// Border colors
|
|
111
|
+
--uc-border: rgba(255, 255, 255, 0.06);
|
|
112
|
+
--uc-border-hover: rgba(255, 255, 255, 0.12);
|
|
113
|
+
--uc-border-separator: rgba(255, 255, 255, 0.04);
|
|
114
|
+
--uc-border-accent: var(--accent, #ff7900);
|
|
115
|
+
|
|
116
|
+
// Border radius
|
|
117
|
+
--uc-radius-sm: 4px;
|
|
118
|
+
--uc-radius-md: 8px;
|
|
119
|
+
--uc-radius-lg: 12px;
|
|
120
|
+
--uc-radius-full: 9999px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// =====================================================================
|
|
124
|
+
// COLORS - Unified Palette
|
|
125
|
+
// =====================================================================
|
|
126
|
+
|
|
127
|
+
:root {
|
|
128
|
+
// Base colors
|
|
129
|
+
--uc-bg: var(--background, #0c0c0c);
|
|
130
|
+
--uc-card: var(--card, var(--background, #0c0c0c));
|
|
131
|
+
--uc-surface: var(--surface, rgba(255, 255, 255, 0.02));
|
|
132
|
+
--uc-surface-hover: rgba(255, 255, 255, 0.02);
|
|
133
|
+
|
|
134
|
+
// Text colors
|
|
135
|
+
--uc-text-primary: var(--foreground, #fff);
|
|
136
|
+
--uc-text-secondary: var(--muted-foreground, #999);
|
|
137
|
+
--uc-accent: var(--accent, #ff7900);
|
|
138
|
+
--uc-accent-bright: var(--accent-bright, #ffa347);
|
|
139
|
+
|
|
140
|
+
// Opacity levels
|
|
141
|
+
--uc-opacity-subtle: 0.5;
|
|
142
|
+
--uc-opacity-muted: 0.7;
|
|
143
|
+
--uc-opacity-medium: 0.8;
|
|
144
|
+
--uc-opacity-strong: 0.85;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// =====================================================================
|
|
148
|
+
// TRANSITIONS - Fast & Smooth
|
|
149
|
+
// =====================================================================
|
|
150
|
+
|
|
151
|
+
:root {
|
|
152
|
+
--uc-transition-fast: 150ms ease-out;
|
|
153
|
+
--uc-transition-base: 200ms ease-out;
|
|
154
|
+
--uc-transition-all: all 200ms ease-out;
|
|
155
|
+
--uc-transition-color: color 150ms ease-out;
|
|
156
|
+
--uc-transition-bg: background 150ms ease-out;
|
|
157
|
+
--uc-transition-transform: transform 200ms ease-out;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// =====================================================================
|
|
161
|
+
// SHADOWS - Subtle System
|
|
162
|
+
// =====================================================================
|
|
163
|
+
|
|
164
|
+
:root {
|
|
165
|
+
--uc-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
166
|
+
--uc-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
167
|
+
--uc-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// =====================================================================
|
|
171
|
+
// GRID SYSTEM - 200px/400px Standards
|
|
172
|
+
// =====================================================================
|
|
173
|
+
|
|
174
|
+
:root {
|
|
175
|
+
// Column widths
|
|
176
|
+
--uc-col-200px: 200px; // Compact sections
|
|
177
|
+
--uc-col-400px: 400px; // Full-width sections
|
|
178
|
+
|
|
179
|
+
// Breakpoints
|
|
180
|
+
--uc-bp-tiny: 420px;
|
|
181
|
+
--uc-bp-mobile: 480px;
|
|
182
|
+
--uc-bp-tablet: 640px;
|
|
183
|
+
--uc-bp-desktop: 768px;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// =====================================================================
|
|
187
|
+
// REUSABLE MIXINS
|
|
188
|
+
// =====================================================================
|
|
189
|
+
|
|
190
|
+
// Card base (200px compatible)
|
|
191
|
+
@mixin uc-card-200px {
|
|
192
|
+
position: relative;
|
|
193
|
+
display: flex;
|
|
194
|
+
flex-direction: column;
|
|
195
|
+
padding: var(--uc-card-padding);
|
|
196
|
+
background: var(--uc-card);
|
|
197
|
+
border: var(--uc-border-width) solid var(--uc-border);
|
|
198
|
+
border-radius: var(--uc-radius-md);
|
|
199
|
+
transition: var(--uc-transition-all);
|
|
200
|
+
|
|
201
|
+
&::before {
|
|
202
|
+
content: "";
|
|
203
|
+
position: absolute;
|
|
204
|
+
top: 0;
|
|
205
|
+
left: 0;
|
|
206
|
+
right: 0;
|
|
207
|
+
height: 1px;
|
|
208
|
+
background: var(--uc-border-accent);
|
|
209
|
+
opacity: 0;
|
|
210
|
+
transition: var(--uc-transition-fast);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
&:hover {
|
|
214
|
+
border-color: var(--uc-border-hover);
|
|
215
|
+
transform: translateY(-1px);
|
|
216
|
+
box-shadow: var(--uc-shadow-hover);
|
|
217
|
+
|
|
218
|
+
&::before {
|
|
219
|
+
opacity: 0.6;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// List container (400px compatible)
|
|
225
|
+
@mixin uc-list-400px {
|
|
226
|
+
display: flex;
|
|
227
|
+
flex-direction: column;
|
|
228
|
+
gap: 0;
|
|
229
|
+
padding: var(--uc-space-4);
|
|
230
|
+
background: var(--uc-card);
|
|
231
|
+
border: var(--uc-border-width) solid var(--uc-border);
|
|
232
|
+
border-radius: var(--uc-radius-md);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// List item
|
|
236
|
+
@mixin uc-list-item {
|
|
237
|
+
padding: var(--uc-item-padding);
|
|
238
|
+
border-radius: var(--uc-radius-sm);
|
|
239
|
+
transition: var(--uc-transition-bg);
|
|
240
|
+
|
|
241
|
+
&:not(:last-child) {
|
|
242
|
+
border-bottom: var(--uc-border-width) solid var(--uc-border-separator);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
&:hover {
|
|
246
|
+
background: var(--uc-surface-hover);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// Label text
|
|
251
|
+
@mixin uc-label {
|
|
252
|
+
font-size: var(--uc-text-sm);
|
|
253
|
+
font-weight: var(--uc-font-semibold);
|
|
254
|
+
letter-spacing: 0.05em;
|
|
255
|
+
text-transform: uppercase;
|
|
256
|
+
color: var(--uc-text-secondary);
|
|
257
|
+
line-height: var(--uc-leading-tight);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Value text
|
|
261
|
+
@mixin uc-value {
|
|
262
|
+
font-size: var(--uc-text-xl);
|
|
263
|
+
font-weight: var(--uc-font-semibold);
|
|
264
|
+
color: var(--uc-text-primary);
|
|
265
|
+
line-height: var(--uc-leading-tight);
|
|
266
|
+
transition: var(--uc-transition-color);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// Title text
|
|
270
|
+
@mixin uc-title {
|
|
271
|
+
font-size: var(--uc-text-lg);
|
|
272
|
+
font-weight: var(--uc-font-semibold);
|
|
273
|
+
color: var(--uc-text-primary);
|
|
274
|
+
line-height: var(--uc-leading-snug);
|
|
275
|
+
transition: var(--uc-transition-color);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
// Body text
|
|
279
|
+
@mixin uc-body {
|
|
280
|
+
font-size: var(--uc-text-md);
|
|
281
|
+
font-weight: var(--uc-font-normal);
|
|
282
|
+
color: var(--uc-text-secondary);
|
|
283
|
+
line-height: var(--uc-leading-normal);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Grid 200px
|
|
287
|
+
@mixin uc-grid-200px {
|
|
288
|
+
display: grid;
|
|
289
|
+
grid-template-columns: repeat(auto-fit, minmax(var(--uc-col-200px), 1fr));
|
|
290
|
+
gap: var(--uc-grid-gap);
|
|
291
|
+
|
|
292
|
+
@media (max-width: 640px) {
|
|
293
|
+
grid-template-columns: repeat(2, 1fr);
|
|
294
|
+
gap: var(--uc-grid-gap-sm);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
@media (max-width: 420px) {
|
|
298
|
+
grid-template-columns: 1fr;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// Host min-width 400px
|
|
303
|
+
@mixin uc-host-400px {
|
|
304
|
+
display: block;
|
|
305
|
+
width: 100%;
|
|
306
|
+
min-width: var(--uc-col-400px);
|
|
307
|
+
|
|
308
|
+
@media (max-width: 640px) {
|
|
309
|
+
min-width: 100%;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Responsive mobile
|
|
314
|
+
@mixin uc-mobile {
|
|
315
|
+
@media (max-width: 640px) {
|
|
316
|
+
@content;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Reduced motion
|
|
321
|
+
@mixin uc-reduced-motion {
|
|
322
|
+
@media (prefers-reduced-motion: reduce) {
|
|
323
|
+
transition: none;
|
|
324
|
+
|
|
325
|
+
&:hover {
|
|
326
|
+
transform: none;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
// =====================================================================
|
|
332
|
+
// UTILITY CLASSES (Optional)
|
|
333
|
+
// =====================================================================
|
|
334
|
+
|
|
335
|
+
// Gap utilities
|
|
336
|
+
.uc-gap-2 {
|
|
337
|
+
gap: var(--uc-space-2);
|
|
338
|
+
}
|
|
339
|
+
.uc-gap-3 {
|
|
340
|
+
gap: var(--uc-space-3);
|
|
341
|
+
}
|
|
342
|
+
.uc-gap-4 {
|
|
343
|
+
gap: var(--uc-space-4);
|
|
344
|
+
}
|
|
345
|
+
.uc-gap-6 {
|
|
346
|
+
gap: var(--uc-space-6);
|
|
347
|
+
}
|
|
348
|
+
.uc-gap-8 {
|
|
349
|
+
gap: var(--uc-space-8);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
// Padding utilities
|
|
353
|
+
.uc-p-4 {
|
|
354
|
+
padding: var(--uc-space-4);
|
|
355
|
+
}
|
|
356
|
+
.uc-p-6 {
|
|
357
|
+
padding: var(--uc-space-6);
|
|
358
|
+
}
|
|
359
|
+
.uc-p-8 {
|
|
360
|
+
padding: var(--uc-space-8);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
// Flex utilities
|
|
364
|
+
.uc-flex {
|
|
365
|
+
display: flex;
|
|
366
|
+
}
|
|
367
|
+
.uc-flex-col {
|
|
368
|
+
flex-direction: column;
|
|
369
|
+
}
|
|
370
|
+
.uc-items-center {
|
|
371
|
+
align-items: center;
|
|
372
|
+
}
|
|
373
|
+
.uc-justify-between {
|
|
374
|
+
justify-content: space-between;
|
|
375
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// =====================================================================
|
|
2
|
+
// UNIFIED SECTION STYLE - Based on Original Product Section
|
|
3
|
+
// =====================================================================
|
|
4
|
+
//
|
|
5
|
+
// This is the ORIGINAL style that worked well
|
|
6
|
+
// Clean structure, good spacing, proper hierarchy
|
|
7
|
+
//
|
|
8
|
+
// =====================================================================
|
|
9
|
+
|
|
10
|
+
@use "../../tokens/master" as *;
|
|
11
|
+
|
|
12
|
+
// =====================================================================
|
|
13
|
+
// STANDARD SPACING (Good balance)
|
|
14
|
+
// =====================================================================
|
|
15
|
+
// NOTE: All spacing variables are now defined in tokens/_master.scss
|
|
16
|
+
// Use --osi-section-* and --osi-section-item-* variables
|
|
17
|
+
// This file only contains mixins, no variable definitions
|
|
18
|
+
|
|
19
|
+
// =====================================================================
|
|
20
|
+
// STANDARD CARD (For 200px grids)
|
|
21
|
+
// =====================================================================
|
|
22
|
+
|
|
23
|
+
@mixin section-card {
|
|
24
|
+
@include card;
|
|
25
|
+
padding: var(--spacing-md);
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
gap: var(--spacing-sm);
|
|
29
|
+
background: var(--surface);
|
|
30
|
+
border-radius: var(--radius-md);
|
|
31
|
+
transition:
|
|
32
|
+
box-shadow var(--duration-slow) var(--ease-out),
|
|
33
|
+
background var(--duration-slow) var(--ease-out);
|
|
34
|
+
|
|
35
|
+
&:hover {
|
|
36
|
+
box-shadow: var(--shadow-lg);
|
|
37
|
+
background: var(--osi-section-item-background-hover);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// =====================================================================
|
|
42
|
+
// STANDARD LIST (For 400px width sections)
|
|
43
|
+
// =====================================================================
|
|
44
|
+
|
|
45
|
+
@mixin section-list-container {
|
|
46
|
+
@include card;
|
|
47
|
+
padding: var(--spacing-md);
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
gap: var(--spacing-md);
|
|
51
|
+
background: var(--surface);
|
|
52
|
+
border-radius: var(--radius-md);
|
|
53
|
+
transition: box-shadow 300ms var(--ease-out);
|
|
54
|
+
|
|
55
|
+
&:hover {
|
|
56
|
+
box-shadow: var(--shadow-lg);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@mixin section-list-item {
|
|
61
|
+
padding: var(--spacing-sm);
|
|
62
|
+
border-radius: var(--radius-sm);
|
|
63
|
+
display: flex;
|
|
64
|
+
flex-direction: column;
|
|
65
|
+
gap: var(--spacing-sm);
|
|
66
|
+
transition:
|
|
67
|
+
background var(--duration-base) var(--ease-out),
|
|
68
|
+
color var(--duration-base) var(--ease-out);
|
|
69
|
+
|
|
70
|
+
&:not(:last-child) {
|
|
71
|
+
margin-bottom: var(--spacing-xs);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&:hover {
|
|
75
|
+
background: var(--surface-hover);
|
|
76
|
+
color: var(--accent);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// =====================================================================
|
|
81
|
+
// TYPOGRAPHY MIXINS (Original hierarchy)
|
|
82
|
+
// =====================================================================
|
|
83
|
+
|
|
84
|
+
@mixin section-field-label {
|
|
85
|
+
font-size: 0.7rem;
|
|
86
|
+
text-transform: uppercase;
|
|
87
|
+
letter-spacing: 0.5px;
|
|
88
|
+
color: var(--muted-foreground);
|
|
89
|
+
font-weight: var(--font-semibold);
|
|
90
|
+
line-height: 1.3;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@mixin section-field-value {
|
|
94
|
+
color: var(--foreground);
|
|
95
|
+
font-size: var(--text-base);
|
|
96
|
+
line-height: var(--leading-relaxed);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@mixin section-metric-value {
|
|
100
|
+
font-size: var(--text-2xl);
|
|
101
|
+
font-weight: var(--font-bold);
|
|
102
|
+
color: var(--foreground);
|
|
103
|
+
line-height: 1.2;
|
|
104
|
+
font-variant-numeric: tabular-nums;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// =====================================================================
|
|
108
|
+
// GRID SYSTEMS
|
|
109
|
+
// =====================================================================
|
|
110
|
+
|
|
111
|
+
@mixin section-grid-200px {
|
|
112
|
+
display: grid;
|
|
113
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
114
|
+
gap: var(--spacing-md);
|
|
115
|
+
|
|
116
|
+
@media (max-width: 768px) {
|
|
117
|
+
gap: var(--spacing-sm);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@media (max-width: 640px) {
|
|
121
|
+
grid-template-columns: repeat(2, 1fr);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@media (max-width: 420px) {
|
|
125
|
+
grid-template-columns: 1fr;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
@mixin section-grid-280px {
|
|
130
|
+
display: grid;
|
|
131
|
+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
132
|
+
gap: var(--spacing-md);
|
|
133
|
+
|
|
134
|
+
@media (max-width: 768px) {
|
|
135
|
+
grid-template-columns: repeat(2, 1fr);
|
|
136
|
+
gap: var(--spacing-sm);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@media (max-width: 480px) {
|
|
140
|
+
grid-template-columns: 1fr;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// =====================================================================
|
|
145
|
+
// UTILITIES
|
|
146
|
+
// =====================================================================
|
|
147
|
+
|
|
148
|
+
@mixin section-reduced-motion {
|
|
149
|
+
@media (prefers-reduced-motion: reduce) {
|
|
150
|
+
transition: none;
|
|
151
|
+
animation: none;
|
|
152
|
+
|
|
153
|
+
&:hover {
|
|
154
|
+
transform: none;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|