@finqu/cool 1.3.0 → 2.0.2

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 (74) hide show
  1. package/README.md +23 -9
  2. package/dist/css/cool.css +13391 -7742
  3. package/dist/css/cool.css.map +1 -1
  4. package/dist/css/cool.min.css +2 -93
  5. package/dist/css/cool.min.css.map +1 -1
  6. package/dist/js/cool.bundle.js +16051 -17050
  7. package/dist/js/cool.bundle.js.map +1 -1
  8. package/dist/js/cool.bundle.min.js +11 -18
  9. package/dist/js/cool.bundle.min.js.map +1 -1
  10. package/dist/js/cool.esm.js +3469 -4468
  11. package/dist/js/cool.esm.js.map +1 -1
  12. package/dist/js/cool.esm.min.js +2 -8
  13. package/dist/js/cool.esm.min.js.map +1 -1
  14. package/dist/js/cool.js +5083 -6089
  15. package/dist/js/cool.js.map +1 -1
  16. package/dist/js/cool.min.js +2 -8
  17. package/dist/js/cool.min.js.map +1 -1
  18. package/package.json +48 -16
  19. package/scss/LISENCE +15 -0
  20. package/scss/_badge.scss +134 -0
  21. package/scss/_button-group.scss +80 -0
  22. package/scss/_buttons.scss +304 -0
  23. package/scss/_dark.scss +637 -0
  24. package/scss/_dialog.scss +351 -0
  25. package/scss/_dropdown.scss +165 -0
  26. package/scss/_forms.scss +613 -0
  27. package/scss/_frame.scss +948 -0
  28. package/scss/_grid.scss +215 -0
  29. package/scss/_input-group.scss +326 -0
  30. package/scss/_list-group.scss +127 -0
  31. package/scss/_media.scss +439 -0
  32. package/scss/_navbar.scss +122 -0
  33. package/scss/_notification.scss +115 -0
  34. package/scss/_pagination.scss +82 -0
  35. package/scss/_popover.scss +61 -0
  36. package/scss/_reboot.scss +306 -0
  37. package/scss/_root.scss +848 -0
  38. package/scss/_section.scss +735 -0
  39. package/scss/_select.scss +559 -0
  40. package/scss/_tables.scss +611 -0
  41. package/scss/_tabs.scss +50 -0
  42. package/scss/_toast.scss +277 -0
  43. package/scss/_tooltip.scss +130 -0
  44. package/scss/_typography.scss +166 -0
  45. package/scss/_variables.scss +1229 -0
  46. package/scss/cool.scss +69 -0
  47. package/scss/utilities/_align.scss +51 -0
  48. package/scss/utilities/_animation.scss +165 -0
  49. package/scss/utilities/_background.scss +72 -0
  50. package/scss/utilities/_borders.scss +205 -0
  51. package/scss/utilities/_collapse.scss +28 -0
  52. package/scss/utilities/_cursor.scss +160 -0
  53. package/scss/utilities/_display.scss +116 -0
  54. package/scss/utilities/_embed.scss +89 -0
  55. package/scss/utilities/_fill.scss +79 -0
  56. package/scss/utilities/_filters.scss +233 -0
  57. package/scss/utilities/_flex.scss +216 -0
  58. package/scss/utilities/_grid.scss +136 -0
  59. package/scss/utilities/_opacity.scss +131 -0
  60. package/scss/utilities/_overflow.scss +242 -0
  61. package/scss/utilities/_perfect-scrollbar.scss +147 -0
  62. package/scss/utilities/_pointer-events.scss +125 -0
  63. package/scss/utilities/_position.scss +130 -0
  64. package/scss/utilities/_screen-readers.scss +95 -0
  65. package/scss/utilities/_shadows.scss +195 -0
  66. package/scss/utilities/_sizing.scss +288 -0
  67. package/scss/utilities/_spacing.scss +168 -0
  68. package/scss/utilities/_stroke.scss +124 -0
  69. package/scss/utilities/_text.scss +420 -0
  70. package/scss/utilities/_transform.scss +232 -0
  71. package/scss/utilities/_transitions.scss +147 -0
  72. package/scss/utilities/_user-select.scss +93 -0
  73. package/scss/utilities/_visibility.scss +66 -0
  74. package/scss/utilities/_z-index.scss +169 -0
