MY SKY: full-page layout polish — aperture pinning, wheel-above-form, centred wheel
All checks were successful
ci/woodpecker/push/pyswiss Pipeline was successful
ci/woodpecker/push/main Pipeline was successful

- sky_view passes page_class="page-sky" so the footer pins correctly
- _natus.scss: page-sky aperture block (mirrors page-wallet pattern);
  sky-page stacks wheel above form via flex order + page-level scroll;
  wheel col uses aspect-ratio:1/1 so it takes natural square size without
  compressing to fit the form
- natus-wheel.js: _layout() sets viewBox + preserveAspectRatio="xMidYMid meet"
  so the wheel is always centred inside the SVG element regardless of its
  aspect ratio (fixes left-alignment in the dashboard applet)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-04-16 14:40:52 -04:00
parent bd9a2fdae3
commit 8a24021739
5 changed files with 187 additions and 0 deletions

View File

@@ -507,6 +507,87 @@ body[class*="-light"] #id_natus_tooltip {
.tt-title--pu { color: rgba(var(--priPu), 1); }
}
// ── My Sky dashboard applet ───────────────────────────────────────────────────
#id_applet_my_sky {
display: flex;
flex-direction: column;
h2 { flex-shrink: 0; }
.natus-svg {
flex: 1;
min-height: 0;
max-width: none;
max-height: none;
align-self: center;
}
}
// ── Sky full page (aperture + column layout) ──────────────────────────────────
html:has(body.page-sky) {
overflow: hidden;
}
body.page-sky {
overflow: hidden;
.container {
overflow: hidden;
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
}
.row {
flex-shrink: 0;
}
}
// Sky page fills the aperture; its content can scroll past the bottom edge
.sky-page {
position: relative;
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
overflow-y: auto;
}
// Stack wheel above form; allow body to grow past viewport (page scrolls, not body)
.sky-page .natus-modal-body {
flex-direction: column;
flex-shrink: 0;
}
// Wheel takes its natural square size from its width — never shrinks for the form
.sky-page .natus-wheel-col {
order: -1;
flex: 0 0 auto;
width: 100%;
aspect-ratio: 1 / 1;
max-width: 480px;
max-height: 480px;
align-self: center;
}
// Form col runs horizontally below the wheel (same compact pattern as narrow-portrait modal)
.sky-page .natus-form-col {
flex: 0 0 auto;
flex-direction: row;
align-items: flex-end;
border-right: none;
border-top: 0.1rem solid rgba(var(--terUser), 0.12);
}
.sky-page .natus-form-main {
flex: 1;
min-width: 0;
overflow-y: visible;
}
// ── Sidebar z-index sink (landscape sidebars must go below backdrop) ───────────
@media (orientation: landscape) {