feat(07-02): landscape cockpit geometry block — CSS-only, tokens binding (PX-04/D-03)
- @media (orientation: landscape) and (max-height: 560px) block appends to shell.css - banner 72px min-height + safe-left/right edge padding via max(); plate 40px/glyph 28px - strip rides under 72px chrome; guide-list 100dvh-bounded; bottom register inside landscape height - sanctioned literal list extended in the cockpit header comment - no radius/shadow/blur/transition, no MapLibre rule; theme audit stays clean
This commit is contained in:
+42
-1
@@ -144,7 +144,10 @@ main { position: fixed; inset: 0; }
|
|||||||
min-height 96px, arrow plate 48px + glyph 32px, compact strip 24px, row
|
min-height 96px, arrow plate 48px + glyph 32px, compact strip 24px, row
|
||||||
48px + glyph 24px, next-row lamp 8px, panel max 320px/480px, bar 4px, 1px
|
48px + glyph 24px, next-row lamp 8px, panel max 320px/480px, bar 4px, 1px
|
||||||
rules). States are instant hard swaps — zero motion, zero depth, zero
|
rules). States are instant hard swaps — zero motion, zero depth, zero
|
||||||
rounded corners (buttons are radius-reset in the theme base layer). ————— */
|
rounded corners (buttons are radius-reset in the theme base layer).
|
||||||
|
Sanctioned list extended by Phase 7 (07-02/PX-04/D-03) — the landscape
|
||||||
|
literals: landscape banner min-height 72px, plate 40px + glyph 28px,
|
||||||
|
landscape chrome offset 104px. ————— */
|
||||||
|
|
||||||
/* the banner band: full-bleed matte-black chassis under the safe inset; the
|
/* the banner band: full-bleed matte-black chassis under the safe inset; the
|
||||||
whole banner is the list toggle (the 96px band is the >=44px hit target) */
|
whole banner is the list toggle (the 96px band is the >=44px hit target) */
|
||||||
@@ -205,3 +208,41 @@ main { position: fixed; inset: 0; }
|
|||||||
.guide-progress { height: 4px; margin: var(--spacing-space-xs) var(--spacing-space-md) 0; background: var(--color-chassis-subtle); border: 1px solid var(--color-matte-black); } /* checkbox geometry — distinguishable without color */
|
.guide-progress { height: 4px; margin: var(--spacing-space-xs) var(--spacing-space-md) 0; background: var(--color-chassis-subtle); border: 1px solid var(--color-matte-black); } /* checkbox geometry — distinguishable without color */
|
||||||
[data-tg-theme="dark"] .guide-progress { border-color: var(--color-inverse-on-surface); }
|
[data-tg-theme="dark"] .guide-progress { border-color: var(--color-inverse-on-surface); }
|
||||||
.guide-progress-fill { height: 100%; background: var(--color-signal-orange); }
|
.guide-progress-fill { height: 100%; background: var(--color-signal-orange); }
|
||||||
|
|
||||||
|
/* ————— Phase 7 landscape geometry (PX-04/D-03) —————
|
||||||
|
Landscape is an ADDITIONAL CONSTRAINT, never a separate screen: portrait
|
||||||
|
remains the default and every rule below only ADAPTS the cockpit/banner/
|
||||||
|
card geometry. The map cartography stays Rams-constant (D-10) — NO
|
||||||
|
MapLibre rule appears in this block. Every value is a token reference or
|
||||||
|
a sanctioned geometry literal; the map's cartography is untouched. */
|
||||||
|
|
||||||
|
@media (orientation: landscape) and (max-height: 560px) {
|
||||||
|
/* the banner band: shorter in landscape, and the horizontal safe insets
|
||||||
|
are honoured on both edges (max() with the token padding as the floor) */
|
||||||
|
.guide-banner {
|
||||||
|
min-height: 72px;
|
||||||
|
padding-left: max(var(--spacing-space-md), var(--safe-left, 0px));
|
||||||
|
padding-right: max(var(--spacing-space-md), var(--safe-right, 0px));
|
||||||
|
}
|
||||||
|
.guide-banner .guide-plate { width: 40px; height: 40px; }
|
||||||
|
.guide-banner .guide-plate svg { width: 28px; height: 28px; }
|
||||||
|
|
||||||
|
/* the compact strip rides directly under the shorter banner */
|
||||||
|
[data-guidance="active"] .strip {
|
||||||
|
top: calc(var(--safe-top, 0px) + var(--spacing-space-sm) + 72px + 1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* the maneuver list: a landscape-height-bounded panel that clears the
|
||||||
|
banner and the strip instead of overlapping them */
|
||||||
|
.guide-list {
|
||||||
|
max-height: calc(100dvh - 104px - var(--safe-top, 0px) - var(--safe-bottom, 0px));
|
||||||
|
margin-top: calc(var(--safe-top, 0px) + var(--spacing-space-sm) + 72px + 1px + 24px + var(--spacing-space-sm));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* the bottom register (the guidance card / the confirm card) sits inside
|
||||||
|
the landscape height instead of overflowing past it */
|
||||||
|
.route-stack[data-register="bottom"] {
|
||||||
|
bottom: calc(var(--safe-bottom, 0px) + var(--spacing-space-sm));
|
||||||
|
}
|
||||||
|
.route-stack[data-register="center"] { max-width: 320px; }
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user