stagecraft 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/AGENT.md +792 -0
  2. package/LICENSE +21 -0
  3. package/README.md +210 -0
  4. package/bin/cli.js +51 -0
  5. package/bin/export.js +137 -0
  6. package/bin/init.js +52 -0
  7. package/bin/lib/edit-ops.js +405 -0
  8. package/bin/serve.js +278 -0
  9. package/dist/stagecraft.bundle.css +4443 -0
  10. package/dist/stagecraft.bundle.js +7621 -0
  11. package/dist/themes/brand.bundle.css +5262 -0
  12. package/dist/themes/neon.bundle.css +5289 -0
  13. package/dist/themes/paper.bundle.css +5276 -0
  14. package/dist/themes/phosphor.bundle.css +4443 -0
  15. package/dist/themes/shopware.bundle.css +5850 -0
  16. package/examples/closing-card.js +74 -0
  17. package/examples/orchestration-graph.js +156 -0
  18. package/examples/terminal-log.js +109 -0
  19. package/examples/token-stream.js +96 -0
  20. package/examples/whoami.js +90 -0
  21. package/package.json +41 -0
  22. package/src/components/activity-list.js +75 -0
  23. package/src/components/agenda.js +79 -0
  24. package/src/components/bar-chart.js +162 -0
  25. package/src/components/before-after.js +135 -0
  26. package/src/components/bento.js +73 -0
  27. package/src/components/big-number.js +87 -0
  28. package/src/components/callout.js +75 -0
  29. package/src/components/checklist.js +81 -0
  30. package/src/components/code-block.js +141 -0
  31. package/src/components/code-diff.js +98 -0
  32. package/src/components/compare.js +85 -0
  33. package/src/components/counter.js +80 -0
  34. package/src/components/cta.js +69 -0
  35. package/src/components/cycle.js +146 -0
  36. package/src/components/definition.js +96 -0
  37. package/src/components/donut-chart.js +179 -0
  38. package/src/components/full-image.js +82 -0
  39. package/src/components/funnel.js +111 -0
  40. package/src/components/gauge.js +147 -0
  41. package/src/components/heatmap.js +141 -0
  42. package/src/components/image-grid.js +80 -0
  43. package/src/components/image-text.js +96 -0
  44. package/src/components/kinetic-text.js +72 -0
  45. package/src/components/kpi.js +106 -0
  46. package/src/components/line-chart.js +215 -0
  47. package/src/components/manifesto.js +104 -0
  48. package/src/components/marquee.js +63 -0
  49. package/src/components/matrix2x2.js +151 -0
  50. package/src/components/pillars.js +80 -0
  51. package/src/components/pricing.js +90 -0
  52. package/src/components/process-flow.js +133 -0
  53. package/src/components/progress.js +136 -0
  54. package/src/components/punchline.js +82 -0
  55. package/src/components/pyramid.js +107 -0
  56. package/src/components/qanda.js +60 -0
  57. package/src/components/quote.js +70 -0
  58. package/src/components/roadmap.js +130 -0
  59. package/src/components/section-card.js +45 -0
  60. package/src/components/shift-arrow.js +41 -0
  61. package/src/components/spark-line.js +147 -0
  62. package/src/components/spotlight.js +85 -0
  63. package/src/components/statement.js +106 -0
  64. package/src/components/stats.js +91 -0
  65. package/src/components/steps.js +83 -0
  66. package/src/components/swot.js +110 -0
  67. package/src/components/team-grid.js +87 -0
  68. package/src/components/testimonial.js +99 -0
  69. package/src/components/timeline.js +91 -0
  70. package/src/components/tip.js +63 -0
  71. package/src/components/venn.js +198 -0
  72. package/src/edit-mode.js +1256 -0
  73. package/src/engine.js +823 -0
  74. package/src/helpers.js +169 -0
  75. package/src/transitions.js +101 -0
  76. package/starter/index.html +40 -0
  77. package/starter/slides/00-title.js +12 -0
  78. package/starter/stagecraft.config.js +8 -0
  79. package/themes/brand/base.css +4 -0
  80. package/themes/brand/components-business.css +173 -0
  81. package/themes/brand/components-chart.css +65 -0
  82. package/themes/brand/components-content.css +126 -0
  83. package/themes/brand/components-data.css +162 -0
  84. package/themes/brand/components-diagram.css +115 -0
  85. package/themes/brand/components-layout.css +112 -0
  86. package/themes/brand/components.css +46 -0
  87. package/themes/brand/manifest.json +20 -0
  88. package/themes/brand/tokens.css +20 -0
  89. package/themes/brand/transitions.css +4 -0
  90. package/themes/neon/base.css +10 -0
  91. package/themes/neon/components-business.css +189 -0
  92. package/themes/neon/components-chart.css +70 -0
  93. package/themes/neon/components-content.css +112 -0
  94. package/themes/neon/components-data.css +160 -0
  95. package/themes/neon/components-diagram.css +109 -0
  96. package/themes/neon/components-layout.css +87 -0
  97. package/themes/neon/components.css +87 -0
  98. package/themes/neon/manifest.json +21 -0
  99. package/themes/neon/tokens.css +17 -0
  100. package/themes/neon/transitions.css +13 -0
  101. package/themes/paper/base.css +9 -0
  102. package/themes/paper/components-business.css +196 -0
  103. package/themes/paper/components-chart.css +74 -0
  104. package/themes/paper/components-content.css +108 -0
  105. package/themes/paper/components-data.css +168 -0
  106. package/themes/paper/components-diagram.css +89 -0
  107. package/themes/paper/components-layout.css +105 -0
  108. package/themes/paper/components.css +60 -0
  109. package/themes/paper/manifest.json +10 -0
  110. package/themes/paper/tokens.css +21 -0
  111. package/themes/paper/transitions.css +11 -0
  112. package/themes/phosphor/base.css +511 -0
  113. package/themes/phosphor/components-business.css +818 -0
  114. package/themes/phosphor/components-chart.css +415 -0
  115. package/themes/phosphor/components-content.css +530 -0
  116. package/themes/phosphor/components-data.css +824 -0
  117. package/themes/phosphor/components-diagram.css +427 -0
  118. package/themes/phosphor/components-layout.css +450 -0
  119. package/themes/phosphor/components.css +223 -0
  120. package/themes/phosphor/manifest.json +11 -0
  121. package/themes/phosphor/tokens.css +17 -0
  122. package/themes/phosphor/transitions.css +213 -0
  123. package/themes/shopware/base.css +94 -0
  124. package/themes/shopware/components-business.css +344 -0
  125. package/themes/shopware/components-chart.css +121 -0
  126. package/themes/shopware/components-content.css +169 -0
  127. package/themes/shopware/components-data.css +219 -0
  128. package/themes/shopware/components-diagram.css +129 -0
  129. package/themes/shopware/components-layout.css +166 -0
  130. package/themes/shopware/components.css +83 -0
  131. package/themes/shopware/manifest.json +21 -0
  132. package/themes/shopware/tokens.css +68 -0
  133. package/themes/shopware/transitions.css +22 -0
