twntyx-css 1.0.9 → 1.0.10
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/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/divider.json +19 -4
- package/llm/components/dot-wave-background.json +91 -0
- package/llm/examples/dot-wave-background.html +1 -0
- package/llm/index.json +23 -2
- package/package.json +1 -1
- package/styles/animation.css +9 -2
- package/styles/datepicker.css +1 -1
- package/styles/divider.css +19 -5
- package/styles/font.css +21 -7
- package/styles/form-shared.css +3 -3
- package/styles/surface.css +5 -2
- package/styles/timeline.css +7 -10
- package/styles/typography.css +4 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
+
}
|
|
@@ -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.10",
|
|
4
4
|
"packageName": "twntyx-css",
|
|
5
5
|
"apiModel": "html-class",
|
|
6
|
-
"sourceFingerprint": "
|
|
6
|
+
"sourceFingerprint": "f7c8ee0540e7bb413846b1be281b9f5034f86ab48ade5f990858bbcce6fea5ad",
|
|
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
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/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
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
src: url("../fonts/InstrumentSans-VariableFont_wdth,wght.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 {
|
|
@@ -14,46 +15,59 @@
|
|
|
14
15
|
src: url("../fonts/InstrumentSans-Italic-VariableFont_wdth,wght.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/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 {
|