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.
Files changed (88) hide show
  1. package/README.md +58 -20
  2. package/package.json +13 -25
  3. package/postcss.config.js +81 -0
  4. package/section-registry.json +3864 -0
  5. package/section-registry.schema.json +264 -0
  6. package/fesm2022/osi-cards-lib.mjs +0 -31878
  7. package/fesm2022/osi-cards-lib.mjs.map +0 -1
  8. package/index.d.ts +0 -11522
  9. package/scripts/setup-angular-styles.js +0 -169
  10. package/styles/_components.scss +0 -38
  11. package/styles/_index.scss +0 -25
  12. package/styles/_osi-cards-mixins.scss +0 -459
  13. package/styles/_osi-cards-tokens.scss +0 -333
  14. package/styles/_styles-scoped.scss +0 -81
  15. package/styles/_styles.scss +0 -26
  16. package/styles/bundles/_ai-card.scss +0 -245
  17. package/styles/bundles/_all.scss +0 -68
  18. package/styles/bundles/_base.scss +0 -60
  19. package/styles/bundles/_card-skeleton.scss +0 -290
  20. package/styles/bundles/_index.scss +0 -25
  21. package/styles/bundles/_sections.scss +0 -48
  22. package/styles/bundles/_tokens-only.scss +0 -139
  23. package/styles/components/_ai-card-renderer.scss +0 -104
  24. package/styles/components/_badges.scss +0 -317
  25. package/styles/components/_card-actions.scss +0 -169
  26. package/styles/components/_card-footer.scss +0 -47
  27. package/styles/components/_component-styles.scss +0 -205
  28. package/styles/components/_empty-state.scss +0 -630
  29. package/styles/components/_hero-card.scss +0 -422
  30. package/styles/components/_image-fallback.scss +0 -28
  31. package/styles/components/_streaming-effects.scss +0 -518
  32. package/styles/components/cards/_ai-card.scss +0 -718
  33. package/styles/components/sections/_all-sections.generated.scss +0 -41
  34. package/styles/components/sections/_all-sections.scss +0 -1086
  35. package/styles/components/sections/_balanced-compact-system.scss +0 -186
  36. package/styles/components/sections/_compact-mixins.scss +0 -180
  37. package/styles/components/sections/_component-mixins.scss +0 -454
  38. package/styles/components/sections/_design-system.scss +0 -477
  39. package/styles/components/sections/_design-tokens.scss +0 -308
  40. package/styles/components/sections/_enhanced-design-variables.scss +0 -147
  41. package/styles/components/sections/_master-compact-system.scss +0 -302
  42. package/styles/components/sections/_master-dense-system.scss +0 -239
  43. package/styles/components/sections/_minimalistic-design.scss +0 -268
  44. package/styles/components/sections/_modern-effects.scss +0 -392
  45. package/styles/components/sections/_modern-sections.scss +0 -351
  46. package/styles/components/sections/_perfect-system.scss +0 -204
  47. package/styles/components/sections/_section-animations.scss +0 -331
  48. package/styles/components/sections/_section-shell.scss +0 -337
  49. package/styles/components/sections/_section-types.generated.scss +0 -30
  50. package/styles/components/sections/_sections-all.scss +0 -26
  51. package/styles/components/sections/_sections-base.scss +0 -334
  52. package/styles/components/sections/_typography-system.scss +0 -327
  53. package/styles/components/sections/_ultra-compact-tokens.scss +0 -375
  54. package/styles/components/sections/_unified-section-style.scss +0 -157
  55. package/styles/components/sections/_utility-classes.scss +0 -567
  56. package/styles/components/sections/_visual-effects-library.scss +0 -374
  57. package/styles/core/_animations.scss +0 -1498
  58. package/styles/core/_bootstrap-reset.scss +0 -445
  59. package/styles/core/_color-helpers.scss +0 -46
  60. package/styles/core/_global-unified.scss +0 -118
  61. package/styles/core/_global.scss +0 -73
  62. package/styles/core/_mixins.scss +0 -491
  63. package/styles/core/_surface-layers.scss +0 -76
  64. package/styles/core/_utilities.scss +0 -326
  65. package/styles/core/_variables-unified.scss +0 -57
  66. package/styles/core/_variables.scss +0 -36
  67. package/styles/core/variables/_colors-source.scss +0 -34
  68. package/styles/core/variables/_colors-unified.scss +0 -26
  69. package/styles/core/variables/_colors.scss +0 -21
  70. package/styles/critical.scss +0 -353
  71. package/styles/design-system/_compact-theme.scss +0 -159
  72. package/styles/design-system/_section-base.scss +0 -426
  73. package/styles/design-system/_tokens.scss +0 -237
  74. package/styles/design-system/_unified-sections.scss +0 -215
  75. package/styles/layout/_feature-grid.scss +0 -322
  76. package/styles/layout/_masonry.scss +0 -734
  77. package/styles/layout/_tilt.scss +0 -244
  78. package/styles/micro-interactions.scss +0 -583
  79. package/styles/mixins/_section-mixins.scss +0 -280
  80. package/styles/non-critical.scss +0 -643
  81. package/styles/reset/_framework-reset.scss +0 -457
  82. package/styles/reset/_index.scss +0 -14
  83. package/styles/reset/_shadow-reset.scss +0 -383
  84. package/styles/responsive.scss +0 -326
  85. package/styles/themes.scss +0 -573
  86. package/styles/tokens/_index.scss +0 -92
  87. package/styles/tokens/_master.scss +0 -1404
  88. package/styles/tokens/_section-tokens.generated.scss +0 -140
