@stackoverflow/stacks 3.0.0-beta.3 → 3.0.0-beta.30

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 (108) hide show
  1. package/dist/controllers.d.ts +0 -2
  2. package/dist/css/stacks.css +14245 -15086
  3. package/dist/css/stacks.min.css +1 -1
  4. package/dist/js/stacks.js +0 -364
  5. package/dist/js/stacks.min.js +1 -1
  6. package/lib/atomic/backgrounds.less +67 -0
  7. package/lib/atomic/border-radius.less +38 -0
  8. package/lib/atomic/borders.less +73 -0
  9. package/lib/atomic/box-shadow.less +29 -0
  10. package/lib/atomic/box-sizing.less +3 -0
  11. package/lib/atomic/current-color.less +2 -0
  12. package/lib/atomic/cursors.less +8 -0
  13. package/lib/atomic/display.less +15 -0
  14. package/lib/atomic/flex.less +6 -34
  15. package/lib/atomic/floats.less +20 -0
  16. package/lib/atomic/gap.less +2 -0
  17. package/lib/atomic/grid.less +2 -0
  18. package/lib/atomic/height.less +22 -0
  19. package/lib/atomic/interactivity.less +45 -0
  20. package/lib/atomic/lists.less +29 -0
  21. package/lib/atomic/margin.less +48 -0
  22. package/lib/atomic/object-fit.less +9 -0
  23. package/lib/atomic/opacity.less +54 -0
  24. package/lib/atomic/outline.less +11 -0
  25. package/lib/atomic/overflow.less +17 -0
  26. package/lib/atomic/padding.less +12 -0
  27. package/lib/atomic/positioning.less +41 -0
  28. package/lib/atomic/sizing.less +51 -0
  29. package/lib/atomic/transitions.less +20 -0
  30. package/lib/atomic/truncation.less +58 -0
  31. package/lib/atomic/typography.less +71 -137
  32. package/lib/atomic/vertical-alignment.less +9 -0
  33. package/lib/atomic/visibility.less +18 -0
  34. package/lib/atomic/width.less +27 -0
  35. package/lib/atomic/z-index.less +12 -0
  36. package/lib/base/body.less +2 -4
  37. package/lib/base/configuration-static.less +3 -3
  38. package/lib/base/internal.less +3 -5
  39. package/lib/base/reset-normalize.less +3 -3
  40. package/lib/components/activity-indicator/activity-indicator.less +4 -20
  41. package/lib/components/anchor/anchor.less +28 -39
  42. package/lib/components/avatar/avatar.less +20 -19
  43. package/lib/components/badge/badge.less +227 -167
  44. package/lib/components/banner/banner.less +12 -11
  45. package/lib/components/bling/bling.less +47 -10
  46. package/lib/components/button/button.less +300 -380
  47. package/lib/components/checkbox_radio/checkbox_radio.less +195 -113
  48. package/lib/components/code-block/code-block.fixtures.ts +2 -2
  49. package/lib/components/code-block/code-block.less +2 -3
  50. package/lib/components/description/description.less +17 -2
  51. package/lib/components/empty-state/empty-state.less +17 -6
  52. package/lib/components/form-group/form-group.less +38 -0
  53. package/lib/components/input-fill/input-fill.less +3 -3
  54. package/lib/components/input-icon/input-icon.less +3 -3
  55. package/lib/components/input-message/input-message.less +1 -0
  56. package/lib/components/input_textarea/input_textarea.less +71 -58
  57. package/lib/components/label/label.less +12 -56
  58. package/lib/components/link/link.less +44 -98
  59. package/lib/components/loader/loader.less +88 -0
  60. package/lib/components/menu/menu.less +89 -19
  61. package/lib/components/modal/modal.less +10 -10
  62. package/lib/components/navigation/navigation.less +77 -42
  63. package/lib/components/notice/notice.less +90 -75
  64. package/lib/components/pagination/pagination.less +50 -42
  65. package/lib/components/popover/popover.less +9 -11
  66. package/lib/components/post-summary/post-summary.less +225 -385
  67. package/lib/components/prose/prose.less +49 -35
  68. package/lib/components/select/select.less +46 -41
  69. package/lib/components/sidebar-widget/sidebar-widget.less +26 -196
  70. package/lib/components/table/table.less +48 -22
  71. package/lib/components/tag/tag.less +25 -6
  72. package/lib/components/toast/toast.less +4 -2
  73. package/lib/components/toggle-switch/toggle-switch.less +15 -19
  74. package/lib/components/user-card/user-card.less +129 -92
  75. package/lib/components/vote/vote.less +134 -0
  76. package/lib/controllers.ts +0 -2
  77. package/lib/exports/color-sets.less +108 -81
  78. package/lib/exports/constants-helpers.less +9 -13
  79. package/lib/exports/constants-type.less +18 -36
  80. package/lib/exports/mixins.less +92 -272
  81. package/lib/index.ts +0 -4
  82. package/lib/stacks-static.less +44 -30
  83. package/lib/test/visual-test-utils.ts +42 -10
  84. package/lib/tsconfig.json +1 -1
  85. package/package.json +1 -1
  86. package/dist/components/expandable/expandable.d.ts +0 -17
  87. package/dist/components/uploader/uploader.d.ts +0 -48
  88. package/lib/atomic/border.less +0 -121
  89. package/lib/atomic/misc.less +0 -374
  90. package/lib/atomic/spacing.less +0 -98
  91. package/lib/atomic/width-height.less +0 -194
  92. package/lib/components/block-link/block-link.less +0 -82
  93. package/lib/components/breadcrumbs/breadcrumbs.less +0 -41
  94. package/lib/components/button-group/button-group.less +0 -81
  95. package/lib/components/card/card.less +0 -37
  96. package/lib/components/check-control/check-control.less +0 -17
  97. package/lib/components/check-group/check-group.less +0 -19
  98. package/lib/components/expandable/expandable.less +0 -119
  99. package/lib/components/expandable/expandable.ts +0 -238
  100. package/lib/components/link-preview/link-preview.less +0 -148
  101. package/lib/components/page-title/page-title.less +0 -51
  102. package/lib/components/progress-bar/progress-bar.less +0 -292
  103. package/lib/components/skeleton/skeleton.less +0 -73
  104. package/lib/components/spinner/spinner.less +0 -103
  105. package/lib/components/topbar/topbar.less +0 -553
  106. package/lib/components/uploader/uploader.less +0 -205
  107. package/lib/components/uploader/uploader.ts +0 -207
  108. package/lib/exports/spacing-mixins.less +0 -67
