@brightweblabs/theme 0.4.0 → 0.5.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@brightweblabs/theme",
3
3
  "private": false,
4
- "version": "0.4.0",
4
+ "version": "0.5.0",
5
5
  "main": "./src/tint.ts",
6
6
  "types": "./src/tint.ts",
7
7
  "files": [
@@ -155,3 +155,147 @@
155
155
  background-color: var(--scrollbar-thumb-hover);
156
156
  }
157
157
  }
158
+
159
+ /* Portal surface typography.
160
+ Package components (app-shell, module-admin, module-crm, module-projects)
161
+ consume these directly, so they belong to the base theme rather than a
162
+ client theme file. Every value resolves through L1-L3 tokens, so a theme
163
+ restyles them by overriding tokens — never by redefining these recipes.
164
+ Unlike the text-ui-* scale these do set `color`, matching the surfaces the
165
+ packaged components were built against. */
166
+ @utility portal-micro {
167
+ font-family: var(--font-body);
168
+ font-size: var(--text-ui-micro);
169
+ font-weight: var(--font-weight-medium);
170
+ line-height: var(--type-leading-130);
171
+ /* MQ parity: apps/portal/app/globals.css:718. */
172
+ color: var(--muted-foreground);
173
+ }
174
+ @utility portal-label {
175
+ font-family: var(--font-body);
176
+ font-size: var(--text-ui-label);
177
+ font-weight: var(--font-weight-medium);
178
+ line-height: var(--type-leading-none);
179
+ text-transform: uppercase;
180
+ letter-spacing: var(--type-tracking-140);
181
+ /* MQ parity: apps/portal/app/globals.css:663. */
182
+ color: var(--muted-foreground);
183
+ }
184
+ @utility portal-meta {
185
+ font-family: var(--font-body);
186
+ font-size: var(--text-ui-meta);
187
+ font-weight: var(--font-weight-regular);
188
+ line-height: var(--type-leading-140);
189
+ /* MQ parity: apps/portal/app/globals.css:711. */
190
+ color: var(--muted-foreground);
191
+ }
192
+ @utility portal-body {
193
+ font-family: var(--font-body);
194
+ font-size: var(--text-ui-body);
195
+ font-weight: var(--font-weight-regular);
196
+ line-height: var(--type-leading-normal);
197
+ /* MQ parity: apps/portal/app/globals.css:705. */
198
+ color: var(--foreground);
199
+ }
200
+ @utility portal-card-title {
201
+ font-family: var(--font-body);
202
+ font-size: var(--text-ui-card-title);
203
+ font-weight: var(--font-weight-medium);
204
+ line-height: var(--type-leading-130);
205
+ letter-spacing: var(--type-tracking-n025);
206
+ /* MQ parity: apps/portal/app/globals.css:654. */
207
+ color: var(--foreground);
208
+ }
209
+ @utility portal-subhead {
210
+ font-family: var(--font-display);
211
+ font-size: var(--text-ui-subhead);
212
+ font-weight: var(--font-weight-bold);
213
+ line-height: var(--type-leading-tight);
214
+ letter-spacing: var(--type-tracking-n020);
215
+ /* MQ parity: apps/portal/app/globals.css:646. */
216
+ color: var(--foreground);
217
+ }
218
+ @utility portal-panel-title {
219
+ font-family: var(--font-display);
220
+ font-size: var(--text-ui-panel-title);
221
+ font-weight: var(--font-weight-bold);
222
+ line-height: var(--type-leading-120);
223
+ letter-spacing: var(--type-tracking-n020);
224
+ /* MQ parity: apps/portal/app/globals.css:636. */
225
+ color: var(--foreground);
226
+ }
227
+ @utility portal-heading {
228
+ font-family: var(--font-display);
229
+ font-size: var(--text-ui-heading);
230
+ font-weight: var(--font-weight-bold);
231
+ line-height: var(--type-leading-115);
232
+ letter-spacing: var(--type-tracking-n020);
233
+ /* MQ parity: apps/portal/app/globals.css:626. */
234
+ color: var(--foreground);
235
+ }
236
+ @utility portal-title-sm {
237
+ font-family: var(--font-display);
238
+ font-size: var(--text-ui-title-sm);
239
+ font-weight: var(--font-weight-heavy);
240
+ line-height: var(--type-leading-110);
241
+ letter-spacing: var(--type-tracking-n030);
242
+ /* MQ parity: apps/portal/app/globals.css:617. */
243
+ color: var(--foreground);
244
+ }
245
+ @utility portal-title {
246
+ font-family: var(--font-display);
247
+ font-size: var(--text-ui-title);
248
+ font-weight: var(--font-weight-heavy);
249
+ line-height: var(--type-leading-105);
250
+ letter-spacing: var(--type-tracking-n030);
251
+ /* MQ parity: apps/portal/app/globals.css:606. */
252
+ color: var(--foreground);
253
+ }
254
+ @utility portal-metric {
255
+ font-family: var(--font-mono);
256
+ font-variant-numeric: tabular-nums;
257
+ font-size: var(--text-ui-metric);
258
+ font-weight: var(--font-weight-heavy);
259
+ line-height: var(--type-leading-none);
260
+ letter-spacing: var(--type-tracking-n040);
261
+ /* MQ parity: apps/portal/app/globals.css:673. */
262
+ color: var(--foreground);
263
+ }
264
+ @utility portal-metric-xl {
265
+ font-family: var(--font-display);
266
+ font-variant-numeric: tabular-nums;
267
+ font-size: var(--text-ui-metric-xl);
268
+ font-weight: var(--font-weight-heavy);
269
+ line-height: var(--type-leading-095);
270
+ letter-spacing: var(--type-tracking-n040);
271
+ /* MQ parity: apps/portal/app/globals.css:697. */
272
+ color: var(--foreground);
273
+ }
274
+ @utility portal-metric-display {
275
+ font-family: var(--font-display);
276
+ font-variant-numeric: tabular-nums;
277
+ font-size: var(--text-ui-metric-display);
278
+ font-weight: var(--font-weight-heavy);
279
+ line-height: var(--type-leading-none);
280
+ letter-spacing: var(--type-tracking-n040);
281
+ /* MQ parity: apps/portal/app/globals.css:685. */
282
+ color: var(--foreground);
283
+ }
284
+
285
+ @utility portal-scroll {
286
+ overflow-y: auto;
287
+ overflow-y: overlay;
288
+ overflow-x: hidden;
289
+ scrollbar-width: thin;
290
+ scrollbar-color: var(--scrollbar-thumb) transparent;
291
+
292
+ &::-webkit-scrollbar { width: var(--scrollbar-size); height: var(--scrollbar-size); }
293
+ &::-webkit-scrollbar-track { background: transparent; }
294
+ &::-webkit-scrollbar-thumb {
295
+ background-color: var(--scrollbar-thumb);
296
+ border-radius: var(--radius-scrollbar);
297
+ }
298
+ &::-webkit-scrollbar-thumb:hover {
299
+ background-color: var(--scrollbar-thumb-hover);
300
+ }
301
+ }
@@ -15,141 +15,6 @@
15
15
  --mq-shadow-lift: var(--brand-shadow-lift);
