@stackoverflow/stacks 2.7.3 → 2.7.5

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 (85) hide show
  1. package/LICENSE.MD +9 -9
  2. package/README.md +158 -180
  3. package/dist/css/stacks.css +20 -13
  4. package/dist/css/stacks.min.css +1 -1
  5. package/dist/js/stacks.min.js +1 -1
  6. package/lib/atomic/border.less +139 -139
  7. package/lib/atomic/color.less +36 -36
  8. package/lib/atomic/flex.less +426 -426
  9. package/lib/atomic/gap.less +44 -44
  10. package/lib/atomic/grid.less +139 -139
  11. package/lib/atomic/misc.less +374 -374
  12. package/lib/atomic/spacing.less +98 -98
  13. package/lib/atomic/typography.less +266 -264
  14. package/lib/atomic/width-height.less +194 -194
  15. package/lib/base/body.less +44 -44
  16. package/lib/base/configuration-static.less +61 -61
  17. package/lib/base/fieldset.less +5 -5
  18. package/lib/base/icon.less +11 -11
  19. package/lib/base/internal.less +220 -220
  20. package/lib/base/reset-meyer.less +64 -64
  21. package/lib/base/reset-normalize.less +449 -449
  22. package/lib/base/reset.less +20 -20
  23. package/lib/components/activity-indicator/activity-indicator.less +53 -53
  24. package/lib/components/avatar/avatar.less +108 -108
  25. package/lib/components/award-bling/award-bling.less +31 -31
  26. package/lib/components/banner/banner.less +44 -44
  27. package/lib/components/banner/banner.ts +149 -149
  28. package/lib/components/block-link/block-link.less +82 -82
  29. package/lib/components/breadcrumbs/breadcrumbs.less +41 -41
  30. package/lib/components/button-group/button-group.less +82 -82
  31. package/lib/components/card/card.less +37 -37
  32. package/lib/components/check-control/check-control.less +17 -17
  33. package/lib/components/check-group/check-group.less +19 -19
  34. package/lib/components/checkbox_radio/checkbox_radio.less +159 -159
  35. package/lib/components/code-block/code-block.fixtures.ts +88 -88
  36. package/lib/components/code-block/code-block.less +116 -116
  37. package/lib/components/description/description.less +9 -9
  38. package/lib/components/empty-state/empty-state.less +16 -16
  39. package/lib/components/expandable/expandable.less +118 -118
  40. package/lib/components/input-fill/input-fill.less +35 -35
  41. package/lib/components/input-icon/input-icon.less +45 -45
  42. package/lib/components/input-message/input-message.less +49 -49
  43. package/lib/components/input_textarea/input_textarea.less +2 -7
  44. package/lib/components/label/label.less +116 -110
  45. package/lib/components/link-preview/link-preview.less +148 -148
  46. package/lib/components/menu/menu.less +41 -41
  47. package/lib/components/modal/modal.less +118 -118
  48. package/lib/components/modal/modal.ts +383 -383
  49. package/lib/components/navigation/navigation.less +136 -136
  50. package/lib/components/navigation/navigation.ts +128 -128
  51. package/lib/components/page-title/page-title.less +51 -51
  52. package/lib/components/popover/popover.less +159 -159
  53. package/lib/components/popover/popover.ts +651 -651
  54. package/lib/components/post-summary/post-summary.less +457 -457
  55. package/lib/components/progress-bar/progress-bar.less +291 -291
  56. package/lib/components/prose/prose.less +452 -452
  57. package/lib/components/select/select.less +138 -138
  58. package/lib/components/spinner/spinner.less +103 -103
  59. package/lib/components/table/table.ts +296 -296
  60. package/lib/components/table-container/table-container.less +4 -4
  61. package/lib/components/tag/tag.less +186 -186
  62. package/lib/components/toast/toast.less +35 -35
  63. package/lib/components/toast/toast.ts +357 -357
  64. package/lib/components/toggle-switch/toggle-switch.less +104 -104
  65. package/lib/components/topbar/topbar.less +553 -553
  66. package/lib/components/uploader/uploader.less +205 -205
  67. package/lib/components/user-card/user-card.less +129 -129
  68. package/lib/controllers.ts +33 -33
  69. package/lib/exports/color-mixins.less +283 -283
  70. package/lib/exports/constants-helpers.less +108 -108
  71. package/lib/exports/constants-type.less +155 -155
  72. package/lib/exports/exports.less +15 -15
  73. package/lib/exports/mixins.less +334 -333
  74. package/lib/exports/spacing-mixins.less +67 -67
  75. package/lib/index.ts +32 -32
  76. package/lib/input-utils.less +41 -41
  77. package/lib/stacks-dynamic.less +24 -24
  78. package/lib/stacks-static.less +93 -93
  79. package/lib/stacks.less +13 -13
  80. package/lib/test/assertions.ts +36 -36
  81. package/lib/test/less-test-utils.ts +28 -28
  82. package/lib/test/open-wc-testing-patch.d.ts +26 -26
  83. package/lib/tsconfig.build.json +4 -4
  84. package/lib/tsconfig.json +17 -17
  85. package/package.json +27 -23
