@stackoverflow/stacks 0.73.1 → 0.76.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 (87) hide show
  1. package/LICENSE.MD +9 -9
  2. package/README.md +47 -47
  3. package/dist/controllers/index.d.ts +7 -0
  4. package/dist/controllers/s-expandable-control.d.ts +17 -0
  5. package/dist/controllers/s-modal.d.ts +97 -0
  6. package/dist/controllers/s-navigation-tablist.d.ts +36 -0
  7. package/dist/controllers/s-popover.d.ts +155 -0
  8. package/dist/controllers/s-table.d.ts +8 -0
  9. package/dist/controllers/s-tooltip.d.ts +82 -0
  10. package/dist/controllers/s-uploader.d.ts +48 -0
  11. package/dist/css/stacks.css +441 -141
  12. package/dist/css/stacks.min.css +1 -1
  13. package/dist/index.d.ts +3 -0
  14. package/dist/js/stacks.js +6130 -5488
  15. package/dist/js/stacks.min.js +1 -1
  16. package/dist/stacks.d.ts +21 -0
  17. package/lib/css/atomic/_stacks-borders.less +378 -378
  18. package/lib/css/atomic/_stacks-colors.less +209 -209
  19. package/lib/css/atomic/_stacks-flex.less +374 -374
  20. package/lib/css/atomic/_stacks-grid.less +174 -173
  21. package/lib/css/atomic/_stacks-misc.less +343 -342
  22. package/lib/css/atomic/_stacks-spacing.less +168 -162
  23. package/lib/css/atomic/_stacks-typography.less +273 -270
  24. package/lib/css/atomic/_stacks-width-height.less +195 -189
  25. package/lib/css/base/_stacks-body.less +44 -46
  26. package/lib/css/base/_stacks-configuration-static.less +59 -59
  27. package/lib/css/base/_stacks-icons.less +20 -20
  28. package/lib/css/base/_stacks-internals.less +220 -230
  29. package/lib/css/base/_stacks-reset-meyer.less +64 -64
  30. package/lib/css/base/_stacks-reset-normalize.less +449 -449
  31. package/lib/css/base/_stacks-reset.less +20 -20
  32. package/lib/css/components/_stacks-activity-indicator.less +45 -45
  33. package/lib/css/components/_stacks-avatars.less +189 -189
  34. package/lib/css/components/_stacks-badges.less +209 -209
  35. package/lib/css/components/_stacks-banners.less +80 -81
  36. package/lib/css/components/_stacks-blank-states.less +26 -26
  37. package/lib/css/components/_stacks-breadcrumbs.less +44 -44
  38. package/lib/css/components/_stacks-button-groups.less +104 -104
  39. package/lib/css/components/_stacks-buttons.less +658 -660
  40. package/lib/css/components/_stacks-cards.less +44 -44
  41. package/lib/css/components/_stacks-code-blocks.less +130 -130
  42. package/lib/css/components/_stacks-collapsible.less +104 -104
  43. package/lib/css/components/_stacks-inputs.less +728 -724
  44. package/lib/css/components/_stacks-link-previews.less +136 -136
  45. package/lib/css/components/_stacks-links.less +218 -218
  46. package/lib/css/components/_stacks-menu.less +47 -47
  47. package/lib/css/components/_stacks-modals.less +133 -133
  48. package/lib/css/components/_stacks-navigation.less +146 -146
  49. package/lib/css/components/_stacks-notices.less +233 -233
  50. package/lib/css/components/_stacks-page-titles.less +60 -60
  51. package/lib/css/components/_stacks-pagination.less +55 -55
  52. package/lib/css/components/_stacks-popovers.less +197 -197
  53. package/lib/css/components/_stacks-post-summary.less +425 -311
  54. package/lib/css/components/_stacks-progress-bars.less +331 -331
  55. package/lib/css/components/_stacks-prose.less +503 -503
  56. package/lib/css/components/_stacks-spinner.less +107 -107
  57. package/lib/css/components/_stacks-tables.less +341 -341
  58. package/lib/css/components/_stacks-tags.less +237 -209
  59. package/lib/css/components/_stacks-toggle-switches.less +144 -137
  60. package/lib/css/components/_stacks-topbar.less +425 -440
  61. package/lib/css/components/_stacks-uploader.less +210 -210
  62. package/lib/css/components/_stacks-user-cards.less +169 -193
  63. package/lib/css/components/_stacks-widget-dynamic.less +33 -33
  64. package/lib/css/components/_stacks-widget-static.less +272 -272
  65. package/lib/css/exports/_stacks-constants-colors.less +1112 -1098
  66. package/lib/css/exports/_stacks-constants-helpers.less +139 -139
  67. package/lib/css/exports/_stacks-constants-type.less +152 -91
  68. package/lib/css/exports/_stacks-exports.less +15 -15
  69. package/lib/css/exports/_stacks-mixins.less +220 -220
  70. package/lib/css/stacks-dynamic.less +35 -36
  71. package/lib/css/stacks-static.less +86 -86
  72. package/lib/ts/controllers/index.ts +8 -0
  73. package/lib/ts/controllers/s-expandable-control.ts +189 -190
  74. package/lib/ts/controllers/s-modal.ts +321 -323
  75. package/lib/ts/controllers/s-navigation-tablist.ts +118 -119
  76. package/lib/ts/controllers/s-popover.ts +547 -549
  77. package/lib/ts/controllers/s-table.ts +220 -220
  78. package/lib/ts/controllers/s-tooltip.ts +246 -247
  79. package/lib/ts/controllers/s-uploader.ts +172 -174
  80. package/lib/ts/index.ts +20 -0
  81. package/lib/ts/stacks.ts +88 -83
  82. package/lib/tsconfig.json +13 -11
  83. package/package.json +87 -71
  84. package/dist/css/stacks-flexgrid-shim.min.css +0 -1
  85. package/lib/css/base/_stacks-configuration-dynamic.less +0 -106
  86. package/lib/ts/finalize.ts +0 -1
  87. package/lib/ts/stimulus.d.ts +0 -4
