osi-cards-lib 1.5.42 → 1.5.44

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 (39) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/osi-cards-lib.mjs +5242 -3734
  3. package/fesm2022/osi-cards-lib.mjs.map +1 -1
  4. package/index.d.ts +147 -273
  5. package/package.json +4 -3
  6. package/styles/bundles/_ai-card.scss +10 -40
  7. package/styles/bundles/_card-skeleton.scss +1 -1
  8. package/styles/components/_ai-card-renderer.scss +0 -2
  9. package/styles/components/_card-actions.scss +2 -4
  10. package/styles/components/_streaming-effects.scss +0 -20
  11. package/styles/components/sections/_all-sections.generated.scss +0 -3
  12. package/styles/components/sections/_all-sections.scss +88 -64
  13. package/styles/components/sections/_compact-mixins.scss +9 -8
  14. package/styles/components/sections/_component-mixins.scss +40 -11
  15. package/styles/components/sections/_design-system.scss +106 -11
  16. package/styles/components/sections/_master-compact-system.scss +0 -17
  17. package/styles/components/sections/_minimalistic-design.scss +1 -4
  18. package/styles/components/sections/_modern-effects.scss +1 -3
  19. package/styles/components/sections/_modern-sections.scss +13 -69
  20. package/styles/components/sections/_section-animations.scss +158 -77
  21. package/styles/components/sections/_section-shell.scss +38 -9
  22. package/styles/components/sections/_section-types.generated.scss +0 -3
  23. package/styles/components/sections/_sections-base.scss +341 -64
  24. package/styles/components/sections/_unified-section-style.scss +17 -44
  25. package/styles/components/sections/_visual-effects-library.scss +3 -3
  26. package/styles/core/_animations.scss +0 -51
  27. package/styles/core/_global-unified.scss +2 -6
  28. package/styles/core/_mixins.scss +1 -1
  29. package/styles/core/_surface-layers.scss +20 -11
  30. package/styles/design-system/_section-base.scss +9 -32
  31. package/styles/design-system/_tokens.scss +67 -5
  32. package/styles/design-system/_unified-sections.scss +21 -21
  33. package/styles/layout/_masonry.scss +22 -22
  34. package/styles/layout/_tilt.scss +3 -3
  35. package/styles/mixins/_section-mixins.scss +2 -2
  36. package/styles/reset/_shadow-reset.scss +3 -7
  37. package/styles/responsive.scss +9 -7
  38. package/styles/tokens/_master.scss +322 -120
  39. package/styles/tokens/_section-tokens.generated.scss +0 -7
@@ -466,14 +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: calc(0.92rem - 6px);
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: 1rem; /* 16px - fixed size for all screen sizes */
476
+ --card-header-title-font-size: 0.875rem; /* 14px - fixed size for all screen sizes */
477
477
  --card-header-title-font-weight: 700;
478
478
  --card-header-title-letter-spacing: -0.02em;
479
479
  --card-header-title-line-height: 1.3;
@@ -486,7 +486,7 @@ $breakpoints: (
486
486
  --card-title-text-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);
487
487
 
488
488
  // Card Subtitles
489
- --card-subtitle-font-size: 0.65rem;
489
+ --card-subtitle-font-size: 0.525rem;
490
490
  --card-subtitle-font-weight: 500;
491
491
  --card-subtitle-letter-spacing: 0.015em;
492
492
  --card-subtitle-line-height: 1.3;
