@pacem/pacem-theme-css 0.0.0-stage → 2.0.0-abel

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 (153) hide show
  1. package/LICENSE +191 -0
  2. package/NOTICE +4 -0
  3. package/README.md +142 -3
  4. package/cli.js +26 -0
  5. package/pacem-themes.json +10 -0
  6. package/package.json +45 -6
  7. package/src/2d/index.css +44 -0
  8. package/src/3d/index.css +49 -0
  9. package/src/base/animations.css +82 -0
  10. package/src/base/attributes.css +19 -0
  11. package/src/base/backgrounds.css +37 -0
  12. package/src/base/body.css +199 -0
  13. package/src/base/content.css +4 -0
  14. package/src/base/icons.css +74 -0
  15. package/src/base/logging.css +5 -0
  16. package/src/base/overrides.css +3 -0
  17. package/src/base/preloader.css +17 -0
  18. package/src/base/reset.css +50 -0
  19. package/src/base/shell.css +3 -0
  20. package/src/base/text.css +184 -0
  21. package/src/basic/index.css +285 -0
  22. package/src/charts/generated/colors.css +49 -0
  23. package/src/charts/index.css +573 -0
  24. package/src/fx/index.css +230 -0
  25. package/src/layout/address.css +46 -0
  26. package/src/layout/animations.css +33 -0
  27. package/src/layout/borders.css +63 -0
  28. package/src/layout/box.css +271 -0
  29. package/src/layout/breadcrumbs.css +114 -0
  30. package/src/layout/cards.css +246 -0
  31. package/src/layout/coloring.css +862 -0
  32. package/src/layout/container.css +40 -0
  33. package/src/layout/corners.css +52 -0
  34. package/src/layout/datatable.css +324 -0
  35. package/src/layout/elevation.css +73 -0
  36. package/src/layout/fetch-feedback.css +125 -0
  37. package/src/layout/generated/borders.css +403 -0
  38. package/src/layout/generated/card-ribbon.css +94 -0
  39. package/src/layout/generated/card-sides.css +888 -0
  40. package/src/layout/generated/grid-system.css +308 -0
  41. package/src/layout/generated/grids.css +952 -0
  42. package/src/layout/generated/layout-stretch.css +132 -0
  43. package/src/layout/generated/positioning.css +323 -0
  44. package/src/layout/generated/sizing.css +478 -0
  45. package/src/layout/generated/spacing.css +1988 -0
  46. package/src/layout/generated/visibility.css +384 -0
  47. package/src/layout/grid-system.css +49 -0
  48. package/src/layout/grids.css +92 -0
  49. package/src/layout/index.css +39 -0
  50. package/src/layout/interactive.css +11 -0
  51. package/src/layout/layout.css +479 -0
  52. package/src/layout/lists.css +104 -0
  53. package/src/layout/other.css +25 -0
  54. package/src/layout/panels.css +337 -0
  55. package/src/layout/positioning.css +108 -0
  56. package/src/layout/scroll.css +85 -0
  57. package/src/layout/shapes.css +20 -0
  58. package/src/layout/shell.css +3 -0
  59. package/src/layout/sizing.css +25 -0
  60. package/src/layout/spacing.css +17 -0
  61. package/src/layout/superposition-system.css +116 -0
  62. package/src/layout/tokens-chips.css +15 -0
  63. package/src/layout/toolbar.css +30 -0
  64. package/src/layout/typography.css +106 -0
  65. package/src/layout/visibility.css +231 -0
  66. package/src/maps/index.css +20 -0
  67. package/src/media/index.css +6 -0
  68. package/src/media.css +18 -0
  69. package/src/pacem-content.css +24 -0
  70. package/src/pacem-shell.css +14 -0
  71. package/src/pacem.css +35 -0
  72. package/src/plus/carousel.css +327 -0
  73. package/src/plus/datagrid.css +68 -0
  74. package/src/plus/gallery.css +186 -0
  75. package/src/plus/icons.css +25 -0
  76. package/src/plus/index.css +7 -0
  77. package/src/plus/misc.css +194 -0
  78. package/src/scaffolding/calendar-picker.css +291 -0
  79. package/src/scaffolding/checkbox-radio.css +118 -0
  80. package/src/scaffolding/checkbox.css +200 -0
  81. package/src/scaffolding/childform.css +156 -0
  82. package/src/scaffolding/color.css +129 -0
  83. package/src/scaffolding/contenteditable.css +403 -0
  84. package/src/scaffolding/datepicker.css +126 -0
  85. package/src/scaffolding/elements.css +30 -0
  86. package/src/scaffolding/fieldset.css +346 -0
  87. package/src/scaffolding/form.css +36 -0
  88. package/src/scaffolding/formfield.css +364 -0
  89. package/src/scaffolding/generated/calendar-picker.css +40 -0
  90. package/src/scaffolding/generated/colors.css +115 -0
  91. package/src/scaffolding/generated/formfield.css +500 -0
  92. package/src/scaffolding/hierarchy.css +76 -0
  93. package/src/scaffolding/icons.css +64 -0
  94. package/src/scaffolding/image.css +195 -0
  95. package/src/scaffolding/index.css +40 -0
  96. package/src/scaffolding/input.css +163 -0
  97. package/src/scaffolding/inputs.css +77 -0
  98. package/src/scaffolding/latlng.css +173 -0
  99. package/src/scaffolding/markdown.css +14 -0
  100. package/src/scaffolding/password.css +7 -0
  101. package/src/scaffolding/pickers.css +150 -0
  102. package/src/scaffolding/radio.css +68 -0
  103. package/src/scaffolding/select.css +59 -0
  104. package/src/scaffolding/slider.css +236 -0
  105. package/src/scaffolding/snapshot.css +167 -0
  106. package/src/scaffolding/suggest.css +92 -0
  107. package/src/scaffolding/tags.css +132 -0
  108. package/src/scaffolding/textarea.css +45 -0
  109. package/src/scaffolding/upload.css +283 -0
  110. package/src/scaffolding/validators.css +29 -0
  111. package/src/tokens/colors.css +403 -0
  112. package/src/tokens/components.css +16 -0
  113. package/src/tokens/system.css +92 -0
  114. package/src/tokens/theme.css +221 -0
  115. package/src/traits.css +18 -0
  116. package/src/transforms/index.css +5 -0
  117. package/src/ui/anchor.css +55 -0
  118. package/src/ui/balloon.css +573 -0
  119. package/src/ui/binder.css +28 -0
  120. package/src/ui/blade.css +83 -0
  121. package/src/ui/bottom-sheet.css +53 -0
  122. package/src/ui/button.css +626 -0
  123. package/src/ui/calendar.css +415 -0
  124. package/src/ui/collapse.css +25 -0
  125. package/src/ui/dialog.css +230 -0
  126. package/src/ui/divider.css +42 -0
  127. package/src/ui/generated/calendar.css +363 -0
  128. package/src/ui/hidden.css +40 -0
  129. package/src/ui/icon.css +90 -0
  130. package/src/ui/image.css +140 -0
  131. package/src/ui/index.css +30 -0
  132. package/src/ui/led.css +84 -0
  133. package/src/ui/loader.css +174 -0
  134. package/src/ui/markdown.css +352 -0
  135. package/src/ui/marquee.css +41 -0
  136. package/src/ui/menu.css +386 -0
  137. package/src/ui/pager.css +133 -0
  138. package/src/ui/progressbar.css +137 -0
  139. package/src/ui/shell.css +4 -0
  140. package/src/ui/sidebar.css +103 -0
  141. package/src/ui/sticky-header.css +22 -0
  142. package/src/ui/tabs.css +355 -0
  143. package/src/ui/ticker.css +105 -0
  144. package/src/ui/timeline.css +106 -0
  145. package/src/ui/toast.css +182 -0
  146. package/src/ui/toc.css +58 -0
  147. package/src/ui/tuner.css +196 -0
  148. package/src/ui/view.css +30 -0
  149. package/src/ui/window.css +287 -0
  150. package/templates/theme.css +28 -0
  151. package/themebuilder.js +19 -0
  152. package/themes/dark.css +6 -0
  153. package/themes/light.css +97 -0