@@ -1,342 +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: @zi-hide !important; }
254
- .z-base { z-index: @zi-base !important; }
255
- .z-active { z-index: @zi-active !important; }
256
- .z-selected { z-index: @zi-selected !important; }
257
- .z-dropdown { z-index: @zi-dropdown !important; }
258
- .z-popover { z-index: @zi-popovers !important; }
259
- .z-tooltip { z-index: @zi-tooltips !important; }
260
- .z-banner { z-index: @zi-banners !important; }
261
- .z-nav { z-index: @zi-navigation !important; }
262
- .z-nav-fixed { z-index: @zi-navigation-fixed !important; }
263
- .z-modal { z-index: @zi-modals !important; }
264
- .z-modal-bg { z-index: @zi-modals-background !important; }
265
-
266
- // ============================================================================
267
- // $ OUTLINE
268
- // ----------------------------------------------------------------------------
269
- .outline-none { outline: 0 !important; }
270
- .outline-ring { outline: solid @su4 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-ring { box-shadow: 0 0 0 @su4 var(--focus-ring); }
296
- .h\:bs-ring:hover { .bs-ring; }
297
- .f\:bs-ring {
298
- &:focus,
299
- &:focus-within {
300
- .bs-ring;
301
- }
302
- }
303
-
304
- // -- Added hover styles for box-shadow
305
- .bs-sm.bs-hover:hover { box-shadow: 0 @su2 @su8 @black-050 !important; }
306
- .bs-md.bs-hover:hover { box-shadow: 0 @su4 @su8 @black-100 !important; }
307
- .bs-lg.bs-hover:hover { box-shadow: 0 @su4 @su12 fade(@black-300, 70%) !important; }
308
- .bs-i-sm.bs-hover:hover { box-shadow: inset 0 (@su2/2) @su8 0 fade(@black-200, 75%) !important; }
309
- .bs-i-md.bs-hover:hover { box-shadow: inset 0 (@su2/2) @su8 0 fade(@black-350, 80%) !important; }
310
- .bs-i-lg.bs-hover:hover { box-shadow: inset 0 (@su2/2) @su12 0 @black-350 !important; }
311
-
312
- // ============================================================================
313
- // $ TRANSITIONS
314
- // ----------------------------------------------------------------------------
315
-
316
- // -- Provide a sensible default
317
- .t {
318
- transition-duration: @transition-time;
319
- transition-property: all;
320
- transition-timing-function: @te-ease-in;
321
- transition-delay: 0s;
322
- }
323
-
324
- // -- Durations
325
- .t-slow { transition-duration: 0.25s !important; }
326
- .t-fast { transition-duration: 0.05s !important; }
327
-
328
- // -- Properties
329
- .t-unset { transition-property: none !important; }
330
- .t-bg { transition-property: background-color !important; }
331
- .t-opacity { transition-property: opacity !important; }
332
- .t-shadow { transition-property: box-shadow !important; }
333
-
334
- // -- Delays
335
- .t-delay { transition-delay: 0.25s !important; }
336
- .t-delay-unset { transition-delay: 0s !important; }
337
-
338
- // ============================================================================
339
- // $ TABLE LAYOUT
340
- // ----------------------------------------------------------------------------
341
- .tl-fixed { table-layout: fixed !important; }
342
- .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: @zi-hide !important; }
254
+ .z-base { z-index: @zi-base !important; }
255
+ .z-active { z-index: @zi-active !important; }
256
+ .z-selected { z-index: @zi-selected !important; }
257
+ .z-dropdown { z-index: @zi-dropdown !important; }
258
+ .z-popover { z-index: @zi-popovers !important; }
259
+ .z-tooltip { z-index: @zi-tooltips !important; }
260
+ .z-banner { z-index: @zi-banners !important; }
261
+ .z-nav { z-index: @zi-navigation !important; }
262
+ .z-nav-fixed { z-index: @zi-navigation-fixed !important; }
263
+ .z-modal { z-index: @zi-modals !important; }
264
+ .z-modal-bg { z-index: @zi-modals-background !important; }
265
+
266
+ // ============================================================================
267
+ // $ OUTLINE
268
+ // ----------------------------------------------------------------------------
269
+ .outline-none { outline: 0 !important; }
270
+ .outline-ring { outline: solid @su4 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 @su4 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 @su2 @su8 @black-050 !important; }
307
+ .bs-md.bs-hover:hover { box-shadow: 0 @su4 @su8 @black-100 !important; }
308
+ .bs-lg.bs-hover:hover { box-shadow: 0 @su4 @su12 fade(@black-300, 70%) !important; }
309
+ .bs-i-sm.bs-hover:hover { box-shadow: inset 0 (@su2/2) @su8 0 fade(@black-200, 75%) !important; }
310
+ .bs-i-md.bs-hover:hover { box-shadow: inset 0 (@su2/2) @su8 0 fade(@black-350, 80%) !important; }
311
+ .bs-i-lg.bs-hover:hover { box-shadow: inset 0 (@su2/2) @su12 0 @black-350 !important; }
312
+
313
+ // ============================================================================
314
+ // $ TRANSITIONS
315
+ // ----------------------------------------------------------------------------
316
+
317
+ // -- Provide a sensible default
318
+ .t {
319
+ transition-duration: @transition-time;
320
+ transition-property: all;
321
+ transition-timing-function: @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; }