osi-cards-lib 1.5.41 → 1.5.43
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 +1 -1
- package/fesm2022/osi-cards-lib.mjs +6109 -3631
- package/fesm2022/osi-cards-lib.mjs.map +1 -1
- package/index.d.ts +211 -270
- package/package.json +4 -3
- package/scripts/setup-angular-styles.js +1 -0
- package/styles/bundles/_ai-card.scss +11 -4
- package/styles/bundles/_card-skeleton.scss +1 -1
- package/styles/components/_ai-card-renderer.scss +0 -2
- package/styles/components/_badges.scss +1 -2
- package/styles/components/_card-actions.scss +5 -4
- package/styles/components/_component-styles.scss +1 -1
- package/styles/components/cards/_ai-card.scss +7 -13
- package/styles/components/sections/_all-sections.generated.scss +0 -3
- package/styles/components/sections/_all-sections.scss +88 -64
- package/styles/components/sections/_compact-mixins.scss +9 -8
- package/styles/components/sections/_component-mixins.scss +40 -11
- package/styles/components/sections/_design-system.scss +96 -11
- package/styles/components/sections/_design-tokens.scss +1 -1
- package/styles/components/sections/_master-compact-system.scss +0 -17
- package/styles/components/sections/_minimalistic-design.scss +1 -4
- package/styles/components/sections/_modern-effects.scss +1 -3
- package/styles/components/sections/_modern-sections.scss +13 -69
- package/styles/components/sections/_section-animations.scss +158 -77
- package/styles/components/sections/_section-shell.scss +39 -9
- package/styles/components/sections/_section-types.generated.scss +0 -3
- package/styles/components/sections/_sections-all.scss +7 -0
- package/styles/components/sections/_sections-base.scss +340 -64
- package/styles/components/sections/_unified-section-style.scss +17 -44
- package/styles/components/sections/_visual-effects-library.scss +3 -3
- package/styles/core/_bootstrap-reset.scss +1 -1
- package/styles/core/_global-unified.scss +2 -6
- package/styles/core/_mixins.scss +4 -4
- package/styles/core/_surface-layers.scss +20 -11
- package/styles/design-system/_section-base.scss +9 -32
- package/styles/design-system/_tokens.scss +68 -6
- package/styles/design-system/_unified-sections.scss +21 -42
- package/styles/layout/_masonry.scss +26 -32
- package/styles/layout/_tilt.scss +3 -3
- package/styles/mixins/_section-mixins.scss +2 -2
- package/styles/reset/_shadow-reset.scss +3 -7
- package/styles/responsive.scss +9 -7
- package/styles/tokens/_master.scss +271 -79
- package/styles/tokens/_section-tokens.generated.scss +0 -7
package/styles/responsive.scss
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* Breakpoints and responsive utilities for cards and sections.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
@use "sass:map";
|
|
8
|
+
|
|
7
9
|
// ============================================
|
|
8
10
|
// Breakpoint Variables
|
|
9
11
|
// ============================================
|
|
@@ -23,8 +25,8 @@ $breakpoints: (
|
|
|
23
25
|
|
|
24
26
|
/// Media query for minimum width (mobile-first)
|
|
25
27
|
@mixin responsive($breakpoint) {
|
|
26
|
-
@if map
|
|
27
|
-
@media (min-width: map
|
|
28
|
+
@if map.has-key($breakpoints, $breakpoint) {
|
|
29
|
+
@media (min-width: map.get($breakpoints, $breakpoint)) {
|
|
28
30
|
@content;
|
|
29
31
|
}
|
|
30
32
|
} @else {
|
|
@@ -36,8 +38,8 @@ $breakpoints: (
|
|
|
36
38
|
|
|
37
39
|
/// Media query for maximum width
|
|
38
40
|
@mixin responsive-down($breakpoint) {
|
|
39
|
-
@if map
|
|
40
|
-
@media (max-width: #{map
|
|
41
|
+
@if map.has-key($breakpoints, $breakpoint) {
|
|
42
|
+
@media (max-width: #{map.get($breakpoints, $breakpoint) - 1px}) {
|
|
41
43
|
@content;
|
|
42
44
|
}
|
|
43
45
|
} @else {
|
|
@@ -49,8 +51,8 @@ $breakpoints: (
|
|
|
49
51
|
|
|
50
52
|
/// Media query for range
|
|
51
53
|
@mixin responsive-between($min, $max) {
|
|
52
|
-
$min-width: if(map
|
|
53
|
-
$max-width: if(map
|
|
54
|
+
$min-width: if(map.has-key($breakpoints, $min), map.get($breakpoints, $min), $min);
|
|
55
|
+
$max-width: if(map.has-key($breakpoints, $max), map.get($breakpoints, $max), $max);
|
|
54
56
|
|
|
55
57
|
@media (min-width: $min-width) and (max-width: #{$max-width - 1px}) {
|
|
56
58
|
@content;
|
|
@@ -169,7 +171,7 @@ $breakpoints: (
|
|
|
169
171
|
}
|
|
170
172
|
|
|
171
173
|
.metric-value {
|
|
172
|
-
font-size:
|
|
174
|
+
font-size: var(--text-2xl);
|
|
173
175
|
}
|
|
174
176
|
}
|
|
175
177
|
|
|
@@ -466,15 +466,14 @@ $breakpoints: (
|
|
|
466
466
|
@mixin osi-card-typography($variant: "demo") {
|
|
467
467
|
// Both demo and integration now use the same compact values
|
|
468
468
|
// Section Titles
|
|
469
|
-
--section-title-font-size: 0.92rem;
|
|
469
|
+
--section-title-font-size: calc(0.92rem - 8px); // Reduced by 2px
|
|
470
470
|
--section-title-font-weight: 700;
|
|
471
471
|
--section-title-letter-spacing: -0.02em;
|
|
472
472
|
--section-title-line-height: 1.3;
|
|
473
473
|
--section-title-text-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
|
|
474
474
|
|
|
475
475
|
// Card Header Title (main card title - larger)
|
|
476
|
-
--card-header-title-font-size:
|
|
477
|
-
--card-header-title-font-size-mobile: 1rem; /* 16px - mobile (reduced by 2px from 18px) */
|
|
476
|
+
--card-header-title-font-size: 0.875rem; /* 14px - fixed size for all screen sizes */
|
|
478
477
|
--card-header-title-font-weight: 700;
|
|
479
478
|
--card-header-title-letter-spacing: -0.02em;
|
|
480
479
|
--card-header-title-line-height: 1.3;
|
|
@@ -487,7 +486,7 @@ $breakpoints: (
|
|
|
487
486
|
--card-title-text-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);
|
|
488
487
|
|
|
489
488
|
// Card Subtitles
|
|
490
|
-
--card-subtitle-font-size: 0.
|
|
489
|
+
--card-subtitle-font-size: 0.525rem;
|
|
491
490
|
--card-subtitle-font-weight: 500;
|
|
492
491
|
--card-subtitle-letter-spacing: 0.015em;
|
|
493
492
|
--card-subtitle-line-height: 1.3;
|
|
@@ -526,31 +525,39 @@ $breakpoints: (
|
|
|
526
525
|
|
|
527
526
|
/// Generate card layout tokens
|
|
528
527
|
@mixin osi-card-layout() {
|
|
529
|
-
--card-main-padding:
|
|
528
|
+
--card-main-padding: 8px;
|
|
530
529
|
--card-padding-vertical: 12px;
|
|
531
|
-
--card-padding-horizontal:
|
|
532
|
-
--card-padding:
|
|
530
|
+
--card-padding-horizontal: 12px;
|
|
531
|
+
--card-padding: 12px;
|
|
533
532
|
--card-padding-large: 20px;
|
|
534
|
-
--section-padding:
|
|
533
|
+
--section-padding: 8px;
|
|
535
534
|
--section-container-padding: 12px;
|
|
536
535
|
--card-min-height: auto;
|
|
537
|
-
--card-gap:
|
|
536
|
+
--card-gap: 10px;
|
|
538
537
|
--card-gap-large: 10px;
|
|
539
538
|
--card-nested-gap: 3px;
|
|
540
|
-
--section-header-gap:
|
|
539
|
+
--section-header-gap: 2px;
|
|
541
540
|
--section-header-padding-bottom: 0px;
|
|
542
541
|
--section-title-margin-bottom: 0;
|
|
543
542
|
--card-border-radius: 12px;
|
|
544
543
|
--card-border-radius-large: 16px;
|
|
545
|
-
--section-card-gap:
|
|
544
|
+
--section-card-gap: 8px;
|
|
546
545
|
--section-card-border-radius: 10px;
|
|
547
546
|
|
|
548
|
-
// Element gaps within cards
|
|
549
|
-
--
|
|
550
|
-
--card-element-gap-
|
|
551
|
-
--
|
|
552
|
-
--card-element-gap-
|
|
553
|
-
--
|
|
547
|
+
// Element gaps within cards - DEPRECATED: Use --osi-section-item-gap-* instead
|
|
548
|
+
// @deprecated Use --osi-section-item-gap-xs instead
|
|
549
|
+
--card-element-gap-xs: var(--osi-section-item-gap-xs, 2px);
|
|
550
|
+
// @deprecated Use --osi-section-item-gap-sm instead
|
|
551
|
+
--card-element-gap-sm: var(--osi-section-item-gap-sm, 3px);
|
|
552
|
+
// @deprecated Use --osi-section-item-gap-md instead
|
|
553
|
+
--card-element-gap-md: var(--osi-section-item-gap-md, 4px);
|
|
554
|
+
// @deprecated Use --osi-section-item-gap-lg instead
|
|
555
|
+
--card-element-gap-lg: var(--osi-section-item-gap-lg, 12px);
|
|
556
|
+
// @deprecated Use --osi-section-item-gap-xl instead
|
|
557
|
+
--card-element-gap-xl: var(--osi-section-item-gap-xl, 8px);
|
|
558
|
+
|
|
559
|
+
// @deprecated Use --osi-section-item-gap instead
|
|
560
|
+
--card-gap: var(--osi-section-item-gap, 10px);
|
|
554
561
|
|
|
555
562
|
// Border widths
|
|
556
563
|
--border-width-default: 1px;
|
|
@@ -587,8 +594,14 @@ $breakpoints: (
|
|
|
587
594
|
// Section-specific gaps
|
|
588
595
|
--section-grid-gap: var(--gap-md);
|
|
589
596
|
--section-stack-gap: var(--gap-lg);
|
|
590
|
-
--section-item-gap
|
|
591
|
-
--section-item-
|
|
597
|
+
// @deprecated Use --osi-section-item-gap instead
|
|
598
|
+
--section-item-gap: var(--osi-section-item-gap, var(--gap-sm));
|
|
599
|
+
// @deprecated Use --osi-section-item-padding instead
|
|
600
|
+
--section-item-padding: var(--osi-section-item-padding-normal, var(--gap-lg));
|
|
601
|
+
|
|
602
|
+
// Renamed from --section-element-gap for consistency
|
|
603
|
+
// @deprecated Use --osi-section-item-gap instead
|
|
604
|
+
--section-element-gap: var(--osi-section-item-gap);
|
|
592
605
|
--metric-item-padding: 10px 12px;
|
|
593
606
|
--list-item-padding: 10px 12px;
|
|
594
607
|
}
|
|
@@ -639,8 +652,17 @@ $breakpoints: (
|
|
|
639
652
|
--osi-card-backdrop-filter: var(--theme-ai-card-backdrop-filter, blur(12px));
|
|
640
653
|
|
|
641
654
|
// Card Border
|
|
642
|
-
--osi-card-border: var(--theme-ai-card-border, 1px solid #{$
|
|
643
|
-
|
|
655
|
+
--osi-card-border: var(--theme-ai-card-border, 1px solid #{$brand-color-20});
|
|
656
|
+
@supports (color: color-mix(in srgb, black 50%, white)) {
|
|
657
|
+
--osi-card-border: var(
|
|
658
|
+
--theme-ai-card-border,
|
|
659
|
+
1px solid color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent)
|
|
660
|
+
);
|
|
661
|
+
}
|
|
662
|
+
--osi-card-border-hover: var(
|
|
663
|
+
--theme-ai-card-border-hover,
|
|
664
|
+
1px solid var(--color-brand, #{$brand-color})
|
|
665
|
+
);
|
|
644
666
|
--osi-card-border-fullscreen: none;
|
|
645
667
|
|
|
646
668
|
// Card Shadow
|
|
@@ -649,11 +671,11 @@ $breakpoints: (
|
|
|
649
671
|
--osi-card-shadow-fullscreen: none;
|
|
650
672
|
|
|
651
673
|
// Card Spacing - Padding
|
|
652
|
-
--osi-card-padding: var(--card-main-padding,
|
|
653
|
-
--osi-card-padding-top: var(--card-main-padding,
|
|
654
|
-
--osi-card-padding-bottom: var(--card-main-padding,
|
|
655
|
-
--osi-card-padding-left: var(--card-main-padding,
|
|
656
|
-
--osi-card-padding-right: var(--card-main-padding,
|
|
674
|
+
--osi-card-padding: var(--card-main-padding, 8px);
|
|
675
|
+
--osi-card-padding-top: var(--card-main-padding, 8px);
|
|
676
|
+
--osi-card-padding-bottom: var(--card-main-padding, 8px);
|
|
677
|
+
--osi-card-padding-left: var(--card-main-padding, 8px);
|
|
678
|
+
--osi-card-padding-right: var(--card-main-padding, 8px);
|
|
657
679
|
--osi-card-padding-mobile: 4px; // Fixed padding - no responsive behavior
|
|
658
680
|
|
|
659
681
|
// Card Spacing - Margins
|
|
@@ -663,9 +685,9 @@ $breakpoints: (
|
|
|
663
685
|
--osi-card-margin-right: 0;
|
|
664
686
|
|
|
665
687
|
// Card Spacing - Gaps
|
|
666
|
-
--osi-card-gap: var(--section-card-gap,
|
|
667
|
-
--osi-card-body-gap: var(--space-
|
|
668
|
-
--osi-card-grid-gap: var(--section-card-gap,
|
|
688
|
+
--osi-card-gap: var(--section-card-gap, 8px);
|
|
689
|
+
--osi-card-body-gap: var(--space-4, 8px);
|
|
690
|
+
--osi-card-grid-gap: var(--section-card-gap, 8px);
|
|
669
691
|
|
|
670
692
|
// Card Border Radius
|
|
671
693
|
--osi-card-border-radius: var(--card-border-radius);
|
|
@@ -766,6 +788,16 @@ $breakpoints: (
|
|
|
766
788
|
--osi-section-border: var(--theme-section-border, 1px solid rgba(0, 0, 0, 0.06));
|
|
767
789
|
--osi-section-border-hover: var(--theme-section-border-hover, 1px solid #{$brand-color-15});
|
|
768
790
|
|
|
791
|
+
// Section Border Hover Enhanced (theme-aware grey, amplified by 30%)
|
|
792
|
+
// Light theme: rgba(0, 0, 0, 0.1) → rgba(0, 0, 0, 0.13)
|
|
793
|
+
// Dark theme: rgba(255, 255, 255, 0.1) → rgba(255, 255, 255, 0.13)
|
|
794
|
+
// This is just the color value (not the full border property) for use with border-color
|
|
795
|
+
// Default fallback for light theme
|
|
796
|
+
--osi-section-border-hover-enhanced-color: var(
|
|
797
|
+
--theme-section-border-hover-enhanced-color,
|
|
798
|
+
rgba(0, 0, 0, 0.13)
|
|
799
|
+
);
|
|
800
|
+
|
|
769
801
|
// Section Shadow
|
|
770
802
|
--osi-section-shadow: var(--theme-section-box-shadow, var(--shadow-md));
|
|
771
803
|
--osi-section-shadow-hover: var(
|
|
@@ -773,6 +805,15 @@ $breakpoints: (
|
|
|
773
805
|
var(--shadow-lg),
|
|
774
806
|
var(--shadow-glow-sm)
|
|
775
807
|
);
|
|
808
|
+
|
|
809
|
+
// Section Shadow Hover Enhanced (gentle shadow with cool color, 10% less contrasty than border)
|
|
810
|
+
// Uses a cool blue color (rgb(59, 130, 246) - blue-500)
|
|
811
|
+
// Border is at 0.13 opacity, shadow is 10% less contrasty = 0.13 * 0.9 = 0.117 opacity
|
|
812
|
+
--osi-section-shadow-hover-enhanced: var(
|
|
813
|
+
--theme-section-shadow-hover-enhanced,
|
|
814
|
+
var(--shadow-lg),
|
|
815
|
+
0 0 16px rgba(59, 130, 246, 0.117)
|
|
816
|
+
);
|
|
776
817
|
--osi-section-shadow-fullscreen: none;
|
|
777
818
|
|
|
778
819
|
// Section Spacing - Padding
|
|
@@ -800,12 +841,28 @@ $breakpoints: (
|
|
|
800
841
|
// Section Border Radius
|
|
801
842
|
--osi-section-border-radius: var(--section-card-border-radius);
|
|
802
843
|
|
|
803
|
-
// Section Typography
|
|
804
|
-
|
|
805
|
-
--osi-section-title-font-
|
|
806
|
-
--osi-section-title-
|
|
807
|
-
--osi-section-title-
|
|
808
|
-
--osi-section-title-
|
|
844
|
+
// Section Typography - Using OSI Font Theme Variables
|
|
845
|
+
// Section Title Font Sizes (mapped to heading levels) - Reduced by 2px each
|
|
846
|
+
--osi-section-title-font-size-xs: 0.625rem; // h6: 10px (reduced from 12px)
|
|
847
|
+
--osi-section-title-font-size-sm: 0.75rem; // h5: 12px (reduced from 14px)
|
|
848
|
+
--osi-section-title-font-size-md: 0.875rem; // h4: 14px (reduced from 16px)
|
|
849
|
+
--osi-section-title-font-size-lg: 1.125rem; // h3: 18px (reduced from 20px) - default
|
|
850
|
+
--osi-section-title-font-size-xl: 1.375rem; // h2: 22px (reduced from 24px)
|
|
851
|
+
--osi-section-title-font-size-2xl: 1.75rem; // h1: 28px (reduced from 30px)
|
|
852
|
+
|
|
853
|
+
// Default section title (h3) - Reduced from lg to md for better proportions
|
|
854
|
+
--osi-section-title-font-size: var(--osi-section-title-font-size-md);
|
|
855
|
+
|
|
856
|
+
// Section Title Font Weight - Using OSI Font Weights
|
|
857
|
+
--osi-section-title-font-weight: var(--osi-font-bold); // 700
|
|
858
|
+
|
|
859
|
+
// Section Title Other Properties - Using OSI Theme Variables
|
|
860
|
+
--osi-section-title-letter-spacing: var(--osi-tracking-tight); // -0.025em
|
|
861
|
+
--osi-section-title-line-height: var(--osi-leading-snug); // 1.375
|
|
862
|
+
// Use foreground directly from theme mixins for maximum contrast
|
|
863
|
+
// Theme mixins set --foreground to dark (#1c1c1f) in light theme and white (#ffffff) in dark theme
|
|
864
|
+
// Fallback to dark color for light themes if theme mixin hasn't been called
|
|
865
|
+
--osi-section-title-color: var(--foreground, #1c1c1f);
|
|
809
866
|
--osi-section-title-margin-bottom: var(--section-title-margin-bottom);
|
|
810
867
|
--osi-section-title-underline-length: var(--space-8);
|
|
811
868
|
--osi-section-title-underline-hover-length: var(--space-10);
|
|
@@ -815,8 +872,12 @@ $breakpoints: (
|
|
|
815
872
|
// Fallback for browsers without color-mix support
|
|
816
873
|
--osi-section-title-hover-color: var(--color-brand);
|
|
817
874
|
|
|
818
|
-
|
|
819
|
-
--osi-section-description-
|
|
875
|
+
// Section Description Typography - Using OSI Font Scale
|
|
876
|
+
--osi-section-description-font-size: 0.75rem; // 12px (reduced from 14px by 2px)
|
|
877
|
+
--osi-section-description-font-weight: var(--osi-font-normal); // 400
|
|
878
|
+
--osi-section-description-line-height: var(--osi-leading-relaxed); // 1.625
|
|
879
|
+
--osi-section-description-color: var(--osi-muted-foreground);
|
|
880
|
+
--osi-section-description-color-hover: var(--osi-foreground);
|
|
820
881
|
|
|
821
882
|
// Section Accent
|
|
822
883
|
--osi-section-accent: var(--section-accent, var(--accent, #{$osi-color-brand}));
|
|
@@ -878,20 +939,44 @@ $breakpoints: (
|
|
|
878
939
|
/// Generate OSI Section Item component tokens (--osi-section-item-*)
|
|
879
940
|
/// SINGLE SOURCE OF TRUTH for all section item/field styling variables
|
|
880
941
|
@mixin osi-section-item-tokens() {
|
|
881
|
-
// Section Item Background
|
|
942
|
+
// Section Item Background (Single Source of Truth)
|
|
943
|
+
// Background hierarchy: Card → Section → Item
|
|
944
|
+
// - Card background: Used for entire card container (--osi-card-background)
|
|
945
|
+
// - Section background: Used for section wrapper (--osi-section-background)
|
|
946
|
+
// - Item background: Used for individual items/fields (--osi-section-item-background) ← THIS
|
|
882
947
|
--osi-section-item-background: var(--theme-section-item-background, var(--card-section-bg));
|
|
883
948
|
--osi-section-item-background-hover: var(
|
|
884
949
|
--theme-section-item-background-hover,
|
|
885
950
|
var(--card-section-bg)
|
|
886
951
|
);
|
|
887
952
|
|
|
888
|
-
//
|
|
953
|
+
// Background usage guidelines:
|
|
954
|
+
// - Always use --osi-section-item-background for item/field backgrounds
|
|
955
|
+
// - Do NOT use --card-background for item styling (different purpose)
|
|
956
|
+
// - Use --osi-section-item-background-hover for consistent hover states
|
|
957
|
+
|
|
958
|
+
// Section Item Border (Single Source of Truth)
|
|
889
959
|
--osi-section-item-border: var(--theme-section-item-border, 1px solid rgba(0, 0, 0, 0.06));
|
|
890
960
|
--osi-section-item-border-hover: var(
|
|
891
961
|
--theme-section-item-border-hover,
|
|
892
962
|
1px solid #{$brand-color-08}
|
|
893
963
|
);
|
|
894
964
|
|
|
965
|
+
// Section Item Border Hover Enhanced (50% stronger than section hover)
|
|
966
|
+
// Section border: 0.13 opacity, Section item border: 0.13 × 1.5 = 0.195 opacity
|
|
967
|
+
// Light theme: rgba(0, 0, 0, 0.195), Dark theme: rgba(255, 255, 255, 0.195)
|
|
968
|
+
// This is just the color value (not the full border property) for use with border-color
|
|
969
|
+
--osi-section-item-border-hover-enhanced-color: var(
|
|
970
|
+
--theme-section-item-border-hover-enhanced-color,
|
|
971
|
+
rgba(0, 0, 0, 0.195)
|
|
972
|
+
);
|
|
973
|
+
|
|
974
|
+
// Standardized border width
|
|
975
|
+
--osi-section-item-border-width: var(--border-width-default, 1px);
|
|
976
|
+
|
|
977
|
+
// Standardized border style
|
|
978
|
+
--osi-section-item-border-style: solid;
|
|
979
|
+
|
|
895
980
|
// Section Item Shadow
|
|
896
981
|
--osi-section-item-shadow: var(--theme-section-item-box-shadow, var(--shadow-sm));
|
|
897
982
|
--osi-section-item-shadow-hover: var(
|
|
@@ -900,47 +985,100 @@ $breakpoints: (
|
|
|
900
985
|
var(--shadow-glow-sm)
|
|
901
986
|
);
|
|
902
987
|
|
|
903
|
-
// Section Item
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
--osi-section-item-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
988
|
+
// Section Item Shadow Hover Enhanced (50% stronger than section hover)
|
|
989
|
+
// Section shadow: 0.117 opacity, Section item shadow: 0.117 × 1.5 = 0.1755 opacity
|
|
990
|
+
// Uses cool blue color (rgb(59, 130, 246) - blue-500)
|
|
991
|
+
--osi-section-item-shadow-hover-enhanced: var(
|
|
992
|
+
--theme-section-item-shadow-hover-enhanced,
|
|
993
|
+
var(--shadow-lg),
|
|
994
|
+
0 0 16px rgba(59, 130, 246, 0.1755)
|
|
995
|
+
);
|
|
911
996
|
|
|
912
|
-
// Section Item Spacing -
|
|
997
|
+
// Section Item Spacing - Padding (Single Source of Truth)
|
|
998
|
+
// Base padding value
|
|
999
|
+
--osi-section-item-padding: var(--section-item-padding, 12px);
|
|
1000
|
+
--osi-section-item-padding-top: var(--osi-section-item-padding);
|
|
1001
|
+
--osi-section-item-padding-bottom: var(--osi-section-item-padding);
|
|
1002
|
+
--osi-section-item-padding-left: var(--osi-section-item-padding);
|
|
1003
|
+
--osi-section-item-padding-right: var(--osi-section-item-padding);
|
|
1004
|
+
|
|
1005
|
+
// Responsive padding variants
|
|
1006
|
+
--osi-section-item-padding-compact: 10px;
|
|
1007
|
+
--osi-section-item-padding-normal: 16px;
|
|
1008
|
+
--osi-section-item-padding-spacious: 20px;
|
|
1009
|
+
|
|
1010
|
+
// Specialized padding variants (for backward compatibility)
|
|
1011
|
+
--osi-section-item-metric-padding: var(--metric-item-padding, 10px 12px);
|
|
1012
|
+
--osi-section-item-list-padding: var(--list-item-padding, 10px 12px);
|
|
1013
|
+
|
|
1014
|
+
// Section Item Spacing - Margins (Standardized)
|
|
1015
|
+
// By default, items use padding instead of margins for spacing
|
|
1016
|
+
// Margins should only be used for special layout cases
|
|
913
1017
|
--osi-section-item-margin-top: 0;
|
|
914
1018
|
--osi-section-item-margin-bottom: 0;
|
|
915
1019
|
--osi-section-item-margin-left: 0;
|
|
916
1020
|
--osi-section-item-margin-right: 0;
|
|
917
1021
|
|
|
918
|
-
//
|
|
919
|
-
--osi-section-item-
|
|
920
|
-
--osi-section-item-
|
|
921
|
-
|
|
922
|
-
|
|
1022
|
+
// Margin variants for special cases
|
|
1023
|
+
--osi-section-item-margin-xs: 2px;
|
|
1024
|
+
--osi-section-item-margin-sm: 4px;
|
|
1025
|
+
--osi-section-item-margin-md: 8px;
|
|
1026
|
+
--osi-section-item-margin-lg: 12px;
|
|
1027
|
+
--osi-section-item-margin-xl: 16px;
|
|
1028
|
+
|
|
1029
|
+
// Usage guidelines:
|
|
1030
|
+
// - Use padding for internal item spacing
|
|
1031
|
+
// - Use margin only for:
|
|
1032
|
+
// * Separating items in lists (margin-bottom on non-last items)
|
|
1033
|
+
// * Special layout requirements
|
|
1034
|
+
// * Negative spacing cases
|
|
1035
|
+
|
|
1036
|
+
// Section Item Spacing - Gaps (Single Source of Truth)
|
|
1037
|
+
// Gap scale (for consistent spacing)
|
|
1038
|
+
--osi-section-item-gap-xs: 2px;
|
|
1039
|
+
--osi-section-item-gap-sm: 4px;
|
|
1040
|
+
--osi-section-item-gap-md: 8px;
|
|
1041
|
+
--osi-section-item-gap: 10px; // Base gap (standard spacing between items)
|
|
1042
|
+
--osi-section-item-gap-lg: 12px;
|
|
1043
|
+
--osi-section-item-gap-xl: 16px;
|
|
1044
|
+
|
|
1045
|
+
// Base gap value (references scale)
|
|
1046
|
+
--osi-section-item-grid-gap: var(--osi-section-item-gap);
|
|
1047
|
+
|
|
1048
|
+
// Section Item Border Radius (Standardized)
|
|
923
1049
|
--osi-section-item-border-radius: var(--radius-md);
|
|
924
1050
|
|
|
925
|
-
//
|
|
926
|
-
--osi-section-item-
|
|
927
|
-
--osi-section-item-
|
|
928
|
-
--osi-section-item-
|
|
929
|
-
|
|
1051
|
+
// Border radius variants for consistency
|
|
1052
|
+
--osi-section-item-border-radius-sm: var(--radius-sm);
|
|
1053
|
+
--osi-section-item-border-radius-md: var(--radius-md);
|
|
1054
|
+
--osi-section-item-border-radius-lg: var(--radius-lg);
|
|
1055
|
+
|
|
1056
|
+
// Section Container Spacing (for section wrappers, not individual items)
|
|
1057
|
+
--osi-section-container-padding: var(--osi-section-item-padding-normal);
|
|
1058
|
+
--osi-section-container-gap: var(--osi-section-item-gap-md);
|
|
1059
|
+
--osi-section-header-margin-bottom: var(--osi-section-item-gap-md);
|
|
1060
|
+
|
|
1061
|
+
// Section Item Typography - Label (Using OSI Font Scale)
|
|
1062
|
+
--osi-section-item-label-font-size: var(--osi-text-sm); // 0.875rem (14px)
|
|
1063
|
+
--osi-section-item-label-font-weight: var(--osi-font-medium); // 500
|
|
1064
|
+
--osi-section-item-label-line-height: var(--osi-leading-tight); // 1.25
|
|
1065
|
+
--osi-section-item-label-letter-spacing: var(--osi-tracking-wider); // 0.05em
|
|
1066
|
+
--osi-section-item-label-color: var(--osi-muted-foreground);
|
|
930
1067
|
--osi-section-item-label-text-transform: uppercase;
|
|
931
1068
|
|
|
932
|
-
// Section Item Typography - Value
|
|
933
|
-
--osi-section-item-value-font-size: var(--text-base);
|
|
934
|
-
--osi-section-item-value-font-weight: var(--font-
|
|
935
|
-
--osi-section-item-value-
|
|
936
|
-
--osi-section-item-value-
|
|
1069
|
+
// Section Item Typography - Value (Using OSI Font Scale)
|
|
1070
|
+
--osi-section-item-value-font-size: var(--osi-text-base); // 1rem (16px)
|
|
1071
|
+
--osi-section-item-value-font-weight: var(--osi-font-normal); // 400
|
|
1072
|
+
--osi-section-item-value-line-height: var(--osi-leading-normal); // 1.5
|
|
1073
|
+
--osi-section-item-value-color: var(--osi-foreground);
|
|
1074
|
+
--osi-section-item-value-letter-spacing: var(--osi-tracking-normal); // 0
|
|
937
1075
|
|
|
938
1076
|
// Section Item Icon
|
|
939
1077
|
--osi-section-item-icon-size: var(--icon-md);
|
|
940
|
-
--osi-section-item-icon-color: var(--muted-foreground);
|
|
941
|
-
--osi-section-item-icon-color-hover: var(--accent);
|
|
1078
|
+
--osi-section-item-icon-color: var(--osi-muted-foreground);
|
|
1079
|
+
--osi-section-item-icon-color-hover: var(--accent, var(--osi-accent));
|
|
942
1080
|
|
|
943
|
-
// Section Item Transitions
|
|
1081
|
+
// Section Item Transitions (Standardized)
|
|
944
1082
|
--osi-section-item-transition: var(
|
|
945
1083
|
--theme-section-item-transition,
|
|
946
1084
|
background 220ms cubic-bezier(0.4, 0, 0.2, 1),
|
|
@@ -948,6 +1086,28 @@ $breakpoints: (
|
|
|
948
1086
|
border-color 220ms cubic-bezier(0.4, 0, 0.2, 1)
|
|
949
1087
|
);
|
|
950
1088
|
--osi-section-item-hover-transform: var(--theme-section-item-hover-transform, none);
|
|
1089
|
+
|
|
1090
|
+
// Animation timing (standardized)
|
|
1091
|
+
--osi-section-item-animation-duration: 220ms;
|
|
1092
|
+
--osi-section-item-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
|
|
1093
|
+
--osi-section-item-stagger-delay: 30ms;
|
|
1094
|
+
|
|
1095
|
+
// Motion distance for animations
|
|
1096
|
+
--osi-motion-distance-sm: 8px;
|
|
1097
|
+
|
|
1098
|
+
// Card min-height variants
|
|
1099
|
+
--osi-section-item-min-height-xs: 70px;
|
|
1100
|
+
--osi-section-item-min-height-sm: 80px;
|
|
1101
|
+
--osi-section-item-min-height-md: 90px;
|
|
1102
|
+
--osi-section-item-min-height-lg: 95px;
|
|
1103
|
+
--osi-section-item-min-height-xl: 110px;
|
|
1104
|
+
|
|
1105
|
+
// Grid column min-widths
|
|
1106
|
+
--osi-section-item-grid-min-xs: 120px;
|
|
1107
|
+
--osi-section-item-grid-min-sm: 160px;
|
|
1108
|
+
--osi-section-item-grid-min-md: 180px;
|
|
1109
|
+
--osi-section-item-grid-min-lg: 250px;
|
|
1110
|
+
--osi-section-item-grid-min-xl: 300px;
|
|
951
1111
|
}
|
|
952
1112
|
|
|
953
1113
|
/// Generate element type system tokens (Hero, Buttons, Cards, Sections, Section Items)
|
|
@@ -1002,7 +1162,8 @@ $breakpoints: (
|
|
|
1002
1162
|
--section-hover-transform: none;
|
|
1003
1163
|
--section-transition: var(--osi-section-transition);
|
|
1004
1164
|
|
|
1005
|
-
// 5. SECTION ITEMS (aliases for backward compatibility)
|
|
1165
|
+
// 5. SECTION ITEMS (aliases for backward compatibility - DEPRECATED)
|
|
1166
|
+
// @deprecated Use --osi-section-item-* tokens instead. These will be removed in a future version.
|
|
1006
1167
|
--section-item-border: var(--osi-section-item-border);
|
|
1007
1168
|
--section-item-border-hover: var(--osi-section-item-border-hover);
|
|
1008
1169
|
--section-item-background: var(--osi-section-item-background);
|
|
@@ -1014,13 +1175,21 @@ $breakpoints: (
|
|
|
1014
1175
|
--section-item-hover-transform: var(--osi-section-item-hover-transform);
|
|
1015
1176
|
--section-item-transition-default: var(--osi-section-item-transition);
|
|
1016
1177
|
--section-item-transition: var(--osi-section-item-transition);
|
|
1178
|
+
// @deprecated Use --osi-section-item-padding instead
|
|
1179
|
+
--section-item-padding: var(--osi-section-item-padding-normal);
|
|
1017
1180
|
|
|
1018
|
-
// Legacy card variables (theme-aware)
|
|
1181
|
+
// Legacy card variables (theme-aware) - DEPRECATED: Use --osi-section-item-* tokens instead
|
|
1182
|
+
// @deprecated Use --osi-section-item-border instead
|
|
1019
1183
|
--card-border: var(--theme-card-border, 1px solid rgba(146, 153, 158, 0.15));
|
|
1184
|
+
// @deprecated Use --osi-section-item-border-hover instead
|
|
1020
1185
|
--card-border-hover: var(--theme-card-border-hover, #{$brand-color-15});
|
|
1186
|
+
// @deprecated Use --osi-section-item-shadow instead
|
|
1021
1187
|
--card-box-shadow: var(--theme-card-box-shadow, var(--shadow-md));
|
|
1188
|
+
// @deprecated Use --osi-section-item-shadow-hover instead
|
|
1022
1189
|
--card-box-shadow-hover: var(--theme-card-box-shadow-hover, var(--shadow-lg));
|
|
1023
1190
|
--card-hover-transform: none;
|
|
1191
|
+
// @deprecated Use --osi-section-item-padding instead
|
|
1192
|
+
--card-padding: var(--osi-section-item-padding-normal, 12px);
|
|
1024
1193
|
|
|
1025
1194
|
// Entrance animations
|
|
1026
1195
|
--ai-card-entrance-animation: fadeInUpSoft var(--duration-moderate) var(--ease-out-smooth) 10ms 1
|
|
@@ -1060,15 +1229,19 @@ $breakpoints: (
|
|
|
1060
1229
|
// Surface tokens - defaults (will be overridden by theme-specific mixins and JavaScript presets)
|
|
1061
1230
|
// These are fallback values only - actual values come from osi-theme-dark/light mixins or JavaScript presets
|
|
1062
1231
|
& {
|
|
1063
|
-
--theme-ai-card-border: 1px solid
|
|
1064
|
-
|
|
1232
|
+
--theme-ai-card-border: 1px solid #{$brand-color-20};
|
|
1233
|
+
@supports (color: color-mix(in srgb, black 50%, white)) {
|
|
1234
|
+
--theme-ai-card-border: 1px solid
|
|
1235
|
+
color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent);
|
|
1236
|
+
}
|
|
1237
|
+
--theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
|
|
1065
1238
|
--theme-ai-card-background: rgba(255, 255, 255, 0.85);
|
|
1066
1239
|
--theme-ai-card-background-hover: rgba(255, 255, 255, 0.92);
|
|
1067
1240
|
--theme-ai-card-box-shadow:
|
|
1068
1241
|
0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
|
|
1069
1242
|
--theme-ai-card-box-shadow-hover:
|
|
1070
|
-
0 20px 40px -5px rgba(0, 0, 0, 0.15), 0 0 24px rgba(255, 121, 0, 0.
|
|
1071
|
-
0 0 0 1px rgba(255, 121, 0, 0.
|
|
1243
|
+
0 20px 40px -5px rgba(0, 0, 0, 0.15), 0 0 24px rgba(255, 121, 0, 0.5),
|
|
1244
|
+
0 0 0 1px rgba(255, 121, 0, 0.3);
|
|
1072
1245
|
--theme-ai-card-backdrop-filter: blur(12px);
|
|
1073
1246
|
--theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
1074
1247
|
|
|
@@ -1085,8 +1258,10 @@ $breakpoints: (
|
|
|
1085
1258
|
|
|
1086
1259
|
--theme-section-border: 1px solid rgba(0, 0, 0, 0.06);
|
|
1087
1260
|
--theme-section-border-hover: 1px solid rgba(255, 121, 0, 0.15);
|
|
1261
|
+
--theme-section-border-hover-enhanced-color: rgba(0, 0, 0, 0.13);
|
|
1088
1262
|
--theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
|
|
1089
1263
|
--theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.05);
|
|
1264
|
+
--theme-section-shadow-hover-enhanced: var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.117);
|
|
1090
1265
|
--theme-section-transition:
|
|
1091
1266
|
border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
|
|
1092
1267
|
// Flat backgrounds - no color-mix
|
|
@@ -1101,6 +1276,9 @@ $breakpoints: (
|
|
|
1101
1276
|
--theme-section-item-background-hover: var(--background);
|
|
1102
1277
|
--theme-section-item-box-shadow: var(--shadow-md, 0 1px 2px rgba(0, 0, 0, 0.04));
|
|
1103
1278
|
--theme-section-item-box-shadow-hover: var(--shadow-lg, 0 1px 3px rgba(0, 0, 0, 0.05));
|
|
1279
|
+
--theme-section-item-border-hover-enhanced-color: rgba(0, 0, 0, 0.195);
|
|
1280
|
+
--theme-section-item-shadow-hover-enhanced:
|
|
1281
|
+
var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.1755);
|
|
1104
1282
|
--theme-section-item-hover-transform: none;
|
|
1105
1283
|
--theme-section-item-transition:
|
|
1106
1284
|
border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), background 0.2s cubic-bezier(0.4, 0, 0.2, 1),
|
|
@@ -1137,13 +1315,18 @@ $breakpoints: (
|
|
|
1137
1315
|
|
|
1138
1316
|
// AI Card surface - transparent with blur effect (matches preset)
|
|
1139
1317
|
& {
|
|
1140
|
-
--theme-ai-card-border: 1px solid
|
|
1141
|
-
|
|
1318
|
+
--theme-ai-card-border: 1px solid #{$brand-color-20};
|
|
1319
|
+
@supports (color: color-mix(in srgb, black 50%, white)) {
|
|
1320
|
+
--theme-ai-card-border: 1px solid
|
|
1321
|
+
color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent);
|
|
1322
|
+
}
|
|
1323
|
+
--theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
|
|
1142
1324
|
--theme-ai-card-background: rgba(20, 20, 20, 0.6);
|
|
1143
1325
|
--theme-ai-card-background-hover: rgba(25, 25, 25, 0.7);
|
|
1144
1326
|
--theme-ai-card-box-shadow: 0 4px 24px -1px rgba(0, 0, 0, 0.2);
|
|
1145
1327
|
--theme-ai-card-box-shadow-hover:
|
|
1146
|
-
0 12px 32px -4px rgba(0, 0, 0, 0.3), 0 0
|
|
1328
|
+
0 12px 32px -4px rgba(0, 0, 0, 0.3), 0 0 24px rgba(255, 121, 0, 0.5),
|
|
1329
|
+
0 0 0 1px rgba(255, 121, 0, 0.3);
|
|
1147
1330
|
--theme-ai-card-backdrop-filter: blur(12px);
|
|
1148
1331
|
--theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
1149
1332
|
|
|
@@ -1188,17 +1371,22 @@ $breakpoints: (
|
|
|
1188
1371
|
// Section (matches preset)
|
|
1189
1372
|
--theme-section-border: 1px solid rgba(255, 255, 255, 0.1);
|
|
1190
1373
|
--theme-section-border-hover: 1px solid rgba(255, 255, 255, 0.1);
|
|
1374
|
+
--theme-section-border-hover-enhanced-color: rgba(255, 255, 255, 0.13);
|
|
1191
1375
|
--theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
|
|
1192
1376
|
--theme-section-box-shadow-hover: 0 2px 5px rgba(0, 0, 0, 0.5);
|
|
1377
|
+
--theme-section-shadow-hover-enhanced: var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.117);
|
|
1193
1378
|
--theme-section-transition:
|
|
1194
1379
|
border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
|
|
1195
1380
|
// Section Item (matches preset)
|
|
1196
1381
|
--theme-section-item-border: 1px solid rgba(255, 255, 255, 0.06);
|
|
1197
1382
|
--theme-section-item-border-hover: 1px solid rgba(255, 121, 0, 0.08);
|
|
1383
|
+
--theme-section-item-border-hover-enhanced-color: rgba(255, 255, 255, 0.195);
|
|
1198
1384
|
--theme-section-item-background: #202020;
|
|
1199
1385
|
--theme-section-item-background-hover: #212121;
|
|
1200
1386
|
--theme-section-item-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
|
|
1201
1387
|
--theme-section-item-box-shadow-hover: 0 1px 4px rgba(0, 0, 0, 0.3);
|
|
1388
|
+
--theme-section-item-shadow-hover-enhanced:
|
|
1389
|
+
var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.1755);
|
|
1202
1390
|
--theme-section-item-hover-transform: none;
|
|
1203
1391
|
--theme-section-item-transition:
|
|
1204
1392
|
background 220ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 220ms cubic-bezier(0.4, 0, 0.2, 1),
|
|
@@ -1241,15 +1429,19 @@ $breakpoints: (
|
|
|
1241
1429
|
--card-section-card-bg: #f8f8f8;
|
|
1242
1430
|
|
|
1243
1431
|
// AI Card surface - light theme with blur (matches preset)
|
|
1244
|
-
--theme-ai-card-border: 1px solid
|
|
1245
|
-
|
|
1432
|
+
--theme-ai-card-border: 1px solid #{$brand-color-20};
|
|
1433
|
+
@supports (color: color-mix(in srgb, black 50%, white)) {
|
|
1434
|
+
--theme-ai-card-border: 1px solid
|
|
1435
|
+
color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent);
|
|
1436
|
+
}
|
|
1437
|
+
--theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
|
|
1246
1438
|
--theme-ai-card-background: rgba(255, 255, 255, 0.85);
|
|
1247
1439
|
--theme-ai-card-background-hover: rgba(255, 255, 255, 0.88);
|
|
1248
1440
|
--theme-ai-card-box-shadow:
|
|
1249
1441
|
0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
|
|
1250
1442
|
--theme-ai-card-box-shadow-hover:
|
|
1251
|
-
0 12px 32px -4px rgba(0, 0, 0, 0.12), 0 0 20px rgba(255, 121, 0, 0.
|
|
1252
|
-
0 0 0 1px rgba(255, 121, 0, 0.
|
|
1443
|
+
0 12px 32px -4px rgba(0, 0, 0, 0.12), 0 0 20px rgba(255, 121, 0, 0.45),
|
|
1444
|
+
0 0 0 1px rgba(255, 121, 0, 0.25);
|
|
1253
1445
|
--theme-ai-card-backdrop-filter: blur(12px);
|
|
1254
1446
|
--theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
1255
1447
|
|
|
@@ -75,10 +75,6 @@
|
|
|
75
75
|
// Social Media Section
|
|
76
76
|
--osi-section-social-media-columns: 1;
|
|
77
77
|
--osi-section-social-media-collapse: 1;
|
|
78
|
-
|
|
79
|
-
// Fallback Section
|
|
80
|
-
--osi-section-fallback-columns: 1;
|
|
81
|
-
--osi-section-fallback-collapse: 1;
|
|
82
78
|
}
|
|
83
79
|
|
|
84
80
|
// Section type display properties
|
|
@@ -134,7 +130,4 @@
|
|
|
134
130
|
@if $type == "social-media" {
|
|
135
131
|
--section-columns: var(--osi-section-social-media-columns, 1);
|
|
136
132
|
}
|
|
137
|
-
@if $type == "fallback" {
|
|
138
|
-
--section-columns: var(--osi-section-fallback-columns, 1);
|
|
139
|
-
}
|
|
140
133
|
}
|