@@ -1,422 +0,0 @@
1
- // ============================================
2
- // HERO CARD ANIMATION SYSTEM
3
- // ============================================
4
- //
5
- // Provides hero-style card hover effects with:
6
- // - Vertical lift on hover
7
- // - Glow expansion with brand color
8
- // - Icon scale and rotation effects
9
- // - Left accent border glow
10
- // - Top glow line
11
- //
12
- // Usage:
13
- // @use 'hero-card' as *;
14
- // .my-card { @include hero-card-hover(); }
15
- // .my-icon { @include icon-hover-effect(); }
16
- //
17
- // ============================================
18
-
19
- // ===================================================================
20
- // HERO CARD HOVER PATTERN
21
- // Vertical lift with glow expansion - matches homepage hero cards
22
- // ===================================================================
23
-
24
- /// Hero card hover effect with lift and glow
25
- /// @param {Length} $lift - Vertical lift distance on hover (default: 6px)
26
- /// @param {Boolean} $glow - Whether to show glow effect (default: true)
27
- /// @param {Boolean} $accent - Whether to show left accent border (default: false)
28
- @mixin hero-card-hover($lift: 6px, $glow: true, $accent: false) {
29
- position: relative;
30
- transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
31
-
32
- @if $accent {
33
- &::before {
34
- content: "";
35
- position: absolute;
36
- left: 0;
37
- top: 0;
38
- bottom: 0;
39
- width: 3px;
40
- background: var(--color-brand, #ff7900);
41
- border-radius: 3px 0 0 3px;
42
- opacity: 0;
43
- transition: opacity 0.35s ease;
44
- }
45
- }
46
-
47
- &:hover {
48
- transform: translateY(-#{$lift});
49
-
50
- @if $glow {
51
- box-shadow:
52
- 0 20px 40px color-mix(in srgb, var(--foreground, #000) 15%, transparent),
53
- 0 0 0 1px color-mix(in srgb, var(--color-brand, #ff7900) 35%, transparent);
54
- }
55
-
56
- @if $accent {
57
- &::before {
58
- opacity: 1;
59
- }
60
- }
61
- }
62
-
63
- @media (prefers-reduced-motion: reduce) {
64
- transition: none;
65
-
66
- &:hover {
67
- transform: none;
68
- }
69
- }
70
- }
71
-
72
- /// Hero card with top glow line effect
73
- /// @param {Length} $lift - Vertical lift distance on hover (default: 6px)
74
- @mixin hero-card-with-glow-line($lift: 6px) {
75
- position: relative;
76
- transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
77
- overflow: hidden;
78
-
79
- // Top glow line
80
- &::before {
81
- content: "";
82
- position: absolute;
83
- top: 0;
84
- left: 0;
85
- right: 0;
86
- height: 2px;
87
- background: linear-gradient(
88
- 90deg,
89
- transparent 0%,
90
- color-mix(in srgb, var(--color-brand, #ff7900) 60%, transparent) 50%,
91
- transparent 100%
92
- );
93
- opacity: 0;
94
- transition: opacity 0.35s ease;
95
- }
96
-
97
- // Left accent
98
- &::after {
99
- content: "";
100
- position: absolute;
101
- left: 0;
102
- top: 0;
103
- bottom: 0;
104
- width: 3px;
105
- background: var(--color-brand, #ff7900);
106
- opacity: 0;
107
- transition: opacity 0.35s ease;
108
- }
109
-
110
- &:hover {
111
- transform: translateY(-#{$lift});
112
- box-shadow:
113
- 0 20px 40px color-mix(in srgb, var(--foreground, #000) 15%, transparent),
114
- 0 0 0 1px color-mix(in srgb, var(--color-brand, #ff7900) 35%, transparent);
115
-
116
- &::before,
117
- &::after {
118
- opacity: 1;
119
- }
120
- }
121
-
122
- @media (prefers-reduced-motion: reduce) {
123
- transition: none;
124
-
125
- &:hover {
126
- transform: none;
127
- }
128
-
129
- &::before,
130
- &::after {
131
- transition: none;
132
- }
133
- }
134
- }
135
-
136
- // ===================================================================
137
- // ICON HOVER EFFECTS
138
- // Scale and rotation effects for icons within cards
139
- // ===================================================================
140
-
141
- /// Icon hover effect with scale and rotation
142
- /// @param {Number} $scale - Scale factor on hover (default: 1.15)
143
- /// @param {Angle} $rotate - Rotation angle on hover (default: 5deg)
144
- /// @param {Boolean} $glow - Whether to add drop shadow glow (default: true)
145
- @mixin icon-hover-effect($scale: 1.15, $rotate: 5deg, $glow: true) {
146
- transition:
147
- transform 0.35s ease,
148
- filter 0.35s ease;
149
-
150
- &:hover {
151
- transform: scale($scale) rotateZ($rotate);
152
-
153
- @if $glow {
154
- filter: drop-shadow(
155
- 0 4px 12px color-mix(in srgb, var(--color-brand, #ff7900) 25%, transparent)
156
- );
157
- }
158
- }
159
-
160
- @media (prefers-reduced-motion: reduce) {
161
- transition: none;
162
-
163
- &:hover {
164
- transform: none;
165
- filter: none;
166
- }
167
- }
168
- }
169
-
170
- /// Icon hover effect triggered by parent card hover
171
- /// Apply to icon, effect triggers when parent .hero-card:hover
172
- /// @param {Number} $scale - Scale factor on hover (default: 1.15)
173
- /// @param {Angle} $rotate - Rotation angle on hover (default: 5deg)
174
- @mixin icon-hover-on-card($scale: 1.15, $rotate: 5deg) {
175
- transition:
176
- transform 0.35s ease,
177
- filter 0.35s ease;
178
-
179
- .hero-card:hover &,
180
- .hero-feature-card:hover &,
181
- .feature-card:hover &,
182
- [class*="card"]:hover & {
183
- transform: scale($scale) rotateZ($rotate);
184
- filter: drop-shadow(
185
- 0 4px 12px color-mix(in srgb, var(--color-brand, #ff7900) 25%, transparent)
186
- );
187
- }
188
-
189
- @media (prefers-reduced-motion: reduce) {
190
- transition: none;
191
-
192
- .hero-card:hover &,
193
- .hero-feature-card:hover &,
194
- .feature-card:hover &,
195
- [class*="card"]:hover & {
196
- transform: none;
197
- filter: none;
198
- }
199
- }
200
- }
201
-
202
- // ===================================================================
203
- // HERO CARD UTILITY CLASSES
204
- // Ready-to-use classes for hero card styling
205
- // ===================================================================
206
-
207
- // Hero card base class
208
- .hero-card {
209
- @include hero-card-hover();
210
- }
211
-
212
- // Hero card with accent border
213
- .hero-card--accent {
214
- @include hero-card-hover($accent: true);
215
- }
216
-
217
- // Hero card with top glow line
218
- .hero-card--glow-line {
219
- @include hero-card-with-glow-line();
220
- }
221
-
222
- // Hero card icon that animates on card hover
223
- .hero-card-icon {
224
- @include icon-hover-on-card();
225
- }
226
-
227
- // Standalone icon hover effect
228
- .icon-hover {
229
- @include icon-hover-effect();
230
- }
231
-
232
- // Feature card style (homepage features section)
233
- .hero-feature-card {
234
- position: relative;
235
- border-radius: var(--card-border-radius, 1rem);
236
- border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
237
- background: var(--card-background, rgba(20, 20, 20, 0.6));
238
- backdrop-filter: blur(10px);
239
- -webkit-backdrop-filter: blur(10px);
240
- padding: 1.5rem;
241
- transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
242
-
243
- &:hover {
244
- transform: translateY(-6px);
245
- border-color: color-mix(in srgb, var(--color-brand, #ff7900) 50%, transparent);
246
- box-shadow:
247
- 0 20px 40px color-mix(in srgb, var(--foreground, #000) 15%, transparent),
248
- 0 0 0 1px color-mix(in srgb, var(--color-brand, #ff7900) 35%, transparent);
249
- }
250
-
251
- // Icon inside hero feature card
252
- .hero-feature-card__icon {
253
- transition:
254
- transform 0.35s ease,
255
- filter 0.35s ease;
256
- }
257
-
258
- &:hover .hero-feature-card__icon {
259
- transform: scale(1.15) rotateZ(5deg);
260
- filter: drop-shadow(
261
- 0 4px 12px color-mix(in srgb, var(--color-brand, #ff7900) 25%, transparent)
262
- );
263
- }
264
-
265
- @media (prefers-reduced-motion: reduce) {
266
- transition: none;
267
-
268
- &:hover {
269
- transform: none;
270
- }
271
-
272
- .hero-feature-card__icon {
273
- transition: none;
274
- }
275
-
276
- &:hover .hero-feature-card__icon {
277
- transform: none;
278
- filter: none;
279
- }
280
- }
281
- }
282
-
283
- // System capability card (homepage capabilities section)
284
- .system-capability-card {
285
- position: relative;
286
- border-radius: var(--card-border-radius, 1rem);
287
- border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
288
- background: var(--card-background, rgba(20, 20, 20, 0.6));
289
- backdrop-filter: blur(10px);
290
- -webkit-backdrop-filter: blur(10px);
291
- padding: 1.25rem;
292
- transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
293
- animation: fadeInUp 0.6s ease-out backwards;
294
-
295
- // Staggered animation delays
296
- @for $i from 1 through 6 {
297
- &:nth-child(#{$i}) {
298
- animation-delay: #{$i * 0.08}s;
299
- }
300
- }
301
-
302
- // Left accent (hidden by default)
303
- &::before {
304
- content: "";
305
- position: absolute;
306
- left: 0;
307
- top: 0;
308
- bottom: 0;
309
- width: 3px;
310
- background: var(--color-brand, #ff7900);
311
- border-radius: 3px 0 0 3px;
312
- opacity: 0;
313
- transition: opacity 0.35s ease;
314
- }
315
-
316
- // Top glow line (hidden by default)
317
- &::after {
318
- content: "";
319
- position: absolute;
320
- top: 0;
321
- left: 0;
322
- right: 0;
323
- height: 2px;
324
- background: linear-gradient(
325
- 90deg,
326
- transparent 0%,
327
- color-mix(in srgb, var(--color-brand, #ff7900) 60%, transparent) 50%,
328
- transparent 100%
329
- );
330
- opacity: 0;
331
- transition: opacity 0.35s ease;
332
- }
333
-
334
- &:hover {
335
- transform: translateY(-6px);
336
- border-color: color-mix(in srgb, var(--color-brand, #ff7900) 50%, transparent);
337
- box-shadow:
338
- 0 20px 40px color-mix(in srgb, var(--foreground, #000) 15%, transparent),
339
- 0 0 0 1px color-mix(in srgb, var(--color-brand, #ff7900) 35%, transparent);
340
-
341
- &::before,
342
- &::after {
343
- opacity: 1;
344
- }
345
- }
346
-
347
- // Icon inside capability card
348
- .system-capability-card__icon {
349
- transition:
350
- transform 0.35s ease,
351
- filter 0.35s ease;
352
- }
353
-
354
- &:hover .system-capability-card__icon {
355
- transform: scale(1.15) rotateZ(5deg);
356
- filter: drop-shadow(
357
- 0 4px 12px color-mix(in srgb, var(--color-brand, #ff7900) 25%, transparent)
358
- );
359
- }
360
-
361
- @media (prefers-reduced-motion: reduce) {
362
- animation: none;
363
- transition: none;
364
-
365
- &:hover {
366
- transform: none;
367
- }
368
-
369
- &::before,
370
- &::after {
371
- transition: none;
372
- }
373
-
374
- .system-capability-card__icon {
375
- transition: none;
376
- }
377
-
378
- &:hover .system-capability-card__icon {
379
- transform: none;
380
- filter: none;
381
- }
382
- }
383
- }
384
-
385
- // Feature card (simple version for features section)
386
- .feature-card {
387
- position: relative;
388
- border-radius: var(--card-border-radius, 1rem);
389
- border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
390
- background: var(--card-background);
391
- padding: 1.5rem;
392
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
393
-
394
- &:hover {
395
- transform: translateY(-4px);
396
- box-shadow: 0 10px 30px -10px color-mix(in srgb, var(--color-brand, #ff7900) 15%, transparent);
397
-
398
- .feature-card__icon {
399
- transform: scale(1.1);
400
- }
401
- }
402
-
403
- .feature-card__icon {
404
- transition: transform 0.3s ease;
405
- }
406
-
407
- @media (prefers-reduced-motion: reduce) {
408
- transition: none;
409
-
410
- &:hover {
411
- transform: none;
412
- }
413
-
414
- .feature-card__icon {
415
- transition: none;
416
- }
417
-
418
- &:hover .feature-card__icon {
419
- transform: none;
420
- }
421
- }
422
- }
@@ -1,28 +0,0 @@
1
- /* Responsive image wrapper with graceful fallback */
2
-
3
- .image-container {
4
- position: relative;
5
- overflow: hidden;
6
- }
7
-
8
- .image-placeholder {
9
- background-color: var(--muted);
10
- width: 100%;
11
- height: 100%;
12
- display: flex;
13
- justify-content: center;
14
- align-items: center;
15
- }
16
-
17
- .image-error {
18
- position: absolute;
19
- top: 0;
20
- left: 0;
21
- width: 100%;
22
- height: 100%;
23
- display: flex;
24
- justify-content: center;
25
- align-items: center;
26
- background-color: var(--muted);
27
- color: var(--muted-foreground);
28
- }