@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,103 @@
1
+ /* first level width: 2 * grid spacing (--pacem-sidebar-width) */
2
+ pacem-sidebar {
3
+ z-index: calc(var(--pacem-zindex-menu) + 1);
4
+ display: block;
5
+ position: fixed;
6
+ top: 0;
7
+ bottom: 0;
8
+ left: 0;
9
+ width: 0;
10
+
11
+ &::part(drawer),
12
+ .sidebar-drawer {
13
+ position: absolute;
14
+ top: 0;
15
+ bottom: 0;
16
+ left: 0;
17
+ width: var(--pacem-sidebar-width);
18
+ color: var(--pacem-sidebar-foreground);
19
+ background: var(--pacem-sidebar-background);
20
+ border-right: 1px solid var(--pacem-color-border);
21
+ box-sizing: border-box;
22
+ /* initial state */
23
+ transform: translateX(calc(-1 * var(--pacem-sidebar-width)));
24
+ opacity: 0;
25
+ }
26
+
27
+ /* open state */
28
+ &::part(open),
29
+ .sidebar-drawer.drawer-open {
30
+ opacity: 1;
31
+ transform: translateX(0);
32
+ }
33
+
34
+ &.sidebar-noborder::part(drawer) {
35
+ border: 0;
36
+ }
37
+
38
+ /* coloring: --pacem--sb (background), --pacem--sb-ink (foreground) */
39
+ &.sidebar-primary { --pacem--sb: var(--pacem-color-primary); --pacem--sb-ink: var(--pacem-color-primary-inverse); }
40
+ &.sidebar-secondary { --pacem--sb: var(--pacem-color-secondary); --pacem--sb-ink: var(--pacem-color-secondary-inverse); }
41
+ &.sidebar-accent { --pacem--sb: var(--pacem-color-accent); --pacem--sb-ink: var(--pacem-color-accent-inverse); }
42
+ &.sidebar-warning { --pacem--sb: var(--pacem-color-warning); --pacem--sb-ink: var(--pacem-color-warning-inverse); }
43
+ &.sidebar-success { --pacem--sb: var(--pacem-color-success); --pacem--sb-ink: var(--pacem-color-success-inverse); }
44
+ &.sidebar-danger { --pacem--sb: var(--pacem-color-danger); --pacem--sb-ink: var(--pacem-color-danger-inverse); }
45
+ &.sidebar-error { --pacem--sb: var(--pacem-color-error); --pacem--sb-ink: var(--pacem-color-error-inverse); }
46
+ &.sidebar-invert { --pacem--sb: var(--pacem-color-default); --pacem--sb-ink: var(--pacem-color-default-inverse); }
47
+ &.sidebar-disabled { --pacem--sb: var(--pacem-color-disabled); --pacem--sb-ink: var(--pacem-color-disabled-inverse); }
48
+ }
49
+
50
+ pacem-sidebar:is(.sidebar-primary, .sidebar-secondary, .sidebar-accent, .sidebar-warning, .sidebar-success, .sidebar-danger, .sidebar-error, .sidebar-invert, .sidebar-disabled) {
51
+ &::part(drawer),
52
+ .sidebar-drawer {
53
+ background: linear-gradient(to bottom, var(--pacem--sb) 0, hsl(from var(--pacem--sb) h s max(0, l - 20)) 100%);
54
+ border-color: transparent;
55
+ color: var(--pacem--sb-ink);
56
+ }
57
+ }
58
+
59
+ .pacem-body.pacem-sidebar-open {
60
+ padding-left: calc(var(--pacem-sidebar-width) + var(--pacem-layout-aside-padding));
61
+
62
+ @media screen and (--pacem-lg) {
63
+ &.pacem-menu-open {
64
+ padding-left: calc(var(--pacem-sidebar-width) + var(--pacem-menu-width) + var(--pacem-layout-aside-padding));
65
+ }
66
+ }
67
+
68
+ pacem-menu.menu-sync {
69
+ transform: translateX(var(--pacem-sidebar-width));
70
+ }
71
+ }
72
+
73
+ pacem-sidebar nav.pacem-sidebar {
74
+ display: grid;
75
+ grid-template-rows: auto 1fr auto;
76
+ height: 100%;
77
+ padding: var(--pacem-sidebar-nav-spacing) 0;
78
+ box-sizing: border-box;
79
+
80
+ > .sidebar-start,
81
+ > .sidebar-end {
82
+ display: flex;
83
+ flex-direction: column;
84
+ align-items: center;
85
+ }
86
+
87
+ > .sidebar-start {
88
+ grid-row: 1;
89
+ }
90
+
91
+ > .sidebar-end {
92
+ grid-row: 3;
93
+ }
94
+
95
+ .sidebar-button {
96
+ margin: 0;
97
+ }
98
+ }
99
+
100
+ .pacem-body.pacem-animations pacem-sidebar::part(drawer),
101
+ .pacem-body.pacem-animations pacem-sidebar .sidebar-drawer {
102
+ transition: transform .3s var(--pacem-easing-in-out-sine), opacity .2s linear;
103
+ }
@@ -0,0 +1,22 @@
1
+ pacem-sticky-header {
2
+ pointer-events: none !important;
3
+ display: none !important;
4
+
5
+ :--shadows & {
6
+ box-shadow: 0 1px var(--pacem-grid-spacing) rgba(0,0,0,0.5);
7
+ }
8
+ }
9
+
10
+ /* while scrolling (> threshold) */
11
+ .pacem-body.sticky-header-fade[header] header[pacem],
12
+ .pacem-body.sticky-header-fade[header] .pacem-header,
13
+ .pacem-body.sticky-header-fade[header][headbar] header[pacem],
14
+ .pacem-body.sticky-header-fade[header][headbar] .pacem-header,
15
+ .pacem-body.sticky-header-fade[header][headbar-prepend] header[pacem],
16
+ .pacem-body.sticky-header-fade[header][headbar-prepend] .pacem-header {
17
+ transform: translateY(-100%);
18
+ }
19
+
20
+ .pacem-body[headbar][header].sticky-header-fade .pacem-toolbar.toolbar-header {
21
+ transform: translateX(0) translateY(0);
22
+ }
@@ -0,0 +1,355 @@
1
+ /* tab height: 1.5 * grid spacing (--pacem--tab-h); border: --pacem-border-tab (0 in the dark theme) */
2
+ pacem-tabs {
3
+ --pacem--tab-h: calc(var(--pacem-grid-spacing) * 1.5);
4
+ display: block;
5
+
6
+ pacem-tab {
7
+ display: none;
8
+ opacity: 0;
9
+ pointer-events: none;
10
+
11
+ &.tab-out,
12
+ &.tab-in,
13
+ &.tab-focus {
14
+ display: block;
15
+ }
16
+
17
+ &.tab-previous {
18
+ transform: translateX(calc(-1 * var(--pacem-grid-spacing)));
19
+ }
20
+
21
+ &.tab-next {
22
+ transform: translateX(var(--pacem-grid-spacing));
23
+ }
24
+
25
+ &.tab-focus,
26
+ &.pacem-tab-focus {
27
+ pointer-events: auto;
28
+ opacity: 1;
29
+ transform: none;
30
+ }
31
+ }
32
+
33
+ .pacem-tabs-content {
34
+ background: var(--pacem-color-tab-back);
35
+ padding: var(--pacem-grid-spacing);
36
+ border-radius: var(--pacem-border-radius);
37
+ border: var(--pacem-border-tab) solid var(--pacem-color-border);
38
+ z-index: 0;
39
+ overflow: hidden;
40
+ display: grid;
41
+
42
+ > pacem-tab {
43
+ grid-column: 1;
44
+ grid-row: 1;
45
+ align-self: start;
46
+ overflow: auto;
47
+ }
48
+
49
+ /* #region unused */
50
+ .tab-heading {
51
+ padding: 0 0 calc(var(--pacem-grid-spacing) / 2) 0;
52
+ margin: 0;
53
+ }
54
+
55
+ .tab-body,
56
+ .tab-footer {
57
+ padding: calc(var(--pacem-grid-spacing) / 2) 0;
58
+ color: rgb(from var(--pacem-color-default) r g b / 80%);
59
+ line-height: 1.3333;
60
+ }
61
+
62
+ :is(.tab-heading, .tab-body, .tab-footer):last-child {
63
+ padding-bottom: 0;
64
+ }
65
+
66
+ .tab-heading {
67
+ line-height: 1.1;
68
+ font-family: var(--pacem-font-main);
69
+ font-size: calc(1.5rem * var(--pacem-font-main-rem-factor));
70
+ min-height: var(--pacem-grid-spacing);
71
+ text-transform: var(--pacem-transform-heading);
72
+
73
+ &.heading-bigger {
74
+ font-size: calc(2rem * var(--pacem-font-main-rem-factor));
75
+ }
76
+
77
+ h1, h2, h3, h4, h5, h6 {
78
+ font-size: 1em;
79
+ margin: 0;
80
+ padding: 0;
81
+ line-height: 1;
82
+ font-weight: normal;
83
+ }
84
+
85
+ :--shadows & {
86
+ text-shadow: 0 2px 5px rgba(0,0,0,0.5);
87
+ }
88
+ }
89
+ /* #endregion */
90
+ }
91
+
92
+ &:is(.rise, .tabs-rise) {
93
+ .pacem-tabs-content {
94
+ box-shadow: 0 4px 16px rgba(0,0,0,0.125);
95
+
96
+ :--light-scheme & {
97
+ box-shadow: 0 2px 24px rgba(0,0,0,0.075);
98
+ }
99
+ }
100
+
101
+ .pacem-tabs.tabs-vertical pacem-button.pacem-adapter-page.pacem-adapter-active {
102
+ box-shadow: -2px 2px 4px rgba(0,0,0,0.125);
103
+
104
+ :--light-scheme & {
105
+ box-shadow: -2px 2px 4px rgba(0,0,0,0.05);
106
+ }
107
+ }
108
+ }
109
+
110
+ &.tabs-flat {
111
+ .pacem-tabs-content {
112
+ box-shadow: none;
113
+ background: none;
114
+ border: none;
115
+ padding-left: var(--pacem-size-1);
116
+ padding-right: var(--pacem-size-1);
117
+ }
118
+
119
+ .pacem-tabs.tabs-vertical pacem-button.pacem-adapter-page.pacem-adapter-active {
120
+ box-shadow: none;
121
+ }
122
+ }
123
+
124
+ &.tabs-no-ypad .pacem-tabs-content {
125
+ padding-top: 0;
126
+ padding-bottom: 0;
127
+ }
128
+
129
+ &.tabs-no-xpad .pacem-tabs-content {
130
+ padding-left: 0;
131
+ padding-right: 0;
132
+ }
133
+
134
+ &.tabs-nopad .pacem-tabs-content {
135
+ padding: 0;
136
+ }
137
+ }
138
+
139
+ /* tabs (header) */
140
+ pacem-tabs {
141
+ .pacem-tabs {
142
+ pacem-adapter.pacem-tabs-adapter {
143
+ .pacem-adapter-dashboard {
144
+ list-style-type: none;
145
+ display: flex;
146
+ flex-direction: row;
147
+ align-items: flex-start;
148
+ margin: 0 0 0 round(calc(2 * var(--pacem--tab-h)), 1px);
149
+ padding: 0;
150
+ clear: right;
151
+
152
+ > li > pacem-button.pacem-adapter-page {
153
+ padding: calc(var(--pacem-grid-spacing) / 6) calc(var(--pacem-grid-spacing) / 2) 0 calc(var(--pacem-grid-spacing) / 2);
154
+ margin: 0;
155
+ background-color: transparent;
156
+ height: var(--pacem--tab-h);
157
+ box-sizing: border-box;
158
+ border-top-left-radius: var(--pacem-border-radius);
159
+ border-top-right-radius: var(--pacem-border-radius);
160
+
161
+ &.pacem-disabled {
162
+ box-shadow: none;
163
+ }
164
+
165
+ > pacem-span {
166
+ display: block;
167
+ box-sizing: border-box;
168
+ height: calc(var(--pacem--tab-h) - var(--pacem-grid-spacing) / 6);
169
+ line-height: calc(var(--pacem--tab-h) - var(--pacem-grid-spacing) / 6);
170
+ margin: 0 calc(var(--pacem-grid-spacing) / 2);
171
+ border-bottom: 1px solid transparent;
172
+ transition: border-color .3s linear;
173
+
174
+ > span {
175
+ display: block;
176
+ }
177
+ }
178
+
179
+ &.pacem-adapter-active {
180
+ background-color: var(--pacem-color-tab-back);
181
+ border-top: var(--pacem-border-tab) solid var(--pacem-color-border);
182
+ border-right: var(--pacem-border-tab) solid var(--pacem-color-border);
183
+ border-left: var(--pacem-border-tab) solid var(--pacem-color-border);
184
+ border-bottom: 0;
185
+ z-index: 1;
186
+ transform: translateY(var(--pacem-border-tab));
187
+
188
+ > pacem-span {
189
+ border-color: var(--pacem-color-tab-highlight);
190
+ }
191
+ }
192
+ }
193
+ }
194
+
195
+ .pacem-adapter-next,
196
+ .pacem-adapter-previous {
197
+ font-size: 0;
198
+ float: left;
199
+ height: var(--pacem--tab-h);
200
+ line-height: var(--pacem--tab-h);
201
+ display: block;
202
+ width: var(--pacem--tab-h);
203
+ background-color: transparent;
204
+ margin: 0;
205
+
206
+ &::before {
207
+ /* .Icon() */
208
+ position: absolute;
209
+ display: inline-block;
210
+ text-align: center;
211
+ font-family: var(--pacem-font-icons);
212
+ text-transform: none;
213
+ letter-spacing: normal;
214
+ word-wrap: normal;
215
+ white-space: nowrap;
216
+ direction: ltr;
217
+ -webkit-font-smoothing: antialiased;
218
+ text-rendering: optimizeLegibility;
219
+ -moz-osx-font-smoothing: grayscale;
220
+ font-feature-settings: 'liga';
221
+ transition: font-variation-settings .25s var(--pacem-easing-in-out-sine);
222
+ font-variation-settings: 'FILL' var(--pacem-font-icon-fill), 'wght' 400, 'GRAD' 0, 'opsz' 24;
223
+ font-size: var(--pacem-grid-spacing);
224
+ left: 0;
225
+ width: 100%;
226
+ line-height: var(--pacem--tab-h);
227
+ }
228
+ }
229
+
230
+ .pacem-adapter-next::before {
231
+ content: 'chevron_right';
232
+ }
233
+
234
+ .pacem-adapter-previous::before {
235
+ content: 'chevron_left';
236
+ }
237
+ }
238
+
239
+ &.tabs-vertical {
240
+ display: flex;
241
+ flex-direction: row;
242
+
243
+ pacem-adapter.pacem-tabs-adapter {
244
+ flex-basis: calc(var(--pacem-grid-cell) * 2);
245
+ flex-grow: 0;
246
+ flex-shrink: 0;
247
+
248
+ .pacem-adapter-dashboard {
249
+ display: block;
250
+ margin: calc(2 * var(--pacem-grid-spacing)) 0 0 0;
251
+
252
+ > li {
253
+ display: list-item;
254
+
255
+ > pacem-button.pacem-adapter-page {
256
+ padding: calc(var(--pacem-grid-spacing) / 4) 0 calc(var(--pacem-grid-spacing) / 4) calc(var(--pacem-grid-spacing) / 2);
257
+ display: block;
258
+ border-bottom-left-radius: var(--pacem-border-radius);
259
+ border-top-right-radius: 0;
260
+
261
+ > pacem-span {
262
+ display: block;
263
+ text-align: left;
264
+ margin: 0;
265
+ padding: 0 calc(var(--pacem-grid-spacing) / 2) 0 0;
266
+ height: calc(var(--pacem--tab-h) - var(--pacem-grid-spacing) / 2);
267
+ line-height: calc(var(--pacem--tab-h) - var(--pacem-grid-spacing) / 2);
268
+ border-bottom: none;
269
+ border-right: 1px solid transparent;
270
+ }
271
+
272
+ &.pacem-adapter-active {
273
+ border-top: var(--pacem-border-tab) solid var(--pacem-color-border);
274
+ border-bottom: var(--pacem-border-tab) solid var(--pacem-color-border);
275
+ border-left: var(--pacem-border-tab) solid var(--pacem-color-border);
276
+ border-right: 0;
277
+ z-index: 1;
278
+ transform: translateX(var(--pacem-border-tab));
279
+
280
+ > pacem-span {
281
+ border-color: var(--pacem-color-tab-highlight);
282
+ }
283
+ }
284
+ }
285
+ }
286
+ }
287
+
288
+ .pacem-adapter-next,
289
+ .pacem-adapter-previous {
290
+ margin-left: calc(var(--pacem-grid-spacing) / 2);
291
+ margin-bottom: 0;
292
+ margin-right: 0;
293
+
294
+ &::before {
295
+ position: static;
296
+ }
297
+ }
298
+
299
+ .pacem-adapter-next::before {
300
+ content: 'keyboard_arrow_down';
301
+ }
302
+
303
+ .pacem-adapter-previous::before {
304
+ content: 'keyboard_arrow_up';
305
+ }
306
+ }
307
+
308
+ .pacem-tabs-content {
309
+ flex-grow: 1;
310
+ }
311
+ }
312
+ }
313
+
314
+ &.tabs-flat > .pacem-tabs pacem-adapter.pacem-tabs-adapter .pacem-adapter-dashboard > li > pacem-button.pacem-adapter-page.pacem-adapter-active {
315
+ background: none;
316
+ border: none;
317
+ }
318
+
319
+ &.tabs-rise {
320
+ .pacem-tabs-content,
321
+ .pacem-tabs pacem-adapter.pacem-tabs-adapter .pacem-adapter-dashboard > li > pacem-button.pacem-adapter-page.pacem-adapter-active {
322
+ border: 1px solid;
323
+ border-top-color: var(--pacem-color-border-light);
324
+ border-left-color: var(--pacem-color-border-dawn);
325
+ border-right-color: var(--pacem-color-border-dusk);
326
+ }
327
+
328
+ .pacem-tabs-content {
329
+ border-bottom-color: var(--pacem-color-border-dark);
330
+ }
331
+
332
+ .pacem-tabs pacem-adapter.pacem-tabs-adapter .pacem-adapter-dashboard > li > pacem-button.pacem-adapter-page.pacem-adapter-active {
333
+ border-bottom: 0;
334
+ transform: translateY(1px);
335
+ }
336
+
337
+ > .pacem-tabs.tabs-vertical pacem-adapter.pacem-tabs-adapter .pacem-adapter-dashboard > li > pacem-button.pacem-adapter-page.pacem-adapter-active {
338
+ border: 1px solid;
339
+ border-top-color: var(--pacem-color-border-light);
340
+ border-bottom-color: var(--pacem-color-border-dark);
341
+ border-left-color: var(--pacem-color-border-dawn);
342
+ border-right: 0;
343
+ transform: translateX(1px);
344
+ }
345
+ }
346
+ }
347
+
348
+ pacem-tab::part(label) {
349
+ pointer-events: none !important;
350
+ display: none !important;
351
+ }
352
+
353
+ .pacem-animations pacem-tabs pacem-tab {
354
+ transition: opacity .2s, transform .2s var(--pacem-easing-out-sine);
355
+ }
@@ -0,0 +1,105 @@
1
+ pacem-ticker {
2
+ display: inline-grid;
3
+ grid-template-columns: 1fr;
4
+ grid-template-rows: 1fr;
5
+ overflow: hidden;
6
+
7
+ &::part(ticker-outgoing),
8
+ &::part(ticker-incoming) {
9
+ grid-area: 1/1;
10
+ }
11
+
12
+ &::part(ticker-outgoing) {
13
+ transform: none;
14
+ z-index: 1;
15
+ }
16
+
17
+ &::part(ticker-incoming) {
18
+ transform: translateX(100%);
19
+ opacity: 0;
20
+ z-index: 0;
21
+ }
22
+
23
+ &.ticking {
24
+ &::part(ticker-outgoing) {
25
+ transform: translateX(-100%);
26
+ opacity: 0;
27
+ }
28
+
29
+ &::part(ticker-incoming) {
30
+ transform: translateX(0);
31
+ opacity: 1;
32
+ }
33
+ }
34
+
35
+ /* transitions in */
36
+ /* 1. bottom -> top */
37
+ &.ticker-bottom-in {
38
+ &::part(ticker-incoming) { transform: translateY(100%); }
39
+ &::part(ticker-outgoing) { transform: translateY(0); }
40
+
41
+ &.ticking {
42
+ &::part(ticker-incoming) { transform: translateY(0); }
43
+ /* default combo with top-out */
44
+ &::part(ticker-outgoing) { transform: translateY(-100%); }
45
+ }
46
+ }
47
+
48
+ /* 2. top -> bottom */
49
+ &.ticker-top-in {
50
+ &::part(ticker-incoming) { transform: translateY(-100%); }
51
+ &::part(ticker-outgoing) { transform: translateY(0); }
52
+
53
+ &.ticking {
54
+ &::part(ticker-incoming) { transform: translateY(0); }
55
+ /* default combo with bottom-out */
56
+ &::part(ticker-outgoing) { transform: translateY(100%); }
57
+ }
58
+ }
59
+
60
+ /* 3. left -> right */
61
+ &.ticker-left-in {
62
+ &::part(ticker-incoming) { transform: translateX(-100%); }
63
+ &::part(ticker-outgoing) { transform: translateX(0); }
64
+
65
+ &.ticking {
66
+ &::part(ticker-incoming) { transform: translateX(0); }
67
+ /* default combo with right-out */
68
+ &::part(ticker-outgoing) { transform: translateX(100%); }
69
+ }
70
+ }
71
+
72
+ /* 4. right -> left: default */
73
+
74
+ /* transitions out */
75
+ /* 1. -> top */
76
+ &.ticker-top-out {
77
+ &::part(ticker-outgoing) { transform: translateY(0); }
78
+ &.ticking::part(ticker-outgoing) { transform: translateY(-100%); }
79
+ }
80
+
81
+ /* 2. -> bottom */
82
+ &.ticker-bottom-out {
83
+ &::part(ticker-outgoing) { transform: translateY(0); }
84
+ &.ticking::part(ticker-outgoing) { transform: translateY(100%); }
85
+ }
86
+
87
+ /* 3. -> right */
88
+ &.ticker-right-out {
89
+ &::part(ticker-outgoing) { transform: translateX(0); }
90
+ &.ticking::part(ticker-outgoing) { transform: translateX(100%); }
91
+ }
92
+
93
+ /* 4. -> left */
94
+ &.ticker-left-out {
95
+ &::part(ticker-outgoing) { transform: translateX(0); }
96
+ &.ticking::part(ticker-outgoing) { transform: translateX(-100%); }
97
+ }
98
+ }
99
+
100
+ .pacem-animations pacem-ticker.ticking {
101
+ &::part(ticker-outgoing),
102
+ &::part(ticker-incoming) {
103
+ transition: all var(--pacem-easing-in-out-sine) .3s;
104
+ }
105
+ }
@@ -0,0 +1,106 @@
1
+ /* Step icon: 1 grid spacing, plus a border of 1/6 on each side (--pacem--tl-sz).
2
+ Step colors: --pacem--tl, --pacem--tl-ink (.Coloring()).
3
+ The connector next to the icon was an SVG data uri with the color baked in: here the same SVG is a mask,
4
+ painted with the color. */
5
+ .pacem-timeline {
6
+ display: block;
7
+
8
+ > .timeline-step {
9
+ --pacem--tl: var(--pacem-color-default);
10
+ --pacem--tl-ink: var(--pacem-color-default-inverse);
11
+ --pacem--tl-sz: calc(var(--pacem-grid-spacing) * 4 / 3);
12
+ display: grid;
13
+ grid-template-columns: auto 1fr;
14
+ grid-template-rows: auto 1fr;
15
+ grid-template-areas: 'icon content' 'pad content';
16
+ align-content: start;
17
+
18
+ > *,
19
+ > .step-content {
20
+ grid-area: content;
21
+ }
22
+
23
+ > .step-icon,
24
+ > .step-pad {
25
+ margin-right: var(--pacem-grid-spacing);
26
+ }
27
+
28
+ > .step-icon {
29
+ grid-area: icon;
30
+ box-sizing: border-box;
31
+ width: var(--pacem--tl-sz);
32
+ height: var(--pacem--tl-sz);
33
+ border-radius: 50%;
34
+ display: flex;
35
+ justify-content: center;
36
+ align-items: center;
37
+ font-size: calc(var(--pacem-grid-spacing) / 1.5);
38
+ position: relative;
39
+ border: calc(var(--pacem-grid-spacing) / 6) solid;
40
+ color: var(--pacem--tl-ink);
41
+ border-color: var(--pacem--tl);
42
+ background-color: var(--pacem--tl);
43
+
44
+ &::after {
45
+ position: absolute;
46
+ top: 0;
47
+ left: calc(var(--pacem--tl-sz) - var(--pacem-grid-spacing) / 6);
48
+ content: '';
49
+ width: 24px;
50
+ height: 24px;
51
+ background-color: rgb(from var(--pacem-color-timeline-frame) r g b / 99%);
52
+ mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' width='24' height='24' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M0,12 H12' stroke='%23000' stroke-width='1'/%3E %3Ccircle fill='%23000' cx='12' cy='12' r='2'/%3E %3C/svg%3E");
53
+ }
54
+
55
+ :--shadows & {
56
+ box-shadow: 0 calc(var(--pacem-grid-spacing) / 3) var(--pacem-grid-spacing) rgba(0,0,0,0.5);
57
+ }
58
+
59
+ :--glows & {
60
+ background-origin: content-box;
61
+ box-shadow: inset 0 0 calc(var(--pacem-grid-spacing) / 6) #000, 0 0 var(--pacem-grid-spacing) rgb(from var(--pacem-color-timeline-frame) r g b / 50%);
62
+ border-color: rgb(from var(--pacem--tl) r g b / 50%);
63
+ background: radial-gradient(ellipse at center, rgb(from var(--pacem--tl) r g b / 25%) 50%, rgb(from var(--pacem--tl) r g b / 50%) 100%);
64
+
65
+ &::after {
66
+ background-color: rgb(from var(--pacem-color-timeline-frame) r g b / 50%);
67
+ }
68
+ }
69
+
70
+ :--glows:--shadows & {
71
+ box-shadow: inset 0 0 calc(var(--pacem-grid-spacing) / 2) rgba(0,0,0,0.5), 0 calc(var(--pacem-grid-spacing) / 6) calc(var(--pacem-grid-spacing) / 3) rgba(0,0,0,0.5), 0 0 var(--pacem-grid-spacing) rgb(from var(--pacem-color-timeline-frame) r g b / 50%);
72
+ }
73
+ }
74
+
75
+ > .step-pad {
76
+ grid-area: pad;
77
+ width: calc(var(--pacem--tl-sz) * .5);
78
+ }
79
+
80
+ &:not(:last-child):not(.last-step) > .step-pad {
81
+ border-right: 1px solid var(--pacem-color-timeline-frame);
82
+
83
+ :--glows & {
84
+ border-right: 1px dashed rgb(from var(--pacem-color-timeline-frame) r g b / 50%);
85
+ }
86
+ }
87
+
88
+ > .pacem-panel > .panel-heading {
89
+ padding-top: 0;
90
+ padding-bottom: 0;
91
+ line-height: var(--pacem--tl-sz);
92
+ overflow: hidden;
93
+ white-space: nowrap;
94
+ text-overflow: ellipsis;
95
+ }
96
+
97
+ /* coloring */
98
+ &.step-disabled { --pacem--tl: var(--pacem-color-disabled); --pacem--tl-ink: var(--pacem-color-disabled-inverse); }
99
+ &.step-success { --pacem--tl: var(--pacem-color-success); --pacem--tl-ink: var(--pacem-color-success-inverse); }
100
+ &.step-danger { --pacem--tl: var(--pacem-color-danger); --pacem--tl-ink: var(--pacem-color-danger-inverse); }
101
+ &.step-error { --pacem--tl: var(--pacem-color-error); --pacem--tl-ink: var(--pacem-color-danger-inverse); }
102
+ &.step-accent { --pacem--tl: var(--pacem-color-accent); --pacem--tl-ink: var(--pacem-color-accent-inverse); }
103
+ &.step-warning { --pacem--tl: var(--pacem-color-warning); --pacem--tl-ink: var(--pacem-color-warning-inverse); }
104
+ &.step-primary { --pacem--tl: var(--pacem-color-primary); --pacem--tl-ink: var(--pacem-color-primary-inverse); }
105
+ }
106
+ }