@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,216 @@
1
+ @use "../variables" as *;
2
+ @use "sass:map";
3
+ /* Flex ========================================================================== */
4
+
5
+ @mixin cool-flex {
6
+ @each $breakpoint in map.keys($grid-breakpoints) {
7
+ @include media-breakpoint-up($breakpoint) {
8
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
9
+
10
+ .flex#{$infix}-row {
11
+ flex-direction: row;
12
+ }
13
+ .flex#{$infix}-column {
14
+ flex-direction: column;
15
+ }
16
+ .flex#{$infix}-row-reverse {
17
+ flex-direction: row-reverse;
18
+ }
19
+ .flex#{$infix}-column-reverse {
20
+ flex-direction: column-reverse;
21
+ }
22
+
23
+ .flex#{$infix}-wrap {
24
+ flex-wrap: wrap;
25
+ }
26
+ .flex#{$infix}-nowrap {
27
+ flex-wrap: nowrap;
28
+ }
29
+ .flex#{$infix}-wrap-reverse {
30
+ flex-wrap: wrap-reverse;
31
+ }
32
+
33
+ .flex#{$infix}-fill {
34
+ flex: 1 1 auto;
35
+ }
36
+ .flex#{$infix}-grow-0 {
37
+ flex-grow: 0;
38
+ }
39
+ .flex#{$infix}-grow-1 {
40
+ flex-grow: 1;
41
+ }
42
+ .flex#{$infix}-shrink-0 {
43
+ flex-shrink: 0;
44
+ }
45
+ .flex#{$infix}-shrink-1 {
46
+ flex-shrink: 1;
47
+ }
48
+ .flex#{$infix}-basis-0 {
49
+ flex-basis: 0;
50
+ }
51
+ .flex#{$infix}-basis-auto {
52
+ flex-basis: auto;
53
+ }
54
+
55
+ .flex#{$infix}-1 {
56
+ flex: 1 1 0%;
57
+ }
58
+ .flex#{$infix}-auto {
59
+ flex: 1 1 auto;
60
+ }
61
+ .flex#{$infix}-initial {
62
+ flex: 0 1 auto;
63
+ }
64
+ .flex#{$infix}-none {
65
+ flex: none;
66
+ }
67
+
68
+ .justify-content#{$infix}-start {
69
+ justify-content: flex-start;
70
+ }
71
+ .justify-content#{$infix}-end {
72
+ justify-content: flex-end;
73
+ }
74
+ .justify-content#{$infix}-center {
75
+ justify-content: center;
76
+ }
77
+ .justify-content#{$infix}-between {
78
+ justify-content: space-between;
79
+ }
80
+ .justify-content#{$infix}-around {
81
+ justify-content: space-around;
82
+ }
83
+ .justify-content#{$infix}-evenly {
84
+ justify-content: space-evenly;
85
+ }
86
+ .justify-content#{$infix}-stretch {
87
+ justify-content: stretch;
88
+ }
89
+
90
+ .align-items#{$infix}-start {
91
+ align-items: flex-start;
92
+ }
93
+ .align-items#{$infix}-end {
94
+ align-items: flex-end;
95
+ }
96
+ .align-items#{$infix}-center {
97
+ align-items: center;
98
+ }
99
+ .align-items#{$infix}-baseline {
100
+ align-items: baseline;
101
+ }
102
+ .align-items#{$infix}-stretch {
103
+ align-items: stretch;
104
+ }
105
+
106
+ .align-content#{$infix}-start {
107
+ align-content: flex-start;
108
+ }
109
+ .align-content#{$infix}-end {
110
+ align-content: flex-end;
111
+ }
112
+ .align-content#{$infix}-center {
113
+ align-content: center;
114
+ }
115
+ .align-content#{$infix}-between {
116
+ align-content: space-between;
117
+ }
118
+ .align-content#{$infix}-around {
119
+ align-content: space-around;
120
+ }
121
+ .align-content#{$infix}-evenly {
122
+ align-content: space-evenly;
123
+ }
124
+ .align-content#{$infix}-stretch {
125
+ align-content: stretch;
126
+ }
127
+
128
+ .align-self#{$infix}-auto {
129
+ align-self: auto;
130
+ }
131
+ .align-self#{$infix}-start {
132
+ align-self: flex-start;
133
+ }
134
+ .align-self#{$infix}-end {
135
+ align-self: flex-end;
136
+ }
137
+ .align-self#{$infix}-center {
138
+ align-self: center;
139
+ }
140
+ .align-self#{$infix}-baseline {
141
+ align-self: baseline;
142
+ }
143
+ .align-self#{$infix}-stretch {
144
+ align-self: stretch;
145
+ }
146
+
147
+ @for $i from -1 through 12 {
148
+ .order#{$infix}-#{$i} {
149
+ order: $i;
150
+ }
151
+ }
152
+ .order#{$infix}-first {
153
+ order: -9999;
154
+ }
155
+ .order#{$infix}-last {
156
+ order: 9999;
157
+ }
158
+
159
+ .place-content#{$infix}-center {
160
+ place-content: center;
161
+ }
162
+ .place-content#{$infix}-start {
163
+ place-content: start;
164
+ }
165
+ .place-content#{$infix}-end {
166
+ place-content: end;
167
+ }
168
+ .place-content#{$infix}-between {
169
+ place-content: space-between;
170
+ }
171
+ .place-content#{$infix}-around {
172
+ place-content: space-around;
173
+ }
174
+ .place-content#{$infix}-evenly {
175
+ place-content: space-evenly;
176
+ }
177
+ .place-content#{$infix}-stretch {
178
+ place-content: stretch;
179
+ }
180
+
181
+ .place-items#{$infix}-center {
182
+ place-items: center;
183
+ }
184
+ .place-items#{$infix}-start {
185
+ place-items: start;
186
+ }
187
+ .place-items#{$infix}-end {
188
+ place-items: end;
189
+ }
190
+ .place-items#{$infix}-stretch {
191
+ place-items: stretch;
192
+ }
193
+
194
+ .place-self#{$infix}-center {
195
+ place-self: center;
196
+ }
197
+ .place-self#{$infix}-start {
198
+ place-self: start;
199
+ }
200
+ .place-self#{$infix}-end {
201
+ place-self: end;
202
+ }
203
+ .place-self#{$infix}-stretch {
204
+ place-self: stretch;
205
+ }
206
+ }
207
+ }
208
+ }
209
+
210
+ @if $cool-use-utilities-layer {
211
+ @layer utilities {
212
+ @include cool-flex;
213
+ }
214
+ } @else {
215
+ @include cool-flex;
216
+ }
@@ -0,0 +1,136 @@
1
+ @use "../variables" as *;
2
+ @use "sass:map";
3
+ /* Grid ========================================================================== */
4
+
5
+ @mixin cool-util-grid {
6
+ .d-grid {
7
+ display: grid;
8
+ }
9
+ .d-inline-grid {
10
+ display: inline-grid;
11
+ }
12
+
13
+ @each $breakpoint in map.keys($grid-breakpoints) {
14
+ @include media-breakpoint-up($breakpoint) {
15
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
16
+
17
+ .d#{$infix}-grid {
18
+ display: grid;
19
+ }
20
+ .d#{$infix}-inline-grid {
21
+ display: inline-grid;
22
+ }
23
+
24
+ @for $i from 1 through 12 {
25
+ .grid-cols#{$infix}-#{$i} {
26
+ grid-template-columns: repeat($i, minmax(0, 1fr));
27
+ }
28
+ }
29
+
30
+ .grid-cols#{$infix}-none {
31
+ grid-template-columns: none;
32
+ }
33
+
34
+ .grid-cols#{$infix}-auto {
35
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
36
+ }
37
+ }
38
+ }
39
+
40
+ @for $i from 1 through 6 {
41
+ .grid-rows-#{$i} {
42
+ grid-template-rows: repeat($i, minmax(0, 1fr));
43
+ }
44
+ }
45
+
46
+ .grid-rows-none {
47
+ grid-template-rows: none;
48
+ }
49
+
50
+ .grid-flow-row {
51
+ grid-auto-flow: row;
52
+ }
53
+ .grid-flow-col {
54
+ grid-auto-flow: column;
55
+ }
56
+ .grid-flow-row-dense {
57
+ grid-auto-flow: row dense;
58
+ }
59
+ .grid-flow-col-dense {
60
+ grid-auto-flow: column dense;
61
+ }
62
+
63
+ @for $i from 1 through 12 {
64
+ .col-span-#{$i} {
65
+ grid-column: span $i / span $i;
66
+ }
67
+ }
68
+ .col-span-full {
69
+ grid-column: 1 / -1;
70
+ }
71
+ .col-span-auto {
72
+ grid-column: auto;
73
+ }
74
+
75
+ @for $i from 1 through 13 {
76
+ .col-start-#{$i} {
77
+ grid-column-start: $i;
78
+ }
79
+ .col-end-#{$i} {
80
+ grid-column-end: $i;
81
+ }
82
+ }
83
+ .col-start-auto {
84
+ grid-column-start: auto;
85
+ }
86
+ .col-end-auto {
87
+ grid-column-end: auto;
88
+ }
89
+
90
+ @for $i from 1 through 6 {
91
+ .row-span-#{$i} {
92
+ grid-row: span $i / span $i;
93
+ }
94
+ }
95
+ .row-span-full {
96
+ grid-row: 1 / -1;
97
+ }
98
+ .row-span-auto {
99
+ grid-row: auto;
100
+ }
101
+
102
+ @for $i from 1 through 7 {
103
+ .row-start-#{$i} {
104
+ grid-row-start: $i;
105
+ }
106
+ .row-end-#{$i} {
107
+ grid-row-end: $i;
108
+ }
109
+ }
110
+ .row-start-auto {
111
+ grid-row-start: auto;
112
+ }
113
+ .row-end-auto {
114
+ grid-row-end: auto;
115
+ }
116
+
117
+ .grid-auto-fit {
118
+ display: grid;
119
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
120
+ gap: var(--cool-grid-gutter-x);
121
+ }
122
+
123
+ .grid-auto-fill {
124
+ display: grid;
125
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
126
+ gap: var(--cool-grid-gutter-x);
127
+ }
128
+ }
129
+
130
+ @if $cool-use-utilities-layer {
131
+ @layer utilities {
132
+ @include cool-util-grid;
133
+ }
134
+ } @else {
135
+ @include cool-util-grid;
136
+ }
@@ -0,0 +1,131 @@
1
+ @use "../variables" as *;
2
+ @use "sass:map";
3
+ /* Opacity ========================================================================== */
4
+
5
+ @mixin cool-opacity {
6
+ .opacity-0 {
7
+ opacity: 0;
8
+ }
9
+ .opacity-5 {
10
+ opacity: 0.05;
11
+ }
12
+ .opacity-10 {
13
+ opacity: 0.1;
14
+ }
15
+ .opacity-20 {
16
+ opacity: 0.2;
17
+ }
18
+ .opacity-25 {
19
+ opacity: 0.25;
20
+ }
21
+ .opacity-30 {
22
+ opacity: 0.3;
23
+ }
24
+ .opacity-40 {
25
+ opacity: 0.4;
26
+ }
27
+ .opacity-50 {
28
+ opacity: 0.5;
29
+ }
30
+ .opacity-60 {
31
+ opacity: 0.6;
32
+ }
33
+ .opacity-70 {
34
+ opacity: 0.7;
35
+ }
36
+ .opacity-75 {
37
+ opacity: 0.75;
38
+ }
39
+ .opacity-80 {
40
+ opacity: 0.8;
41
+ }
42
+ .opacity-90 {
43
+ opacity: 0.9;
44
+ }
45
+ .opacity-95 {
46
+ opacity: 0.95;
47
+ }
48
+ .opacity-100 {
49
+ opacity: 1;
50
+ }
51
+
52
+ @each $breakpoint in map.keys($grid-breakpoints) {
53
+ @include media-breakpoint-up($breakpoint) {
54
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
55
+
56
+ .opacity#{$infix}-0 {
57
+ opacity: 0;
58
+ }
59
+ .opacity#{$infix}-25 {
60
+ opacity: 0.25;
61
+ }
62
+ .opacity#{$infix}-50 {
63
+ opacity: 0.5;
64
+ }
65
+ .opacity#{$infix}-75 {
66
+ opacity: 0.75;
67
+ }
68
+ .opacity#{$infix}-100 {
69
+ opacity: 1;
70
+ }
71
+ }
72
+ }
73
+
74
+ @media (hover: hover) and (pointer: fine) {
75
+ .hover\:opacity-0:hover {
76
+ opacity: 0;
77
+ }
78
+ .hover\:opacity-25:hover {
79
+ opacity: 0.25;
80
+ }
81
+ .hover\:opacity-50:hover {
82
+ opacity: 0.5;
83
+ }
84
+ .hover\:opacity-75:hover {
85
+ opacity: 0.75;
86
+ }
87
+ .hover\:opacity-100:hover {
88
+ opacity: 1;
89
+ }
90
+ }
91
+
92
+ .focus\:opacity-0:focus {
93
+ opacity: 0;
94
+ }
95
+ .focus\:opacity-25:focus {
96
+ opacity: 0.25;
97
+ }
98
+ .focus\:opacity-50:focus {
99
+ opacity: 0.5;
100
+ }
101
+ .focus\:opacity-75:focus {
102
+ opacity: 0.75;
103
+ }
104
+ .focus\:opacity-100:focus {
105
+ opacity: 1;
106
+ }
107
+
108
+ .group:hover .group-hover\:opacity-0 {
109
+ opacity: 0;
110
+ }
111
+ .group:hover .group-hover\:opacity-25 {
112
+ opacity: 0.25;
113
+ }
114
+ .group:hover .group-hover\:opacity-50 {
115
+ opacity: 0.5;
116
+ }
117
+ .group:hover .group-hover\:opacity-75 {
118
+ opacity: 0.75;
119
+ }
120
+ .group:hover .group-hover\:opacity-100 {
121
+ opacity: 1;
122
+ }
123
+ }
124
+
125
+ @if $cool-use-utilities-layer {
126
+ @layer utilities {
127
+ @include cool-opacity;
128
+ }
129
+ } @else {
130
+ @include cool-opacity;
131
+ }
@@ -0,0 +1,242 @@
1
+ @use "../variables" as *;
2
+ @use "sass:map";
3
+ /* Overflow ========================================================================== */
4
+
5
+ @mixin cool-overflow {
6
+ @each $breakpoint in map.keys($grid-breakpoints) {
7
+ @include media-breakpoint-up($breakpoint) {
8
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
9
+
10
+ .overflow#{$infix}-auto {
11
+ overflow: auto;
12
+ }
13
+ .overflow#{$infix}-hidden {
14
+ overflow: hidden;
15
+ }
16
+ .overflow#{$infix}-visible {
17
+ overflow: visible;
18
+ }
19
+ .overflow#{$infix}-scroll {
20
+ overflow: scroll;
21
+ }
22
+ .overflow#{$infix}-clip {
23
+ overflow: clip;
24
+ }
25
+
26
+ .overflow-x#{$infix}-auto {
27
+ overflow-x: auto;
28
+ }
29
+ .overflow-x#{$infix}-hidden {
30
+ overflow-x: hidden;
31
+ }
32
+ .overflow-x#{$infix}-visible {
33
+ overflow-x: visible;
34
+ }
35
+ .overflow-x#{$infix}-scroll {
36
+ overflow-x: scroll;
37
+ }
38
+ .overflow-x#{$infix}-clip {
39
+ overflow-x: clip;
40
+ }
41
+
42
+ .overflow-y#{$infix}-auto {
43
+ overflow-y: auto;
44
+ }
45
+ .overflow-y#{$infix}-hidden {
46
+ overflow-y: hidden;
47
+ }
48
+ .overflow-y#{$infix}-visible {
49
+ overflow-y: visible;
50
+ }
51
+ .overflow-y#{$infix}-scroll {
52
+ overflow-y: scroll;
53
+ }
54
+ .overflow-y#{$infix}-clip {
55
+ overflow-y: clip;
56
+ }
57
+
58
+ .scrollbar#{$infix}-auto {
59
+ scrollbar-width: auto;
60
+ }
61
+ .scrollbar#{$infix}-thin {
62
+ scrollbar-width: thin;
63
+ }
64
+ .scrollbar#{$infix}-none {
65
+ scrollbar-width: none;
66
+ }
67
+
68
+ .overscroll#{$infix}-auto {
69
+ overscroll-behavior: auto;
70
+ }
71
+ .overscroll#{$infix}-contain {
72
+ overscroll-behavior: contain;
73
+ }
74
+ .overscroll#{$infix}-none {
75
+ overscroll-behavior: none;
76
+ }
77
+
78
+ .overscroll-x#{$infix}-auto {
79
+ overscroll-behavior-x: auto;
80
+ }
81
+ .overscroll-x#{$infix}-contain {
82
+ overscroll-behavior-x: contain;
83
+ }
84
+ .overscroll-x#{$infix}-none {
85
+ overscroll-behavior-x: none;
86
+ }
87
+
88
+ .overscroll-y#{$infix}-auto {
89
+ overscroll-behavior-y: auto;
90
+ }
91
+ .overscroll-y#{$infix}-contain {
92
+ overscroll-behavior-y: contain;
93
+ }
94
+ .overscroll-y#{$infix}-none {
95
+ overscroll-behavior-y: none;
96
+ }
97
+
98
+ .scroll-snap#{$infix}-none {
99
+ scroll-snap-type: none;
100
+ }
101
+ .scroll-snap-x#{$infix} {
102
+ scroll-snap-type: x mandatory;
103
+ }
104
+ .scroll-snap-y#{$infix} {
105
+ scroll-snap-type: y mandatory;
106
+ }
107
+ .scroll-snap-both#{$infix} {
108
+ scroll-snap-type: both mandatory;
109
+ }
110
+ .scroll-snap-x#{$infix}-proximity {
111
+ scroll-snap-type: x proximity;
112
+ }
113
+ .scroll-snap-y#{$infix}-proximity {
114
+ scroll-snap-type: y proximity;
115
+ }
116
+
117
+ .snap-start#{$infix} {
118
+ scroll-snap-align: start;
119
+ }
120
+ .snap-end#{$infix} {
121
+ scroll-snap-align: end;
122
+ }
123
+ .snap-center#{$infix} {
124
+ scroll-snap-align: center;
125
+ }
126
+ .snap-none#{$infix} {
127
+ scroll-snap-align: none;
128
+ }
129
+
130
+ .snap-normal#{$infix} {
131
+ scroll-snap-stop: normal;
132
+ }
133
+ .snap-always#{$infix} {
134
+ scroll-snap-stop: always;
135
+ }
136
+
137
+ @for $i from 0 through 5 {
138
+ .scroll-p#{$infix}-#{$i} {
139
+ scroll-padding: #{$i * 0.25}rem;
140
+ }
141
+ .scroll-pt#{$infix}-#{$i} {
142
+ scroll-padding-top: #{$i * 0.25}rem;
143
+ }
144
+ .scroll-pr#{$infix}-#{$i} {
145
+ scroll-padding-right: #{$i * 0.25}rem;
146
+ }
147
+ .scroll-pb#{$infix}-#{$i} {
148
+ scroll-padding-bottom: #{$i * 0.25}rem;
149
+ }
150
+ .scroll-pl#{$infix}-#{$i} {
151
+ scroll-padding-left: #{$i * 0.25}rem;
152
+ }
153
+ .scroll-px#{$infix}-#{$i} {
154
+ scroll-padding-inline: #{$i * 0.25}rem;
155
+ }
156
+ .scroll-py#{$infix}-#{$i} {
157
+ scroll-padding-block: #{$i * 0.25}rem;
158
+ }
159
+ .scroll-m#{$infix}-#{$i} {
160
+ scroll-margin: #{$i * 0.25}rem;
161
+ }
162
+ .scroll-mt#{$infix}-#{$i} {
163
+ scroll-margin-top: #{$i * 0.25}rem;
164
+ }
165
+ .scroll-mr#{$infix}-#{$i} {
166
+ scroll-margin-right: #{$i * 0.25}rem;
167
+ }
168
+ .scroll-mb#{$infix}-#{$i} {
169
+ scroll-margin-bottom: #{$i * 0.25}rem;
170
+ }
171
+ .scroll-ml#{$infix}-#{$i} {
172
+ scroll-margin-left: #{$i * 0.25}rem;
173
+ }
174
+ .scroll-mx#{$infix}-#{$i} {
175
+ scroll-margin-inline: #{$i * 0.25}rem;
176
+ }
177
+ .scroll-my#{$infix}-#{$i} {
178
+ scroll-margin-block: #{$i * 0.25}rem;
179
+ }
180
+ }
181
+ }
182
+ }
183
+
184
+ .scrollbar-custom {
185
+ &::-webkit-scrollbar {
186
+ width: 8px;
187
+ height: 8px;
188
+ }
189
+
190
+ &::-webkit-scrollbar-track {
191
+ background: rgba(0, 0, 0, 0.05);
192
+ border-radius: 4px;
193
+ }
194
+
195
+ &::-webkit-scrollbar-thumb {
196
+ background: rgba(0, 0, 0, 0.2);
197
+ border-radius: 4px;
198
+
199
+ &:hover {
200
+ background: rgba(0, 0, 0, 0.3);
201
+ }
202
+ }
203
+
204
+ scrollbar-width: thin;
205
+ scrollbar-color: rgba(0, 0, 0, 0.2) rgba(0, 0, 0, 0.05);
206
+ }
207
+
208
+ .scroll-smooth {
209
+ scroll-behavior: smooth;
210
+ }
211
+ .scroll-auto {
212
+ scroll-behavior: auto;
213
+ }
214
+
215
+ .overflow-horizontal-indicator {
216
+ background-image:
217
+ linear-gradient(to right, white, white), linear-gradient(to right, white, white),
218
+ linear-gradient(to right, rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0)),
219
+ linear-gradient(to left, rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0));
220
+ background-position:
221
+ left center,
222
+ right center,
223
+ left center,
224
+ right center;
225
+ background-repeat: no-repeat;
226
+ background-color: white;
227
+ background-size:
228
+ 30px 100%,
229
+ 30px 100%,
230
+ 30px 100%,
231
+ 30px 100%;
232
+ background-attachment: local, local, scroll, scroll;
233
+ }
234
+ }
235
+
236
+ @if $cool-use-utilities-layer {
237
+ @layer utilities {
238
+ @include cool-overflow;
239
+ }
240
+ } @else {
241
+ @include cool-overflow;
242
+ }