@@ -0,0 +1,735 @@
1
+ @use "variables" as *;
2
+ /* Section ========================================================================== */
3
+
4
+ @mixin cool-section {
5
+ .section {
6
+ display: flex;
7
+ flex-direction: column;
8
+ margin-bottom: var(--cool-section-spacer);
9
+ box-shadow: var(--cool-section-box-shadow);
10
+ border-radius: var(--cool-section-border-radius);
11
+ border: var(--cool-section-border-width) solid var(--cool-section-border-color);
12
+
13
+ &:has(.select.show) {
14
+ z-index: var(--cool-zindex-select);
15
+ }
16
+
17
+ @include media-breakpoint-down(sm) {
18
+ margin-bottom: var(--cool-section-spacer-mobile);
19
+ }
20
+
21
+ &:has(.section-content .expander.expanded) {
22
+ .section-title.section-title-collapsible {
23
+ border-bottom-left-radius: 0;
24
+ border-bottom-right-radius: 0;
25
+ }
26
+ }
27
+
28
+ &:not([class*="order-"]):last-child,
29
+ &.last-child {
30
+ margin-bottom: 0;
31
+ }
32
+
33
+ > * {
34
+ position: relative;
35
+
36
+ &:only-child {
37
+ border-radius: var(--cool-section-border-radius);
38
+ }
39
+
40
+ &:first-child:not(:only-child) {
41
+ border-top-left-radius: var(--cool-section-border-radius);
42
+ border-top-right-radius: var(--cool-section-border-radius);
43
+ }
44
+
45
+ &:last-child:not(:only-child),
46
+ &.is-last-visible {
47
+ border-bottom-left-radius: var(--cool-section-border-radius);
48
+ border-bottom-right-radius: var(--cool-section-border-radius);
49
+ }
50
+
51
+ &:not(:first-child):not(:last-child):not(.is-last-visible) {
52
+ border-radius: 0;
53
+ }
54
+ }
55
+
56
+ .section-content:not(.d-none) + .section-content,
57
+ .section-title + .section-content,
58
+ .section-filters + .section-content,
59
+ .section-bulk-actions + .section-content,
60
+ * + .section-header {
61
+ padding-top: 0;
62
+ }
63
+ }
64
+
65
+ .section-container {
66
+ margin-bottom: var(--cool-section-spacer);
67
+
68
+ @include media-breakpoint-down(sm) {
69
+ margin-bottom: var(--cool-section-spacer-mobile);
70
+ }
71
+ }
72
+
73
+ .section-title {
74
+ font-family: var(--cool-section-title-font-family);
75
+ font-size: var(--cool-section-title-font-size);
76
+ font-weight: var(--cool-section-title-font-weight);
77
+ color: var(--cool-section-title-color);
78
+ background: var(--cool-section-title-bg);
79
+ padding: var(--cool-section-padding);
80
+ display: flex;
81
+ align-items: center;
82
+ gap: var(--cool-spacing-2);
83
+ flex-grow: 1;
84
+
85
+ @include media-breakpoint-down(sm) {
86
+ flex-direction: var(--cool-section-title-direction-mobile, column);
87
+ align-items: var(--cool-section-title-align-mobile, start);
88
+ }
89
+
90
+ .title {
91
+ display: inline-flex;
92
+ flex-wrap: wrap;
93
+ gap: var(--cool-spacing-1);
94
+ align-items: center;
95
+
96
+ p {
97
+ font-weight: var(--cool-font-weight-bold);
98
+ font-size: var(--cool-font-size-base);
99
+ margin: 0;
100
+ }
101
+
102
+ .section-subtitle {
103
+ flex: 0 0 100%;
104
+ --cool-section-subtitle-font-family: var(--cool-font-family-base);
105
+ --cool-section-subtitle-font-size: var(--cool-font-size-base);
106
+ --cool-section-subtitle-font-weight: var(--cool-font-weight-bold);
107
+ --cool-section-spacer: 0;
108
+
109
+ @include media-breakpoint-down(sm) {
110
+ --cool-section-spacer: 0;
111
+ }
112
+ }
113
+ }
114
+
115
+ .actions {
116
+ display: inline-flex;
117
+ gap: var(--cool-spacing-1);
118
+ color: var(--cool-section-title-actions-color);
119
+ font-weight: var(--cool-font-weight-normal);
120
+ font-size: var(--cool-font-size-base);
121
+ font-family: var(--cool-font-family-base);
122
+ margin-left: auto;
123
+ text-align: right;
124
+
125
+ @include media-breakpoint-down(sm) {
126
+ margin-left: var(--cool-section-title-actions-margin-left-mobile, 0);
127
+ text-align: var(--cool-section-title-actions-align-mobile, left);
128
+ }
129
+ }
130
+
131
+ > .icon,
132
+ > .title > .icon {
133
+ color: var(--cool-section-title-icons-color);
134
+ font-size: var(--cool-section-title-icons-size);
135
+ margin-right: 5px;
136
+ }
137
+
138
+ > .btn-text {
139
+ --cool-btn-font-family: var(--cool-section-title-font-family);
140
+ --cool-btn-font-size: var(--cool-section-title-font-size);
141
+ --cool-btn-font-weight: var(--cool-section-title-font-weight);
142
+ --cool-btn-line-height: var(--cool-line-height-base);
143
+ --cool-btn-bg: var(--cool-section-title-bg);
144
+ --cool-btn-color: var(--cool-section-title-color);
145
+ }
146
+
147
+ .btn-group,
148
+ .form-group {
149
+ margin: 0;
150
+ }
151
+ }
152
+
153
+ .section-subtitle {
154
+ display: block;
155
+ margin-bottom: var(--cool-section-spacer);
156
+ font-family: var(--cool-section-subtitle-font-family);
157
+ font-size: var(--cool-section-subtitle-font-size);
158
+ font-weight: var(--cool-section-subtitle-font-weight);
159
+ color: var(--cool-section-subtitle-color);
160
+ margin-bottom: var(--cool-section-spacer);
161
+
162
+ @include media-breakpoint-down(sm) {
163
+ --cool-section-spacer: var(--cool-section-spacer-mobile);
164
+ }
165
+ }
166
+
167
+ .section-content {
168
+ flex-direction: column;
169
+ flex-grow: 1;
170
+ background: var(--cool-section-bg);
171
+ color: var(--cool-section-color);
172
+ padding-top: var(--cool-section-padding-top, var(--cool-section-padding));
173
+ padding-bottom: var(--cool-section-padding-bottom, var(--cool-section-padding));
174
+ padding-left: var(--cool-section-padding-left, var(--cool-section-padding));
175
+ padding-right: var(--cool-section-padding-right, var(--cool-section-padding));
176
+ box-sizing: border-box;
177
+ overflow: auto;
178
+
179
+ &:has(.fr-popup.fr-active) {
180
+ overflow: visible;
181
+ }
182
+
183
+ &:has(> .table-sticky-actions:only-child),
184
+ &:has(> .content-full-width-m:only-child > .table),
185
+ &:has(> .content-full-width:only-child > .table),
186
+ &:has(> .table:only-child) {
187
+ padding-top: 0;
188
+ padding-bottom: 0;
189
+
190
+ &:has(> .table.table-responsive) {
191
+ @include media-breakpoint-down(sm) {
192
+ padding-top: var(--cool-section-padding);
193
+ padding-bottom: var(--cool-section-padding);
194
+ }
195
+ }
196
+
197
+ .table {
198
+ tbody {
199
+ tr:last-child {
200
+ td:first-child {
201
+ border-bottom-left-radius: var(--cool-section-border-radius);
202
+ }
203
+
204
+ td:last-child {
205
+ border-bottom-right-radius: var(--cool-section-border-radius);
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+
212
+ &:first-child {
213
+ &:has(> .table-sticky-actions:only-child),
214
+ &:has(> .content-full-width-m:only-child > .table),
215
+ &:has(> .content-full-width:only-child > .table),
216
+ &:has(> .table:only-child) {
217
+ padding-top: 0;
218
+ padding-bottom: 0;
219
+
220
+ .table-sticky-actions {
221
+ border-radius: var(--cool-section-border-radius);
222
+ }
223
+
224
+ .table {
225
+ thead {
226
+ tr {
227
+ th:first-child {
228
+ border-top-left-radius: var(--cool-section-border-radius);
229
+ }
230
+
231
+ th:last-child {
232
+ border-top-right-radius: var(--cool-section-border-radius);
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }
239
+
240
+ &:has(> .content-full-width-m:only-child > .table.table-responsive),
241
+ &:has(> .content-full-width:only-child > .table.table-responsive),
242
+ &:has(> .table.table-responsive:only-child) {
243
+ @include media-breakpoint-down(sm) {
244
+ padding-top: var(--cool-section-padding);
245
+ padding-bottom: var(--cool-section-padding);
246
+ }
247
+ }
248
+
249
+ .content-full-width-m {
250
+ @include media-breakpoint-down(lg) {
251
+ margin-inline: calc(-1 * var(--cool-section-padding));
252
+ }
253
+ }
254
+
255
+ .content-full-width {
256
+ @include media-breakpoint-up(md) {
257
+ margin-inline: calc(-1 * var(--cool-section-padding));
258
+ }
259
+ }
260
+
261
+ p:last-child {
262
+ margin-bottom: 0;
263
+ }
264
+
265
+ & > .form-group:first-child {
266
+ margin-top: 1px;
267
+ }
268
+
269
+ & > .form-group:last-child {
270
+ margin-bottom: 0;
271
+ }
272
+ }
273
+
274
+ .section-collapse {
275
+ position: relative;
276
+ overflow: hidden;
277
+
278
+ &:not(.show) {
279
+ display: none;
280
+ }
281
+
282
+ &.show {
283
+ overflow: visible;
284
+ }
285
+ }
286
+
287
+ .section-image {
288
+ position: relative;
289
+ background: var(--cool-section-bg);
290
+ background-size: cover;
291
+ background-repeat: no-repeat;
292
+ background-position: center;
293
+ overflow: hidden;
294
+ aspect-ratio: var(--cool-aspect-ratio, auto);
295
+ min-height: var(--cool-image-height, auto);
296
+
297
+ &.size-xs {
298
+ --cool-image-height: 120px;
299
+ }
300
+
301
+ &.size-sm {
302
+ --cool-image-height: 170px;
303
+ }
304
+
305
+ &.size-md {
306
+ --cool-image-height: 230px;
307
+ }
308
+
309
+ &.size-lg {
310
+ --cool-image-height: 326px;
311
+ }
312
+
313
+ &.darken-image {
314
+ &::after {
315
+ position: absolute;
316
+ inset: 0;
317
+ background-color: var(--cool-section-image-darken-bg);
318
+ content: "";
319
+ pointer-events: none;
320
+ }
321
+ }
322
+
323
+ .image-badge {
324
+ position: absolute;
325
+ top: 30px;
326
+ left: -40px;
327
+ transform: rotate(-40deg);
328
+ background-color: var(--cool-section-image-badge-bg);
329
+ color: var(--cool-section-image-badge-color);
330
+ box-shadow: var(--cool-section-image-badge-shadow);
331
+ text-align: center;
332
+ letter-spacing: 1px;
333
+ width: 220px;
334
+ text-overflow: ellipsis;
335
+ overflow: hidden;
336
+ box-sizing: border-box;
337
+ padding: var(--cool-section-image-badge-padding);
338
+ font-size: var(--cool-section-image-badge-font-size);
339
+
340
+ .image-badge-content {
341
+ display: block;
342
+ width: 145px;
343
+ height: 18px;
344
+ margin-left: 28px;
345
+ text-overflow: ellipsis;
346
+ overflow: hidden;
347
+ }
348
+ }
349
+ }
350
+
351
+ .section-video {
352
+ height: 100%;
353
+ background-color: var(--cool-section-bg);
354
+ overflow: hidden;
355
+ aspect-ratio: var(--cool-aspect-ratio, auto);
356
+ height: var(--cool-video-height, auto);
357
+
358
+ &.size-md {
359
+ --cool-video-height: 230px;
360
+ }
361
+
362
+ &.size-lg {
363
+ --cool-video-height: 326px;
364
+ }
365
+
366
+ &.has-content {
367
+ border-bottom-left-radius: 0;
368
+ border-bottom-right-radius: 0;
369
+ }
370
+ }
371
+
372
+ .section-hr {
373
+ background: var(--cool-section-bg);
374
+ position: relative;
375
+
376
+ & + * {
377
+ padding-top: var(--cool-section-padding);
378
+ }
379
+
380
+ &::after {
381
+ display: block;
382
+ content: "";
383
+ height: var(--cool-section-divider-height);
384
+ background: var(--cool-section-divider-color);
385
+ margin-inline: var(--cool-section-divider-padding);
386
+ }
387
+
388
+ &.content-full-width,
389
+ &.content-full-width-m {
390
+ &::after {
391
+ margin-inline: 0;
392
+ }
393
+ }
394
+ }
395
+
396
+ .section-header {
397
+ display: flex;
398
+ background-color: var(--cool-section-bg);
399
+ gap: var(--cool-spacing-2);
400
+ align-items: stretch;
401
+ width: 100%;
402
+ padding-left: var(--cool-spacing-2);
403
+ padding-right: var(--cool-spacing-2);
404
+ border-bottom: var(--cool-border-width) solid var(--cool-section-divider-color);
405
+
406
+ .section-tabs {
407
+ --cool-section-tabs-bg: transparent;
408
+ flex: 1 1 0;
409
+ min-width: 0;
410
+ width: 100%;
411
+ height: auto;
412
+
413
+ .tabs-container {
414
+ height: 100%;
415
+ }
416
+ }
417
+
418
+ .section-tabs .tabs-container,
419
+ .section-search {
420
+ padding-left: 0;
421
+ padding-right: 0;
422
+ }
423
+
424
+ @include media-breakpoint-up(sm) {
425
+ .section-search {
426
+ padding-top: var(--cool-spacing-2);
427
+ padding-bottom: var(--cool-spacing-2);
428
+ flex: 0 0 auto;
429
+ min-width: 200px;
430
+ }
431
+ }
432
+
433
+ @include media-breakpoint-down(sm) {
434
+ flex-direction: column;
435
+ padding-top: var(--cool-spacing-2);
436
+ padding-bottom: var(--cool-spacing-2);
437
+
438
+ &:has(.section-tabs) {
439
+ padding-top: 0;
440
+ }
441
+ }
442
+ }
443
+
444
+ .section-tabs {
445
+ display: flex;
446
+ align-items: center;
447
+ background: var(--cool-section-tabs-bg);
448
+ color: var(--cool-section-color);
449
+
450
+ .tabs-container {
451
+ display: flex;
452
+ align-items: stretch;
453
+ flex-wrap: nowrap;
454
+ list-style: none;
455
+ padding: 0 var(--cool-section-tabs-item-gap);
456
+ margin: 0;
457
+ gap: var(--cool-section-tabs-item-gap);
458
+ position: relative;
459
+ overflow: hidden;
460
+ flex: 1;
461
+
462
+ /* Prevent visual flash by initially hiding potentially overflowing tabs */
463
+ &:not(.js-initialized) {
464
+ overflow: hidden;
465
+
466
+ /* Use a gradient mask to fade out potentially overflowing content */
467
+ &::after {
468
+ content: "";
469
+ position: absolute;
470
+ top: 0;
471
+ right: 0;
472
+ bottom: 0;
473
+ width: 60px;
474
+ background: linear-gradient(
475
+ to left,
476
+ var(--cool-section-bg, #fff) 0%,
477
+ var(--cool-section-bg, #fff) 30%,
478
+ color-mix(in srgb, var(--cool-section-bg, #fff) 80%, transparent) 50%,
479
+ transparent 100%
480
+ );
481
+ pointer-events: none;
482
+ z-index: 1;
483
+ }
484
+
485
+ /* Initially hide tabs that are likely to overflow on smaller screens */
486
+ @media (max-width: 1200px) {
487
+ > .tab-item:nth-child(n + 6) {
488
+ visibility: hidden;
489
+ }
490
+ }
491
+
492
+ @media (max-width: 992px) {
493
+ > .tab-item:nth-child(n + 5) {
494
+ visibility: hidden;
495
+ }
496
+ }
497
+
498
+ @media (max-width: 768px) {
499
+ > .tab-item:nth-child(n + 4) {
500
+ visibility: hidden;
501
+ }
502
+ }
503
+
504
+ @media (max-width: 576px) {
505
+ > .tab-item:nth-child(n + 3) {
506
+ visibility: hidden;
507
+ }
508
+ }
509
+ }
510
+
511
+ /* Once initialized, let JavaScript control visibility */
512
+ &.js-initialized {
513
+ > .tab-item {
514
+ visibility: visible;
515
+
516
+ &.invisible {
517
+ visibility: hidden;
518
+ }
519
+ }
520
+ }
521
+
522
+ > .tab-item {
523
+ display: flex;
524
+ align-items: stretch;
525
+ flex-grow: 0;
526
+ flex-shrink: 0;
527
+ position: relative;
528
+ margin: 0;
529
+ font-family: var(--cool-section-tabs-font-family);
530
+ font-weight: var(--cool-section-tabs-font-weight);
531
+ padding: 0;
532
+
533
+ > .tab-item-action {
534
+ display: flex;
535
+ align-items: center;
536
+ justify-content: center;
537
+ flex-grow: 1;
538
+ line-height: 1;
539
+ position: relative;
540
+ text-align: center;
541
+ cursor: pointer;
542
+ min-width: var(--cool-section-tabs-item-min-width);
543
+ color: var(--cool-section-tabs-color);
544
+ padding: var(--cool-section-tabs-item-padding-y) 0;
545
+ border-bottom: var(--cool-section-tabs-border-width) solid transparent;
546
+ border-radius: 0;
547
+ white-space: nowrap;
548
+
549
+ &:hover {
550
+ color: var(--cool-section-tabs-hover-color);
551
+ border-color: var(--cool-section-tabs-border-hover-color);
552
+ }
553
+
554
+ &.active {
555
+ color: var(--cool-section-tabs-active-color);
556
+ border-color: var(--cool-section-tabs-border-active-color);
557
+ font-weight: var(--cool-section-tabs-font-weight-active);
558
+ }
559
+ }
560
+ }
561
+ }
562
+
563
+ .dropdown-container {
564
+ display: flex;
565
+ opacity: 0;
566
+ visibility: hidden;
567
+
568
+ /* Initially hidden until JavaScript determines if needed */
569
+ &:not(.js-ready) {
570
+ opacity: 0;
571
+ visibility: hidden;
572
+ }
573
+
574
+ &.visible {
575
+ opacity: 1;
576
+ visibility: visible;
577
+ }
578
+ }
579
+ }
580
+
581
+ .section-search {
582
+ display: grid;
583
+ grid-auto-flow: column;
584
+ grid-template-columns: max-content;
585
+ width: max-content;
586
+ min-width: 200px;
587
+ height: fit-content;
588
+ gap: var(--cool-spacing-1);
589
+ padding: 0 var(--cool-section-tabs-item-gap);
590
+
591
+ @include media-breakpoint-down(sm) {
592
+ grid-template-columns: auto 1fr auto;
593
+ width: 100%;
594
+ }
595
+
596
+ // Prevent layout shift
597
+ > .btn {
598
+ width: 40px;
599
+ }
600
+
601
+ .select-title {
602
+ width: 12px;
603
+ }
604
+ }
605
+
606
+ .section-filters {
607
+ display: none;
608
+ flex-wrap: wrap;
609
+ background: var(--cool-section-filters-bg);
610
+ color: var(--cool-section-filters-color);
611
+ padding: var(--cool-spacing-2);
612
+ gap: var(--cool-grid-gutter-x);
613
+ box-sizing: border-box;
614
+
615
+ &.active {
616
+ display: flex;
617
+ border-bottom: var(--cool-border-width) solid var(--cool-section-divider-color);
618
+
619
+ @include media-breakpoint-down(md) {
620
+ flex-direction: column;
621
+ }
622
+ }
623
+
624
+ .filter {
625
+ display: none;
626
+ box-sizing: border-box;
627
+
628
+ &.active {
629
+ display: block;
630
+ }
631
+ }
632
+ }
633
+
634
+ .section-bulk-actions {
635
+ display: none;
636
+ }
637
+
638
+ .section-placeholder {
639
+ display: flex;
640
+ flex-direction: column;
641
+ flex-grow: 1;
642
+ align-items: center;
643
+ justify-content: center;
644
+ background: var(--cool-section-bg);
645
+ color: var(--cool-section-color);
646
+ padding-top: var(--cool-section-padding-top, calc(var(--cool-section-padding) * 3));
647
+ padding-bottom: var(--cool-section-padding-bottom, calc(var(--cool-section-padding) * 3));
648
+ padding-left: var(--cool-section-padding-left, calc(var(--cool-section-padding) * 0.5));
649
+ padding-right: var(--cool-section-padding-right, calc(var(--cool-section-padding) * 0.5));
650
+ overflow-x: auto;
651
+ box-sizing: border-box;
652
+ min-height: 200px;
653
+
654
+ .placeholder-icon {
655
+ .icon-container {
656
+ display: flex;
657
+ align-items: center;
658
+ justify-content: center;
659
+ border-radius: 50%;
660
+ width: var(--cool-section-placeholder-icon-size);
661
+ height: var(--cool-section-placeholder-icon-size);
662
+ color: var(--cool-section-placeholder-icon-color);
663
+ padding: var(--cool-section-placeholder-icon-padding);
664
+ margin: 0 auto;
665
+ box-sizing: content-box;
666
+
667
+ .icon {
668
+ font-size: var(--cool-section-placeholder-icon-font-size);
669
+ }
670
+ }
671
+
672
+ & + * {
673
+ margin-top: var(--cool-section-placeholder-spacing);
674
+ }
675
+ }
676
+
677
+ .placeholder-title {
678
+ text-align: center;
679
+ font-family: var(--cool-section-placeholder-title-font-family);
680
+ font-weight: var(--cool-section-placeholder-title-font-weight);
681
+
682
+ & + .placeholder-description {
683
+ margin-top: var(--cool-section-placeholder-spacing-sm);
684
+ }
685
+
686
+ & + .placeholder-action,
687
+ & + .placeholder-action-secondary {
688
+ margin-top: var(--cool-section-placeholder-spacing);
689
+ }
690
+ }
691
+
692
+ .placeholder-description {
693
+ text-align: center;
694
+ color: var(--cool-section-placeholder-description-color);
695
+
696
+ .description {
697
+ margin-bottom: 0;
698
+ }
699
+
700
+ & + .placeholder-action,
701
+ & + .placeholder-action-secondary {
702
+ margin-top: var(--cool-section-placeholder-spacing);
703
+ }
704
+ }
705
+
706
+ .placeholder-action {
707
+ text-align: center;
708
+
709
+ & + .placeholder-action-secondary {
710
+ margin-top: var(--cool-section-placeholder-spacing);
711
+ }
712
+ }
713
+ }
714
+
715
+ .section-secondary {
716
+ --cool-section-bg: var(--cool-section-secondary-bg);
717
+ --cool-section-title-bg: var(--cool-section-secondary-bg);
718
+ }
719
+
720
+ @supports (container-type: inline-size) {
721
+ .section {
722
+ @container (max-width: 768px) {
723
+ --cool-section-padding: var(--cool-section-padding-mobile);
724
+ }
725
+ }
726
+ }
727
+ }
728
+
729
+ @if $cool-use-component-layer {
730
+ @layer components {
731
+ @include cool-section;
732
+ }
733
+ } @else {
734
+ @include cool-section;
735
+ }