@@ -530,10 +530,10 @@ $breakpoints: (
530
530
  --card-padding-horizontal: 12px;
531
531
  --card-padding: 12px;
532
532
  --card-padding-large: 20px;
533
- --section-padding: 12px;
534
- --section-container-padding: 16px;
533
+ --section-padding: 8px;
534
+ --section-container-padding: 12px;
535
535
  --card-min-height: auto;
536
- --card-gap: 6px;
536
+ --card-gap: 10px;
537
537
  --card-gap-large: 10px;
538
538
  --card-nested-gap: 3px;
539
539
  --section-header-gap: 2px;
@@ -544,12 +544,20 @@ $breakpoints: (
544
544
  --section-card-gap: 8px;
545
545
  --section-card-border-radius: 10px;
546
546
 
547
- // Element gaps within cards
548
- --card-element-gap-xs: 2px;
549
- --card-element-gap-sm: 3px;
550
- --card-element-gap-md: 4px;
551
- --card-element-gap-lg: 6px;
552
- --card-element-gap-xl: 8px;
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);
553
561
 
554
562
  // Border widths
555
563
  --border-width-default: 1px;
@@ -586,8 +594,14 @@ $breakpoints: (
586
594
  // Section-specific gaps
587
595
  --section-grid-gap: var(--gap-md);
588
596
  --section-stack-gap: var(--gap-lg);
589
- --section-item-gap: var(--gap-sm);
590
- --section-item-padding: var(--gap-lg);
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);
591
605
  --metric-item-padding: 10px 12px;
592
606
  --list-item-padding: 10px 12px;
593
607
  }
