@stackoverflow/stacks 1.9.0 → 1.9.1

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