@duskmoon-dev/core 1.18.6 → 1.19.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/README.md +1 -1
- package/dist/cjs/tailwind-plugin.cjs +2 -2
- package/dist/components/bottomsheet.css +69 -0
- package/dist/components/console-page.css +178 -0
- package/dist/components/drawer.css +77 -0
- package/dist/components/home-page.css +94 -0
- package/dist/components/index.css +564 -0
- package/dist/components/navigation.css +63 -0
- package/dist/components/sign-page.css +80 -0
- package/dist/esm/components/bottomsheet.js +69 -0
- package/dist/esm/components/console-page.d.ts +5 -0
- package/dist/esm/components/console-page.js +187 -0
- package/dist/esm/components/drawer.js +77 -0
- package/dist/esm/components/home-page.d.ts +5 -0
- package/dist/esm/components/home-page.js +103 -0
- package/dist/esm/components/navigation.js +63 -0
- package/dist/esm/components/sign-page.d.ts +5 -0
- package/dist/esm/components/sign-page.js +89 -0
- package/dist/index.css +564 -0
- package/dist/index.min.css +1 -1
- package/dist/standalone/duskmoonui-themes.css +1 -1
- package/dist/standalone/duskmoonui.css +566 -2
- package/dist/standalone/duskmoonui.js +17 -6
- package/dist/standalone/duskmoonui.mjs +17 -6
- package/package.json +20 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sign Page Layout
|
|
3
|
+
* Responsive authentication shell driven by its containing width.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@layer components {
|
|
7
|
+
.sign-page {
|
|
8
|
+
container-type: inline-size;
|
|
9
|
+
container-name: sign-page;
|
|
10
|
+
width: 100%;
|
|
11
|
+
min-width: 0;
|
|
12
|
+
min-height: var(--sign-page-min-height, 100dvh);
|
|
13
|
+
overflow: hidden;
|
|
14
|
+
background-color: var(--color-surface);
|
|
15
|
+
color: var(--color-on-surface);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.sign-page-frame {
|
|
19
|
+
display: grid;
|
|
20
|
+
min-height: inherit;
|
|
21
|
+
grid-template-columns: minmax(0, 1fr);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.sign-page-aside {
|
|
25
|
+
display: none;
|
|
26
|
+
position: relative;
|
|
27
|
+
isolation: isolate;
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
padding: clamp(2rem, 6cqi, 5rem);
|
|
30
|
+
background-color: var(--color-primary-container);
|
|
31
|
+
color: var(--color-on-primary-container);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.sign-page-aside::before,
|
|
35
|
+
.sign-page-aside::after {
|
|
36
|
+
content: "";
|
|
37
|
+
position: absolute;
|
|
38
|
+
z-index: -1;
|
|
39
|
+
border-radius: var(--radius-full);
|
|
40
|
+
background: color-mix(in oklch, var(--color-tertiary) 24%, transparent);
|
|
41
|
+
filter: blur(1px);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.sign-page-aside::before {
|
|
45
|
+
width: 22rem;
|
|
46
|
+
height: 22rem;
|
|
47
|
+
inset: -8rem -6rem auto auto;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.sign-page-aside::after {
|
|
51
|
+
width: 15rem;
|
|
52
|
+
height: 15rem;
|
|
53
|
+
inset: auto auto -5rem -4rem;
|
|
54
|
+
background: color-mix(in oklch, var(--color-secondary) 22%, transparent);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.sign-page-main {
|
|
58
|
+
display: grid;
|
|
59
|
+
place-items: center;
|
|
60
|
+
min-width: 0;
|
|
61
|
+
padding: clamp(1rem, 6cqi, 4rem);
|
|
62
|
+
background-color: var(--color-surface);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.sign-page-content {
|
|
66
|
+
width: min(100%, 30rem);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@container sign-page (min-width: 48rem) {
|
|
70
|
+
.sign-page-frame {
|
|
71
|
+
grid-template-columns: minmax(20rem, 1.15fr) minmax(24rem, 0.85fr);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.sign-page-aside {
|
|
75
|
+
display: flex;
|
|
76
|
+
flex-direction: column;
|
|
77
|
+
justify-content: space-between;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -21,6 +21,26 @@ export const css = `/**
|
|
|
21
21
|
visibility: visible;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/* Native surfaces keep the browser's closed state and reset UA dialog/popover geometry. */
|
|
25
|
+
:where(.bottomsheet[popover], dialog.bottomsheet) {
|
|
26
|
+
inset: auto;
|
|
27
|
+
margin: 0;
|
|
28
|
+
width: auto;
|
|
29
|
+
height: auto;
|
|
30
|
+
padding: 0;
|
|
31
|
+
border: 0;
|
|
32
|
+
color: var(--color-on-surface);
|
|
33
|
+
max-width: none;
|
|
34
|
+
max-height: none;
|
|
35
|
+
overflow: auto;
|
|
36
|
+
box-sizing: border-box;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.bottomsheet[popover]:not(:popover-open),
|
|
40
|
+
dialog.bottomsheet:not([open]) {
|
|
41
|
+
display: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
24
44
|
/* Base Bottom Sheet */
|
|
25
45
|
.bottomsheet {
|
|
26
46
|
position: fixed;
|
|
@@ -322,8 +342,57 @@ export const css = `/**
|
|
|
322
342
|
}
|
|
323
343
|
}
|
|
324
344
|
|
|
345
|
+
/* Native state overrides legacy transforms without requiring class toggles. */
|
|
346
|
+
.bottomsheet[popover],
|
|
347
|
+
dialog.bottomsheet {
|
|
348
|
+
transition: transform 300ms ease-out, opacity 300ms ease-out,
|
|
349
|
+
display 300ms allow-discrete, overlay 300ms allow-discrete;
|
|
350
|
+
opacity: 0;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.bottomsheet[popover]:popover-open,
|
|
354
|
+
dialog.bottomsheet[open] {
|
|
355
|
+
display: flex;
|
|
356
|
+
transform: translate(0, 0);
|
|
357
|
+
opacity: 1;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
dialog.bottomsheet::backdrop {
|
|
361
|
+
background-color: color-mix(in srgb, var(--color-scrim) 50%, transparent);
|
|
362
|
+
opacity: 0;
|
|
363
|
+
transition: opacity 300ms ease-out, display 300ms allow-discrete,
|
|
364
|
+
overlay 300ms allow-discrete;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
dialog.bottomsheet[open]::backdrop {
|
|
368
|
+
opacity: 1;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
@starting-style {
|
|
372
|
+
.bottomsheet[popover]:popover-open,
|
|
373
|
+
dialog.bottomsheet[open],
|
|
374
|
+
dialog.bottomsheet[open]::backdrop {
|
|
375
|
+
opacity: 0;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.bottomsheet[popover]:popover-open,
|
|
379
|
+
dialog.bottomsheet[open] {
|
|
380
|
+
transform: translateY(100%);
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
@media (min-width: 768px) {
|
|
384
|
+
.bottomsheet-responsive[popover]:popover-open,
|
|
385
|
+
dialog.bottomsheet-responsive[open] {
|
|
386
|
+
transform: translateX(100%);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
325
391
|
/* Reduce Motion */
|
|
326
392
|
@media (prefers-reduced-motion: reduce) {
|
|
393
|
+
.bottomsheet[popover],
|
|
394
|
+
dialog.bottomsheet,
|
|
395
|
+
dialog.bottomsheet::backdrop,
|
|
327
396
|
.bottomsheet,
|
|
328
397
|
.bottomsheet-backdrop,
|
|
329
398
|
.bottomsheet-close,
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// Auto-generated from console-page.css
|
|
2
|
+
export const css = `/**
|
|
3
|
+
* Console Page Layout
|
|
4
|
+
* Responsive application shell with expanded, icon-rail, and hidden sidebar states.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@layer components {
|
|
8
|
+
.console-page {
|
|
9
|
+
--console-page-sidebar-width: 17.5rem;
|
|
10
|
+
--console-page-sidebar-compact-width: 5rem;
|
|
11
|
+
container-type: inline-size;
|
|
12
|
+
container-name: console-page;
|
|
13
|
+
width: 100%;
|
|
14
|
+
min-width: 0;
|
|
15
|
+
min-height: var(--console-page-min-height, 100dvh);
|
|
16
|
+
background-color: var(--color-surface);
|
|
17
|
+
color: var(--color-on-surface);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.console-page-frame {
|
|
21
|
+
display: grid;
|
|
22
|
+
min-height: inherit;
|
|
23
|
+
grid-template-areas:
|
|
24
|
+
"appbar"
|
|
25
|
+
"main";
|
|
26
|
+
grid-template-columns: minmax(0, 1fr);
|
|
27
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
28
|
+
transition: grid-template-columns 240ms ease-out;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.console-page-appbar {
|
|
32
|
+
grid-area: appbar;
|
|
33
|
+
z-index: 20;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.console-page-sidebar {
|
|
37
|
+
display: none;
|
|
38
|
+
grid-area: sidebar;
|
|
39
|
+
min-width: 0;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
background-color: var(--color-surface-container-low);
|
|
42
|
+
border-inline-end: 1px solid var(--color-outline-variant);
|
|
43
|
+
transition:
|
|
44
|
+
opacity 160ms ease-out,
|
|
45
|
+
visibility 160ms ease-out;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.console-page-sidebar-header,
|
|
49
|
+
.console-page-sidebar-footer {
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
gap: 0.75rem;
|
|
53
|
+
min-height: 4rem;
|
|
54
|
+
padding: 0.75rem 1rem;
|
|
55
|
+
flex-shrink: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.console-page-sidebar-header {
|
|
59
|
+
border-bottom: 1px solid var(--color-outline-variant);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.console-page-sidebar-body {
|
|
63
|
+
flex: 1;
|
|
64
|
+
min-height: 0;
|
|
65
|
+
overflow-y: auto;
|
|
66
|
+
overflow-x: hidden;
|
|
67
|
+
padding-block: 0.5rem;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.console-page-sidebar-footer {
|
|
71
|
+
border-top: 1px solid var(--color-outline-variant);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.console-page-main {
|
|
75
|
+
grid-area: main;
|
|
76
|
+
min-width: 0;
|
|
77
|
+
overflow: auto;
|
|
78
|
+
padding: clamp(1rem, 4cqi, 2.5rem);
|
|
79
|
+
background-color: var(--color-surface);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.console-page-nav-label {
|
|
83
|
+
overflow: hidden;
|
|
84
|
+
text-overflow: ellipsis;
|
|
85
|
+
white-space: nowrap;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.console-page-sidebar-toggle {
|
|
89
|
+
display: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.console-page-menu-trigger {
|
|
93
|
+
display: inline-flex;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.console-page-mobile-menu {
|
|
97
|
+
max-width: min(20rem, calc(100cqi - 2rem));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@container console-page (min-width: 48rem) {
|
|
101
|
+
.console-page-frame {
|
|
102
|
+
grid-template-areas:
|
|
103
|
+
"appbar appbar"
|
|
104
|
+
"sidebar main";
|
|
105
|
+
grid-template-columns: var(--console-page-sidebar-width) minmax(0, 1fr);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.console-page-sidebar {
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: column;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.console-page-sidebar-toggle {
|
|
114
|
+
display: inline-flex;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.console-page-menu-trigger {
|
|
118
|
+
display: none;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.console-page-mobile-menu {
|
|
122
|
+
display: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.console-page-sidebar-compact .console-page-frame {
|
|
126
|
+
grid-template-columns: var(--console-page-sidebar-compact-width) minmax(0, 1fr);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.console-page-sidebar-compact .console-page-nav-label {
|
|
130
|
+
position: absolute;
|
|
131
|
+
width: 1px;
|
|
132
|
+
height: 1px;
|
|
133
|
+
padding: 0;
|
|
134
|
+
margin: -1px;
|
|
135
|
+
overflow: hidden;
|
|
136
|
+
clip: rect(0, 0, 0, 0);
|
|
137
|
+
white-space: nowrap;
|
|
138
|
+
border: 0;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.console-page-sidebar-compact .console-page-sidebar-header,
|
|
142
|
+
.console-page-sidebar-compact .console-page-sidebar-footer {
|
|
143
|
+
justify-content: center;
|
|
144
|
+
padding-inline: 0.75rem;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.console-page-sidebar-compact .console-page-sidebar-body :is(.nested-menu li > a, .nested-menu li > button, .nested-menu summary) {
|
|
148
|
+
justify-content: center;
|
|
149
|
+
padding-inline: 0.75rem;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.console-page-sidebar-compact .console-page-sidebar-body .drawer-item {
|
|
153
|
+
justify-content: center;
|
|
154
|
+
padding-inline: 0.75rem;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.console-page-sidebar-compact .console-page-sidebar-body :is(.nested-menu-title, details > ul, summary::after) {
|
|
158
|
+
display: none;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.console-page-sidebar-hidden .console-page-frame {
|
|
162
|
+
grid-template-areas:
|
|
163
|
+
"appbar"
|
|
164
|
+
"main";
|
|
165
|
+
grid-template-columns: minmax(0, 1fr);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.console-page-sidebar-hidden .console-page-sidebar {
|
|
169
|
+
display: none;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
@media (prefers-reduced-motion: reduce) {
|
|
174
|
+
.console-page-frame,
|
|
175
|
+
.console-page-sidebar {
|
|
176
|
+
transition: none;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
`;
|
|
181
|
+
|
|
182
|
+
const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
|
|
183
|
+
if (sheet) {
|
|
184
|
+
sheet.replaceSync(css);
|
|
185
|
+
}
|
|
186
|
+
export const styles = sheet;
|
|
187
|
+
export default sheet;
|
|
@@ -21,6 +21,26 @@ export const css = `/**
|
|
|
21
21
|
visibility: visible;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/* Native surfaces keep the browser's closed state and reset UA dialog/popover geometry. */
|
|
25
|
+
:where(.drawer[popover], dialog.drawer) {
|
|
26
|
+
inset: auto;
|
|
27
|
+
margin: 0;
|
|
28
|
+
width: auto;
|
|
29
|
+
height: auto;
|
|
30
|
+
padding: 0;
|
|
31
|
+
border: 0;
|
|
32
|
+
color: var(--color-on-surface);
|
|
33
|
+
max-width: none;
|
|
34
|
+
max-height: none;
|
|
35
|
+
overflow: auto;
|
|
36
|
+
box-sizing: border-box;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.drawer[popover]:not(:popover-open),
|
|
40
|
+
dialog.drawer:not([open]) {
|
|
41
|
+
display: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
24
44
|
/* Base Drawer */
|
|
25
45
|
.drawer {
|
|
26
46
|
position: fixed;
|
|
@@ -359,8 +379,65 @@ export const css = `/**
|
|
|
359
379
|
border-radius: 0;
|
|
360
380
|
}
|
|
361
381
|
|
|
382
|
+
/* Native state overrides legacy transforms without requiring class toggles. */
|
|
383
|
+
.drawer[popover],
|
|
384
|
+
dialog.drawer {
|
|
385
|
+
transition: transform 300ms ease-out, opacity 300ms ease-out,
|
|
386
|
+
display 300ms allow-discrete, overlay 300ms allow-discrete;
|
|
387
|
+
opacity: 0;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.drawer[popover]:popover-open,
|
|
391
|
+
dialog.drawer[open] {
|
|
392
|
+
display: flex;
|
|
393
|
+
transform: translate(0, 0);
|
|
394
|
+
opacity: 1;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
dialog.drawer::backdrop {
|
|
398
|
+
background-color: color-mix(in srgb, var(--color-scrim) 50%, transparent);
|
|
399
|
+
opacity: 0;
|
|
400
|
+
transition: opacity 300ms ease-out, display 300ms allow-discrete,
|
|
401
|
+
overlay 300ms allow-discrete;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
dialog.drawer[open]::backdrop {
|
|
405
|
+
opacity: 1;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
@starting-style {
|
|
409
|
+
.drawer[popover]:popover-open,
|
|
410
|
+
dialog.drawer[open],
|
|
411
|
+
dialog.drawer[open]::backdrop {
|
|
412
|
+
opacity: 0;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
.drawer-left[popover]:popover-open,
|
|
416
|
+
dialog.drawer-left[open] {
|
|
417
|
+
transform: translateX(-100%);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
.drawer-right[popover]:popover-open,
|
|
421
|
+
dialog.drawer-right[open] {
|
|
422
|
+
transform: translateX(100%);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
.drawer-top[popover]:popover-open,
|
|
426
|
+
dialog.drawer-top[open] {
|
|
427
|
+
transform: translateY(-100%);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
.drawer-bottom[popover]:popover-open,
|
|
431
|
+
dialog.drawer-bottom[open] {
|
|
432
|
+
transform: translateY(100%);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
362
436
|
/* Reduce Motion */
|
|
363
437
|
@media (prefers-reduced-motion: reduce) {
|
|
438
|
+
.drawer[popover],
|
|
439
|
+
dialog.drawer,
|
|
440
|
+
dialog.drawer::backdrop,
|
|
364
441
|
.drawer,
|
|
365
442
|
.drawer-backdrop,
|
|
366
443
|
.drawer-close,
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// Auto-generated from home-page.css
|
|
2
|
+
export const css = `/**
|
|
3
|
+
* Home Page Layout
|
|
4
|
+
* App-bar-led public application shell driven by its containing width.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@layer components {
|
|
8
|
+
.home-page {
|
|
9
|
+
container-type: inline-size;
|
|
10
|
+
container-name: home-page;
|
|
11
|
+
width: 100%;
|
|
12
|
+
min-width: 0;
|
|
13
|
+
min-height: var(--home-page-min-height, 100dvh);
|
|
14
|
+
background-color: var(--color-surface);
|
|
15
|
+
color: var(--color-on-surface);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.home-page-frame {
|
|
19
|
+
display: grid;
|
|
20
|
+
min-height: inherit;
|
|
21
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.home-page-header {
|
|
25
|
+
z-index: 10;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.home-page-nav {
|
|
29
|
+
display: none;
|
|
30
|
+
align-items: center;
|
|
31
|
+
gap: 0.25rem;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.home-page-actions {
|
|
35
|
+
display: none;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: 0.25rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.home-page-menu-trigger {
|
|
41
|
+
display: inline-flex;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.home-page-mobile-menu {
|
|
45
|
+
max-width: min(20rem, calc(100cqi - 2rem));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.home-page-main {
|
|
49
|
+
min-width: 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.home-page-content {
|
|
53
|
+
width: min(100%, 80rem);
|
|
54
|
+
margin-inline: auto;
|
|
55
|
+
padding: clamp(1rem, 5cqi, 3rem);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.home-page-hero {
|
|
59
|
+
display: grid;
|
|
60
|
+
align-items: center;
|
|
61
|
+
grid-template-columns: minmax(0, 1fr);
|
|
62
|
+
gap: clamp(2rem, 5cqi, 4rem);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.home-page-footer {
|
|
66
|
+
border-top: 1px solid var(--color-outline-variant);
|
|
67
|
+
background-color: var(--color-surface-container-low);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@container home-page (min-width: 48rem) {
|
|
71
|
+
.home-page-nav {
|
|
72
|
+
display: flex;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.home-page-actions {
|
|
76
|
+
display: flex;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.home-page-menu-trigger {
|
|
80
|
+
display: none;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.home-page-mobile-menu {
|
|
84
|
+
display: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.home-page-content {
|
|
88
|
+
padding-inline: clamp(2rem, 5cqi, 5rem);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.home-page-hero {
|
|
92
|
+
grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.8fr);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
`;
|
|
97
|
+
|
|
98
|
+
const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
|
|
99
|
+
if (sheet) {
|
|
100
|
+
sheet.replaceSync(css);
|
|
101
|
+
}
|
|
102
|
+
export const styles = sheet;
|
|
103
|
+
export default sheet;
|
|
@@ -104,6 +104,65 @@ export const css = `/**
|
|
|
104
104
|
gap: 0.25rem;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
/* Native floating menu. Keep closed popovers hidden despite the base flex layout. */
|
|
108
|
+
.menu[popover] {
|
|
109
|
+
display: none;
|
|
110
|
+
position: absolute;
|
|
111
|
+
inset: auto;
|
|
112
|
+
margin: 0.5rem;
|
|
113
|
+
min-width: 12rem;
|
|
114
|
+
max-width: calc(100vw - 1rem);
|
|
115
|
+
max-height: calc(100dvh - 1rem);
|
|
116
|
+
overflow: auto;
|
|
117
|
+
color: var(--color-on-surface);
|
|
118
|
+
background-color: var(--color-surface-container);
|
|
119
|
+
border: 1px solid var(--color-outline-variant);
|
|
120
|
+
border-radius: var(--radius-md);
|
|
121
|
+
box-shadow: var(--shadow-lg);
|
|
122
|
+
position-area: bottom;
|
|
123
|
+
position-try-fallbacks: flip-block, flip-inline, flip-block flip-inline;
|
|
124
|
+
opacity: 0;
|
|
125
|
+
transform: scale(0.95);
|
|
126
|
+
transition:
|
|
127
|
+
opacity 150ms ease-out,
|
|
128
|
+
transform 150ms ease-out,
|
|
129
|
+
overlay 150ms ease-out allow-discrete,
|
|
130
|
+
display 150ms ease-out allow-discrete;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.menu[popover]:popover-open {
|
|
134
|
+
display: flex;
|
|
135
|
+
opacity: 1;
|
|
136
|
+
transform: scale(1);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@starting-style {
|
|
140
|
+
.menu[popover]:popover-open {
|
|
141
|
+
opacity: 0;
|
|
142
|
+
transform: scale(0.95);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.menu[popover]::backdrop {
|
|
147
|
+
background-color: transparent;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.menu-top[popover] {
|
|
151
|
+
position-area: top;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.menu-bottom[popover] {
|
|
155
|
+
position-area: bottom;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.menu-left[popover] {
|
|
159
|
+
position-area: left;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.menu-right[popover] {
|
|
163
|
+
position-area: right;
|
|
164
|
+
}
|
|
165
|
+
|
|
107
166
|
.menu li {
|
|
108
167
|
display: flex;
|
|
109
168
|
flex-shrink: 0;
|
|
@@ -782,6 +841,10 @@ export const css = `/**
|
|
|
782
841
|
|
|
783
842
|
/* Reduce Motion */
|
|
784
843
|
@media (prefers-reduced-motion: reduce) {
|
|
844
|
+
.menu li > a,
|
|
845
|
+
.menu li > button,
|
|
846
|
+
.menu-item,
|
|
847
|
+
.menu[popover],
|
|
785
848
|
.pagination-item,
|
|
786
849
|
.pagination-prev,
|
|
787
850
|
.pagination-next {
|