@@ -638,8 +652,17 @@ $breakpoints: (
638
652
  --osi-card-backdrop-filter: var(--theme-ai-card-backdrop-filter, blur(12px));
639
653
 
640
654
  // Card Border
641
- --osi-card-border: var(--theme-ai-card-border, 1px solid #{$white-05});
642
- --osi-card-border-hover: var(--theme-ai-card-border-hover, 1px solid #{$brand-color-12});
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
+ );
643
666
  --osi-card-border-fullscreen: none;
644
667
 
645
668
  // Card Shadow
@@ -765,6 +788,16 @@ $breakpoints: (
765
788
  --osi-section-border: var(--theme-section-border, 1px solid rgba(0, 0, 0, 0.06));
766
789
  --osi-section-border-hover: var(--theme-section-border-hover, 1px solid #{$brand-color-15});
767
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
+
768
801
  // Section Shadow
769
802
  --osi-section-shadow: var(--theme-section-box-shadow, var(--shadow-md));
770
803
  --osi-section-shadow-hover: var(
@@ -772,6 +805,15 @@ $breakpoints: (
772
805
  var(--shadow-lg),
773
806
  var(--shadow-glow-sm)
774
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
+ );
775
817
  --osi-section-shadow-fullscreen: none;
776
818
 
777
819
  // Section Spacing - Padding
@@ -799,12 +841,28 @@ $breakpoints: (
799
841
  // Section Border Radius
800
842
  --osi-section-border-radius: var(--section-card-border-radius);
801
843
 
802
- // Section Typography
803
- --osi-section-title-font-size: calc(1.1rem - 4px);
804
- --osi-section-title-font-weight: var(--section-title-font-weight, 700);
805
- --osi-section-title-letter-spacing: var(--section-title-letter-spacing, -0.02em);
806
- --osi-section-title-line-height: var(--section-title-line-height, 1.3);
807
- --osi-section-title-color: var(--card-text-primary);
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);
808
866
  --osi-section-title-margin-bottom: var(--section-title-margin-bottom);
809
867
  --osi-section-title-underline-length: var(--space-8);
810
868
  --osi-section-title-underline-hover-length: var(--space-10);
@@ -814,8 +872,12 @@ $breakpoints: (
814
872
  // Fallback for browsers without color-mix support
815
873
  --osi-section-title-hover-color: var(--color-brand);
816
874
 
817
- --osi-section-description-color: var(--muted-foreground);
818
- --osi-section-description-color-hover: var(--foreground);
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);
819
881
 
820
882
  // Section Accent
821
883
  --osi-section-accent: var(--section-accent, var(--accent, #{$osi-color-brand}));
@@ -877,20 +939,44 @@ $breakpoints: (
877
939
  /// Generate OSI Section Item component tokens (--osi-section-item-*)
878
940
  /// SINGLE SOURCE OF TRUTH for all section item/field styling variables
879
941
  @mixin osi-section-item-tokens() {
880
- // 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
881
947
  --osi-section-item-background: var(--theme-section-item-background, var(--card-section-bg));
882
948
  --osi-section-item-background-hover: var(
883
949
  --theme-section-item-background-hover,
884
950
  var(--card-section-bg)
885
951
  );
886
952
 
887
- // Section Item Border
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)
888
959
  --osi-section-item-border: var(--theme-section-item-border, 1px solid rgba(0, 0, 0, 0.06));
889
960
  --osi-section-item-border-hover: var(
890
961
  --theme-section-item-border-hover,
891
962
  1px solid #{$brand-color-08}
892
963
  );
893
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
+
894
980
  // Section Item Shadow
895
981
  --osi-section-item-shadow: var(--theme-section-item-box-shadow, var(--shadow-sm));
896
982
  --osi-section-item-shadow-hover: var(
@@ -899,47 +985,100 @@ $breakpoints: (
899
985
  var(--shadow-glow-sm)
900
986
  );
901
987
 
902
- // Section Item Spacing - Padding
903
- --osi-section-item-padding: var(--section-item-padding);
904
- --osi-section-item-padding-top: var(--gap-lg);
905
- --osi-section-item-padding-bottom: var(--gap-lg);
906
- --osi-section-item-padding-left: var(--gap-lg);
907
- --osi-section-item-padding-right: var(--gap-lg);
908
- --osi-section-item-metric-padding: var(--metric-item-padding);
909
- --osi-section-item-list-padding: var(--list-item-padding);
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
+ );
910
996
 
911
- // Section Item Spacing - Margins
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
912
1017
  --osi-section-item-margin-top: 0;
913
1018
  --osi-section-item-margin-bottom: 0;
914
1019
  --osi-section-item-margin-left: 0;
915
1020
  --osi-section-item-margin-right: 0;
916
1021
 
917
- // Section Item Spacing - Gaps
918
- --osi-section-item-gap: var(--section-item-gap);
919
- --osi-section-item-grid-gap: var(--section-item-gap);
920
-
921
- // Section Item Border Radius
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)
922
1049
  --osi-section-item-border-radius: var(--radius-md);
923
1050
 
924
- // Section Item Typography - Label
925
- --osi-section-item-label-font-size: var(--text-sm);
926
- --osi-section-item-label-font-weight: var(--font-weight-medium);
927
- --osi-section-item-label-color: var(--muted-foreground);
928
- --osi-section-item-label-letter-spacing: 0.01em;
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);
929
1067
  --osi-section-item-label-text-transform: uppercase;
930
1068
 
931
- // Section Item Typography - Value
932
- --osi-section-item-value-font-size: var(--text-base);
933
- --osi-section-item-value-font-weight: var(--font-weight-normal);
934
- --osi-section-item-value-color: var(--foreground);
935
- --osi-section-item-value-letter-spacing: 0;
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
936
1075
 
937
1076
  // Section Item Icon
938
1077
  --osi-section-item-icon-size: var(--icon-md);
939
- --osi-section-item-icon-color: var(--muted-foreground);
940
- --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));
941
1080
 
942
- // Section Item Transitions
1081
+ // Section Item Transitions (Standardized)
943
1082
  --osi-section-item-transition: var(
944
1083
  --theme-section-item-transition,
945
1084
  background 220ms cubic-bezier(0.4, 0, 0.2, 1),
@@ -947,6 +1086,28 @@ $breakpoints: (
947
1086
  border-color 220ms cubic-bezier(0.4, 0, 0.2, 1)
948
1087
  );
949
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;
950
1111
  }
951
1112
 
952
1113
  /// Generate element type system tokens (Hero, Buttons, Cards, Sections, Section Items)
@@ -1001,7 +1162,8 @@ $breakpoints: (
1001
1162
  --section-hover-transform: none;
1002
1163
  --section-transition: var(--osi-section-transition);
1003
1164
 
1004
- // 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.
1005
1167
  --section-item-border: var(--osi-section-item-border);
1006
1168
  --section-item-border-hover: var(--osi-section-item-border-hover);
1007
1169
  --section-item-background: var(--osi-section-item-background);
@@ -1013,13 +1175,21 @@ $breakpoints: (
1013
1175
  --section-item-hover-transform: var(--osi-section-item-hover-transform);
1014
1176
  --section-item-transition-default: var(--osi-section-item-transition);
1015
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);
1016
1180
 
1017
- // 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
1018
1183
  --card-border: var(--theme-card-border, 1px solid rgba(146, 153, 158, 0.15));
1184
+ // @deprecated Use --osi-section-item-border-hover instead
1019
1185
  --card-border-hover: var(--theme-card-border-hover, #{$brand-color-15});
1186
+ // @deprecated Use --osi-section-item-shadow instead
1020
1187
  --card-box-shadow: var(--theme-card-box-shadow, var(--shadow-md));
1188
+ // @deprecated Use --osi-section-item-shadow-hover instead
1021
1189
  --card-box-shadow-hover: var(--theme-card-box-shadow-hover, var(--shadow-lg));
1022
1190
  --card-hover-transform: none;
1191
+ // @deprecated Use --osi-section-item-padding instead
1192
+ --card-padding: var(--osi-section-item-padding-normal, 12px);
1023
1193
 
1024
1194
  // Entrance animations
1025
1195
  --ai-card-entrance-animation: fadeInUpSoft var(--duration-moderate) var(--ease-out-smooth) 10ms 1
@@ -1059,51 +1229,65 @@ $breakpoints: (
1059
1229
  // Surface tokens - defaults (will be overridden by theme-specific mixins and JavaScript presets)
1060
1230
  // These are fallback values only - actual values come from osi-theme-dark/light mixins or JavaScript presets
1061
1231
  & {
1062
- --theme-ai-card-border: 1px solid rgba(0, 0, 0, 0.08);
1063
- --theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, 0.4);
1064
- --theme-ai-card-background: rgba(255, 255, 255, 0.85);
1065
- --theme-ai-card-background-hover: rgba(255, 255, 255, 0.92);
1066
- --theme-ai-card-box-shadow:
1067
- 0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
1068
- --theme-ai-card-box-shadow-hover:
1069
- 0 20px 40px -5px rgba(0, 0, 0, 0.15), 0 0 24px rgba(255, 121, 0, 0.25),
1070
- 0 0 0 1px rgba(255, 121, 0, 0.15);
1071
- --theme-ai-card-backdrop-filter: blur(12px);
1072
- --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1073
-
1074
- --theme-card-border: 1px solid rgba(0, 0, 0, 0.08);
1075
- --theme-card-border-hover: var(--color-brand);
1076
- --theme-card-background: var(--background);
1077
- --theme-card-background-hover: color-mix(
1078
- in srgb,
1079
- var(--background) 98%,
1080
- var(--surface-contrast-color) 2%
1081
- );
1082
- --theme-card-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
1083
- --theme-card-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.07);
1084
-
1085
- --theme-section-border: 1px solid rgba(0, 0, 0, 0.06);
1086
- --theme-section-border-hover: 1px solid rgba(255, 121, 0, 0.15);
1087
- --theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
1088
- --theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.05);
1089
- --theme-section-transition:
1090
- border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
1091
- // Flat backgrounds - no color-mix
1092
- --section-background: var(--background);
1093
- --section-background-hover: var(--background);
1094
- --section-surface: var(--background);
1095
- --section-surface-hover: var(--background);
1096
-
1097
- --theme-section-item-border: 1px solid rgba(0, 0, 0, 0.06);
1098
- --theme-section-item-border-hover: 1px solid rgba(255, 121, 0, 0.15);
1099
- --theme-section-item-background: var(--background);
1100
- --theme-section-item-background-hover: var(--background);
1101
- --theme-section-item-box-shadow: var(--shadow-md, 0 1px 2px rgba(0, 0, 0, 0.04));
1102
- --theme-section-item-box-shadow-hover: var(--shadow-lg, 0 1px 3px rgba(0, 0, 0, 0.05));
1103
- --theme-section-item-hover-transform: none;
1104
- --theme-section-item-transition:
1105
- border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), background 0.2s cubic-bezier(0.4, 0, 0.2, 1),
1106
- box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
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
+ & {
1238
+ --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1239
+ --theme-ai-card-background: rgba(255, 255, 255, 0.85);
1240
+ --theme-ai-card-background-hover: rgba(255, 255, 255, 0.92);
1241
+ --theme-ai-card-box-shadow:
1242
+ 0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
1243
+ --theme-ai-card-box-shadow-hover:
1244
+ 0 20px 40px -5px rgba(0, 0, 0, 0.15), 0 0 24px rgba(255, 121, 0, 0.5),
1245
+ 0 0 0 1px rgba(255, 121, 0, 0.3);
1246
+ --theme-ai-card-backdrop-filter: blur(12px);
1247
+ --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1248
+ }
1249
+
1250
+ & {
1251
+ --theme-card-border: 1px solid rgba(0, 0, 0, 0.08);
1252
+ --theme-card-border-hover: var(--color-brand);
1253
+ --theme-card-background: var(--background);
1254
+ --theme-card-background-hover: color-mix(
1255
+ in srgb,
1256
+ var(--background) 98%,
1257
+ var(--surface-contrast-color) 2%
1258
+ );
1259
+ --theme-card-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
1260
+ --theme-card-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.07);
1261
+
1262
+ --theme-section-border: 1px solid rgba(0, 0, 0, 0.06);
1263
+ --theme-section-border-hover: 1px solid rgba(255, 121, 0, 0.15);
1264
+ --theme-section-border-hover-enhanced-color: rgba(0, 0, 0, 0.13);
1265
+ --theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
1266
+ --theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.05);
1267
+ --theme-section-shadow-hover-enhanced: var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.117);
1268
+ --theme-section-transition:
1269
+ border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1),
1270
+ box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
1271
+ // Flat backgrounds - no color-mix
1272
+ --section-background: var(--background);
1273
+ --section-background-hover: var(--background);
1274
+ --section-surface: var(--background);
1275
+ --section-surface-hover: var(--background);
1276
+
1277
+ --theme-section-item-border: 1px solid rgba(0, 0, 0, 0.06);
1278
+ --theme-section-item-border-hover: 1px solid rgba(255, 121, 0, 0.15);
1279
+ --theme-section-item-background: var(--background);
1280
+ --theme-section-item-background-hover: var(--background);
1281
+ --theme-section-item-box-shadow: var(--shadow-md, 0 1px 2px rgba(0, 0, 0, 0.04));
1282
+ --theme-section-item-box-shadow-hover: var(--shadow-lg, 0 1px 3px rgba(0, 0, 0, 0.05));
1283
+ --theme-section-item-border-hover-enhanced-color: rgba(0, 0, 0, 0.195);
1284
+ --theme-section-item-shadow-hover-enhanced:
1285
+ var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.1755);
1286
+ --theme-section-item-hover-transform: none;
1287
+ --theme-section-item-transition:
1288
+ border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
1289
+ background 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1290
+ }
1107
1291
  }
