@texturehq/edges 1.33.1 → 1.34.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.
- package/README.md +57 -3
- package/dist/{RichTextEditor-CxrunTg7.d.cts → RichTextEditor-diZqy_s1.d.cts} +1 -1
- package/dist/{RichTextEditor-CxrunTg7.d.ts → RichTextEditor-diZqy_s1.d.ts} +1 -1
- package/dist/{TimeField-DRQshIHX.d.ts → TimeField-7pTUPh11.d.ts} +32 -17
- package/dist/{TimeField-WCmeiLu3.d.cts → TimeField-CqmVrAdn.d.cts} +32 -17
- package/dist/{colors-Cgs2MGZ8.d.ts → colors-CoULWZ5j.d.ts} +53 -18
- package/dist/{colors-DGRiGzgj.d.cts → colors-upTGgIQe.d.cts} +53 -18
- package/dist/form/index.cjs +1 -1
- package/dist/form/index.cjs.map +1 -1
- package/dist/form/index.d.cts +1 -1
- package/dist/form/index.d.ts +1 -1
- package/dist/form/index.js +1 -1
- package/dist/form/index.js.map +1 -1
- package/dist/{index-BqpWEc_N.d.ts → index-dofSwYId.d.cts} +5 -5
- package/dist/{index-BqpWEc_N.d.cts → index-dofSwYId.d.ts} +5 -5
- package/dist/index.cjs +10 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +161 -41
- package/dist/index.d.ts +161 -41
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/prose.css +202 -0
- package/dist/rhf/index.cjs +1 -1
- package/dist/rhf/index.cjs.map +1 -1
- package/dist/rhf/index.d.cts +2 -2
- package/dist/rhf/index.d.ts +2 -2
- package/dist/rhf/index.js +1 -1
- package/dist/rhf/index.js.map +1 -1
- package/dist/server.cjs +2 -2
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +2 -2
- package/dist/server.d.ts +2 -2
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/styles/computed.css +2 -2
- package/dist/styles/responsive-typography.css +9 -7
- package/dist/styles/theme-light-override.css +26 -15
- package/dist/styles.css +953 -877
- package/dist/theme.css +20 -7
- package/dist/typography.css +150 -0
- package/package.json +11 -13
- package/scripts/check-legacy-action-variants.mjs +96 -0
- package/scripts/check-legacy-font-colors.mjs +92 -0
- package/scripts/copy-assets.js +12 -0
- package/templates/claude-rules/.claude +5 -5
- package/templates/claude-rules/claude.md +5 -5
- package/templates/codex-rules/codex.md +5 -5
- package/dist/generated/tailwind-tokens-dark.css +0 -397
- package/dist/generated/tailwind-tokens-light.css +0 -611
- package/dist/generated/viz-runtime.css +0 -243
- package/scripts/generate-viz-runtime.js +0 -107
- package/scripts/validate-tokens.js +0 -176
package/dist/prose.css
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prose — @texturehq/edges-tokens
|
|
3
|
+
*
|
|
4
|
+
* Editorial composition styles for long-form content. Wrap any container in
|
|
5
|
+
* `.prose` and the descendant `h1`–`h6`, `p`, `ul`, `ol`, `blockquote`, `a`,
|
|
6
|
+
* `code`, and `hr` elements pick up the editorial type system, spacing
|
|
7
|
+
* rules, inline-element styling, and the 42rem reading column.
|
|
8
|
+
*
|
|
9
|
+
* Authors do not put role class names on individual elements — the wrapper
|
|
10
|
+
* owns them all. This is the canonical wrapper described on
|
|
11
|
+
* https://edges.texturehq.com/foundations/typography
|
|
12
|
+
*
|
|
13
|
+
* Import after `@texturehq/edges-tokens/css/light` so the referenced
|
|
14
|
+
* `--text-*`, `--color-*`, `--spacing-*`, and `--radius-*` custom
|
|
15
|
+
* properties are defined.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
.prose {
|
|
19
|
+
max-width: 42rem;
|
|
20
|
+
color: var(--color-text-primary);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* Size variants — apply alongside .prose. */
|
|
24
|
+
.prose.prose-sm {
|
|
25
|
+
max-width: 36rem;
|
|
26
|
+
}
|
|
27
|
+
.prose.prose-sm p,
|
|
28
|
+
.prose.prose-sm ul,
|
|
29
|
+
.prose.prose-sm ol,
|
|
30
|
+
.prose.prose-sm blockquote {
|
|
31
|
+
font: var(--text-body-md);
|
|
32
|
+
letter-spacing: var(--text-body-md-letter-spacing);
|
|
33
|
+
}
|
|
34
|
+
.prose.prose-lede p:first-child,
|
|
35
|
+
.prose.prose-lede > p:only-child {
|
|
36
|
+
font: var(--text-body-lg);
|
|
37
|
+
letter-spacing: var(--text-body-lg-letter-spacing);
|
|
38
|
+
color: var(--color-text-secondary);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Headings — Rethink Sans display roles with balanced wrapping. */
|
|
42
|
+
.prose h1 {
|
|
43
|
+
font: var(--text-display-lg);
|
|
44
|
+
letter-spacing: var(--text-display-lg-letter-spacing);
|
|
45
|
+
color: var(--color-text-primary);
|
|
46
|
+
text-wrap: balance;
|
|
47
|
+
margin: 0 0 var(--spacing-4);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.prose h2 {
|
|
51
|
+
font: var(--text-display-md);
|
|
52
|
+
letter-spacing: var(--text-display-md-letter-spacing);
|
|
53
|
+
color: var(--color-text-primary);
|
|
54
|
+
text-wrap: balance;
|
|
55
|
+
margin: var(--spacing-10) 0 var(--spacing-3);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.prose h3 {
|
|
59
|
+
font: var(--text-display-sm);
|
|
60
|
+
letter-spacing: var(--text-display-sm-letter-spacing);
|
|
61
|
+
color: var(--color-text-primary);
|
|
62
|
+
text-wrap: balance;
|
|
63
|
+
margin: var(--spacing-8) 0 var(--spacing-3);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.prose h4 {
|
|
67
|
+
font: var(--text-heading-lg);
|
|
68
|
+
letter-spacing: var(--text-heading-lg-letter-spacing);
|
|
69
|
+
color: var(--color-text-primary);
|
|
70
|
+
text-wrap: balance;
|
|
71
|
+
margin: var(--spacing-6) 0 var(--spacing-2);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.prose h5 {
|
|
75
|
+
font: var(--text-heading-md);
|
|
76
|
+
letter-spacing: var(--text-heading-md-letter-spacing);
|
|
77
|
+
color: var(--color-text-primary);
|
|
78
|
+
text-wrap: balance;
|
|
79
|
+
margin: var(--spacing-6) 0 var(--spacing-2);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.prose h6 {
|
|
83
|
+
font: var(--text-heading-sm);
|
|
84
|
+
letter-spacing: var(--text-heading-sm-letter-spacing);
|
|
85
|
+
color: var(--color-text-primary);
|
|
86
|
+
text-wrap: balance;
|
|
87
|
+
margin: var(--spacing-6) 0 var(--spacing-2);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Body paragraphs — 18px, 1.55, pretty-wrapped with hyphenation. */
|
|
91
|
+
.prose p {
|
|
92
|
+
font: var(--text-body-lg);
|
|
93
|
+
letter-spacing: var(--text-body-lg-letter-spacing);
|
|
94
|
+
color: var(--color-text-primary);
|
|
95
|
+
text-wrap: pretty;
|
|
96
|
+
hyphens: auto;
|
|
97
|
+
margin: 0 0 var(--spacing-5);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.prose > :last-child {
|
|
101
|
+
margin-bottom: 0;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Inline emphasis. */
|
|
105
|
+
.prose strong,
|
|
106
|
+
.prose b {
|
|
107
|
+
font-weight: 600;
|
|
108
|
+
color: var(--color-text-primary);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.prose em,
|
|
112
|
+
.prose i {
|
|
113
|
+
font-style: italic;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* Editorial links — iris with the long underline treatment. */
|
|
117
|
+
.prose a {
|
|
118
|
+
color: var(--color-iris-base);
|
|
119
|
+
font-weight: 500;
|
|
120
|
+
text-decoration: underline;
|
|
121
|
+
text-decoration-thickness: 1px;
|
|
122
|
+
text-underline-offset: 6px;
|
|
123
|
+
text-decoration-color: color-mix(in oklch, var(--color-iris-base), transparent 60%);
|
|
124
|
+
transition:
|
|
125
|
+
color 150ms ease,
|
|
126
|
+
text-decoration-color 150ms ease;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.prose a:hover,
|
|
130
|
+
.prose a:focus-visible {
|
|
131
|
+
color: color-mix(in oklch, var(--color-iris-base), black 15%);
|
|
132
|
+
text-decoration-color: currentcolor;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* Inline code — warm-tinted pill (the Slack/GitHub/Notion convention). */
|
|
136
|
+
.prose :where(code):not(pre code) {
|
|
137
|
+
font: var(--text-code);
|
|
138
|
+
letter-spacing: var(--text-code-letter-spacing);
|
|
139
|
+
font-size: 0.875em;
|
|
140
|
+
background: var(--color-rose-pastel);
|
|
141
|
+
color: var(--color-rose-base);
|
|
142
|
+
padding: 0 5px;
|
|
143
|
+
border-radius: var(--radius-sm);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Lists. */
|
|
147
|
+
.prose ul,
|
|
148
|
+
.prose ol {
|
|
149
|
+
padding-left: 1.5rem;
|
|
150
|
+
margin: 0 0 var(--spacing-5);
|
|
151
|
+
font: var(--text-body-lg);
|
|
152
|
+
letter-spacing: var(--text-body-lg-letter-spacing);
|
|
153
|
+
color: var(--color-text-primary);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.prose ul {
|
|
157
|
+
list-style: disc;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.prose ol {
|
|
161
|
+
list-style: decimal;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.prose li + li {
|
|
165
|
+
margin-top: 0.75rem;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Blockquote. */
|
|
169
|
+
.prose blockquote {
|
|
170
|
+
margin: 0 0 var(--spacing-5);
|
|
171
|
+
padding: 4px 0 4px 1.5rem;
|
|
172
|
+
border-left: 3px solid var(--color-border-default);
|
|
173
|
+
font: var(--text-body-lg);
|
|
174
|
+
letter-spacing: var(--text-body-lg-letter-spacing);
|
|
175
|
+
color: var(--color-text-primary);
|
|
176
|
+
font-style: italic;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* Horizontal rule — full reading column, generous vertical breathing room. */
|
|
180
|
+
.prose hr {
|
|
181
|
+
max-width: 42rem;
|
|
182
|
+
margin: var(--spacing-10) 0;
|
|
183
|
+
border: 0;
|
|
184
|
+
border-top: 1px solid var(--color-border-default);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* Neutral tone — text-primary links with the same underline treatment as
|
|
188
|
+
editorial (long offset, semi-transparent), just tinted from the body
|
|
189
|
+
color instead of iris. Use in product contexts (forms, in-app chrome,
|
|
190
|
+
banners) where the editorial iris would compete with the surface's
|
|
191
|
+
brand action color. */
|
|
192
|
+
.prose-neutral a {
|
|
193
|
+
color: var(--color-text-primary);
|
|
194
|
+
font-weight: 600;
|
|
195
|
+
text-decoration-color: color-mix(in oklch, var(--color-text-primary), transparent 60%);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.prose-neutral a:hover,
|
|
199
|
+
.prose-neutral a:focus-visible {
|
|
200
|
+
color: var(--color-text-primary);
|
|
201
|
+
text-decoration-color: currentcolor;
|
|
202
|
+
}
|