@stackoverflow/stacks 1.0.0 → 1.0.1

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 (71) hide show
  1. package/README.md +47 -47
  2. package/dist/css/stacks.css +108 -0
  3. package/dist/css/stacks.min.css +1 -1
  4. package/lib/css/atomic/borders.less +378 -378
  5. package/lib/css/atomic/colors.less +209 -209
  6. package/lib/css/atomic/flex.less +375 -375
  7. package/lib/css/atomic/grid.less +174 -174
  8. package/lib/css/atomic/misc.less +343 -343
  9. package/lib/css/atomic/spacing.less +332 -314
  10. package/lib/css/atomic/typography.less +273 -273
  11. package/lib/css/atomic/width-height.less +194 -194
  12. package/lib/css/base/body.less +44 -44
  13. package/lib/css/base/configuration-static.less +61 -61
  14. package/lib/css/base/icons.less +20 -20
  15. package/lib/css/base/internals.less +220 -220
  16. package/lib/css/base/reset-meyer.less +64 -64
  17. package/lib/css/base/reset-normalize.less +449 -449
  18. package/lib/css/base/reset.less +20 -20
  19. package/lib/css/components/activity-indicator.less +45 -45
  20. package/lib/css/components/avatars.less +189 -189
  21. package/lib/css/components/badges.less +209 -209
  22. package/lib/css/components/banners.less +80 -80
  23. package/lib/css/components/blank-states.less +26 -26
  24. package/lib/css/components/breadcrumbs.less +44 -44
  25. package/lib/css/components/button-groups.less +104 -104
  26. package/lib/css/components/buttons.less +665 -665
  27. package/lib/css/components/cards.less +44 -44
  28. package/lib/css/components/code-blocks.less +130 -130
  29. package/lib/css/components/collapsible.less +104 -104
  30. package/lib/css/components/inputs.less +728 -728
  31. package/lib/css/components/link-previews.less +136 -136
  32. package/lib/css/components/links.less +218 -218
  33. package/lib/css/components/menu.less +47 -47
  34. package/lib/css/components/modals.less +133 -133
  35. package/lib/css/components/navigation.less +146 -146
  36. package/lib/css/components/notices.less +233 -233
  37. package/lib/css/components/page-titles.less +60 -60
  38. package/lib/css/components/pagination.less +55 -55
  39. package/lib/css/components/popovers.less +197 -197
  40. package/lib/css/components/post-summary.less +425 -425
  41. package/lib/css/components/progress-bars.less +330 -330
  42. package/lib/css/components/prose.less +503 -503
  43. package/lib/css/components/spinner.less +107 -107
  44. package/lib/css/components/tables.less +341 -341
  45. package/lib/css/components/tags.less +236 -236
  46. package/lib/css/components/toggle-switches.less +144 -144
  47. package/lib/css/components/topbar.less +427 -427
  48. package/lib/css/components/uploader.less +210 -210
  49. package/lib/css/components/user-cards.less +169 -169
  50. package/lib/css/components/widget-dynamic.less +33 -33
  51. package/lib/css/components/widget-static.less +273 -273
  52. package/lib/css/exports/constants-colors.less +1092 -1092
  53. package/lib/css/exports/constants-helpers.less +108 -108
  54. package/lib/css/exports/constants-type.less +153 -153
  55. package/lib/css/exports/exports.less +15 -15
  56. package/lib/css/exports/mixins.less +237 -237
  57. package/lib/css/stacks-dynamic.less +35 -35
  58. package/lib/css/stacks-static.less +86 -86
  59. package/lib/css/stacks.less +13 -13
  60. package/lib/ts/controllers/index.ts +7 -7
  61. package/lib/ts/controllers/s-expandable-control.ts +188 -188
  62. package/lib/ts/controllers/s-modal.ts +321 -321
  63. package/lib/ts/controllers/s-navigation-tablist.ts +117 -117
  64. package/lib/ts/controllers/s-popover.ts +547 -547
  65. package/lib/ts/controllers/s-table.ts +220 -220
  66. package/lib/ts/controllers/s-tooltip.ts +246 -246
  67. package/lib/ts/controllers/s-uploader.ts +172 -172
  68. package/lib/ts/index.ts +20 -20
  69. package/lib/ts/stacks.ts +88 -88
  70. package/lib/tsconfig.json +13 -13
  71. package/package.json +87 -87