1108
1292
  }
1109
1293
 
@@ -1136,15 +1320,22 @@ $breakpoints: (
1136
1320
 
1137
1321
  // AI Card surface - transparent with blur effect (matches preset)
1138
1322
  & {
1139
- --theme-ai-card-border: 1px solid rgba(255, 255, 255, 0.08);
1140
- --theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, 0.2);
1141
- --theme-ai-card-background: rgba(20, 20, 20, 0.6);
1142
- --theme-ai-card-background-hover: rgba(25, 25, 25, 0.7);
1143
- --theme-ai-card-box-shadow: 0 4px 24px -1px rgba(0, 0, 0, 0.2);
1144
- --theme-ai-card-box-shadow-hover:
1145
- 0 12px 32px -4px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 121, 0, 0.1);
1146
- --theme-ai-card-backdrop-filter: blur(12px);
1147
- --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1323
+ --theme-ai-card-border: 1px solid #{$brand-color-20};
1324
+ @supports (color: color-mix(in srgb, black 50%, white)) {
1325
+ --theme-ai-card-border: 1px solid
1326
+ color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent);
1327
+ }
1328
+ & {
1329
+ --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1330
+ --theme-ai-card-background: rgba(20, 20, 20, 0.6);
1331
+ --theme-ai-card-background-hover: rgba(25, 25, 25, 0.7);
1332
+ --theme-ai-card-box-shadow: 0 4px 24px -1px rgba(0, 0, 0, 0.2);
1333
+ --theme-ai-card-box-shadow-hover:
1334
+ 0 12px 32px -4px rgba(0, 0, 0, 0.3), 0 0 24px rgba(255, 121, 0, 0.5),
1335
+ 0 0 0 1px rgba(255, 121, 0, 0.3);
1336
+ --theme-ai-card-backdrop-filter: blur(12px);
1337
+ --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1338
+ }
1148
1339
 
