osi-cards-lib 1.5.30 → 1.5.32
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/README.md +58 -20
- package/package.json +13 -25
- package/postcss.config.js +81 -0
- package/section-registry.json +3864 -0
- package/section-registry.schema.json +264 -0
- package/fesm2022/osi-cards-lib.mjs +0 -31878
- package/fesm2022/osi-cards-lib.mjs.map +0 -1
- package/index.d.ts +0 -11522
- package/scripts/setup-angular-styles.js +0 -169
- package/styles/_components.scss +0 -38
- package/styles/_index.scss +0 -25
- package/styles/_osi-cards-mixins.scss +0 -459
- package/styles/_osi-cards-tokens.scss +0 -333
- package/styles/_styles-scoped.scss +0 -81
- package/styles/_styles.scss +0 -26
- package/styles/bundles/_ai-card.scss +0 -245
- package/styles/bundles/_all.scss +0 -68
- package/styles/bundles/_base.scss +0 -60
- package/styles/bundles/_card-skeleton.scss +0 -290
- package/styles/bundles/_index.scss +0 -25
- package/styles/bundles/_sections.scss +0 -48
- package/styles/bundles/_tokens-only.scss +0 -139
- package/styles/components/_ai-card-renderer.scss +0 -104
- package/styles/components/_badges.scss +0 -317
- package/styles/components/_card-actions.scss +0 -169
- package/styles/components/_card-footer.scss +0 -47
- package/styles/components/_component-styles.scss +0 -205
- package/styles/components/_empty-state.scss +0 -630
- package/styles/components/_hero-card.scss +0 -422
- package/styles/components/_image-fallback.scss +0 -28
- package/styles/components/_streaming-effects.scss +0 -518
- package/styles/components/cards/_ai-card.scss +0 -718
- package/styles/components/sections/_all-sections.generated.scss +0 -41
- package/styles/components/sections/_all-sections.scss +0 -1086
- package/styles/components/sections/_balanced-compact-system.scss +0 -186
- package/styles/components/sections/_compact-mixins.scss +0 -180
- package/styles/components/sections/_component-mixins.scss +0 -454
- package/styles/components/sections/_design-system.scss +0 -477
- package/styles/components/sections/_design-tokens.scss +0 -308
- package/styles/components/sections/_enhanced-design-variables.scss +0 -147
- package/styles/components/sections/_master-compact-system.scss +0 -302
- package/styles/components/sections/_master-dense-system.scss +0 -239
- package/styles/components/sections/_minimalistic-design.scss +0 -268
- package/styles/components/sections/_modern-effects.scss +0 -392
- package/styles/components/sections/_modern-sections.scss +0 -351
- package/styles/components/sections/_perfect-system.scss +0 -204
- package/styles/components/sections/_section-animations.scss +0 -331
- package/styles/components/sections/_section-shell.scss +0 -337
- package/styles/components/sections/_section-types.generated.scss +0 -30
- package/styles/components/sections/_sections-all.scss +0 -26
- package/styles/components/sections/_sections-base.scss +0 -334
- package/styles/components/sections/_typography-system.scss +0 -327
- package/styles/components/sections/_ultra-compact-tokens.scss +0 -375
- package/styles/components/sections/_unified-section-style.scss +0 -157
- package/styles/components/sections/_utility-classes.scss +0 -567
- package/styles/components/sections/_visual-effects-library.scss +0 -374
- package/styles/core/_animations.scss +0 -1498
- package/styles/core/_bootstrap-reset.scss +0 -445
- package/styles/core/_color-helpers.scss +0 -46
- package/styles/core/_global-unified.scss +0 -118
- package/styles/core/_global.scss +0 -73
- package/styles/core/_mixins.scss +0 -491
- package/styles/core/_surface-layers.scss +0 -76
- package/styles/core/_utilities.scss +0 -326
- package/styles/core/_variables-unified.scss +0 -57
- package/styles/core/_variables.scss +0 -36
- package/styles/core/variables/_colors-source.scss +0 -34
- package/styles/core/variables/_colors-unified.scss +0 -26
- package/styles/core/variables/_colors.scss +0 -21
- package/styles/critical.scss +0 -353
- package/styles/design-system/_compact-theme.scss +0 -159
- package/styles/design-system/_section-base.scss +0 -426
- package/styles/design-system/_tokens.scss +0 -237
- package/styles/design-system/_unified-sections.scss +0 -215
- package/styles/layout/_feature-grid.scss +0 -322
- package/styles/layout/_masonry.scss +0 -734
- package/styles/layout/_tilt.scss +0 -244
- package/styles/micro-interactions.scss +0 -583
- package/styles/mixins/_section-mixins.scss +0 -280
- package/styles/non-critical.scss +0 -643
- package/styles/reset/_framework-reset.scss +0 -457
- package/styles/reset/_index.scss +0 -14
- package/styles/reset/_shadow-reset.scss +0 -383
- package/styles/responsive.scss +0 -326
- package/styles/themes.scss +0 -573
- package/styles/tokens/_index.scss +0 -92
- package/styles/tokens/_master.scss +0 -1404
- package/styles/tokens/_section-tokens.generated.scss +0 -140
|
@@ -1,374 +0,0 @@
|
|
|
1
|
-
// =====================================================================
|
|
2
|
-
// VISUAL EFFECTS LIBRARY - Reusable Card & Item Effects
|
|
3
|
-
// =====================================================================
|
|
4
|
-
// Beautiful, polished effects that sections can apply
|
|
5
|
-
// Extracted from best-looking sections (like analytics)
|
|
6
|
-
|
|
7
|
-
@use "design-tokens" as *;
|
|
8
|
-
|
|
9
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
10
|
-
// CARD HOVER EFFECTS - Analytics-Style Polish
|
|
11
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
12
|
-
|
|
13
|
-
// The beautiful analytics card effect (shadow + accent line)
|
|
14
|
-
@mixin analytics-card-effect {
|
|
15
|
-
position: relative;
|
|
16
|
-
transition:
|
|
17
|
-
box-shadow var(--duration-slow) var(--ease-out),
|
|
18
|
-
background var(--duration-slow) var(--ease-out);
|
|
19
|
-
cursor: default;
|
|
20
|
-
|
|
21
|
-
// Subtle gradient overlay for depth
|
|
22
|
-
&::before {
|
|
23
|
-
content: "";
|
|
24
|
-
position: absolute;
|
|
25
|
-
top: 0;
|
|
26
|
-
left: 0;
|
|
27
|
-
right: 0;
|
|
28
|
-
height: 2px;
|
|
29
|
-
background: linear-gradient(90deg, var(--accent) 0%, transparent 100%);
|
|
30
|
-
opacity: 0;
|
|
31
|
-
transition: opacity var(--duration-slow) var(--ease-out);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
&:hover {
|
|
35
|
-
box-shadow: var(--shadow-xl);
|
|
36
|
-
background: var(--osi-section-item-background-hover);
|
|
37
|
-
|
|
38
|
-
&::before {
|
|
39
|
-
opacity: 1;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
&:focus-visible {
|
|
44
|
-
outline: 2px solid var(--accent);
|
|
45
|
-
outline-offset: 2px;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Enhanced shadow effect
|
|
50
|
-
@mixin card-scale-lift {
|
|
51
|
-
transition:
|
|
52
|
-
box-shadow var(--duration-base) var(--ease-out),
|
|
53
|
-
background var(--duration-base) var(--ease-out);
|
|
54
|
-
|
|
55
|
-
&:hover {
|
|
56
|
-
box-shadow: var(--shadow-lg);
|
|
57
|
-
background: var(--osi-section-item-background-hover);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// List item hover effect (background + shadow)
|
|
62
|
-
@mixin item-slide-right {
|
|
63
|
-
transition:
|
|
64
|
-
background var(--duration-base) var(--ease-out),
|
|
65
|
-
box-shadow var(--duration-base) var(--ease-out),
|
|
66
|
-
color var(--duration-base) var(--ease-out);
|
|
67
|
-
|
|
68
|
-
&:hover {
|
|
69
|
-
background: var(--surface-raised);
|
|
70
|
-
box-shadow: var(--shadow-sm);
|
|
71
|
-
color: var(--accent);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Glow effect on hover
|
|
76
|
-
@mixin card-glow-hover {
|
|
77
|
-
transition: all 300ms var(--ease-out);
|
|
78
|
-
|
|
79
|
-
&:hover {
|
|
80
|
-
box-shadow:
|
|
81
|
-
var(--shadow-md),
|
|
82
|
-
0 0 20px rgba(var(--accent-rgb, 255, 121, 0), 0.2);
|
|
83
|
-
border-color: var(--accent);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
88
|
-
// METRIC VALUE ANIMATIONS - Analytics-Style
|
|
89
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
90
|
-
|
|
91
|
-
// The nice metric value scale effect
|
|
92
|
-
@mixin metric-value-effect {
|
|
93
|
-
transition: all 300ms var(--ease-out);
|
|
94
|
-
|
|
95
|
-
.metric-card:hover &,
|
|
96
|
-
.analytics-card:hover & {
|
|
97
|
-
transform: scale(1.05);
|
|
98
|
-
color: var(--accent);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Number pulse effect
|
|
103
|
-
@mixin number-pulse-effect {
|
|
104
|
-
animation: numberPulse 2s ease-in-out infinite;
|
|
105
|
-
|
|
106
|
-
@keyframes numberPulse {
|
|
107
|
-
0%,
|
|
108
|
-
100% {
|
|
109
|
-
opacity: 1;
|
|
110
|
-
}
|
|
111
|
-
50% {
|
|
112
|
-
opacity: 0.85;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
118
|
-
// PROGRESS BAR EFFECTS
|
|
119
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
120
|
-
|
|
121
|
-
// Shimmer effect (from analytics)
|
|
122
|
-
@mixin progress-shimmer {
|
|
123
|
-
position: relative;
|
|
124
|
-
overflow: hidden;
|
|
125
|
-
|
|
126
|
-
&::after {
|
|
127
|
-
content: "";
|
|
128
|
-
position: absolute;
|
|
129
|
-
top: 0;
|
|
130
|
-
left: -100%;
|
|
131
|
-
width: 100%;
|
|
132
|
-
height: 100%;
|
|
133
|
-
background: linear-gradient(
|
|
134
|
-
90deg,
|
|
135
|
-
transparent 0%,
|
|
136
|
-
rgba(255, 255, 255, 0.3) 50%,
|
|
137
|
-
transparent 100%
|
|
138
|
-
);
|
|
139
|
-
animation: shimmer 2s infinite;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
@keyframes shimmer {
|
|
143
|
-
0% {
|
|
144
|
-
left: -100%;
|
|
145
|
-
}
|
|
146
|
-
100% {
|
|
147
|
-
left: 100%;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Progress pulse on hover
|
|
153
|
-
@mixin progress-pulse-hover {
|
|
154
|
-
.metric-card:hover &,
|
|
155
|
-
.card:hover & {
|
|
156
|
-
animation: progressPulse 1s ease-in-out;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
@keyframes progressPulse {
|
|
160
|
-
0%,
|
|
161
|
-
100% {
|
|
162
|
-
opacity: 1;
|
|
163
|
-
}
|
|
164
|
-
50% {
|
|
165
|
-
opacity: 0.8;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
171
|
-
// ACCENT LINE EFFECTS
|
|
172
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
173
|
-
|
|
174
|
-
// Animated top accent line (analytics style)
|
|
175
|
-
@mixin accent-line-top {
|
|
176
|
-
position: relative;
|
|
177
|
-
|
|
178
|
-
&::before {
|
|
179
|
-
content: "";
|
|
180
|
-
position: absolute;
|
|
181
|
-
top: 0;
|
|
182
|
-
left: 0;
|
|
183
|
-
right: 0;
|
|
184
|
-
height: 2px;
|
|
185
|
-
background: linear-gradient(90deg, var(--accent) 0%, transparent 100%);
|
|
186
|
-
opacity: 0;
|
|
187
|
-
transition: opacity 300ms var(--ease-out);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
&:hover::before {
|
|
191
|
-
opacity: 1;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
// Left accent border (quotations, highlights)
|
|
196
|
-
@mixin accent-line-left {
|
|
197
|
-
border-left: 3px solid var(--accent);
|
|
198
|
-
padding-left: calc(var(--osi-default-card-padding) - 3px);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
202
|
-
// TREND ANIMATIONS
|
|
203
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
204
|
-
|
|
205
|
-
@mixin trend-bounce-animation {
|
|
206
|
-
.trend-icon,
|
|
207
|
-
.trend-arrow {
|
|
208
|
-
display: inline-block;
|
|
209
|
-
animation: trendBounce 1.5s ease-in-out infinite;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
@keyframes trendBounce {
|
|
213
|
-
0%,
|
|
214
|
-
100% {
|
|
215
|
-
transform: translate3d(0, 0, 0);
|
|
216
|
-
}
|
|
217
|
-
50% {
|
|
218
|
-
transform: translate3d(0, -2px, 0);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
&:hover .trend-icon,
|
|
223
|
-
&:hover .trend-arrow {
|
|
224
|
-
animation-play-state: paused;
|
|
225
|
-
transform: scale(1.1);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
230
|
-
// ZEBRA STRIPING (for lists)
|
|
231
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
232
|
-
|
|
233
|
-
@mixin zebra-striping {
|
|
234
|
-
&:nth-child(even) {
|
|
235
|
-
background: var(--surface-subtle);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
&:hover {
|
|
239
|
-
background: var(--surface-raised);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
244
|
-
// GLASS MORPHISM EFFECT
|
|
245
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
246
|
-
|
|
247
|
-
@mixin glass-card {
|
|
248
|
-
background: var(--glass-bg);
|
|
249
|
-
-webkit-backdrop-filter: blur(var(--blur-md));
|
|
250
|
-
backdrop-filter: blur(var(--blur-md));
|
|
251
|
-
border: 1px solid var(--glass-border);
|
|
252
|
-
box-shadow: var(--shadow-sm);
|
|
253
|
-
|
|
254
|
-
&:hover {
|
|
255
|
-
background: rgba(255, 255, 255, 0.12);
|
|
256
|
-
-webkit-backdrop-filter: blur(var(--blur-lg));
|
|
257
|
-
backdrop-filter: blur(var(--blur-lg));
|
|
258
|
-
box-shadow: var(--shadow-lg);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
263
|
-
// ICON ANIMATIONS
|
|
264
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
265
|
-
|
|
266
|
-
@mixin icon-hover-scale {
|
|
267
|
-
.item-icon,
|
|
268
|
-
.card-icon {
|
|
269
|
-
transition: all 200ms var(--ease-out);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
&:hover .item-icon,
|
|
273
|
-
&:hover .card-icon {
|
|
274
|
-
transform: scale(1.15);
|
|
275
|
-
color: var(--accent);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
280
|
-
// GRADIENT BACKGROUNDS
|
|
281
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
282
|
-
|
|
283
|
-
@mixin gradient-background {
|
|
284
|
-
background: linear-gradient(135deg, var(--surface) 0%, var(--surface-raised) 100%);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
@mixin gradient-hover {
|
|
288
|
-
&:hover {
|
|
289
|
-
background: linear-gradient(135deg, var(--surface-raised) 0%, var(--surface-hover) 100%);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
294
|
-
// FOCUS RING (Accessibility)
|
|
295
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
296
|
-
|
|
297
|
-
@mixin focus-ring {
|
|
298
|
-
&:focus-visible {
|
|
299
|
-
outline: 2px solid var(--accent);
|
|
300
|
-
outline-offset: 2px;
|
|
301
|
-
border-radius: var(--radius-sm);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
306
|
-
// LOADING STATE EFFECT
|
|
307
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
308
|
-
|
|
309
|
-
@mixin loading-shimmer {
|
|
310
|
-
position: relative;
|
|
311
|
-
overflow: hidden;
|
|
312
|
-
|
|
313
|
-
&::after {
|
|
314
|
-
content: "";
|
|
315
|
-
position: absolute;
|
|
316
|
-
inset: 0;
|
|
317
|
-
background: linear-gradient(
|
|
318
|
-
90deg,
|
|
319
|
-
transparent 0%,
|
|
320
|
-
var(--osi-overlay-medium) 50%,
|
|
321
|
-
transparent 100%
|
|
322
|
-
);
|
|
323
|
-
transform: translateX(-100%);
|
|
324
|
-
animation: loadingShimmer 1.5s infinite;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
@keyframes loadingShimmer {
|
|
328
|
-
0% {
|
|
329
|
-
transform: translate3d(-100%, 0, 0);
|
|
330
|
-
}
|
|
331
|
-
100% {
|
|
332
|
-
transform: translate3d(100%, 0, 0);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
338
|
-
// COMBINED EFFECTS - Pre-built Combinations
|
|
339
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
340
|
-
|
|
341
|
-
// Premium card effect (analytics-style)
|
|
342
|
-
@mixin premium-card {
|
|
343
|
-
@include analytics-card-effect;
|
|
344
|
-
@include focus-ring;
|
|
345
|
-
|
|
346
|
-
// Additional polish
|
|
347
|
-
background: var(--osi-card-background);
|
|
348
|
-
border: var(--osi-card-border-width) solid var(--osi-card-border-color);
|
|
349
|
-
border-radius: var(--osi-card-border-radius);
|
|
350
|
-
padding: var(--osi-default-card-padding);
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
// Interactive list item
|
|
354
|
-
@mixin interactive-list-item {
|
|
355
|
-
@include item-slide-right;
|
|
356
|
-
@include zebra-striping;
|
|
357
|
-
@include focus-ring;
|
|
358
|
-
|
|
359
|
-
cursor: pointer;
|
|
360
|
-
border-radius: var(--radius-sm);
|
|
361
|
-
padding: var(--osi-default-card-padding);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
// Feature card (gallery, products)
|
|
365
|
-
@mixin feature-card {
|
|
366
|
-
@include card-scale-lift;
|
|
367
|
-
@include accent-line-top;
|
|
368
|
-
@include focus-ring;
|
|
369
|
-
|
|
370
|
-
background: var(--osi-card-background);
|
|
371
|
-
border: var(--osi-card-border-width) solid var(--osi-card-border-color);
|
|
372
|
-
border-radius: var(--osi-card-border-radius);
|
|
373
|
-
padding: var(--osi-default-card-padding);
|
|
374
|
-
}
|