@skewedaspect/sleekspace-ui 0.7.1 → 0.8.1
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/dist/components/Button/SkButton.vue.d.ts +8 -0
- package/dist/components/NavBar/SkNavBar.vue.d.ts +1 -0
- package/dist/components/NavBar/context.d.ts +3 -0
- package/dist/components/Page/SkPage.vue.d.ts +127 -30
- package/dist/components/Page/SkPageSidebarToggle.vue.d.ts +41 -0
- package/dist/components/Page/index.d.ts +1 -0
- package/dist/components/Page/types.d.ts +28 -5
- package/dist/components/ScrollArea/SkScrollArea.vue.d.ts +9 -0
- package/dist/components/Select/SkSelectItem.vue.d.ts +6 -18
- package/dist/components/Sidebar/SkSidebar.vue.d.ts +9 -1
- package/dist/components/Skeleton/SkSkeleton.vue.d.ts +2 -2
- package/dist/components/Tabs/SkTabs.vue.d.ts +1 -1
- package/dist/components/TreeView/SkTreeView.vue.d.ts +5 -5
- package/dist/composables/useFocusTrap.d.ts +17 -0
- package/dist/composables/useFocusTrap.test.d.ts +1 -0
- package/dist/composables/usePageDrawer.d.ts +35 -0
- package/dist/index.d.ts +2 -0
- package/dist/sleekspace-ui.css +984 -291
- package/dist/sleekspace-ui.es.js +31559 -29868
- package/dist/sleekspace-ui.umd.js +32210 -30438
- package/dist/styles/mixins/fluidSize.test.d.ts +1 -0
- package/dist/tokens.css +60 -0
- package/llms-full.txt +6349 -0
- package/llms.txt +46 -0
- package/package.json +16 -11
- package/src/components/Button/SkButton.vue +25 -13
- package/src/components/NavBar/SkNavBar.vue +12 -1
- package/src/components/NavBar/context.ts +16 -0
- package/src/components/Page/SkPage.vue +460 -72
- package/src/components/Page/SkPageSidebarToggle.vue +148 -0
- package/src/components/Page/index.ts +1 -0
- package/src/components/Page/types.ts +30 -5
- package/src/components/ScrollArea/SkScrollArea.vue +12 -0
- package/src/components/Select/SkSelectItem.vue +2 -2
- package/src/components/Sidebar/SkSidebar.vue +10 -0
- package/src/components/TreeView/SkTreeView.vue +6 -6
- package/src/composables/useFocusTrap.test.ts +184 -0
- package/src/composables/useFocusTrap.ts +141 -0
- package/src/composables/usePageDrawer.ts +96 -0
- package/src/global.d.ts +1 -0
- package/src/index.ts +5 -0
- package/src/styles/components/_accordion.scss +15 -0
- package/src/styles/components/_alert.scss +1 -0
- package/src/styles/components/_avatar.scss +1 -0
- package/src/styles/components/_breadcrumbs.scss +7 -0
- package/src/styles/components/_button.scss +291 -214
- package/src/styles/components/_checkbox.scss +9 -1
- package/src/styles/components/_collapsible.scss +15 -0
- package/src/styles/components/_color-picker.scss +4 -1
- package/src/styles/components/_input.scss +1 -0
- package/src/styles/components/_listbox.scss +8 -2
- package/src/styles/components/_menu.scss +9 -2
- package/src/styles/components/_modal.scss +18 -2
- package/src/styles/components/_navbar.scss +22 -6
- package/src/styles/components/_number-input.scss +1 -0
- package/src/styles/components/_page.scss +220 -12
- package/src/styles/components/_pagination.scss +10 -1
- package/src/styles/components/_panel.scss +8 -3
- package/src/styles/components/_popover.scss +15 -2
- package/src/styles/components/_progress.scss +14 -0
- package/src/styles/components/_radio.scss +8 -1
- package/src/styles/components/_scroll-area.scss +56 -0
- package/src/styles/components/_select.scss +3 -1
- package/src/styles/components/_sidebar.scss +78 -38
- package/src/styles/components/_skeleton.scss +18 -0
- package/src/styles/components/_slider.scss +1 -0
- package/src/styles/components/_spinner.scss +15 -0
- package/src/styles/components/_switch.scss +5 -0
- package/src/styles/components/_table.scss +1 -0
- package/src/styles/components/_tabs.scss +6 -0
- package/src/styles/components/_tag.scss +2 -0
- package/src/styles/components/_tags-input.scss +1 -0
- package/src/styles/components/_textarea.scss +1 -0
- package/src/styles/components/_toast.scss +16 -1
- package/src/styles/components/_toolbar.scss +2 -0
- package/src/styles/components/_tooltip.scss +14 -1
- package/src/styles/components/_tree-view.scss +6 -1
- package/src/styles/mixins/_index.scss +1 -0
- package/src/styles/mixins/_responsive.scss +184 -0
- package/src/styles/mixins/fluidSize.test.ts +149 -0
- package/src/styles/tokens/_foundation-breakpoints.scss +26 -0
- package/src/styles/tokens/_foundation-z-index.scss +38 -0
- package/src/styles/tokens/index.scss +2 -0
- package/web-types.json +194 -14
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//----------------------------------------------------------------------------------------------------------------------
|
|
4
4
|
|
|
5
5
|
@use '@/styles/mixins/cut-border' as *;
|
|
6
|
+
@use '@/styles/mixins/responsive' as *;
|
|
6
7
|
|
|
7
8
|
//----------------------------------------------------------------------------------------------------------------------
|
|
8
9
|
|
|
@@ -278,3 +279,16 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
|
278
279
|
}
|
|
279
280
|
|
|
280
281
|
//----------------------------------------------------------------------------------------------------------------------
|
|
282
|
+
// Reduced motion: indeterminate progress still communicates "working", just slower. A fully
|
|
283
|
+
// static bar would read as "stopped" or broken.
|
|
284
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
285
|
+
|
|
286
|
+
@include reduced-motion
|
|
287
|
+
{
|
|
288
|
+
.sk-progress-indicator-indeterminate
|
|
289
|
+
{
|
|
290
|
+
animation-duration: 8s;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@use '@/styles/mixins
|
|
1
|
+
@use '@/styles/mixins' as *;
|
|
2
2
|
|
|
3
3
|
//----------------------------------------------------------------------------------------------------------------------
|
|
4
4
|
// Radio Component Styles
|
|
@@ -29,6 +29,11 @@
|
|
|
29
29
|
gap: var(--sk-space-xs);
|
|
30
30
|
cursor: pointer;
|
|
31
31
|
|
|
32
|
+
@include touch
|
|
33
|
+
{
|
|
34
|
+
min-height: 44px;
|
|
35
|
+
}
|
|
36
|
+
|
|
32
37
|
&.sk-disabled
|
|
33
38
|
{
|
|
34
39
|
cursor: not-allowed;
|
|
@@ -47,6 +52,7 @@
|
|
|
47
52
|
// Corner cut size (scales with size variant)
|
|
48
53
|
--sk-radio-cut: 0.3rem;
|
|
49
54
|
|
|
55
|
+
position: relative;
|
|
50
56
|
display: inline-flex;
|
|
51
57
|
align-items: center;
|
|
52
58
|
justify-content: center;
|
|
@@ -230,6 +236,7 @@
|
|
|
230
236
|
|
|
231
237
|
.sk-radio-indicator
|
|
232
238
|
{
|
|
239
|
+
position: relative;
|
|
233
240
|
display: flex;
|
|
234
241
|
align-items: center;
|
|
235
242
|
justify-content: center;
|
|
@@ -26,6 +26,7 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
|
26
26
|
--sk-scroll-area-thumb-color: var(--sk-scroll-area-color-base);
|
|
27
27
|
--sk-scroll-area-track-color: oklch(from var(--sk-neutral-base) l c h / 0.08);
|
|
28
28
|
--sk-scroll-area-size: 0.5rem;
|
|
29
|
+
--sk-scroll-area-fade: 1.5rem;
|
|
29
30
|
|
|
30
31
|
position: relative;
|
|
31
32
|
overflow: hidden;
|
|
@@ -36,6 +37,61 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
|
|
40
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
41
|
+
// Edge fade
|
|
42
|
+
//
|
|
43
|
+
// Applied to the viewport via CSS mask-image so the content visibly tapers at the edges where
|
|
44
|
+
// scrolling is possible. Always-on (not scroll-position aware) -- keeps the pattern pure-CSS
|
|
45
|
+
// and avoids layout shift. Width is tunable via `--sk-scroll-area-fade`.
|
|
46
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
47
|
+
|
|
48
|
+
.sk-scroll-area.sk-fade
|
|
49
|
+
{
|
|
50
|
+
&.sk-vertical .sk-scroll-area-viewport
|
|
51
|
+
{
|
|
52
|
+
mask-image: linear-gradient(
|
|
53
|
+
to bottom,
|
|
54
|
+
transparent 0,
|
|
55
|
+
black var(--sk-scroll-area-fade),
|
|
56
|
+
black calc(100% - var(--sk-scroll-area-fade)),
|
|
57
|
+
transparent 100%
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&.sk-horizontal .sk-scroll-area-viewport
|
|
62
|
+
{
|
|
63
|
+
mask-image: linear-gradient(
|
|
64
|
+
to right,
|
|
65
|
+
transparent 0,
|
|
66
|
+
black var(--sk-scroll-area-fade),
|
|
67
|
+
black calc(100% - var(--sk-scroll-area-fade)),
|
|
68
|
+
transparent 100%
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&.sk-both .sk-scroll-area-viewport
|
|
73
|
+
{
|
|
74
|
+
// Two masks composited with `intersect` so only the center (opaque on both axes) is
|
|
75
|
+
// fully opaque; the remaining three edges fade.
|
|
76
|
+
mask-image:
|
|
77
|
+
linear-gradient(
|
|
78
|
+
to bottom,
|
|
79
|
+
transparent 0,
|
|
80
|
+
black var(--sk-scroll-area-fade),
|
|
81
|
+
black calc(100% - var(--sk-scroll-area-fade)),
|
|
82
|
+
transparent 100%
|
|
83
|
+
),
|
|
84
|
+
linear-gradient(
|
|
85
|
+
to right,
|
|
86
|
+
transparent 0,
|
|
87
|
+
black var(--sk-scroll-area-fade),
|
|
88
|
+
black calc(100% - var(--sk-scroll-area-fade)),
|
|
89
|
+
transparent 100%
|
|
90
|
+
);
|
|
91
|
+
mask-composite: intersect;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
39
95
|
//----------------------------------------------------------------------------------------------------------------------
|
|
40
96
|
// ScrollArea Viewport
|
|
41
97
|
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -132,6 +132,7 @@
|
|
|
132
132
|
|
|
133
133
|
.sk-select-trigger
|
|
134
134
|
{
|
|
135
|
+
position: relative;
|
|
135
136
|
display: flex;
|
|
136
137
|
align-items: center;
|
|
137
138
|
gap: var(--sk-space-sm);
|
|
@@ -253,7 +254,7 @@
|
|
|
253
254
|
max-height: 20rem;
|
|
254
255
|
overflow: auto;
|
|
255
256
|
padding: var(--sk-space-xs);
|
|
256
|
-
z-index:
|
|
257
|
+
z-index: var(--sk-z-dropdown);
|
|
257
258
|
|
|
258
259
|
@include cut-border(
|
|
259
260
|
$cut: 0.625rem,
|
|
@@ -368,6 +369,7 @@
|
|
|
368
369
|
|
|
369
370
|
.sk-select-item
|
|
370
371
|
{
|
|
372
|
+
position: relative;
|
|
371
373
|
display: flex;
|
|
372
374
|
align-items: center;
|
|
373
375
|
justify-content: space-between;
|
|
@@ -15,6 +15,18 @@
|
|
|
15
15
|
width: var(--sk-sidebar-width, 180px);
|
|
16
16
|
flex-shrink: 0;
|
|
17
17
|
|
|
18
|
+
// Stretch the internal panel to fill whatever height the parent gives us. In a page shell
|
|
19
|
+
// the sidebar column is usually a flex item sized to the page height; the chrome should
|
|
20
|
+
// reach top-to-bottom rather than collapsing around its intrinsic content.
|
|
21
|
+
display: flex;
|
|
22
|
+
flex-direction: column;
|
|
23
|
+
|
|
24
|
+
.sk-sidebar-panel
|
|
25
|
+
{
|
|
26
|
+
flex: 1 1 auto;
|
|
27
|
+
min-height: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
18
30
|
// Item theming -- uses same darkened color derivation as button system.
|
|
19
31
|
// --sk-sidebar-color-base is overridden per kind below; bg/hover/active derive automatically.
|
|
20
32
|
--sk-sidebar-color-base: var(--sk-neutral-base);
|
|
@@ -25,15 +37,41 @@
|
|
|
25
37
|
);
|
|
26
38
|
--sk-sidebar-item-hover-bg: color-mix(in oklch, var(--sk-sidebar-item-bg) 85%, white 15%);
|
|
27
39
|
--sk-sidebar-item-hover-text: color-mix(in oklch, var(--sk-sidebar-color-base), white 30%);
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
// Neutral's base is low-chroma, so base-as-text goes invisible on the dark bg.
|
|
41
|
+
// Default to neutral-text; chromatic kinds override back to their base below.
|
|
42
|
+
--sk-sidebar-item-active-text: var(--sk-neutral-text);
|
|
43
|
+
--sk-sidebar-item-active-bg: color-mix(in oklch, var(--sk-sidebar-item-bg) 92%, white 8%);
|
|
30
44
|
|
|
31
|
-
&.sk-primary
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
&.sk-
|
|
45
|
+
&.sk-primary
|
|
46
|
+
{
|
|
47
|
+
--sk-sidebar-color-base: var(--sk-primary-base);
|
|
48
|
+
--sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
|
|
49
|
+
}
|
|
50
|
+
&.sk-accent
|
|
51
|
+
{
|
|
52
|
+
--sk-sidebar-color-base: var(--sk-accent-base);
|
|
53
|
+
--sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
|
|
54
|
+
}
|
|
55
|
+
&.sk-info
|
|
56
|
+
{
|
|
57
|
+
--sk-sidebar-color-base: var(--sk-info-base);
|
|
58
|
+
--sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
|
|
59
|
+
}
|
|
60
|
+
&.sk-success
|
|
61
|
+
{
|
|
62
|
+
--sk-sidebar-color-base: var(--sk-success-base);
|
|
63
|
+
--sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
|
|
64
|
+
}
|
|
65
|
+
&.sk-warning
|
|
66
|
+
{
|
|
67
|
+
--sk-sidebar-color-base: var(--sk-warning-base);
|
|
68
|
+
--sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
|
|
69
|
+
}
|
|
70
|
+
&.sk-danger
|
|
71
|
+
{
|
|
72
|
+
--sk-sidebar-color-base: var(--sk-danger-base);
|
|
73
|
+
--sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
|
|
74
|
+
}
|
|
37
75
|
|
|
38
76
|
.sk-sidebar-nav
|
|
39
77
|
{
|
|
@@ -79,6 +117,17 @@
|
|
|
79
117
|
cursor: pointer;
|
|
80
118
|
display: block;
|
|
81
119
|
|
|
120
|
+
// Coarse-pointer touch-target floor. Parent .sk-sidebar.sk-dense opts out.
|
|
121
|
+
.sk-sidebar:not(.sk-dense) &
|
|
122
|
+
{
|
|
123
|
+
@include touch
|
|
124
|
+
{
|
|
125
|
+
min-height: 44px;
|
|
126
|
+
display: flex;
|
|
127
|
+
align-items: center;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
82
131
|
&:hover
|
|
83
132
|
{
|
|
84
133
|
background: var(--sk-sidebar-item-hover-bg);
|
|
@@ -99,16 +148,8 @@
|
|
|
99
148
|
background: var(--sk-sidebar-item-active-bg);
|
|
100
149
|
color: var(--sk-sidebar-item-active-text);
|
|
101
150
|
font-weight: 600;
|
|
102
|
-
clip-path: polygon(
|
|
103
|
-
10px 0%,
|
|
104
|
-
100% 0%,
|
|
105
|
-
100% calc(100% - 10px),
|
|
106
|
-
calc(100% - 10px) 100%,
|
|
107
|
-
0% 100%,
|
|
108
|
-
0% 10px
|
|
109
|
-
);
|
|
110
151
|
|
|
111
|
-
// Active indicator: 2px
|
|
152
|
+
// Active indicator: 2px vertical bar on the left edge
|
|
112
153
|
&::before
|
|
113
154
|
{
|
|
114
155
|
content: '';
|
|
@@ -116,14 +157,24 @@
|
|
|
116
157
|
inset: 0;
|
|
117
158
|
background: var(--sk-sidebar-color-base);
|
|
118
159
|
clip-path: polygon(
|
|
119
|
-
0%
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
2px 10.83px,
|
|
124
|
-
2px 100%
|
|
160
|
+
0% 0%,
|
|
161
|
+
2px 0%,
|
|
162
|
+
2px 100%,
|
|
163
|
+
0% 100%
|
|
125
164
|
);
|
|
126
165
|
}
|
|
166
|
+
|
|
167
|
+
// Hovering an active item: keep square corners, lighten bg and indicator
|
|
168
|
+
&:hover
|
|
169
|
+
{
|
|
170
|
+
background: var(--sk-sidebar-item-hover-bg);
|
|
171
|
+
clip-path: none;
|
|
172
|
+
|
|
173
|
+
&::before
|
|
174
|
+
{
|
|
175
|
+
background: var(--sk-sidebar-item-hover-text);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
127
178
|
}
|
|
128
179
|
|
|
129
180
|
// Mirrored for right-side placement
|
|
@@ -144,24 +195,13 @@
|
|
|
144
195
|
&.sk-active,
|
|
145
196
|
&.router-link-active
|
|
146
197
|
{
|
|
147
|
-
clip-path: polygon(
|
|
148
|
-
0% 0%,
|
|
149
|
-
calc(100% - 10px) 0%,
|
|
150
|
-
100% 10px,
|
|
151
|
-
100% 100%,
|
|
152
|
-
10px 100%,
|
|
153
|
-
0% calc(100% - 10px)
|
|
154
|
-
);
|
|
155
|
-
|
|
156
198
|
&::before
|
|
157
199
|
{
|
|
158
200
|
clip-path: polygon(
|
|
159
|
-
100%
|
|
160
|
-
100%
|
|
161
|
-
calc(100% -
|
|
162
|
-
|
|
163
|
-
calc(100% - 2px) 10.83px,
|
|
164
|
-
calc(100% - 2px) 100%
|
|
201
|
+
100% 0%,
|
|
202
|
+
calc(100% - 2px) 0%,
|
|
203
|
+
calc(100% - 2px) 100%,
|
|
204
|
+
100% 100%
|
|
165
205
|
);
|
|
166
206
|
}
|
|
167
207
|
}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Skeleton Component Styles
|
|
3
3
|
//----------------------------------------------------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
+
@use '@/styles/mixins/responsive' as *;
|
|
6
|
+
|
|
5
7
|
//----------------------------------------------------------------------------------------------------------------------
|
|
6
8
|
// Base Skeleton
|
|
7
9
|
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -136,3 +138,19 @@
|
|
|
136
138
|
}
|
|
137
139
|
|
|
138
140
|
//----------------------------------------------------------------------------------------------------------------------
|
|
141
|
+
// Reduced motion: skeletons are decorative placeholders -- stop the shimmer/pulse entirely so
|
|
142
|
+
// users who opt out of motion don't get an infinite loop in their peripheral vision. Content
|
|
143
|
+
// still reads as "something loading" via the muted background color.
|
|
144
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
145
|
+
|
|
146
|
+
@include reduced-motion
|
|
147
|
+
{
|
|
148
|
+
.sk-skeleton,
|
|
149
|
+
.sk-skeleton::after,
|
|
150
|
+
.sk-skeleton-shimmer::after
|
|
151
|
+
{
|
|
152
|
+
animation: none;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Spinner Component Styles
|
|
3
3
|
//----------------------------------------------------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
+
@use '@/styles/mixins/responsive' as *;
|
|
6
|
+
|
|
5
7
|
$kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
6
8
|
|
|
7
9
|
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -329,3 +331,16 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
|
329
331
|
}
|
|
330
332
|
|
|
331
333
|
//----------------------------------------------------------------------------------------------------------------------
|
|
334
|
+
// Reduced motion: spinners still communicate "loading", but we slow the animation dramatically
|
|
335
|
+
// (5x) so the motion is less intrusive. Stopping entirely would make the spinner look frozen.
|
|
336
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
337
|
+
|
|
338
|
+
@include reduced-motion
|
|
339
|
+
{
|
|
340
|
+
.sk-spinner *
|
|
341
|
+
{
|
|
342
|
+
animation-duration: 8s !important;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//----------------------------------------------------------------------------------------------------------------------
|
|
4
4
|
|
|
5
5
|
@use '../theme/variables' as *;
|
|
6
|
+
@use '../mixins' as *;
|
|
6
7
|
|
|
7
8
|
//----------------------------------------------------------------------------------------------------------------------
|
|
8
9
|
// Tabs Design Tokens
|
|
@@ -268,6 +269,11 @@
|
|
|
268
269
|
border: none;
|
|
269
270
|
border-radius: 0; // Override any RekaUI defaults
|
|
270
271
|
cursor: pointer;
|
|
272
|
+
|
|
273
|
+
@include touch
|
|
274
|
+
{
|
|
275
|
+
min-height: 44px;
|
|
276
|
+
}
|
|
271
277
|
transition:
|
|
272
278
|
color var(--sk-tab-transition-duration) var(--sk-tab-transition-easing),
|
|
273
279
|
background-color var(--sk-tab-transition-duration) var(--sk-tab-transition-easing),
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{
|
|
13
13
|
// Base styles - fixed positioning for floating viewport
|
|
14
14
|
position: fixed;
|
|
15
|
-
z-index:
|
|
15
|
+
z-index: var(--sk-z-toast);
|
|
16
16
|
display: flex;
|
|
17
17
|
flex-direction: column;
|
|
18
18
|
gap: var(--sk-space-sm);
|
|
@@ -107,6 +107,7 @@
|
|
|
107
107
|
// Base Styles
|
|
108
108
|
//------------------------------------------------------------------------------------------------------------------
|
|
109
109
|
|
|
110
|
+
position: relative;
|
|
110
111
|
display: flex;
|
|
111
112
|
align-items: center;
|
|
112
113
|
gap: var(--sk-toast-gap);
|
|
@@ -329,3 +330,17 @@
|
|
|
329
330
|
}
|
|
330
331
|
|
|
331
332
|
//----------------------------------------------------------------------------------------------------------------------
|
|
333
|
+
// Reduced motion: drop the slide-from-edge so toasts appear and dismiss in place.
|
|
334
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
335
|
+
|
|
336
|
+
@include reduced-motion
|
|
337
|
+
{
|
|
338
|
+
.sk-toast-root[data-state='open'],
|
|
339
|
+
.sk-toast-root[data-state='closed'],
|
|
340
|
+
.sk-toast-root[data-swipe='end']
|
|
341
|
+
{
|
|
342
|
+
animation: none;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -151,6 +151,7 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
|
151
151
|
|
|
152
152
|
.sk-toolbar-button
|
|
153
153
|
{
|
|
154
|
+
position: relative;
|
|
154
155
|
display: flex;
|
|
155
156
|
align-items: center;
|
|
156
157
|
justify-content: center;
|
|
@@ -214,6 +215,7 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
|
214
215
|
|
|
215
216
|
.sk-toolbar-toggle-item
|
|
216
217
|
{
|
|
218
|
+
position: relative;
|
|
217
219
|
display: flex;
|
|
218
220
|
align-items: center;
|
|
219
221
|
justify-content: center;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use '@/styles/mixins/cut-border' as *;
|
|
2
|
+
@use '@/styles/mixins/responsive' as *;
|
|
2
3
|
|
|
3
4
|
.sk-tooltip-content
|
|
4
5
|
{
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
0 0 8px oklch(from var(--sk-tooltip-color-base) l c h / 0.4);
|
|
37
38
|
|
|
38
39
|
max-width: 20rem;
|
|
39
|
-
z-index:
|
|
40
|
+
z-index: var(--sk-z-tooltip);
|
|
40
41
|
|
|
41
42
|
// Content animation
|
|
42
43
|
&[data-state='delayed-open'],
|
|
@@ -204,3 +205,15 @@
|
|
|
204
205
|
transform: scale(0.95);
|
|
205
206
|
}
|
|
206
207
|
}
|
|
208
|
+
|
|
209
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
210
|
+
// Reduced motion: skip the scale-in so the tooltip appears in place.
|
|
211
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
212
|
+
|
|
213
|
+
@include reduced-motion
|
|
214
|
+
{
|
|
215
|
+
.sk-tooltip-content[data-state]
|
|
216
|
+
{
|
|
217
|
+
animation: none;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// TreeView Component Styles
|
|
3
3
|
//----------------------------------------------------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
@use '@/styles/mixins
|
|
5
|
+
@use '@/styles/mixins' as *;
|
|
6
6
|
|
|
7
7
|
$kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
8
8
|
|
|
@@ -57,6 +57,11 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
|
|
|
57
57
|
line-height: 1.5;
|
|
58
58
|
outline: none;
|
|
59
59
|
|
|
60
|
+
@include touch
|
|
61
|
+
{
|
|
62
|
+
min-height: 44px;
|
|
63
|
+
}
|
|
64
|
+
|
|
60
65
|
transition:
|
|
61
66
|
background var(--sk-transition-duration-fast) var(--sk-transition-timing-default);
|
|
62
67
|
|
|
@@ -3,5 +3,6 @@
|
|
|
3
3
|
//----------------------------------------------------------------------------------------------------------------------
|
|
4
4
|
|
|
5
5
|
@forward 'cut-border';
|
|
6
|
+
@forward 'responsive';
|
|
6
7
|
|
|
7
8
|
//----------------------------------------------------------------------------------------------------------------------
|