@stackoverflow/stacks 1.0.0 → 1.0.1

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