@stackoverflow/stacks 1.0.0-beta.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +47 -47
  2. package/dist/controllers/s-popover.d.ts +11 -2
  3. package/dist/css/stacks.css +214 -3
  4. package/dist/css/stacks.min.css +1 -1
  5. package/dist/js/stacks.js +18 -2
  6. package/dist/js/stacks.min.js +1 -1
  7. package/lib/css/atomic/borders.less +378 -378
  8. package/lib/css/atomic/colors.less +209 -209
  9. package/lib/css/atomic/flex.less +375 -375
  10. package/lib/css/atomic/grid.less +174 -174
  11. package/lib/css/atomic/misc.less +343 -343
  12. package/lib/css/atomic/spacing.less +342 -314
  13. package/lib/css/atomic/typography.less +273 -273
  14. package/lib/css/atomic/width-height.less +194 -194
  15. package/lib/css/base/body.less +44 -44
  16. package/lib/css/base/configuration-static.less +61 -61
  17. package/lib/css/base/icons.less +20 -20
  18. package/lib/css/base/internals.less +220 -220
  19. package/lib/css/base/reset-meyer.less +64 -64
  20. package/lib/css/base/reset-normalize.less +449 -449
  21. package/lib/css/base/reset.less +20 -20
  22. package/lib/css/components/activity-indicator.less +44 -45
  23. package/lib/css/components/avatars.less +189 -189
  24. package/lib/css/components/badges.less +209 -209
  25. package/lib/css/components/banners.less +80 -80
  26. package/lib/css/components/blank-states.less +26 -26
  27. package/lib/css/components/breadcrumbs.less +44 -44
  28. package/lib/css/components/button-groups.less +104 -104
  29. package/lib/css/components/buttons.less +665 -665
  30. package/lib/css/components/cards.less +44 -44
  31. package/lib/css/components/code-blocks.less +130 -130
  32. package/lib/css/components/collapsible.less +104 -104
  33. package/lib/css/components/inputs.less +728 -728
  34. package/lib/css/components/link-previews.less +136 -136
  35. package/lib/css/components/links.less +218 -218
  36. package/lib/css/components/menu.less +47 -47
  37. package/lib/css/components/modals.less +133 -133
  38. package/lib/css/components/navigation.less +146 -146
  39. package/lib/css/components/notices.less +233 -233
  40. package/lib/css/components/page-titles.less +60 -60
  41. package/lib/css/components/pagination.less +55 -55
  42. package/lib/css/components/popovers.less +197 -197
  43. package/lib/css/components/post-summary.less +425 -425
  44. package/lib/css/components/progress-bars.less +330 -330
  45. package/lib/css/components/prose.less +503 -503
  46. package/lib/css/components/spinner.less +107 -107
  47. package/lib/css/components/tables.less +341 -341
  48. package/lib/css/components/tags.less +236 -236
  49. package/lib/css/components/toggle-switches.less +144 -144
  50. package/lib/css/components/topbar.less +427 -427
  51. package/lib/css/components/uploader.less +210 -210
  52. package/lib/css/components/user-cards.less +169 -169
  53. package/lib/css/components/widget-dynamic.less +33 -33
  54. package/lib/css/components/widget-static.less +273 -273
  55. package/lib/css/exports/constants-colors.less +1092 -1092
  56. package/lib/css/exports/constants-helpers.less +108 -108
  57. package/lib/css/exports/constants-type.less +153 -153
  58. package/lib/css/exports/exports.less +15 -15
  59. package/lib/css/exports/mixins.less +237 -237
  60. package/lib/css/stacks-dynamic.less +35 -35
  61. package/lib/css/stacks-static.less +86 -86
  62. package/lib/css/stacks.less +13 -13
  63. package/lib/ts/controllers/index.ts +7 -7
  64. package/lib/ts/controllers/s-expandable-control.ts +188 -188
  65. package/lib/ts/controllers/s-modal.ts +321 -321
  66. package/lib/ts/controllers/s-navigation-tablist.ts +117 -117
  67. package/lib/ts/controllers/s-popover.ts +567 -547
  68. package/lib/ts/controllers/s-table.ts +220 -220
  69. package/lib/ts/controllers/s-tooltip.ts +246 -246
  70. package/lib/ts/controllers/s-uploader.ts +172 -172
  71. package/lib/ts/index.ts +20 -20
  72. package/lib/ts/stacks.ts +88 -88
  73. package/lib/tsconfig.json +13 -13
  74. package/package.json +86 -87
