@thalassic/themes 22.16.1 → 22.17.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 +1 -1
- package/themes/thalassic/components/_odometer.scss +1 -14
- package/themes/thalassic/components/_table.scss +29 -2
- package/themes/thalassic/components/_virtual-scroll.scss +11 -0
- package/themes/thalassic/components/autocomplete/_autocomplete-panel.scss +21 -0
- package/themes/thalassic/components/calendar/_agenda.scss +3 -2
- package/themes/thalassic/components/calendar/_calendar.scss +27 -0
- package/themes/thalassic/components/calendar/_compact.scss +21 -0
- package/themes/thalassic/components/calendar/_lines.scss +23 -0
- package/themes/thalassic/components/calendar/_month-view.scss +132 -6
- package/themes/thalassic/components/calendar/_time-grid.scss +6 -5
- package/themes/thalassic/components/dialog/_dialog.scss +43 -0
- package/themes/thalassic/components/drawer/_drawer-side.scss +65 -0
- package/themes/thalassic/components/drawer/_drawer.scss +16 -0
- package/themes/thalassic/components/index.scss +3 -0
- package/themes/thalassic/components/multi-select/_multi-select-panel.scss +21 -0
- package/themes/thalassic/components/pagination/_pagination.scss +1 -1
- package/themes/thalassic/components/progress/_index.scss +3 -0
- package/themes/thalassic/components/progress/_progress-color.scss +5 -0
- package/themes/thalassic/components/progress/_progress-size.scss +13 -0
- package/themes/thalassic/components/progress/_progress.scss +38 -0
- package/themes/thalassic/components/rating/_index.scss +3 -0
- package/themes/thalassic/components/rating/_rating-color.scss +43 -0
- package/themes/thalassic/components/rating/_rating-size.scss +13 -0
- package/themes/thalassic/components/rating/_rating.scss +144 -0
- package/themes/thalassic/components/select/_select-panel.scss +21 -0
- package/themes/thalassic/components/stepper/_index.scss +1 -0
- package/themes/thalassic/components/stepper/_stepper-color.scss +34 -152
- package/themes/thalassic/components/stepper/_stepper-label-position.scss +41 -0
- package/themes/thalassic/components/stepper/_stepper-orientation.scss +13 -1
- package/themes/thalassic/components/stepper/_stepper.scss +37 -11
- package/themes/thalassic/components/toast/_toast.scss +4 -3
- package/themes/thalassic/mixins/_index.scss +2 -0
- package/themes/thalassic/mixins/_pop.scss +26 -0
- package/themes/thalassic/mixins/_visually-hidden.scss +19 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
@use '../../mixins' as mixins;
|
|
2
|
+
|
|
1
3
|
.tls-stepper {
|
|
2
4
|
--tls-stepper-label-color: var(--color-outline);
|
|
3
|
-
--tls-stepper-background-color: var(--color-surface);
|
|
4
5
|
|
|
5
6
|
--tls-stepper-content-gap: var(--spacing-4);
|
|
6
7
|
|
|
@@ -8,6 +9,8 @@
|
|
|
8
9
|
--tls-stepper-index-size: calc(32px - var(--tls-stepper-index-border-width) * 2);
|
|
9
10
|
|
|
10
11
|
--tls-stepper-index-on-color: var(--color-on-surface);
|
|
12
|
+
// The index circle is opaque so the divider running behind it stays masked;
|
|
13
|
+
// it matches the surface the stepper sits on, which itself stays transparent.
|
|
11
14
|
--tls-stepper-index-background-color: var(--color-surface);
|
|
12
15
|
--tls-stepper-index-border-color: var(--color-outline-variant);
|
|
13
16
|
|
|
@@ -17,15 +20,10 @@
|
|
|
17
20
|
--tls-stepper-divider-color: var(--color-outline-variant);
|
|
18
21
|
--tls-stepper-divider-width: 2px;
|
|
19
22
|
|
|
20
|
-
background: var(--tls-stepper-background-color);
|
|
21
|
-
|
|
22
23
|
display: flex;
|
|
23
24
|
flex-direction: column;
|
|
24
25
|
gap: var(--tls-stepper-content-gap);
|
|
25
26
|
|
|
26
|
-
transition: border-color var(--motion-theme),
|
|
27
|
-
background-color var(--motion-theme);
|
|
28
|
-
|
|
29
27
|
&.tls-stepper--completed {
|
|
30
28
|
.tls-stepper-content {
|
|
31
29
|
.tls-step {
|
|
@@ -69,14 +67,33 @@
|
|
|
69
67
|
position: relative;
|
|
70
68
|
z-index: 1;
|
|
71
69
|
|
|
70
|
+
padding: 0;
|
|
71
|
+
|
|
72
72
|
display: flex;
|
|
73
73
|
flex-direction: column;
|
|
74
74
|
gap: var(--spacing-2);
|
|
75
75
|
|
|
76
|
+
border: none;
|
|
77
|
+
|
|
78
|
+
background: none;
|
|
79
|
+
|
|
80
|
+
font: inherit;
|
|
81
|
+
text-align: start;
|
|
76
82
|
color: var(--tls-stepper-label-color);
|
|
77
83
|
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
cursor: pointer;
|
|
85
|
+
|
|
86
|
+
@include mixins.motion {
|
|
87
|
+
transition: color var(--motion-fast);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@include mixins.touch-target(var(--tls-stepper-index-size));
|
|
91
|
+
|
|
92
|
+
&:focus-visible {
|
|
93
|
+
@include mixins.focus-ring;
|
|
94
|
+
|
|
95
|
+
border-radius: var(--radius-sm);
|
|
96
|
+
}
|
|
80
97
|
|
|
81
98
|
// The header is a tablist: it resolves the clicked step from
|
|
82
99
|
// `event.target` and ignores any target that is not an `HTMLElement`,
|
|
@@ -101,13 +118,15 @@
|
|
|
101
118
|
color: var(--tls-stepper-index-on-color);
|
|
102
119
|
background-color: var(--tls-stepper-index-background-color);
|
|
103
120
|
|
|
104
|
-
|
|
121
|
+
@include mixins.motion {
|
|
122
|
+
transition: background-color var(--motion-fast), border-color var(--motion-fast);
|
|
123
|
+
}
|
|
105
124
|
}
|
|
106
125
|
|
|
107
126
|
&__text {
|
|
108
127
|
display: flex;
|
|
109
128
|
flex-direction: column;
|
|
110
|
-
gap:
|
|
129
|
+
gap: var(--spacing-1);
|
|
111
130
|
|
|
112
131
|
.tls-stepper-header-button__label {
|
|
113
132
|
font-size: var(--font-label-large-size);
|
|
@@ -123,6 +142,11 @@
|
|
|
123
142
|
letter-spacing: var(--font-label-medium-letter-spacing);
|
|
124
143
|
}
|
|
125
144
|
}
|
|
145
|
+
|
|
146
|
+
// State text (completed / invalid) for assistive technology only.
|
|
147
|
+
&__state {
|
|
148
|
+
@include mixins.visually-hidden;
|
|
149
|
+
}
|
|
126
150
|
}
|
|
127
151
|
|
|
128
152
|
.tls-stepper-header__divider {
|
|
@@ -130,7 +154,9 @@
|
|
|
130
154
|
|
|
131
155
|
background-color: var(--tls-stepper-divider-color);
|
|
132
156
|
|
|
133
|
-
|
|
157
|
+
@include mixins.motion {
|
|
158
|
+
transition: background-color var(--motion-fast);
|
|
159
|
+
}
|
|
134
160
|
}
|
|
135
161
|
}
|
|
136
162
|
}
|
|
@@ -138,15 +138,16 @@
|
|
|
138
138
|
&__title {
|
|
139
139
|
margin: 0;
|
|
140
140
|
|
|
141
|
-
font-size: var(--font-size
|
|
141
|
+
font-size: var(--font-body-small-size);
|
|
142
142
|
font-weight: var(--font-weight-semibold);
|
|
143
|
+
line-height: var(--font-body-small-line-height);
|
|
143
144
|
}
|
|
144
145
|
|
|
145
146
|
&__message {
|
|
146
147
|
margin: 0;
|
|
147
148
|
|
|
148
|
-
font-size: var(--font-size
|
|
149
|
-
line-height:
|
|
149
|
+
font-size: var(--font-body-small-size);
|
|
150
|
+
line-height: var(--font-body-small-line-height);
|
|
150
151
|
overflow-wrap: anywhere;
|
|
151
152
|
}
|
|
152
153
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@use 'motion';
|
|
2
|
+
|
|
3
|
+
// A quick grow-and-settle acknowledging a just-committed selection: the element
|
|
4
|
+
// scales up to `--tls-pop-scale` and springs back. Only the peak is keyframed —
|
|
5
|
+
// the edges fill in from the element's underlying transform, so the pop rides
|
|
6
|
+
// on top of whatever scale the element already has (e.g. a hover grow) instead
|
|
7
|
+
// of snapping it back to 1 first.
|
|
8
|
+
@keyframes tls-pop {
|
|
9
|
+
50% {
|
|
10
|
+
transform: scale(var(--tls-pop-scale, 1.3));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@mixin pop(
|
|
15
|
+
$scale: 1.3,
|
|
16
|
+
$duration: var(--motion-default),
|
|
17
|
+
$easing: var(--motion-ease-spring)
|
|
18
|
+
) {
|
|
19
|
+
// Selection feedback is expressive — the committed state already reads
|
|
20
|
+
// without it — so the pop belongs to the `full` tier only.
|
|
21
|
+
@include motion.motion(full) {
|
|
22
|
+
--tls-pop-scale: #{$scale};
|
|
23
|
+
|
|
24
|
+
animation: tls-pop $duration $easing;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Removes an element from the visual layout while leaving it in the accessibility tree, so the
|
|
2
|
+
// text keeps naming its control for assistive technology. Use it instead of `display: none`
|
|
3
|
+
// whenever hiding content would otherwise strip a control's accessible name.
|
|
4
|
+
@mixin visually-hidden {
|
|
5
|
+
position: absolute;
|
|
6
|
+
|
|
7
|
+
width: 1px;
|
|
8
|
+
height: 1px;
|
|
9
|
+
|
|
10
|
+
margin: -1px;
|
|
11
|
+
padding: 0;
|
|
12
|
+
|
|
13
|
+
border: 0;
|
|
14
|
+
|
|
15
|
+
white-space: nowrap;
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
|
|
18
|
+
clip-path: inset(50%);
|
|
19
|
+
}
|