@@ -0,0 +1,415 @@
1
+ /* Stagecraft — Phosphor theme: chart/relationship component styles.
2
+ Used by Matrix2x2, BarChart, Progress, ProcessFlow, Venn. */
3
+
4
+ /* ============================================================
5
+ * Matrix2x2
6
+ * ============================================================ */
7
+ .matrix2x2 {
8
+ --matrix-size: min(72vh, 56vw, 880px);
9
+ --matrix-gap: 1px;
10
+ --matrix-pad: clamp(1rem, 2.2vw, 2rem);
11
+ width: var(--matrix-size);
12
+ height: var(--matrix-size);
13
+ display: grid;
14
+ grid-template-columns: auto 1fr;
15
+ grid-template-rows: 1fr auto;
16
+ gap: clamp(0.6rem, 1.4vw, 1.2rem);
17
+ }
18
+ .matrix2x2 .y-axis {
19
+ grid-column: 1; grid-row: 1;
20
+ display: flex;
21
+ flex-direction: column;
22
+ align-items: center;
23
+ justify-content: space-between;
24
+ writing-mode: vertical-rl;
25
+ transform: rotate(180deg);
26
+ font-size: 0.78rem;
27
+ letter-spacing: 0.25em;
28
+ text-transform: uppercase;
29
+ color: var(--dim);
30
+ padding: 0.4rem 0;
31
+ }
32
+ .matrix2x2 .y-axis .label {
33
+ font-weight: 500;
34
+ color: var(--fg);
35
+ letter-spacing: 0.18em;
36
+ }
37
+ .matrix2x2 .y-axis .lo,
38
+ .matrix2x2 .y-axis .hi {
39
+ font-variant-numeric: tabular-nums;
40
+ }
41
+ .matrix2x2 .grid {
42
+ grid-column: 2; grid-row: 1;
43
+ display: grid;
44
+ grid-template-columns: 1fr 1fr;
45
+ grid-template-rows: 1fr 1fr;
46
+ gap: var(--matrix-gap);
47
+ background: var(--dim-2);
48
+ border: 1px solid var(--dim-2);
49
+ position: relative;
50
+ }
51
+ .matrix2x2 .grid::before,
52
+ .matrix2x2 .grid::after {
53
+ content: '';
54
+ position: absolute;
55
+ background: var(--dim-2);
56
+ pointer-events: none;
57
+ }
58
+ .matrix2x2 .grid::before {
59
+ left: 0; right: 0; top: 50%; height: 1px; transform: translateY(-0.5px);
60
+ }
61
+ .matrix2x2 .grid::after {
62
+ top: 0; bottom: 0; left: 50%; width: 1px; transform: translateX(-0.5px);
63
+ }
64
+ .matrix2x2 .x-axis {
65
+ grid-column: 2; grid-row: 2;
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: space-between;
69
+ font-size: 0.78rem;
70
+ letter-spacing: 0.25em;
71
+ text-transform: uppercase;
72
+ color: var(--dim);
73
+ padding: 0.4rem 0.2rem 0;
74
+ }
75
+ .matrix2x2 .x-axis .label {
76
+ font-weight: 500;
77
+ color: var(--fg);
78
+ letter-spacing: 0.18em;
79
+ }
80
+ .matrix2x2 .quadrant {
81
+ position: relative;
82
+ padding: var(--matrix-pad);
83
+ background: var(--bg);
84
+ display: flex;
85
+ flex-direction: column;
86
+ gap: 0.6rem;
87
+ opacity: 0.45;
88
+ filter: saturate(0.5);
89
+ transition: opacity 600ms ease-out, filter 600ms ease-out,
90
+ background 600ms ease-out, box-shadow 600ms ease-out;
91
+ overflow: hidden;
92
+ }
93
+ .matrix2x2 .quadrant .q-label {
94
+ font-size: clamp(1rem, 1.6vw, 1.4rem);
95
+ font-weight: 500;
96
+ letter-spacing: -0.01em;
97
+ color: var(--fg);
98
+ line-height: 1.15;
99
+ }
100
+ .matrix2x2 .quadrant .q-body {
101
+ font-size: clamp(0.85rem, 1.15vw, 1rem);
102
+ color: var(--dim);
103
+ line-height: 1.5;
104
+ }
105
+ .matrix2x2 .quadrant .q-tag {
106
+ position: absolute;
107
+ top: 0.6rem;
108
+ right: 0.8rem;
109
+ font-size: 0.65rem;
110
+ letter-spacing: 0.3em;
111
+ text-transform: uppercase;
112
+ color: var(--dim);
113
+ opacity: 0.6;
114
+ }
115
+ .matrix2x2 .quadrant.active {
116
+ opacity: 1;
117
+ filter: none;
118
+ background: color-mix(in srgb, var(--q-color, var(--accent)) 8%, var(--bg));
119
+ box-shadow: inset 0 0 0 1px var(--q-color, var(--accent));
120
+ }
121
+ .matrix2x2 .quadrant.active .q-label { color: var(--fg); }
122
+ .matrix2x2 .quadrant.active .q-tag { color: var(--q-color, var(--accent)); opacity: 1; }
123
+
124
+ /* ============================================================
125
+ * BarChart
126
+ * ============================================================ */
127
+ .barchart {
128
+ --bar-thickness: clamp(1.6rem, 3vw, 2.4rem);
129
+ --bar-gap: clamp(0.9rem, 1.6vw, 1.4rem);
130
+ --bar-color: var(--accent);
131
+ --bar-track: var(--dim-2);
132
+ width: min(1100px, 92vw);
133
+ display: flex;
134
+ flex-direction: column;
135
+ gap: var(--bar-gap);
136
+ }
137
+ .barchart.vertical {
138
+ flex-direction: row;
139
+ align-items: flex-end;
140
+ justify-content: center;
141
+ gap: clamp(1.5rem, 3vw, 2.6rem);
142
+ height: min(60vh, 480px);
143
+ }
144
+ .barchart .bar-row {
145
+ display: grid;
146
+ grid-template-columns: minmax(7rem, 14ch) 1fr auto;
147
+ align-items: center;
148
+ gap: clamp(0.8rem, 1.6vw, 1.4rem);
149
+ opacity: 0;
150
+ transform: translateX(-10px);
151
+ transition: opacity 500ms ease-out, transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
152
+ }
153
+ .barchart .bar-row.in, .barchart .bar-row.shown { opacity: 1; transform: translateX(0); }
154
+ .barchart .bar-label {
155
+ font-size: clamp(0.95rem, 1.3vw, 1.15rem);
156
+ color: var(--fg);
157
+ letter-spacing: 0.02em;
158
+ text-align: right;
159
+ font-variant-numeric: tabular-nums;
160
+ }
161
+ .barchart .bar-track {
162
+ height: var(--bar-thickness);
163
+ background: var(--bar-track);
164
+ position: relative;
165
+ overflow: hidden;
166
+ }
167
+ .barchart .bar-fill {
168
+ position: absolute;
169
+ inset: 0 auto 0 0;
170
+ width: 0%;
171
+ background: var(--bar-color);
172
+ transition: width 1200ms cubic-bezier(0.16, 1, 0.3, 1);
173
+ box-shadow: 0 0 18px color-mix(in srgb, var(--bar-color) 60%, transparent);
174
+ }
175
+ .barchart .bar-value {
176
+ font-size: clamp(0.95rem, 1.3vw, 1.15rem);
177
+ color: var(--bar-color);
178
+ font-weight: 500;
179
+ font-variant-numeric: tabular-nums;
180
+ letter-spacing: -0.01em;
181
+ min-width: 4ch;
182
+ }
183
+ /* vertical orientation */
184
+ .barchart.vertical .bar-row {
185
+ display: flex;
186
+ flex-direction: column-reverse;
187
+ align-items: center;
188
+ justify-content: flex-start;
189
+ height: 100%;
190
+ gap: 0.6rem;
191
+ min-width: clamp(3rem, 6vw, 5rem);
192
+ transform: translateY(10px);
193
+ }
194
+ .barchart.vertical .bar-row.in,
195
+ .barchart.vertical .bar-row.shown { transform: translateY(0); }
196
+ .barchart.vertical .bar-label { text-align: center; }
197
+ .barchart.vertical .bar-track {
198
+ width: var(--bar-thickness);
199
+ height: 100%;
200
+ }
201
+ .barchart.vertical .bar-fill {
202
+ inset: auto 0 0 0;
203
+ width: 100%;
204
+ height: 0%;
205
+ transition: height 1200ms cubic-bezier(0.16, 1, 0.3, 1);
206
+ }
207
+ .barchart .bar-row.accent { --bar-color: var(--accent); }
208
+ .barchart .bar-row.amber { --bar-color: var(--amber); }
209
+ .barchart .bar-row.blue { --bar-color: var(--blue); }
210
+ .barchart .bar-row.red { --bar-color: var(--red); }
211
+ .barchart .bar-row.dim { --bar-color: var(--dim); }
212
+
213
+ /* ============================================================
214
+ * Progress
215
+ * ============================================================ */
216
+ .progress-list {
217
+ width: min(1000px, 92vw);
218
+ display: flex;
219
+ flex-direction: column;
220
+ gap: clamp(1.1rem, 2vw, 1.8rem);
221
+ }
222
+ .progress-row {
223
+ --prog-color: var(--accent);
224
+ display: grid;
225
+ grid-template-columns: minmax(8rem, 16ch) 1fr 5ch;
226
+ gap: clamp(0.8rem, 1.8vw, 1.6rem);
227
+ align-items: center;
228
+ opacity: 0;
229
+ transform: translateY(8px);
230
+ transition: opacity 500ms ease-out, transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
231
+ }
232
+ .progress-row.in, .progress-row.shown { opacity: 1; transform: translateY(0); }
233
+ .progress-row.accent { --prog-color: var(--accent); }
234
+ .progress-row.amber { --prog-color: var(--amber); }
235
+ .progress-row.blue { --prog-color: var(--blue); }
236
+ .progress-row.red { --prog-color: var(--red); }
237
+ .progress-label {
238
+ font-size: clamp(0.95rem, 1.3vw, 1.15rem);
239
+ color: var(--fg);
240
+ letter-spacing: 0.02em;
241
+ }
242
+ .progress-track {
243
+ height: clamp(0.5rem, 0.9vw, 0.7rem);
244
+ background: var(--dim-2);
245
+ position: relative;
246
+ overflow: hidden;
247
+ border-radius: 2px;
248
+ }
249
+ .progress-fill {
250
+ position: absolute;
251
+ inset: 0 auto 0 0;
252
+ width: 0%;
253
+ background: var(--prog-color);
254
+ transition: width 1400ms cubic-bezier(0.16, 1, 0.3, 1);
255
+ box-shadow: 0 0 14px color-mix(in srgb, var(--prog-color) 55%, transparent);
256
+ }
257
+ .progress-value {
258
+ font-size: clamp(0.95rem, 1.25vw, 1.1rem);
259
+ color: var(--prog-color);
260
+ font-variant-numeric: tabular-nums;
261
+ font-weight: 500;
262
+ text-align: right;
263
+ }
264
+
265
+ /* ============================================================
266
+ * ProcessFlow
267
+ * ============================================================ */
268
+ .processflow {
269
+ --pf-card-bg: var(--bg-elevated);
270
+ --pf-card-border: var(--dim-2);
271
+ --pf-accent: var(--accent);
272
+ display: flex;
273
+ align-items: stretch;
274
+ justify-content: center;
275
+ gap: clamp(0.8rem, 1.8vw, 1.6rem);
276
+ width: min(1300px, 94vw);
277
+ flex-wrap: wrap;
278
+ }
279
+ .processflow.vertical {
280
+ flex-direction: column;
281
+ align-items: center;
282
+ width: min(620px, 92vw);
283
+ }
284
+ .processflow .pf-step {
285
+ --pf-color: var(--fg);
286
+ flex: 1 1 0;
287
+ min-width: clamp(8rem, 14vw, 13rem);
288
+ max-width: 18rem;
289
+ background: var(--pf-card-bg);
290
+ border: 1px solid var(--pf-card-border);
291
+ padding: clamp(1rem, 1.8vw, 1.5rem);
292
+ display: flex;
293
+ flex-direction: column;
294
+ align-items: flex-start;
295
+ gap: 0.7rem;
296
+ opacity: 0;
297
+ transform: translateY(12px);
298
+ transition: opacity 500ms ease-out, transform 500ms cubic-bezier(0.16, 1, 0.3, 1),
299
+ border-color 400ms ease-out, box-shadow 400ms ease-out;
300
+ }
301
+ .processflow .pf-step.in,
302
+ .processflow .pf-step.shown { opacity: 1; transform: translateY(0); }
303
+ .processflow .pf-step.accent { --pf-color: var(--accent); border-color: color-mix(in srgb, var(--accent) 40%, var(--dim-2)); }
304
+ .processflow .pf-step.amber { --pf-color: var(--amber); border-color: color-mix(in srgb, var(--amber) 40%, var(--dim-2)); }
305
+ .processflow .pf-step.blue { --pf-color: var(--blue); border-color: color-mix(in srgb, var(--blue) 40%, var(--dim-2)); }
306
+ .processflow .pf-step.red { --pf-color: var(--red); border-color: color-mix(in srgb, var(--red) 40%, var(--dim-2)); }
307
+ .processflow .pf-icon {
308
+ font-size: clamp(1.6rem, 2.6vw, 2.2rem);
309
+ color: var(--pf-color);
310
+ line-height: 1;
311
+ }
312
+ .processflow .pf-icon .material-symbols-outlined {
313
+ font-size: inherit;
314
+ font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
315
+ }
316
+ .processflow .pf-label {
317
+ font-size: clamp(1rem, 1.4vw, 1.25rem);
318
+ font-weight: 500;
319
+ color: var(--fg);
320
+ letter-spacing: -0.005em;
321
+ line-height: 1.25;
322
+ }
323
+ .processflow .pf-body {
324
+ font-size: clamp(0.85rem, 1.1vw, 1rem);
325
+ color: var(--dim);
326
+ line-height: 1.5;
327
+ }
328
+ .processflow .pf-arrow {
329
+ flex: 0 0 auto;
330
+ align-self: center;
331
+ display: flex;
332
+ align-items: center;
333
+ justify-content: center;
334
+ font-size: clamp(1.2rem, 2vw, 1.8rem);
335
+ color: var(--pf-accent);
336
+ opacity: 0;
337
+ transform: translateX(-6px);
338
+ transition: opacity 500ms ease-out, transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
339
+ min-width: 1.8rem;
340
+ }
341
+ .processflow .pf-arrow.in,
342
+ .processflow .pf-arrow.shown { opacity: 1; transform: translateX(0); }
343
+ .processflow.vertical .pf-arrow {
344
+ transform: translateY(-6px);
345
+ }
346
+ .processflow.vertical .pf-arrow.in,
347
+ .processflow.vertical .pf-arrow.shown { transform: translateY(0); }
348
+ .processflow .pf-arrow.pulse {
349
+ animation: pf-pulse 900ms ease-out;
350
+ }
351
+ @keyframes pf-pulse {
352
+ 0% { color: var(--pf-accent); text-shadow: 0 0 0 transparent; transform: scale(1); }
353
+ 40% { color: var(--fg); text-shadow: 0 0 18px color-mix(in srgb, var(--pf-accent) 80%, transparent); transform: scale(1.18); }
354
+ 100% { color: var(--pf-accent); text-shadow: 0 0 0 transparent; transform: scale(1); }
355
+ }
356
+
357
+ /* ============================================================
358
+ * Venn
359
+ * ============================================================ */
360
+ .venn {
361
+ --venn-size: min(70vh, 56vw, 760px);
362
+ width: var(--venn-size);
363
+ height: calc(var(--venn-size) * 0.78);
364
+ position: relative;
365
+ }
366
+ .venn svg {
367
+ width: 100%;
368
+ height: 100%;
369
+ display: block;
370
+ overflow: visible;
371
+ }
372
+ .venn .v-circle {
373
+ fill-opacity: 0.18;
374
+ stroke-width: 1.5;
375
+ opacity: 0;
376
+ transform-origin: center;
377
+ transform: scale(0.94);
378
+ transition: opacity 700ms ease-out, transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
379
+ }
380
+ .venn .v-circle.in {
381
+ opacity: 1;
382
+ transform: scale(1);
383
+ }
384
+ .venn .v-label {
385
+ position: absolute;
386
+ text-align: center;
387
+ transform: translate(-50%, -50%);
388
+ font-size: clamp(0.85rem, 1.2vw, 1.05rem);
389
+ letter-spacing: 0.02em;
390
+ line-height: 1.3;
391
+ color: var(--fg);
392
+ opacity: 0;
393
+ transition: opacity 600ms ease-out;
394
+ max-width: 14ch;
395
+ pointer-events: none;
396
+ }
397
+ .venn .v-label.in { opacity: 1; }
398
+ .venn .v-label.set { font-weight: 500; }
399
+ .venn .v-label.set .name {
400
+ display: inline-block;
401
+ color: var(--vl-color, var(--fg));
402
+ background: var(--bg);
403
+ padding: 0.1rem 0.4rem;
404
+ letter-spacing: 0.04em;
405
+ }
406
+ .venn .v-label.overlap {
407
+ color: var(--fg);
408
+ font-size: clamp(0.78rem, 1vw, 0.95rem);
409
+ letter-spacing: 0.06em;
410
+ }
411
+ .venn .v-label.overlap > span {
412
+ background: color-mix(in srgb, var(--bg) 78%, transparent);
413
+ padding: 0.1rem 0.35rem;
414
+ display: inline-block;
415
+ }