anentrypoint-design 0.0.202 → 0.0.204
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/app-shell.css +28 -10
- package/dist/247420.css +28 -10
- package/dist/247420.js +9 -9
- package/package.json +1 -1
- package/src/components/content.js +2 -2
- package/src/components/shell.js +12 -8
- package/src/kits/os/theme.css +2 -2
- package/src/kits/os/wm.css +15 -0
- package/src/kits/os/wm.js +15 -6
package/app-shell.css
CHANGED
|
@@ -154,6 +154,9 @@ pre .n { color: var(--green-2); }
|
|
|
154
154
|
============================================================ */
|
|
155
155
|
.app {
|
|
156
156
|
display: flex; flex-direction: column;
|
|
157
|
+
/* Offset parent for the sidebar drawer/scrim/toggle, which are absolute so
|
|
158
|
+
they overlay THIS shell (a thebird WM window) rather than the viewport. */
|
|
159
|
+
position: relative;
|
|
157
160
|
min-height: 100vh;
|
|
158
161
|
/* Definite height so the flex column resolves height:100% for descendants
|
|
159
162
|
(e.g. a full-height chat) at every breakpoint, not just where a desktop
|
|
@@ -2072,6 +2075,12 @@ button:disabled, [disabled] {
|
|
|
2072
2075
|
from { transform: rotate(0deg); }
|
|
2073
2076
|
to { transform: rotate(360deg); }
|
|
2074
2077
|
}
|
|
2078
|
+
/* Reusable spin utility: rotates the element (e.g. a refresh Icon used as a
|
|
2079
|
+
busy indicator) via the shared spinner-rotate keyframe. Respects reduced
|
|
2080
|
+
motion. Use instead of a decorative rotation glyph. */
|
|
2081
|
+
.ds-spin { animation: spinner-rotate 0.8s linear infinite; transform-origin: center; }
|
|
2082
|
+
@media (prefers-reduced-motion: reduce) { .ds-spin { animation: none; } }
|
|
2083
|
+
|
|
2075
2084
|
.loading { position: relative; }
|
|
2076
2085
|
.loading::after {
|
|
2077
2086
|
content: '';
|
|
@@ -2662,14 +2671,20 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
2662
2671
|
============================================================ */
|
|
2663
2672
|
|
|
2664
2673
|
/* Tablet + Mobile: side rail becomes off-canvas drawer (≤900px) */
|
|
2665
|
-
|
|
2674
|
+
/* Sidebar drawer collapse keys on the SHELL width (@container on .app, which is
|
|
2675
|
+
container-type:inline-size) — NOT the viewport. Full-page (freddie) the shell
|
|
2676
|
+
== viewport so this is identical to the old @media(max-width:900px); embedded
|
|
2677
|
+
in a thebird WM window the drawer + hamburger appear when the WINDOW is narrow
|
|
2678
|
+
even on a wide desktop. Drawer/scrim/toggle are absolute (anchored to .app), so
|
|
2679
|
+
they overlay the window, not the page. */
|
|
2680
|
+
@container (max-width: 900px) {
|
|
2666
2681
|
.app-body,
|
|
2667
2682
|
.app-body.no-side { grid-template-columns: 1fr !important; }
|
|
2668
2683
|
.app-side-shell {
|
|
2669
|
-
position:
|
|
2684
|
+
position: absolute;
|
|
2670
2685
|
left: 0; top: var(--app-topbar-h);
|
|
2671
|
-
height: calc(
|
|
2672
|
-
width: 280px; max-width:
|
|
2686
|
+
height: calc(100% - var(--app-topbar-h) - var(--app-status-h));
|
|
2687
|
+
width: 280px; max-width: 80%;
|
|
2673
2688
|
transform: translateX(-100%);
|
|
2674
2689
|
transition: transform var(--dur-base, 240ms) var(--ease, ease);
|
|
2675
2690
|
z-index: 50;
|
|
@@ -2703,21 +2718,24 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
2703
2718
|
.app-main { padding-left: var(--space-3); padding-right: var(--space-3); }
|
|
2704
2719
|
}
|
|
2705
2720
|
|
|
2706
|
-
/* Drawer scrim —
|
|
2721
|
+
/* Drawer scrim — absolute so it covers THIS shell, shown when drawer open and
|
|
2722
|
+
the shell is narrow (@container on .app). */
|
|
2707
2723
|
.app-side-scrim {
|
|
2708
2724
|
display: none;
|
|
2709
|
-
position:
|
|
2725
|
+
position: absolute; inset: 0;
|
|
2710
2726
|
background: color-mix(in oklab, var(--bg) 60%, transparent);
|
|
2711
2727
|
z-index: 49;
|
|
2712
2728
|
}
|
|
2713
|
-
@
|
|
2729
|
+
@container (max-width: 900px) {
|
|
2714
2730
|
.app-body.side-open .app-side-scrim { display: block; }
|
|
2715
2731
|
}
|
|
2716
2732
|
|
|
2717
|
-
/*
|
|
2733
|
+
/* Nav toggle (hamburger) — hidden when the shell is wide, shown when the shell
|
|
2734
|
+
itself is narrow (@container on .app). Absolute so it sits in THIS shell's
|
|
2735
|
+
topbar, not pinned to the viewport corner. */
|
|
2718
2736
|
.app-side-toggle {
|
|
2719
2737
|
display: none;
|
|
2720
|
-
position:
|
|
2738
|
+
position: absolute; top: calc((var(--app-topbar-h) - 44px) / 2); left: 10px;
|
|
2721
2739
|
z-index: 51;
|
|
2722
2740
|
/* 44x44 minimum hit area (WCAG 2.5.5 / Apple HIG) - 36px is below the
|
|
2723
2741
|
reliable-tap threshold on touch. */
|
|
@@ -2730,7 +2748,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
2730
2748
|
cursor: pointer;
|
|
2731
2749
|
}
|
|
2732
2750
|
.app-side-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
2733
|
-
@
|
|
2751
|
+
@container (max-width: 900px) {
|
|
2734
2752
|
.app-side-toggle { display: inline-flex; }
|
|
2735
2753
|
.app-topbar .brand { margin-left: 44px; }
|
|
2736
2754
|
}
|
package/dist/247420.css
CHANGED
|
@@ -555,6 +555,9 @@
|
|
|
555
555
|
============================================================ */
|
|
556
556
|
.ds-247420 .app {
|
|
557
557
|
display: flex; flex-direction: column;
|
|
558
|
+
/* Offset parent for the sidebar drawer/scrim/toggle, which are absolute so
|
|
559
|
+
they overlay THIS shell (a thebird WM window) rather than the viewport. */
|
|
560
|
+
position: relative;
|
|
558
561
|
min-height: 100vh;
|
|
559
562
|
/* Definite height so the flex column resolves height:100% for descendants
|
|
560
563
|
(e.g. a full-height chat) at every breakpoint, not just where a desktop
|
|
@@ -2472,6 +2475,12 @@
|
|
|
2472
2475
|
from { transform: rotate(0deg); }
|
|
2473
2476
|
to { transform: rotate(360deg); }
|
|
2474
2477
|
}
|
|
2478
|
+
/* Reusable spin utility: rotates the element (e.g. a refresh Icon used as a
|
|
2479
|
+
busy indicator) via the shared spinner-rotate keyframe. Respects reduced
|
|
2480
|
+
motion. Use instead of a decorative rotation glyph. */
|
|
2481
|
+
.ds-247420 .ds-spin { animation: spinner-rotate 0.8s linear infinite; transform-origin: center; }
|
|
2482
|
+
@media (prefers-reduced-motion: reduce) { .ds-247420 .ds-spin { animation: none; } }
|
|
2483
|
+
|
|
2475
2484
|
.ds-247420 .loading { position: relative; }
|
|
2476
2485
|
.ds-247420 .loading::after {
|
|
2477
2486
|
content: '';
|
|
@@ -3054,14 +3063,20 @@
|
|
|
3054
3063
|
============================================================ */
|
|
3055
3064
|
|
|
3056
3065
|
/* Tablet + Mobile: side rail becomes off-canvas drawer (≤900px) */
|
|
3057
|
-
|
|
3066
|
+
/* Sidebar drawer collapse keys on the SHELL width (@container on .app, which is
|
|
3067
|
+
container-type:inline-size) — NOT the viewport. Full-page (freddie) the shell
|
|
3068
|
+
== viewport so this is identical to the old @media(max-width:900px); embedded
|
|
3069
|
+
in a thebird WM window the drawer + hamburger appear when the WINDOW is narrow
|
|
3070
|
+
even on a wide desktop. Drawer/scrim/toggle are absolute (anchored to .app), so
|
|
3071
|
+
they overlay the window, not the page. */
|
|
3072
|
+
@container (max-width: 900px) {
|
|
3058
3073
|
.ds-247420 .app-body,
|
|
3059
3074
|
.ds-247420 .app-body.no-side { grid-template-columns: 1fr !important; }
|
|
3060
3075
|
.ds-247420 .app-side-shell {
|
|
3061
|
-
position:
|
|
3076
|
+
position: absolute;
|
|
3062
3077
|
left: 0; top: var(--app-topbar-h);
|
|
3063
|
-
height: calc(
|
|
3064
|
-
width: 280px; max-width:
|
|
3078
|
+
height: calc(100% - var(--app-topbar-h) - var(--app-status-h));
|
|
3079
|
+
width: 280px; max-width: 80%;
|
|
3065
3080
|
transform: translateX(-100%);
|
|
3066
3081
|
transition: transform var(--dur-base, 240ms) var(--ease, ease);
|
|
3067
3082
|
z-index: 50;
|
|
@@ -3095,21 +3110,24 @@
|
|
|
3095
3110
|
.ds-247420 .app-main { padding-left: var(--space-3); padding-right: var(--space-3); }
|
|
3096
3111
|
}
|
|
3097
3112
|
|
|
3098
|
-
/* Drawer scrim —
|
|
3113
|
+
/* Drawer scrim — absolute so it covers THIS shell, shown when drawer open and
|
|
3114
|
+
the shell is narrow (@container on .app). */
|
|
3099
3115
|
.ds-247420 .app-side-scrim {
|
|
3100
3116
|
display: none;
|
|
3101
|
-
position:
|
|
3117
|
+
position: absolute; inset: 0;
|
|
3102
3118
|
background: color-mix(in oklab, var(--bg) 60%, transparent);
|
|
3103
3119
|
z-index: 49;
|
|
3104
3120
|
}
|
|
3105
|
-
@
|
|
3121
|
+
@container (max-width: 900px) {
|
|
3106
3122
|
.ds-247420 .app-body.side-open .app-side-scrim { display: block; }
|
|
3107
3123
|
}
|
|
3108
3124
|
|
|
3109
|
-
/*
|
|
3125
|
+
/* Nav toggle (hamburger) — hidden when the shell is wide, shown when the shell
|
|
3126
|
+
itself is narrow (@container on .app). Absolute so it sits in THIS shell's
|
|
3127
|
+
topbar, not pinned to the viewport corner. */
|
|
3110
3128
|
.ds-247420 .app-side-toggle {
|
|
3111
3129
|
display: none;
|
|
3112
|
-
position:
|
|
3130
|
+
position: absolute; top: calc((var(--app-topbar-h) - 44px) / 2); left: 10px;
|
|
3113
3131
|
z-index: 51;
|
|
3114
3132
|
/* 44x44 minimum hit area (WCAG 2.5.5 / Apple HIG) - 36px is below the
|
|
3115
3133
|
reliable-tap threshold on touch. */
|
|
@@ -3122,7 +3140,7 @@
|
|
|
3122
3140
|
cursor: pointer;
|
|
3123
3141
|
}
|
|
3124
3142
|
.ds-247420 .app-side-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3125
|
-
@
|
|
3143
|
+
@container (max-width: 900px) {
|
|
3126
3144
|
.ds-247420 .app-side-toggle { display: inline-flex; }
|
|
3127
3145
|
.ds-247420 .app-topbar .brand { margin-left: 44px; }
|
|
3128
3146
|
}
|