@@ -1,343 +1,343 @@
1
- //
2
- // STACK OVERFLOW
3
- // UTILITIES
4
- //
5
- // This CSS comes from Stacks, our CSS & Pattern library for rapidly building
6
- // Stack Overflow. For documentation of all these classes and how to contribute,
7
- // visit https://stackoverflow.design/
8
- //
9
- // ============================================================================
10
- // $ DISPLAY
11
- // ----------------------------------------------------------------------------
12
-
13
- #stacks-internals #responsify('.d-block', { display: block !important; });
14
- #stacks-internals #responsify('.d-flex', { display: flex !important; });
15
- #stacks-internals #responsify('.d-inline-flex', { display: inline-flex !important; });
16
- #stacks-internals #responsify('.d-grid', { display: grid !important; });
17
- #stacks-internals #responsify('.d-inline-grid', { display: inline-grid !important; });
18
- #stacks-internals #responsify('.d-inline', { display: inline !important; });
19
- #stacks-internals #responsify('.d-inline-block', { display: inline-block !important; });
20
- .d-table { display: table !important; }
21
- .d-table-cell { display: table-cell !important; }
22
- #stacks-internals #responsify('.d-none', { display: none !important; });
23
- .d-unset { display: unset !important; }
24
-
25
- // ============================================================================
26
- // $ BACKGROUND-POSITIONS
27
- // ----------------------------------------------------------------------------
28
- .bg-bottom { background-position: bottom !important; }
29
- .bg-center { background-position: center !important; }
30
- .bg-left { background-position: left !important; }
31
- .bg-left-bottom { background-position: left bottom !important; }
32
- .bg-left-top { background-position: left top !important; }
33
- .bg-right { background-position: right !important; }
34
- .bg-right-bottom { background-position: right bottom !important; }
35
- .bg-right-top { background-position: right top !important; }
36
- .bg-top { background-position: top !important; }
37
-
38
- // ============================================================================
39
- // $ BACKGROUND-REPEATS
40
- // ----------------------------------------------------------------------------
41
- .bg-repeat { background-repeat: repeat !important; }
42
- .bg-no-repeat { background-repeat: no-repeat !important; }
43
- .bg-repeat-x { background-repeat: repeat-x !important; }
44
- .bg-repeat-y { background-repeat: repeat-y !important; }
45
-
46
- // ============================================================================
47
- // $ BACKGROUND-SIZE
48
- // ----------------------------------------------------------------------------
49
- .bg-auto { background-size: auto !important; }
50
- .bg-cover { background-size: cover !important; }
51
- .bg-contain { background-size: contain !important; }
52
-
53
- // ============================================================================
54
- // $ BACKGROUND-ATTACHMENT
55
- // ----------------------------------------------------------------------------
56
- .bg-fixed { background-attachment: fixed !important; }
57
- .bg-local { background-attachment: local !important; }
58
- .bg-scroll { background-attachment: scroll !important; }
59
-
60
- // ============================================================================
61
- // $ BACKGROUND-IMAGE
62
- // ----------------------------------------------------------------------------
63
- .bg-image-none { background-image: none !important; }
64
-
65
- .bg-confetti-animated {
66
- background-repeat: repeat-x;
67
- background-position: top -10px center;
68
- background-image: url("data:image/svg+xml,%3Csvg width='600' height='90' viewBox='0 0 600 90' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='42' y='-10' width='6' height='10'/%3E%3Crect x='84' y='-10' width='6' height='10'/%3E%3Crect x='126' y='-13' width='5' height='13'/%3E%3Crect x='168' y='-13' width='5' height='13'/%3E%3Crect x='210' y='-10' width='6' height='10'/%3E%3Crect x='252' y='-13' width='5' height='13'/%3E%3Crect x='294' y='-10' width='6' height='10'/%3E%3Crect x='336' y='-13' width='5' height='13'/%3E%3Crect x='378' y='-13' width='5' height='13'/%3E%3Crect x='420' y='-10' width='6' height='10'/%3E%3Crect x='462' y='-10' width='6' height='10'/%3E%3Crect x='504' y='-13' width='5' height='13'/%3E%3Crect x='546' y='-10' width='6' height='10'/%3E%3Cstyle type='text/css'%3E rect %7B opacity: 0; %7D rect:nth-child(1) %7B transform-origin: 45px 5px; transform: rotate(-145deg); animation: blast 700ms infinite ease-out; animation-delay: 88ms; animation-duration: 631ms; %7D rect:nth-child(2) %7B transform-origin: 87px 5px; transform: rotate(164deg); animation: blast 700ms infinite ease-out; animation-delay: 131ms; animation-duration: 442ms; %7D rect:nth-child(3) %7B transform-origin: 128px 6px; transform: rotate(4deg); animation: blast 700ms infinite ease-out; animation-delay: 92ms; animation-duration: 662ms; %7D rect:nth-child(4) %7B transform-origin: 170px 6px; transform: rotate(-175deg); animation: blast 700ms infinite ease-out; animation-delay: 17ms; animation-duration: 593ms; %7D rect:nth-child(5) %7B transform-origin: 213px 5px; transform: rotate(-97deg); animation: blast 700ms infinite ease-out; animation-delay: 122ms; animation-duration: 476ms; %7D rect:nth-child(6) %7B transform-origin: 255px 6px; transform: rotate(57deg); animation: blast 700ms infinite ease-out; animation-delay: 271ms; animation-duration: 381ms; %7D rect:nth-child(7) %7B transform-origin: 297px 5px; transform: rotate(-46deg); animation: blast 700ms infinite ease-out; animation-delay: 131ms; animation-duration: 619ms; %7D rect:nth-child(8) %7B transform-origin: 338px 6px; transform: rotate(-65deg); animation: blast 700ms infinite ease-out; animation-delay: 85ms; animation-duration: 668ms; %7D rect:nth-child(9) %7B transform-origin: 380px 6px; transform: rotate(13deg); animation: blast 700ms infinite ease-out; animation-delay: 128ms; animation-duration: 377ms; %7D rect:nth-child(10) %7B transform-origin: 423px 5px; transform: rotate(176deg); animation: blast 700ms infinite ease-out; animation-delay: 311ms; animation-duration: 508ms; %7D rect:nth-child(11) %7B transform-origin: 465px 5px; transform: rotate(108deg); animation: blast 700ms infinite ease-out; animation-delay: 108ms; animation-duration: 595ms; %7D rect:nth-child(12) %7B transform-origin: 506px 6px; transform: rotate(62deg); animation: blast 700ms infinite ease-out; animation-delay: 105ms; animation-duration: 375ms; %7D rect:nth-child(13) %7B transform-origin: 549px 5px; transform: rotate(16deg); animation: blast 700ms infinite ease-out; animation-delay: 149ms; animation-duration: 491ms; %7D rect:nth-child(odd) %7B fill: %2365BB5C; %7D rect:nth-child(even) %7B z-index: 1; fill: %2333AAFF; %7D rect:nth-child(4n) %7B animation-duration: 1400ms; fill: %23F23B14; %7D rect:nth-child(3n) %7B animation-duration: 1750ms; animation-delay: 700ms; %7D rect:nth-child(4n-7) %7B fill: %232A2F6A; %7D rect:nth-child(6n) %7B fill: %23FBBA23; %7D @keyframes blast %7B from %7B opacity: 0; %7D 20%25 %7B opacity: 1; %7D to %7B transform: translateY(90px); %7D %7D %3C/style%3E%3C/svg%3E%0A");
69
-
70
- @media (prefers-reduced-motion) {
71
- background-image: url("data:image/svg+xml,%3Csvg width='574' height='60' viewBox='0 0 574 60' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect opacity='0.8' x='27.1224' y='20.0458' width='5' height='13' transform='rotate(-139 27.1224 20.0458)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='118.478' y='7.00201' width='5' height='13' transform='rotate(-38.8114 118.478 7.00201)' fill='%23FBBA23'/%3E%3Crect opacity='0.8' x='504.616' y='25.4479' width='5' height='13' transform='rotate(-60.2734 504.616 25.4479)' fill='%23F23B14'/%3E%3Crect opacity='0.6' x='538.983' y='45.555' width='5' height='13' transform='rotate(16.7826 538.983 45.555)' fill='%232A2F6A'/%3E%3Crect opacity='0.3' x='470.322' y='2.63625' width='5' height='13' transform='rotate(11.295 470.322 2.63625)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='190.295' y='4.58138' width='5' height='13' transform='rotate(27.5954 190.295 4.58138)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='234.303' y='16.3233' width='5' height='13' transform='rotate(-41.8233 234.303 16.3233)' fill='%2365BB5C'/%3E%3Crect opacity='0.6' x='369.702' y='40.9875' width='5' height='13' transform='rotate(-56.419 369.702 40.9875)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='402.121' y='31.0848' width='5' height='13' transform='rotate(-17.9234 402.121 31.0848)' fill='%23F23B14'/%3E%3Crect opacity='0.6' x='200.316' y='31.9328' width='5' height='13' transform='rotate(-15.8896 200.316 31.9328)' fill='%232A2F6A'/%3E%3Crect opacity='0.6' x='69.6745' y='23.4725' width='6' height='10' transform='rotate(70.0266 69.6745 23.4725)' fill='%2365BB5C'/%3E%3Crect opacity='0.6' x='291.945' y='7.16931' width='6' height='10' transform='rotate(30.4258 291.945 7.16931)' fill='%23FBBA23'/%3E%3Crect opacity='0.3' x='33.7754' y='38.2208' width='6' height='10' transform='rotate(38.6056 33.7754 38.2208)' fill='%23FBBA23'/%3E%3Crect opacity='0.8' x='109.752' y='31.1743' width='6' height='10' transform='rotate(28.5296 109.752 31.1743)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='278.081' y='37.8695' width='6' height='10' transform='rotate(-26.5651 278.081 37.8695)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='416.294' y='11.5573' width='6' height='10' transform='rotate(-22.8498 416.294 11.5573)' fill='%23FBBA23'/%3E%3Crect opacity='0.3' x='354.667' y='9.32341' width='6' height='10' transform='rotate(17.7506 354.667 9.32341)' fill='%232A2F6A'/%3E%3Crect opacity='0.8' x='532.404' y='16.6372' width='6' height='10' transform='rotate(-75.3432 532.404 16.6372)' fill='%23FBBA23'/%3E%3Crect opacity='0.6' x='460.463' y='39.3557' width='6' height='10' transform='rotate(45.4982 460.463 39.3557)' fill='%2365BB5C'/%3E%3C/svg%3E");
72
- }
73
- }
74
-
75
- .bg-confetti-static {
76
- background-repeat: repeat-x;
77
- background-position: top -10px center;
78
- background-image: url("data:image/svg+xml,%3Csvg width='574' height='60' viewBox='0 0 574 60' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect opacity='0.8' x='27.1224' y='20.0458' width='5' height='13' transform='rotate(-139 27.1224 20.0458)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='118.478' y='7.00201' width='5' height='13' transform='rotate(-38.8114 118.478 7.00201)' fill='%23FBBA23'/%3E%3Crect opacity='0.8' x='504.616' y='25.4479' width='5' height='13' transform='rotate(-60.2734 504.616 25.4479)' fill='%23F23B14'/%3E%3Crect opacity='0.6' x='538.983' y='45.555' width='5' height='13' transform='rotate(16.7826 538.983 45.555)' fill='%232A2F6A'/%3E%3Crect opacity='0.3' x='470.322' y='2.63625' width='5' height='13' transform='rotate(11.295 470.322 2.63625)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='190.295' y='4.58138' width='5' height='13' transform='rotate(27.5954 190.295 4.58138)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='234.303' y='16.3233' width='5' height='13' transform='rotate(-41.8233 234.303 16.3233)' fill='%2365BB5C'/%3E%3Crect opacity='0.6' x='369.702' y='40.9875' width='5' height='13' transform='rotate(-56.419 369.702 40.9875)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='402.121' y='31.0848' width='5' height='13' transform='rotate(-17.9234 402.121 31.0848)' fill='%23F23B14'/%3E%3Crect opacity='0.6' x='200.316' y='31.9328' width='5' height='13' transform='rotate(-15.8896 200.316 31.9328)' fill='%232A2F6A'/%3E%3Crect opacity='0.6' x='69.6745' y='23.4725' width='6' height='10' transform='rotate(70.0266 69.6745 23.4725)' fill='%2365BB5C'/%3E%3Crect opacity='0.6' x='291.945' y='7.16931' width='6' height='10' transform='rotate(30.4258 291.945 7.16931)' fill='%23FBBA23'/%3E%3Crect opacity='0.3' x='33.7754' y='38.2208' width='6' height='10' transform='rotate(38.6056 33.7754 38.2208)' fill='%23FBBA23'/%3E%3Crect opacity='0.8' x='109.752' y='31.1743' width='6' height='10' transform='rotate(28.5296 109.752 31.1743)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='278.081' y='37.8695' width='6' height='10' transform='rotate(-26.5651 278.081 37.8695)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='416.294' y='11.5573' width='6' height='10' transform='rotate(-22.8498 416.294 11.5573)' fill='%23FBBA23'/%3E%3Crect opacity='0.3' x='354.667' y='9.32341' width='6' height='10' transform='rotate(17.7506 354.667 9.32341)' fill='%232A2F6A'/%3E%3Crect opacity='0.8' x='532.404' y='16.6372' width='6' height='10' transform='rotate(-75.3432 532.404 16.6372)' fill='%23FBBA23'/%3E%3Crect opacity='0.6' x='460.463' y='39.3557' width='6' height='10' transform='rotate(45.4982 460.463 39.3557)' fill='%2365BB5C'/%3E%3C/svg%3E");
79
- }
80
-
81
- // ============================================================================
82
- // $ OBJECT-FIT / OBJECT-POSITION
83
- // ----------------------------------------------------------------------------
84
-
85
- .of-contain { object-fit: contain !important; }
86
- .of-cover { object-fit: cover !important; }
87
- .of-fill { object-fit: fill !important; }
88
- .of-none { object-fit: none !important; }
89
- .of-scale-down { object-fit: scale-down !important; }
90
-
91
- .op-center { object-position: center !important; }
92
-
93
- // ============================================================================
94
- // $ CURSORS
95
- // ----------------------------------------------------------------------------
96
- .c-auto { cursor: auto !important; }
97
- .c-default { cursor: default !important; }
98
- .c-pointer { cursor: pointer !important; }
99
- .c-text { cursor: text !important; }
100
- .c-wait { cursor: wait !important; }
101
- .c-move { cursor: move !important; }
102
- .c-not-allowed { cursor: not-allowed !important; }
103
- .c-help { cursor: help !important; }
104
-
105
- // ============================================================================
106
- // $ POINTER EVENTS
107
- // ----------------------------------------------------------------------------
108
- .pe-auto { pointer-events: auto !important; }
109
- .pe-none { pointer-events: none !important; }
110
-
111
- // ============================================================================
112
- // $ USER SELECT
113
- // ----------------------------------------------------------------------------
114
- .us-auto {
115
- -webkit-user-select: auto !important;
116
- -moz-user-select: auto !important;
117
- -ms-user-select: auto !important;
118
- user-select: auto !important;
119
- }
120
-
121
- .us-none {
122
- -webkit-user-select: none !important;
123
- -moz-user-select: none !important;
124
- -ms-user-select: none !important;
125
- user-select: none !important;
126
- }
127
-
128
- // ============================================================================
129
- // $ USER DRAG
130
- // ----------------------------------------------------------------------------
131
- .ud-auto {
132
- -webkit-user-drag: auto !important;
133
- -moz-user-drag: auto !important;
134
- -ms-user-drag: auto !important;
135
- }
136
-
137
- .ud-none {
138
- -webkit-user-drag: none !important;
139
- -moz-user-drag: none !important;
140
- -ms-user-drag: none !important;
141
- }
142
-
143
- // ============================================================================
144
- // $ VISIBILITY
145
- // ----------------------------------------------------------------------------
146
- .v-visible { visibility: visible !important; }
147
- .v-hidden { visibility: hidden !important; }
148
- .v-visible-sr {
149
- // Borrowed from Wordpress
150
- // https://make.wordpress.org/accessibility/2015/02/09/hiding-text-for-screen-readers-with-wordpress-core/
151
- border: 0;
152
- clip: rect(1px, 1px, 1px, 1px);
153
- clip-path: inset(50%);
154
- height: 1px;
155
- margin: -1px;
156
- overflow: hidden;
157
- padding: 0;
158
- position: absolute;
159
- width: 1px;
160
- word-wrap: normal;
161
- }
162
-
163
- // ============================================================================
164
- // $ FLOATS
165
- // ----------------------------------------------------------------------------
166
- .float-left { float: left !important; }
167
- .float-right { float: right !important; }
168
- .float-none { float: none !important; }
169
- .clearfix { .clearfix(); }
170
- .clear-left { clear: left !important; }
171
- .clear-right { clear: right !important; }
172
- .clear-both { clear: both !important; }
173
- .clear-none { clear: none !important; }
174
-
175
- // ============================================================================
176
- // $ BOX SIZING
177
- // ----------------------------------------------------------------------------
178
- .box-content { box-sizing: content-box !important; }
179
- .box-border { box-sizing: border-box !important; }
180
- .box-unset { box-sizing: unset !important; }
181
-
182
- // ============================================================================
183
- // $ VERTICAL ALIGNMENT
184
- // ----------------------------------------------------------------------------
185
- .va-baseline { vertical-align: baseline !important; }
186
- .va-bottom { vertical-align: bottom !important; }
187
- .va-middle { vertical-align: middle !important; }
188
- .va-sub { vertical-align: sub !important; }
189
- .va-super { vertical-align: super !important; }
190
- .va-text-bottom { vertical-align: text-bottom !important; }
191
- .va-text-top { vertical-align: text-top !important; }
192
- .va-top { vertical-align: top !important; }
193
- .va-unset { vertical-align: unset !important; }
194
-
195
- // ============================================================================
196
- // $ POSITION
197
- // ----------------------------------------------------------------------------
198
- #stacks-internals #responsify('.ps-absolute', { position: absolute !important; });
199
- #stacks-internals #responsify('.ps-fixed', { position: fixed !important; });
200
- #stacks-internals #responsify('.ps-relative', { position: relative !important; });
201
- #stacks-internals #responsify('.ps-static', { position: static !important; });
202
- #stacks-internals #responsify('.ps-sticky', { position: sticky !important; });
203
- .ps-unset { position: unset !important; }
204
-
205
- // ============================================================================
206
- // $ OVERFLOW
207
- // ----------------------------------------------------------------------------
208
- .overflow-auto { overflow: auto !important; @scrollbar-styles(); }
209
- .overflow-x-auto { overflow-x: auto !important; @scrollbar-styles(); }
210
- .overflow-y-auto { overflow-y: auto !important; @scrollbar-styles(); }
211
-
212
- .overflow-hidden { overflow: hidden !important; @scrollbar-styles(); }
213
- .overflow-x-hidden { overflow-x: hidden !important; @scrollbar-styles(); }
214
- .overflow-y-hidden { overflow-y: hidden !important; @scrollbar-styles(); }
215
-
216
- .overflow-scroll { overflow: scroll !important; @scrollbar-styles(); }
217
- .overflow-x-scroll { overflow-x: scroll !important; @scrollbar-styles(); }
218
- .overflow-y-scroll { overflow-y: scroll !important; @scrollbar-styles(); }
219
-
220
- .overflow-visible { overflow: visible !important; }
221
-
222
- // ============================================================================
223
- // $ OPACITY
224
- // ----------------------------------------------------------------------------
225
- .o0 { opacity: 0 !important; }
226
- .h\:o0:hover { .o0; }
227
- .o5 { opacity: 0.05 !important; }
228
- .h\:o5:hover { .o5; }
229
- .o10 { opacity: 0.1 !important; }
230
- .o20 { opacity: 0.2 !important; }
231
- .o30 { opacity: 0.3 !important; }
232
- .o40 { opacity: 0.4 !important; }
233
- .o50 { opacity: 0.5 !important; }
234
- .h\:o50:hover { .o50; }
235
- .o60 { opacity: 0.6 !important; }
236
- .o70 { opacity: 0.7 !important; }
237
- .o80 { opacity: 0.8 !important; }
238
- .h\:o80:hover { .o80; }
239
- .o90 { opacity: 0.9 !important; }
240
- .o100 { opacity: 1 !important; }
241
- .h\:o100:hover { .o100; }
242
-
243
- .f\:o100 {
244
- &:focus,
245
- &:focus-within {
246
- .o100;
247
- }
248
- }
249
-
250
- // ============================================================================
251
- // $ Z-INDEX
252
- // ----------------------------------------------------------------------------
253
- .z-hide { z-index: var(--zi-hide) !important; }
254
- .z-base { z-index: var(--zi-base) !important; }
255
- .z-active { z-index: var(--zi-active) !important; }
256
- .z-selected { z-index: var(--zi-selected) !important; }
257
- .z-dropdown { z-index: var(--zi-dropdown) !important; }
258
- .z-popover { z-index: var(--zi-popovers) !important; }
259
- .z-tooltip { z-index: var(--zi-tooltips) !important; }
260
- .z-banner { z-index: var(--zi-banners) !important; }
261
- .z-nav { z-index: var(--zi-navigation) !important; }
262
- .z-nav-fixed { z-index: var(--zi-navigation-fixed) !important; }
263
- .z-modal { z-index: var(--zi-modals) !important; }
264
- .z-modal-bg { z-index: var(--zi-modals-background) !important; }
265
-
266
- // ============================================================================
267
- // $ OUTLINE
268
- // ----------------------------------------------------------------------------
269
- .outline-none { outline: 0 !important; }
270
- .outline-ring { outline: solid var(--su-static4) var(--focus-ring); }
271
-
272
- .f\:outline-ring {
273
- &:focus,
274
- &:focus-within {
275
- .outline-ring;
276
- }
277
- }
278
-
279
- // ============================================================================
280
- // $ CURRENT COLOR
281
- // ----------------------------------------------------------------------------
282
- .fill-current { fill: currentColor !important; }
283
- .stroke-current { stroke: currentColor !important; }
284
-
285
- // ============================================================================
286
- // $ BOX SHADOW
287
- // ----------------------------------------------------------------------------
288
- #stacks-internals #responsify('.bs-none', { box-shadow: none !important; });
289
- .bs-sm { box-shadow: var(--bs-sm) !important; }
290
- .h\:bs-sm:hover { .bs-sm; }
291
- .bs-md { box-shadow: var(--bs-md) !important; }
292
- .h\:bs-md:hover { .bs-md; }
293
- .bs-lg { box-shadow: var(--bs-lg) !important; }
294
- .h\:bs-lg:hover { .bs-lg; }
295
- .bs-xl { box-shadow: var(--bs-xl) !important; }
296
- .bs-ring { box-shadow: 0 0 0 var(--su-static4) var(--focus-ring); }
297
- .h\:bs-ring:hover { .bs-ring; }
298
- .f\:bs-ring {
299
- &:focus,
300
- &:focus-within {
301
- .bs-ring;
302
- }
303
- }
304
-
305
- // -- Added hover styles for box-shadow
306
- .bs-sm.bs-hover:hover { box-shadow: 0 var(--su-static2) var(--su-static8) @black-050 !important; }
307
- .bs-md.bs-hover:hover { box-shadow: 0 var(--su-static4) var(--su-static8) @black-100 !important; }
308
- .bs-lg.bs-hover:hover { box-shadow: 0 var(--su-static4) var(--su-static12) fade(@black-300, 70%) !important; }
309
- .bs-i-sm.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static8) 0 fade(@black-200, 75%) !important; }
310
- .bs-i-md.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static8) 0 fade(@black-350, 80%) !important; }
311
- .bs-i-lg.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static12) 0 @black-350 !important; }
312
-
313
- // ============================================================================
314
- // $ TRANSITIONS
315
- // ----------------------------------------------------------------------------
316
-
317
- // -- Provide a sensible default
318
- .t {
319
- transition-duration: var(--transition-time);
320
- transition-property: all;
321
- transition-timing-function: var(--te-ease-in);
322
- transition-delay: 0s;
323
- }
324
-
325
- // -- Durations
326
- .t-slow { transition-duration: 0.25s !important; }
327
- .t-fast { transition-duration: 0.05s !important; }
328
-
329
- // -- Properties
330
- .t-unset { transition-property: none !important; }
331
- .t-bg { transition-property: background-color !important; }
332
- .t-opacity { transition-property: opacity !important; }
333
- .t-shadow { transition-property: box-shadow !important; }
334
-
335
- // -- Delays
336
- .t-delay { transition-delay: 0.25s !important; }
337
- .t-delay-unset { transition-delay: 0s !important; }
338
-
339
- // ============================================================================
340
- // $ TABLE LAYOUT
341
- // ----------------------------------------------------------------------------
342
- .tl-fixed { table-layout: fixed !important; }
343
- .tl-auto { table-layout: auto !important; }
1
+ //
2
+ // STACK OVERFLOW
3
+ // UTILITIES
4
+ //
5
+ // This CSS comes from Stacks, our CSS & Pattern library for rapidly building
6
+ // Stack Overflow. For documentation of all these classes and how to contribute,
7
+ // visit https://stackoverflow.design/
8
+ //
9
+ // ============================================================================
10
+ // $ DISPLAY
11
+ // ----------------------------------------------------------------------------
12
+
13
+ #stacks-internals #responsify('.d-block', { display: block !important; });
14
+ #stacks-internals #responsify('.d-flex', { display: flex !important; });
15
+ #stacks-internals #responsify('.d-inline-flex', { display: inline-flex !important; });
16
+ #stacks-internals #responsify('.d-grid', { display: grid !important; });
17
+ #stacks-internals #responsify('.d-inline-grid', { display: inline-grid !important; });
18
+ #stacks-internals #responsify('.d-inline', { display: inline !important; });
19
+ #stacks-internals #responsify('.d-inline-block', { display: inline-block !important; });
20
+ .d-table { display: table !important; }
21
+ .d-table-cell { display: table-cell !important; }
22
+ #stacks-internals #responsify('.d-none', { display: none !important; });
23
+ .d-unset { display: unset !important; }
24
+
25
+ // ============================================================================
26
+ // $ BACKGROUND-POSITIONS
27
+ // ----------------------------------------------------------------------------
28
+ .bg-bottom { background-position: bottom !important; }
29
+ .bg-center { background-position: center !important; }
30
+ .bg-left { background-position: left !important; }
31
+ .bg-left-bottom { background-position: left bottom !important; }
32
+ .bg-left-top { background-position: left top !important; }
33
+ .bg-right { background-position: right !important; }
34
+ .bg-right-bottom { background-position: right bottom !important; }
35
+ .bg-right-top { background-position: right top !important; }
36
+ .bg-top { background-position: top !important; }
37
+
38
+ // ============================================================================
39
+ // $ BACKGROUND-REPEATS
40
+ // ----------------------------------------------------------------------------
41
+ .bg-repeat { background-repeat: repeat !important; }
42
+ .bg-no-repeat { background-repeat: no-repeat !important; }
43
+ .bg-repeat-x { background-repeat: repeat-x !important; }
44
+ .bg-repeat-y { background-repeat: repeat-y !important; }
45
+
46
+ // ============================================================================
47
+ // $ BACKGROUND-SIZE
48
+ // ----------------------------------------------------------------------------
49
+ .bg-auto { background-size: auto !important; }
50
+ .bg-cover { background-size: cover !important; }
51
+ .bg-contain { background-size: contain !important; }
52
+
53
+ // ============================================================================
54
+ // $ BACKGROUND-ATTACHMENT
55
+ // ----------------------------------------------------------------------------
56
+ .bg-fixed { background-attachment: fixed !important; }
57
+ .bg-local { background-attachment: local !important; }
58
+ .bg-scroll { background-attachment: scroll !important; }
59
+
60
+ // ============================================================================
61
+ // $ BACKGROUND-IMAGE
62
+ // ----------------------------------------------------------------------------
63
+ .bg-image-none { background-image: none !important; }
64
+
65
+ .bg-confetti-animated {
66
+ background-repeat: repeat-x;
67
+ background-position: top -10px center;
68
+ background-image: url("data:image/svg+xml,%3Csvg width='600' height='90' viewBox='0 0 600 90' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='42' y='-10' width='6' height='10'/%3E%3Crect x='84' y='-10' width='6' height='10'/%3E%3Crect x='126' y='-13' width='5' height='13'/%3E%3Crect x='168' y='-13' width='5' height='13'/%3E%3Crect x='210' y='-10' width='6' height='10'/%3E%3Crect x='252' y='-13' width='5' height='13'/%3E%3Crect x='294' y='-10' width='6' height='10'/%3E%3Crect x='336' y='-13' width='5' height='13'/%3E%3Crect x='378' y='-13' width='5' height='13'/%3E%3Crect x='420' y='-10' width='6' height='10'/%3E%3Crect x='462' y='-10' width='6' height='10'/%3E%3Crect x='504' y='-13' width='5' height='13'/%3E%3Crect x='546' y='-10' width='6' height='10'/%3E%3Cstyle type='text/css'%3E rect %7B opacity: 0; %7D rect:nth-child(1) %7B transform-origin: 45px 5px; transform: rotate(-145deg); animation: blast 700ms infinite ease-out; animation-delay: 88ms; animation-duration: 631ms; %7D rect:nth-child(2) %7B transform-origin: 87px 5px; transform: rotate(164deg); animation: blast 700ms infinite ease-out; animation-delay: 131ms; animation-duration: 442ms; %7D rect:nth-child(3) %7B transform-origin: 128px 6px; transform: rotate(4deg); animation: blast 700ms infinite ease-out; animation-delay: 92ms; animation-duration: 662ms; %7D rect:nth-child(4) %7B transform-origin: 170px 6px; transform: rotate(-175deg); animation: blast 700ms infinite ease-out; animation-delay: 17ms; animation-duration: 593ms; %7D rect:nth-child(5) %7B transform-origin: 213px 5px; transform: rotate(-97deg); animation: blast 700ms infinite ease-out; animation-delay: 122ms; animation-duration: 476ms; %7D rect:nth-child(6) %7B transform-origin: 255px 6px; transform: rotate(57deg); animation: blast 700ms infinite ease-out; animation-delay: 271ms; animation-duration: 381ms; %7D rect:nth-child(7) %7B transform-origin: 297px 5px; transform: rotate(-46deg); animation: blast 700ms infinite ease-out; animation-delay: 131ms; animation-duration: 619ms; %7D rect:nth-child(8) %7B transform-origin: 338px 6px; transform: rotate(-65deg); animation: blast 700ms infinite ease-out; animation-delay: 85ms; animation-duration: 668ms; %7D rect:nth-child(9) %7B transform-origin: 380px 6px; transform: rotate(13deg); animation: blast 700ms infinite ease-out; animation-delay: 128ms; animation-duration: 377ms; %7D rect:nth-child(10) %7B transform-origin: 423px 5px; transform: rotate(176deg); animation: blast 700ms infinite ease-out; animation-delay: 311ms; animation-duration: 508ms; %7D rect:nth-child(11) %7B transform-origin: 465px 5px; transform: rotate(108deg); animation: blast 700ms infinite ease-out; animation-delay: 108ms; animation-duration: 595ms; %7D rect:nth-child(12) %7B transform-origin: 506px 6px; transform: rotate(62deg); animation: blast 700ms infinite ease-out; animation-delay: 105ms; animation-duration: 375ms; %7D rect:nth-child(13) %7B transform-origin: 549px 5px; transform: rotate(16deg); animation: blast 700ms infinite ease-out; animation-delay: 149ms; animation-duration: 491ms; %7D rect:nth-child(odd) %7B fill: %2365BB5C; %7D rect:nth-child(even) %7B z-index: 1; fill: %2333AAFF; %7D rect:nth-child(4n) %7B animation-duration: 1400ms; fill: %23F23B14; %7D rect:nth-child(3n) %7B animation-duration: 1750ms; animation-delay: 700ms; %7D rect:nth-child(4n-7) %7B fill: %232A2F6A; %7D rect:nth-child(6n) %7B fill: %23FBBA23; %7D @keyframes blast %7B from %7B opacity: 0; %7D 20%25 %7B opacity: 1; %7D to %7B transform: translateY(90px); %7D %7D %3C/style%3E%3C/svg%3E%0A");
69
+
70
+ @media (prefers-reduced-motion) {
71
+ background-image: url("data:image/svg+xml,%3Csvg width='574' height='60' viewBox='0 0 574 60' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect opacity='0.8' x='27.1224' y='20.0458' width='5' height='13' transform='rotate(-139 27.1224 20.0458)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='118.478' y='7.00201' width='5' height='13' transform='rotate(-38.8114 118.478 7.00201)' fill='%23FBBA23'/%3E%3Crect opacity='0.8' x='504.616' y='25.4479' width='5' height='13' transform='rotate(-60.2734 504.616 25.4479)' fill='%23F23B14'/%3E%3Crect opacity='0.6' x='538.983' y='45.555' width='5' height='13' transform='rotate(16.7826 538.983 45.555)' fill='%232A2F6A'/%3E%3Crect opacity='0.3' x='470.322' y='2.63625' width='5' height='13' transform='rotate(11.295 470.322 2.63625)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='190.295' y='4.58138' width='5' height='13' transform='rotate(27.5954 190.295 4.58138)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='234.303' y='16.3233' width='5' height='13' transform='rotate(-41.8233 234.303 16.3233)' fill='%2365BB5C'/%3E%3Crect opacity='0.6' x='369.702' y='40.9875' width='5' height='13' transform='rotate(-56.419 369.702 40.9875)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='402.121' y='31.0848' width='5' height='13' transform='rotate(-17.9234 402.121 31.0848)' fill='%23F23B14'/%3E%3Crect opacity='0.6' x='200.316' y='31.9328' width='5' height='13' transform='rotate(-15.8896 200.316 31.9328)' fill='%232A2F6A'/%3E%3Crect opacity='0.6' x='69.6745' y='23.4725' width='6' height='10' transform='rotate(70.0266 69.6745 23.4725)' fill='%2365BB5C'/%3E%3Crect opacity='0.6' x='291.945' y='7.16931' width='6' height='10' transform='rotate(30.4258 291.945 7.16931)' fill='%23FBBA23'/%3E%3Crect opacity='0.3' x='33.7754' y='38.2208' width='6' height='10' transform='rotate(38.6056 33.7754 38.2208)' fill='%23FBBA23'/%3E%3Crect opacity='0.8' x='109.752' y='31.1743' width='6' height='10' transform='rotate(28.5296 109.752 31.1743)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='278.081' y='37.8695' width='6' height='10' transform='rotate(-26.5651 278.081 37.8695)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='416.294' y='11.5573' width='6' height='10' transform='rotate(-22.8498 416.294 11.5573)' fill='%23FBBA23'/%3E%3Crect opacity='0.3' x='354.667' y='9.32341' width='6' height='10' transform='rotate(17.7506 354.667 9.32341)' fill='%232A2F6A'/%3E%3Crect opacity='0.8' x='532.404' y='16.6372' width='6' height='10' transform='rotate(-75.3432 532.404 16.6372)' fill='%23FBBA23'/%3E%3Crect opacity='0.6' x='460.463' y='39.3557' width='6' height='10' transform='rotate(45.4982 460.463 39.3557)' fill='%2365BB5C'/%3E%3C/svg%3E");
72
+ }
73
+ }
74
+
75
+ .bg-confetti-static {
76
+ background-repeat: repeat-x;
77
+ background-position: top -10px center;
78
+ background-image: url("data:image/svg+xml,%3Csvg width='574' height='60' viewBox='0 0 574 60' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect opacity='0.8' x='27.1224' y='20.0458' width='5' height='13' transform='rotate(-139 27.1224 20.0458)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='118.478' y='7.00201' width='5' height='13' transform='rotate(-38.8114 118.478 7.00201)' fill='%23FBBA23'/%3E%3Crect opacity='0.8' x='504.616' y='25.4479' width='5' height='13' transform='rotate(-60.2734 504.616 25.4479)' fill='%23F23B14'/%3E%3Crect opacity='0.6' x='538.983' y='45.555' width='5' height='13' transform='rotate(16.7826 538.983 45.555)' fill='%232A2F6A'/%3E%3Crect opacity='0.3' x='470.322' y='2.63625' width='5' height='13' transform='rotate(11.295 470.322 2.63625)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='190.295' y='4.58138' width='5' height='13' transform='rotate(27.5954 190.295 4.58138)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='234.303' y='16.3233' width='5' height='13' transform='rotate(-41.8233 234.303 16.3233)' fill='%2365BB5C'/%3E%3Crect opacity='0.6' x='369.702' y='40.9875' width='5' height='13' transform='rotate(-56.419 369.702 40.9875)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='402.121' y='31.0848' width='5' height='13' transform='rotate(-17.9234 402.121 31.0848)' fill='%23F23B14'/%3E%3Crect opacity='0.6' x='200.316' y='31.9328' width='5' height='13' transform='rotate(-15.8896 200.316 31.9328)' fill='%232A2F6A'/%3E%3Crect opacity='0.6' x='69.6745' y='23.4725' width='6' height='10' transform='rotate(70.0266 69.6745 23.4725)' fill='%2365BB5C'/%3E%3Crect opacity='0.6' x='291.945' y='7.16931' width='6' height='10' transform='rotate(30.4258 291.945 7.16931)' fill='%23FBBA23'/%3E%3Crect opacity='0.3' x='33.7754' y='38.2208' width='6' height='10' transform='rotate(38.6056 33.7754 38.2208)' fill='%23FBBA23'/%3E%3Crect opacity='0.8' x='109.752' y='31.1743' width='6' height='10' transform='rotate(28.5296 109.752 31.1743)' fill='%2333AAFF'/%3E%3Crect opacity='0.3' x='278.081' y='37.8695' width='6' height='10' transform='rotate(-26.5651 278.081 37.8695)' fill='%23F23B14'/%3E%3Crect opacity='0.8' x='416.294' y='11.5573' width='6' height='10' transform='rotate(-22.8498 416.294 11.5573)' fill='%23FBBA23'/%3E%3Crect opacity='0.3' x='354.667' y='9.32341' width='6' height='10' transform='rotate(17.7506 354.667 9.32341)' fill='%232A2F6A'/%3E%3Crect opacity='0.8' x='532.404' y='16.6372' width='6' height='10' transform='rotate(-75.3432 532.404 16.6372)' fill='%23FBBA23'/%3E%3Crect opacity='0.6' x='460.463' y='39.3557' width='6' height='10' transform='rotate(45.4982 460.463 39.3557)' fill='%2365BB5C'/%3E%3C/svg%3E");
79
+ }
80
+
81
+ // ============================================================================
82
+ // $ OBJECT-FIT / OBJECT-POSITION
83
+ // ----------------------------------------------------------------------------
84
+
85
+ .of-contain { object-fit: contain !important; }
86
+ .of-cover { object-fit: cover !important; }
87
+ .of-fill { object-fit: fill !important; }
88
+ .of-none { object-fit: none !important; }
89
+ .of-scale-down { object-fit: scale-down !important; }
90
+
91
+ .op-center { object-position: center !important; }
92
+
93
+ // ============================================================================
94
+ // $ CURSORS
95
+ // ----------------------------------------------------------------------------
96
+ .c-auto { cursor: auto !important; }
97
+ .c-default { cursor: default !important; }
98
+ .c-pointer { cursor: pointer !important; }
99
+ .c-text { cursor: text !important; }
100
+ .c-wait { cursor: wait !important; }
101
+ .c-move { cursor: move !important; }
102
+ .c-not-allowed { cursor: not-allowed !important; }
103
+ .c-help { cursor: help !important; }
104
+
105
+ // ============================================================================
106
+ // $ POINTER EVENTS
107
+ // ----------------------------------------------------------------------------
108
+ .pe-auto { pointer-events: auto !important; }
109
+ .pe-none { pointer-events: none !important; }
110
+
111
+ // ============================================================================
112
+ // $ USER SELECT
113
+ // ----------------------------------------------------------------------------
114
+ .us-auto {
115
+ -webkit-user-select: auto !important;
116
+ -moz-user-select: auto !important;
117
+ -ms-user-select: auto !important;
118
+ user-select: auto !important;
119
+ }
120
+
121
+ .us-none {
122
+ -webkit-user-select: none !important;
123
+ -moz-user-select: none !important;
124
+ -ms-user-select: none !important;
125
+ user-select: none !important;
126
+ }
127
+
128
+ // ============================================================================
129
+ // $ USER DRAG
130
+ // ----------------------------------------------------------------------------
131
+ .ud-auto {
132
+ -webkit-user-drag: auto !important;
133
+ -moz-user-drag: auto !important;
134
+ -ms-user-drag: auto !important;
135
+ }
136
+
137
+ .ud-none {
138
+ -webkit-user-drag: none !important;
139
+ -moz-user-drag: none !important;
140
+ -ms-user-drag: none !important;
141
+ }
142
+
143
+ // ============================================================================
144
+ // $ VISIBILITY
145
+ // ----------------------------------------------------------------------------
146
+ .v-visible { visibility: visible !important; }
147
+ .v-hidden { visibility: hidden !important; }
148
+ .v-visible-sr {
149
+ // Borrowed from Wordpress
150
+ // https://make.wordpress.org/accessibility/2015/02/09/hiding-text-for-screen-readers-with-wordpress-core/
151
+ border: 0;
152
+ clip: rect(1px, 1px, 1px, 1px);
153
+ clip-path: inset(50%);
154
+ height: 1px;
155
+ margin: -1px;
156
+ overflow: hidden;
157
+ padding: 0;
158
+ position: absolute;
159
+ width: 1px;
160
+ word-wrap: normal;
161
+ }
162
+
163
+ // ============================================================================
164
+ // $ FLOATS
165
+ // ----------------------------------------------------------------------------
166
+ .float-left { float: left !important; }
167
+ .float-right { float: right !important; }
168
+ .float-none { float: none !important; }
169
+ .clearfix { .clearfix(); }
170
+ .clear-left { clear: left !important; }
171
+ .clear-right { clear: right !important; }
172
+ .clear-both { clear: both !important; }
173
+ .clear-none { clear: none !important; }
174
+
175
+ // ============================================================================
176
+ // $ BOX SIZING
177
+ // ----------------------------------------------------------------------------
178
+ .box-content { box-sizing: content-box !important; }
179
+ .box-border { box-sizing: border-box !important; }
180
+ .box-unset { box-sizing: unset !important; }
181
+
182
+ // ============================================================================
183
+ // $ VERTICAL ALIGNMENT
184
+ // ----------------------------------------------------------------------------
185
+ .va-baseline { vertical-align: baseline !important; }
186
+ .va-bottom { vertical-align: bottom !important; }
187
+ .va-middle { vertical-align: middle !important; }
188
+ .va-sub { vertical-align: sub !important; }
189
+ .va-super { vertical-align: super !important; }
190
+ .va-text-bottom { vertical-align: text-bottom !important; }
191
+ .va-text-top { vertical-align: text-top !important; }
192
+ .va-top { vertical-align: top !important; }
193
+ .va-unset { vertical-align: unset !important; }
194
+
195
+ // ============================================================================
196
+ // $ POSITION
197
+ // ----------------------------------------------------------------------------
198
+ #stacks-internals #responsify('.ps-absolute', { position: absolute !important; });
199
+ #stacks-internals #responsify('.ps-fixed', { position: fixed !important; });
200
+ #stacks-internals #responsify('.ps-relative', { position: relative !important; });
201
+ #stacks-internals #responsify('.ps-static', { position: static !important; });
202
+ #stacks-internals #responsify('.ps-sticky', { position: sticky !important; });
203
+ .ps-unset { position: unset !important; }
204
+
205
+ // ============================================================================
206
+ // $ OVERFLOW
207
+ // ----------------------------------------------------------------------------
208
+ .overflow-auto { overflow: auto !important; @scrollbar-styles(); }
209
+ .overflow-x-auto { overflow-x: auto !important; @scrollbar-styles(); }
210
+ .overflow-y-auto { overflow-y: auto !important; @scrollbar-styles(); }
211
+
212
+ .overflow-hidden { overflow: hidden !important; @scrollbar-styles(); }
213
+ .overflow-x-hidden { overflow-x: hidden !important; @scrollbar-styles(); }
214
+ .overflow-y-hidden { overflow-y: hidden !important; @scrollbar-styles(); }
215
+
216
+ .overflow-scroll { overflow: scroll !important; @scrollbar-styles(); }
217
+ .overflow-x-scroll { overflow-x: scroll !important; @scrollbar-styles(); }
218
+ .overflow-y-scroll { overflow-y: scroll !important; @scrollbar-styles(); }
219
+
220
+ .overflow-visible { overflow: visible !important; }
221
+
222
+ // ============================================================================
223
+ // $ OPACITY
224
+ // ----------------------------------------------------------------------------
225
+ .o0 { opacity: 0 !important; }
226
+ .h\:o0:hover { .o0; }
227
+ .o5 { opacity: 0.05 !important; }
228
+ .h\:o5:hover { .o5; }
229
+ .o10 { opacity: 0.1 !important; }
230
+ .o20 { opacity: 0.2 !important; }
231
+ .o30 { opacity: 0.3 !important; }
232
+ .o40 { opacity: 0.4 !important; }
233
+ .o50 { opacity: 0.5 !important; }
234
+ .h\:o50:hover { .o50; }
235
+ .o60 { opacity: 0.6 !important; }
236
+ .o70 { opacity: 0.7 !important; }
237
+ .o80 { opacity: 0.8 !important; }
238
+ .h\:o80:hover { .o80; }
239
+ .o90 { opacity: 0.9 !important; }
240
+ .o100 { opacity: 1 !important; }
241
+ .h\:o100:hover { .o100; }
242
+
243
+ .f\:o100 {
244
+ &:focus,
245
+ &:focus-within {
246
+ .o100;
247
+ }
248
+ }
249
+
250
+ // ============================================================================
251
+ // $ Z-INDEX
252
+ // ----------------------------------------------------------------------------
253
+ .z-hide { z-index: var(--zi-hide) !important; }
254
+ .z-base { z-index: var(--zi-base) !important; }
255
+ .z-active { z-index: var(--zi-active) !important; }
256
+ .z-selected { z-index: var(--zi-selected) !important; }
257
+ .z-dropdown { z-index: var(--zi-dropdown) !important; }
258
+ .z-popover { z-index: var(--zi-popovers) !important; }
259
+ .z-tooltip { z-index: var(--zi-tooltips) !important; }
260
+ .z-banner { z-index: var(--zi-banners) !important; }
261
+ .z-nav { z-index: var(--zi-navigation) !important; }
262
+ .z-nav-fixed { z-index: var(--zi-navigation-fixed) !important; }
263
+ .z-modal { z-index: var(--zi-modals) !important; }
264
+ .z-modal-bg { z-index: var(--zi-modals-background) !important; }
265
+
266
+ // ============================================================================
267
+ // $ OUTLINE
268
+ // ----------------------------------------------------------------------------
269
+ .outline-none { outline: 0 !important; }
270
+ .outline-ring { outline: solid var(--su-static4) var(--focus-ring); }
271
+
272
+ .f\:outline-ring {
273
+ &:focus,
274
+ &:focus-within {
275
+ .outline-ring;
276
+ }
277
+ }
278
+
279
+ // ============================================================================
280
+ // $ CURRENT COLOR
281
+ // ----------------------------------------------------------------------------
282
+ .fill-current { fill: currentColor !important; }
283
+ .stroke-current { stroke: currentColor !important; }
284
+
285
+ // ============================================================================
286
+ // $ BOX SHADOW
287
+ // ----------------------------------------------------------------------------
288
+ #stacks-internals #responsify('.bs-none', { box-shadow: none !important; });
289
+ .bs-sm { box-shadow: var(--bs-sm) !important; }
290
+ .h\:bs-sm:hover { .bs-sm; }
291
+ .bs-md { box-shadow: var(--bs-md) !important; }
292
+ .h\:bs-md:hover { .bs-md; }
293
+ .bs-lg { box-shadow: var(--bs-lg) !important; }
294
+ .h\:bs-lg:hover { .bs-lg; }
295
+ .bs-xl { box-shadow: var(--bs-xl) !important; }
296
+ .bs-ring { box-shadow: 0 0 0 var(--su-static4) var(--focus-ring); }
297
+ .h\:bs-ring:hover { .bs-ring; }
298
+ .f\:bs-ring {
299
+ &:focus,
300
+ &:focus-within {
301
+ .bs-ring;
302
+ }
303
+ }
304
+
305
+ // -- Added hover styles for box-shadow
306
+ .bs-sm.bs-hover:hover { box-shadow: 0 var(--su-static2) var(--su-static8) @black-050 !important; }
307
+ .bs-md.bs-hover:hover { box-shadow: 0 var(--su-static4) var(--su-static8) @black-100 !important; }
308
+ .bs-lg.bs-hover:hover { box-shadow: 0 var(--su-static4) var(--su-static12) fade(@black-300, 70%) !important; }
309
+ .bs-i-sm.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static8) 0 fade(@black-200, 75%) !important; }
310
+ .bs-i-md.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static8) 0 fade(@black-350, 80%) !important; }
311
+ .bs-i-lg.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static12) 0 @black-350 !important; }
312
+
313
+ // ============================================================================
314
+ // $ TRANSITIONS
315
+ // ----------------------------------------------------------------------------
316
+
317
+ // -- Provide a sensible default
318
+ .t {
319
+ transition-duration: var(--transition-time);
320
+ transition-property: all;
321
+ transition-timing-function: var(--te-ease-in);
322
+ transition-delay: 0s;
323
+ }
324
+
325
+ // -- Durations
326
+ .t-slow { transition-duration: 0.25s !important; }
327
+ .t-fast { transition-duration: 0.05s !important; }
328
+
329
+ // -- Properties
330
+ .t-unset { transition-property: none !important; }
331
+ .t-bg { transition-property: background-color !important; }
332
+ .t-opacity { transition-property: opacity !important; }
333
+ .t-shadow { transition-property: box-shadow !important; }
334
+
335
+ // -- Delays
336
+ .t-delay { transition-delay: 0.25s !important; }
337
+ .t-delay-unset { transition-delay: 0s !important; }
338
+
339
+ // ============================================================================
340
+ // $ TABLE LAYOUT
341
+ // ----------------------------------------------------------------------------
342
+ .tl-fixed { table-layout: fixed !important; }
343
+ .tl-auto { table-layout: auto !important; }