@stackoverflow/stacks 1.9.0 → 1.9.2

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,342 +1,342 @@
1
- //
2
- // STACK OVERFLOW
3
- // SPACING
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
- // • SPACING UNIT CSS VARIABLES
10
- // • MARGIN
11
- // • PADDING
12
- // • POSITIONING
13
- //
14
- // ============================================================================
15
- // $ SPACING UNITS CSS VARIABLES
16
- // ----------------------------------------------------------------------------
17
- body {
18
- --su-base: 1;
19
- --su-static1: 1px;
20
- --su-static2: 2px;
21
- --su-static4: 4px;
22
- --su-static6: 6px;
23
- --su-static8: 8px;
24
- --su-static12: 12px;
25
- --su-static16: 16px;
26
- --su-static24: 24px;
27
- --su-static32: 32px;
28
- --su-static48: 48px;
29
- --su-static64: 64px;
30
- --su-static96: 96px;
31
- --su-static128: 128px;
32
-
33
- // This ensures `--su1` never drops below 1px by setting the clamp MIN value to `--su-static1` (1px).
34
- --su1: clamp(var(--su-static1), calc(var(--su-static1) * var(--su-base)), calc(var(--su-static1) * var(--su-base)));
35
- --su2: calc(var(--su-static2) * var(--su-base));
36
- --su4: calc(var(--su-static4) * var(--su-base));
37
- --su6: calc(var(--su-static6) * var(--su-base));
38
- --su8: calc(var(--su-static8) * var(--su-base));
39
- --su12: calc(var(--su-static12) * var(--su-base));
40
- --su16: calc(var(--su-static16) * var(--su-base));
41
- --su24: calc(var(--su-static24) * var(--su-base));
42
- --su32: calc(var(--su-static32) * var(--su-base));
43
- --su48: calc(var(--su-static48) * var(--su-base));
44
- --su64: calc(var(--su-static64) * var(--su-base));
45
- --su96: calc(var(--su-static96) * var(--su-base));
46
- --su128: calc(var(--su-static128) * var(--su-base));
47
- }
48
-
49
- // ============================================================================
50
- // $ MARGIN
51
- // ----------------------------------------------------------------------------
52
- // $$ 0 margin
53
- .m0 { margin: 0 !important; }
54
- .mt0 { margin-top: 0 !important; }
55
- .mr0 { margin-right: 0 !important; }
56
- .mb0 { margin-bottom: 0 !important; }
57
- .ml0 { margin-left: 0 !important; }
58
- .mx0 { margin-left: 0 !important; margin-right: 0 !important; }
59
- .my0 { margin-top: 0 !important; margin-bottom: 0 !important; }
60
-
61
- // $$ auto margin
62
- .m-auto { margin: auto !important; }
63
- .mt-auto { margin-top: auto !important; }
64
- .mr-auto { margin-right: auto !important; }
65
- .mb-auto { margin-bottom: auto !important; }
66
- .ml-auto { margin-left: auto !important; }
67
- .mx-auto { margin-left: auto !important; margin-right: auto !important; }
68
- .my-auto { margin-top: auto !important; margin-bottom: auto !important; }
69
-
70
- // $$ Margin
71
- #stacks-internals #build-classes(
72
- responsive,
73
- '.m',
74
- { .template(@value) { margin: var(~"--su@{value}") !important; } },
75
- 1 2 4 6 8 12 16 24 32 48 64 96 128
76
- );
77
-
78
- #stacks-internals #responsify('.m0', { margin: 0 !important; });
79
-
80
- // $$ Margin negative
81
- #stacks-internals #build-classes(
82
- responsive,
83
- '.mn',
84
- { .template(@value) { margin: calc(var(~"--su@{value}") * -1) !important; } },
85
- 1 2 4 6 8 12 16 24 32 48 64 96 128
86
- );
87
-
88
- // $$ Top margin
89
- #stacks-internals #build-classes(
90
- responsive,
91
- '.mt',
92
- { .template(@value) { margin-top: var(~"--su@{value}") !important; } },
93
- 1 2 4 6 8 12 16 24 32 48 64 96 128
94
- );
95
-
96
- #stacks-internals #responsify('.mt0', { margin-top: 0 !important; });
97
-
98
- // $$ Top margin negative
99
- #stacks-internals #build-classes(
100
- responsive,
101
- '.mtn',
102
- { .template(@value) { margin-top: calc(var(~"--su@{value}") * -1) !important; } },
103
- 1 2 4 6 8 12 16 24 32 48 64 96 128
104
- );
105
-
106
- // $$ Right margin
107
- #stacks-internals #build-classes(
108
- responsive,
109
- '.mr',
110
- { .template(@value) { margin-right: var(~"--su@{value}") !important; } },
111
- 1 2 4 6 8 12 16 24 32 48 64 96 128
112
- );
113
-
114
- #stacks-internals #responsify('.mr0', { margin-right: 0 !important; });
115
-
116
- // $$ Right margin negative
117
- #stacks-internals #build-classes(
118
- responsive,
119
- '.mrn',
120
- { .template(@value) { margin-right: calc(var(~"--su@{value}") * -1) !important; } },
121
- 1 2 4 6 8 12 16 24 32 48 64 96 128
122
- );
123
-
124
- // $$ Bottom margin
125
- #stacks-internals #build-classes(
126
- responsive,
127
- '.mb',
128
- { .template(@value) { margin-bottom: var(~"--su@{value}") !important; } },
129
- 1 2 4 6 8 12 16 24 32 48 64 96 128
130
- );
131
-
132
- #stacks-internals #responsify('.mb0', { margin-bottom: 0 !important; });
133
-
134
- // $$ Bottom margin negative
135
- #stacks-internals #build-classes(
136
- responsive,
137
- '.mbn',
138
- { .template(@value) { margin-bottom: calc(var(~"--su@{value}") * -1) !important; } },
139
- 1 2 4 6 8 12 16 24 32 48 64 96 128
140
- );
141
-
142
- // $$ Left margin
143
- #stacks-internals #build-classes(
144
- responsive,
145
- '.ml',
146
- { .template(@value) { margin-left: var(~"--su@{value}") !important; } },
147
- 1 2 4 6 8 12 16 24 32 48 64 96 128
148
- );
149
-
150
- #stacks-internals #responsify('.ml0', { margin-left: 0 !important; });
151
-
152
- // $$ Left margin negative
153
- #stacks-internals #build-classes(
154
- responsive,
155
- '.mln',
156
- { .template(@value) { margin-left: calc(var(~"--su@{value}") * -1) !important; } },
157
- 1 2 4 6 8 12 16 24 32 48 64 96 128
158
- );
159
-
160
- #stacks-internals #build-classes(
161
- '.mx', { .template(@value) { margin-left: var(~"--su@{value}") !important; margin-right: var(~"--su@{value}") !important; } },
162
- 1 2 4 6 8 12 16 24 32 48 64 96 128
163
- );
164
-
165
- #stacks-internals #build-classes(
166
- '.mxn', { .template(@value) { margin-left: calc(var(~"--su@{value}") * -1) !important; margin-right: calc(var(~"--su@{value}") * -1) !important; } },
167
- 1 2 4 6 8 12 16 24 32 48 64 96 128
168
- );
169
-
170
- #stacks-internals #build-classes(
171
- '.my', { .template(@value) { margin-top: var(~"--su@{value}") !important; margin-bottom: var(~"--su@{value}") !important; } },
172
- 1 2 4 6 8 12 16 24 32 48 64 96 128
173
- );
174
-
175
- #stacks-internals #build-classes(
176
- '.myn', { .template(@value) { margin-top: calc(var(~"--su@{value}") * -1) !important; margin-bottom: calc(var(~"--su@{value}") * -1) !important; } },
177
- 1 2 4 6 8 12 16 24 32 48 64 96 128
178
- );
179
-
180
- // ============================================================================
181
- // $ PADDING
182
- // ----------------------------------------------------------------------------
183
-
184
- // $$ 0 padding
185
- .p0 { padding: 0 !important; }
186
- .pt0 { padding-top: 0 !important; }
187
- .pr0 { padding-right: 0 !important; }
188
- .pb0 { padding-bottom: 0 !important; }
189
- .pl0 { padding-left: 0 !important; }
190
- .px0 { padding-left: 0 !important; padding-right: 0 !important; }
191
- .py0 { padding-top: 0 !important; padding-bottom: 0 !important; }
192
-
193
- #stacks-internals #build-classes(
194
- responsive,
195
- '.p', { .template(@value) { padding: var(~"--su@{value}") !important; } },
196
- 1 2 4 6 8 12 16 24 32 48 64 96 128
197
- );
198
-
199
- #stacks-internals #responsify('.p0', { padding: 0 !important; });
200
-
201
- // $$ Top Padding
202
- #stacks-internals #build-classes(
203
- responsive,
204
- '.pt', { .template(@value) { padding-top: var(~"--su@{value}") !important; } },
205
- 1 2 4 6 8 12 16 24 32 48 64 96 128
206
- );
207
-
208
- #stacks-internals #responsify('.pt0', { padding-top: 0 !important; });
209
-
210
- // $$ Right Padding
211
- #stacks-internals #build-classes(
212
- responsive,
213
- '.pr', { .template(@value) { padding-right: var(~"--su@{value}") !important; } },
214
- 1 2 4 6 8 12 16 24 32 48 64 96 128
215
- );
216
-
217
- // $$ Bottom Padding
218
- #stacks-internals #build-classes(
219
- responsive,
220
- '.pb', { .template(@value) { padding-bottom: var(~"--su@{value}") !important; } },
221
- 1 2 4 6 8 12 16 24 32 48 64 96 128
222
- );
223
-
224
- #stacks-internals #responsify('.pr0', { padding-right: 0 !important; });
225
-
226
- // $$ Left Padding
227
- #stacks-internals #build-classes(
228
- responsive,
229
- '.pl', { .template(@value) { padding-left: var(~"--su@{value}") !important; } },
230
- 1 2 4 6 8 12 16 24 32 48 64 96 128
231
- );
232
-
233
- #stacks-internals #responsify('.pl0', { padding-left: 0 !important; });
234
-
235
- // $$ X-Axis Padding
236
- #stacks-internals #build-classes(
237
- '.px', { .template(@value) { padding-left: var(~"--su@{value}") !important; padding-right: var(~"--su@{value}") !important; } },
238
- 1 2 4 6 8 12 16 24 32 48 64 96 128
239
- );
240
-
241
- // $$ Y-Axis Padding
242
- #stacks-internals #build-classes(
243
- '.py', { .template(@value) { padding-top: var(~"--su@{value}") !important; padding-bottom: var(~"--su@{value}") !important; } },
244
- 1 2 4 6 8 12 16 24 32 48 64 96 128
245
- );
246
-
247
- // ============================================================================
248
- // $ POSITIONING
249
- // ----------------------------------------------------------------------------
250
-
251
- // $$ Top
252
- #stacks-internals #build-classes(
253
- responsive,
254
- '.t', { .template(@value) { top: var(~"--su@{value}") !important; } },
255
- 1 2 4 6 8 12 16 24 32 48 64 96 128
256
- );
257
-
258
- // $$ Top 0, percent
259
- #stacks-internals #build-classes(
260
- '.t', { .template(@value) { top: @value !important; } },
261
- 0 50% -50% 100% -100%
262
- );
263
-
264
- // $$ Top negative
265
- #stacks-internals #build-classes(
266
- responsive,
267
- '.tn', { .template(@value) { top: calc(var(~"--su@{value}") * -1) !important; } },
268
- 1 2 4 6 8 12 16 24 32 48 64 96 128
269
- );
270
-
271
- // $$ Right
272
- #stacks-internals #build-classes(
273
- responsive,
274
- '.r', { .template(@value) { right: var(~"--su@{value}") !important; } },
275
- 1 2 4 6 8 12 16 24 32 48 64 96 128
276
- );
277
-
278
- // $$ Right 0, percent
279
- #stacks-internals #build-classes(
280
- '.r', { .template(@value) { right: @value !important; } },
281
- 0 50% -50% 100% -100%
282
- );
283
-
284
- // $$ Right negative
285
- #stacks-internals #build-classes(
286
- responsive,
287
- '.rn', { .template(@value) { right: calc(var(~"--su@{value}") * -1) !important; } },
288
- 1 2 4 6 8 12 16 24 32 48 64 96 128
289
- );
290
-
291
- // $$ Bottom
292
- #stacks-internals #build-classes(
293
- responsive,
294
- '.b', { .template(@value) { bottom: var(~"--su@{value}") !important; } },
295
- 1 2 4 6 8 12 16 24 32 48 64 96 128
296
- );
297
-
298
- // $$ Bottom 0, percent
299
- #stacks-internals #build-classes(
300
- '.b', { .template(@value) { bottom: @value !important; } },
301
- 0 50% -50% 100% -100%
302
- );
303
-
304
- // $$ Bottom negative
305
- #stacks-internals #build-classes(
306
- responsive,
307
- '.bn', { .template(@value) { bottom: calc(var(~"--su@{value}") * -1) !important; } },
308
- 1 2 4 6 8 12 16 24 32 48 64 96 128
309
- );
310
-
311
- // $$ Left
312
- #stacks-internals #build-classes(
313
- responsive,
314
- '.l', { .template(@value) { left: var(~"--su@{value}") !important; } },
315
- 1 2 4 6 8 12 16 24 32 48 64 96 128
316
- );
317
-
318
- // $$ Left 0, percent
319
- #stacks-internals #build-classes(
320
- '.l', { .template(@value) { left: @value !important; } },
321
- 0 50% -50% 100% -100%
322
- );
323
-
324
- // $$ Left negative
325
- #stacks-internals #build-classes(
326
- responsive,
327
- '.ln', { .template(@value) { left: calc(var(~"--su@{value}") * -1) !important; } },
328
- 1 2 4 6 8 12 16 24 32 48 64 96 128
329
- );
330
-
331
- // $$ Inset
332
- #stacks-internals #build-classes(
333
- responsive,
334
- '.i', { .template(@value) { inset: var(~"--su@{value}") !important; } },
335
- 1 2 4 6 8 12 16 24 32 48 64 96 128
336
- );
337
-
338
- // $$ Inset 0
339
- #stacks-internals #build-classes(
340
- '.i', { .template(@value) { inset: @value !important; } },
341
- 0
342
- );
1
+ //
2
+ // STACK OVERFLOW
3
+ // SPACING
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
+ // • SPACING UNIT CSS VARIABLES
10
+ // • MARGIN
11
+ // • PADDING
12
+ // • POSITIONING
13
+ //
14
+ // ============================================================================
15
+ // $ SPACING UNITS CSS VARIABLES
16
+ // ----------------------------------------------------------------------------
17
+ body {
18
+ --su-base: 1;
19
+ --su-static1: 1px;
20
+ --su-static2: 2px;
21
+ --su-static4: 4px;
22
+ --su-static6: 6px;
23
+ --su-static8: 8px;
24
+ --su-static12: 12px;
25
+ --su-static16: 16px;
26
+ --su-static24: 24px;
27
+ --su-static32: 32px;
28
+ --su-static48: 48px;
29
+ --su-static64: 64px;
30
+ --su-static96: 96px;
31
+ --su-static128: 128px;
32
+
33
+ // This ensures `--su1` never drops below 1px by setting the clamp MIN value to `--su-static1` (1px).
34
+ --su1: clamp(var(--su-static1), calc(var(--su-static1) * var(--su-base)), calc(var(--su-static1) * var(--su-base)));
35
+ --su2: calc(var(--su-static2) * var(--su-base));
36
+ --su4: calc(var(--su-static4) * var(--su-base));
37
+ --su6: calc(var(--su-static6) * var(--su-base));
38
+ --su8: calc(var(--su-static8) * var(--su-base));
39
+ --su12: calc(var(--su-static12) * var(--su-base));
40
+ --su16: calc(var(--su-static16) * var(--su-base));
41
+ --su24: calc(var(--su-static24) * var(--su-base));
42
+ --su32: calc(var(--su-static32) * var(--su-base));
43
+ --su48: calc(var(--su-static48) * var(--su-base));
44
+ --su64: calc(var(--su-static64) * var(--su-base));
45
+ --su96: calc(var(--su-static96) * var(--su-base));
46
+ --su128: calc(var(--su-static128) * var(--su-base));
47
+ }
48
+
49
+ // ============================================================================
50
+ // $ MARGIN
51
+ // ----------------------------------------------------------------------------
52
+ // $$ 0 margin
53
+ .m0 { margin: 0 !important; }
54
+ .mt0 { margin-top: 0 !important; }
55
+ .mr0 { margin-right: 0 !important; }
56
+ .mb0 { margin-bottom: 0 !important; }
57
+ .ml0 { margin-left: 0 !important; }
58
+ .mx0 { margin-left: 0 !important; margin-right: 0 !important; }
59
+ .my0 { margin-top: 0 !important; margin-bottom: 0 !important; }
60
+
61
+ // $$ auto margin
62
+ .m-auto { margin: auto !important; }
63
+ .mt-auto { margin-top: auto !important; }
64
+ .mr-auto { margin-right: auto !important; }
65
+ .mb-auto { margin-bottom: auto !important; }
66
+ .ml-auto { margin-left: auto !important; }
67
+ .mx-auto { margin-left: auto !important; margin-right: auto !important; }
68
+ .my-auto { margin-top: auto !important; margin-bottom: auto !important; }
69
+
70
+ // $$ Margin
71
+ #stacks-internals #build-classes(
72
+ responsive,
73
+ '.m',
74
+ { .template(@value) { margin: var(~"--su@{value}") !important; } },
75
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
76
+ );
77
+
78
+ #stacks-internals #responsify('.m0', { margin: 0 !important; });
79
+
80
+ // $$ Margin negative
81
+ #stacks-internals #build-classes(
82
+ responsive,
83
+ '.mn',
84
+ { .template(@value) { margin: calc(var(~"--su@{value}") * -1) !important; } },
85
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
86
+ );
87
+
88
+ // $$ Top margin
89
+ #stacks-internals #build-classes(
90
+ responsive,
91
+ '.mt',
92
+ { .template(@value) { margin-top: var(~"--su@{value}") !important; } },
93
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
94
+ );
95
+
96
+ #stacks-internals #responsify('.mt0', { margin-top: 0 !important; });
97
+
98
+ // $$ Top margin negative
99
+ #stacks-internals #build-classes(
100
+ responsive,
101
+ '.mtn',
102
+ { .template(@value) { margin-top: calc(var(~"--su@{value}") * -1) !important; } },
103
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
104
+ );
105
+
106
+ // $$ Right margin
107
+ #stacks-internals #build-classes(
108
+ responsive,
109
+ '.mr',
110
+ { .template(@value) { margin-right: var(~"--su@{value}") !important; } },
111
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
112
+ );
113
+
114
+ #stacks-internals #responsify('.mr0', { margin-right: 0 !important; });
115
+
116
+ // $$ Right margin negative
117
+ #stacks-internals #build-classes(
118
+ responsive,
119
+ '.mrn',
120
+ { .template(@value) { margin-right: calc(var(~"--su@{value}") * -1) !important; } },
121
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
122
+ );
123
+
124
+ // $$ Bottom margin
125
+ #stacks-internals #build-classes(
126
+ responsive,
127
+ '.mb',
128
+ { .template(@value) { margin-bottom: var(~"--su@{value}") !important; } },
129
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
130
+ );
131
+
132
+ #stacks-internals #responsify('.mb0', { margin-bottom: 0 !important; });
133
+
134
+ // $$ Bottom margin negative
135
+ #stacks-internals #build-classes(
136
+ responsive,
137
+ '.mbn',
138
+ { .template(@value) { margin-bottom: calc(var(~"--su@{value}") * -1) !important; } },
139
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
140
+ );
141
+
142
+ // $$ Left margin
143
+ #stacks-internals #build-classes(
144
+ responsive,
145
+ '.ml',
146
+ { .template(@value) { margin-left: var(~"--su@{value}") !important; } },
147
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
148
+ );
149
+
150
+ #stacks-internals #responsify('.ml0', { margin-left: 0 !important; });
151
+
152
+ // $$ Left margin negative
153
+ #stacks-internals #build-classes(
154
+ responsive,
155
+ '.mln',
156
+ { .template(@value) { margin-left: calc(var(~"--su@{value}") * -1) !important; } },
157
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
158
+ );
159
+
160
+ #stacks-internals #build-classes(
161
+ '.mx', { .template(@value) { margin-left: var(~"--su@{value}") !important; margin-right: var(~"--su@{value}") !important; } },
162
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
163
+ );
164
+
165
+ #stacks-internals #build-classes(
166
+ '.mxn', { .template(@value) { margin-left: calc(var(~"--su@{value}") * -1) !important; margin-right: calc(var(~"--su@{value}") * -1) !important; } },
167
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
168
+ );
169
+
170
+ #stacks-internals #build-classes(
171
+ '.my', { .template(@value) { margin-top: var(~"--su@{value}") !important; margin-bottom: var(~"--su@{value}") !important; } },
172
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
173
+ );
174
+
175
+ #stacks-internals #build-classes(
176
+ '.myn', { .template(@value) { margin-top: calc(var(~"--su@{value}") * -1) !important; margin-bottom: calc(var(~"--su@{value}") * -1) !important; } },
177
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
178
+ );
179
+
180
+ // ============================================================================
181
+ // $ PADDING
182
+ // ----------------------------------------------------------------------------
183
+
184
+ // $$ 0 padding
185
+ .p0 { padding: 0 !important; }
186
+ .pt0 { padding-top: 0 !important; }
187
+ .pr0 { padding-right: 0 !important; }
188
+ .pb0 { padding-bottom: 0 !important; }
189
+ .pl0 { padding-left: 0 !important; }
190
+ .px0 { padding-left: 0 !important; padding-right: 0 !important; }
191
+ .py0 { padding-top: 0 !important; padding-bottom: 0 !important; }
192
+
193
+ #stacks-internals #build-classes(
194
+ responsive,
195
+ '.p', { .template(@value) { padding: var(~"--su@{value}") !important; } },
196
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
197
+ );
198
+
199
+ #stacks-internals #responsify('.p0', { padding: 0 !important; });
200
+
201
+ // $$ Top Padding
202
+ #stacks-internals #build-classes(
203
+ responsive,
204
+ '.pt', { .template(@value) { padding-top: var(~"--su@{value}") !important; } },
205
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
206
+ );
207
+
208
+ #stacks-internals #responsify('.pt0', { padding-top: 0 !important; });
209
+
210
+ // $$ Right Padding
211
+ #stacks-internals #build-classes(
212
+ responsive,
213
+ '.pr', { .template(@value) { padding-right: var(~"--su@{value}") !important; } },
214
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
215
+ );
216
+
217
+ // $$ Bottom Padding
218
+ #stacks-internals #build-classes(
219
+ responsive,
220
+ '.pb', { .template(@value) { padding-bottom: var(~"--su@{value}") !important; } },
221
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
222
+ );
223
+
224
+ #stacks-internals #responsify('.pr0', { padding-right: 0 !important; });
225
+
226
+ // $$ Left Padding
227
+ #stacks-internals #build-classes(
228
+ responsive,
229
+ '.pl', { .template(@value) { padding-left: var(~"--su@{value}") !important; } },
230
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
231
+ );
232
+
233
+ #stacks-internals #responsify('.pl0', { padding-left: 0 !important; });
234
+
235
+ // $$ X-Axis Padding
236
+ #stacks-internals #build-classes(
237
+ '.px', { .template(@value) { padding-left: var(~"--su@{value}") !important; padding-right: var(~"--su@{value}") !important; } },
238
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
239
+ );
240
+
241
+ // $$ Y-Axis Padding
242
+ #stacks-internals #build-classes(
243
+ '.py', { .template(@value) { padding-top: var(~"--su@{value}") !important; padding-bottom: var(~"--su@{value}") !important; } },
244
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
245
+ );
246
+
247
+ // ============================================================================
248
+ // $ POSITIONING
249
+ // ----------------------------------------------------------------------------
250
+
251
+ // $$ Top
252
+ #stacks-internals #build-classes(
253
+ responsive,
254
+ '.t', { .template(@value) { top: var(~"--su@{value}") !important; } },
255
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
256
+ );
257
+
258
+ // $$ Top 0, percent
259
+ #stacks-internals #build-classes(
260
+ '.t', { .template(@value) { top: @value !important; } },
261
+ 0 50% -50% 100% -100%
262
+ );
263
+
264
+ // $$ Top negative
265
+ #stacks-internals #build-classes(
266
+ responsive,
267
+ '.tn', { .template(@value) { top: calc(var(~"--su@{value}") * -1) !important; } },
268
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
269
+ );
270
+
271
+ // $$ Right
272
+ #stacks-internals #build-classes(
273
+ responsive,
274
+ '.r', { .template(@value) { right: var(~"--su@{value}") !important; } },
275
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
276
+ );
277
+
278
+ // $$ Right 0, percent
279
+ #stacks-internals #build-classes(
280
+ '.r', { .template(@value) { right: @value !important; } },
281
+ 0 50% -50% 100% -100%
282
+ );
283
+
284
+ // $$ Right negative
285
+ #stacks-internals #build-classes(
286
+ responsive,
287
+ '.rn', { .template(@value) { right: calc(var(~"--su@{value}") * -1) !important; } },
288
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
289
+ );
290
+
291
+ // $$ Bottom
292
+ #stacks-internals #build-classes(
293
+ responsive,
294
+ '.b', { .template(@value) { bottom: var(~"--su@{value}") !important; } },
295
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
296
+ );
297
+
298
+ // $$ Bottom 0, percent
299
+ #stacks-internals #build-classes(
300
+ '.b', { .template(@value) { bottom: @value !important; } },
301
+ 0 50% -50% 100% -100%
302
+ );
303
+
304
+ // $$ Bottom negative
305
+ #stacks-internals #build-classes(
306
+ responsive,
307
+ '.bn', { .template(@value) { bottom: calc(var(~"--su@{value}") * -1) !important; } },
308
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
309
+ );
310
+
311
+ // $$ Left
312
+ #stacks-internals #build-classes(
313
+ responsive,
314
+ '.l', { .template(@value) { left: var(~"--su@{value}") !important; } },
315
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
316
+ );
317
+
318
+ // $$ Left 0, percent
319
+ #stacks-internals #build-classes(
320
+ '.l', { .template(@value) { left: @value !important; } },
321
+ 0 50% -50% 100% -100%
322
+ );
323
+
324
+ // $$ Left negative
325
+ #stacks-internals #build-classes(
326
+ responsive,
327
+ '.ln', { .template(@value) { left: calc(var(~"--su@{value}") * -1) !important; } },
328
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
329
+ );
330
+
331
+ // $$ Inset
332
+ #stacks-internals #build-classes(
333
+ responsive,
334
+ '.i', { .template(@value) { inset: var(~"--su@{value}") !important; } },
335
+ 1 2 4 6 8 12 16 24 32 48 64 96 128
336
+ );
337
+
338
+ // $$ Inset 0
339
+ #stacks-internals #build-classes(
340
+ '.i', { .template(@value) { inset: @value !important; } },
341
+ 0
342
+ );