@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,40 @@
1
+ .pacem-contain {
2
+ contain: size;
3
+
4
+ &.contain-none {
5
+ contain: none;
6
+ }
7
+
8
+ &.contain-strict {
9
+ contain: strict;
10
+ }
11
+
12
+ &.contain-inline-size {
13
+ contain: inline-size;
14
+ }
15
+
16
+ &.contain-layout {
17
+ contain: layout;
18
+ }
19
+
20
+ &.contain-style {
21
+ contain: style;
22
+ }
23
+
24
+ &.contain-paint {
25
+ contain: paint;
26
+ }
27
+ }
28
+
29
+ .pacem-container {
30
+ container-type: inline-size;
31
+ container-name: pacem;
32
+
33
+ &.container-size {
34
+ container-type: size;
35
+ }
36
+
37
+ &.container-normal {
38
+ container-type: normal;
39
+ }
40
+ }
@@ -0,0 +1,52 @@
1
+ /* Corner decorations (.Corners() of the Less theme), shared by every *-corners class.
2
+ Less baked the color into SVG data uris, once per color: here a single rule draws them with gradients,
3
+ driven by private custom properties that each context assigns:
4
+ --pacem--corners-color decoration color
5
+ --pacem--corners-radius > 0: arcs of that radius; 0: straight brackets
6
+ --pacem--corners-size bracket length
7
+ Zero specificity: the decorations only ever competed with .fill-gradient, which keeps winning. */
8
+
9
+ :where(
10
+ .pacem-panel.panel-corners,
11
+ .pacem-card.card-corners,
12
+ .breadcrumb.breadcrumb-corners,
13
+ table.pacem-datatable :is(th, td).datacell-corners,
14
+ .pacem-datatable :is(.pacem-headcell.headcell-corners, .pacem-datacell.datacell-corners, .pacem-footcell.footcell-corners),
15
+ .pacem-datatable:is(.datatable-accent, .datatable-primary, .datatable-success, .datatable-danger, .datatable-warning, .datatable-error, .datatable-disabled) .pacem-datatable.datatable-corners,
16
+ pacem-window.window-corners
17
+ ),
18
+ /* (pseudo-elements cannot go in :where(); see ui/dialog.css and plus/misc.css) */
19
+ pacem-lightbox.lightbox-corners::part(lightbox),
20
+ pacem-dialog:is(.modal-corners, .dialog-corners)::part(lightbox),
21
+ pacem-modal-form:is(.modal-corners, .dialog-corners)::part(lightbox) {
22
+ --pacem--r: var(--pacem--corners-radius, 0px);
23
+ --pacem--s: var(--pacem--corners-size, var(--pacem-corner-size));
24
+ --pacem--on: sign(var(--pacem--r));
25
+ /* straight brackets (radius = 0) */
26
+ --pacem--cs: rgb(from var(--pacem--corners-color) r g b / calc(alpha * (1 - var(--pacem--on))));
27
+ --pacem--l: linear-gradient(var(--pacem--cs), var(--pacem--cs));
28
+ /* arcs (radius > 0) */
29
+ --pacem--ca: rgb(from var(--pacem--corners-color) r g b / calc(alpha * var(--pacem--on)));
30
+ --pacem--ring: transparent calc(var(--pacem--r) - 1px), var(--pacem--ca) calc(var(--pacem--r) - 1px), var(--pacem--ca) calc(var(--pacem--r) + 1px), transparent calc(var(--pacem--r) + 1px);
31
+
32
+ background-image:
33
+ var(--pacem--l), var(--pacem--l), var(--pacem--l), var(--pacem--l), var(--pacem--l), var(--pacem--l), var(--pacem--l), var(--pacem--l),
34
+ radial-gradient(circle at 100% 100%, var(--pacem--ring)), radial-gradient(circle at 0 100%, var(--pacem--ring)),
35
+ radial-gradient(circle at 0 0, var(--pacem--ring)), radial-gradient(circle at 100% 0, var(--pacem--ring));
36
+ background-size:
37
+ var(--pacem--s) 1px, 1px var(--pacem--s), var(--pacem--s) 1px, 1px var(--pacem--s),
38
+ var(--pacem--s) 1px, 1px var(--pacem--s), var(--pacem--s) 1px, 1px var(--pacem--s),
39
+ var(--pacem--r) var(--pacem--r), var(--pacem--r) var(--pacem--r), var(--pacem--r) var(--pacem--r), var(--pacem--r) var(--pacem--r);
40
+ background-position: left top, left top, right top, right top, right bottom, right bottom, left bottom, left bottom, left top, right top, right bottom, left bottom;
41
+ background-repeat: no-repeat;
42
+ background-origin: border-box;
43
+ }
44
+
45
+ /* margin to avoid corners disappearing */
46
+ .pacem-panel.panel-corners.corners-safe,
47
+ .pacem-card.card-corners.corners-safe,
48
+ .breadcrumb.breadcrumb-corners.corners-safe,
49
+ table.pacem-datatable :is(th, td).datacell-corners.corners-safe,
50
+ .pacem-datatable :is(.pacem-headcell.headcell-corners, .pacem-datacell.datacell-corners, .pacem-footcell.footcell-corners).corners-safe {
51
+ margin: 1px;
52
+ }
@@ -0,0 +1,324 @@
1
+ /* Datatables: <table class="pacem-datatable"> and the grid-based .pacem-datatable.
2
+ Variants (.datatable-{color}, .datacell-{color}, .headcell-{color}, .footcell-{color}) only assign
3
+ --pacem--dt; the colorized rules are written once. --pacem--dt inherits from the table to its cells,
4
+ like the descendant selectors of the Less theme. */
5
+
6
+ @custom-selector :--dt-variants :is(.datatable-accent, .datatable-primary, .datatable-success, .datatable-danger, .datatable-warning, .datatable-error, .datatable-disabled);
7
+ @custom-selector :--cell-variants :is(.datacell-accent, .datacell-primary, .datacell-success, .datacell-danger, .datacell-warning, .datacell-error, .datacell-disabled);
8
+ @custom-selector :--headcell-variants :is(.headcell-accent, .headcell-primary, .headcell-success, .headcell-danger, .headcell-warning, .headcell-error, .headcell-disabled);
9
+ @custom-selector :--footcell-variants :is(.footcell-accent, .footcell-primary, .footcell-success, .footcell-danger, .footcell-warning, .footcell-error, .footcell-disabled);
10
+
11
+ :is(.datatable-accent, .datacell-accent, .headcell-accent, .footcell-accent) { --pacem--dt: var(--pacem-color-accent); }
12
+ :is(.datatable-primary, .datacell-primary, .headcell-primary, .footcell-primary) { --pacem--dt: var(--pacem-color-primary); }
13
+ :is(.datatable-success, .datacell-success, .headcell-success, .footcell-success) { --pacem--dt: var(--pacem-color-success); }
14
+ :is(.datatable-danger, .datacell-danger, .headcell-danger, .footcell-danger) { --pacem--dt: var(--pacem-color-danger); }
15
+ :is(.datatable-warning, .datacell-warning, .headcell-warning, .footcell-warning) { --pacem--dt: var(--pacem-color-warning); }
16
+ :is(.datatable-error, .datacell-error, .headcell-error, .footcell-error) { --pacem--dt: var(--pacem-color-error); }
17
+ :is(.datatable-disabled, .datacell-disabled, .headcell-disabled, .footcell-disabled) { --pacem--dt: var(--pacem-color-disabled); }
18
+
19
+ /* #region <table> */
20
+
21
+ table.pacem-datatable {
22
+ border-collapse: collapse;
23
+ border-left: 1px solid var(--pacem-color-border);
24
+ border-right: 1px solid var(--pacem-color-border);
25
+ width: 100%;
26
+ table-layout: fixed;
27
+
28
+ thead td, thead th {
29
+ font-weight: 700;
30
+ }
31
+
32
+ /* (Less also emitted `color: invert(...)`, an invalid declaration: dropped) */
33
+ tbody tr:hover {
34
+ background-color: rgb(from var(--pacem-color-border) r g b / 5%);
35
+ }
36
+
37
+ th, td {
38
+ &.datacell-corners {
39
+ --pacem--corners-color: rgb(from var(--pacem-color-border) r g b / 100%);
40
+ --pacem--corners-size: var(--pacem-corner-datacell-size);
41
+ }
42
+
43
+ border-left: none;
44
+ border-right: none;
45
+ border-top: 1px solid var(--pacem-color-border);
46
+ border-bottom: 1px solid var(--pacem-color-border);
47
+ padding: round(calc(var(--pacem-grid-spacing) / 3), 1px);
48
+ margin: 0;
49
+ height: 100%;
50
+ box-sizing: border-box;
51
+
52
+ &.datacell-auto {
53
+ width: 1%;
54
+ white-space: nowrap;
55
+ }
56
+
57
+ &.datacell-right {
58
+ text-align: right;
59
+ }
60
+
61
+ &.datacell-center {
62
+ text-align: center;
63
+ }
64
+
65
+ &.datacell-middle {
66
+ vertical-align: middle;
67
+ }
68
+
69
+ &.datacell-reset {
70
+ padding: 0;
71
+ }
72
+
73
+ &.datacell-truncate {
74
+ overflow: hidden;
75
+ white-space: nowrap;
76
+ text-overflow: ellipsis;
77
+ }
78
+ }
79
+
80
+ /* whole table */
81
+ &:--dt-variants {
82
+ border-left-color: rgb(from var(--pacem--dt) r g b / 20%);
83
+ border-right-color: rgb(from var(--pacem--dt) r g b / 20%);
84
+ }
85
+
86
+ /* (a list: the table and the cell variants keep the specificity they had in Less) */
87
+ &:--dt-variants :is(td, th),
88
+ & td:--cell-variants {
89
+ border-color: rgb(from var(--pacem--dt) r g b / 20%);
90
+
91
+ &.datacell-corners {
92
+ --pacem--corners-color: rgb(from var(--pacem--dt) r g b / 25%);
93
+ }
94
+
95
+ &.datacell-filled {
96
+ background-color: rgb(from var(--pacem--dt) r g b / 10%);
97
+ }
98
+ }
99
+ }
100
+
101
+ /* #endregion */
102
+
103
+ /* #region grid */
104
+
105
+ .pacem-datatable {
106
+ display: grid;
107
+ grid-gap: 0;
108
+ border-left: 1px solid var(--pacem-color-border);
109
+ border-right: 1px solid var(--pacem-color-border);
110
+ border-top: 1px solid var(--pacem-color-border);
111
+ border-bottom: 0 !important;
112
+ position: relative;
113
+
114
+ .pacem-datarow {
115
+ z-index: 0;
116
+ pointer-events: none;
117
+ background-color: var(--pacem-datarow-color);
118
+
119
+ &.datarow-alt {
120
+ background-color: var(--pacem-datarow-alt-color);
121
+ }
122
+ }
123
+
124
+ .pacem-datacell:hover ~ .pacem-datarow {
125
+ background-color: var(--pacem-datarow-hover-color);
126
+
127
+ + .pacem-datacell ~ .pacem-datarow {
128
+ background-color: var(--pacem-datarow-color);
129
+
130
+ &.datarow-alt {
131
+ background-color: var(--pacem-datarow-alt-color);
132
+ }
133
+ }
134
+ }
135
+
136
+ /* .DataCell() */
137
+ :is(.pacem-headcell, .pacem-datacell, .pacem-footcell) {
138
+ display: flex;
139
+ box-sizing: border-box;
140
+ padding: calc(var(--pacem-grid-spacing) / 3) calc(var(--pacem-grid-spacing) / 2);
141
+ border-top: 0 solid var(--pacem-color-border);
142
+ border-bottom: 1px solid var(--pacem-color-border);
143
+ min-width: 0;
144
+ }
145
+
146
+ :is(.pacem-headcell.headcell-corners, .pacem-datacell.datacell-corners, .pacem-footcell.footcell-corners) {
147
+ --pacem--corners-color: var(--pacem-color-border);
148
+ --pacem--corners-size: var(--pacem-corner-datacell-size);
149
+ }
150
+
151
+ :is(.pacem-headcell.headcell-right, .pacem-datacell.datacell-right, .pacem-footcell.footcell-right) {
152
+ justify-content: flex-end;
153
+ }
154
+
155
+ :is(.pacem-headcell.headcell-left, .pacem-datacell.datacell-left, .pacem-footcell.footcell-left) {
156
+ justify-content: flex-start;
157
+ }
158
+
159
+ :is(.pacem-headcell.headcell-center, .pacem-datacell.datacell-center, .pacem-footcell.footcell-center) {
160
+ justify-content: center;
161
+ }
162
+
163
+ :is(.pacem-headcell.headcell-fill, .pacem-datacell.datacell-fill, .pacem-footcell.footcell-fill) {
164
+ justify-content: stretch;
165
+ }
166
+
167
+ :is(.pacem-headcell.headcell-middle, .pacem-datacell.datacell-middle, .pacem-footcell.footcell-middle) {
168
+ align-items: center;
169
+ }
170
+
171
+ :is(.pacem-headcell.headcell-top, .pacem-datacell.datacell-top, .pacem-footcell.footcell-top) {
172
+ align-items: flex-start;
173
+ }
174
+
175
+ :is(.pacem-headcell.headcell-bottom, .pacem-datacell.datacell-bottom, .pacem-footcell.footcell-bottom) {
176
+ align-items: flex-end;
177
+ }
178
+
179
+ /* .DataCellColorize2() */
180
+ :is(.pacem-headcell:--headcell-variants.headcell-corners, .pacem-datacell:--cell-variants.datacell-corners, .pacem-footcell:--footcell-variants.footcell-corners) {
181
+ --pacem--corners-color: rgb(from var(--pacem--dt) r g b / 12.5%);
182
+ }
183
+
184
+ :is(.pacem-headcell:--headcell-variants.headcell-filled, .pacem-datacell:--cell-variants.datacell-filled, .pacem-footcell:--footcell-variants.footcell-filled) {
185
+ background-color: rgb(from var(--pacem--dt) r g b / 10%);
186
+ border-left-color: rgb(from var(--pacem--dt) r g b / 20%);
187
+ border-right-color: rgb(from var(--pacem--dt) r g b / 20%);
188
+ }
189
+
190
+ .pacem-headcell {
191
+ z-index: 2;
192
+ font-weight: bold;
193
+
194
+ &.headcell-sticky {
195
+ position: sticky;
196
+ top: 0;
197
+ background: var(--pacem-color-background);
198
+ }
199
+ }
200
+
201
+ /* .DataTableColorize2(): (sic) it targets nested .pacem-datatable elements */
202
+ &:--dt-variants {
203
+ border-color: rgb(from var(--pacem--dt) r g b / 20%);
204
+
205
+ .pacem-datatable {
206
+ border-bottom-color: rgb(from var(--pacem--dt) r g b / 20%);
207
+
208
+ &.datatable-corners {
209
+ --pacem--corners-color: rgb(from var(--pacem--dt) r g b / 12.5%);
210
+ }
211
+
212
+ &.datatable-filled {
213
+ background-color: rgb(from var(--pacem--dt) r g b / 10%);
214
+ border-left-color: rgb(from var(--pacem--dt) r g b / 20%);
215
+ border-right-color: rgb(from var(--pacem--dt) r g b / 20%);
216
+ }
217
+ }
218
+ }
219
+
220
+ .pacem-datacell,
221
+ .pacem-footcell {
222
+ z-index: 1;
223
+ }
224
+
225
+ .pacem-headcell.headcell-truncate,
226
+ .pacem-headcell.headcell-ellipsed,
227
+ .pacem-datacell.datacell-truncate,
228
+ .pacem-datacell.datacell-ellipsed,
229
+ .pacem-footcell.footcell-truncate,
230
+ .pacem-footcell.footcell-ellipsed {
231
+ overflow: hidden;
232
+ white-space: nowrap;
233
+ text-overflow: ellipsis;
234
+ display: block;
235
+ }
236
+
237
+ .pacem-datacell,
238
+ .pacem-datarow {
239
+ &.datarow-off,
240
+ &.datacell-off {
241
+ opacity: 0.4;
242
+ }
243
+ }
244
+
245
+ /* .ToolButtons() */
246
+ :is(.pacem-headcell.headcell-tools, .pacem-datacell.datacell-tools, .pacem-footcell.footcell-tools) {
247
+ .pacem-button,
248
+ pacem-button {
249
+ width: calc(var(--pacem-grid-spacing) * 1.3333);
250
+ height: var(--pacem-grid-spacing);
251
+ margin: 0;
252
+
253
+ &.button-square,
254
+ &.circular,
255
+ &.button-circle,
256
+ &.button-circular {
257
+ width: var(--pacem-grid-spacing);
258
+ margin: 0 calc(var(--pacem-grid-spacing) / 6);
259
+
260
+ &::before {
261
+ font-size: calc(var(--pacem-grid-spacing) * 2 / 3);
262
+ line-height: var(--pacem-grid-spacing);
263
+ width: var(--pacem-grid-spacing);
264
+ }
265
+ }
266
+ }
267
+ }
268
+
269
+ &:is(.border-solid, .border-dotted, .border-dashed) {
270
+ border-left-style: var(--pacem--border-style);
271
+ border-top-style: var(--pacem--border-style);
272
+ border-right-style: var(--pacem--border-style);
273
+
274
+ :is(.pacem-headcell, .pacem-datacell, .pacem-footcell) {
275
+ border-bottom-style: var(--pacem--border-style);
276
+ }
277
+ }
278
+
279
+ :is(.pacem-headcell, .pacem-datacell, .pacem-footcell):is(.border-solid, .border-dotted, .border-dashed) {
280
+ border-bottom-style: var(--pacem--border-style);
281
+ }
282
+
283
+ &.datatable-no-sideborders {
284
+ border-left-width: 0;
285
+ border-right-width: 0;
286
+ }
287
+
288
+ &.datatable-noborders {
289
+ border-width: 0;
290
+
291
+ .pacem-datacell.datacell-lastrow {
292
+ border-bottom-width: 0;
293
+ }
294
+
295
+ .pacem-footcell {
296
+ border-top: 1px solid var(--pacem-color-border);
297
+ border-bottom-width: 0;
298
+ }
299
+
300
+ &:is(.border-dotted, .border-dashed) .pacem-footcell {
301
+ border-top-style: var(--pacem--border-style);
302
+ }
303
+ }
304
+
305
+ &.datatable-norows {
306
+ .pacem-datarow {
307
+ background-color: transparent;
308
+ }
309
+
310
+ .pacem-datacell:hover ~ .pacem-datarow {
311
+ background-color: var(--pacem-datarow-hover-color);
312
+
313
+ + .pacem-datacell ~ .pacem-datarow {
314
+ background-color: transparent;
315
+
316
+ &.datarow-alt {
317
+ background-color: transparent;
318
+ }
319
+ }
320
+ }
321
+ }
322
+ }
323
+
324
+ /* #endregion */
@@ -0,0 +1,73 @@
1
+ .pacem-rise {
2
+
3
+ /* border */
4
+ &:not(.rise-noborder) {
5
+ border: 1px solid;
6
+ border-top-color: var(--pacem-color-border-light);
7
+ border-bottom-color: var(--pacem-color-border-dark);
8
+ border-left-color: var(--pacem-color-border-dawn);
9
+ border-right-color: var(--pacem-color-border-dusk);
10
+ }
11
+
12
+ box-shadow: 0 calc(var(--pacem-grid-spacing) / 6) var(--pacem-grid-spacing) var(--pacem-color-shadow);
13
+
14
+ &.rise-none {
15
+ box-shadow: none;
16
+ border-color: rgb(from var(--pacem-color-shadow) r g b / 0%);
17
+ }
18
+
19
+ &.rise--1, &.rise-hover--1:hover, &.rise-hover--1:focus {
20
+ box-shadow: 0 1px 1px var(--pacem-color-shadow);
21
+ }
22
+
23
+ &.rise--2, &.rise-hover--2:hover, &.rise-hover--2:focus {
24
+ box-shadow: 0 2px 4px var(--pacem-color-shadow);
25
+ }
26
+
27
+ &.rise--3, &.rise-hover--3:hover, &.rise-hover--3:focus {
28
+ box-shadow: 0 3px 9px var(--pacem-color-shadow);
29
+ }
30
+
31
+ &.rise--4, &.rise-hover--4:hover, &.rise-hover--4:focus {
32
+ box-shadow: 0 4px 16px var(--pacem-color-shadow);
33
+ }
34
+
35
+ &.rise--5, &.rise-hover--5:hover, &.rise-hover--5:focus {
36
+ box-shadow: 0 5px 25px var(--pacem-color-shadow);
37
+ }
38
+
39
+ &.rise--1,
40
+ &.rise--2,
41
+ &.rise--3,
42
+ &.rise--4,
43
+ &.rise--5,
44
+ &.rise-hover--1:hover,
45
+ &.rise-hover--2:hover,
46
+ &.rise-hover--3:hover,
47
+ &.rise-hover--4:hover,
48
+ &.rise-hover--5:hover,
49
+ &.rise-hover--1:focus,
50
+ &.rise-hover--2:focus,
51
+ &.rise-hover--3:focus,
52
+ &.rise-hover--4:focus,
53
+ &.rise-hover--5:focus {
54
+ &:not(.rise-noborder) {
55
+ border: 1px solid;
56
+ border-top-color: var(--pacem-color-border-light);
57
+ border-bottom-color: var(--pacem-color-border-dark);
58
+ border-left-color: var(--pacem-color-border-dawn);
59
+ border-right-color: var(--pacem-color-border-dusk);
60
+ }
61
+ }
62
+
63
+ &.rise-hover-none:hover,
64
+ &.rise-hover-none:focus {
65
+ box-shadow: none;
66
+ border-color: rgb(from var(--pacem-color-shadow) r g b / 0%);
67
+ }
68
+ }
69
+
70
+ /* animations */
71
+ .pacem-animations .pacem-rise {
72
+ transition: box-shadow var(--pacem-easing-in-out-sine) .2s, border-color var(--pacem-easing-in-out-sine) .2s .05s;
73
+ }
@@ -0,0 +1,125 @@
1
+ @keyframes -fetching-anim {
2
+ 0% {
3
+ background-position-x: 0;
4
+ }
5
+
6
+ 100% {
7
+ background-position-x: 100px;
8
+ }
9
+ }
10
+
11
+ /* .fetch-feedback: --pacem--feedback is assigned by .feedback-{color} */
12
+ .fetch-feedback {
13
+ --pacem--feedback-off: rgb(from var(--pacem--feedback, var(--pacem-color-default)) r g b / 0);
14
+ --pacem--feedback-on: var(--pacem--feedback, var(--pacem-color-default));
15
+ display: block;
16
+ transform: translateX(-100%);
17
+ transition: transform var(--pacem-easing-in-sine) .2s .2s;
18
+ height: 1px;
19
+
20
+ &.feedback-thick {
21
+ height: 2px;
22
+ }
23
+
24
+ &.feedback-thicker {
25
+ height: 4px;
26
+ }
27
+
28
+ &.feedback-auto {
29
+ height: auto;
30
+ }
31
+
32
+ :--gradients & {
33
+ background: linear-gradient(to right, var(--pacem--feedback-on) 0%, var(--pacem--feedback-off) 50%, var(--pacem--feedback-off) 50%, var(--pacem--feedback-on) 100%);
34
+ }
35
+
36
+ :--no-gradients & {
37
+ background: linear-gradient(to right, var(--pacem--feedback-on) 0%, var(--pacem--feedback-on) 50%, var(--pacem--feedback-off) 50%, var(--pacem--feedback-off) 100%);
38
+ }
39
+
40
+ background-repeat: repeat-x;
41
+ background-size: 100px;
42
+
43
+ &.feedback-gradient {
44
+ background: linear-gradient(to right, var(--pacem--feedback-on) 0%, var(--pacem--feedback-off) 50%, var(--pacem--feedback-off) 50%, var(--pacem--feedback-on) 100%);
45
+ background-repeat: repeat-x;
46
+ background-size: 100px;
47
+ }
48
+
49
+ &.feedback-root { --pacem--feedback: var(--pacem-color-root); }
50
+ &.feedback-background { --pacem--feedback: var(--pacem-color-background); }
51
+ &.feedback-default { --pacem--feedback: var(--pacem-color-default); }
52
+ &.feedback-invert { --pacem--feedback: var(--pacem-color-invert); }
53
+ &.feedback-primary { --pacem--feedback: var(--pacem-color-primary); }
54
+ &.feedback-secondary { --pacem--feedback: var(--pacem-color-secondary); }
55
+ &.feedback-accent { --pacem--feedback: var(--pacem-color-accent); }
56
+ &.feedback-info { --pacem--feedback: var(--pacem-color-info); }
57
+ &.feedback-success { --pacem--feedback: var(--pacem-color-success); }
58
+ &.feedback-warning { --pacem--feedback: var(--pacem-color-warning); }
59
+ &.feedback-danger { --pacem--feedback: var(--pacem-color-danger); }
60
+ &.feedback-error { --pacem--feedback: var(--pacem-color-error); }
61
+ &.feedback-disabled { --pacem--feedback: var(--pacem-color-disabled); }
62
+ &.feedback-green { --pacem--feedback: var(--pacem-color-green); }
63
+ &.feedback-yellow { --pacem--feedback: var(--pacem-color-yellow); }
64
+ &.feedback-brown { --pacem--feedback: var(--pacem-color-brown); }
65
+ &.feedback-red { --pacem--feedback: var(--pacem-color-red); }
66
+ &.feedback-pink { --pacem--feedback: var(--pacem-color-pink); }
67
+ &.feedback-blue { --pacem--feedback: var(--pacem-color-blue); }
68
+ &.feedback-orange { --pacem--feedback: var(--pacem-color-orange); }
69
+ &.feedback-purple { --pacem--feedback: var(--pacem-color-purple); }
70
+ &.feedback-teal { --pacem--feedback: var(--pacem-color-teal); }
71
+ &.feedback-gray { --pacem--feedback: var(--pacem-color-gray); }
72
+
73
+ &.feedback-small {
74
+ background-size: 50px;
75
+ }
76
+
77
+ &.fetching {
78
+ transform: translateX(0);
79
+ animation: -fetching-anim linear .0725s both infinite;
80
+
81
+ &.feedback-small {
82
+ animation-duration: .145s;
83
+ }
84
+
85
+ &.anim-slow {
86
+ animation-duration: .125s;
87
+
88
+ &.feedback-small {
89
+ /* double the duration since half is the size (and the offset of the background-position-x in the animation remains the same) */
90
+ animation-duration: .25s;
91
+ }
92
+ }
93
+ }
94
+ }
95
+
96
+ /* default positioning inside known elements
97
+ (explicit selectors: .pacem-header and header[pacem] have different specificity) */
98
+ .pacem-header .fetch-feedback,
99
+ header[pacem] .fetch-feedback,
100
+ .pacem-footer .fetch-feedback,
101
+ footer[pacem] .fetch-feedback {
102
+ position: absolute;
103
+ left: 0;
104
+ right: 0;
105
+ }
106
+
107
+ .pacem-header .fetch-feedback.feedback-top,
108
+ header[pacem] .fetch-feedback.feedback-top {
109
+ top: 0;
110
+ }
111
+
112
+ .pacem-header .fetch-feedback:not(.feedback-top),
113
+ header[pacem] .fetch-feedback:not(.feedback-top) {
114
+ bottom: 0;
115
+ }
116
+
117
+ .pacem-footer .fetch-feedback.feedback-bottom,
118
+ footer[pacem] .fetch-feedback.feedback-bottom {
119
+ bottom: 0;
120
+ }
121
+
122
+ .pacem-footer .fetch-feedback:not(.feedback-bottom),
123
+ footer[pacem] .fetch-feedback:not(.feedback-bottom) {
124
+ top: 0;
125
+ }