@thalassic/themes 0.15.3 → 0.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/_form-item.scss +8 -7
- package/themes/thalassic/components/_input-number.scss +11 -0
- package/themes/thalassic/components/_menu.scss +4 -2
- package/themes/thalassic/components/_popover.scss +4 -0
- package/themes/thalassic/components/date-time-picker/_calendar.scss +0 -1
- package/themes/thalassic/components/date-time-picker/_mixins.scss +0 -5
- package/themes/thalassic/components/date-time-picker/_time-picker.scss +0 -1
- package/themes/thalassic/components/index.scss +1 -0
- package/themes/thalassic/components/multi-select/_multi-select-panel.scss +4 -2
- package/themes/thalassic/components/select/_select-panel.scss +4 -2
- package/themes/thalassic/mixins/_index.scss +2 -0
- package/themes/thalassic/mixins/_motion.scss +21 -0
- package/themes/thalassic/mixins/_panel-open.scss +33 -0
- package/themes/thalassic/semantic/_control.scss +2 -2
- /package/themes/thalassic/mixins/{focus-ring.scss → _focus-ring.scss} +0 -0
package/package.json
CHANGED
|
@@ -8,12 +8,6 @@
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
&.tls-form-item--required {
|
|
12
|
-
.form-item-label__required {
|
|
13
|
-
display: inline;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
11
|
&.tls-form-item--label-space-reserved {
|
|
18
12
|
.form-item-label {
|
|
19
13
|
min-height: var(--font-label-medium-line-height);
|
|
@@ -46,13 +40,20 @@
|
|
|
46
40
|
letter-spacing: var(--font-label-medium-letter-spacing);
|
|
47
41
|
|
|
48
42
|
&__required {
|
|
49
|
-
display: none;
|
|
50
43
|
color: var(--color-danger);
|
|
51
44
|
|
|
52
45
|
font-size: var(--font-label-large-size);
|
|
53
46
|
font-weight: var(--font-label-large-weight);
|
|
54
47
|
letter-spacing: var(--font-label-large-letter-spacing);
|
|
55
48
|
}
|
|
49
|
+
|
|
50
|
+
&__optional {
|
|
51
|
+
color: var(--color-on-surface-variant);
|
|
52
|
+
|
|
53
|
+
font-size: var(--font-label-small-size);
|
|
54
|
+
font-weight: var(--font-label-small-weight);
|
|
55
|
+
letter-spacing: var(--font-label-small-letter-spacing);
|
|
56
|
+
}
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
.form-item-error {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use '../mixins' as mixins;
|
|
2
|
+
|
|
1
3
|
.tls-menu {
|
|
2
4
|
--tls-menu-min-width: 160px;
|
|
3
5
|
--tls-menu-padding-block: var(--spacing-1);
|
|
@@ -35,6 +37,8 @@
|
|
|
35
37
|
|
|
36
38
|
overflow: hidden;
|
|
37
39
|
|
|
40
|
+
@include mixins.panel-open;
|
|
41
|
+
|
|
38
42
|
&__item {
|
|
39
43
|
width: 100%;
|
|
40
44
|
padding-block: var(--tls-menu-item-padding-block);
|
|
@@ -59,8 +63,6 @@
|
|
|
59
63
|
line-height: var(--font-body-medium-line-height);
|
|
60
64
|
letter-spacing: var(--font-body-medium-letter-spacing);
|
|
61
65
|
|
|
62
|
-
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
63
|
-
|
|
64
66
|
&:hover:not(:disabled):not(&--disabled) {
|
|
65
67
|
background-color: var(--tls-menu-item-background-hover);
|
|
66
68
|
}
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
color: var(--color-on-surface);
|
|
20
20
|
|
|
21
21
|
cursor: pointer;
|
|
22
|
-
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
23
22
|
|
|
24
23
|
&:hover {
|
|
25
24
|
background-color: var(--color-surface-container-high);
|
|
@@ -64,8 +63,6 @@
|
|
|
64
63
|
|
|
65
64
|
cursor: pointer;
|
|
66
65
|
|
|
67
|
-
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
68
|
-
|
|
69
66
|
&:hover {
|
|
70
67
|
background-color: var(--color-surface-container-high);
|
|
71
68
|
}
|
|
@@ -91,8 +88,6 @@
|
|
|
91
88
|
|
|
92
89
|
cursor: pointer;
|
|
93
90
|
|
|
94
|
-
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
95
|
-
|
|
96
91
|
svg {
|
|
97
92
|
width: 8px;
|
|
98
93
|
height: 14px;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use '../../mixins' as mixins;
|
|
2
|
+
|
|
1
3
|
.tls-multi-select__panel {
|
|
2
4
|
--tls-multi-select-panel-max-height: 240px;
|
|
3
5
|
--tls-multi-select-panel-padding-block: var(--spacing-1);
|
|
@@ -19,6 +21,8 @@
|
|
|
19
21
|
|
|
20
22
|
overflow-y: auto;
|
|
21
23
|
list-style: none;
|
|
24
|
+
|
|
25
|
+
@include mixins.panel-open;
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
.tls-multi-select__option {
|
|
@@ -63,8 +67,6 @@
|
|
|
63
67
|
line-height: var(--font-body-medium-line-height);
|
|
64
68
|
letter-spacing: var(--font-body-medium-letter-spacing);
|
|
65
69
|
|
|
66
|
-
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
67
|
-
|
|
68
70
|
&:focus-visible {
|
|
69
71
|
outline: none;
|
|
70
72
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use '../../mixins' as mixins;
|
|
2
|
+
|
|
1
3
|
.tls-select__panel {
|
|
2
4
|
--tls-select-panel-max-height: 240px;
|
|
3
5
|
--tls-select-panel-padding-block: var(--spacing-1);
|
|
@@ -19,6 +21,8 @@
|
|
|
19
21
|
|
|
20
22
|
overflow-y: auto;
|
|
21
23
|
list-style: none;
|
|
24
|
+
|
|
25
|
+
@include mixins.panel-open;
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
.tls-select__option {
|
|
@@ -61,8 +65,6 @@
|
|
|
61
65
|
line-height: var(--font-body-medium-line-height);
|
|
62
66
|
letter-spacing: var(--font-body-medium-letter-spacing);
|
|
63
67
|
|
|
64
|
-
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
65
|
-
|
|
66
68
|
&:focus-visible {
|
|
67
69
|
outline: none;
|
|
68
70
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Gates its content on the resolved motion level reflected by `MotionService`
|
|
2
|
+
// onto the document root (`data-motion` attribute).
|
|
3
|
+
//
|
|
4
|
+
// - `essential`: functional motion (panel origin cues, focus). Plays at the
|
|
5
|
+
// `essential` and `full` levels.
|
|
6
|
+
// - `full`: expressive/decorative motion. Plays only at the `full` level.
|
|
7
|
+
//
|
|
8
|
+
// At the `none` level (or when no attribute is present) nothing is emitted, so
|
|
9
|
+
// the wrapped animation never runs.
|
|
10
|
+
@mixin motion($tier: essential) {
|
|
11
|
+
@if $tier == full {
|
|
12
|
+
:root[data-motion='full'] & {
|
|
13
|
+
@content;
|
|
14
|
+
}
|
|
15
|
+
} @else {
|
|
16
|
+
:root[data-motion='essential'] &,
|
|
17
|
+
:root[data-motion='full'] & {
|
|
18
|
+
@content;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@use 'motion';
|
|
2
|
+
|
|
3
|
+
@keyframes tls-panel-open {
|
|
4
|
+
from {
|
|
5
|
+
opacity: 0;
|
|
6
|
+
transform: translateY(-4px) scale(0.98);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
to {
|
|
10
|
+
opacity: 1;
|
|
11
|
+
transform: translateY(0) scale(1);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@mixin panel-open(
|
|
16
|
+
$duration: var(--motion-instant),
|
|
17
|
+
$enter-easing: var(--motion-ease-out),
|
|
18
|
+
$leave-easing: var(--motion-ease-in)
|
|
19
|
+
) {
|
|
20
|
+
transform-origin: top center;
|
|
21
|
+
|
|
22
|
+
// Panel motion is a functional origin cue, so it belongs to the `essential`
|
|
23
|
+
// tier and survives reduced motion (resolved by `MotionService`).
|
|
24
|
+
@include motion.motion(essential) {
|
|
25
|
+
&--enter {
|
|
26
|
+
animation: tls-panel-open $duration $enter-easing both;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&--leave {
|
|
30
|
+
animation: tls-panel-open $duration $leave-easing reverse both;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
File without changes
|