@@ -1,17 +0,0 @@
1
- import * as Stacks from "../../stacks";
2
- export declare class ExpandableController extends Stacks.StacksController {
3
- private isCollapsed;
4
- private events;
5
- private isCheckable;
6
- private isRadio;
7
- private lastKeydownClickTimestamp;
8
- initialize(): void;
9
- _isCollapsedForClickable(): boolean;
10
- _isCollapsedForCheckable(): boolean;
11
- get controlledExpandables(): HTMLElement[];
12
- _dispatchShowHideEvent(isShow: boolean): void;
13
- _toggleClass(doAdd: boolean): void;
14
- listener(e: Event): void;
15
- connect(): void;
16
- disconnect(): void;
17
- }
@@ -1,48 +0,0 @@
1
- import * as Stacks from "../../stacks";
2
- export declare class UploaderController extends Stacks.StacksController {
3
- static targets: string[];
4
- readonly inputTarget: HTMLInputElement;
5
- readonly previewsTarget: HTMLElement;
6
- readonly uploaderTarget: HTMLElement;
7
- private boundDragEnter;
8
- private boundDragLeave;
9
- private static readonly FILE_DISPLAY_LIMIT;
10
- private static readonly MAX_FILE_SIZE;
11
- connect(): void;
12
- disconnect(): void;
13
- /**
14
- * Handles rendering the file preview state on input change
15
- */
16
- handleInput(): void;
17
- /**
18
- * Resets the Uploader to initial state
19
- */
20
- reset(): void;
21
- /**
22
- * Set hide/show and disabled state on elements depending on preview state
23
- * @param {boolean} shouldPreview - Uploader is entering a preview state
24
- */
25
- private handleVisible;
26
- /**
27
- * Adds a DOM element to preview a selected file
28
- * @param {FilePreview} file
29
- */
30
- private addFilePreview;
31
- /**
32
- * Toggles display and disabled state for select elements on valid input
33
- * @param {boolean} active - Uploader is in active state (typically on 'dragenter')
34
- */
35
- private handleUploaderActive;
36
- /**
37
- * Converts the file data into a data URL
38
- * @param {File} file
39
- * @returns an object containing a FilePreview object
40
- */
41
- private fileToDataURL;
42
- /**
43
- * Gets an array of FilePreviews from a FileList
44
- * @param {FileList|[]} files
45
- * @returns an array of FilePreview objects from a FileList
46
- */
47
- private getDataURLs;
48
- }
@@ -1,121 +0,0 @@
1
- #stacks-internals #responsify('.ba', { .bas-solid; .baw1; });
2
- #stacks-internals #responsify('.bt', { .bts-solid; .btw1; });
3
- #stacks-internals #responsify('.br', { .brs-solid; .brw1; });
4
- #stacks-internals #responsify('.bb', { .bbs-solid; .bbw1; });
5
- #stacks-internals #responsify('.bl', { .bls-solid; .blw1; });
6
- .bx { .bls-solid; .brs-solid; .bxw1; }
7
- .by { .bts-solid; .bbs-solid; .byw1; }
8
-
9
- // ============================================================================
10
- // $ WIDTH
11
- // ----------------------------------------------------------------------------
12
- // $$ All Sides
13
- #stacks-internals #responsify('.baw0', { border-width: 0 !important; });
14
- .baw1 { border-width: var(--su-static1) !important; }
15
- .baw2 { border-width: var(--su-static2) !important; }
16
- .baw3 { border-width: var(--su-static4) !important; }
17
-
18
- // $$ Top Border
19
- #stacks-internals #responsify('.btw0', { border-top-width: 0 !important; });
20
- .btw1 { border-top-width: var(--su-static1) !important; }
21
- .btw2 { border-top-width: var(--su-static2) !important; }
22
- .btw3 { border-top-width: var(--su-static4) !important; }
23
-
24
- // $$ Right Border
25
- #stacks-internals #responsify('.brw0', { border-right-width: 0 !important; });
26
- .brw1 { border-right-width: var(--su-static1) !important; }
27
- .brw2 { border-right-width: var(--su-static2) !important; }
28
- .brw3 { border-right-width: var(--su-static4) !important; }
29
-
30
- // $$ Bottom Border
31
- #stacks-internals #responsify('.bbw0', { border-bottom-width: 0 !important; });
32
- .bbw1 { border-bottom-width: var(--su-static1) !important; }
33
- .bbw2 { border-bottom-width: var(--su-static2) !important; }
34
- .bbw3 { border-bottom-width: var(--su-static4) !important; }
35
-
36
- // $$ Left Border
37
- #stacks-internals #responsify('.blw0', { border-left-width: 0 !important; });
38
- .blw0 { border-left-width: 0 !important; }
39
- .blw1 { border-left-width: var(--su-static1) !important; }
40
- .blw2 { border-left-width: var(--su-static2) !important; }
41
- .blw3 { border-left-width: var(--su-static4) !important; }
42
-
43
- // $$ Y-Axis Border
44
- .byw0 { .btw0; .bbw0; }
45
- .byw1 { .btw1; .bbw1; }
46
- .byw2 { .btw2; .bbw2; }
47
- .byw3 { .btw3; .bbw3; }
48
-
49
- // $$ X-Axis Border
50
- .bxw0 { .brw0; .blw0; }
51
- .bxw1 { .brw1; .blw1; }
52
- .bxw2 { .brw2; .blw2; }
53
- .bxw3 { .brw3; .blw3; }
54
-
55
-
56
- // ============================================================================
57
- // $ STYLE
58
- // ============================================================================
59
- // $$ All sides
60
- .bas-solid { border-style: solid !important; }
61
- .bas-dashed { border-style: dashed !important; }
62
-
63
- // $$ Top Border
64
- .bts-solid { border-top-style: solid !important; }
65
- .bts-dashed { border-top-style: dashed !important; }
66
-
67
- // $$ Right Border
68
- .brs-solid { border-right-style: solid !important; }
69
- .brs-dashed { border-right-style: dashed !important; }
70
-
71
- // $$ Bottom Border
72
- .bbs-solid { border-bottom-style: solid !important; }
73
- .bbs-dashed { border-bottom-style: dashed !important; }
74
-
75
- // $$ Left Border
76
- .bls-solid { border-left-style: solid !important; }
77
- .bls-dashed { border-left-style: dashed !important; }
78
-
79
-
80
- // ============================================================================
81
- // $ BORDER RADIUS
82
- // ----------------------------------------------------------------------------
83
- // $$ All Sides
84
- .bar-md { border-radius: var(--br-md) !important; }
85
- .bar-circle { border-radius: var(--br-circle) !important; }
86
- .bar-pill { border-radius: var(--br-pill) !important; }
87
-
88
- // $$ Top Left Corner
89
- .btlr0 { border-top-left-radius: 0 !important; }
90
- .btlr-md { border-top-left-radius: var(--br-md) !important; }
91
-
92
- // $$ Top Right Corner
93
- .btrr0 { border-top-right-radius: 0 !important; }
94
- .btrr-md { border-top-right-radius: var(--br-md) !important; }
95
-
96
- // $$ Bottom Left Corner
97
- .bblr0 { border-bottom-left-radius: 0 !important; }
98
- .bblr-md { border-bottom-left-radius: var(--br-md) !important; }
99
-
100
- // $$ Bottom Right Corner
101
- .bbrr0 { border-bottom-right-radius: 0 !important; }
102
- .bbrr-md { border-bottom-right-radius: var(--br-md) !important; }
103
-
104
- // $$ Top Corners
105
- .btr0 { .btlr0; .btrr0; }
106
- .btr-md { .btlr-md; .btrr-md; }
107
-
108
- // $$ Right Corners
109
- .brr0 { .btrr0; .bbrr0; }
110
- .brr-md { .btrr-md; .bbrr-md; }
111
-
112
- // $$ Bottom Corners
113
- .bbr0 { .bblr0; .bbrr0; }
114
- .bbr-md { .bblr-md; .bbrr-md; }
115
-
116
- // $$ Left Corners
117
- .blr0 { .btlr0; .bblr0; }
118
- .blr-md { .btlr-md; .bblr-md; }
119
-
120
- // $$ All Sides
121
- #stacks-internals #responsify('.bar0', { border-radius: 0 !important; });
@@ -1,374 +0,0 @@
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); } // TODO SHINE revisit this value once theme colors are finalized
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,98 +0,0 @@
1
- @import (reference) "../base/internal.less";
2
- @import (reference) "../exports/spacing-mixins.less";
3
-
4
- // SPACING UNITS CSS CUSTOM PROPERTIES
5
- body {
6
- --su-base: 1;
7
- --su-static0: 0px;
8
- --su-static1: 1px;
9
- --su-static2: 2px;
10
- --su-static4: 4px;
11
- --su-static6: 6px;
12
- --su-static8: 8px;
13
- --su-static12: 12px;
14
- --su-static16: 16px;
15
- --su-static24: 24px;
16
- --su-static32: 32px;
17
- --su-static48: 48px;
18
- --su-static64: 64px;
19
- --su-static96: 96px;
20
- --su-static128: 128px;
21
-
22
- --su0: var(--su-static0);
23
- // This ensures `--su1` never drops below 1px by setting the clamp MIN value to `--su-static1` (1px).
24
- --su1: clamp(var(--su-static1), calc(var(--su-static1) * var(--su-base)), calc(var(--su-static1) * var(--su-base)));
25
- --su2: calc(var(--su-static2) * var(--su-base));
26
- --su4: calc(var(--su-static4) * var(--su-base));
27
- --su6: calc(var(--su-static6) * var(--su-base));
28
- --su8: calc(var(--su-static8) * var(--su-base));
29
- --su12: calc(var(--su-static12) * var(--su-base));
30
- --su16: calc(var(--su-static16) * var(--su-base));
31
- --su24: calc(var(--su-static24) * var(--su-base));
32
- --su32: calc(var(--su-static32) * var(--su-base));
33
- --su48: calc(var(--su-static48) * var(--su-base));
34
- --su64: calc(var(--su-static64) * var(--su-base));
35
- --su96: calc(var(--su-static96) * var(--su-base));
36
- --su128: calc(var(--su-static128) * var(--su-base));
37
- }
38
-
39
- // MARGIN
40
- // Margin
41
- .m-auto { margin: auto !important; }
42
- .generate-spacing('.m', margin, true);
43
- .generate-spacing('.m', margin, true, percent);
44
-
45
- // Margin top
46
- .mt-auto { margin-top: auto !important; }
47
- .generate-spacing('.mt', margin-top, true);
48
- .generate-spacing('.mt', margin-top, true, percent);
49
-
50
- // Margin right
51
- .mr-auto { margin-right: auto !important; }
52
- .generate-spacing('.mr', margin-right, true);
53
- .generate-spacing('.mr', margin-right, true, percent);
54
-
55
- // Margin bottom
56
- .mb-auto { margin-bottom: auto !important; }
57
- .generate-spacing('.mb', margin-bottom, true);
58
- .generate-spacing('.mb', margin-bottom, true, percent);
59
-
60
- // Margin left
61
- .ml-auto { margin-left: auto !important; }
62
- .generate-spacing('.ml', margin-left, true);
63
- .generate-spacing('.ml', margin-left, true, percent);
64
-
65
- // Margin x-axis, y-axis
66
- .mx-auto { margin-left: auto !important; margin-right: auto !important; }
67
- .my-auto { margin-top: auto !important; margin-bottom: auto !important; }
68
- .generate-spacing('.mx'; margin-left, margin-right; true);
69
- .generate-spacing('.my'; margin-top, margin-bottom; true);
70
-
71
- // PADDING
72
- .generate-spacing('.p', padding);
73
- .generate-spacing('.pt', padding-top);
74
- .generate-spacing('.pr', padding-right);
75
- .generate-spacing('.pb', padding-bottom);
76
- .generate-spacing('.pl', padding-left);
77
- .generate-spacing('.px'; padding-left, padding-right);
78
- .generate-spacing('.py'; padding-top, padding-bottom);
79
-
80
- // POSITIONING
81
- // Inset
82
- .generate-spacing('.i', inset);
83
-
84
- // Top
85
- .generate-spacing('.t', top, true);
86
- .generate-spacing('.t', top, true, percent);
87
-
88
- // Right
89
- .generate-spacing('.r', right, true);
90
- .generate-spacing('.r', right, true, percent);
91
-
92
- // Bottom
93
- .generate-spacing('.b', bottom, true);
94
- .generate-spacing('.b', bottom, true, percent);
95
-
96
- // Left
97
- .generate-spacing('.l', left, true);
98
- .generate-spacing('.l', left, true, percent);