@@ -1,374 +1,374 @@
1
- @import (reference) "../base/internal.less";
2
- @import (reference) "../exports/color-mixins.less";
3
- @import (reference) "../exports/constants-helpers.less";
4
- @import (reference) "../exports/mixins.less";
5
-
6
- //
7
- // STACK OVERFLOW
8
- // UTILITIES
9
- //
10
- // This CSS comes from Stacks, our CSS & Pattern library for rapidly building
11
- // Stack Overflow. For documentation of all these classes and how to contribute,
12
- // visit https://stackoverflow.design/
13
- //
14
- // ============================================================================
15
- // $ DISPLAY
16
- // ----------------------------------------------------------------------------
17
-
18
- #stacks-internals #responsify('.d-block', { display: block !important; });
19
- #stacks-internals #responsify('.d-flex', { display: flex !important; });
20
- #stacks-internals #responsify('.d-inline-flex', { display: inline-flex !important; });
21
- #stacks-internals #responsify('.d-grid', { display: grid !important; });
22
- #stacks-internals #responsify('.d-inline-grid', { display: inline-grid !important; });
23
- #stacks-internals #responsify('.d-inline', { display: inline !important; });
24
- #stacks-internals #responsify('.d-inline-block', { display: inline-block !important; });
25
- .d-table { display: table !important; }
26
- .d-table-cell { display: table-cell !important; }
27
- #stacks-internals #responsify('.d-none', { display: none !important; });
28
- .d-unset { display: unset !important; }
29
-
30
- // ============================================================================
31
- // $ BACKGROUND-POSITIONS
32
- // ----------------------------------------------------------------------------
33
- .bg-bottom { background-position: bottom !important; }
34
- .bg-center { background-position: center !important; }
35
- .bg-left { background-position: left !important; }
36
- .bg-left-bottom { background-position: left bottom !important; }
37
- .bg-left-top { background-position: left top !important; }
38
- .bg-right { background-position: right !important; }
39
- .bg-right-bottom { background-position: right bottom !important; }
40
- .bg-right-top { background-position: right top !important; }
41
- .bg-top { background-position: top !important; }
42
-
43
- // ============================================================================
44
- // $ BACKGROUND-REPEATS
45
- // ----------------------------------------------------------------------------
46
- .bg-repeat { background-repeat: repeat !important; }
47
- .bg-no-repeat { background-repeat: no-repeat !important; }
48
- .bg-repeat-x { background-repeat: repeat-x !important; }
49
- .bg-repeat-y { background-repeat: repeat-y !important; }
50
-
51
- // ============================================================================
52
- // $ BACKGROUND-SIZE
53
- // ----------------------------------------------------------------------------
54
- .bg-auto { background-size: auto !important; }
55
- .bg-cover { background-size: cover !important; }
56
- .bg-contain { background-size: contain !important; }
57
-
58
- // ============================================================================
59
- // $ BACKGROUND-ATTACHMENT
60
- // ----------------------------------------------------------------------------
61
- .bg-fixed { background-attachment: fixed !important; }
62
- .bg-local { background-attachment: local !important; }
63
- .bg-scroll { background-attachment: scroll !important; }
64
-
65
- // ============================================================================
66
- // $ BACKGROUND-IMAGE
67
- // ----------------------------------------------------------------------------
68
- .bg-image-none { background-image: none !important; }
69
-
70
- .bg-confetti-animated {
71
- background-repeat: repeat-x;
72
- background-position: top -10px center;
73
- 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");
74
-
75
- @media (prefers-reduced-motion) {
76
- 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");
77
- }
78
- }
79
-
80
- .bg-confetti-static {
81
- background-repeat: repeat-x;
82
- background-position: top -10px center;
83
- 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");
84
- }
85
-
86
- // Focus styles
87
- .focus,
88
- .f\:focus:focus,
89
- .f\:focus:focus-within {
90
- .focus-styles();
91
- }
92
-
93
- .focus-inset,
94
- .f\:focus-inset:focus,
95
- .f\:focus-inset:focus-within {
96
- .focus-styles(true);
97
- }
98
-
99
- .focus-bordered,
100
- .f\:focus-bordered:focus,
101
- .f\:focus-bordered:focus-within {
102
- .focus-styles(false, true);
103
- }
104
-
105
- .focus-inset-bordered,
106
- .f\:focus-inset-bordered:focus,
107
- .f\:focus-inset-bordered:focus-within {
108
- .focus-styles(true, true);
109
- }
110
-
111
- // ============================================================================
112
- // $ OBJECT-FIT / OBJECT-POSITION
113
- // ----------------------------------------------------------------------------
114
-
115
- .of-contain { object-fit: contain !important; }
116
- .of-cover { object-fit: cover !important; }
117
- .of-fill { object-fit: fill !important; }
118
- .of-none { object-fit: none !important; }
119
- .of-scale-down { object-fit: scale-down !important; }
120
-
121
- .op-center { object-position: center !important; }
122
-
123
- // ============================================================================
124
- // $ CURSORS
125
- // ----------------------------------------------------------------------------
126
- .c-auto { cursor: auto !important; }
127
- .c-default { cursor: default !important; }
128
- .c-pointer { cursor: pointer !important; }
129
- .c-text { cursor: text !important; }
130
- .c-wait { cursor: wait !important; }
131
- .c-move { cursor: move !important; }
132
- .c-not-allowed { cursor: not-allowed !important; }
133
- .c-help { cursor: help !important; }
134
-
135
- // ============================================================================
136
- // $ POINTER EVENTS
137
- // ----------------------------------------------------------------------------
138
- .pe-auto { pointer-events: auto !important; }
139
- .pe-none { pointer-events: none !important; }
140
-
141
- // ============================================================================
142
- // $ USER SELECT
143
- // ----------------------------------------------------------------------------
144
- .us-auto {
145
- -webkit-user-select: auto !important;
146
- -moz-user-select: auto !important;
147
- -ms-user-select: auto !important;
148
- user-select: auto !important;
149
- }
150
-
151
- .us-none {
152
- -webkit-user-select: none !important;
153
- -moz-user-select: none !important;
154
- -ms-user-select: none !important;
155
- user-select: none !important;
156
- }
157
-
158
- // ============================================================================
159
- // $ USER DRAG
160
- // ----------------------------------------------------------------------------
161
- .ud-auto {
162
- -webkit-user-drag: auto !important;
163
- -moz-user-drag: auto !important;
164
- -ms-user-drag: auto !important;
165
- }
166
-
167
- .ud-none {
168
- -webkit-user-drag: none !important;
169
- -moz-user-drag: none !important;
170
- -ms-user-drag: none !important;
171
- }
172
-
173
- // ============================================================================
174
- // $ VISIBILITY
175
- // ----------------------------------------------------------------------------
176
- .v-visible { visibility: visible !important; }
177
- .v-hidden { visibility: hidden !important; }
178
- .v-visible-sr {
179
- // Borrowed from Wordpress
180
- // https://make.wordpress.org/accessibility/2015/02/09/hiding-text-for-screen-readers-with-wordpress-core/
181
- border: 0;
182
- clip: rect(var(--su-static1), var(--su-static1), var(--su-static1), var(--su-static1)); // rect(1px, 1px, 1px, 1px)
183
- clip-path: inset(50%);
184
- height: var(--su-static1);
185
- margin: calc(var(--su-static1) * -1); // -1px
186
- overflow: hidden;
187
- padding: 0;
188
- position: absolute;
189
- width: var(--su-static1);
190
- overflow-wrap: normal;
191
- }
192
-
193
- // ============================================================================
194
- // $ FLOATS
195
- // ----------------------------------------------------------------------------
196
- .float-left { float: left !important; }
197
- .float-right { float: right !important; }
198
- .float-none { float: none !important; }
199
- .clearfix { .clearfix(); }
200
- .clear-left { clear: left !important; }
201
- .clear-right { clear: right !important; }
202
- .clear-both { clear: both !important; }
203
- .clear-none { clear: none !important; }
204
-
205
- // ============================================================================
206
- // $ BOX SIZING
207
- // ----------------------------------------------------------------------------
208
- .box-content { box-sizing: content-box !important; }
209
- .box-border { box-sizing: border-box !important; }
210
- .box-unset { box-sizing: unset !important; }
211
-
212
- // ============================================================================
213
- // $ VERTICAL ALIGNMENT
214
- // ----------------------------------------------------------------------------
215
- .va-baseline { vertical-align: baseline !important; }
216
- .va-bottom { vertical-align: bottom !important; }
217
- .va-middle { vertical-align: middle !important; }
218
- .va-sub { vertical-align: sub !important; }
219
- .va-super { vertical-align: super !important; }
220
- .va-text-bottom { vertical-align: text-bottom !important; }
221
- .va-text-top { vertical-align: text-top !important; }
222
- .va-top { vertical-align: top !important; }
223
- .va-unset { vertical-align: unset !important; }
224
-
225
- // ============================================================================
226
- // $ POSITION
227
- // ----------------------------------------------------------------------------
228
- #stacks-internals #responsify('.ps-absolute', { position: absolute !important; });
229
- #stacks-internals #responsify('.ps-fixed', { position: fixed !important; });
230
- #stacks-internals #responsify('.ps-relative', { position: relative !important; });
231
- #stacks-internals #responsify('.ps-static', { position: static !important; });
232
- #stacks-internals #responsify('.ps-sticky', { position: sticky !important; });
233
- .ps-unset { position: unset !important; }
234
-
235
- // ============================================================================
236
- // $ OVERFLOW
237
- // ----------------------------------------------------------------------------
238
- .overflow-auto { overflow: auto !important; @scrollbar-styles(); }
239
- .overflow-x-auto { overflow-x: auto !important; @scrollbar-styles(); }
240
- .overflow-y-auto { overflow-y: auto !important; @scrollbar-styles(); }
241
-
242
- .overflow-hidden { overflow: hidden !important; @scrollbar-styles(); }
243
- .overflow-x-hidden { overflow-x: hidden !important; @scrollbar-styles(); }
244
- .overflow-y-hidden { overflow-y: hidden !important; @scrollbar-styles(); }
245
-
246
- .overflow-scroll { overflow: scroll !important; @scrollbar-styles(); }
247
- .overflow-x-scroll { overflow-x: scroll !important; @scrollbar-styles(); }
248
- .overflow-y-scroll { overflow-y: scroll !important; @scrollbar-styles(); }
249
-
250
- .overflow-visible { overflow: visible !important; }
251
-
252
- // ============================================================================
253
- // $ OPACITY
254
- // ----------------------------------------------------------------------------
255
- .o0 { opacity: 0 !important; }
256
- .h\:o0:hover { .o0; }
257
- .o5 { opacity: 0.05 !important; }
258
- .h\:o5:hover { .o5; }
259
- .o10 { opacity: 0.1 !important; }
260
- .o20 { opacity: 0.2 !important; }
261
- .o30 { opacity: 0.3 !important; }
262
- .o40 { opacity: 0.4 !important; }
263
- .o50 { opacity: 0.5 !important; }
264
- .h\:o50:hover { .o50; }
265
- .o60 { opacity: 0.6 !important; }
266
- .o70 { opacity: 0.7 !important; }
267
- .o80 { opacity: 0.8 !important; }
268
- .h\:o80:hover { .o80; }
269
- .o90 { opacity: 0.9 !important; }
270
- .o100 { opacity: 1 !important; }
271
- .h\:o100:hover { .o100; }
272
-
273
- .f\:o100 {
274
- &:focus,
275
- &:focus-within {
276
- .o100;
277
- }
278
- }
279
-
280
- // ============================================================================
281
- // $ Z-INDEX
282
- // ----------------------------------------------------------------------------
283
- .z-hide { z-index: var(--zi-hide) !important; }
284
- .z-base { z-index: var(--zi-base) !important; }
285
- .z-active { z-index: var(--zi-active) !important; }
286
- .z-selected { z-index: var(--zi-selected) !important; }
287
- .z-dropdown { z-index: var(--zi-dropdown) !important; }
288
- .z-popover { z-index: var(--zi-popovers) !important; }
289
- .z-tooltip { z-index: var(--zi-tooltips) !important; }
290
- .z-banner { z-index: var(--zi-banners) !important; }
291
- .z-nav { z-index: var(--zi-navigation) !important; }
292
- .z-nav-fixed { z-index: var(--zi-navigation-fixed) !important; }
293
- .z-modal { z-index: var(--zi-modals) !important; }
294
- .z-modal-bg { z-index: var(--zi-modals-background) !important; }
295
-
296
- // ============================================================================
297
- // $ OUTLINE
298
- // ----------------------------------------------------------------------------
299
- .outline-none { outline: 0 !important; }
300
- .outline-ring { outline: solid var(--su-static4) var(--translucent-secondary); }
301
-
302
- .f\:outline-ring {
303
- &:focus,
304
- &:focus-within {
305
- .outline-ring;
306
- }
307
- }
308
-
309
- // ============================================================================
310
- // $ CURRENT COLOR
311
- // ----------------------------------------------------------------------------
312
- .fill-current { fill: currentColor !important; }
313
- .stroke-current { stroke: currentColor !important; }
314
-
315
- // ============================================================================
316
- // $ BOX SHADOW
317
- // ----------------------------------------------------------------------------
318
- #stacks-internals #responsify('.bs-none', { box-shadow: none !important; });
319
- .bs-sm { box-shadow: var(--bs-sm) !important; }
320
- .h\:bs-sm:hover { .bs-sm; }
321
- .bs-md { box-shadow: var(--bs-md) !important; }
322
- .h\:bs-md:hover { .bs-md; }
323
- .bs-lg { box-shadow: var(--bs-lg) !important; }
324
- .h\:bs-lg:hover { .bs-lg; }
325
- .bs-xl { box-shadow: var(--bs-xl) !important; }
326
- .bs-ring { box-shadow: 0 0 0 var(--su-static4) var(--focus-ring); }
327
- .h\:bs-ring:hover { .bs-ring; }
328
- .f\:bs-ring {
329
- &:focus,
330
- &:focus-within {
331
- .bs-ring;
332
- }
333
- }
334
-
335
- // -- Added hover styles for box-shadow
336
- // TODO do we still need them? Can we deprecate/remove these weird hover classes?
337
- .bs-sm.bs-hover:hover { box-shadow: 0 var(--su-static2) var(--su-static8) .set-black()[150] !important; }
338
- .bs-md.bs-hover:hover { box-shadow: 0 var(--su-static4) var(--su-static8) .set-black()[225] !important; }
339
- .bs-lg.bs-hover:hover { box-shadow: 0 var(--su-static4) var(--su-static12) fade(.set-black()[350], 70%) !important; }
340
- .bs-i-sm.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static8) 0 fade(.set-black()[300], 75%) !important; }
341
- .bs-i-md.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static8) 0 fade(.set-black()[350], 80%) !important; }
342
- .bs-i-lg.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static12) 0 .set-black()[350] !important; }
343
-
344
- // ============================================================================
345
- // $ TRANSITIONS
346
- // ----------------------------------------------------------------------------
347
-
348
- // -- Provide a sensible default
349
- .t {
350
- transition-duration: var(--transition-time);
351
- transition-property: all;
352
- transition-timing-function: var(--te-ease-in);
353
- transition-delay: 0s;
354
- }
355
-
356
- // -- Durations
357
- .t-slow { transition-duration: 0.25s !important; }
358
- .t-fast { transition-duration: 0.05s !important; }
359
-
360
- // -- Properties
361
- .t-unset { transition-property: none !important; }
362
- .t-bg { transition-property: background-color !important; }
363
- .t-opacity { transition-property: opacity !important; }
364
- .t-shadow { transition-property: box-shadow !important; }
365
-
366
- // -- Delays
367
- .t-delay { transition-delay: 0.25s !important; }
368
- .t-delay-unset { transition-delay: 0s !important; }
369
-
370
- // ============================================================================
371
- // $ TABLE LAYOUT
372
- // ----------------------------------------------------------------------------
373
- .tl-fixed { table-layout: fixed !important; }
374
- .tl-auto { table-layout: auto !important; }
1
+ @import (reference) "../base/internal.less";
2
+ @import (reference) "../exports/color-mixins.less";
3
+ @import (reference) "../exports/constants-helpers.less";
4
+ @import (reference) "../exports/mixins.less";
5
+
6
+ //
7
+ // STACK OVERFLOW
8
+ // UTILITIES
9
+ //
10
+ // This CSS comes from Stacks, our CSS & Pattern library for rapidly building
11
+ // Stack Overflow. For documentation of all these classes and how to contribute,
12
+ // visit https://stackoverflow.design/
13
+ //
14
+ // ============================================================================
15
+ // $ DISPLAY
16
+ // ----------------------------------------------------------------------------
17
+
18
+ #stacks-internals #responsify('.d-block', { display: block !important; });
19
+ #stacks-internals #responsify('.d-flex', { display: flex !important; });
20
+ #stacks-internals #responsify('.d-inline-flex', { display: inline-flex !important; });
21
+ #stacks-internals #responsify('.d-grid', { display: grid !important; });
22
+ #stacks-internals #responsify('.d-inline-grid', { display: inline-grid !important; });
23
+ #stacks-internals #responsify('.d-inline', { display: inline !important; });
24
+ #stacks-internals #responsify('.d-inline-block', { display: inline-block !important; });
25
+ .d-table { display: table !important; }
26
+ .d-table-cell { display: table-cell !important; }
27
+ #stacks-internals #responsify('.d-none', { display: none !important; });
28
+ .d-unset { display: unset !important; }
29
+
30
+ // ============================================================================
31
+ // $ BACKGROUND-POSITIONS
32
+ // ----------------------------------------------------------------------------
33
+ .bg-bottom { background-position: bottom !important; }
34
+ .bg-center { background-position: center !important; }
35
+ .bg-left { background-position: left !important; }
36
+ .bg-left-bottom { background-position: left bottom !important; }
37
+ .bg-left-top { background-position: left top !important; }
38
+ .bg-right { background-position: right !important; }
39
+ .bg-right-bottom { background-position: right bottom !important; }
40
+ .bg-right-top { background-position: right top !important; }
41
+ .bg-top { background-position: top !important; }
42
+
43
+ // ============================================================================
44
+ // $ BACKGROUND-REPEATS
45
+ // ----------------------------------------------------------------------------
46
+ .bg-repeat { background-repeat: repeat !important; }
47
+ .bg-no-repeat { background-repeat: no-repeat !important; }
48
+ .bg-repeat-x { background-repeat: repeat-x !important; }
49
+ .bg-repeat-y { background-repeat: repeat-y !important; }
50
+
51
+ // ============================================================================
52
+ // $ BACKGROUND-SIZE
53
+ // ----------------------------------------------------------------------------
54
+ .bg-auto { background-size: auto !important; }
55
+ .bg-cover { background-size: cover !important; }
56
+ .bg-contain { background-size: contain !important; }
57
+
58
+ // ============================================================================
59
+ // $ BACKGROUND-ATTACHMENT
60
+ // ----------------------------------------------------------------------------
61
+ .bg-fixed { background-attachment: fixed !important; }
62
+ .bg-local { background-attachment: local !important; }
63
+ .bg-scroll { background-attachment: scroll !important; }
64
+
65
+ // ============================================================================
66
+ // $ BACKGROUND-IMAGE
67
+ // ----------------------------------------------------------------------------
68
+ .bg-image-none { background-image: none !important; }
69
+
70
+ .bg-confetti-animated {
71
+ background-repeat: repeat-x;
72
+ background-position: top -10px center;
73
+ 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");
74
+
75
+ @media (prefers-reduced-motion) {
76
+ 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");
77
+ }
78
+ }
79
+
80
+ .bg-confetti-static {
81
+ background-repeat: repeat-x;
82
+ background-position: top -10px center;
83
+ 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");
84
+ }
85
+
86
+ // Focus styles
87
+ .focus,
88
+ .f\:focus:focus,
89
+ .f\:focus:focus-within {
90
+ .focus-styles();
91
+ }
92
+
93
+ .focus-inset,
94
+ .f\:focus-inset:focus,
95
+ .f\:focus-inset:focus-within {
96
+ .focus-styles(true);
97
+ }
98
+
99
+ .focus-bordered,
100
+ .f\:focus-bordered:focus,
101
+ .f\:focus-bordered:focus-within {
102
+ .focus-styles(false, true);
103
+ }
104
+
105
+ .focus-inset-bordered,
106
+ .f\:focus-inset-bordered:focus,
107
+ .f\:focus-inset-bordered:focus-within {
108
+ .focus-styles(true, true);
109
+ }
110
+
111
+ // ============================================================================
112
+ // $ OBJECT-FIT / OBJECT-POSITION
113
+ // ----------------------------------------------------------------------------
114
+
115
+ .of-contain { object-fit: contain !important; }
116
+ .of-cover { object-fit: cover !important; }
117
+ .of-fill { object-fit: fill !important; }
118
+ .of-none { object-fit: none !important; }
119
+ .of-scale-down { object-fit: scale-down !important; }
120
+
121
+ .op-center { object-position: center !important; }
122
+
123
+ // ============================================================================
124
+ // $ CURSORS
125
+ // ----------------------------------------------------------------------------
126
+ .c-auto { cursor: auto !important; }
127
+ .c-default { cursor: default !important; }
128
+ .c-pointer { cursor: pointer !important; }
129
+ .c-text { cursor: text !important; }
130
+ .c-wait { cursor: wait !important; }
131
+ .c-move { cursor: move !important; }
132
+ .c-not-allowed { cursor: not-allowed !important; }
133
+ .c-help { cursor: help !important; }
134
+
135
+ // ============================================================================
136
+ // $ POINTER EVENTS
137
+ // ----------------------------------------------------------------------------
138
+ .pe-auto { pointer-events: auto !important; }
139
+ .pe-none { pointer-events: none !important; }
140
+
141
+ // ============================================================================
142
+ // $ USER SELECT
143
+ // ----------------------------------------------------------------------------
144
+ .us-auto {
145
+ -webkit-user-select: auto !important;
146
+ -moz-user-select: auto !important;
147
+ -ms-user-select: auto !important;
148
+ user-select: auto !important;
149
+ }
150
+
151
+ .us-none {
152
+ -webkit-user-select: none !important;
153
+ -moz-user-select: none !important;
154
+ -ms-user-select: none !important;
155
+ user-select: none !important;
156
+ }
157
+
158
+ // ============================================================================
159
+ // $ USER DRAG
160
+ // ----------------------------------------------------------------------------
161
+ .ud-auto {
162
+ -webkit-user-drag: auto !important;
163
+ -moz-user-drag: auto !important;
164
+ -ms-user-drag: auto !important;
165
+ }
166
+
167
+ .ud-none {
168
+ -webkit-user-drag: none !important;
169
+ -moz-user-drag: none !important;
170
+ -ms-user-drag: none !important;
171
+ }
172
+
173
+ // ============================================================================
174
+ // $ VISIBILITY
175
+ // ----------------------------------------------------------------------------
176
+ .v-visible { visibility: visible !important; }
177
+ .v-hidden { visibility: hidden !important; }
178
+ .v-visible-sr {
179
+ // Borrowed from Wordpress
180
+ // https://make.wordpress.org/accessibility/2015/02/09/hiding-text-for-screen-readers-with-wordpress-core/
181
+ border: 0;
182
+ clip: rect(var(--su-static1), var(--su-static1), var(--su-static1), var(--su-static1)); // rect(1px, 1px, 1px, 1px)
183
+ clip-path: inset(50%);
184
+ height: var(--su-static1);
185
+ margin: calc(var(--su-static1) * -1); // -1px
186
+ overflow: hidden;
187
+ padding: 0;
188
+ position: absolute;
189
+ width: var(--su-static1);
190
+ overflow-wrap: normal;
191
+ }
192
+
193
+ // ============================================================================
194
+ // $ FLOATS
195
+ // ----------------------------------------------------------------------------
196
+ .float-left { float: left !important; }
197
+ .float-right { float: right !important; }
198
+ .float-none { float: none !important; }
199
+ .clearfix { .clearfix(); }
200
+ .clear-left { clear: left !important; }
201
+ .clear-right { clear: right !important; }
202
+ .clear-both { clear: both !important; }
203
+ .clear-none { clear: none !important; }
204
+
205
+ // ============================================================================
206
+ // $ BOX SIZING
207
+ // ----------------------------------------------------------------------------
208
+ .box-content { box-sizing: content-box !important; }
209
+ .box-border { box-sizing: border-box !important; }
210
+ .box-unset { box-sizing: unset !important; }
211
+
212
+ // ============================================================================
213
+ // $ VERTICAL ALIGNMENT
214
+ // ----------------------------------------------------------------------------
215
+ .va-baseline { vertical-align: baseline !important; }
216
+ .va-bottom { vertical-align: bottom !important; }
217
+ .va-middle { vertical-align: middle !important; }
218
+ .va-sub { vertical-align: sub !important; }
219
+ .va-super { vertical-align: super !important; }
220
+ .va-text-bottom { vertical-align: text-bottom !important; }
221
+ .va-text-top { vertical-align: text-top !important; }
222
+ .va-top { vertical-align: top !important; }
223
+ .va-unset { vertical-align: unset !important; }
224
+
225
+ // ============================================================================
226
+ // $ POSITION
227
+ // ----------------------------------------------------------------------------
228
+ #stacks-internals #responsify('.ps-absolute', { position: absolute !important; });
229
+ #stacks-internals #responsify('.ps-fixed', { position: fixed !important; });
230
+ #stacks-internals #responsify('.ps-relative', { position: relative !important; });
231
+ #stacks-internals #responsify('.ps-static', { position: static !important; });
232
+ #stacks-internals #responsify('.ps-sticky', { position: sticky !important; });
233
+ .ps-unset { position: unset !important; }
234
+
235
+ // ============================================================================
236
+ // $ OVERFLOW
237
+ // ----------------------------------------------------------------------------
238
+ .overflow-auto { overflow: auto !important; @scrollbar-styles(); }
239
+ .overflow-x-auto { overflow-x: auto !important; @scrollbar-styles(); }
240
+ .overflow-y-auto { overflow-y: auto !important; @scrollbar-styles(); }
241
+
242
+ .overflow-hidden { overflow: hidden !important; @scrollbar-styles(); }
243
+ .overflow-x-hidden { overflow-x: hidden !important; @scrollbar-styles(); }
244
+ .overflow-y-hidden { overflow-y: hidden !important; @scrollbar-styles(); }
245
+
246
+ .overflow-scroll { overflow: scroll !important; @scrollbar-styles(); }
247
+ .overflow-x-scroll { overflow-x: scroll !important; @scrollbar-styles(); }
248
+ .overflow-y-scroll { overflow-y: scroll !important; @scrollbar-styles(); }
249
+
250
+ .overflow-visible { overflow: visible !important; }
251
+
252
+ // ============================================================================
253
+ // $ OPACITY
254
+ // ----------------------------------------------------------------------------
255
+ .o0 { opacity: 0 !important; }
256
+ .h\:o0:hover { .o0; }
257
+ .o5 { opacity: 0.05 !important; }
258
+ .h\:o5:hover { .o5; }
259
+ .o10 { opacity: 0.1 !important; }
260
+ .o20 { opacity: 0.2 !important; }
261
+ .o30 { opacity: 0.3 !important; }
262
+ .o40 { opacity: 0.4 !important; }
263
+ .o50 { opacity: 0.5 !important; }
264
+ .h\:o50:hover { .o50; }
265
+ .o60 { opacity: 0.6 !important; }
266
+ .o70 { opacity: 0.7 !important; }
267
+ .o80 { opacity: 0.8 !important; }
268
+ .h\:o80:hover { .o80; }
269
+ .o90 { opacity: 0.9 !important; }
270
+ .o100 { opacity: 1 !important; }
271
+ .h\:o100:hover { .o100; }
272
+
273
+ .f\:o100 {
274
+ &:focus,
275
+ &:focus-within {
276
+ .o100;
277
+ }
278
+ }
279
+
280
+ // ============================================================================
281
+ // $ Z-INDEX
282
+ // ----------------------------------------------------------------------------
283
+ .z-hide { z-index: var(--zi-hide) !important; }
284
+ .z-base { z-index: var(--zi-base) !important; }
285
+ .z-active { z-index: var(--zi-active) !important; }
286
+ .z-selected { z-index: var(--zi-selected) !important; }
287
+ .z-dropdown { z-index: var(--zi-dropdown) !important; }
288
+ .z-popover { z-index: var(--zi-popovers) !important; }
289
+ .z-tooltip { z-index: var(--zi-tooltips) !important; }
290
+ .z-banner { z-index: var(--zi-banners) !important; }
291
+ .z-nav { z-index: var(--zi-navigation) !important; }
292
+ .z-nav-fixed { z-index: var(--zi-navigation-fixed) !important; }
293
+ .z-modal { z-index: var(--zi-modals) !important; }
294
+ .z-modal-bg { z-index: var(--zi-modals-background) !important; }
295
+
296
+ // ============================================================================
297
+ // $ OUTLINE
298
+ // ----------------------------------------------------------------------------
299
+ .outline-none { outline: 0 !important; }
300
+ .outline-ring { outline: solid var(--su-static4) var(--translucent-secondary); }
301
+
302
+ .f\:outline-ring {
303
+ &:focus,
304
+ &:focus-within {
305
+ .outline-ring;
306
+ }
307
+ }
308
+
309
+ // ============================================================================
310
+ // $ CURRENT COLOR
311
+ // ----------------------------------------------------------------------------
312
+ .fill-current { fill: currentColor !important; }
313
+ .stroke-current { stroke: currentColor !important; }
314
+
315
+ // ============================================================================
316
+ // $ BOX SHADOW
317
+ // ----------------------------------------------------------------------------
318
+ #stacks-internals #responsify('.bs-none', { box-shadow: none !important; });
319
+ .bs-sm { box-shadow: var(--bs-sm) !important; }
320
+ .h\:bs-sm:hover { .bs-sm; }
321
+ .bs-md { box-shadow: var(--bs-md) !important; }
322
+ .h\:bs-md:hover { .bs-md; }
323
+ .bs-lg { box-shadow: var(--bs-lg) !important; }
324
+ .h\:bs-lg:hover { .bs-lg; }
325
+ .bs-xl { box-shadow: var(--bs-xl) !important; }
326
+ .bs-ring { box-shadow: 0 0 0 var(--su-static4) var(--focus-ring); }
327
+ .h\:bs-ring:hover { .bs-ring; }
328
+ .f\:bs-ring {
329
+ &:focus,
330
+ &:focus-within {
331
+ .bs-ring;
332
+ }
333
+ }
334
+
335
+ // -- Added hover styles for box-shadow
336
+ // TODO do we still need them? Can we deprecate/remove these weird hover classes?
337
+ .bs-sm.bs-hover:hover { box-shadow: 0 var(--su-static2) var(--su-static8) .set-black()[150] !important; }
338
+ .bs-md.bs-hover:hover { box-shadow: 0 var(--su-static4) var(--su-static8) .set-black()[225] !important; }
339
+ .bs-lg.bs-hover:hover { box-shadow: 0 var(--su-static4) var(--su-static12) fade(.set-black()[350], 70%) !important; }
340
+ .bs-i-sm.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static8) 0 fade(.set-black()[300], 75%) !important; }
341
+ .bs-i-md.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static8) 0 fade(.set-black()[350], 80%) !important; }
342
+ .bs-i-lg.bs-hover:hover { box-shadow: inset 0 var(--su-static1) var(--su-static12) 0 .set-black()[350] !important; }
343
+
344
+ // ============================================================================
345
+ // $ TRANSITIONS
346
+ // ----------------------------------------------------------------------------
347
+
348
+ // -- Provide a sensible default
349
+ .t {
350
+ transition-duration: var(--transition-time);
351
+ transition-property: all;
352
+ transition-timing-function: var(--te-ease-in);
353
+ transition-delay: 0s;
354
+ }
355
+
356
+ // -- Durations
357
+ .t-slow { transition-duration: 0.25s !important; }
358
+ .t-fast { transition-duration: 0.05s !important; }
359
+
360
+ // -- Properties
361
+ .t-unset { transition-property: none !important; }
362
+ .t-bg { transition-property: background-color !important; }
363
+ .t-opacity { transition-property: opacity !important; }
364
+ .t-shadow { transition-property: box-shadow !important; }
365
+
366
+ // -- Delays
367
+ .t-delay { transition-delay: 0.25s !important; }
368
+ .t-delay-unset { transition-delay: 0s !important; }
369
+
370
+ // ============================================================================
371
+ // $ TABLE LAYOUT
372
+ // ----------------------------------------------------------------------------
373
+ .tl-fixed { table-layout: fixed !important; }
374
+ .tl-auto { table-layout: auto !important; }