@stackoverflow/stacks 1.0.0-beta.0 → 1.1.0

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 +47 -47
  2. package/dist/controllers/s-popover.d.ts +11 -2
  3. package/dist/css/stacks.css +214 -3
  4. package/dist/css/stacks.min.css +1 -1
  5. package/dist/js/stacks.js +18 -2
  6. package/dist/js/stacks.min.js +1 -1
  7. package/lib/css/atomic/borders.less +378 -378
  8. package/lib/css/atomic/colors.less +209 -209
  9. package/lib/css/atomic/flex.less +375 -375
  10. package/lib/css/atomic/grid.less +174 -174
  11. package/lib/css/atomic/misc.less +343 -343
  12. package/lib/css/atomic/spacing.less +342 -314
  13. package/lib/css/atomic/typography.less +273 -273
  14. package/lib/css/atomic/width-height.less +194 -194
  15. package/lib/css/base/body.less +44 -44
  16. package/lib/css/base/configuration-static.less +61 -61
  17. package/lib/css/base/icons.less +20 -20
  18. package/lib/css/base/internals.less +220 -220
  19. package/lib/css/base/reset-meyer.less +64 -64
  20. package/lib/css/base/reset-normalize.less +449 -449
  21. package/lib/css/base/reset.less +20 -20
  22. package/lib/css/components/activity-indicator.less +44 -45
  23. package/lib/css/components/avatars.less +189 -189
  24. package/lib/css/components/badges.less +209 -209
  25. package/lib/css/components/banners.less +80 -80
  26. package/lib/css/components/blank-states.less +26 -26
  27. package/lib/css/components/breadcrumbs.less +44 -44
  28. package/lib/css/components/button-groups.less +104 -104
  29. package/lib/css/components/buttons.less +665 -665
  30. package/lib/css/components/cards.less +44 -44
  31. package/lib/css/components/code-blocks.less +130 -130
  32. package/lib/css/components/collapsible.less +104 -104
  33. package/lib/css/components/inputs.less +728 -728
  34. package/lib/css/components/link-previews.less +136 -136
  35. package/lib/css/components/links.less +218 -218
  36. package/lib/css/components/menu.less +47 -47
  37. package/lib/css/components/modals.less +133 -133
  38. package/lib/css/components/navigation.less +146 -146
  39. package/lib/css/components/notices.less +233 -233
  40. package/lib/css/components/page-titles.less +60 -60
  41. package/lib/css/components/pagination.less +55 -55
  42. package/lib/css/components/popovers.less +197 -197
  43. package/lib/css/components/post-summary.less +425 -425
  44. package/lib/css/components/progress-bars.less +330 -330
  45. package/lib/css/components/prose.less +503 -503
  46. package/lib/css/components/spinner.less +107 -107
  47. package/lib/css/components/tables.less +341 -341
  48. package/lib/css/components/tags.less +236 -236
  49. package/lib/css/components/toggle-switches.less +144 -144
  50. package/lib/css/components/topbar.less +427 -427
  51. package/lib/css/components/uploader.less +210 -210
  52. package/lib/css/components/user-cards.less +169 -169
  53. package/lib/css/components/widget-dynamic.less +33 -33
  54. package/lib/css/components/widget-static.less +273 -273
  55. package/lib/css/exports/constants-colors.less +1092 -1092
  56. package/lib/css/exports/constants-helpers.less +108 -108
  57. package/lib/css/exports/constants-type.less +153 -153
  58. package/lib/css/exports/exports.less +15 -15
  59. package/lib/css/exports/mixins.less +237 -237
  60. package/lib/css/stacks-dynamic.less +35 -35
  61. package/lib/css/stacks-static.less +86 -86
  62. package/lib/css/stacks.less +13 -13
  63. package/lib/ts/controllers/index.ts +7 -7
  64. package/lib/ts/controllers/s-expandable-control.ts +188 -188
  65. package/lib/ts/controllers/s-modal.ts +321 -321
  66. package/lib/ts/controllers/s-navigation-tablist.ts +117 -117
  67. package/lib/ts/controllers/s-popover.ts +567 -547
  68. package/lib/ts/controllers/s-table.ts +220 -220
  69. package/lib/ts/controllers/s-tooltip.ts +246 -246
  70. package/lib/ts/controllers/s-uploader.ts +172 -172
  71. package/lib/ts/index.ts +20 -20
  72. package/lib/ts/stacks.ts +88 -88
  73. package/lib/tsconfig.json +13 -13
  74. package/package.json +86 -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; }