@@ -1,314 +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
- // $$ Margin negative
79
- #stacks-internals #build-classes(
80
- responsive,
81
- '.mn',
82
- { .template(@value) { margin: calc(var(~"--su@{value}") * -1) !important; } },
83
- 1 2 4 6 8 12 16 24 32 48 64 96 128
84
- );
85
-
86
- // $$ Top margin
87
- #stacks-internals #build-classes(
88
- responsive,
89
- '.mt',
90
- { .template(@value) { margin-top: var(~"--su@{value}") !important; } },
91
- 1 2 4 6 8 12 16 24 32 48 64 96 128
92
- );
93
-
94
- // $$ Top margin negative
95
- #stacks-internals #build-classes(
96
- responsive,
97
- '.mtn',
98
- { .template(@value) { margin-top: calc(var(~"--su@{value}") * -1) !important; } },
99
- 1 2 4 6 8 12 16 24 32 48 64 96 128
100
- );
101
-
102
- // $$ Right margin
103
- #stacks-internals #build-classes(
104
- responsive,
105
- '.mr',
106
- { .template(@value) { margin-right: var(~"--su@{value}") !important; } },
107
- 1 2 4 6 8 12 16 24 32 48 64 96 128
108
- );
109
-
110
- // $$ Right margin negative
111
- #stacks-internals #build-classes(
112
- responsive,
113
- '.mrn',
114
- { .template(@value) { margin-right: calc(var(~"--su@{value}") * -1) !important; } },
115
- 1 2 4 6 8 12 16 24 32 48 64 96 128
116
- );
117
-
118
- // $$ Bottom margin
119
- #stacks-internals #build-classes(
120
- responsive,
121
- '.mb',
122
- { .template(@value) { margin-bottom: var(~"--su@{value}") !important; } },
123
- 1 2 4 6 8 12 16 24 32 48 64 96 128
124
- );
125
-
126
- // $$ Bottom margin negative
127
- #stacks-internals #build-classes(
128
- responsive,
129
- '.mbn',
130
- { .template(@value) { margin-bottom: calc(var(~"--su@{value}") * -1) !important; } },
131
- 1 2 4 6 8 12 16 24 32 48 64 96 128
132
- );
133
-
134
- // $$ Left margin
135
- #stacks-internals #build-classes(
136
- responsive,
137
- '.ml',
138
- { .template(@value) { margin-left: var(~"--su@{value}") !important; } },
139
- 1 2 4 6 8 12 16 24 32 48 64 96 128
140
- );
141
-
142
- // $$ Left margin negative
143
- #stacks-internals #build-classes(
144
- responsive,
145
- '.mln',
146
- { .template(@value) { margin-left: calc(var(~"--su@{value}") * -1) !important; } },
147
- 1 2 4 6 8 12 16 24 32 48 64 96 128
148
- );
149
-
150
- #stacks-internals #build-classes(
151
- '.mx', { .template(@value) { margin-left: var(~"--su@{value}") !important; margin-right: var(~"--su@{value}") !important; } },
152
- 1 2 4 6 8 12 16 24 32 48 64 96 128
153
- );
154
-
155
- #stacks-internals #build-classes(
156
- '.my', { .template(@value) { margin-top: var(~"--su@{value}") !important; margin-bottom: var(~"--su@{value}") !important; } },
157
- 1 2 4 6 8 12 16 24 32 48 64 96 128
158
- );
159
-
160
- // ============================================================================
161
- // $ PADDING
162
- // ----------------------------------------------------------------------------
163
-
164
- // $$ 0 padding
165
- .p0 { padding: 0 !important; }
166
- .pt0 { padding-top: 0 !important; }
167
- .pr0 { padding-right: 0 !important; }
168
- .pb0 { padding-bottom: 0 !important; }
169
- .pl0 { padding-left: 0 !important; }
170
- .px0 { padding-left: 0 !important; padding-right: 0 !important; }
171
- .py0 { padding-top: 0 !important; padding-bottom: 0 !important; }
172
-
173
- #stacks-internals #build-classes(
174
- responsive,
175
- '.p', { .template(@value) { padding: var(~"--su@{value}") !important; } },
176
- 1 2 4 6 8 12 16 24 32 48 64 96 128
177
- );
178
-
179
- // $$ Top Padding
180
- #stacks-internals #build-classes(
181
- responsive,
182
- '.pt', { .template(@value) { padding-top: var(~"--su@{value}") !important; } },
183
- 1 2 4 6 8 12 16 24 32 48 64 96 128
184
- );
185
-
186
- // $$ Right Padding
187
- #stacks-internals #build-classes(
188
- responsive,
189
- '.pr', { .template(@value) { padding-right: var(~"--su@{value}") !important; } },
190
- 1 2 4 6 8 12 16 24 32 48 64 96 128
191
- );
192
-
193
- // $$ Bottom Padding
194
- #stacks-internals #build-classes(
195
- responsive,
196
- '.pb', { .template(@value) { padding-bottom: var(~"--su@{value}") !important; } },
197
- 1 2 4 6 8 12 16 24 32 48 64 96 128
198
- );
199
-
200
- // $$ Left Padding
201
- #stacks-internals #build-classes(
202
- responsive,
203
- '.pl', { .template(@value) { padding-left: var(~"--su@{value}") !important; } },
204
- 1 2 4 6 8 12 16 24 32 48 64 96 128
205
- );
206
-
207
- // $$ X-Axis Padding
208
- #stacks-internals #build-classes(
209
- '.px', { .template(@value) { padding-left: var(~"--su@{value}") !important; padding-right: var(~"--su@{value}") !important; } },
210
- 1 2 4 6 8 12 16 24 32 48 64 96 128
211
- );
212
-
213
- // $$ Y-Axis Padding
214
- #stacks-internals #build-classes(
215
- '.py', { .template(@value) { padding-top: var(~"--su@{value}") !important; padding-bottom: var(~"--su@{value}") !important; } },
216
- 1 2 4 6 8 12 16 24 32 48 64 96 128
217
- );
218
-
219
- // ============================================================================
220
- // $ POSITIONING
221
- // ----------------------------------------------------------------------------
222
-
223
- // $$ Top
224
- #stacks-internals #build-classes(
225
- responsive,
226
- '.t', { .template(@value) { top: var(~"--su@{value}") !important; } },
227
- 1 2 4 6 8 12 16 24 32 48 64 96 128
228
- );
229
-
230
- // $$ Top 0, percent
231
- #stacks-internals #build-classes(
232
- '.t', { .template(@value) { top: @value !important; } },
233
- 0 50% -50% 100% -100%
234
- );
235
-
236
- // $$ Top negative
237
- #stacks-internals #build-classes(
238
- responsive,
239
- '.tn', { .template(@value) { top: calc(var(~"--su@{value}") * -1) !important; } },
240
- 1 2 4 6 8 12 16 24 32 48 64 96 128
241
- );
242
-
243
- // $$ Right
244
- #stacks-internals #build-classes(
245
- responsive,
246
- '.r', { .template(@value) { right: var(~"--su@{value}") !important; } },
247
- 1 2 4 6 8 12 16 24 32 48 64 96 128
248
- );
249
-
250
- // $$ Right 0, percent
251
- #stacks-internals #build-classes(
252
- '.r', { .template(@value) { right: @value !important; } },
253
- 0 50% -50% 100% -100%
254
- );
255
-
256
- // $$ Right negative
257
- #stacks-internals #build-classes(
258
- responsive,
259
- '.rn', { .template(@value) { right: calc(var(~"--su@{value}") * -1) !important; } },
260
- 1 2 4 6 8 12 16 24 32 48 64 96 128
261
- );
262
-
263
- // $$ Bottom
264
- #stacks-internals #build-classes(
265
- responsive,
266
- '.b', { .template(@value) { bottom: var(~"--su@{value}") !important; } },
267
- 1 2 4 6 8 12 16 24 32 48 64 96 128
268
- );
269
-
270
- // $$ Bottom 0, percent
271
- #stacks-internals #build-classes(
272
- '.b', { .template(@value) { bottom: @value !important; } },
273
- 0 50% -50% 100% -100%
274
- );
275
-
276
- // $$ Bottom negative
277
- #stacks-internals #build-classes(
278
- responsive,
279
- '.bn', { .template(@value) { bottom: calc(var(~"--su@{value}") * -1) !important; } },
280
- 1 2 4 6 8 12 16 24 32 48 64 96 128
281
- );
282
-
283
- // $$ Left
284
- #stacks-internals #build-classes(
285
- responsive,
286
- '.l', { .template(@value) { left: var(~"--su@{value}") !important; } },
287
- 1 2 4 6 8 12 16 24 32 48 64 96 128
288
- );
289
-
290
- // $$ Left 0, percent
291
- #stacks-internals #build-classes(
292
- '.l', { .template(@value) { left: @value !important; } },
293
- 0 50% -50% 100% -100%
294
- );
295
-
296
- // $$ Left negative
297
- #stacks-internals #build-classes(
298
- responsive,
299
- '.ln', { .template(@value) { left: calc(var(~"--su@{value}") * -1) !important; } },
300
- 1 2 4 6 8 12 16 24 32 48 64 96 128
301
- );
302
-
303
- // $$ Inset
304
- #stacks-internals #build-classes(
305
- responsive,
306
- '.i', { .template(@value) { inset: var(~"--su@{value}") !important; } },
307
- 1 2 4 6 8 12 16 24 32 48 64 96 128
308
- );
309
-
310
- // $$ Inset 0
311
- #stacks-internals #build-classes(
312
- '.i', { .template(@value) { inset: @value !important; } },
313
- 0
314
- );
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
+ );