@trebired/configs 0.4.0 → 0.6.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/.trebired/code-discipline/{config.ts → preset_01/config.ts} +1 -1
- package/.trebired/frontend/preset_01/action_control.ts +43 -0
- package/.trebired/frontend/preset_01/button.ts +203 -0
- package/.trebired/frontend/preset_01/choice.ts +19 -0
- package/.trebired/frontend/preset_01/components.ts +21 -0
- package/.trebired/frontend/preset_01/config.ts +40 -0
- package/.trebired/frontend/preset_01/data.ts +33 -0
- package/.trebired/frontend/preset_01/disclosure.ts +10 -0
- package/.trebired/frontend/preset_01/dot.ts +5 -0
- package/.trebired/frontend/preset_01/dropdown.ts +25 -0
- package/.trebired/frontend/preset_01/feedback.ts +56 -0
- package/.trebired/frontend/preset_01/input.ts +31 -0
- package/.trebired/frontend/preset_01/loader.ts +8 -0
- package/.trebired/frontend/preset_01/marquee.ts +19 -0
- package/.trebired/frontend/preset_01/media.ts +63 -0
- package/.trebired/frontend/preset_01/overlays.ts +111 -0
- package/.trebired/frontend/preset_01/palette.ts +111 -0
- package/.trebired/frontend/preset_01/pill.ts +12 -0
- package/.trebired/frontend/preset_01/primitives.ts +39 -0
- package/.trebired/frontend/preset_01/progress.ts +11 -0
- package/.trebired/frontend/preset_01/quote.ts +13 -0
- package/.trebired/frontend/preset_01/shell.ts +251 -0
- package/.trebired/frontend/preset_01/steps.ts +6 -0
- package/.trebired/frontend/preset_01/surfaces.ts +276 -0
- package/.trebired/frontend/preset_01/systems.ts +20 -0
- package/.trebired/frontend/preset_01/tabs.ts +42 -0
- package/.trebired/frontend/preset_01/text_link.ts +37 -0
- package/.trebired/frontend/preset_01/theme.ts +51 -0
- package/.trebired/frontend/preset_01/toggle.ts +17 -0
- package/.trebired/frontend/preset_01/tokens.ts +37 -0
- package/.trebired/frontend/preset_01/typography.ts +20 -0
- package/.trebired/frontend/preset_01/upload.ts +108 -0
- package/.trebired/frontend/preset_01/wizard.ts +6 -0
- package/CHANGELOG.md +12 -0
- package/README.md +41 -9
- package/package.json +20 -11
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { semantic, token, ui } from "./tokens";
|
|
2
|
+
|
|
3
|
+
export const surfaces = {
|
|
4
|
+
brandCanvas: {
|
|
5
|
+
art: {
|
|
6
|
+
border: "1px solid color-mix(in srgb, currentColor 24%, transparent)",
|
|
7
|
+
},
|
|
8
|
+
caption: {
|
|
9
|
+
fontSize: ".8rem",
|
|
10
|
+
gap: "0.75rem",
|
|
11
|
+
},
|
|
12
|
+
clear: {
|
|
13
|
+
space: "2rem",
|
|
14
|
+
},
|
|
15
|
+
guide: {
|
|
16
|
+
border: "1px dashed color-mix(in srgb, currentColor 38%, transparent)",
|
|
17
|
+
},
|
|
18
|
+
measure: {
|
|
19
|
+
color: "color-mix(in srgb, currentColor 62%, transparent)",
|
|
20
|
+
fontSize: "0.68rem",
|
|
21
|
+
offset: "0.75rem",
|
|
22
|
+
},
|
|
23
|
+
root: {
|
|
24
|
+
gap: "0.75rem",
|
|
25
|
+
},
|
|
26
|
+
spec: {
|
|
27
|
+
color: "var(--tbf-text-muted, #666)",
|
|
28
|
+
fontSize: "0.72rem",
|
|
29
|
+
},
|
|
30
|
+
stage: {
|
|
31
|
+
background: "var(--tbf-page, #fff)",
|
|
32
|
+
border: "var(--border-width, 1px) solid color-mix(in srgb, currentColor 14%, transparent)",
|
|
33
|
+
color: "var(--tbf-text, #000)",
|
|
34
|
+
minHeight: "14rem",
|
|
35
|
+
padding: "2.5rem",
|
|
36
|
+
radius: "var(--tbf-radius, 0)",
|
|
37
|
+
},
|
|
38
|
+
tones: {
|
|
39
|
+
accent: {
|
|
40
|
+
background: "var(--tbf-focus, #000)",
|
|
41
|
+
color: "var(--tbf-page, #fff)",
|
|
42
|
+
},
|
|
43
|
+
inverse: {
|
|
44
|
+
background: "var(--tbf-ink, #000)",
|
|
45
|
+
color: "var(--tbf-page, #fff)",
|
|
46
|
+
},
|
|
47
|
+
muted: {
|
|
48
|
+
background: "var(--tbf-surface-muted, #eee)",
|
|
49
|
+
color: "var(--tbf-text, #000)",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
button: {
|
|
54
|
+
root: {
|
|
55
|
+
background: token.color("gray", 900),
|
|
56
|
+
border: token.border(semantic.borderSurface2),
|
|
57
|
+
color: semantic.textColor,
|
|
58
|
+
fontFamily: "var(--tbf-font-sans, \"Inter\", sans-serif)",
|
|
59
|
+
fontSize: "12px",
|
|
60
|
+
fontWeight: "600",
|
|
61
|
+
gap: "8px",
|
|
62
|
+
height: "28px",
|
|
63
|
+
letterSpacing: "var(--tbf-ui-btn-root-letter-spacing, normal)",
|
|
64
|
+
minHeight: "var(--tbf-surf-btn-root-height, var(--tbf-ui-btn-root-height, 28px))",
|
|
65
|
+
padding: "0 12px",
|
|
66
|
+
paddingBlock: "0",
|
|
67
|
+
radius: ui.radiusMd,
|
|
68
|
+
textTransform: "var(--tbf-ui-btn-root-text-transform, none)",
|
|
69
|
+
transition: [
|
|
70
|
+
"var(--tbf-ui-btn-root-transition, background-color var(--tbf-transition-fast, .18s)",
|
|
71
|
+
"var(--tbf-transition-easing, ease), border-color var(--tbf-transition-fast, .18s)",
|
|
72
|
+
"var(--tbf-transition-easing, ease), color var(--tbf-transition-fast, .18s)",
|
|
73
|
+
"var(--tbf-transition-easing, ease))",
|
|
74
|
+
].join(" "),
|
|
75
|
+
whiteSpace: "var(--tbf-ui-btn-root-white-space, nowrap)",
|
|
76
|
+
width: "var(--tbf-ui-btn-root-width, auto)",
|
|
77
|
+
},
|
|
78
|
+
sizes: {
|
|
79
|
+
lg: {
|
|
80
|
+
fontSize: "13px",
|
|
81
|
+
height: "34px",
|
|
82
|
+
paddingInline: "14px",
|
|
83
|
+
},
|
|
84
|
+
md: {
|
|
85
|
+
fontSize: "12px",
|
|
86
|
+
height: "28px",
|
|
87
|
+
paddingInline: "12px",
|
|
88
|
+
},
|
|
89
|
+
sm: {
|
|
90
|
+
fontSize: "11px",
|
|
91
|
+
height: "24px",
|
|
92
|
+
paddingInline: "9px",
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
slots: {
|
|
96
|
+
icon: {
|
|
97
|
+
color: token.color("gray", 300),
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
states: {
|
|
101
|
+
disabled: {
|
|
102
|
+
opacity: "0.55",
|
|
103
|
+
},
|
|
104
|
+
hover: {
|
|
105
|
+
background: token.color("gray", 800),
|
|
106
|
+
borderColor: token.color("gray", 700),
|
|
107
|
+
color: token.color("gray", 200),
|
|
108
|
+
iconColor: "currentColor",
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
tones: {
|
|
112
|
+
highlight: {
|
|
113
|
+
background: token.color("gray", 100),
|
|
114
|
+
borderColor: token.color("gray", 100),
|
|
115
|
+
color: token.color("gray", 950),
|
|
116
|
+
iconColor: token.color("gray", 800),
|
|
117
|
+
states: {
|
|
118
|
+
hover: {
|
|
119
|
+
background: token.color("gray", 200),
|
|
120
|
+
borderColor: token.color("gray", 100),
|
|
121
|
+
color: token.color("gray", 900),
|
|
122
|
+
iconColor: "currentColor",
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
card: {
|
|
129
|
+
body: {
|
|
130
|
+
divider: {
|
|
131
|
+
background: semantic.borderSurface1,
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
iconRadius: "var(--radius-md, var(--tbf-radius, 0))",
|
|
135
|
+
root: {
|
|
136
|
+
background: semantic.backgroundPage,
|
|
137
|
+
border: token.border(semantic.borderSurface1),
|
|
138
|
+
color: "var(--tbf-text, #000)",
|
|
139
|
+
minHeight: ui.heightXs4,
|
|
140
|
+
padding: "14px 14px 12px 14px",
|
|
141
|
+
radius: ui.radiusLg,
|
|
142
|
+
transition: [
|
|
143
|
+
"background-color var(--tbf-transition-fast, .18s) var(--tbf-transition-easing, ease),",
|
|
144
|
+
"border-color var(--tbf-transition-fast, .18s) var(--tbf-transition-easing, ease), color",
|
|
145
|
+
"var(--tbf-transition-fast, .18s) var(--tbf-transition-easing, ease)",
|
|
146
|
+
].join(" "),
|
|
147
|
+
},
|
|
148
|
+
row: {
|
|
149
|
+
background: "transparent",
|
|
150
|
+
border: token.border(semantic.borderSurface1),
|
|
151
|
+
padding: "9px 12px",
|
|
152
|
+
radius: ui.radiusLg,
|
|
153
|
+
states: {
|
|
154
|
+
excluded: {
|
|
155
|
+
border: "var(--border-surface-1)",
|
|
156
|
+
},
|
|
157
|
+
hover: {
|
|
158
|
+
background: token.color("gray", 900),
|
|
159
|
+
},
|
|
160
|
+
selected: {
|
|
161
|
+
background: semantic.backgroundSurface1,
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
sectionPadding: "var(--tbf-surf-card-root-padding, 12px)",
|
|
166
|
+
sizes: {
|
|
167
|
+
lg: {
|
|
168
|
+
padding: "var(--tbf-gap-lg, 40px)",
|
|
169
|
+
},
|
|
170
|
+
md: {
|
|
171
|
+
padding: "var(--tbf-gap-md, 24px)",
|
|
172
|
+
},
|
|
173
|
+
sm: {
|
|
174
|
+
padding: "var(--tbf-gap-sm, 12px)",
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
states: {
|
|
178
|
+
hover: {
|
|
179
|
+
border: "var(--tbf-focus, #000)",
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
title: {
|
|
183
|
+
fontSize: "15px",
|
|
184
|
+
fontWeight: "700",
|
|
185
|
+
margin: "0 0 10px 0",
|
|
186
|
+
},
|
|
187
|
+
tones: {
|
|
188
|
+
accent: {
|
|
189
|
+
color: "var(--tbf-page, #fff)",
|
|
190
|
+
states: {
|
|
191
|
+
hover: {
|
|
192
|
+
background: "var(--tbf-ui-card-tone-accent-state-hover-bg, transparent)",
|
|
193
|
+
border: "var(--tbf-ui-card-tone-accent-state-hover-border, currentColor)",
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
textMuted: "color-mix(in srgb, currentColor 70%, transparent)",
|
|
197
|
+
},
|
|
198
|
+
inverse: {
|
|
199
|
+
color: "var(--tbf-page, #fff)",
|
|
200
|
+
states: {
|
|
201
|
+
hover: {
|
|
202
|
+
background: "var(--tbf-ui-card-tone-inverse-state-hover-bg, transparent)",
|
|
203
|
+
border: "var(--tbf-ui-card-tone-inverse-state-hover-border, currentColor)",
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
textMuted: "color-mix(in srgb, currentColor 62%, transparent)",
|
|
207
|
+
},
|
|
208
|
+
muted: {
|
|
209
|
+
color: "var(--tbf-text, #000)",
|
|
210
|
+
states: {
|
|
211
|
+
hover: {
|
|
212
|
+
background: "var(--tbf-ui-card-tone-muted-state-hover-bg, transparent)",
|
|
213
|
+
border: "var(--tbf-ui-card-tone-muted-state-hover-border, currentColor)",
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
surface: {
|
|
218
|
+
background: "var(--tbf-ui-card-tone-surface-bg, var(--tbf-ui-card-root-bg, transparent))",
|
|
219
|
+
border: "var(--tbf-ui-card-tone-surface-border, currentColor)",
|
|
220
|
+
states: {
|
|
221
|
+
hover: {
|
|
222
|
+
background: "var(--tbf-ui-card-tone-surface-state-hover-bg, transparent)",
|
|
223
|
+
border: "var(--tbf-ui-card-tone-surface-state-hover-border, currentColor)",
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
hairline: {
|
|
230
|
+
cell: {
|
|
231
|
+
background: "var(--tbf-page, #fff)",
|
|
232
|
+
backgroundInverse: "var(--tbf-ink, #000)",
|
|
233
|
+
color: "var(--tbf-text, #000)",
|
|
234
|
+
colorInverse: "var(--tbf-page, #fff)",
|
|
235
|
+
padding: "var(--tbf-gap-md, 24px)",
|
|
236
|
+
textMuted: "color-mix(in srgb, currentColor 62%, transparent)",
|
|
237
|
+
textMutedInverse: "color-mix(in srgb, currentColor 62%, transparent)",
|
|
238
|
+
},
|
|
239
|
+
motion: {
|
|
240
|
+
duration: "0.3s",
|
|
241
|
+
easing: "ease",
|
|
242
|
+
},
|
|
243
|
+
root: {
|
|
244
|
+
background: "var(--tbf-border, color-mix(in srgb, currentColor 10%, transparent))",
|
|
245
|
+
border: "var(--tbf-border-width, 1px) solid var(--tbf-border, currentColor)",
|
|
246
|
+
gap: "var(--border-width, 1px)",
|
|
247
|
+
min: "16rem",
|
|
248
|
+
radius: "var(--radius-lg, var(--tbf-radius, 0))",
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
logo: {
|
|
252
|
+
root: {
|
|
253
|
+
height: "2rem",
|
|
254
|
+
max: "100%",
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
motif: {
|
|
258
|
+
root: {
|
|
259
|
+
color: "inherit",
|
|
260
|
+
opacity: "1",
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
scrollbar: {
|
|
264
|
+
root: {
|
|
265
|
+
gutter: "stable",
|
|
266
|
+
scheme: "light dark",
|
|
267
|
+
thumb: "auto",
|
|
268
|
+
track: "transparent",
|
|
269
|
+
width: "auto",
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
visibility: {
|
|
273
|
+
duration: "320ms",
|
|
274
|
+
easing: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
275
|
+
},
|
|
276
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FrontendConfig } from "@trebired/frontend/config";
|
|
2
|
+
|
|
3
|
+
export const systems = {
|
|
4
|
+
actions: true,
|
|
5
|
+
flash: true,
|
|
6
|
+
fullscreen: true,
|
|
7
|
+
icons: true,
|
|
8
|
+
inputs: true,
|
|
9
|
+
layer: true,
|
|
10
|
+
language: true,
|
|
11
|
+
layout: true,
|
|
12
|
+
modal: true,
|
|
13
|
+
popover: true,
|
|
14
|
+
primitives: true,
|
|
15
|
+
progress: true,
|
|
16
|
+
sidebar: true,
|
|
17
|
+
surface: true,
|
|
18
|
+
theme: true,
|
|
19
|
+
tooltip: true,
|
|
20
|
+
} satisfies FrontendConfig["systems"];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { semantic, token, ui } from "./tokens";
|
|
2
|
+
|
|
3
|
+
export const primitiveTabs = {
|
|
4
|
+
list: {
|
|
5
|
+
gap: "0.5rem",
|
|
6
|
+
},
|
|
7
|
+
motion: {
|
|
8
|
+
duration: "290ms",
|
|
9
|
+
easing: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
10
|
+
offset: "8px",
|
|
11
|
+
},
|
|
12
|
+
nestedIndicatorColor: "var(--tbf-text-muted, currentColor)",
|
|
13
|
+
responsive: {
|
|
14
|
+
mobile: {
|
|
15
|
+
fontSize: "0.8125rem",
|
|
16
|
+
height: "2.25rem",
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
root: {
|
|
20
|
+
background: "transparent",
|
|
21
|
+
border: token.border(semantic.borderSurface1),
|
|
22
|
+
color: semantic.textColor,
|
|
23
|
+
fontFamily: ui.fontSans,
|
|
24
|
+
fontSize: "14px",
|
|
25
|
+
fontWeight: "inherit",
|
|
26
|
+
height: "34px",
|
|
27
|
+
paddingInline: "14px",
|
|
28
|
+
radius: ui.radiusSm,
|
|
29
|
+
},
|
|
30
|
+
states: {
|
|
31
|
+
active: {
|
|
32
|
+
background: semantic.backgroundSurface1,
|
|
33
|
+
borderColor: semantic.borderSurface1,
|
|
34
|
+
color: "var(--tbf-text, currentColor)",
|
|
35
|
+
},
|
|
36
|
+
hover: {
|
|
37
|
+
background: semantic.backgroundSurface1,
|
|
38
|
+
borderColor: semantic.borderSurface1,
|
|
39
|
+
color: "var(--tbf-text, currentColor)",
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { semantic } from "./tokens";
|
|
2
|
+
|
|
3
|
+
export const primitiveTextLink = {
|
|
4
|
+
motion: {
|
|
5
|
+
duration: ".3s",
|
|
6
|
+
easing: "ease",
|
|
7
|
+
},
|
|
8
|
+
root: {
|
|
9
|
+
color: semantic.textMuted,
|
|
10
|
+
decorationUnderlineOffset: ".1875rem",
|
|
11
|
+
fontWeight: "inherit",
|
|
12
|
+
letterSpacing: "normal",
|
|
13
|
+
textDecorationColor: "currentColor",
|
|
14
|
+
textDecorationLine: "underline",
|
|
15
|
+
textDecorationStyle: "dotted",
|
|
16
|
+
textDecorationThickness: "1px",
|
|
17
|
+
textTransform: "none",
|
|
18
|
+
textUnderlineOffset: "3px",
|
|
19
|
+
underlineColor: "currentColor",
|
|
20
|
+
underlineGap: "calc(.35em + .375rem)",
|
|
21
|
+
underlineHeight: "max(1px, .0625em)",
|
|
22
|
+
underlineMidline: ".325em",
|
|
23
|
+
underlineRadius: ".3em",
|
|
24
|
+
},
|
|
25
|
+
states: {
|
|
26
|
+
active: {
|
|
27
|
+
color: "var(--tbf-ui-link-state-hover-color, var(--tbf-text, currentColor))",
|
|
28
|
+
underlineColor: "var(--tbf-ui-link-root-underline-color, currentColor)",
|
|
29
|
+
},
|
|
30
|
+
hover: {
|
|
31
|
+
color: semantic.textColor,
|
|
32
|
+
decorationLine: "var(--tbf-ui-link-root-decoration-line, none)",
|
|
33
|
+
textDecorationColor: "currentColor",
|
|
34
|
+
textDecorationStyle: "solid",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
FrontendDesignConfig,
|
|
3
|
+
FrontendRuntimeConfig,
|
|
4
|
+
FrontendThemeConfig,
|
|
5
|
+
} from "@trebired/frontend/config";
|
|
6
|
+
|
|
7
|
+
import { token } from "./tokens";
|
|
8
|
+
|
|
9
|
+
export const semantics = {
|
|
10
|
+
selection: {
|
|
11
|
+
bg: token.colorMix(token.color("gray", 500), "50%"),
|
|
12
|
+
text: token.color("gray", 200),
|
|
13
|
+
},
|
|
14
|
+
status: {
|
|
15
|
+
error: { color: token.color("red", 500) },
|
|
16
|
+
success: { color: token.color("green", 500) },
|
|
17
|
+
warning: { color: token.color("yellow", 500) },
|
|
18
|
+
},
|
|
19
|
+
tone: {
|
|
20
|
+
blue: token.color("blue", 600),
|
|
21
|
+
cyan: token.color("cyan", 600),
|
|
22
|
+
error: token.color("red", 600),
|
|
23
|
+
gray: token.color("gray", 600),
|
|
24
|
+
green: token.color("green", 600),
|
|
25
|
+
info: token.color("blue", 600),
|
|
26
|
+
muted: token.color("gray", 600),
|
|
27
|
+
purple: token.color("ruby", 600),
|
|
28
|
+
red: token.color("red", 600),
|
|
29
|
+
success: token.color("green", 600),
|
|
30
|
+
warning: token.color("yellow", 600),
|
|
31
|
+
yellow: token.color("yellow", 600),
|
|
32
|
+
},
|
|
33
|
+
targetMin: "1.5rem",
|
|
34
|
+
} satisfies NonNullable<FrontendDesignConfig["semantics"]>;
|
|
35
|
+
|
|
36
|
+
export const theme = {
|
|
37
|
+
dark: "dark",
|
|
38
|
+
defaultMode: "dark",
|
|
39
|
+
light: "light",
|
|
40
|
+
modes: {
|
|
41
|
+
dark: { scheme: "dark" },
|
|
42
|
+
light: { scheme: "light" },
|
|
43
|
+
},
|
|
44
|
+
} satisfies FrontendThemeConfig;
|
|
45
|
+
|
|
46
|
+
export const runtime = {
|
|
47
|
+
progress: {
|
|
48
|
+
color: token.color("gray", 600),
|
|
49
|
+
},
|
|
50
|
+
theme,
|
|
51
|
+
} satisfies FrontendRuntimeConfig;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { token } from "./tokens";
|
|
2
|
+
|
|
3
|
+
export const primitiveToggle = {
|
|
4
|
+
active: {
|
|
5
|
+
color: token.color("gray", 100),
|
|
6
|
+
},
|
|
7
|
+
motion: {
|
|
8
|
+
duration: "140ms",
|
|
9
|
+
easing: "ease",
|
|
10
|
+
},
|
|
11
|
+
thumb: {
|
|
12
|
+
background: token.color("gray", 400),
|
|
13
|
+
},
|
|
14
|
+
track: {
|
|
15
|
+
background: token.color("gray", 100),
|
|
16
|
+
},
|
|
17
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createFrontendTokenHelpers } from "@trebired/frontend/config";
|
|
2
|
+
|
|
3
|
+
import { palette } from "./palette";
|
|
4
|
+
|
|
5
|
+
const token = createFrontendTokenHelpers(palette);
|
|
6
|
+
|
|
7
|
+
const semantic = {
|
|
8
|
+
backgroundPage: token.semantic("background-page"),
|
|
9
|
+
backgroundSurface1: token.semantic("background-surface-1"),
|
|
10
|
+
backgroundSurface2: token.semantic("background-surface-2"),
|
|
11
|
+
borderSurface1: token.semantic("border-surface-1"),
|
|
12
|
+
borderSurface2: token.semantic("border-surface-2"),
|
|
13
|
+
focusColor: token.semantic("focus-color"),
|
|
14
|
+
scrollThumb: token.semantic("scroll-thumb"),
|
|
15
|
+
scrollThumbHover: token.semantic("scroll-thumb-hover"),
|
|
16
|
+
scrollTrack: token.semantic("scroll-track"),
|
|
17
|
+
surface1: token.semantic("surface-1"),
|
|
18
|
+
surface2: token.semantic("surface-2"),
|
|
19
|
+
textColor: token.semantic("text-color"),
|
|
20
|
+
textMuted: token.semantic("text-color-muted"),
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const ui = {
|
|
24
|
+
borderWidth: token.variable("border-width"),
|
|
25
|
+
fontSans: token.variable("tbf-font-sans", "\"Inter\", sans-serif"),
|
|
26
|
+
gapSm: token.variable("tbf-gap-sm"),
|
|
27
|
+
heightXs4: token.variable("height-xs4", "35px"),
|
|
28
|
+
radiusSm: token.variable("radius-sm"),
|
|
29
|
+
radiusMd: token.variable("radius-md", token.variable("tbf-radius", "0")),
|
|
30
|
+
radiusLg: token.variable("radius-lg", token.variable("tbf-radius", "0")),
|
|
31
|
+
transitionFast: token.variable(
|
|
32
|
+
"transition-fast",
|
|
33
|
+
token.variable("tbf-transition-fast", "120ms ease"),
|
|
34
|
+
),
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { semantic, token, ui };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const typography = {
|
|
2
|
+
indent: {
|
|
3
|
+
border: "var(--tbf-border-width, 1px) solid var(--tbf-border, currentColor)",
|
|
4
|
+
flow: "0px",
|
|
5
|
+
size: "var(--tbf-gap-md, 24px)",
|
|
6
|
+
},
|
|
7
|
+
label: {
|
|
8
|
+
caps: {
|
|
9
|
+
color: "var(--tbf-text-muted, #000)",
|
|
10
|
+
fontSize: "0.72rem",
|
|
11
|
+
fontWeight: "600",
|
|
12
|
+
letterSpacing: "normal",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
outline: {
|
|
16
|
+
color: "var(--tbf-text, #000)",
|
|
17
|
+
fill: "var(--tbf-page, #fff)",
|
|
18
|
+
width: "0.125rem",
|
|
19
|
+
},
|
|
20
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { semantic, token, ui } from "./tokens";
|
|
2
|
+
|
|
3
|
+
export const primitiveUpload = {
|
|
4
|
+
actions: {
|
|
5
|
+
gap: ui.gapSm,
|
|
6
|
+
},
|
|
7
|
+
content: {
|
|
8
|
+
gap: ui.gapSm,
|
|
9
|
+
},
|
|
10
|
+
cropper: {
|
|
11
|
+
actions: {
|
|
12
|
+
gap: ui.gapSm,
|
|
13
|
+
},
|
|
14
|
+
description: {
|
|
15
|
+
color: semantic.textMuted,
|
|
16
|
+
},
|
|
17
|
+
header: {
|
|
18
|
+
gap: "4px",
|
|
19
|
+
},
|
|
20
|
+
modal: {
|
|
21
|
+
maxHeight: "min(90vh, 920px)",
|
|
22
|
+
width: "min(960px, calc(100vw - 40px))",
|
|
23
|
+
},
|
|
24
|
+
rootGap: "var(--tbf-gap-md, 12px)",
|
|
25
|
+
stage: {
|
|
26
|
+
background: semantic.backgroundSurface1,
|
|
27
|
+
border: token.border(semantic.borderSurface1),
|
|
28
|
+
faceColor: token.colorMix(token.color("gray", 0), "14%"),
|
|
29
|
+
guideWidth: "1px",
|
|
30
|
+
height: "min(62vh, 640px)",
|
|
31
|
+
lineColor: token.color("gray", 0),
|
|
32
|
+
lineContrastColor: token.color("gray", 1000),
|
|
33
|
+
lineWidth: "1px",
|
|
34
|
+
minHeight: "320px",
|
|
35
|
+
overlayColor: token.colorMix(token.color("gray", 1000), "72%"),
|
|
36
|
+
pointBackground: token.color("gray", 0),
|
|
37
|
+
pointBorder: token.border(token.color("gray", 1000), "1px"),
|
|
38
|
+
pointInset: "0",
|
|
39
|
+
pointRadius: ui.radiusSm,
|
|
40
|
+
pointSize: "12px",
|
|
41
|
+
radius: ui.radiusLg,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
filename: {
|
|
45
|
+
fontSize: "0.95rem",
|
|
46
|
+
lineHeight: "1.15",
|
|
47
|
+
},
|
|
48
|
+
hint: {
|
|
49
|
+
color: semantic.textMuted,
|
|
50
|
+
fontSize: "0.92rem",
|
|
51
|
+
lineHeight: "1.15",
|
|
52
|
+
},
|
|
53
|
+
list: {
|
|
54
|
+
gap: "4px",
|
|
55
|
+
maxHeight: "5.25rem",
|
|
56
|
+
paddingLeft: "18px",
|
|
57
|
+
},
|
|
58
|
+
meta: {
|
|
59
|
+
gap: "0.5rem",
|
|
60
|
+
},
|
|
61
|
+
preview: {
|
|
62
|
+
background: semantic.backgroundSurface2,
|
|
63
|
+
border: token.border(semantic.borderSurface1),
|
|
64
|
+
emptyColor: semantic.textMuted,
|
|
65
|
+
emptyFontSize: "0.82rem",
|
|
66
|
+
emptyLineHeight: "1.1",
|
|
67
|
+
emptyPadding: "4px",
|
|
68
|
+
radius: ui.radiusLg,
|
|
69
|
+
roundRadius: "999px",
|
|
70
|
+
size: "64px",
|
|
71
|
+
},
|
|
72
|
+
responsive: {
|
|
73
|
+
mobile: {
|
|
74
|
+
actionsGap: "0.25rem",
|
|
75
|
+
cropperModalMaxHeight: "calc(100vh - 24px)",
|
|
76
|
+
cropperModalWidth: "calc(100vw - 24px)",
|
|
77
|
+
cropperStageHeight: "min(52vh, 420px)",
|
|
78
|
+
cropperStageMinHeight: "260px",
|
|
79
|
+
surfaceGap: "0.5rem",
|
|
80
|
+
surfacePadding: "0.5rem",
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
root: {
|
|
84
|
+
color: semantic.textColor,
|
|
85
|
+
gap: ui.gapSm,
|
|
86
|
+
},
|
|
87
|
+
surface: {
|
|
88
|
+
background: semantic.backgroundSurface1,
|
|
89
|
+
border: token.border(semantic.borderSurface1),
|
|
90
|
+
color: semantic.textColor,
|
|
91
|
+
gap: "12px",
|
|
92
|
+
minHeight: "72px",
|
|
93
|
+
padding: "12px",
|
|
94
|
+
radius: ui.radiusLg,
|
|
95
|
+
states: {
|
|
96
|
+
drag: {
|
|
97
|
+
background: semantic.backgroundSurface2,
|
|
98
|
+
borderColor: semantic.focusColor,
|
|
99
|
+
shadow: "0 0 0 2px var(--tbf-focus, #000)",
|
|
100
|
+
},
|
|
101
|
+
dropBorderStyle: "dashed",
|
|
102
|
+
hasFiles: {
|
|
103
|
+
borderStyle: "solid",
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
transition: "border-color .14s ease, background .14s ease, box-shadow .14s ease",
|
|
107
|
+
},
|
|
108
|
+
};
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@ All notable changes to `@trebired/configs` will be documented here.
|
|
|
4
4
|
|
|
5
5
|
This project follows semantic versioning once published.
|
|
6
6
|
|
|
7
|
+
## 0.6.0
|
|
8
|
+
|
|
9
|
+
- Breaking: every preset has a name under its tool. The Code Discipline baseline moved to `.trebired/code-discipline/preset_01/config.ts`, named `@trebired/configs/code-discipline/preset_01`, and the frontend preset to `.trebired/frontend/preset_01/config.ts`, named `@trebired/configs/frontend/preset_01`. The bare `@trebired/configs` and the package's root export are gone; tools resolve the names through `@trebired/utils`.
|
|
10
|
+
- Retargeted the Code Discipline preset at `@trebired/code-discipline` 8.0, the first line that reads named presets. 8.0.1 is its first published release.
|
|
11
|
+
- Set the touch-target floor in the frontend `preset_01` to the dense 1.5rem, so text inputs, dropdowns and buttons keep the preset's control heights.
|
|
12
|
+
- Retargeted the frontend `preset_01` at `@trebired/frontend` 29.11.0 and raised the peer range to `^29.11.0`.
|
|
13
|
+
|
|
14
|
+
## 0.5.0
|
|
15
|
+
|
|
16
|
+
- Added the `@trebired/frontend` preset at `.trebired/frontend/config.ts`. An application loads it with `presets: { use: ["@trebired/configs"] }`, the same shape as the Code Discipline preset. It sets fonts, icon packs, palette, semantic tokens, theme, runtime options, systems and every component token, motion included.
|
|
17
|
+
- Added `@trebired/frontend` `^29.10.0` as an optional peer dependency.
|
|
18
|
+
|
|
7
19
|
## 0.4.0
|
|
8
20
|
|
|
9
21
|
- Retargeted the preset at `@trebired/code-discipline` 7.2.0. It named 7.1.2, so every project loading this preset failed its gate once code-discipline reached 7.2.
|