16
16
  }
17
17
 
18
- @utility portal-micro {
19
- font-family: var(--font-body);
20
- font-size: var(--text-ui-micro);
21
- font-weight: var(--font-weight-medium);
22
- line-height: var(--type-leading-130);
23
- /* MQ parity: apps/portal/app/globals.css:718. */
24
- color: var(--muted-foreground);
25
- }
26
- @utility portal-label {
27
- font-family: var(--font-body);
28
- font-size: var(--text-ui-label);
29
- font-weight: var(--font-weight-medium);
30
- line-height: var(--type-leading-none);
31
- text-transform: uppercase;
32
- letter-spacing: var(--type-tracking-140);
33
- /* MQ parity: apps/portal/app/globals.css:663. */
34
- color: var(--muted-foreground);
35
- }
36
- @utility portal-meta {
37
- font-family: var(--font-body);
38
- font-size: var(--text-ui-meta);
39
- font-weight: var(--font-weight-regular);
40
- line-height: var(--type-leading-140);
41
- /* MQ parity: apps/portal/app/globals.css:711. */
42
- color: var(--muted-foreground);
43
- }
44
- @utility portal-body {
45
- font-family: var(--font-body);
46
- font-size: var(--text-ui-body);
47
- font-weight: var(--font-weight-regular);
48
- line-height: var(--type-leading-normal);
49
- /* MQ parity: apps/portal/app/globals.css:705. */
50
- color: var(--foreground);
51
- }
52
- @utility portal-card-title {
53
- font-family: var(--font-body);
54
- font-size: var(--text-ui-card-title);
55
- font-weight: var(--font-weight-medium);
56
- line-height: var(--type-leading-130);
57
- letter-spacing: var(--type-tracking-n025);
58
- /* MQ parity: apps/portal/app/globals.css:654. */
59
- color: var(--foreground);
60
- }
61
- @utility portal-subhead {
62
- font-family: var(--font-display);
63
- font-size: var(--text-ui-subhead);
64
- font-weight: var(--font-weight-bold);
65
- line-height: var(--type-leading-tight);
66
- letter-spacing: var(--type-tracking-n020);
67
- /* MQ parity: apps/portal/app/globals.css:646. */
68
- color: var(--foreground);
69
- }
70
- @utility portal-panel-title {
71
- font-family: var(--font-display);
72
- font-size: var(--text-ui-panel-title);
73
- font-weight: var(--font-weight-bold);
74
- line-height: var(--type-leading-120);
75
- letter-spacing: var(--type-tracking-n020);
76
- /* MQ parity: apps/portal/app/globals.css:636. */
77
- color: var(--foreground);
78
- }
79
- @utility portal-heading {
80
- font-family: var(--font-display);
81
- font-size: var(--text-ui-heading);
82
- font-weight: var(--font-weight-bold);
83
- line-height: var(--type-leading-115);
84
- letter-spacing: var(--type-tracking-n020);
85
- /* MQ parity: apps/portal/app/globals.css:626. */
86
- color: var(--foreground);
87
- }
88
- @utility portal-title-sm {
89
- font-family: var(--font-display);
90
- font-size: var(--text-ui-title-sm);
91
- font-weight: var(--font-weight-heavy);
92
- line-height: var(--type-leading-110);
93
- letter-spacing: var(--type-tracking-n030);
94
- /* MQ parity: apps/portal/app/globals.css:617. */
95
- color: var(--foreground);
96
- }
97
- @utility portal-title {
98
- font-family: var(--font-display);
99
- font-size: var(--text-ui-title);
100
- font-weight: var(--font-weight-heavy);
101
- line-height: var(--type-leading-105);
102
- letter-spacing: var(--type-tracking-n030);
103
- /* MQ parity: apps/portal/app/globals.css:606. */
104
- color: var(--foreground);
105
- }
106
- @utility portal-metric {
107
- font-family: var(--font-mono);
108
- font-variant-numeric: tabular-nums;
109
- font-size: var(--text-ui-metric);
110
- font-weight: var(--font-weight-heavy);
111
- line-height: var(--type-leading-none);
112
- letter-spacing: var(--type-tracking-n040);
113
- /* MQ parity: apps/portal/app/globals.css:673. */
114
- color: var(--foreground);
115
- }
116
- @utility portal-metric-xl {
117
- font-family: var(--font-display);
118
- font-variant-numeric: tabular-nums;
119
- font-size: var(--text-ui-metric-xl);
120
- font-weight: var(--font-weight-heavy);
121
- line-height: var(--type-leading-095);
122
- letter-spacing: var(--type-tracking-n040);
123
- /* MQ parity: apps/portal/app/globals.css:697. */
124
- color: var(--foreground);
125
- }
126
- @utility portal-metric-display {
127
- font-family: var(--font-display);
128
- font-variant-numeric: tabular-nums;
129
- font-size: var(--text-ui-metric-display);
130
- font-weight: var(--font-weight-heavy);
131
- line-height: var(--type-leading-none);
132
- letter-spacing: var(--type-tracking-n040);
133
- /* MQ parity: apps/portal/app/globals.css:685. */
134
- color: var(--foreground);
135
- }
136
- @utility portal-scroll {
137
- overflow-y: auto;
138
- overflow-y: overlay;
139
- overflow-x: hidden;
140
- scrollbar-width: thin;
141
- scrollbar-color: var(--scrollbar-thumb) transparent;
142
-
143
- &::-webkit-scrollbar { width: var(--scrollbar-size); height: var(--scrollbar-size); }
144
- &::-webkit-scrollbar-track { background: transparent; }
145
- &::-webkit-scrollbar-thumb {
146
- background-color: var(--scrollbar-thumb);
147
- border-radius: var(--radius-scrollbar);
148
- }
149
- &::-webkit-scrollbar-thumb:hover {
150
- background-color: var(--scrollbar-thumb-hover);
151
- }
152
- }
153
18
 
154
19
  @layer components {
155
20
  .heading-2 {