@@ -0,0 +1,337 @@
1
+ /* the .Panel() mixin (shared with cards): box.css, imported before this file */
2
+
3
+ .pacem-scrollable {
4
+ display: block;
5
+ overflow: hidden;
6
+ overflow-y: auto;
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .pacem-panel,
11
+ .pacem-wrapper {
12
+ box-sizing: border-box;
13
+ margin: 0;
14
+ }
15
+
16
+ .pacem-panel.panel-lonely {
17
+ margin: 0;
18
+ }
19
+
20
+ .pacem-panel {
21
+
22
+ display: grid;
23
+ grid-template-columns: 1fr auto;
24
+ grid-template-rows: repeat(3, auto);
25
+ grid-template-areas: 'heading tools' 'body body' 'footer footer';
26
+
27
+ .panel-heading {
28
+ padding-top: calc(var(--pacem-grid-spacing) / 2);
29
+ padding-bottom: calc(var(--pacem-grid-spacing) / 2);
30
+ overflow: hidden;
31
+ white-space: nowrap;
32
+ text-overflow: ellipsis;
33
+ }
34
+
35
+ > .panel-heading {
36
+ grid-area: heading;
37
+ }
38
+
39
+ > .panel-body {
40
+ grid-area: body;
41
+ }
42
+
43
+ > .panel-footer {
44
+ grid-area: footer;
45
+ }
46
+
47
+ > .panel-content {
48
+ grid-column: 1/2;
49
+ grid-row: 2/3;
50
+ }
51
+
52
+ > .panel-tools {
53
+ grid-area: tools;
54
+ padding: 0 calc(var(--pacem-grid-spacing) / 2) 0 0;
55
+ /* reset */
56
+ position: static;
57
+ top: 0;
58
+ right: 0;
59
+ z-index: auto;
60
+ /* override */
61
+ align-self: stretch;
62
+ display: flex;
63
+ flex-direction: row;
64
+ flex-wrap: nowrap;
65
+ align-items: center;
66
+ }
67
+
68
+ .panel-body.pacem-flex,
69
+ .panel-body.pacem-row {
70
+ margin: calc(var(--pacem-grid-spacing) / -2) calc(var(--pacem-grid-spacing) / -2 * 7 / 3) 0 calc(var(--pacem-grid-spacing) / -2 * 7 / 3);
71
+ }
72
+
73
+ .panel-body.pacem-grid {
74
+ padding: 0;
75
+
76
+ .pacem-panel {
77
+ margin: 0;
78
+ }
79
+ }
80
+
81
+ .panel-heading.heading-separate,
82
+ .panel-heading.heading-sever {
83
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
84
+
85
+ ~ .panel-tools {
86
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
87
+ }
88
+
89
+ ~ .panel-body {
90
+ border-top: 1px solid rgba(255, 255, 255, 0.075);
91
+
92
+ ~ .panel-body {
93
+ border-top: none;
94
+ }
95
+ }
96
+ }
97
+
98
+ &.panel-side-left {
99
+ grid-template-columns: calc(var(--pacem-grid-spacing) / 1.5 + var(--pacem-grid-cell)) 1fr auto;
100
+
101
+ &.side-large {
102
+ grid-template-columns: calc(var(--pacem-grid-spacing) / 1.5 + round(up, 1.414 * var(--pacem-grid-cell), 1px)) 1fr auto;
103
+ }
104
+
105
+ &.side-larger {
106
+ grid-template-columns: calc(var(--pacem-grid-spacing) / 1.5 + 2 * var(--pacem-grid-cell)) 1fr auto;
107
+ }
108
+
109
+ &.side-small {
110
+ grid-template-columns: calc(var(--pacem-grid-spacing) / 1.5 + 2 * var(--pacem-grid-spacing)) 1fr auto;
111
+ }
112
+
113
+ &.side-smaller {
114
+ grid-template-columns: calc(var(--pacem-grid-spacing) / 1.5 + var(--pacem-grid-spacing)) 1fr auto;
115
+ }
116
+
117
+ &.side-auto {
118
+ grid-template-columns: auto 1fr auto;
119
+ }
120
+
121
+ grid-template-areas: 'aside heading tools' 'aside body body' 'aside footer footer';
122
+ }
123
+
124
+ &.panel-side-right {
125
+ grid-template-columns: 1fr auto calc(var(--pacem-grid-spacing) / 1.5 + var(--pacem-grid-cell));
126
+
127
+ &.side-large {
128
+ grid-template-columns: 1fr auto calc(var(--pacem-grid-spacing) / 1.5 + round(up, 1.414 * var(--pacem-grid-cell), 1px));
129
+ }
130
+
131
+ &.side-larger {
132
+ grid-template-columns: 1fr auto calc(var(--pacem-grid-spacing) / 1.5 + 2 * var(--pacem-grid-cell));
133
+ }
134
+
135
+ &.side-small {
136
+ grid-template-columns: 1fr auto calc(var(--pacem-grid-spacing) / 1.5 + 2 * var(--pacem-grid-spacing));
137
+ }
138
+
139
+ &.side-smaller {
140
+ grid-template-columns: 1fr auto calc(var(--pacem-grid-spacing) / 1.5 + var(--pacem-grid-spacing));
141
+ }
142
+
143
+ &.side-auto {
144
+ grid-template-columns: 1fr auto auto;
145
+ }
146
+
147
+ grid-template-areas: 'heading tools aside' 'body body aside' 'footer footer aside';
148
+ }
149
+
150
+ &.panel-side-left, &.panel-side-right {
151
+ > .panel-side {
152
+ grid-area: aside;
153
+ grid-row: span 3;
154
+ }
155
+ }
156
+
157
+ &.panel-side-left {
158
+ > .panel-side {
159
+ padding: calc(var(--pacem-grid-spacing) / 2) 0 calc(var(--pacem-grid-spacing) / 2) calc(var(--pacem-grid-spacing) / 1.5);
160
+ }
161
+ }
162
+
163
+ &.panel-side-right {
164
+ > .panel-side {
165
+ padding: calc(var(--pacem-grid-spacing) / 2) calc(var(--pacem-grid-spacing) / 1.5) calc(var(--pacem-grid-spacing) / 2) 0;
166
+ }
167
+ }
168
+ }
169
+
170
+ .pacem-grid > .pacem-cell {
171
+
172
+ &.pacem-panel {
173
+ margin: 0;
174
+ grid-template-rows: auto 1fr auto;
175
+ }
176
+ }
177
+
178
+ /* #region MASTER PANEL */
179
+ .pacem-wrapper {
180
+ border: calc(var(--pacem-grid-spacing) / 3) solid #868584;
181
+ box-shadow: inset 2px 0 0 #595a58, inset 0 2px 0 #595a58, inset 0 -2px 0 #595a58, inset -2px 0 0 #595a58;
182
+ padding: 2px;
183
+ border-radius: var(--pacem-border-panel-radius);
184
+
185
+ .pacem-row,
186
+ .pacem-flex {
187
+ margin: 0 calc(var(--pacem-grid-spacing) / 3);
188
+ }
189
+
190
+ .pacem-grid {
191
+ margin: 0 calc(var(--pacem-grid-spacing) / 1.5) calc(var(--pacem-grid-spacing) / 1.5) calc(var(--pacem-grid-spacing) / 1.5);
192
+ grid-gap: calc(var(--pacem-grid-spacing) / 1.5);
193
+ }
194
+
195
+ .pacem-panel {
196
+ margin: 0 calc(var(--pacem-grid-spacing) / 3) calc(var(--pacem-grid-spacing) / 1.5) calc(var(--pacem-grid-spacing) / 3);
197
+ padding-bottom: 0;
198
+
199
+ .panel-heading {
200
+ padding: calc(var(--pacem-grid-spacing) / 2) calc(var(--pacem-grid-spacing) / 1.5);
201
+ }
202
+
203
+ .panel-body,
204
+ .panel-footer {
205
+ padding-bottom: calc(var(--pacem-grid-spacing) / 1.5);
206
+ }
207
+
208
+ &.panel-master {
209
+ margin-left: 0;
210
+ margin-right: 0;
211
+ border-radius: 0;
212
+
213
+ &:last-child {
214
+ margin-bottom: 0;
215
+ }
216
+ }
217
+ }
218
+ }
219
+
220
+ /* .panel-master is colorized like a variant (.PanelColorize(@color_default_inv)), after the fills */
221
+ .pacem-panel.panel-master {
222
+ --pacem--box: var(--pacem-color-default-inverse);
223
+ --pacem--corner: var(--pacem--box);
224
+ background-color: var(--pacem-color-default);
225
+
226
+ .panel-heading {
227
+ color: var(--pacem--box);
228
+ }
229
+
230
+ &.panel-border {
231
+ border-color: rgb(from var(--pacem--box) r g b / 20%);
232
+ }
233
+
234
+ &.panel-filled {
235
+ background-color: rgb(from var(--pacem--box) r g b / 10%);
236
+ }
237
+
238
+ &.panel-corners {
239
+ --pacem--corners-color: var(--pacem--box);
240
+ }
241
+
242
+ .panel-heading {
243
+ text-shadow: none;
244
+ }
245
+
246
+ .panel-body,
247
+ .panel-footer {
248
+ color: var(--pacem-color-default-inverse);
249
+ }
250
+
251
+ a, a:hover {
252
+ color: var(--pacem-color-accent);
253
+ }
254
+
255
+ .panel-tools,
256
+ .tools {
257
+
258
+ pacem-button:before {
259
+ color: var(--pacem-color-default-inverse);
260
+ }
261
+ }
262
+ }
263
+
264
+ .pacem-wide {
265
+ margin: calc(-1 * var(--pacem-grid-spacing));
266
+ margin-bottom: 0;
267
+ padding: 0;
268
+ border: none;
269
+
270
+ &.panel-wrapper {
271
+ box-shadow: none;
272
+
273
+ > .panel-master {
274
+ border: none;
275
+
276
+ /* adds slight shadow to unshadowed themes ('@shadows' logic willingly inverted) */
277
+ :--no-shadows & {
278
+ box-shadow: inset 0 4px 16px rgba(0, 0, 0, 0.5);
279
+ }
280
+ }
281
+ }
282
+ }
283
+
284
+ @media (orientation: portrait) {
285
+ .pacem-v-wide {
286
+ margin: calc(-1 * var(--pacem-grid-spacing));
287
+ margin-bottom: 0;
288
+ padding: 0;
289
+ border: none;
290
+
291
+ &.panel-wrapper {
292
+ box-shadow: none;
293
+
294
+ > .panel-master {
295
+ border: none;
296
+
297
+ /* adds slight shadow to unshadowed themes ('@shadows' logic willingly inverted) */
298
+ :--no-shadows & {
299
+ box-shadow: inset 0 4px 16px rgba(0, 0, 0, 0.5);
300
+ }
301
+ }
302
+ }
303
+ }
304
+ }
305
+
306
+ @media (--pacem-below-sm) {
307
+ .pacem-xs-wide {
308
+ margin: calc(-1 * var(--pacem-grid-spacing));
309
+ margin-bottom: 0;
310
+ padding: 0;
311
+ border: none;
312
+
313
+ &.panel-wrapper {
314
+ box-shadow: none;
315
+
316
+ > .panel-master {
317
+ border: none;
318
+
319
+ /* adds slight shadow to unshadowed themes ('@shadows' logic willingly inverted) */
320
+ :--no-shadows & {
321
+ box-shadow: inset 0 4px 16px rgba(0, 0, 0, 0.5);
322
+ }
323
+ }
324
+ }
325
+ }
326
+ }
327
+
328
+ /* #endregion */
329
+
330
+ .pacem-animations {
331
+ .pacem-panel.pacem-anim.panel-rise.anim-rise {
332
+ animation-name: anim-rise;
333
+ animation-fill-mode: both;
334
+ animation-duration: .667s;
335
+ animation-timing-function: var(--pacem-easing-out-sine);
336
+ }
337
+ }
@@ -0,0 +1,108 @@
1
+ .pos-relative {
2
+ position: relative;
3
+ }
4
+
5
+ .pos-absolute {
6
+ position: absolute;
7
+
8
+ &.absolute-top {
9
+ top: 0;
10
+ }
11
+
12
+ &.absolute-left {
13
+ left: 0;
14
+ }
15
+
16
+ &.absolute-bottom {
17
+ bottom: 0;
18
+ }
19
+
20
+ &.absolute-right {
21
+ right: 0;
22
+ }
23
+ }
24
+
25
+ .pos-static {
26
+ position: static;
27
+ }
28
+
29
+ .pos-fixed {
30
+ position: fixed;
31
+ z-index: calc(var(--pacem-zindex-menu) - 100);
32
+
33
+ &.fixed-top {
34
+ top: 0;
35
+ }
36
+
37
+ &.fixed-left {
38
+ left: 0;
39
+ }
40
+
41
+ &.fixed-bottom {
42
+ bottom: 0;
43
+ }
44
+
45
+ &.fixed-right {
46
+ right: 0;
47
+ }
48
+ }
49
+
50
+ .pos-sticky {
51
+ position: sticky;
52
+ z-index: calc(var(--pacem-zindex-header) - 1);
53
+
54
+ &.sticky-top {
55
+ top: 0;
56
+ }
57
+
58
+ &.sticky-bottom {
59
+ bottom: 0;
60
+ }
61
+ }
62
+
63
+ /* layout-driven sticky position overrides: generated/positioning.css */
64
+
65
+ /* kept names from known bootstrap classes */
66
+ .caret,
67
+ .pull-right {
68
+ float: right;
69
+ }
70
+
71
+ .pull-left {
72
+ float: left;
73
+ }
74
+
75
+ .clearfix {
76
+ clear: both;
77
+ }
78
+
79
+ .z-index {
80
+ &.z--1 { z-index: 1 !important; }
81
+ &.z--2 { z-index: 2 !important; }
82
+ &.z--3 { z-index: 3 !important; }
83
+ &.z--4 { z-index: 4 !important; }
84
+ &.z--5 { z-index: 5 !important; }
85
+ &.z--6 { z-index: 6 !important; }
86
+ &.z--7 { z-index: 7 !important; }
87
+ &.z--8 { z-index: 8 !important; }
88
+ &.z--9 { z-index: 9 !important; }
89
+ &.z--10 { z-index: 10 !important; }
90
+ &.z--11 { z-index: 11 !important; }
91
+ &.z--12 { z-index: 12 !important; }
92
+
93
+ &.z-header {
94
+ z-index: var(--pacem-zindex-header) !important;
95
+ }
96
+
97
+ &.z-under-header {
98
+ z-index: calc(var(--pacem-zindex-header) - 1) !important;
99
+ }
100
+
101
+ &.z-over-header {
102
+ z-index: calc(var(--pacem-zindex-header) + 1) !important;
103
+ }
104
+
105
+ &.z-top {
106
+ z-index: calc(var(--pacem-zindex-lightbox) + 1) !important;
107
+ }
108
+ }
@@ -0,0 +1,85 @@
1
+ /** Hides scrollbars without impacting scrolling. */
2
+ .scrollbars-none {
3
+ &::-webkit-scrollbar {
4
+ display: none;
5
+ }
6
+
7
+ scrollbar-width: none;
8
+ }
9
+
10
+ .scroll-snap {
11
+ scroll-behavior: smooth;
12
+ scroll-snap-type: both;
13
+
14
+ &.snap-proximity {
15
+ scroll-snap-type: both proximity;
16
+ }
17
+
18
+ &.snap-mandatory {
19
+ scroll-snap-type: both mandatory;
20
+ }
21
+
22
+ &.snap-inline {
23
+ scroll-snap-type: inline;
24
+
25
+ &.snap-proximity {
26
+ scroll-snap-type: inline proximity;
27
+ }
28
+
29
+ &.snap-mandatory {
30
+ scroll-snap-type: inline mandatory;
31
+ }
32
+ }
33
+
34
+ &.snap-block {
35
+ scroll-snap-type: block;
36
+
37
+ &.snap-proximity {
38
+ scroll-snap-type: block proximity;
39
+ }
40
+
41
+ &.snap-mandatory {
42
+ scroll-snap-type: block mandatory;
43
+ }
44
+ }
45
+
46
+ &.snap-x {
47
+ scroll-snap-type: x;
48
+
49
+ &.snap-proximity {
50
+ scroll-snap-type: x proximity;
51
+ }
52
+
53
+ &.snap-mandatory {
54
+ scroll-snap-type: x mandatory;
55
+ }
56
+ }
57
+
58
+ &.snap-y {
59
+ scroll-snap-type: y;
60
+
61
+ &.snap-proximity {
62
+ scroll-snap-type: y proximity;
63
+ }
64
+
65
+ &.snap-mandatory {
66
+ scroll-snap-type: y mandatory;
67
+ }
68
+ }
69
+
70
+ > * {
71
+ scroll-snap-align: start;
72
+
73
+ &.snap-center {
74
+ scroll-snap-align: center;
75
+ }
76
+
77
+ &.snap-end {
78
+ scroll-snap-align: end;
79
+ }
80
+
81
+ &.snap-always {
82
+ scroll-snap-stop: always;
83
+ }
84
+ }
85
+ }
@@ -0,0 +1,20 @@
1
+ .shape-circle,
2
+ .shape-square {
3
+ aspect-ratio: 1;
4
+ display: inline-flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ overflow: hidden;
8
+ }
9
+
10
+ .shape-circle {
11
+ border-radius: 50%;
12
+ }
13
+
14
+ .shape-square {
15
+ border-radius: var(--pacem-border-radius);
16
+
17
+ &.square-sharp {
18
+ border-radius: 0;
19
+ }
20
+ }
@@ -0,0 +1,3 @@
1
+ /* layout (shell part): body, header, footer, toolbars, aside. */
2
+ @import "layout.css";
3
+ @import "generated/layout-stretch.css";
@@ -0,0 +1,25 @@
1
+ .pacem-size {
2
+ min-height: var(--pacem-grid-cell);
3
+
4
+ &.size-xl {
5
+ min-height: calc(2 * var(--pacem-grid-cell));
6
+ }
7
+
8
+ &.size-lg {
9
+ min-height: round(up, 1.414 * var(--pacem-grid-cell), 1px);
10
+ }
11
+
12
+ &.size-sm {
13
+ min-height: calc(2 * var(--pacem-grid-spacing));
14
+ }
15
+
16
+ &.size-xs {
17
+ min-height: var(--pacem-grid-spacing);
18
+ }
19
+ }
20
+
21
+ .pacem-borderbox {
22
+ box-sizing: border-box;
23
+ }
24
+
25
+ /* .pacem-width.width-* (responsive too): generated/sizing.css */
@@ -0,0 +1,17 @@
1
+ hr.spacer {
2
+ margin-bottom: var(--pacem-grid-spacing);
3
+ }
4
+
5
+ .pacem-spacer {
6
+ margin-bottom: var(--pacem-grid-spacing);
7
+
8
+ &.spacer-2x {
9
+ margin-bottom: calc(2 * var(--pacem-grid-spacing));
10
+ }
11
+
12
+ &.spacer-3x {
13
+ margin-bottom: calc(3 * var(--pacem-grid-spacing));
14
+ }
15
+ }
16
+
17
+ /* .pacem-margin, .pacem-pad (responsive too): generated/spacing.css */
@@ -0,0 +1,116 @@
1
+ .pacem-relative {
2
+ position: relative;
3
+
4
+ > .pacem-hover {
5
+ position: absolute;
6
+ top: 0;
7
+ left: 0;
8
+ width: 100%;
9
+ height: 100%;
10
+
11
+ &.top {
12
+ height: auto;
13
+ }
14
+
15
+ &.bottom {
16
+ height: auto;
17
+ top: auto;
18
+ bottom: 0;
19
+ }
20
+
21
+ &.left {
22
+ width: auto;
23
+ }
24
+
25
+ &.right {
26
+ width: auto;
27
+ left: auto;
28
+ right: 0;
29
+ }
30
+ }
31
+ }
32
+
33
+ .pacem-overlap {
34
+ display: grid;
35
+
36
+ /* #region horiz (with relevant default vert) */
37
+ &.overlap-center {
38
+ align-items: center; /* vertical */
39
+ justify-content: center; /* horizontal */
40
+ }
41
+
42
+ &.overlap-fill {
43
+ align-items: stretch;
44
+ justify-content: stretch;
45
+ }
46
+
47
+ &.overlap-start {
48
+ align-items: start;
49
+ justify-content: start;
50
+ }
51
+
52
+ &.overlap-end {
53
+ align-items: end;
54
+ justify-content: end;
55
+ }
56
+ /* #endregion */
57
+
58
+ /* #region vert override */
59
+ &.overlap-middle {
60
+ align-items: center;
61
+ }
62
+
63
+ &.overlap-top {
64
+ align-items: start;
65
+ }
66
+
67
+ &.overlap-bottom {
68
+ align-items: end;
69
+ }
70
+
71
+ &.overlap-stretch {
72
+ align-items: stretch;
73
+ }
74
+ /* #endregion */
75
+
76
+ > * {
77
+ grid-row: 1;
78
+ grid-column: 1;
79
+
80
+ &.overlap-self-center {
81
+ align-self: center; /* vertical */
82
+ justify-self: center; /* horizontal */
83
+ }
84
+
85
+ &.overlap-self-fill {
86
+ align-self: stretch;
87
+ justify-self: stretch;
88
+ }
89
+
90
+ &.overlap-self-start {
91
+ align-self: start;
92
+ justify-self: start;
93
+ }
94
+
95
+ &.overlap-self-end {
96
+ align-self: end;
97
+ justify-self: end;
98
+ }
99
+
100
+ &.overlap-self-middle {
101
+ align-self: center;
102
+ }
103
+
104
+ &.overlap-self-top {
105
+ align-self: start;
106
+ }
107
+
108
+ &.overlap-self-bottom {
109
+ align-self: end;
110
+ }
111
+
112
+ &.overlap-self-stretch {
113
+ align-self: stretch;
114
+ }
115
+ }
116
+ }