osi-cards-lib 1.5.42 → 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 +5176 -3720
- package/fesm2022/osi-cards-lib.mjs.map +1 -1
- package/index.d.ts +134 -272
- package/package.json +4 -3
- package/styles/bundles/_ai-card.scss +10 -3
- package/styles/bundles/_card-skeleton.scss +1 -1
- package/styles/components/_ai-card-renderer.scss +0 -2
- package/styles/components/_card-actions.scss +2 -4
- 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/_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 +38 -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/_global-unified.scss +2 -6
- package/styles/core/_mixins.scss +1 -1
- package/styles/core/_surface-layers.scss +20 -11
- package/styles/design-system/_section-base.scss +9 -32
- package/styles/design-system/_tokens.scss +67 -5
- package/styles/design-system/_unified-sections.scss +21 -21
- package/styles/layout/_masonry.scss +22 -22
- 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 +259 -66
- package/styles/tokens/_section-tokens.generated.scss +0 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "osi-cards-lib",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.43",
|
|
4
4
|
"description": "Standalone OSI Cards library for Angular applications with CSS Layer support for easy style overrides",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -38,8 +38,9 @@
|
|
|
38
38
|
"tslib": "^2.3.0"
|
|
39
39
|
},
|
|
40
40
|
"optionalDependencies": {
|
|
41
|
-
"
|
|
42
|
-
"leaflet": "^1.9.4"
|
|
41
|
+
"frappe-charts": "^1.7.3",
|
|
42
|
+
"leaflet": "^1.9.4",
|
|
43
|
+
"marked": "^17.0.0"
|
|
43
44
|
},
|
|
44
45
|
"exports": {
|
|
45
46
|
"./package.json": {
|
|
@@ -170,7 +170,13 @@
|
|
|
170
170
|
.ai-card-surface {
|
|
171
171
|
// Use theme variables, but ensure they're applied with proper specificity
|
|
172
172
|
// The theme mixins set these, but we need to ensure they're not overridden
|
|
173
|
-
border: var(--osi-card-border, 1px solid rgba(255,
|
|
173
|
+
border: var(--osi-card-border, 1px solid rgba(255, 121, 0, 0.2)) !important;
|
|
174
|
+
@supports (color: color-mix(in srgb, black 50%, white)) {
|
|
175
|
+
border: var(
|
|
176
|
+
--osi-card-border,
|
|
177
|
+
1px solid color-mix(in srgb, var(--color-brand, #ff7900) 20%, transparent)
|
|
178
|
+
) !important;
|
|
179
|
+
}
|
|
174
180
|
background: var(--osi-card-background, rgba(20, 20, 20, 0.6)) !important;
|
|
175
181
|
backdrop-filter: var(--osi-card-backdrop-filter, blur(12px)) !important;
|
|
176
182
|
-webkit-backdrop-filter: var(--osi-card-backdrop-filter, blur(12px)) !important;
|
|
@@ -179,12 +185,13 @@
|
|
|
179
185
|
}
|
|
180
186
|
|
|
181
187
|
.ai-card-surface:hover {
|
|
182
|
-
border: var(--osi-card-border-hover, 1px solid
|
|
188
|
+
border: var(--osi-card-border-hover, 1px solid var(--color-brand, #ff7900)) !important;
|
|
183
189
|
background: var(--osi-card-background-hover, rgba(30, 30, 30, 0.8)) !important;
|
|
184
190
|
box-shadow: var(
|
|
185
191
|
--osi-card-shadow-hover,
|
|
186
192
|
0 20px 40px -5px rgba(0, 0, 0, 0.4),
|
|
187
|
-
0 0
|
|
193
|
+
0 0 24px rgba(255, 121, 0, 0.5),
|
|
194
|
+
0 0 0 1px rgba(255, 121, 0, 0.3)
|
|
188
195
|
) !important;
|
|
189
196
|
}
|
|
190
197
|
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
.skeleton-title {
|
|
101
|
-
font-size: var(--card-header-title-font-size, 1.
|
|
101
|
+
font-size: var(--card-header-title-font-size, 1.125rem);
|
|
102
102
|
font-weight: var(--card-header-title-font-weight, 700);
|
|
103
103
|
color: var(--foreground, #1c1c1f);
|
|
104
104
|
min-height: 2rem;
|
|
@@ -38,8 +38,6 @@
|
|
|
38
38
|
gap: var(--spacing-4xl) !important;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
/* Overview grid uses compact spacing defined in _overview.scss */
|
|
42
|
-
|
|
43
41
|
/* Global card styling enforced via variables - remove !important overrides */
|
|
44
42
|
/* All cards now inherit from centralized --card-* variables */
|
|
45
43
|
|
|
@@ -86,8 +86,7 @@ app-card-actions {
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
.osi-action-button--primary:focus-visible {
|
|
89
|
-
outline:
|
|
90
|
-
outline-offset: var(--border-width-accent-sm) !important;
|
|
89
|
+
outline: none !important;
|
|
91
90
|
}
|
|
92
91
|
|
|
93
92
|
// Secondary Button - Orange Border (Outline) with WHITE text
|
|
@@ -115,8 +114,7 @@ app-card-actions {
|
|
|
115
114
|
}
|
|
116
115
|
|
|
117
116
|
.osi-action-button--secondary:focus-visible {
|
|
118
|
-
outline:
|
|
119
|
-
outline-offset: var(--border-width-accent-sm) !important;
|
|
117
|
+
outline: none !important;
|
|
120
118
|
}
|
|
121
119
|
|
|
122
120
|
// Button Content Elements - Always white
|
|
@@ -20,16 +20,13 @@
|
|
|
20
20
|
@use "../../../components/sections/chart-section/chart-section"; // chart
|
|
21
21
|
@use "../../../components/sections/contact-card-section/contact-card-section"; // contact-card
|
|
22
22
|
@use "../../../components/sections/event-section/event-section"; // event
|
|
23
|
-
@use "../../../components/sections/fallback-section/fallback-section"; // fallback
|
|
24
23
|
@use "../../../components/sections/faq-section/faq-section"; // faq
|
|
25
24
|
@use "../../../components/sections/financials-section/financials-section"; // financials
|
|
26
25
|
@use "../../../components/sections/gallery-section/gallery-section"; // gallery
|
|
27
|
-
@use "../../../components/sections/info-section/info-section"; // info
|
|
28
26
|
@use "../../../components/sections/list-section/list-section"; // list
|
|
29
27
|
@use "../../../components/sections/map-section/map-section"; // map
|
|
30
28
|
@use "../../../components/sections/network-card-section/network-card-section"; // network-card
|
|
31
29
|
@use "../../../components/sections/news-section/news-section"; // news
|
|
32
|
-
@use "../../../components/sections/overview-section/overview-section"; // overview
|
|
33
30
|
@use "../../../components/sections/product-section/product-section"; // product
|
|
34
31
|
@use "../../../components/sections/quotation-section/quotation-section"; // quotation
|
|
35
32
|
@use "../../../components/sections/social-media-section/social-media-section"; // social-media
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
.section-card,
|
|
20
20
|
.unified-card {
|
|
21
|
-
@include
|
|
22
|
-
@include
|
|
21
|
+
@include card;
|
|
22
|
+
@include item-animation;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
// =====================================================================
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.analytics-metric {
|
|
34
|
-
@include
|
|
35
|
-
@include
|
|
34
|
+
@include card;
|
|
35
|
+
@include item-animation;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
.analytics-metric__label {
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
.financial-card {
|
|
75
|
-
@include
|
|
76
|
-
@include
|
|
75
|
+
@include card;
|
|
76
|
+
@include item-animation;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
.financial-card__label {
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
.overview-card {
|
|
111
|
-
@include
|
|
112
|
-
@include
|
|
111
|
+
@include card;
|
|
112
|
+
@include item-animation;
|
|
113
113
|
flex-direction: row;
|
|
114
114
|
align-items: center;
|
|
115
115
|
justify-content: space-between;
|
|
@@ -135,23 +135,56 @@
|
|
|
135
135
|
// =====================================================================
|
|
136
136
|
|
|
137
137
|
.info-matrix {
|
|
138
|
-
@include stack(var(--gap-
|
|
138
|
+
@include stack(var(--gap-sm));
|
|
139
|
+
// Ensure proper spacing and visual separation
|
|
140
|
+
padding: var(--space-2) 0;
|
|
139
141
|
}
|
|
140
142
|
|
|
141
143
|
.info-row {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
+
// Remove nested card styling - use cleaner, flatter design
|
|
145
|
+
display: flex;
|
|
144
146
|
flex-direction: row;
|
|
145
147
|
align-items: center;
|
|
146
148
|
justify-content: space-between;
|
|
147
|
-
padding: var(--space-
|
|
149
|
+
padding: var(--space-3) var(--space-4);
|
|
148
150
|
gap: var(--space-4);
|
|
151
|
+
border-bottom: 1px solid var(--border, rgba(0, 0, 0, 0.08));
|
|
152
|
+
transition: all 0.2s ease;
|
|
153
|
+
background: transparent;
|
|
154
|
+
border-radius: 0;
|
|
155
|
+
box-shadow: none;
|
|
156
|
+
position: relative;
|
|
157
|
+
|
|
158
|
+
// Remove nested white box effect
|
|
159
|
+
&:last-child {
|
|
160
|
+
border-bottom: none;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Subtle hover effect
|
|
164
|
+
&:hover {
|
|
165
|
+
background: var(--osi-section-item-background-hover, rgba(0, 0, 0, 0.02));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Focus state for accessibility
|
|
169
|
+
&:focus-within {
|
|
170
|
+
outline: 2px solid var(--accent, var(--osi-accent));
|
|
171
|
+
outline-offset: -2px;
|
|
172
|
+
border-radius: var(--radius-sm, 4px);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@include item-animation;
|
|
149
176
|
}
|
|
150
177
|
|
|
151
178
|
.info-row__label {
|
|
152
179
|
@include type-label;
|
|
153
180
|
margin-bottom: 0;
|
|
154
|
-
min-width:
|
|
181
|
+
min-width: 100px;
|
|
182
|
+
font-weight: 600;
|
|
183
|
+
color: var(--osi-muted-foreground, var(--muted-foreground));
|
|
184
|
+
font-size: 0.8125rem;
|
|
185
|
+
letter-spacing: 0.01em;
|
|
186
|
+
// Remove orange color - use muted foreground for better hierarchy
|
|
187
|
+
opacity: 0.85;
|
|
155
188
|
}
|
|
156
189
|
|
|
157
190
|
.info-row__value {
|
|
@@ -159,6 +192,12 @@
|
|
|
159
192
|
text-align: right;
|
|
160
193
|
flex: 1;
|
|
161
194
|
color: var(--foreground);
|
|
195
|
+
font-weight: 500;
|
|
196
|
+
font-size: 0.9375rem;
|
|
197
|
+
line-height: 1.4;
|
|
198
|
+
// Ensure proper text wrapping
|
|
199
|
+
word-break: break-word;
|
|
200
|
+
overflow-wrap: break-word;
|
|
162
201
|
}
|
|
163
202
|
|
|
164
203
|
.info-empty {
|
|
@@ -174,8 +213,8 @@
|
|
|
174
213
|
}
|
|
175
214
|
|
|
176
215
|
.news-item {
|
|
177
|
-
@include
|
|
178
|
-
@include
|
|
216
|
+
@include card;
|
|
217
|
+
@include item-animation;
|
|
179
218
|
}
|
|
180
219
|
|
|
181
220
|
.news-item__header {
|
|
@@ -219,8 +258,8 @@
|
|
|
219
258
|
}
|
|
220
259
|
|
|
221
260
|
.contact-card {
|
|
222
|
-
@include
|
|
223
|
-
@include
|
|
261
|
+
@include card;
|
|
262
|
+
@include item-animation;
|
|
224
263
|
flex-direction: row;
|
|
225
264
|
align-items: flex-start;
|
|
226
265
|
gap: var(--space-3);
|
|
@@ -283,8 +322,8 @@
|
|
|
283
322
|
}
|
|
284
323
|
|
|
285
324
|
.event-card {
|
|
286
|
-
@include
|
|
287
|
-
@include
|
|
325
|
+
@include card;
|
|
326
|
+
@include item-animation;
|
|
288
327
|
flex-direction: row;
|
|
289
328
|
align-items: flex-start;
|
|
290
329
|
gap: var(--space-3);
|
|
@@ -343,8 +382,8 @@
|
|
|
343
382
|
}
|
|
344
383
|
|
|
345
384
|
.quotation-card {
|
|
346
|
-
@include
|
|
347
|
-
@include
|
|
385
|
+
@include card;
|
|
386
|
+
@include item-animation;
|
|
348
387
|
}
|
|
349
388
|
|
|
350
389
|
.quotation-card__icon {
|
|
@@ -356,7 +395,6 @@
|
|
|
356
395
|
font-style: italic;
|
|
357
396
|
line-height: 1.6;
|
|
358
397
|
padding-left: var(--space-3);
|
|
359
|
-
border-left: 2px solid var(--accent);
|
|
360
398
|
color: var(--foreground);
|
|
361
399
|
}
|
|
362
400
|
|
|
@@ -387,8 +425,8 @@
|
|
|
387
425
|
}
|
|
388
426
|
|
|
389
427
|
.reference-card {
|
|
390
|
-
@include
|
|
391
|
-
@include
|
|
428
|
+
@include card;
|
|
429
|
+
@include item-animation;
|
|
392
430
|
}
|
|
393
431
|
|
|
394
432
|
.reference-card__header {
|
|
@@ -439,8 +477,8 @@
|
|
|
439
477
|
}
|
|
440
478
|
|
|
441
479
|
.network-card {
|
|
442
|
-
@include
|
|
443
|
-
@include
|
|
480
|
+
@include card;
|
|
481
|
+
@include item-animation;
|
|
444
482
|
}
|
|
445
483
|
|
|
446
484
|
.network-card__icon {
|
|
@@ -476,8 +514,8 @@
|
|
|
476
514
|
}
|
|
477
515
|
|
|
478
516
|
.product-card {
|
|
479
|
-
@include
|
|
480
|
-
@include
|
|
517
|
+
@include card;
|
|
518
|
+
@include item-animation;
|
|
481
519
|
}
|
|
482
520
|
|
|
483
521
|
.product-card__header {
|
|
@@ -531,8 +569,8 @@
|
|
|
531
569
|
}
|
|
532
570
|
|
|
533
571
|
.solution-card {
|
|
534
|
-
@include
|
|
535
|
-
@include
|
|
572
|
+
@include card;
|
|
573
|
+
@include item-animation;
|
|
536
574
|
}
|
|
537
575
|
|
|
538
576
|
.solution-card__icon {
|
|
@@ -597,8 +635,8 @@
|
|
|
597
635
|
}
|
|
598
636
|
|
|
599
637
|
.timeline-item {
|
|
600
|
-
@include
|
|
601
|
-
@include
|
|
638
|
+
@include card;
|
|
639
|
+
@include item-animation;
|
|
602
640
|
position: relative;
|
|
603
641
|
|
|
604
642
|
&::before {
|
|
@@ -642,8 +680,8 @@
|
|
|
642
680
|
}
|
|
643
681
|
|
|
644
682
|
.brand-color-tile {
|
|
645
|
-
@include
|
|
646
|
-
@include
|
|
683
|
+
@include card;
|
|
684
|
+
@include item-animation;
|
|
647
685
|
padding: 0;
|
|
648
686
|
overflow: hidden;
|
|
649
687
|
}
|
|
@@ -681,8 +719,8 @@
|
|
|
681
719
|
}
|
|
682
720
|
|
|
683
721
|
.social-post {
|
|
684
|
-
@include
|
|
685
|
-
@include
|
|
722
|
+
@include card;
|
|
723
|
+
@include item-animation;
|
|
686
724
|
}
|
|
687
725
|
|
|
688
726
|
.social-post__header {
|
|
@@ -726,8 +764,8 @@
|
|
|
726
764
|
}
|
|
727
765
|
|
|
728
766
|
.gallery-item {
|
|
729
|
-
@include
|
|
730
|
-
@include
|
|
767
|
+
@include card;
|
|
768
|
+
@include item-animation;
|
|
731
769
|
padding: 0;
|
|
732
770
|
overflow: hidden;
|
|
733
771
|
aspect-ratio: 4/3;
|
|
@@ -763,8 +801,8 @@
|
|
|
763
801
|
}
|
|
764
802
|
|
|
765
803
|
.video-card {
|
|
766
|
-
@include
|
|
767
|
-
@include
|
|
804
|
+
@include card;
|
|
805
|
+
@include item-animation;
|
|
768
806
|
padding: 0;
|
|
769
807
|
overflow: hidden;
|
|
770
808
|
}
|
|
@@ -837,7 +875,7 @@
|
|
|
837
875
|
// =====================================================================
|
|
838
876
|
|
|
839
877
|
.chart-container {
|
|
840
|
-
@include
|
|
878
|
+
@include card;
|
|
841
879
|
min-height: 180px;
|
|
842
880
|
|
|
843
881
|
canvas {
|
|
@@ -886,8 +924,8 @@
|
|
|
886
924
|
}
|
|
887
925
|
|
|
888
926
|
.list-card {
|
|
889
|
-
@include
|
|
890
|
-
@include
|
|
927
|
+
@include card;
|
|
928
|
+
@include item-animation;
|
|
891
929
|
flex-direction: row;
|
|
892
930
|
align-items: center;
|
|
893
931
|
gap: var(--space-3);
|
|
@@ -926,7 +964,7 @@
|
|
|
926
964
|
// =====================================================================
|
|
927
965
|
|
|
928
966
|
.map-container {
|
|
929
|
-
@include
|
|
967
|
+
@include card;
|
|
930
968
|
padding: var(--space-5);
|
|
931
969
|
min-height: 120px;
|
|
932
970
|
display: flex;
|
|
@@ -942,8 +980,8 @@
|
|
|
942
980
|
}
|
|
943
981
|
|
|
944
982
|
.map-card {
|
|
945
|
-
@include
|
|
946
|
-
@include
|
|
983
|
+
@include card;
|
|
984
|
+
@include item-animation;
|
|
947
985
|
}
|
|
948
986
|
|
|
949
987
|
.map-card__icon {
|
|
@@ -987,8 +1025,8 @@
|
|
|
987
1025
|
}
|
|
988
1026
|
|
|
989
1027
|
.faq-card {
|
|
990
|
-
@include
|
|
991
|
-
@include
|
|
1028
|
+
@include card;
|
|
1029
|
+
@include item-animation;
|
|
992
1030
|
}
|
|
993
1031
|
|
|
994
1032
|
.faq-card__question {
|
|
@@ -1000,7 +1038,6 @@
|
|
|
1000
1038
|
@include type-subtitle;
|
|
1001
1039
|
margin: 0;
|
|
1002
1040
|
padding-left: var(--space-3);
|
|
1003
|
-
border-left: 2px solid var(--accent);
|
|
1004
1041
|
opacity: 0.9;
|
|
1005
1042
|
}
|
|
1006
1043
|
|
|
@@ -1017,8 +1054,8 @@
|
|
|
1017
1054
|
}
|
|
1018
1055
|
|
|
1019
1056
|
.pricing-card {
|
|
1020
|
-
@include
|
|
1021
|
-
@include
|
|
1057
|
+
@include card;
|
|
1058
|
+
@include item-animation;
|
|
1022
1059
|
text-align: center;
|
|
1023
1060
|
}
|
|
1024
1061
|
|
|
@@ -1063,19 +1100,6 @@
|
|
|
1063
1100
|
@include empty-state;
|
|
1064
1101
|
}
|
|
1065
1102
|
|
|
1066
|
-
// =====================================================================
|
|
1067
|
-
// FALLBACK SECTION
|
|
1068
|
-
// =====================================================================
|
|
1069
|
-
|
|
1070
|
-
.fallback-empty {
|
|
1071
|
-
@include empty-state;
|
|
1072
|
-
}
|
|
1073
|
-
|
|
1074
|
-
.fallback-message {
|
|
1075
|
-
@include type-subtitle;
|
|
1076
|
-
margin: 0;
|
|
1077
|
-
}
|
|
1078
|
-
|
|
1079
1103
|
// =====================================================================
|
|
1080
1104
|
// SECTION BODY
|
|
1081
1105
|
// =====================================================================
|
|
@@ -48,21 +48,22 @@
|
|
|
48
48
|
// COMPACT CARD VARIANTS
|
|
49
49
|
// =====================================================================
|
|
50
50
|
|
|
51
|
+
// =====================================================================
|
|
52
|
+
// CARD VARIANT: COMPACT
|
|
53
|
+
// =====================================================================
|
|
54
|
+
// Compact spacing variant using standardized tokens
|
|
55
|
+
|
|
51
56
|
@mixin card-compact {
|
|
52
|
-
@include base.card;
|
|
53
|
-
|
|
54
|
-
gap: var(--spacing-compact-sm);
|
|
55
|
-
min-height: var(--section-card-compact-height);
|
|
57
|
+
@include base.card("compact");
|
|
58
|
+
// Gap already set by base.card with compact spacing
|
|
56
59
|
}
|
|
57
60
|
|
|
58
61
|
@mixin card-compact-elevated {
|
|
59
|
-
@include card-compact;
|
|
60
|
-
@include effects.elevated-card;
|
|
62
|
+
@include components.card-elevated("compact");
|
|
61
63
|
}
|
|
62
64
|
|
|
63
65
|
@mixin card-compact-glass {
|
|
64
|
-
@include card-compact;
|
|
65
|
-
@include effects.glass-card;
|
|
66
|
+
@include components.card-glass("compact");
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
// =====================================================================
|
|
@@ -10,30 +10,59 @@
|
|
|
10
10
|
@use "design-tokens" as *;
|
|
11
11
|
@use "modern-effects" as effects;
|
|
12
12
|
@use "sections-base" as base;
|
|
13
|
+
@use "section-animations" as *;
|
|
13
14
|
|
|
14
15
|
// =====================================================================
|
|
15
16
|
// ENHANCED CARD VARIANTS
|
|
16
17
|
// =====================================================================
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
// =====================================================================
|
|
20
|
+
// CARD VARIANT: ELEVATED
|
|
21
|
+
// =====================================================================
|
|
22
|
+
// Extends base card with shadow and lift effects on hover
|
|
23
|
+
// Uses standardized tokens for consistency
|
|
24
|
+
|
|
25
|
+
@mixin card-elevated($spacing: "normal") {
|
|
26
|
+
@include base.card($spacing);
|
|
27
|
+
|
|
28
|
+
// Enhanced shadow for elevation
|
|
29
|
+
box-shadow: var(--osi-section-item-shadow);
|
|
30
|
+
position: relative;
|
|
31
|
+
|
|
32
|
+
// Unified hover effect - no transforms for consistency
|
|
33
|
+
@include section-card-hover;
|
|
22
34
|
}
|
|
23
35
|
|
|
24
|
-
|
|
36
|
+
// =====================================================================
|
|
37
|
+
// CARD VARIANT: GLASS
|
|
38
|
+
// =====================================================================
|
|
39
|
+
// Glass morphism effect
|
|
40
|
+
// Uses standardized tokens for consistency
|
|
41
|
+
|
|
42
|
+
@mixin card-glass($spacing: "normal") {
|
|
43
|
+
@include base.card($spacing);
|
|
25
44
|
@include effects.glass-card;
|
|
26
|
-
padding: var(--spacing-base);
|
|
27
|
-
border-radius: var(--radius-lg);
|
|
28
45
|
}
|
|
29
46
|
|
|
30
|
-
|
|
47
|
+
// =====================================================================
|
|
48
|
+
// CARD VARIANT: NEUMORPHIC
|
|
49
|
+
// =====================================================================
|
|
50
|
+
// Soft UI neumorphic effect
|
|
51
|
+
// Uses standardized tokens for consistency
|
|
52
|
+
|
|
53
|
+
@mixin card-neumorphic($spacing: "normal") {
|
|
54
|
+
@include base.card($spacing);
|
|
31
55
|
@include effects.neumorphic-card(true);
|
|
32
|
-
padding: var(--spacing-base);
|
|
33
56
|
}
|
|
34
57
|
|
|
35
|
-
|
|
36
|
-
|
|
58
|
+
// =====================================================================
|
|
59
|
+
// CARD VARIANT: WITH GRADIENT
|
|
60
|
+
// =====================================================================
|
|
61
|
+
// Card with gradient background and accent
|
|
62
|
+
// Uses standardized tokens for consistency
|
|
63
|
+
|
|
64
|
+
@mixin card-with-gradient($spacing: "normal") {
|
|
65
|
+
@include base.card($spacing);
|
|
37
66
|
@include effects.gradient-background;
|
|
38
67
|
@include effects.gradient-accent-top;
|
|
39
68
|
}
|