@tasker-systems/temper-design 0.0.0-stage → 0.6.3
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.
- package/README.md +330 -2
- package/brand/mark.svg +4 -0
- package/brand/wordmark.svg +5 -0
- package/contract/base.css +221 -0
- package/contract/graph.css +53 -0
- package/contract/markdown.css +279 -0
- package/contract/region.css +98 -0
- package/contract/shadcn-bridge.css +86 -0
- package/contract/tailwind-roles.css +67 -0
- package/contract/tailwind.css +70 -0
- package/contract/theme.schema.json +444 -0
- package/dist/graph.d.ts +191 -0
- package/dist/graph.js +293 -0
- package/dist/handoff.d.ts +22 -0
- package/dist/handoff.js +70 -0
- package/dist/highlight.d.ts +2 -0
- package/dist/highlight.js +48 -0
- package/dist/links.d.ts +32 -0
- package/dist/links.js +65 -0
- package/dist/markdown.d.ts +23 -0
- package/dist/markdown.js +61 -0
- package/dist/omission.d.ts +81 -0
- package/dist/omission.js +84 -0
- package/dist/region.d.ts +16 -0
- package/dist/region.js +59 -0
- package/dist/sanitize.d.ts +22 -0
- package/dist/sanitize.js +205 -0
- package/dist/theme.d.ts +29 -0
- package/dist/theme.js +37 -0
- package/dist/vocabulary.d.ts +35 -0
- package/dist/vocabulary.js +74 -0
- package/dist/ways-in.d.ts +36 -0
- package/dist/ways-in.js +35 -0
- package/guard/colours.mjs +347 -0
- package/package.json +97 -4
- package/quiet-instrument/theme.css +66 -0
- package/quiet-instrument/theme.json +85 -0
- package/quiet-instrument-paper/theme.css +66 -0
- package/quiet-instrument-paper/theme.json +85 -0
- package/themes.json +14 -0
- package/toolchain/check.mjs +76 -0
- package/toolchain/majors.json +18 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/* The markdown recipe: how a rendered document reads, on every surface.
|
|
2
|
+
|
|
3
|
+
`rendering-agrees` — the package's `markdown` and `sanitize` modules decide what a document
|
|
4
|
+
becomes; this recipe decides how it looks. A surface wraps the sanitized HTML in one element,
|
|
5
|
+
|
|
6
|
+
<div class="md-body">{@html sanitized}</div>
|
|
7
|
+
|
|
8
|
+
and adds nothing that paints: a surface that restyles a heading or a table here is the drift
|
|
9
|
+
this recipe exists to prevent. Layout around the wrapper (width, margins) is the surface's.
|
|
10
|
+
|
|
11
|
+
The wrapper is the renderer's, outside the sanitized string; the sanitizer strips the classes a
|
|
12
|
+
document's author writes, so no document can reach these rules except through it. Fenced code
|
|
13
|
+
takes its token colours from `base.css`'s `.hljs` rules. Roles only — no literal colour
|
|
14
|
+
appears here. Import it into the same cascade layer as `base.css`: unlayered, it would
|
|
15
|
+
outrank a component's own utilities. */
|
|
16
|
+
|
|
17
|
+
.md-body {
|
|
18
|
+
font: 1rem/1.7 var(--tp-font-reading);
|
|
19
|
+
color: var(--tp-text-muted);
|
|
20
|
+
overflow-wrap: anywhere;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* ── Headings ─────────────────────────────────────────────────────── */
|
|
24
|
+
|
|
25
|
+
.md-body h1,
|
|
26
|
+
.md-body h2,
|
|
27
|
+
.md-body h3,
|
|
28
|
+
.md-body h4,
|
|
29
|
+
.md-body h5,
|
|
30
|
+
.md-body h6 {
|
|
31
|
+
font-family: var(--tp-font-reading);
|
|
32
|
+
color: var(--tp-text);
|
|
33
|
+
line-height: 1.3;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.md-body h1 {
|
|
37
|
+
font-size: 1.5rem;
|
|
38
|
+
font-weight: 400;
|
|
39
|
+
margin: 2rem 0 0.7rem;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.md-body h2 {
|
|
43
|
+
font-size: 1.25rem;
|
|
44
|
+
font-weight: 400;
|
|
45
|
+
margin: 1.8rem 0 0.6rem;
|
|
46
|
+
padding-bottom: 0.3rem;
|
|
47
|
+
border-bottom: 1px solid var(--tp-rule);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.md-body h3 {
|
|
51
|
+
font-size: 1.05rem;
|
|
52
|
+
font-weight: 600;
|
|
53
|
+
margin: 1.5rem 0 0.4rem;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.md-body h4,
|
|
57
|
+
.md-body h5,
|
|
58
|
+
.md-body h6 {
|
|
59
|
+
font-size: 0.95rem;
|
|
60
|
+
font-weight: 600;
|
|
61
|
+
margin: 1.2rem 0 0.3rem;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.md-body :is(h1, h2, h3, h4, h5, h6):first-child {
|
|
65
|
+
margin-top: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* ── Body text ────────────────────────────────────────────────────── */
|
|
69
|
+
|
|
70
|
+
.md-body p {
|
|
71
|
+
margin: 0 0 0.9rem;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.md-body > :last-child {
|
|
75
|
+
margin-bottom: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.md-body strong {
|
|
79
|
+
color: var(--tp-text);
|
|
80
|
+
font-weight: 600;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* ── Links ────────────────────────────────────────────────────────── */
|
|
84
|
+
|
|
85
|
+
.md-body a {
|
|
86
|
+
color: var(--tp-accent);
|
|
87
|
+
text-decoration: none;
|
|
88
|
+
border-bottom: 1px solid var(--tp-accent-line-soft);
|
|
89
|
+
transition: border-color var(--tp-motion-quick) var(--tp-motion-easing);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.md-body a:hover {
|
|
93
|
+
border-bottom-color: var(--tp-accent);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* ── Lists ────────────────────────────────────────────────────────── */
|
|
97
|
+
|
|
98
|
+
.md-body ul,
|
|
99
|
+
.md-body ol {
|
|
100
|
+
margin: 0 0 0.9rem;
|
|
101
|
+
padding-left: 1.5rem;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.md-body li {
|
|
105
|
+
margin-bottom: 0.25rem;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.md-body li::marker {
|
|
109
|
+
color: var(--tp-accent);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.md-body ul > li {
|
|
113
|
+
list-style-type: disc;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.md-body ol > li {
|
|
117
|
+
list-style-type: decimal;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.md-body li > ul,
|
|
121
|
+
.md-body li > ol {
|
|
122
|
+
margin-top: 0.25rem;
|
|
123
|
+
margin-bottom: 0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* ── Inline code ──────────────────────────────────────────────────── */
|
|
127
|
+
|
|
128
|
+
.md-body code {
|
|
129
|
+
font-family: var(--tp-font-doing);
|
|
130
|
+
font-size: 0.82em;
|
|
131
|
+
color: var(--tp-text);
|
|
132
|
+
background: var(--tp-surface-raised);
|
|
133
|
+
padding: 0.12em 0.35em;
|
|
134
|
+
border-radius: var(--tp-radius-chip);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* ── Code blocks ──────────────────────────────────────────────────── */
|
|
138
|
+
|
|
139
|
+
.md-body pre {
|
|
140
|
+
background: var(--tp-surface-raised);
|
|
141
|
+
border: 1px solid var(--tp-rule);
|
|
142
|
+
border-radius: var(--tp-radius-chip);
|
|
143
|
+
padding: 0.8rem 1rem;
|
|
144
|
+
margin: 0 0 0.9rem;
|
|
145
|
+
overflow-x: auto;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.md-body pre code {
|
|
149
|
+
background: none;
|
|
150
|
+
padding: 0;
|
|
151
|
+
color: var(--tp-text-muted);
|
|
152
|
+
font-size: 0.8rem;
|
|
153
|
+
line-height: 1.6;
|
|
154
|
+
overflow-wrap: normal;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* ── Blockquotes ──────────────────────────────────────────────────── */
|
|
158
|
+
|
|
159
|
+
.md-body blockquote {
|
|
160
|
+
border-left: 2px solid var(--tp-accent-line-soft);
|
|
161
|
+
margin: 0 0 0.9rem;
|
|
162
|
+
padding: 0.3rem 0 0.3rem 1.1rem;
|
|
163
|
+
color: var(--tp-text-subtle);
|
|
164
|
+
font-style: italic;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.md-body blockquote p:last-child {
|
|
168
|
+
margin-bottom: 0;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* ── Horizontal rules ─────────────────────────────────────────────── */
|
|
172
|
+
|
|
173
|
+
.md-body hr {
|
|
174
|
+
border: none;
|
|
175
|
+
border-top: 1px solid var(--tp-rule);
|
|
176
|
+
margin: 1.6rem 0;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* ── Tables ───────────────────────────────────────────────────────── */
|
|
180
|
+
|
|
181
|
+
.md-body table {
|
|
182
|
+
display: block;
|
|
183
|
+
max-width: 100%;
|
|
184
|
+
overflow-x: auto;
|
|
185
|
+
border-collapse: collapse;
|
|
186
|
+
margin: 0 0 0.9rem;
|
|
187
|
+
font: 0.85rem/1.5 var(--tp-font-ui);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.md-body th {
|
|
191
|
+
text-align: left;
|
|
192
|
+
padding: 0.45rem 0.7rem;
|
|
193
|
+
border-bottom: 1px solid var(--tp-rule-strong);
|
|
194
|
+
font: 0.62rem var(--tp-font-doing);
|
|
195
|
+
letter-spacing: var(--tp-tracking-strip);
|
|
196
|
+
text-transform: uppercase;
|
|
197
|
+
color: var(--tp-text-subtle);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.md-body td {
|
|
201
|
+
padding: 0.4rem 0.7rem;
|
|
202
|
+
border-bottom: 1px solid var(--tp-rule);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.md-body tr:last-child td {
|
|
206
|
+
border-bottom: none;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/* ── Refusals ─────────────────────────────────────────────────────── */
|
|
210
|
+
|
|
211
|
+
/* Both arrive inside the sanitized string — `REFUSAL_HTML` from the parse gate (`markdown`),
|
|
212
|
+
`md-withheld` from the sanitizer's image arm (`sanitize`). A verdict, not an alarm: the muted
|
|
213
|
+
register for a refusal; for a withheld fetch, the gave-up region's colours, marker and dotted
|
|
214
|
+
edge (`region.css`), because it is a wait the renderer chose not to make. */
|
|
215
|
+
.md-body .md-refusal {
|
|
216
|
+
color: var(--tp-text-subtle);
|
|
217
|
+
font-style: italic;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.md-body .md-withheld {
|
|
221
|
+
display: inline-block;
|
|
222
|
+
padding: 0.1rem 0.5rem;
|
|
223
|
+
border: 1px dotted var(--tp-region-gave-up);
|
|
224
|
+
border-radius: var(--tp-radius-chip);
|
|
225
|
+
background: var(--tp-region-gave-up-wash);
|
|
226
|
+
color: var(--tp-region-gave-up);
|
|
227
|
+
font: 0.75rem var(--tp-font-doing);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.md-body .md-withheld::before {
|
|
231
|
+
content: '⊘ ';
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* ── Body links temper did not vouch for ──────────────────────────── */
|
|
235
|
+
|
|
236
|
+
/* Set by the sanitize pass (`sanitize`), never by an author: `md-ref-*` is not admitted from
|
|
237
|
+
authored HTML. A resolved link is a plain link and takes no class. The two marks keep apart what
|
|
238
|
+
the region vocabulary keeps apart, on more than colour — each carries its own marker glyph and
|
|
239
|
+
its own edge:
|
|
240
|
+
absent temper answered, and there is nothing you can see — `empty`'s register; not a link
|
|
241
|
+
unchecked nothing was verified — `failed`'s register; still a link, since following it grants
|
|
242
|
+
nothing and the destination does its own read
|
|
243
|
+
Neither changes the text box: colour, an inline glyph and the link's existing bottom edge only —
|
|
244
|
+
no padding, border box or line height — so a mark never moves the prose it sits in. */
|
|
245
|
+
.md-body .md-ref-absent {
|
|
246
|
+
color: var(--tp-region-empty);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.md-body a.md-ref-unchecked {
|
|
250
|
+
color: var(--tp-region-failed);
|
|
251
|
+
border-bottom-style: dashed;
|
|
252
|
+
border-bottom-color: var(--tp-region-failed);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.md-body .md-ref-marker {
|
|
256
|
+
font-family: var(--tp-font-doing);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* The state's words for a screen reader, which reads neither the hover title nor the hidden
|
|
260
|
+
marker. Visually hidden, never `display: none` (that would hide it from assistive tech too). */
|
|
261
|
+
.md-body .md-ref-said {
|
|
262
|
+
position: absolute;
|
|
263
|
+
width: 1px;
|
|
264
|
+
height: 1px;
|
|
265
|
+
padding: 0;
|
|
266
|
+
margin: -1px;
|
|
267
|
+
overflow: hidden;
|
|
268
|
+
clip-path: inset(50%);
|
|
269
|
+
white-space: nowrap;
|
|
270
|
+
border: 0;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/* ── Images ───────────────────────────────────────────────────────── */
|
|
274
|
+
|
|
275
|
+
.md-body img {
|
|
276
|
+
max-width: 100%;
|
|
277
|
+
border-radius: var(--tp-radius-chip);
|
|
278
|
+
margin: 0.4rem 0 0.9rem;
|
|
279
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/* The region recipe: how arriving, empty, gave-up and failed look, on every surface.
|
|
2
|
+
|
|
3
|
+
`region-states-read-alike` — the four states are distinct signals, carried on more than
|
|
4
|
+
colour. The words, marker and ARIA role come from the package's `region` module; this recipe
|
|
5
|
+
carries the other two channels, colour and border, each four-way distinct:
|
|
6
|
+
|
|
7
|
+
arriving dashed edge, a pulsing marker unfinished
|
|
8
|
+
empty solid quiet edge, italic a settled fact about the reader's material
|
|
9
|
+
gave-up dotted edge a wait broken off, a decision the system owns
|
|
10
|
+
failed solid edge, heavier words will not resolve
|
|
11
|
+
|
|
12
|
+
A component composes it as
|
|
13
|
+
|
|
14
|
+
<p class="region-state" data-region="<state>" role="<role>">
|
|
15
|
+
<span class="region-marker" aria-hidden="true"><marker></span>
|
|
16
|
+
<span><words><span class="region-qualifier"><qualifier></span></span>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
and adds nothing of its own: a call site that restyles a state is the drift this recipe
|
|
20
|
+
exists to prevent. Roles only — no literal colour appears here. */
|
|
21
|
+
|
|
22
|
+
.region-state {
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: baseline;
|
|
25
|
+
gap: 8px;
|
|
26
|
+
margin: 0;
|
|
27
|
+
padding: 7px 9px;
|
|
28
|
+
border-left: 2px solid;
|
|
29
|
+
border-radius: 0 5px 5px 0;
|
|
30
|
+
font-family: var(--tp-font-ui);
|
|
31
|
+
font-size: 12.5px;
|
|
32
|
+
line-height: 1.5;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.region-marker {
|
|
36
|
+
flex: none;
|
|
37
|
+
font: 11px/1.4 var(--tp-font-doing);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.region-qualifier,
|
|
41
|
+
.region-detail {
|
|
42
|
+
font-weight: 400;
|
|
43
|
+
opacity: 0.85;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.region-detail {
|
|
47
|
+
margin-left: 0.35em;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.region-state[data-region="arriving"] {
|
|
51
|
+
border-left-style: dashed;
|
|
52
|
+
border-left-color: var(--tp-region-arriving);
|
|
53
|
+
background: var(--tp-region-arriving-wash);
|
|
54
|
+
color: var(--tp-region-arriving);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.region-state[data-region="arriving"] .region-marker {
|
|
58
|
+
animation: region-pulse 1.1s ease-in-out infinite;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.region-state[data-region="empty"] {
|
|
62
|
+
border-left-color: var(--tp-rule-strong);
|
|
63
|
+
background: var(--tp-region-empty-wash);
|
|
64
|
+
color: var(--tp-region-empty);
|
|
65
|
+
font-style: italic;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.region-state[data-region="gave-up"] {
|
|
69
|
+
border-left-style: dotted;
|
|
70
|
+
border-left-color: var(--tp-region-gave-up);
|
|
71
|
+
background: var(--tp-region-gave-up-wash);
|
|
72
|
+
color: var(--tp-region-gave-up);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.region-state[data-region="failed"] {
|
|
76
|
+
border-left-color: var(--tp-region-failed);
|
|
77
|
+
background: var(--tp-region-failed-wash);
|
|
78
|
+
color: var(--tp-region-failed);
|
|
79
|
+
font-weight: 600;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@keyframes region-pulse {
|
|
83
|
+
0%,
|
|
84
|
+
100% {
|
|
85
|
+
opacity: 0.35;
|
|
86
|
+
}
|
|
87
|
+
50% {
|
|
88
|
+
opacity: 1;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* The pulse is the one channel that is motion; a reader who has turned motion off keeps the
|
|
93
|
+
others. */
|
|
94
|
+
@media (prefers-reduced-motion: reduce) {
|
|
95
|
+
.region-state[data-region="arriving"] .region-marker {
|
|
96
|
+
animation: none;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* shadcn-svelte's variable names, answered from contract roles.
|
|
2
|
+
|
|
3
|
+
shadcn-svelte components (and json-render's shadcn-svelte catalog, which is built on
|
|
4
|
+
them) read `--background`, `--primary`, `--muted-foreground` and the rest. Pointing
|
|
5
|
+
those names at `--tp-*` roles means any active theme restyles them with no per-theme
|
|
6
|
+
work: a theme supplies roles once, and this file is the only place the two
|
|
7
|
+
vocabularies meet.
|
|
8
|
+
|
|
9
|
+
The bridge makes shadcn components legible in any theme. It does not make them speak
|
|
10
|
+
in temper's voice — a shadcn default Button is still a filled button, where temper's
|
|
11
|
+
primary action is a mono text action. Voice lives in temper's own components.
|
|
12
|
+
|
|
13
|
+
Import after tailwindcss and contract/tailwind.css. */
|
|
14
|
+
|
|
15
|
+
:root {
|
|
16
|
+
--background: var(--tp-ground);
|
|
17
|
+
--foreground: var(--tp-text);
|
|
18
|
+
--card: var(--tp-surface);
|
|
19
|
+
--card-foreground: var(--tp-text);
|
|
20
|
+
--popover: var(--tp-surface-raised);
|
|
21
|
+
--popover-foreground: var(--tp-text);
|
|
22
|
+
--primary: var(--tp-accent);
|
|
23
|
+
--primary-foreground: var(--tp-on-accent);
|
|
24
|
+
--secondary: var(--tp-surface-raised);
|
|
25
|
+
--secondary-foreground: var(--tp-text);
|
|
26
|
+
--muted: var(--tp-surface);
|
|
27
|
+
--muted-foreground: var(--tp-text-subtle);
|
|
28
|
+
/* shadcn's `accent` is a hover fill, not an accent colour. */
|
|
29
|
+
--accent: var(--tp-accent-hover);
|
|
30
|
+
--accent-foreground: var(--tp-text);
|
|
31
|
+
--destructive: var(--tp-danger);
|
|
32
|
+
--border: var(--tp-rule-strong);
|
|
33
|
+
--input: var(--tp-rule-strong);
|
|
34
|
+
--ring: var(--tp-focus);
|
|
35
|
+
--radius: var(--tp-radius-chip);
|
|
36
|
+
--chart-1: var(--tp-cat-1);
|
|
37
|
+
--chart-2: var(--tp-cat-2);
|
|
38
|
+
--chart-3: var(--tp-cat-3);
|
|
39
|
+
--chart-4: var(--tp-cat-4);
|
|
40
|
+
--chart-5: var(--tp-cat-5);
|
|
41
|
+
--sidebar: var(--tp-surface);
|
|
42
|
+
--sidebar-foreground: var(--tp-text-muted);
|
|
43
|
+
--sidebar-primary: var(--tp-accent);
|
|
44
|
+
--sidebar-primary-foreground: var(--tp-on-accent);
|
|
45
|
+
--sidebar-accent: var(--tp-accent-hover);
|
|
46
|
+
--sidebar-accent-foreground: var(--tp-text);
|
|
47
|
+
--sidebar-border: var(--tp-rule);
|
|
48
|
+
--sidebar-ring: var(--tp-focus);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@theme inline {
|
|
52
|
+
--color-background: var(--background);
|
|
53
|
+
--color-foreground: var(--foreground);
|
|
54
|
+
--color-card: var(--card);
|
|
55
|
+
--color-card-foreground: var(--card-foreground);
|
|
56
|
+
--color-popover: var(--popover);
|
|
57
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
58
|
+
--color-primary: var(--primary);
|
|
59
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
60
|
+
--color-secondary: var(--secondary);
|
|
61
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
62
|
+
--color-muted: var(--muted);
|
|
63
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
64
|
+
--color-accent: var(--accent);
|
|
65
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
66
|
+
--color-destructive: var(--destructive);
|
|
67
|
+
--color-border: var(--border);
|
|
68
|
+
--color-input: var(--input);
|
|
69
|
+
--color-ring: var(--ring);
|
|
70
|
+
--color-chart-1: var(--chart-1);
|
|
71
|
+
--color-chart-2: var(--chart-2);
|
|
72
|
+
--color-chart-3: var(--chart-3);
|
|
73
|
+
--color-chart-4: var(--chart-4);
|
|
74
|
+
--color-chart-5: var(--chart-5);
|
|
75
|
+
--color-sidebar: var(--sidebar);
|
|
76
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
77
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
78
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
79
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
80
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
81
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
82
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
83
|
+
--radius-sm: calc(var(--radius) - 1px);
|
|
84
|
+
--radius-md: var(--radius);
|
|
85
|
+
--radius-lg: calc(var(--radius) + 1px);
|
|
86
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/* Generated from contract/theme.schema.json by themes/scripts/themes.sh build. Do not edit.
|
|
2
|
+
The roles as utilities WITHOUT the default-palette reset: for a consumer still moving
|
|
3
|
+
off Tailwind's palette. Import after tailwindcss and before any theme.css. */
|
|
4
|
+
|
|
5
|
+
@theme inline {
|
|
6
|
+
--color-tp-ground: var(--tp-ground);
|
|
7
|
+
--color-tp-surface: var(--tp-surface);
|
|
8
|
+
--color-tp-surface-raised: var(--tp-surface-raised);
|
|
9
|
+
--color-tp-overlay: var(--tp-overlay);
|
|
10
|
+
--color-tp-text: var(--tp-text);
|
|
11
|
+
--color-tp-text-muted: var(--tp-text-muted);
|
|
12
|
+
--color-tp-text-subtle: var(--tp-text-subtle);
|
|
13
|
+
--color-tp-text-faint: var(--tp-text-faint);
|
|
14
|
+
--color-tp-rule: var(--tp-rule);
|
|
15
|
+
--color-tp-rule-strong: var(--tp-rule-strong);
|
|
16
|
+
--color-tp-accent: var(--tp-accent);
|
|
17
|
+
--color-tp-accent-muted: var(--tp-accent-muted);
|
|
18
|
+
--color-tp-accent-line: var(--tp-accent-line);
|
|
19
|
+
--color-tp-accent-line-soft: var(--tp-accent-line-soft);
|
|
20
|
+
--color-tp-accent-wash: var(--tp-accent-wash);
|
|
21
|
+
--color-tp-accent-hover: var(--tp-accent-hover);
|
|
22
|
+
--color-tp-on-accent: var(--tp-on-accent);
|
|
23
|
+
--color-tp-focus: var(--tp-focus);
|
|
24
|
+
--color-tp-notice: var(--tp-notice);
|
|
25
|
+
--color-tp-notice-wash: var(--tp-notice-wash);
|
|
26
|
+
--color-tp-success: var(--tp-success);
|
|
27
|
+
--color-tp-success-wash: var(--tp-success-wash);
|
|
28
|
+
--color-tp-danger: var(--tp-danger);
|
|
29
|
+
--color-tp-danger-wash: var(--tp-danger-wash);
|
|
30
|
+
--color-tp-pending: var(--tp-pending);
|
|
31
|
+
--color-tp-pending-wash: var(--tp-pending-wash);
|
|
32
|
+
--color-tp-region-arriving: var(--tp-region-arriving);
|
|
33
|
+
--color-tp-region-arriving-wash: var(--tp-region-arriving-wash);
|
|
34
|
+
--color-tp-region-empty: var(--tp-region-empty);
|
|
35
|
+
--color-tp-region-empty-wash: var(--tp-region-empty-wash);
|
|
36
|
+
--color-tp-region-gave-up: var(--tp-region-gave-up);
|
|
37
|
+
--color-tp-region-gave-up-wash: var(--tp-region-gave-up-wash);
|
|
38
|
+
--color-tp-region-failed: var(--tp-region-failed);
|
|
39
|
+
--color-tp-region-failed-wash: var(--tp-region-failed-wash);
|
|
40
|
+
--color-tp-author-human: var(--tp-author-human);
|
|
41
|
+
--color-tp-author-agent: var(--tp-author-agent);
|
|
42
|
+
--color-tp-cat-1: var(--tp-cat-1);
|
|
43
|
+
--color-tp-cat-2: var(--tp-cat-2);
|
|
44
|
+
--color-tp-cat-3: var(--tp-cat-3);
|
|
45
|
+
--color-tp-cat-4: var(--tp-cat-4);
|
|
46
|
+
--color-tp-cat-5: var(--tp-cat-5);
|
|
47
|
+
--color-tp-cat-6: var(--tp-cat-6);
|
|
48
|
+
--color-tp-cat-7: var(--tp-cat-7);
|
|
49
|
+
--color-tp-cat-8: var(--tp-cat-8);
|
|
50
|
+
--color-tp-cat-neutral: var(--tp-cat-neutral);
|
|
51
|
+
--color-tp-code-key: var(--tp-code-key);
|
|
52
|
+
--color-tp-code-string: var(--tp-code-string);
|
|
53
|
+
--color-tp-code-number: var(--tp-code-number);
|
|
54
|
+
--color-tp-code-comment: var(--tp-code-comment);
|
|
55
|
+
--font-tp-reading: var(--tp-font-reading);
|
|
56
|
+
--font-tp-doing: var(--tp-font-doing);
|
|
57
|
+
--font-tp-ui: var(--tp-font-ui);
|
|
58
|
+
--radius-tp-chip: var(--tp-radius-chip);
|
|
59
|
+
--radius-tp-panel: var(--tp-radius-panel);
|
|
60
|
+
--tracking-tp-label: var(--tp-tracking-label);
|
|
61
|
+
--tracking-tp-strip: var(--tp-tracking-strip);
|
|
62
|
+
--tracking-tp-eyebrow: var(--tp-tracking-eyebrow);
|
|
63
|
+
--tracking-tp-ui: var(--tp-tracking-ui);
|
|
64
|
+
--tracking-tp-mark: var(--tp-tracking-mark);
|
|
65
|
+
--default-transition-duration: var(--tp-motion-quick);
|
|
66
|
+
--default-transition-timing-function: var(--tp-motion-easing);
|
|
67
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/* Generated from contract/theme.schema.json by themes/scripts/themes.sh build. Do not edit.
|
|
2
|
+
Import after tailwindcss and before any theme.css. */
|
|
3
|
+
|
|
4
|
+
@theme {
|
|
5
|
+
--color-*: initial;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@theme inline {
|
|
9
|
+
--color-tp-ground: var(--tp-ground);
|
|
10
|
+
--color-tp-surface: var(--tp-surface);
|
|
11
|
+
--color-tp-surface-raised: var(--tp-surface-raised);
|
|
12
|
+
--color-tp-overlay: var(--tp-overlay);
|
|
13
|
+
--color-tp-text: var(--tp-text);
|
|
14
|
+
--color-tp-text-muted: var(--tp-text-muted);
|
|
15
|
+
--color-tp-text-subtle: var(--tp-text-subtle);
|
|
16
|
+
--color-tp-text-faint: var(--tp-text-faint);
|
|
17
|
+
--color-tp-rule: var(--tp-rule);
|
|
18
|
+
--color-tp-rule-strong: var(--tp-rule-strong);
|
|
19
|
+
--color-tp-accent: var(--tp-accent);
|
|
20
|
+
--color-tp-accent-muted: var(--tp-accent-muted);
|
|
21
|
+
--color-tp-accent-line: var(--tp-accent-line);
|
|
22
|
+
--color-tp-accent-line-soft: var(--tp-accent-line-soft);
|
|
23
|
+
--color-tp-accent-wash: var(--tp-accent-wash);
|
|
24
|
+
--color-tp-accent-hover: var(--tp-accent-hover);
|
|
25
|
+
--color-tp-on-accent: var(--tp-on-accent);
|
|
26
|
+
--color-tp-focus: var(--tp-focus);
|
|
27
|
+
--color-tp-notice: var(--tp-notice);
|
|
28
|
+
--color-tp-notice-wash: var(--tp-notice-wash);
|
|
29
|
+
--color-tp-success: var(--tp-success);
|
|
30
|
+
--color-tp-success-wash: var(--tp-success-wash);
|
|
31
|
+
--color-tp-danger: var(--tp-danger);
|
|
32
|
+
--color-tp-danger-wash: var(--tp-danger-wash);
|
|
33
|
+
--color-tp-pending: var(--tp-pending);
|
|
34
|
+
--color-tp-pending-wash: var(--tp-pending-wash);
|
|
35
|
+
--color-tp-region-arriving: var(--tp-region-arriving);
|
|
36
|
+
--color-tp-region-arriving-wash: var(--tp-region-arriving-wash);
|
|
37
|
+
--color-tp-region-empty: var(--tp-region-empty);
|
|
38
|
+
--color-tp-region-empty-wash: var(--tp-region-empty-wash);
|
|
39
|
+
--color-tp-region-gave-up: var(--tp-region-gave-up);
|
|
40
|
+
--color-tp-region-gave-up-wash: var(--tp-region-gave-up-wash);
|
|
41
|
+
--color-tp-region-failed: var(--tp-region-failed);
|
|
42
|
+
--color-tp-region-failed-wash: var(--tp-region-failed-wash);
|
|
43
|
+
--color-tp-author-human: var(--tp-author-human);
|
|
44
|
+
--color-tp-author-agent: var(--tp-author-agent);
|
|
45
|
+
--color-tp-cat-1: var(--tp-cat-1);
|
|
46
|
+
--color-tp-cat-2: var(--tp-cat-2);
|
|
47
|
+
--color-tp-cat-3: var(--tp-cat-3);
|
|
48
|
+
--color-tp-cat-4: var(--tp-cat-4);
|
|
49
|
+
--color-tp-cat-5: var(--tp-cat-5);
|
|
50
|
+
--color-tp-cat-6: var(--tp-cat-6);
|
|
51
|
+
--color-tp-cat-7: var(--tp-cat-7);
|
|
52
|
+
--color-tp-cat-8: var(--tp-cat-8);
|
|
53
|
+
--color-tp-cat-neutral: var(--tp-cat-neutral);
|
|
54
|
+
--color-tp-code-key: var(--tp-code-key);
|
|
55
|
+
--color-tp-code-string: var(--tp-code-string);
|
|
56
|
+
--color-tp-code-number: var(--tp-code-number);
|
|
57
|
+
--color-tp-code-comment: var(--tp-code-comment);
|
|
58
|
+
--font-tp-reading: var(--tp-font-reading);
|
|
59
|
+
--font-tp-doing: var(--tp-font-doing);
|
|
60
|
+
--font-tp-ui: var(--tp-font-ui);
|
|
61
|
+
--radius-tp-chip: var(--tp-radius-chip);
|
|
62
|
+
--radius-tp-panel: var(--tp-radius-panel);
|
|
63
|
+
--tracking-tp-label: var(--tp-tracking-label);
|
|
64
|
+
--tracking-tp-strip: var(--tp-tracking-strip);
|
|
65
|
+
--tracking-tp-eyebrow: var(--tp-tracking-eyebrow);
|
|
66
|
+
--tracking-tp-ui: var(--tp-tracking-ui);
|
|
67
|
+
--tracking-tp-mark: var(--tp-tracking-mark);
|
|
68
|
+
--default-transition-duration: var(--tp-motion-quick);
|
|
69
|
+
--default-transition-timing-function: var(--tp-motion-easing);
|
|
70
|
+
}
|