1149
1340
  // Card backgrounds (matches preset)
1150
1341
  --theme-card-border: 1px solid rgba(255, 255, 255, 0.08);
@@ -1187,17 +1378,22 @@ $breakpoints: (
1187
1378
  // Section (matches preset)
1188
1379
  --theme-section-border: 1px solid rgba(255, 255, 255, 0.1);
1189
1380
  --theme-section-border-hover: 1px solid rgba(255, 255, 255, 0.1);
1381
+ --theme-section-border-hover-enhanced-color: rgba(255, 255, 255, 0.13);
1190
1382
  --theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
1191
1383
  --theme-section-box-shadow-hover: 0 2px 5px rgba(0, 0, 0, 0.5);
1384
+ --theme-section-shadow-hover-enhanced: var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.117);
1192
1385
  --theme-section-transition:
1193
1386
  border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
1194
1387
  // Section Item (matches preset)
1195
1388
  --theme-section-item-border: 1px solid rgba(255, 255, 255, 0.06);
1196
1389
  --theme-section-item-border-hover: 1px solid rgba(255, 121, 0, 0.08);
1390
+ --theme-section-item-border-hover-enhanced-color: rgba(255, 255, 255, 0.195);
1197
1391
  --theme-section-item-background: #202020;
1198
1392
  --theme-section-item-background-hover: #212121;
