@educarehq/solaris-ui 0.27.3 → 2.0.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/fesm2022/educarehq-solaris-ui-holidays-en-US-mijc8PUa.mjs +96 -0
- package/fesm2022/educarehq-solaris-ui-holidays-en-US-mijc8PUa.mjs.map +1 -0
- package/fesm2022/educarehq-solaris-ui-holidays-es-rZHStdFY.mjs +72 -0
- package/fesm2022/educarehq-solaris-ui-holidays-es-rZHStdFY.mjs.map +1 -0
- package/fesm2022/educarehq-solaris-ui-holidays-pt-BR-BIt7aq4i.mjs +127 -0
- package/fesm2022/educarehq-solaris-ui-holidays-pt-BR-BIt7aq4i.mjs.map +1 -0
- package/fesm2022/educarehq-solaris-ui.mjs +82187 -18398
- package/fesm2022/educarehq-solaris-ui.mjs.map +1 -1
- package/package.json +14 -8
- package/styles/_button.scss +494 -270
- package/styles/_core.scss +3 -0
- package/styles/_dropdown-menu.scss +3 -3
- package/styles/_form-field.scss +116 -0
- package/styles/_icon-button.scss +577 -210
- package/styles/_index.scss +3 -0
- package/styles/_input.scss +113 -63
- package/styles/_loading-zone.scss +7 -0
- package/styles/_motion.scss +14 -0
- package/styles/_popover.scss +5 -4
- package/styles/_textarea.scss +97 -47
- package/styles/_theme.scss +12 -0
- package/styles/token/color/_dark.scss +61 -51
- package/styles/token/color/_high-contrast.scss +157 -122
- package/styles/token/color/_light.scss +62 -52
- package/styles/token/density/_comfortable.scss +12 -12
- package/styles/token/density/_compact.scss +13 -13
- package/styles/token/density/_normal.scss +13 -13
- package/styles/token/focus/_focus.scss +4 -2
- package/styles/token/motion/_index.scss +2 -0
- package/styles/token/motion/_motion-keyframes.scss +188 -0
- package/styles/token/motion/_motion-mixins.scss +213 -0
- package/styles/token/motion/_motion.scss +4 -1
- package/styles/token/motion/_reduced-motion.scss +2 -0
- package/styles/token/radius/_radius.scss +1 -0
- package/styles/token/sizing/_control-height.scss +42 -0
- package/styles/token/sizing/_control-matrix.scss +37 -0
- package/styles/token/sizing/_index.scss +2 -0
- package/styles/token/spacing/_spacing.scss +19 -16
- package/styles/token/typography/_font-family.scss +1 -2
- package/styles/token/typography/_typography.scss +15 -11
- package/types/educarehq-solaris-ui.d.ts +17665 -4154
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--solaris-focus-ring-width: 2px;
|
|
3
3
|
--solaris-focus-ring-offset: 2px;
|
|
4
|
-
--solaris-focus-ring-color: var(--solaris-primary-
|
|
4
|
+
--solaris-focus-ring-color: var(--solaris-primary-solid);
|
|
5
5
|
--solaris-focus-ring-style: solid;
|
|
6
|
+
--solaris-focus-ring-shadow: 0 0 0 var(--solaris-focus-ring-width)
|
|
7
|
+
var(--solaris-focus-ring-color);
|
|
6
8
|
}
|
|
7
9
|
|
|
8
10
|
[data-theme='dark'] {
|
|
9
|
-
--solaris-focus-ring-color: var(--solaris-primary-hover);
|
|
11
|
+
--solaris-focus-ring-color: var(--solaris-primary-solid-hover);
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
[data-theme='high-contrast'] {
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/// Solaris UI — Shared motion keyframes.
|
|
2
|
+
///
|
|
3
|
+
/// Emitted once globally via `core()`. Components reference these keyframes by
|
|
4
|
+
/// name together with the `--solaris-motion-duration-*` / `--solaris-motion-easing-*`
|
|
5
|
+
/// tokens. Never hardcode durations or easings here.
|
|
6
|
+
///
|
|
7
|
+
/// Convention: `-enter` runs with `decelerate`, `-exit` runs with `accelerate`.
|
|
8
|
+
/// Slide distance follows `--solaris-motion-translate-sm` (4px, subtle by design).
|
|
9
|
+
|
|
10
|
+
@mixin solaris-motion-keyframes {
|
|
11
|
+
@keyframes solaris-motion-overlay-enter {
|
|
12
|
+
from {
|
|
13
|
+
opacity: 0;
|
|
14
|
+
transform: translateY(var(--solaris-motion-translate-sm)) scale(0.98);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
to {
|
|
18
|
+
opacity: 1;
|
|
19
|
+
transform: translateY(0) scale(1);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@keyframes solaris-motion-overlay-exit {
|
|
24
|
+
from {
|
|
25
|
+
opacity: 1;
|
|
26
|
+
transform: translateY(0) scale(1);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
to {
|
|
30
|
+
opacity: 0;
|
|
31
|
+
transform: translateY(var(--solaris-motion-translate-sm)) scale(0.98);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@keyframes solaris-motion-overlay-enter-top {
|
|
36
|
+
from {
|
|
37
|
+
opacity: 0;
|
|
38
|
+
transform: translateY(calc(-1 * var(--solaris-motion-translate-sm)))
|
|
39
|
+
scale(0.98);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
to {
|
|
43
|
+
opacity: 1;
|
|
44
|
+
transform: translateY(0) scale(1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@keyframes solaris-motion-overlay-exit-top {
|
|
49
|
+
from {
|
|
50
|
+
opacity: 1;
|
|
51
|
+
transform: translateY(0) scale(1);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
to {
|
|
55
|
+
opacity: 0;
|
|
56
|
+
transform: translateY(calc(-1 * var(--solaris-motion-translate-sm)))
|
|
57
|
+
scale(0.98);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@keyframes solaris-motion-dialog-enter {
|
|
62
|
+
from {
|
|
63
|
+
opacity: 0;
|
|
64
|
+
transform: scale(var(--solaris-motion-scale-enter));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
to {
|
|
68
|
+
opacity: 1;
|
|
69
|
+
transform: scale(1);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@keyframes solaris-motion-dialog-exit {
|
|
74
|
+
from {
|
|
75
|
+
opacity: 1;
|
|
76
|
+
transform: scale(1);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
to {
|
|
80
|
+
opacity: 0;
|
|
81
|
+
transform: scale(var(--solaris-motion-scale-enter));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@keyframes solaris-motion-backdrop-enter {
|
|
86
|
+
from {
|
|
87
|
+
opacity: 0;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
to {
|
|
91
|
+
opacity: 1;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@keyframes solaris-motion-backdrop-exit {
|
|
96
|
+
from {
|
|
97
|
+
opacity: 1;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
to {
|
|
101
|
+
opacity: 0;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@keyframes solaris-motion-tooltip-enter {
|
|
106
|
+
from {
|
|
107
|
+
opacity: 0;
|
|
108
|
+
transform: scale(var(--solaris-motion-scale-enter));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
to {
|
|
112
|
+
opacity: 1;
|
|
113
|
+
transform: scale(1);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@keyframes solaris-motion-tooltip-exit {
|
|
118
|
+
from {
|
|
119
|
+
opacity: 1;
|
|
120
|
+
transform: scale(1);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
to {
|
|
124
|
+
opacity: 0;
|
|
125
|
+
transform: scale(var(--solaris-motion-scale-enter));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
@keyframes solaris-motion-drawer-enter-left {
|
|
130
|
+
from {
|
|
131
|
+
opacity: 0;
|
|
132
|
+
transform: translateX(calc(-2 * var(--solaris-motion-translate-sm)));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
to {
|
|
136
|
+
opacity: 1;
|
|
137
|
+
transform: translateX(0);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@keyframes solaris-motion-drawer-exit-left {
|
|
142
|
+
from {
|
|
143
|
+
opacity: 1;
|
|
144
|
+
transform: translateX(0);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
to {
|
|
148
|
+
opacity: 0;
|
|
149
|
+
transform: translateX(calc(-2 * var(--solaris-motion-translate-sm)));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
@keyframes solaris-motion-drawer-enter-right {
|
|
154
|
+
from {
|
|
155
|
+
opacity: 0;
|
|
156
|
+
transform: translateX(calc(2 * var(--solaris-motion-translate-sm)));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
to {
|
|
160
|
+
opacity: 1;
|
|
161
|
+
transform: translateX(0);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
@keyframes solaris-motion-drawer-exit-right {
|
|
166
|
+
from {
|
|
167
|
+
opacity: 1;
|
|
168
|
+
transform: translateX(0);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
to {
|
|
172
|
+
opacity: 0;
|
|
173
|
+
transform: translateX(calc(2 * var(--solaris-motion-translate-sm)));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@keyframes solaris-motion-pop-in {
|
|
178
|
+
from {
|
|
179
|
+
opacity: 0;
|
|
180
|
+
transform: scale(0.6);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
to {
|
|
184
|
+
opacity: 1;
|
|
185
|
+
transform: scale(1);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/// Solaris UI — Shared motion mixins.
|
|
2
|
+
///
|
|
3
|
+
/// Opt-in helpers for enter/exit animations. Default consumption remains plain
|
|
4
|
+
/// CSS custom properties; use these mixins when a component needs the standard
|
|
5
|
+
/// overlay/dialog/backdrop/tooltip motion without copy-pasting declarations.
|
|
6
|
+
///
|
|
7
|
+
/// Every animation mixin only sets `animation`. Pair it with the reduced-motion
|
|
8
|
+
/// guard (`solaris-motion-reduced-off`) following the collapsible pattern:
|
|
9
|
+
/// `@media (prefers-reduced-motion: reduce)` + `:host-context([data-reduced-motion='true'])`.
|
|
10
|
+
|
|
11
|
+
/// Standard overlay (popover, dropdown, select panels, mega-menu) enter.
|
|
12
|
+
@mixin solaris-motion-overlay-enter(
|
|
13
|
+
$duration: var(--solaris-motion-duration-normal),
|
|
14
|
+
$easing: var(--solaris-motion-easing-decelerate)
|
|
15
|
+
) {
|
|
16
|
+
animation: solaris-motion-overlay-enter $duration $easing both;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/// Standard overlay exit. Runs on `[data-closing]` (see motion refactor docs).
|
|
20
|
+
@mixin solaris-motion-overlay-exit(
|
|
21
|
+
$duration: var(
|
|
22
|
+
--solaris-motion-duration-exit,
|
|
23
|
+
var(--solaris-motion-duration-fast)
|
|
24
|
+
),
|
|
25
|
+
$easing: var(--solaris-motion-easing-accelerate)
|
|
26
|
+
) {
|
|
27
|
+
animation: solaris-motion-overlay-exit $duration $easing both;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/// Overlay enter for panels attached above the trigger (`data-connected-side="top"`).
|
|
31
|
+
@mixin solaris-motion-overlay-enter-top(
|
|
32
|
+
$duration: var(--solaris-motion-duration-normal),
|
|
33
|
+
$easing: var(--solaris-motion-easing-decelerate)
|
|
34
|
+
) {
|
|
35
|
+
animation: solaris-motion-overlay-enter-top $duration $easing both;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/// Overlay exit for panels attached above the trigger.
|
|
39
|
+
@mixin solaris-motion-overlay-exit-top(
|
|
40
|
+
$duration: var(
|
|
41
|
+
--solaris-motion-duration-exit,
|
|
42
|
+
var(--solaris-motion-duration-fast)
|
|
43
|
+
),
|
|
44
|
+
$easing: var(--solaris-motion-easing-accelerate)
|
|
45
|
+
) {
|
|
46
|
+
animation: solaris-motion-overlay-exit-top $duration $easing both;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/// Dialog panel enter (scale + fade, no slide — the panel is large).
|
|
50
|
+
@mixin solaris-motion-dialog-enter(
|
|
51
|
+
$duration: var(--solaris-motion-duration-normal),
|
|
52
|
+
$easing: var(--solaris-motion-easing-decelerate)
|
|
53
|
+
) {
|
|
54
|
+
animation: solaris-motion-dialog-enter $duration $easing both;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/// Dialog panel exit.
|
|
58
|
+
@mixin solaris-motion-dialog-exit(
|
|
59
|
+
$duration: var(
|
|
60
|
+
--solaris-motion-duration-exit,
|
|
61
|
+
var(--solaris-motion-duration-fast)
|
|
62
|
+
),
|
|
63
|
+
$easing: var(--solaris-motion-easing-accelerate)
|
|
64
|
+
) {
|
|
65
|
+
animation: solaris-motion-dialog-exit $duration $easing both;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/// Backdrop fade enter.
|
|
69
|
+
@mixin solaris-motion-backdrop-enter(
|
|
70
|
+
$duration: var(--solaris-motion-duration-normal),
|
|
71
|
+
$easing: var(--solaris-motion-easing-decelerate)
|
|
72
|
+
) {
|
|
73
|
+
animation: solaris-motion-backdrop-enter $duration $easing both;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/// Backdrop fade exit.
|
|
77
|
+
@mixin solaris-motion-backdrop-exit(
|
|
78
|
+
$duration: var(
|
|
79
|
+
--solaris-motion-duration-exit,
|
|
80
|
+
var(--solaris-motion-duration-fast)
|
|
81
|
+
),
|
|
82
|
+
$easing: var(--solaris-motion-easing-accelerate)
|
|
83
|
+
) {
|
|
84
|
+
animation: solaris-motion-backdrop-exit $duration $easing both;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/// Tooltip enter (fast by design — tooltips are ephemeral).
|
|
88
|
+
@mixin solaris-motion-tooltip-enter(
|
|
89
|
+
$duration: var(--solaris-motion-duration-fast),
|
|
90
|
+
$easing: var(--solaris-motion-easing-decelerate)
|
|
91
|
+
) {
|
|
92
|
+
animation: solaris-motion-tooltip-enter $duration $easing both;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/// Tooltip exit.
|
|
96
|
+
@mixin solaris-motion-tooltip-exit(
|
|
97
|
+
$duration: var(--solaris-motion-duration-fast),
|
|
98
|
+
$easing: var(--solaris-motion-easing-accelerate)
|
|
99
|
+
) {
|
|
100
|
+
animation: solaris-motion-tooltip-exit $duration $easing both;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/// Side drawer enter (dialog placements left/right). Slides 8px from the edge.
|
|
104
|
+
@mixin solaris-motion-drawer-enter-left(
|
|
105
|
+
$duration: var(--solaris-motion-duration-normal),
|
|
106
|
+
$easing: var(--solaris-motion-easing-decelerate)
|
|
107
|
+
) {
|
|
108
|
+
animation: solaris-motion-drawer-enter-left $duration $easing both;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/// Side drawer exit (left edge).
|
|
112
|
+
@mixin solaris-motion-drawer-exit-left(
|
|
113
|
+
$duration: var(
|
|
114
|
+
--solaris-motion-duration-exit,
|
|
115
|
+
var(--solaris-motion-duration-fast)
|
|
116
|
+
),
|
|
117
|
+
$easing: var(--solaris-motion-easing-accelerate)
|
|
118
|
+
) {
|
|
119
|
+
animation: solaris-motion-drawer-exit-left $duration $easing both;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/// Side drawer enter (right edge).
|
|
123
|
+
@mixin solaris-motion-drawer-enter-right(
|
|
124
|
+
$duration: var(--solaris-motion-duration-normal),
|
|
125
|
+
$easing: var(--solaris-motion-easing-decelerate)
|
|
126
|
+
) {
|
|
127
|
+
animation: solaris-motion-drawer-enter-right $duration $easing both;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/// Side drawer exit (right edge).
|
|
131
|
+
@mixin solaris-motion-drawer-exit-right(
|
|
132
|
+
$duration: var(
|
|
133
|
+
--solaris-motion-duration-exit,
|
|
134
|
+
var(--solaris-motion-duration-fast)
|
|
135
|
+
),
|
|
136
|
+
$easing: var(--solaris-motion-easing-accelerate)
|
|
137
|
+
) {
|
|
138
|
+
animation: solaris-motion-drawer-exit-right $duration $easing both;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/// Press feedback (buttons, icon-buttons). Include on the host; pair with
|
|
142
|
+
/// `solaris-motion-press-active` under `:active` / `[data-active]` / `[data-pressed]`.
|
|
143
|
+
/// Components with existing color transitions keep their own `transition` list and
|
|
144
|
+
/// only add the `transform` line plus the active-state mixin (see `_button.scss`).
|
|
145
|
+
@mixin solaris-motion-press {
|
|
146
|
+
transition: transform var(--solaris-motion-duration-fast)
|
|
147
|
+
var(--solaris-motion-easing-decelerate);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/// Press feedback (active state, under `:active`).
|
|
151
|
+
@mixin solaris-motion-press-active {
|
|
152
|
+
transform: scale(var(--solaris-motion-scale-active));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/// Pop-in for small selection indicators (checkbox icon, radio dot).
|
|
156
|
+
/// The target node is inserted on check, so the enter replays per toggle with
|
|
157
|
+
/// zero TS. Skipped under reduced motion via the standard doubled guard.
|
|
158
|
+
@mixin solaris-motion-pop-in(
|
|
159
|
+
$duration: var(--solaris-motion-duration-fast),
|
|
160
|
+
$easing: var(--solaris-motion-easing-decelerate)
|
|
161
|
+
) {
|
|
162
|
+
animation: solaris-motion-pop-in $duration $easing both;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/// Reduced-motion guard. Disables animation/transition on the including selector.
|
|
166
|
+
/// Component must ALSO mirror it under `:host-context([data-reduced-motion='true'])`.
|
|
167
|
+
@mixin solaris-motion-reduced-off {
|
|
168
|
+
@media (prefers-reduced-motion: reduce) {
|
|
169
|
+
animation: none;
|
|
170
|
+
transition: none;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/// Expand/collapse panel (closed state). Open state uses
|
|
175
|
+
/// `solaris-motion-expand-panel-open` under `[data-open]`.
|
|
176
|
+
/// Reference: `collapsible.component.scss` (grid 0fr→1fr + inner opacity).
|
|
177
|
+
@mixin solaris-motion-expand-panel {
|
|
178
|
+
display: grid;
|
|
179
|
+
grid-template-rows: minmax(0, 0fr);
|
|
180
|
+
transition: grid-template-rows var(--solaris-motion-duration-normal)
|
|
181
|
+
var(--solaris-motion-easing-standard);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/// Expand/collapse panel (open state, under `[data-open]`).
|
|
185
|
+
@mixin solaris-motion-expand-panel-open {
|
|
186
|
+
grid-template-rows: minmax(0, 1fr);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/// Expand/collapse inner content (closed state). Keeps `overflow: hidden` +
|
|
190
|
+
/// `opacity: 0`; components keep their own padding declarations/transitions.
|
|
191
|
+
@mixin solaris-motion-expand-inner {
|
|
192
|
+
min-height: 0;
|
|
193
|
+
overflow: hidden;
|
|
194
|
+
opacity: 0;
|
|
195
|
+
transition: opacity var(--solaris-motion-duration-normal)
|
|
196
|
+
var(--solaris-motion-easing-standard);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/// Expand/collapse inner content (open state, under `[data-open]`).
|
|
200
|
+
@mixin solaris-motion-expand-inner-open {
|
|
201
|
+
opacity: 1;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/// Expand/collapse chevron (closed state, on the icon).
|
|
205
|
+
@mixin solaris-motion-chevron {
|
|
206
|
+
transition: transform var(--solaris-motion-duration-normal)
|
|
207
|
+
var(--solaris-motion-easing-standard);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/// Expand/collapse chevron (open state, under `[data-open]`).
|
|
211
|
+
@mixin solaris-motion-chevron-open {
|
|
212
|
+
transform: rotate(180deg);
|
|
213
|
+
}
|
|
@@ -13,5 +13,8 @@
|
|
|
13
13
|
--solaris-motion-easing-linear: linear;
|
|
14
14
|
|
|
15
15
|
--solaris-motion-scale-active: 0.97;
|
|
16
|
-
--solaris-motion-scale-enter: 0.
|
|
16
|
+
--solaris-motion-scale-enter: 0.96;
|
|
17
|
+
|
|
18
|
+
--solaris-motion-duration-exit: var(--solaris-motion-duration-fast);
|
|
19
|
+
--solaris-motion-translate-sm: 4px;
|
|
17
20
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
--solaris-motion-duration-normal: 0ms;
|
|
5
5
|
--solaris-motion-duration-slow: 0ms;
|
|
6
6
|
--solaris-motion-duration-slower: 0ms;
|
|
7
|
+
--solaris-motion-duration-slowest: 0ms;
|
|
7
8
|
}
|
|
8
9
|
}
|
|
9
10
|
|
|
@@ -12,4 +13,5 @@
|
|
|
12
13
|
--solaris-motion-duration-normal: 0ms;
|
|
13
14
|
--solaris-motion-duration-slow: 0ms;
|
|
14
15
|
--solaris-motion-duration-slower: 0ms;
|
|
16
|
+
--solaris-motion-duration-slowest: 0ms;
|
|
15
17
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/// Solaris UI — Control height tokens.
|
|
2
|
+
///
|
|
3
|
+
/// Deterministic heights for every size x density combination, forming a
|
|
4
|
+
/// chained ladder from 28px to 52px in 4px steps: the `sm` of a denser
|
|
5
|
+
/// scale always equals the `lg` of the previous one
|
|
6
|
+
/// (`compact-lg` = `normal-sm` = 36px, `normal-lg` = `comfortable-sm` = 44px).
|
|
7
|
+
///
|
|
8
|
+
/// The ladder measures the control's outer box (what devtools reports for
|
|
9
|
+
/// the host element). It holds because segmented controls render their
|
|
10
|
+
/// container padding at zero, so outer height always equals item height:
|
|
11
|
+
/// keep `--solaris-segmented-control-container-padding: 0` on every
|
|
12
|
+
/// size x density combination or the outer box drifts above the token.
|
|
13
|
+
///
|
|
14
|
+
/// `md` is the base of each density and always matches that density's
|
|
15
|
+
/// `min-height`, so a default (`md`) control aligns with sibling controls
|
|
16
|
+
/// that only consume `--solaris-density-min-height` (form fields, buttons,
|
|
17
|
+
/// selection cards, OTP boxes). This is the contract every component must
|
|
18
|
+
/// follow: the rendered outer height of any size x density combination
|
|
19
|
+
/// must equal its token below, whether the component references the token
|
|
20
|
+
/// directly or arrives at the same value through its own padding and
|
|
21
|
+
/// content math.
|
|
22
|
+
///
|
|
23
|
+
/// Referencing rule: always use the token of your own combination, even
|
|
24
|
+
/// when values coincide across densities (e.g. `normal-sm`, never
|
|
25
|
+
/// `compact-lg`, for a `normal` + `sm` control). Value coincidences are
|
|
26
|
+
/// alignment features, not aliases.
|
|
27
|
+
///
|
|
28
|
+
/// compact: sm 28px | md 32px | lg 36px
|
|
29
|
+
/// normal: sm 36px | md 40px | lg 44px
|
|
30
|
+
/// comfortable: sm 44px | md 48px | lg 52px
|
|
31
|
+
|
|
32
|
+
:root {
|
|
33
|
+
--solaris-control-height-compact-sm: 28px;
|
|
34
|
+
--solaris-control-height-compact-md: 32px;
|
|
35
|
+
--solaris-control-height-compact-lg: 36px;
|
|
36
|
+
--solaris-control-height-normal-sm: 36px;
|
|
37
|
+
--solaris-control-height-normal-md: 40px;
|
|
38
|
+
--solaris-control-height-normal-lg: 44px;
|
|
39
|
+
--solaris-control-height-comfortable-sm: 44px;
|
|
40
|
+
--solaris-control-height-comfortable-md: 48px;
|
|
41
|
+
--solaris-control-height-comfortable-lg: 52px;
|
|
42
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
@mixin solaris-control-matrix($property) {
|
|
2
|
+
&[data-size='sm'][data-density='compact'] {
|
|
3
|
+
#{$property}: var(--solaris-control-height-compact-sm);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
&[data-size='md'][data-density='compact'] {
|
|
7
|
+
#{$property}: var(--solaris-control-height-compact-md);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
&[data-size='lg'][data-density='compact'] {
|
|
11
|
+
#{$property}: var(--solaris-control-height-compact-lg);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
&[data-size='sm'][data-density='normal'] {
|
|
15
|
+
#{$property}: var(--solaris-control-height-normal-sm);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&[data-size='md'][data-density='normal'] {
|
|
19
|
+
#{$property}: var(--solaris-control-height-normal-md);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&[data-size='lg'][data-density='normal'] {
|
|
23
|
+
#{$property}: var(--solaris-control-height-normal-lg);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&[data-size='sm'][data-density='comfortable'] {
|
|
27
|
+
#{$property}: var(--solaris-control-height-comfortable-sm);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&[data-size='md'][data-density='comfortable'] {
|
|
31
|
+
#{$property}: var(--solaris-control-height-comfortable-md);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&[data-size='lg'][data-density='comfortable'] {
|
|
35
|
+
#{$property}: var(--solaris-control-height-comfortable-lg);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--solaris-spacing-0:
|
|
3
|
-
--solaris-spacing-
|
|
4
|
-
--solaris-spacing-
|
|
5
|
-
--solaris-spacing-
|
|
6
|
-
--solaris-spacing-
|
|
7
|
-
--solaris-spacing-
|
|
8
|
-
--solaris-spacing-
|
|
9
|
-
--solaris-spacing-
|
|
10
|
-
--solaris-spacing-
|
|
11
|
-
--solaris-spacing-
|
|
12
|
-
--solaris-spacing-
|
|
13
|
-
--solaris-spacing-
|
|
14
|
-
--solaris-spacing-12:
|
|
15
|
-
--solaris-spacing-
|
|
16
|
-
--solaris-spacing-
|
|
17
|
-
--solaris-spacing-
|
|
2
|
+
--solaris-spacing-0: 00px;
|
|
3
|
+
--solaris-spacing-1: 01px;
|
|
4
|
+
--solaris-spacing-2: 02px;
|
|
5
|
+
--solaris-spacing-3: 04px;
|
|
6
|
+
--solaris-spacing-4: 06px;
|
|
7
|
+
--solaris-spacing-5: 08px;
|
|
8
|
+
--solaris-spacing-6: 12px;
|
|
9
|
+
--solaris-spacing-7: 16px;
|
|
10
|
+
--solaris-spacing-8: 20px;
|
|
11
|
+
--solaris-spacing-9: 24px;
|
|
12
|
+
--solaris-spacing-10: 32px;
|
|
13
|
+
--solaris-spacing-11: 36px;
|
|
14
|
+
--solaris-spacing-12: 40px;
|
|
15
|
+
--solaris-spacing-13: 48px;
|
|
16
|
+
--solaris-spacing-14: 56px;
|
|
17
|
+
--solaris-spacing-15: 64px;
|
|
18
|
+
--solaris-spacing-16: 80px;
|
|
19
|
+
--solaris-spacing-17: 96px;
|
|
20
|
+
--solaris-spacing-18: 128px;
|
|
18
21
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--solaris-font-family-sans:
|
|
3
|
-
Inter,
|
|
4
|
-
'Segoe UI', sans-serif;
|
|
3
|
+
Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
5
4
|
--solaris-font-family-mono:
|
|
6
5
|
'JetBrains Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo,
|
|
7
6
|
monospace;
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--solaris-font-size-
|
|
3
|
-
--solaris-font-size-
|
|
4
|
-
--solaris-font-size-
|
|
5
|
-
--solaris-font-size-
|
|
6
|
-
--solaris-font-size-
|
|
7
|
-
--solaris-font-size-
|
|
8
|
-
--solaris-font-size-
|
|
9
|
-
--solaris-font-size-
|
|
2
|
+
--solaris-font-size-3xs: 8px;
|
|
3
|
+
--solaris-font-size-2xs: 12px;
|
|
4
|
+
--solaris-font-size-xs: 14px;
|
|
5
|
+
--solaris-font-size-sm: 16px;
|
|
6
|
+
--solaris-font-size-md: 18px;
|
|
7
|
+
--solaris-font-size-lg: 20px;
|
|
8
|
+
--solaris-font-size-xl: 24px;
|
|
9
|
+
--solaris-font-size-2xl: 32px;
|
|
10
|
+
--solaris-font-size-3xl: 36px;
|
|
10
11
|
--solaris-font-size-4xl: 48px;
|
|
11
12
|
|
|
13
|
+
--solaris-font-weight-thin: 300;
|
|
12
14
|
--solaris-font-weight-regular: 400;
|
|
13
15
|
--solaris-font-weight-medium: 500;
|
|
14
16
|
--solaris-font-weight-semibold: 600;
|
|
15
17
|
--solaris-font-weight-bold: 700;
|
|
18
|
+
--solaris-font-weight-bolder: 800;
|
|
16
19
|
|
|
17
20
|
--solaris-line-height-none: 1;
|
|
18
|
-
--solaris-line-height-
|
|
19
|
-
--solaris-line-height-
|
|
20
|
-
--solaris-line-height-
|
|
21
|
+
--solaris-line-height-2xs: 1.15;
|
|
22
|
+
--solaris-line-height-xs: 1.25;
|
|
23
|
+
--solaris-line-height-sm: 1.4;
|
|
24
|
+
--solaris-line-height-md: 1.5;
|
|
21
25
|
--solaris-line-height-lg: 1.6;
|
|
22
26
|
|
|
23
27
|
--solaris-letter-spacing-tight: -0.01em;
|