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,718 +0,0 @@
1
- /* ===================================================================
2
- AI Card Styles - Unified with Docs App
3
- =================================================================== */
4
-
5
- /* Host element styles - transparent container with padding */
6
- :host {
7
- display: block;
8
- padding: var(--osi-card-padding);
9
- background: transparent !important;
10
- background-color: transparent !important;
11
-
12
- /* Responsive: reduce padding on mobile */
13
- @media (max-width: 480px) {
14
- padding: var(--osi-card-padding-mobile);
15
- }
16
- }
17
-
18
- .ai-card-surface {
19
- position: relative;
20
- display: flex;
21
- flex-direction: column;
22
- width: 100%;
23
- min-height: 0; // Allow content to determine height
24
- overflow: visible;
25
-
26
- /* CSS Isolation */
27
- isolation: isolate;
28
-
29
- /* Performance optimization: CSS containment (no paint to avoid clipping shadows/glow) */
30
- contain: layout style;
31
-
32
- /* Card base */
33
- @include surface-ai-card-base;
34
-
35
- /* ========== MAIN CARD SPECIFIC STYLING (Theme-aware) ========== */
36
- /* These are specific to the main card container, not sections */
37
-
38
- /* Background - follows theme but has card-specific styling */
39
- background: var(--osi-card-background) !important;
40
-
41
- /* Backdrop filter - blur effect for glassmorphism */
42
- backdrop-filter: var(--osi-card-backdrop-filter) !important;
43
- -webkit-backdrop-filter: var(--osi-card-backdrop-filter) !important;
44
-
45
- /* Border - card-specific (stronger than section borders) */
46
- border: var(--osi-card-border) !important;
47
-
48
- /* Box shadow - card-specific elevation */
49
- box-shadow: var(--osi-card-shadow) !important;
50
-
51
- /* Padding - card-specific spacing */
52
- padding: var(--osi-card-padding) !important;
53
- padding-bottom: var(--osi-card-padding) !important;
54
-
55
- /* Border radius - card-specific (larger than sections) */
56
- border-radius: var(--osi-card-border-radius) !important;
57
-
58
- /* Gap - specific space between header and sections */
59
- gap: var(--osi-card-gap) !important;
60
- /* ========== END CARD SPECIFIC STYLES ========== */
61
-
62
- /* Smooth transitions */
63
- transition:
64
- var(--osi-card-transition-border), var(--osi-card-transition-background),
65
- var(--osi-card-transition-shadow) !important;
66
-
67
- /* Text rendering optimization */
68
- -webkit-font-smoothing: antialiased;
69
- -moz-osx-font-smoothing: grayscale;
70
- text-rendering: optimizeLegibility;
71
-
72
- * {
73
- -webkit-font-smoothing: antialiased;
74
- -moz-osx-font-smoothing: grayscale;
75
- text-rendering: optimizeLegibility;
76
- }
77
-
78
- h1 {
79
- transition: opacity 0.2s ease;
80
- }
81
- }
82
-
83
- .ai-card-surface:hover {
84
- @include surface-ai-card-hover;
85
-
86
- /* ========== CARD HOVER - Theme-aware with card-specific effects ========== */
87
- /* Background hover - card-specific (different from sections) */
88
- background: var(--osi-card-background-hover) !important;
89
-
90
- /* Border hover - card-specific accent */
91
- border: var(--osi-card-border-hover) !important;
92
-
93
- /* Box shadow hover - card-specific elevation */
94
- box-shadow: var(--osi-card-shadow-hover) !important;
95
- /* ========== END CARD HOVER ========== */
96
- }
97
-
98
- .ai-card-surface--fullscreen {
99
- /* Fullscreen styling - use SAME background as normal card */
100
- border: var(--osi-card-border-fullscreen) !important;
101
- box-shadow: var(--osi-card-shadow-fullscreen) !important;
102
- background: var(--osi-card-background-fullscreen) !important; /* Same as normal mode */
103
- max-height: none !important;
104
- max-width: none !important;
105
- width: 100% !important;
106
- overflow: visible !important;
107
- padding: var(--osi-card-padding) !important;
108
-
109
- /* Disable hover background change in fullscreen */
110
- &:hover {
111
- background: var(
112
- --osi-card-background-fullscreen
113
- ) !important; /* Keep same background on hover */
114
- border: var(--osi-card-border-fullscreen) !important;
115
- box-shadow: var(--osi-card-shadow-fullscreen) !important;
116
- }
117
-
118
- /* Disable all tilt effects in fullscreen - handled by _tilt.scss */
119
- /* Tilt effects are disabled via .ai-card-surface--fullscreen selector in _tilt.scss */
120
-
121
- /* Remove box-shadow glow from masonry items (sections) in fullscreen */
122
- .masonry-item {
123
- box-shadow: none !important;
124
-
125
- &:hover {
126
- box-shadow: none !important;
127
- }
128
- }
129
-
130
- /* Compact header - invisible container */
131
- .ai-card-header {
132
- padding: 0 !important;
133
- margin: 0 !important;
134
- border: none !important;
135
- background: transparent !important;
136
- box-shadow: none !important;
137
- }
138
-
139
- .ai-card-title {
140
- font-size: var(--text-sm) !important;
141
- }
142
- }
143
-
144
- .ai-card-fullscreen-btn {
145
- display: inline-flex;
146
- align-items: center;
147
- justify-content: center;
148
- width: var(--osi-card-fullscreen-btn-size);
149
- height: var(--osi-card-fullscreen-btn-size);
150
- border-radius: var(--osi-card-fullscreen-btn-radius);
151
- background: var(--osi-card-fullscreen-btn-bg);
152
- border: var(--border-width-default) solid var(--osi-card-fullscreen-btn-border);
153
- color: var(--foreground);
154
- cursor: pointer;
155
- transition: all 0.2s ease;
156
- flex-shrink: 0;
157
-
158
- /* Position absolutely in top-right corner */
159
- position: absolute;
160
- top: var(--osi-card-padding);
161
- right: var(--osi-card-padding);
162
- z-index: 100;
163
- }
164
-
165
- .ai-card-fullscreen-btn:hover {
166
- transform: translateY(calc(var(--motion-distance-xs) * -1));
167
- background: var(--osi-card-fullscreen-btn-bg-hover);
168
- border-color: var(--osi-card-fullscreen-btn-border-hover);
169
- box-shadow: var(--osi-card-fullscreen-btn-shadow);
170
- }
171
-
172
- .ai-card-fullscreen-btn:active {
173
- transform: translateY(0);
174
- }
175
-
176
- .ai-card-fullscreen-btn__icon {
177
- color: currentColor;
178
- }
179
-
180
- .ai-card-header {
181
- position: relative;
182
- z-index: 10;
183
- /* INVISIBLE CONTAINER - No visual styling */
184
- /* NO PADDING - completely removed */
185
- padding: 0 !important;
186
- padding-top: 0 !important;
187
- padding-bottom: 0 !important;
188
- padding-left: 0 !important;
189
- padding-right: 0 !important;
190
- padding-block: 0 !important;
191
- padding-block-start: 0 !important;
192
- padding-block-end: 0 !important;
193
- padding-inline: 0 !important;
194
- padding-inline-start: 0 !important;
195
- padding-inline-end: 0 !important;
196
- margin: 0 !important;
197
- display: flex;
198
- flex-direction: column;
199
- gap: var(--card-element-gap-md);
200
- /* NO BORDER - completely invisible */
201
- border: none !important;
202
- border-top: none !important;
203
- border-bottom: none !important;
204
- border-left: none !important;
205
- border-right: none !important;
206
- border-width: 0 !important;
207
- border-style: none !important;
208
- border-color: transparent !important;
209
- border-image: none !important;
210
- border-block: none !important;
211
- border-block-start: none !important;
212
- border-block-end: none !important;
213
- border-inline: none !important;
214
- border-inline-start: none !important;
215
- border-inline-end: none !important;
216
- /* NO BACKGROUND - completely transparent */
217
- background: transparent !important;
218
- background-color: transparent !important;
219
- backdrop-filter: none !important;
220
- /* NO BOX SHADOW - completely invisible */
221
- box-shadow: none !important;
222
- /* NO BORDER RADIUS - no visual styling */
223
- border-radius: 0 !important;
224
- /* NO OUTLINE - no visual styling */
225
- outline: none !important;
226
- outline-offset: 0 !important;
227
- outline-width: 0 !important;
228
- outline-style: none !important;
229
- outline-color: transparent !important;
230
- }
231
-
232
- .ai-card-header::before {
233
- display: none !important;
234
- border: none !important;
235
- border-top: none !important;
236
- border-bottom: none !important;
237
- border-left: none !important;
238
- border-right: none !important;
239
- border-width: 0 !important;
240
- border-style: none !important;
241
- border-color: transparent !important;
242
- border-image: none !important;
243
- border-block: none !important;
244
- border-inline: none !important;
245
- padding: 0 !important;
246
- padding-block: 0 !important;
247
- padding-inline: 0 !important;
248
- outline: none !important;
249
- outline-width: 0 !important;
250
- outline-style: none !important;
251
- outline-color: transparent !important;
252
- box-shadow: none !important;
253
- }
254
-
255
- .ai-card-header::after {
256
- display: none !important;
257
- border: none !important;
258
- border-top: none !important;
259
- border-bottom: none !important;
260
- border-left: none !important;
261
- border-right: none !important;
262
- border-width: 0 !important;
263
- border-style: none !important;
264
- border-color: transparent !important;
265
- border-image: none !important;
266
- border-block: none !important;
267
- border-inline: none !important;
268
- padding: 0 !important;
269
- padding-block: 0 !important;
270
- padding-inline: 0 !important;
271
- outline: none !important;
272
- outline-width: 0 !important;
273
- outline-style: none !important;
274
- outline-color: transparent !important;
275
- box-shadow: none !important;
276
- }
277
-
278
- .ai-card-title-stack {
279
- display: flex;
280
- flex-direction: column;
281
- gap: var(--card-element-gap-xs);
282
- }
283
-
284
- .ai-card-eyebrow {
285
- font-size: var(--font-card-eyebrow);
286
- letter-spacing: 0.08em;
287
- text-transform: none;
288
- color: var(--osi-card-eyebrow-color);
289
- font-weight: 600;
290
- opacity: 0.9;
291
- }
292
-
293
- /* Removed .ai-card-title-group - content moved up one level */
294
-
295
- .ai-card-title {
296
- font-size: var(--text-lg);
297
- font-weight: 700;
298
- color: var(--foreground);
299
- letter-spacing: -0.01em;
300
- line-height: 1.2;
301
- text-transform: none;
302
-
303
- /* ABSOLUTE NO BORDERS - MAXIMUM SPECIFICITY */
304
- border: 0 !important;
305
- border-width: 0 !important;
306
- border-style: none !important;
307
- border-color: transparent !important;
308
- border-top: 0 !important;
309
- border-right: 0 !important;
310
- border-bottom: 0 !important;
311
- border-left: 0 !important;
312
- border-top: none !important;
313
- border-right: none !important;
314
- border-bottom: none !important;
315
- border-left: none !important;
316
- border-block: none !important;
317
- border-inline: none !important;
318
- border-image: none !important;
319
- border-radius: 0 !important;
320
-
321
- /* NO OUTLINES */
322
- outline: none !important;
323
- outline-width: 0 !important;
324
- outline-style: none !important;
325
- outline-color: transparent !important;
326
- outline-offset: 0 !important;
327
-
328
- /* NO PADDING */
329
- padding: 0 !important;
330
- padding-top: 0 !important;
331
- padding-right: 0 !important;
332
- padding-bottom: 0 !important;
333
- padding-left: 0 !important;
334
- padding-block: 0 !important;
335
- padding-inline: 0 !important;
336
-
337
- /* NO MARGIN */
338
- margin: 0 !important;
339
- margin-top: 0 !important;
340
- margin-right: 0 !important;
341
- margin-bottom: 0 !important;
342
- margin-left: 0 !important;
343
- margin-block: 0 !important;
344
- margin-inline: 0 !important;
345
-
346
- /* NO SHADOWS OR DECORATIONS */
347
- box-shadow: none !important;
348
- text-decoration: none !important;
349
- text-decoration-line: none !important;
350
- text-decoration-style: none !important;
351
- text-decoration-color: transparent !important;
352
- text-underline-offset: 0 !important;
353
- text-decoration-thickness: 0 !important;
354
-
355
- /* NO PSEUDO-ELEMENT BORDERS */
356
- &::before,
357
- &::after {
358
- display: none !important;
359
- border: none !important;
360
- border-width: 0 !important;
361
- border-style: none !important;
362
- border-color: transparent !important;
363
- border-top: none !important;
364
- border-right: none !important;
365
- border-bottom: none !important;
366
- border-left: none !important;
367
- border-block: none !important;
368
- border-inline: none !important;
369
- border-image: none !important;
370
- outline: none !important;
371
- outline-width: 0 !important;
372
- outline-style: none !important;
373
- outline-color: transparent !important;
374
- box-shadow: none !important;
375
- padding: 0 !important;
376
- padding-top: 0 !important;
377
- padding-right: 0 !important;
378
- padding-bottom: 0 !important;
379
- padding-left: 0 !important;
380
- padding-block: 0 !important;
381
- padding-inline: 0 !important;
382
- margin: 0 !important;
383
- content: none !important;
384
- }
385
- }
386
-
387
- .ai-card-type-pill {
388
- display: inline-flex;
389
- align-items: center;
390
- gap: var(--card-element-gap-sm);
391
- padding: var(--tag-padding-sm);
392
- border-radius: var(--radius-full);
393
- border: var(--border-width-default) solid var(--osi-card-type-pill-border);
394
- background: var(--osi-card-type-pill-bg);
395
- text-transform: none;
396
- letter-spacing: 0.05em;
397
- font-size: var(--font-card-meta);
398
- font-weight: 600;
399
- color: var(--osi-card-type-pill-color);
400
- }
401
-
402
- .ai-card-meta {
403
- display: flex;
404
- flex-wrap: wrap;
405
- align-items: center;
406
- gap: var(--card-element-gap-md);
407
- text-transform: none;
408
- font-size: var(--font-card-meta);
409
- letter-spacing: 0.05em;
410
- color: var(--osi-card-meta-color);
411
- }
412
-
413
- .ai-card-meta__chip {
414
- display: inline-flex;
415
- align-items: stretch;
416
- gap: var(--card-element-gap-md);
417
- padding: var(--tag-padding-sm);
418
- border-radius: var(--radius-full);
419
- border: var(--border-width-default) solid var(--osi-card-meta-chip-border);
420
- background: var(--osi-card-meta-chip-bg);
421
- }
422
-
423
- .ai-card-meta__chip-dot {
424
- width: var(--icon-xs);
425
- height: var(--icon-xs);
426
- border-radius: var(--radius-full);
427
- background: var(--osi-card-meta-chip-dot-primary);
428
- box-shadow: var(--osi-card-meta-chip-dot-shadow);
429
- }
430
-
431
- .ai-card-meta__chip-dot--primary {
432
- background: var(--osi-card-meta-chip-dot-primary);
433
- }
434
-
435
- .ai-card-meta__chip-dot--secondary {
436
- background: var(--osi-card-meta-chip-dot-secondary);
437
- }
438
-
439
- .ai-card-meta__chip-dot--tertiary {
440
- background: var(--osi-card-meta-chip-dot-tertiary);
441
- }
442
-
443
- .ai-card-meta__chip-content {
444
- display: flex;
445
- flex-direction: column;
446
- gap: 0;
447
- line-height: 1;
448
- }
449
-
450
- .ai-card-meta__chip-label {
451
- font-size: 0.48rem;
452
- letter-spacing: 0.05em;
453
- text-transform: none;
454
- color: var(--osi-card-meta-color);
455
- font-weight: 600;
456
- }
457
-
458
- .ai-card-meta__chip-value {
459
- font-size: var(--font-card-meta-value);
460
- font-weight: 600;
461
- color: var(--foreground);
462
- letter-spacing: 0.01em;
463
- }
464
-
465
- .ai-card-body {
466
- position: relative;
467
- z-index: 10;
468
- flex: 1;
469
- /* INVISIBLE CONTAINER - No visual styling */
470
- /* NO PADDING - completely removed */
471
- padding: 0 !important;
472
- padding-top: 0 !important;
473
- padding-bottom: 0 !important;
474
- padding-left: 0 !important;
475
- padding-right: 0 !important;
476
- padding-block: 0 !important;
477
- padding-block-start: 0 !important;
478
- padding-block-end: 0 !important;
479
- padding-inline: 0 !important;
480
- padding-inline-start: 0 !important;
481
- padding-inline-end: 0 !important;
482
- margin: 0 !important;
483
- margin-bottom: 0 !important;
484
- display: flex;
485
- flex-direction: column;
486
- gap: var(--osi-card-body-gap); /* Constant gap between sections */
487
- min-height: 0;
488
- /* Allow content to flow properly - no overflow clipping */
489
- overflow: visible;
490
- /* NO BORDER - completely invisible */
491
- border: none !important;
492
- border-top: none !important;
493
- border-bottom: none !important;
494
- border-left: none !important;
495
- border-right: none !important;
496
- border-width: 0 !important;
497
- border-style: none !important;
498
- border-color: transparent !important;
499
- border-image: none !important;
500
- border-block: none !important;
501
- border-block-start: none !important;
502
- border-block-end: none !important;
503
- border-inline: none !important;
504
- border-inline-start: none !important;
505
- border-inline-end: none !important;
506
- /* NO BACKGROUND - completely transparent */
507
- background: transparent !important;
508
- background-color: transparent !important;
509
- backdrop-filter: none !important;
510
- /* NO BOX SHADOW - completely invisible */
511
- box-shadow: none !important;
512
- /* NO BORDER RADIUS - no visual styling */
513
- border-radius: 0 !important;
514
- /* NO OUTLINE - no visual styling */
515
- outline: none !important;
516
- outline-offset: 0 !important;
517
- outline-width: 0 !important;
518
- outline-style: none !important;
519
- outline-color: transparent !important;
520
- }
521
-
522
- .ai-card-body::before {
523
- display: none !important;
524
- border: none !important;
525
- border-top: none !important;
526
- border-bottom: none !important;
527
- border-left: none !important;
528
- border-right: none !important;
529
- border-width: 0 !important;
530
- border-style: none !important;
531
- border-color: transparent !important;
532
- border-image: none !important;
533
- border-block: none !important;
534
- border-inline: none !important;
535
- padding: 0 !important;
536
- padding-block: 0 !important;
537
- padding-inline: 0 !important;
538
- outline: none !important;
539
- outline-width: 0 !important;
540
- outline-style: none !important;
541
- outline-color: transparent !important;
542
- box-shadow: none !important;
543
- }
544
-
545
- .ai-card-body::after {
546
- display: none !important;
547
- border: none !important;
548
- border-top: none !important;
549
- border-bottom: none !important;
550
- border-left: none !important;
551
- border-right: none !important;
552
- border-width: 0 !important;
553
- border-style: none !important;
554
- border-color: transparent !important;
555
- border-image: none !important;
556
- border-block: none !important;
557
- border-inline: none !important;
558
- padding: 0 !important;
559
- padding-block: 0 !important;
560
- padding-inline: 0 !important;
561
- outline: none !important;
562
- outline-width: 0 !important;
563
- outline-style: none !important;
564
- outline-color: transparent !important;
565
- box-shadow: none !important;
566
- }
567
-
568
- /* Actions are now direct children of .ai-card-body - no wrapper container */
569
- /* Removed .ai-card-actions container - actions are now direct children */
570
-
571
- .ai-card-action {
572
- position: relative;
573
- overflow: hidden;
574
- display: inline-flex;
575
- align-items: center;
576
- justify-content: center;
577
- gap: var(--card-element-gap-xl);
578
- padding: var(--space-2) var(--space-5);
579
- border-radius: var(--radius-md);
580
- font-weight: 600;
581
- font-size: var(--font-card-action, 0.875rem);
582
- letter-spacing: 0.01em;
583
- border: var(--border-width-default) solid transparent;
584
- text-transform: none;
585
- cursor: pointer;
586
- transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
587
- }
588
-
589
- .ai-card-action--primary {
590
- background: var(--osi-card-action-primary-bg);
591
- color: var(--osi-card-action-primary-color);
592
- border-color: var(--osi-card-action-primary-border);
593
- box-shadow: var(--osi-card-action-primary-shadow);
594
- }
595
-
596
- .ai-card-action--primary:hover {
597
- transform: translateY(calc(var(--motion-distance-xs) * -0.5));
598
- box-shadow: var(--osi-card-action-primary-shadow-hover);
599
- background: var(--osi-card-action-primary-bg-hover);
600
- border-color: var(--osi-card-action-primary-bg);
601
- }
602
-
603
- .ai-card-action--secondary {
604
- background: var(--osi-card-action-secondary-bg);
605
- color: var(--osi-card-action-secondary-color);
606
- border-color: var(--osi-card-action-secondary-border);
607
- box-shadow: var(--osi-card-action-secondary-shadow);
608
- }
609
-
610
- .ai-card-action--secondary:hover {
611
- transform: translateY(calc(var(--motion-distance-xs) * -0.5));
612
- border-color: var(--osi-card-action-secondary-border-hover);
613
- box-shadow: var(--osi-card-action-secondary-shadow-hover);
614
- background: var(--osi-card-action-secondary-bg-hover);
615
- }
616
-
617
- .ai-card-action__shine {
618
- position: absolute;
619
- inset: 0;
620
- background: var(--osi-card-shine-gradient-primary);
621
- opacity: 0;
622
- transition: opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);
623
- pointer-events: none;
624
- border-radius: inherit;
625
- }
626
-
627
- .ai-card-action:hover .ai-card-action__shine {
628
- opacity: 1;
629
- }
630
-
631
- .ai-card-action--primary .ai-card-action__shine {
632
- background: var(--osi-card-shine-gradient-primary);
633
- }
634
-
635
- .ai-card-action--secondary .ai-card-action__shine {
636
- background: var(--osi-card-shine-gradient-secondary);
637
- }
638
-
639
- .ai-card-action__content {
640
- position: relative;
641
- z-index: 10;
642
- display: inline-flex;
643
- align-items: center;
644
- gap: var(--card-element-gap-lg);
645
- }
646
-
647
- .ai-card-action__icon {
648
- color: currentColor;
649
- opacity: 0.9;
650
- transition:
651
- transform 300ms cubic-bezier(0.4, 0, 0.2, 1),
652
- opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);
653
- }
654
-
655
- .ai-card-action__label {
656
- font-weight: 600;
657
- letter-spacing: 0.01em;
658
- transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
659
- }
660
-
661
- .ai-card-action:hover .ai-card-action__icon {
662
- transform: translateX(var(--motion-distance-xs));
663
- opacity: 1;
664
- }
665
-
666
- .ai-card-action:hover .ai-card-action__label {
667
- transform: translateX(calc(var(--motion-distance-xs) * 0.5));
668
- }
669
-
670
- .ai-card-footnote {
671
- margin-top: auto;
672
- /* Add bottom margin for proper spacing */
673
- margin-bottom: 0 !important;
674
- /* NO PADDING - compact design */
675
- padding: 0 !important;
676
- padding-bottom: 0 !important;
677
- /* NO BORDER - removed border */
678
- border: none !important;
679
- border-top: none !important;
680
- text-align: center;
681
- /* MUCH SMALLER FONT - reduced font size */
682
- font-size: var(--text-xs) !important; /* Reduced from default */
683
- letter-spacing: 0.08em;
684
- text-transform: none;
685
- color: var(--osi-card-footnote-color);
686
- line-height: 1.2;
687
- }
688
-
689
- /* All sizing is now continuous via clamp() - no discrete breakpoints */
690
-
691
- @media (prefers-reduced-motion: reduce) {
692
- .ai-card-surface {
693
- transition: none !important;
694
- transform: none !important;
695
- box-shadow: var(--card-box-shadow) !important;
696
- }
697
-
698
- .ai-card-surface::before {
699
- opacity: 0 !important;
700
- }
701
-
702
- .ai-card-surface:hover {
703
- transform: none !important;
704
- }
705
- }
706
-
707
- /* Light theme - handled automatically by theme system */
708
- /* No overrides needed - theme variables handle light/dark/day/night */
709
- /* Variables used:
710
- * - var(--ai-card-background) adapts to theme
711
- * - var(--theme-ai-card-border) adapts to theme
712
- * - var(--theme-ai-card-box-shadow) adapts to theme
713
- *
714
- * Theme definitions in tokens/_master.scss:
715
- * - Light theme: --theme-ai-card-background: #ffffff
716
- * - Dark theme: --theme-ai-card-background: #141414
717
- * - Base theme: --theme-ai-card-background: var(--background)
718
- */