1199
1393
  --theme-section-item-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
1200
1394
  --theme-section-item-box-shadow-hover: 0 1px 4px rgba(0, 0, 0, 0.3);
1395
+ --theme-section-item-shadow-hover-enhanced:
1396
+ var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.1755);
1201
1397
  --theme-section-item-hover-transform: none;
1202
1398
  --theme-section-item-transition:
1203
1399
  background 220ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 220ms cubic-bezier(0.4, 0, 0.2, 1),
@@ -1240,17 +1436,23 @@ $breakpoints: (
1240
1436
  --card-section-card-bg: #f8f8f8;
1241
1437
 
1242
1438
  // AI Card surface - light theme with blur (matches preset)
1243
- --theme-ai-card-border: 1px solid rgba(0, 0, 0, 0.08);
1244
- --theme-ai-card-border-hover: 1px solid rgba(255, 121, 0, 0.2);
1245
- --theme-ai-card-background: rgba(255, 255, 255, 0.85);
1246
- --theme-ai-card-background-hover: rgba(255, 255, 255, 0.88);
1247
- --theme-ai-card-box-shadow:
1248
- 0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
1249
- --theme-ai-card-box-shadow-hover:
1250
- 0 12px 32px -4px rgba(0, 0, 0, 0.12), 0 0 20px rgba(255, 121, 0, 0.18),
1251
- 0 0 0 1px rgba(255, 121, 0, 0.1);
1252
- --theme-ai-card-backdrop-filter: blur(12px);
1253
- --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1439
+ --theme-ai-card-border: 1px solid #{$brand-color-20};
1440
+ @supports (color: color-mix(in srgb, black 50%, white)) {
1441
+ --theme-ai-card-border: 1px solid
1442
+ color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent);
1443
+ }
1444
+ & {
1445
+ --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1446
+ --theme-ai-card-background: rgba(255, 255, 255, 0.85);
1447
+ --theme-ai-card-background-hover: rgba(255, 255, 255, 0.88);
1448
+ --theme-ai-card-box-shadow:
1449
+ 0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
1450
+ --theme-ai-card-box-shadow-hover:
1451
+ 0 12px 32px -4px rgba(0, 0, 0, 0.12), 0 0 20px rgba(255, 121, 0, 0.45),
1452
+ 0 0 0 1px rgba(255, 121, 0, 0.25);
1453
+ --theme-ai-card-backdrop-filter: blur(12px);
1454
+ --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1455
+ }
1254
1456
 
1255
1457
  // Card backgrounds (matches preset)
1256
1458
  --theme-card-border: 1px solid rgba(0, 0, 0, 0.08);
@@ -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
  }