@kwtv/components 0.1.2 → 0.2.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 +2 -2
- package/src/astro/DotGrid.astro +12 -3
- package/src/astro/Footer.astro +9 -9
- package/src/astro/Marquee.astro +3 -3
- package/src/astro/Newsletter.astro +8 -8
- package/src/astro/Sticker.astro +2 -2
- package/src/astro/TextField.astro +1 -1
- package/src/react/NewsCarousel.css +2 -2
- package/src/react/Select.css +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kwtv/components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "KWTV UI components for Astro, with React islands. Built on the KWTV design tokens.",
|
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@kwtv/tokens": "^0.
|
|
37
|
+
"@kwtv/tokens": "^0.2.0"
|
|
38
38
|
}
|
|
39
39
|
}
|
package/src/astro/DotGrid.astro
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
/** Decorative drifting dot field used behind short hero copy.
|
|
2
|
+
/** Decorative drifting dot field used behind short hero copy.
|
|
3
|
+
* Override --dotgrid-color and --dotgrid-opacity for a different backing surface;
|
|
4
|
+
* verify the brightest moving dot against the copy, not only the flat surface.
|
|
5
|
+
*/
|
|
3
6
|
interface Props {
|
|
4
7
|
compact?: boolean;
|
|
5
8
|
class?: string;
|
|
@@ -29,9 +32,9 @@ const classes = ["pl-dotgrid", compact && "pl-dotgrid--compact", className]
|
|
|
29
32
|
.pl-dotgrid__dots {
|
|
30
33
|
position: absolute;
|
|
31
34
|
inset: 0;
|
|
32
|
-
background-image: radial-gradient(var(--sage-light) 1.4px, transparent 1.6px);
|
|
35
|
+
background-image: radial-gradient(var(--dotgrid-color, var(--sage-light)) 1.4px, transparent 1.6px);
|
|
33
36
|
background-size: 28px 28px;
|
|
34
|
-
opacity:
|
|
37
|
+
opacity: var(--dotgrid-opacity, var(--dotgrid-theme-opacity, .7));
|
|
35
38
|
animation: pl-drift 6s linear infinite;
|
|
36
39
|
}
|
|
37
40
|
|
|
@@ -54,6 +57,12 @@ const classes = ["pl-dotgrid", compact && "pl-dotgrid--compact", className]
|
|
|
54
57
|
font-size: var(--text-base);
|
|
55
58
|
}
|
|
56
59
|
|
|
60
|
+
/* Explicit themes win over OS preference, as in the token cascade. */
|
|
61
|
+
:global([data-theme="dark"]) .pl-dotgrid { --dotgrid-theme-opacity: .2; }
|
|
62
|
+
@media (prefers-color-scheme: dark) {
|
|
63
|
+
:global(:root:not([data-theme])) .pl-dotgrid { --dotgrid-theme-opacity: .2; }
|
|
64
|
+
}
|
|
65
|
+
|
|
57
66
|
@media (prefers-reduced-motion: reduce) {
|
|
58
67
|
.pl-dotgrid__dots {
|
|
59
68
|
animation: none;
|
package/src/astro/Footer.astro
CHANGED
|
@@ -52,8 +52,8 @@ const classes = ["ui-footer", `ui-footer--${variant}`, className]
|
|
|
52
52
|
grid-template-columns: 1.5fr 1fr 1.3fr;
|
|
53
53
|
gap: var(--space-10);
|
|
54
54
|
padding: var(--space-10);
|
|
55
|
-
background: var(--
|
|
56
|
-
color: var(--
|
|
55
|
+
background: var(--surface-inverse);
|
|
56
|
+
color: var(--surface-inverse-fg);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
.ui-footer__brandblock {
|
|
@@ -71,13 +71,13 @@ const classes = ["ui-footer", `ui-footer--${variant}`, className]
|
|
|
71
71
|
}
|
|
72
72
|
.ui-footer__brand :global(span) {
|
|
73
73
|
font-weight: var(--weight-regular);
|
|
74
|
-
color: var(--
|
|
74
|
+
color: var(--surface-inverse-muted);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
.ui-footer__addr {
|
|
78
78
|
font-size: var(--text-sm);
|
|
79
79
|
line-height: var(--leading-sm);
|
|
80
|
-
color: var(--
|
|
80
|
+
color: var(--surface-inverse-fg);
|
|
81
81
|
}
|
|
82
82
|
.ui-footer__addr :global(a) {
|
|
83
83
|
color: inherit;
|
|
@@ -101,9 +101,9 @@ const classes = ["ui-footer", `ui-footer--${variant}`, className]
|
|
|
101
101
|
flex-wrap: wrap;
|
|
102
102
|
margin-top: var(--space-4);
|
|
103
103
|
padding-top: var(--space-5);
|
|
104
|
-
border-top: 1px solid var(--
|
|
104
|
+
border-top: 1px solid var(--surface-inverse-border);
|
|
105
105
|
font-size: var(--text-xs);
|
|
106
|
-
color: var(--
|
|
106
|
+
color: var(--surface-inverse-muted);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
.ui-footer__policies {
|
|
@@ -112,7 +112,7 @@ const classes = ["ui-footer", `ui-footer--${variant}`, className]
|
|
|
112
112
|
gap: var(--space-4);
|
|
113
113
|
}
|
|
114
114
|
.ui-footer__bar :global(a) {
|
|
115
|
-
color: var(--
|
|
115
|
+
color: var(--surface-inverse-fg);
|
|
116
116
|
text-decoration: underline;
|
|
117
117
|
text-underline-offset: 2px;
|
|
118
118
|
}
|
|
@@ -156,7 +156,7 @@ const classes = ["ui-footer", `ui-footer--${variant}`, className]
|
|
|
156
156
|
order: 1;
|
|
157
157
|
font-size: var(--text-lg);
|
|
158
158
|
font-weight: var(--weight-regular);
|
|
159
|
-
color: var(--
|
|
159
|
+
color: var(--surface-inverse-muted);
|
|
160
160
|
}
|
|
161
161
|
.ui-footer--mobile.ui-footer--site .ui-footer__addr {
|
|
162
162
|
order: 2;
|
|
@@ -178,7 +178,7 @@ const classes = ["ui-footer", `ui-footer--${variant}`, className]
|
|
|
178
178
|
.ui-footer--mobile.ui-footer--site .ui-footer__social :global(.ui-social) {
|
|
179
179
|
width: 48px;
|
|
180
180
|
height: 48px;
|
|
181
|
-
border: 1px solid var(--
|
|
181
|
+
border: 1px solid var(--surface-inverse-border);
|
|
182
182
|
border-radius: var(--radius-full);
|
|
183
183
|
}
|
|
184
184
|
.ui-footer--mobile.ui-footer--site :global(.ui-footer__newsletter) {
|
package/src/astro/Marquee.astro
CHANGED
|
@@ -38,11 +38,11 @@ const { items, divider = "✦", class: className } = Astro.props;
|
|
|
38
38
|
|
|
39
39
|
<style>
|
|
40
40
|
.ui-marquee {
|
|
41
|
-
background: var(--
|
|
42
|
-
color: var(--
|
|
41
|
+
background: var(--surface-banner);
|
|
42
|
+
color: var(--surface-inverse-fg);
|
|
43
43
|
overflow: hidden;
|
|
44
44
|
padding-block: var(--space-3);
|
|
45
|
-
border-block: 1px solid var(--
|
|
45
|
+
border-block: 1px solid var(--surface-inverse-border);
|
|
46
46
|
transform: rotate(-1.2deg) scale(1.02);
|
|
47
47
|
}
|
|
48
48
|
.ui-marquee__track {
|
|
@@ -69,21 +69,21 @@ const classes = ["ui-news", stacked && "ui-news--stacked", className]
|
|
|
69
69
|
min-width: 0;
|
|
70
70
|
min-height: 48px;
|
|
71
71
|
padding: 0 var(--space-4);
|
|
72
|
-
background: var(--
|
|
73
|
-
border: 1px solid
|
|
72
|
+
background: var(--surface-light);
|
|
73
|
+
border: 1px solid var(--border-strong-light);
|
|
74
74
|
border-radius: var(--radius-md);
|
|
75
75
|
font-family: var(--font-sans);
|
|
76
76
|
font-size: var(--text-sm);
|
|
77
|
-
color: var(--text);
|
|
77
|
+
color: var(--text-light);
|
|
78
78
|
}
|
|
79
79
|
.ui-news__input::placeholder {
|
|
80
|
-
color: var(--text-muted);
|
|
80
|
+
color: var(--text-muted-light);
|
|
81
81
|
}
|
|
82
82
|
.ui-news__input:focus-visible,
|
|
83
83
|
.ui-news__input.is-focus {
|
|
84
|
-
outline: 2px solid var(--
|
|
84
|
+
outline: 2px solid var(--focus);
|
|
85
85
|
outline-offset: 2px;
|
|
86
|
-
box-shadow: 0 0 0 4px
|
|
86
|
+
box-shadow: 0 0 0 4px var(--focus-outer);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
.ui-news__btn {
|
|
@@ -105,9 +105,9 @@ const classes = ["ui-news", stacked && "ui-news--stacked", className]
|
|
|
105
105
|
background: var(--sage-xlight);
|
|
106
106
|
}
|
|
107
107
|
.ui-news__btn:focus-visible {
|
|
108
|
-
outline: 2px solid var(--
|
|
108
|
+
outline: 2px solid var(--focus);
|
|
109
109
|
outline-offset: 2px;
|
|
110
|
-
box-shadow: 0 0 0 4px
|
|
110
|
+
box-shadow: 0 0 0 4px var(--focus-outer);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
@media (prefers-reduced-motion: reduce) {
|
package/src/astro/Sticker.astro
CHANGED
|
@@ -14,7 +14,7 @@ const classes = ["pl-sticker", `pl-sticker--${size}`, className]
|
|
|
14
14
|
|
|
15
15
|
<span class={classes} aria-hidden="true" {...rest}>
|
|
16
16
|
<svg class="pl-sticker__disc" viewBox="0 0 112 112">
|
|
17
|
-
<circle cx="56" cy="56" r="52" fill="var(--
|
|
17
|
+
<circle cx="56" cy="56" r="52" fill="var(--surface-inverse)"></circle>
|
|
18
18
|
<circle class="pl-sticker__ring" cx="56" cy="56" r="47" fill="none" stroke="var(--sage-light)" stroke-width="1.5" stroke-dasharray="5 7"></circle>
|
|
19
19
|
</svg>
|
|
20
20
|
<span class="pl-sticker__content">
|
|
@@ -58,7 +58,7 @@ const classes = ["pl-sticker", `pl-sticker--${size}`, className]
|
|
|
58
58
|
align-items: center;
|
|
59
59
|
justify-content: center;
|
|
60
60
|
gap: var(--space-1);
|
|
61
|
-
color: var(--
|
|
61
|
+
color: var(--surface-inverse-fg);
|
|
62
62
|
text-align: center;
|
|
63
63
|
font-size: var(--text-xs);
|
|
64
64
|
font-weight: var(--weight-semibold);
|
|
@@ -144,7 +144,7 @@ const charCount = count && maxlength ? `${String(value).length} / ${maxlength}`
|
|
|
144
144
|
min-height: 40px;
|
|
145
145
|
padding: var(--space-2) var(--space-3);
|
|
146
146
|
background: var(--surface);
|
|
147
|
-
border: 1px solid var(--border);
|
|
147
|
+
border: 1px solid var(--border-strong);
|
|
148
148
|
border-radius: var(--radius-md);
|
|
149
149
|
font-family: var(--font-sans);
|
|
150
150
|
font-size: var(--text-sm);
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
padding: 0;
|
|
98
98
|
border: 0;
|
|
99
99
|
border-radius: var(--radius-full);
|
|
100
|
-
background: var(--border);
|
|
100
|
+
background: var(--border-strong);
|
|
101
101
|
cursor: pointer;
|
|
102
102
|
transition:
|
|
103
103
|
width var(--duration-base) var(--ease-enter),
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
|
|
108
108
|
.pl-news-dot[data-on] {
|
|
109
109
|
width: 22px;
|
|
110
|
-
background: var(--
|
|
110
|
+
background: var(--primary);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
.pl-news-dot:focus-visible {
|
package/src/react/Select.css
CHANGED