test(shell): check 900x600, which is narrower than the minimum
The sidebar collapses to icons *below* 900, so the main panel is 843px at 899 and 700px at 900: the narrowest content area any desktop width produces is at the top of the Compact band, not at the enforced floor. A viewport list that stopped at "the minimum" was missing its own worst case. MinWidth's comment loses both reasons it used to give, because neither mechanism can happen any more — the subtitle is display:none from 899 down, and the sidebar host is overflow-y:auto (at 600x460 its scrollHeight is 434 against a 332px client, and Settings is reachable after scrolling). The value does not change: 800x600 is where desktop chrome stops being comfortable, not where the app breaks, and below 600 the phone layout takes over. A floor defended by two expired mechanisms is a number nobody can argue with, which is worse than either answer. Closes #24
This commit is contained in:
@@ -13,13 +13,31 @@ const (
|
|||||||
// enforces this at runtime; it is also the floor below which a
|
// enforces this at runtime; it is also the floor below which a
|
||||||
// reported size is treated as bogus and not persisted.
|
// reported size is treated as bogus and not persisted.
|
||||||
//
|
//
|
||||||
// 800x600 is where the shell was measured to still work, rather
|
// **Both reasons this comment used to give have expired**, and the
|
||||||
// than a round number: below ~780 the header's subtitle wraps and
|
// value is right for a third one. It said the floor was 800x600
|
||||||
// pushes the title out of the 4em top bar, and below ~600 tall the
|
// because "below ~780 the header's subtitle wraps and pushes the
|
||||||
// eleven sidebar items no longer fit at once. The previous
|
// title out of the 4em top bar" and "below ~600 tall the eleven
|
||||||
// 512x384 was aspirational — at 700x480 the sidebar overflowed
|
// sidebar items no longer fit at once". Neither mechanism can
|
||||||
// behind the player bar with no scroll and Settings and Jobs could
|
// happen now: the subtitle is display:none from 899px down
|
||||||
// not be reached at all.
|
// (index.css), and the sidebar host is overflow-y:auto — measured
|
||||||
|
// at 600x460, its scrollHeight is 434 against a 332px client and
|
||||||
|
// Settings is reachable after scrolling. A floor defended by two
|
||||||
|
// mechanisms that no longer exist is a number nobody can argue
|
||||||
|
// with, which is worse than either answer.
|
||||||
|
//
|
||||||
|
// It stays 800x600 because that is where the *desktop* chrome
|
||||||
|
// stops being comfortable — the Compact band of plan 018's size
|
||||||
|
// matrix (#24) — and not because the app breaks below it. It does
|
||||||
|
// not: under 600px wide the phone layout takes over (bottom-nav,
|
||||||
|
// no sidebar) and the shell fits 320px exactly, which is what
|
||||||
|
// makes this a comfort floor rather than a correctness one, and
|
||||||
|
// why a very small window reflows instead of becoming a
|
||||||
|
// mini-player (#12 is a second always-on-top window, not a mode of
|
||||||
|
// this one).
|
||||||
|
//
|
||||||
|
// The previous 512x384 was aspirational — at 700x480 the sidebar
|
||||||
|
// overflowed behind the player bar with no scroll and Settings and
|
||||||
|
// Jobs could not be reached at all.
|
||||||
MinWidth = 800
|
MinWidth = 800
|
||||||
// MinHeight is the smallest allowed window height in pixels.
|
// MinHeight is the smallest allowed window height in pixels.
|
||||||
MinHeight = 600
|
MinHeight = 600
|
||||||
|
|||||||
@@ -26,6 +26,12 @@ const MIN_VIEWPORT = { width: 800, height: 600 };
|
|||||||
const VIEWPORTS = [
|
const VIEWPORTS = [
|
||||||
{ name: '1440×900', width: 1440, height: 900 },
|
{ name: '1440×900', width: 1440, height: 900 },
|
||||||
{ name: '1024×768', width: 1024, height: 768 },
|
{ name: '1024×768', width: 1024, height: 768 },
|
||||||
|
// Not the minimum, and that is the point (#24). The sidebar collapses
|
||||||
|
// to icons *below* 900, so the main panel is 843px at 899 and 700px
|
||||||
|
// at 900 — the narrowest content area any desktop width produces is
|
||||||
|
// here, not at the enforced floor. A list that stopped at the minimum
|
||||||
|
// was missing its own worst case.
|
||||||
|
{ name: '900×600 (the widest sidebar, so the narrowest content)', width: 900, height: 600 },
|
||||||
{ name: `the minimum (${MIN_VIEWPORT.width}×${MIN_VIEWPORT.height})`, ...MIN_VIEWPORT },
|
{ name: `the minimum (${MIN_VIEWPORT.width}×${MIN_VIEWPORT.height})`, ...MIN_VIEWPORT },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user