twntyx-css 1.0.9 → 1.0.11
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 +36 -1
- package/fonts/GazpachoBold.woff2 +0 -0
- package/fonts/GazpachoBoldItalic.woff2 +0 -0
- package/fonts/GazpachoMedium.woff2 +0 -0
- package/fonts/GazpachoMediumItalic.woff2 +0 -0
- package/fonts/GazpachoRegular.woff2 +0 -0
- package/fonts/GazpachoRegularItalic.woff2 +0 -0
- package/llm/components/chat-ai.json +6 -100
- package/llm/components/divider.json +19 -4
- package/llm/components/dot-wave-background.json +91 -0
- package/llm/examples/chat-ai.html +1 -1
- package/llm/examples/dot-wave-background.html +1 -0
- package/llm/index.json +23 -2
- package/package.json +2 -1
- package/styles/animation.css +9 -2
- package/styles/button.css +2 -2
- package/styles/chat.css +3 -1
- package/styles/datepicker.css +1 -1
- package/styles/divider.css +19 -5
- package/styles/font.css +23 -9
- package/styles/form-shared.css +3 -3
- package/styles/globals.css +1 -1
- package/styles/menu.css +1 -1
- package/styles/surface.css +5 -2
- package/styles/timeline.css +7 -10
- package/styles/typography.css +8 -0
- /package/fonts/{InstrumentSans-Italic-VariableFont_wdth,wght.ttf → InstrumentSans-Italic-Variable.ttf} +0 -0
- /package/fonts/{InstrumentSans-VariableFont_wdth,wght.ttf → InstrumentSans-Variable.ttf} +0 -0
package/README.md
CHANGED
|
@@ -28,12 +28,47 @@ npm install twntyx-css
|
|
|
28
28
|
|
|
29
29
|
### 3. Import the css
|
|
30
30
|
|
|
31
|
-
Import the
|
|
31
|
+
Import the framework stylesheets into your project. Load fonts before globals so bundlers resolve packaged font files correctly:
|
|
32
32
|
|
|
33
33
|
```css
|
|
34
|
+
@import url('twntyx-css/styles/font.css');
|
|
34
35
|
@import 'twntyx-css/styles/globals.css';
|
|
35
36
|
```
|
|
36
37
|
|
|
38
|
+
Or import both in your app entry:
|
|
39
|
+
|
|
40
|
+
```js
|
|
41
|
+
import 'twntyx-css/styles/font.css';
|
|
42
|
+
import 'twntyx-css/styles/globals.css';
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Nuxt + Tailwind CSS v4
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
// nuxt.config.ts
|
|
49
|
+
export default defineNuxtConfig({
|
|
50
|
+
css: [
|
|
51
|
+
'twntyx-css/styles/font.css',
|
|
52
|
+
'twntyx-css/styles/globals.css',
|
|
53
|
+
],
|
|
54
|
+
postcss: {
|
|
55
|
+
plugins: {
|
|
56
|
+
'@tailwindcss/postcss': {},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
})
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
twntyx-css ships `@font-face` rules for Instrument Sans and Gazpacho, so `@nuxt/fonts` is optional.
|
|
63
|
+
|
|
64
|
+
### Fonts troubleshooting
|
|
65
|
+
|
|
66
|
+
If fonts fall back to system defaults:
|
|
67
|
+
|
|
68
|
+
1. Import `twntyx-css/styles/font.css` before `twntyx-css/styles/globals.css`.
|
|
69
|
+
2. In DevTools Network, confirm font requests resolve to bundled assets (not `/fonts/...` at your site root).
|
|
70
|
+
3. After upgrading, clear `.nuxt/` and `node_modules/.cache`.
|
|
71
|
+
|
|
37
72
|
### 4. Adapt webpack config.
|
|
38
73
|
|
|
39
74
|
Add postcss-loader to webpack.config.js.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -17,64 +17,19 @@
|
|
|
17
17
|
"new message state"
|
|
18
18
|
],
|
|
19
19
|
"sourcePaths": [
|
|
20
|
-
"app/design-system/chat-ai/page.js"
|
|
21
|
-
"assets/styles/button.css",
|
|
22
|
-
"assets/styles/chat.css",
|
|
23
|
-
"assets/styles/form-text-select.css",
|
|
24
|
-
"assets/styles/panel.css",
|
|
25
|
-
"assets/styles/toast.css"
|
|
20
|
+
"app/design-system/chat-ai/page.js"
|
|
26
21
|
],
|
|
27
22
|
"apiModel": "html-class",
|
|
28
23
|
"baseClass": "chat-ai",
|
|
29
|
-
"variants": [
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"className": "chat-secondary",
|
|
33
|
-
"description": "AI chat visual variant styling."
|
|
34
|
-
}
|
|
35
|
-
],
|
|
36
|
-
"sizes": [
|
|
37
|
-
{
|
|
38
|
-
"name": "chat-loop-stack-lg",
|
|
39
|
-
"className": "chat-loop-stack-lg",
|
|
40
|
-
"description": "Large min-height variant for loop stack."
|
|
41
|
-
}
|
|
42
|
-
],
|
|
43
|
-
"states": [
|
|
44
|
-
{
|
|
45
|
-
"name": "chat-loop-loading",
|
|
46
|
-
"className": "chat-loop-loading",
|
|
47
|
-
"description": "Animated loading row in loop simulation."
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"name": "chat-loop-message",
|
|
51
|
-
"className": "chat-loop-message",
|
|
52
|
-
"description": "Animated resolved message row in loop simulation."
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"name": "is-owner",
|
|
56
|
-
"className": "is-owner",
|
|
57
|
-
"description": "Marks messages authored by the current user."
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"name": "is-loading",
|
|
61
|
-
"className": "is-loading",
|
|
62
|
-
"description": "Shows loading placeholder behavior for a message group."
|
|
63
|
-
}
|
|
64
|
-
],
|
|
24
|
+
"variants": [],
|
|
25
|
+
"sizes": [],
|
|
26
|
+
"states": [],
|
|
65
27
|
"structure": {
|
|
66
28
|
"rootElement": "div",
|
|
67
29
|
"requiredClasses": [
|
|
68
30
|
"chat-ai"
|
|
69
31
|
],
|
|
70
|
-
"optionalClasses": [
|
|
71
|
-
"chat-secondary",
|
|
72
|
-
"chat-loop-stack-lg",
|
|
73
|
-
"chat-loop-loading",
|
|
74
|
-
"chat-loop-message",
|
|
75
|
-
"is-owner",
|
|
76
|
-
"is-loading"
|
|
77
|
-
],
|
|
32
|
+
"optionalClasses": [],
|
|
78
33
|
"requiredChildren": [],
|
|
79
34
|
"optionalChildren": []
|
|
80
35
|
},
|
|
@@ -114,56 +69,7 @@
|
|
|
114
69
|
"Do not rely on undocumented internal classes in production templates.",
|
|
115
70
|
"Do not remove required accessibility attributes when component is interactive."
|
|
116
71
|
],
|
|
117
|
-
"tokenUsage": [
|
|
118
|
-
"background-brand",
|
|
119
|
-
"background-brand-active",
|
|
120
|
-
"background-error",
|
|
121
|
-
"background-error-active",
|
|
122
|
-
"background-info",
|
|
123
|
-
"background-info-active",
|
|
124
|
-
"background-inverted",
|
|
125
|
-
"background-page",
|
|
126
|
-
"background-success",
|
|
127
|
-
"background-success-active",
|
|
128
|
-
"background-surface",
|
|
129
|
-
"background-surface-elevated",
|
|
130
|
-
"background-surface-sunken",
|
|
131
|
-
"background-warning",
|
|
132
|
-
"background-warning-active",
|
|
133
|
-
"brand-default",
|
|
134
|
-
"brand-moderate",
|
|
135
|
-
"brand-strong",
|
|
136
|
-
"core-black",
|
|
137
|
-
"core-ui-100",
|
|
138
|
-
"core-ui-50",
|
|
139
|
-
"core-ui-700",
|
|
140
|
-
"core-ui-800",
|
|
141
|
-
"core-ui-900",
|
|
142
|
-
"core-white",
|
|
143
|
-
"line-default",
|
|
144
|
-
"line-error",
|
|
145
|
-
"line-focus",
|
|
146
|
-
"line-highlight",
|
|
147
|
-
"line-info",
|
|
148
|
-
"line-strong",
|
|
149
|
-
"line-success",
|
|
150
|
-
"line-warning",
|
|
151
|
-
"text-attention",
|
|
152
|
-
"text-brand",
|
|
153
|
-
"text-brand-active",
|
|
154
|
-
"text-brand-hover",
|
|
155
|
-
"text-default",
|
|
156
|
-
"text-disabled",
|
|
157
|
-
"text-error",
|
|
158
|
-
"text-info",
|
|
159
|
-
"text-inverted",
|
|
160
|
-
"text-link",
|
|
161
|
-
"text-link-hover",
|
|
162
|
-
"text-secondary",
|
|
163
|
-
"text-success",
|
|
164
|
-
"text-tertiary",
|
|
165
|
-
"text-warning"
|
|
166
|
-
],
|
|
72
|
+
"tokenUsage": [],
|
|
167
73
|
"examples": [
|
|
168
74
|
{
|
|
169
75
|
"id": "canonical",
|
|
@@ -37,6 +37,16 @@
|
|
|
37
37
|
"name": "divider-end",
|
|
38
38
|
"className": "divider-end",
|
|
39
39
|
"description": "Aligns content to the end"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "divider-dashed",
|
|
43
|
+
"className": "divider-dashed",
|
|
44
|
+
"description": "Renders the divider lines with a dashed border style"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "divider-dotted",
|
|
48
|
+
"className": "divider-dotted",
|
|
49
|
+
"description": "Renders the divider lines with a dotted border style"
|
|
40
50
|
}
|
|
41
51
|
],
|
|
42
52
|
"sizes": [],
|
|
@@ -49,7 +59,9 @@
|
|
|
49
59
|
"optionalClasses": [
|
|
50
60
|
"divider-horizontal",
|
|
51
61
|
"divider-start",
|
|
52
|
-
"divider-end"
|
|
62
|
+
"divider-end",
|
|
63
|
+
"divider-dashed",
|
|
64
|
+
"divider-dotted"
|
|
53
65
|
],
|
|
54
66
|
"requiredChildren": [],
|
|
55
67
|
"optionalChildren": []
|
|
@@ -60,12 +72,16 @@
|
|
|
60
72
|
],
|
|
61
73
|
"required": [],
|
|
62
74
|
"dataAttributes": [],
|
|
63
|
-
"roles": [
|
|
75
|
+
"roles": [
|
|
76
|
+
"separator"
|
|
77
|
+
],
|
|
64
78
|
"aria": []
|
|
65
79
|
},
|
|
66
80
|
"a11y": {
|
|
67
81
|
"interactive": false,
|
|
68
|
-
"requiredRoles": [
|
|
82
|
+
"requiredRoles": [
|
|
83
|
+
"separator"
|
|
84
|
+
],
|
|
69
85
|
"requiredAria": [],
|
|
70
86
|
"keyboardSupport": [],
|
|
71
87
|
"focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
|
|
@@ -82,7 +98,6 @@
|
|
|
82
98
|
],
|
|
83
99
|
"tokenUsage": [
|
|
84
100
|
"line-highlight",
|
|
85
|
-
"text-default",
|
|
86
101
|
"text-tertiary"
|
|
87
102
|
],
|
|
88
103
|
"examples": [
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "dot-wave-background",
|
|
3
|
+
"name": "Dot Wave Background",
|
|
4
|
+
"status": "preview",
|
|
5
|
+
"summary": "Reusable animated dot-wave background for decorative template surfaces and ambient interface layers.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"ambient",
|
|
8
|
+
"animated background",
|
|
9
|
+
"background",
|
|
10
|
+
"backgrounds",
|
|
11
|
+
"canvas",
|
|
12
|
+
"decorative",
|
|
13
|
+
"dot wave",
|
|
14
|
+
"dot wave background",
|
|
15
|
+
"dot-wave-background",
|
|
16
|
+
"dots",
|
|
17
|
+
"template",
|
|
18
|
+
"wave"
|
|
19
|
+
],
|
|
20
|
+
"sourcePaths": [
|
|
21
|
+
"app/design-system/dot-wave-background/page.js",
|
|
22
|
+
"components/backgrounds/DotWaveBackground.js"
|
|
23
|
+
],
|
|
24
|
+
"apiModel": "html-class",
|
|
25
|
+
"baseClass": "dot-wave-background",
|
|
26
|
+
"variants": [],
|
|
27
|
+
"sizes": [],
|
|
28
|
+
"states": [],
|
|
29
|
+
"structure": {
|
|
30
|
+
"rootElement": "canvas",
|
|
31
|
+
"requiredClasses": [
|
|
32
|
+
"dot-wave-background"
|
|
33
|
+
],
|
|
34
|
+
"optionalClasses": [
|
|
35
|
+
"pointer-events-none"
|
|
36
|
+
],
|
|
37
|
+
"requiredChildren": [],
|
|
38
|
+
"optionalChildren": []
|
|
39
|
+
},
|
|
40
|
+
"attributes": {
|
|
41
|
+
"allowed": [
|
|
42
|
+
"aria-hidden",
|
|
43
|
+
"class",
|
|
44
|
+
"style"
|
|
45
|
+
],
|
|
46
|
+
"required": [
|
|
47
|
+
"aria-hidden"
|
|
48
|
+
],
|
|
49
|
+
"dataAttributes": [],
|
|
50
|
+
"roles": [],
|
|
51
|
+
"aria": [
|
|
52
|
+
"aria-hidden"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"a11y": {
|
|
56
|
+
"interactive": false,
|
|
57
|
+
"requiredRoles": [],
|
|
58
|
+
"requiredAria": [
|
|
59
|
+
"aria-hidden"
|
|
60
|
+
],
|
|
61
|
+
"keyboardSupport": [],
|
|
62
|
+
"focusBehavior": "Decorative canvas backgrounds must remain hidden from assistive technology and must not capture pointer or keyboard interaction."
|
|
63
|
+
},
|
|
64
|
+
"dos": [
|
|
65
|
+
"Apply the base class 'dot-wave-background' on the canvas element.",
|
|
66
|
+
"Use aria-hidden=\"true\" for decorative background usage.",
|
|
67
|
+
"Use pointer-events-none when layering the background behind interactive content."
|
|
68
|
+
],
|
|
69
|
+
"donts": [
|
|
70
|
+
"Do not use the canvas as meaningful content without an accessible alternative.",
|
|
71
|
+
"Do not allow the background layer to capture pointer events from foreground controls.",
|
|
72
|
+
"Do not place interactive children inside the decorative canvas."
|
|
73
|
+
],
|
|
74
|
+
"tokenUsage": [],
|
|
75
|
+
"examples": [
|
|
76
|
+
{
|
|
77
|
+
"id": "canonical",
|
|
78
|
+
"file": "examples/dot-wave-background.html",
|
|
79
|
+
"description": "Minimal canonical Dot Wave Background usage."
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"composition": {
|
|
83
|
+
"patterns": [],
|
|
84
|
+
"relatedComponents": [],
|
|
85
|
+
"notes": []
|
|
86
|
+
},
|
|
87
|
+
"breakingChangePolicy": {
|
|
88
|
+
"classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
|
|
89
|
+
"a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="chat-ai
|
|
1
|
+
<div class="chat-ai">AI chat structure</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<canvas class="dot-wave-background pointer-events-none" aria-hidden="true"></canvas>
|
package/llm/index.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"llmSchemaVersion": "1.0.0",
|
|
3
|
-
"designSystemVersion": "1.0.
|
|
3
|
+
"designSystemVersion": "1.0.11",
|
|
4
4
|
"packageName": "twntyx-css",
|
|
5
5
|
"apiModel": "html-class",
|
|
6
|
-
"sourceFingerprint": "
|
|
6
|
+
"sourceFingerprint": "bcce447bfbebb4a79325f5db8a4af76b85fb2dec7e871f5ff848f6e33901ee92",
|
|
7
7
|
"files": {
|
|
8
8
|
"schema": "schema.json",
|
|
9
9
|
"tokens": "tokens.json",
|
|
@@ -627,6 +627,27 @@
|
|
|
627
627
|
"split"
|
|
628
628
|
]
|
|
629
629
|
},
|
|
630
|
+
{
|
|
631
|
+
"id": "dot-wave-background",
|
|
632
|
+
"name": "Dot Wave Background",
|
|
633
|
+
"file": "components/dot-wave-background.json",
|
|
634
|
+
"status": "preview",
|
|
635
|
+
"summary": "Reusable animated dot-wave background for decorative template surfaces and ambient interface layers.",
|
|
636
|
+
"keywords": [
|
|
637
|
+
"ambient",
|
|
638
|
+
"animated background",
|
|
639
|
+
"background",
|
|
640
|
+
"backgrounds",
|
|
641
|
+
"canvas",
|
|
642
|
+
"decorative",
|
|
643
|
+
"dot wave",
|
|
644
|
+
"dot wave background",
|
|
645
|
+
"dot-wave-background",
|
|
646
|
+
"dots",
|
|
647
|
+
"template",
|
|
648
|
+
"wave"
|
|
649
|
+
]
|
|
650
|
+
},
|
|
630
651
|
{
|
|
631
652
|
"id": "field",
|
|
632
653
|
"name": "Field",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "twntyx-css",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"exports": {
|
|
5
5
|
"./llm": "./llm/index.json",
|
|
6
6
|
"./llm/components/*": "./llm/components/*.json",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"./*": "./*",
|
|
12
12
|
"./fonts/*": "./fonts/*",
|
|
13
13
|
"./styles": "./styles/globals.css",
|
|
14
|
+
"./styles/font.css": "./styles/font.css",
|
|
14
15
|
"./styles/*": "./styles/*",
|
|
15
16
|
"./tailwind.config": "./tailwind.config.cjs"
|
|
16
17
|
},
|
package/styles/animation.css
CHANGED
|
@@ -107,6 +107,7 @@
|
|
|
107
107
|
alternate-reverse;
|
|
108
108
|
--animate-bounce-left-small: bounceLeftSmall 0.7s ease-in-out infinite;
|
|
109
109
|
--animate-rotate: rotate 10s linear infinite;
|
|
110
|
+
--animate-profile-edit-dash: profile-edit-dash 1.2s linear infinite;
|
|
110
111
|
--animate-double-rays: doubleRays 3s cubic-bezier(0.7, 0, 0.3, 1) infinite
|
|
111
112
|
both;
|
|
112
113
|
--animate-double-rays-transform: doubleRaysTransform 3s
|
|
@@ -1175,6 +1176,12 @@
|
|
|
1175
1176
|
}
|
|
1176
1177
|
}
|
|
1177
1178
|
|
|
1179
|
+
@keyframes profile-edit-dash {
|
|
1180
|
+
to {
|
|
1181
|
+
stroke-dashoffset: -2;
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1178
1185
|
@keyframes bounceLeft {
|
|
1179
1186
|
0%,
|
|
1180
1187
|
100% {
|
|
@@ -2203,8 +2210,8 @@
|
|
|
2203
2210
|
.flip {
|
|
2204
2211
|
@apply relative
|
|
2205
2212
|
transition-transform
|
|
2206
|
-
duration-
|
|
2207
|
-
ease-
|
|
2213
|
+
duration-500
|
|
2214
|
+
ease-in-out-cubic;
|
|
2208
2215
|
transform-style: preserve-3d;
|
|
2209
2216
|
/* backface-visibility: hidden; */
|
|
2210
2217
|
|
package/styles/button.css
CHANGED
|
@@ -310,7 +310,7 @@
|
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
@utility button-destructive {
|
|
313
|
-
@apply border backdrop-blur include-border-destructive bg-background-error border-line-error hover:border-
|
|
313
|
+
@apply border backdrop-blur include-border-destructive bg-background-error border-line-error hover:border-text-error text-text-error active:bg-background-surface-elevated;
|
|
314
314
|
|
|
315
315
|
&.is-active {
|
|
316
316
|
@apply bg-background-surface-elevated;
|
|
@@ -318,7 +318,7 @@
|
|
|
318
318
|
}
|
|
319
319
|
|
|
320
320
|
@utility button-constructive {
|
|
321
|
-
@apply border backdrop-blur include-border-destructive bg-background-success border-line-success hover:border-
|
|
321
|
+
@apply border backdrop-blur include-border-destructive bg-background-success border-line-success hover:border-text-success text-text-success active:bg-background-surface-elevated;
|
|
322
322
|
|
|
323
323
|
&.is-active {
|
|
324
324
|
@apply bg-background-surface-elevated;
|
package/styles/chat.css
CHANGED
package/styles/datepicker.css
CHANGED
package/styles/divider.css
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
/* Lines using pseudo elements */
|
|
12
12
|
&::before,
|
|
13
13
|
&::after {
|
|
14
|
-
@apply content-['']
|
|
14
|
+
@apply content-[''] border-t border-t-text-default/10;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/* Horizontal divider lines */
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
&::before,
|
|
30
30
|
&::after {
|
|
31
|
-
@apply w-px h-full;
|
|
31
|
+
@apply w-px h-full border-l border-l-text-default/10;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
@apply flex-[0.25];
|
|
39
39
|
}
|
|
40
40
|
&::after {
|
|
41
|
-
@apply flex-
|
|
41
|
+
@apply flex-1;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
&.divider-end {
|
|
46
46
|
&::before {
|
|
47
|
-
@apply flex-
|
|
47
|
+
@apply flex-1;
|
|
48
48
|
}
|
|
49
49
|
&::after {
|
|
50
50
|
@apply flex-[0.25];
|
|
@@ -66,7 +66,21 @@
|
|
|
66
66
|
&.divider-highlight {
|
|
67
67
|
&::before,
|
|
68
68
|
&::after {
|
|
69
|
-
@apply
|
|
69
|
+
@apply border-line-highlight;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&.divider-dashed {
|
|
74
|
+
&::before,
|
|
75
|
+
&::after {
|
|
76
|
+
@apply border-dashed;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&.divider-dotted {
|
|
81
|
+
&::before,
|
|
82
|
+
&::after {
|
|
83
|
+
@apply border-dotted;
|
|
70
84
|
}
|
|
71
85
|
}
|
|
72
86
|
}
|
package/styles/font.css
CHANGED
|
@@ -4,56 +4,70 @@
|
|
|
4
4
|
|
|
5
5
|
@font-face {
|
|
6
6
|
font-family: "Instrument Sans";
|
|
7
|
-
src: url("../fonts/InstrumentSans-
|
|
7
|
+
src: url("../fonts/InstrumentSans-Variable.ttf") format("truetype");
|
|
8
8
|
font-weight: 100 900;
|
|
9
9
|
font-style: normal;
|
|
10
|
+
font-display: swap;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
@font-face {
|
|
13
14
|
font-family: "Instrument Sans";
|
|
14
|
-
src: url("../fonts/InstrumentSans-Italic-
|
|
15
|
+
src: url("../fonts/InstrumentSans-Italic-Variable.ttf") format("truetype");
|
|
15
16
|
font-weight: 100 900;
|
|
16
17
|
font-style: italic;
|
|
18
|
+
font-display: swap;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
@font-face {
|
|
20
22
|
font-family: "Gazpacho";
|
|
21
|
-
src: url("../fonts/GazpachoRegular.
|
|
23
|
+
src: url("../fonts/GazpachoRegular.woff2") format("woff2"),
|
|
24
|
+
url("../fonts/GazpachoRegular.otf") format("opentype");
|
|
22
25
|
font-weight: 400;
|
|
23
26
|
font-style: normal;
|
|
27
|
+
font-display: swap;
|
|
24
28
|
}
|
|
25
29
|
|
|
26
30
|
@font-face {
|
|
27
31
|
font-family: "Gazpacho";
|
|
28
|
-
src: url("../fonts/GazpachoRegularItalic.
|
|
32
|
+
src: url("../fonts/GazpachoRegularItalic.woff2") format("woff2"),
|
|
33
|
+
url("../fonts/GazpachoRegularItalic.otf") format("opentype");
|
|
29
34
|
font-weight: 400;
|
|
30
35
|
font-style: italic;
|
|
36
|
+
font-display: swap;
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
@font-face {
|
|
34
40
|
font-family: "Gazpacho";
|
|
35
|
-
src: url("../fonts/GazpachoMedium.
|
|
41
|
+
src: url("../fonts/GazpachoMedium.woff2") format("woff2"),
|
|
42
|
+
url("../fonts/GazpachoMedium.otf") format("opentype");
|
|
36
43
|
font-weight: 500;
|
|
37
44
|
font-style: normal;
|
|
45
|
+
font-display: swap;
|
|
38
46
|
}
|
|
39
47
|
|
|
40
48
|
@font-face {
|
|
41
49
|
font-family: "Gazpacho";
|
|
42
|
-
src: url("../fonts/GazpachoMediumItalic.
|
|
50
|
+
src: url("../fonts/GazpachoMediumItalic.woff2") format("woff2"),
|
|
51
|
+
url("../fonts/GazpachoMediumItalic.otf") format("opentype");
|
|
43
52
|
font-weight: 500;
|
|
44
53
|
font-style: italic;
|
|
54
|
+
font-display: swap;
|
|
45
55
|
}
|
|
46
56
|
|
|
47
57
|
@font-face {
|
|
48
58
|
font-family: "Gazpacho";
|
|
49
|
-
src: url("../fonts/GazpachoBold.
|
|
59
|
+
src: url("../fonts/GazpachoBold.woff2") format("woff2"),
|
|
60
|
+
url("../fonts/GazpachoBold.otf") format("opentype");
|
|
50
61
|
font-weight: 700;
|
|
51
62
|
font-style: normal;
|
|
63
|
+
font-display: swap;
|
|
52
64
|
}
|
|
53
65
|
|
|
54
66
|
@font-face {
|
|
55
67
|
font-family: "Gazpacho";
|
|
56
|
-
src: url("../fonts/GazpachoBoldItalic.
|
|
68
|
+
src: url("../fonts/GazpachoBoldItalic.woff2") format("woff2"),
|
|
69
|
+
url("../fonts/GazpachoBoldItalic.otf") format("opentype");
|
|
57
70
|
font-weight: 700;
|
|
58
71
|
font-style: italic;
|
|
59
|
-
|
|
72
|
+
font-display: swap;
|
|
73
|
+
}
|
package/styles/form-shared.css
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
@import
|
|
1
|
+
@import 'tailwindcss';
|
|
2
2
|
|
|
3
3
|
/*----------------------------*/
|
|
4
4
|
/* FORM */
|
|
5
5
|
/*----------------------------*/
|
|
6
6
|
|
|
7
7
|
@utility input-label {
|
|
8
|
-
@apply text-
|
|
8
|
+
@apply text-xs uppercase tracking-wider text-text-secondary font-bold font-body select-none;
|
|
9
9
|
|
|
10
10
|
&:is(label) {
|
|
11
11
|
@apply cursor-pointer;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
small {
|
|
15
|
-
@apply text-
|
|
15
|
+
@apply text-xxs;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
package/styles/globals.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@import url("./font.css");
|
|
1
2
|
@import 'tailwindcss';
|
|
2
3
|
@import './theme.css';
|
|
3
4
|
|
|
@@ -25,7 +26,6 @@
|
|
|
25
26
|
@import './drawer.css';
|
|
26
27
|
@import './fieldset.css';
|
|
27
28
|
@import './field.css';
|
|
28
|
-
@import './font.css';
|
|
29
29
|
@import './dropdown.css';
|
|
30
30
|
@import './form-shared.css';
|
|
31
31
|
@import './form-checkbox-radio-toggle.css';
|
package/styles/menu.css
CHANGED
package/styles/surface.css
CHANGED
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
border
|
|
76
76
|
border-brand-default
|
|
77
77
|
transition-[background-position,brightness]
|
|
78
|
-
shadow-[inset_0_1px_0_0_color-mix(in_srgb,var(--color-brand-moderate)_100%,transparent),inset_0_-2px_0_0_color-mix(in_srgb,var(--color-brand-
|
|
78
|
+
shadow-[inset_0_1px_0_0_color-mix(in_srgb,var(--color-brand-moderate)_100%,transparent),inset_0_-2px_0_0_color-mix(in_srgb,var(--color-brand-strong)_15%,transparent)]
|
|
79
79
|
dark:shadow-[inset_0_1px_0_0_color-mix(in_srgb,var(--color-brand-default)_100%,transparent),inset_0_-2px_0_0_color-mix(in_srgb,var(--color-brand-moderate)_50%,transparent)]
|
|
80
80
|
duration-75
|
|
81
81
|
ease-out-cubic;
|
|
@@ -148,7 +148,10 @@
|
|
|
148
148
|
@apply surface-brand
|
|
149
149
|
hover:brightness-105
|
|
150
150
|
hover:border-brand-strong
|
|
151
|
-
active:border-brand-default
|
|
151
|
+
active:border-brand-default
|
|
152
|
+
transition-[filter,box-shadow,border-color]
|
|
153
|
+
hover:shadow-[inset_0_1px_0_0_color-mix(in_srgb,var(--color-brand-moderate)_100%,transparent),inset_0_-1px_0_0_color-mix(in_srgb,var(--color-brand-strong)_15%,transparent)]
|
|
154
|
+
dark:hover:shadow-[inset_0_1px_0_0_color-mix(in_srgb,var(--color-brand-default)_100%,transparent),inset_0_-1px_0_0_color-mix(in_srgb,var(--color-brand-moderate)_50%,transparent)];
|
|
152
155
|
}
|
|
153
156
|
|
|
154
157
|
@utility surface-interactive {
|
package/styles/timeline.css
CHANGED
|
@@ -14,8 +14,7 @@
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
@utility timeline-dot {
|
|
17
|
-
@apply
|
|
18
|
-
size-(--timeline-marker-size)
|
|
17
|
+
@apply size-(--timeline-marker-size)
|
|
19
18
|
block
|
|
20
19
|
rounded-full
|
|
21
20
|
border
|
|
@@ -24,8 +23,7 @@
|
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
@utility timeline-marker {
|
|
27
|
-
@apply
|
|
28
|
-
size-(--timeline-marker-size)
|
|
26
|
+
@apply size-(--timeline-marker-size)
|
|
29
27
|
inline-flex
|
|
30
28
|
shrink-0
|
|
31
29
|
items-center
|
|
@@ -44,8 +42,7 @@
|
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
@utility timeline-connector {
|
|
47
|
-
@apply
|
|
48
|
-
block
|
|
45
|
+
@apply block
|
|
49
46
|
rounded-full
|
|
50
47
|
bg-line-default;
|
|
51
48
|
}
|
|
@@ -55,7 +52,7 @@
|
|
|
55
52
|
.timeline-vertical,
|
|
56
53
|
.timeline-activity {
|
|
57
54
|
> :where(li, .timeline-item) {
|
|
58
|
-
@apply relative
|
|
55
|
+
@apply relative pl-(--timeline-item-indent);
|
|
59
56
|
}
|
|
60
57
|
|
|
61
58
|
> :where(li, .timeline-item):not(:last-child)::before {
|
|
@@ -78,7 +75,7 @@
|
|
|
78
75
|
--timeline-item-indent: 1.75rem;
|
|
79
76
|
|
|
80
77
|
> :where(li, .timeline-item):not(:last-child) {
|
|
81
|
-
@apply pb-
|
|
78
|
+
@apply pb-4;
|
|
82
79
|
}
|
|
83
80
|
|
|
84
81
|
> :where(li, .timeline-item) > :where(.timeline-marker, .timeline-dot) {
|
|
@@ -96,7 +93,7 @@
|
|
|
96
93
|
--timeline-item-indent: 2.25rem;
|
|
97
94
|
|
|
98
95
|
> :where(li, .timeline-item):not(:last-child) {
|
|
99
|
-
@apply pb-
|
|
96
|
+
@apply pb-4;
|
|
100
97
|
}
|
|
101
98
|
|
|
102
99
|
> :where(li, .timeline-item) > .timeline-marker {
|
|
@@ -141,7 +138,7 @@
|
|
|
141
138
|
--timeline-item-indent: 2.25rem;
|
|
142
139
|
|
|
143
140
|
> :where(li, .timeline-item):not(:last-child) {
|
|
144
|
-
@apply pb-
|
|
141
|
+
@apply pb-4;
|
|
145
142
|
}
|
|
146
143
|
|
|
147
144
|
> :where(li, .timeline-item) > .timeline-marker {
|
package/styles/typography.css
CHANGED
|
@@ -54,6 +54,10 @@ body {
|
|
|
54
54
|
@apply text-sm font-light font-body;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
@utility label {
|
|
58
|
+
@apply text-xs font-bold tracking-wide uppercase font-body;
|
|
59
|
+
}
|
|
60
|
+
|
|
57
61
|
@utility caption {
|
|
58
62
|
@apply text-xs font-normal font-body;
|
|
59
63
|
}
|
|
@@ -106,3 +110,7 @@ h6 {
|
|
|
106
110
|
}
|
|
107
111
|
}
|
|
108
112
|
}
|
|
113
|
+
|
|
114
|
+
.material-symbols-rounded {
|
|
115
|
+
@apply leading-none;
|
|
116
|
+
}
|
|
File without changes
|
|
File without changes
|