@@ -15,7 +15,42 @@ touch-first app that people also administer from their phones, the settings surf
1515be first-class on narrow screens.
1616
1717** Goal:** the entire Admin Panel — shell, embedded tabs, and shared modals — is comfortable
18- and native-feeling on a ~ 360px phone, with ** zero visual change at ≥600px** (desktop/kiosk).
18+ and usable on a ~ 360px phone, with ** zero visual change at ≥600px** (desktop/kiosk).
19+
20+ ## Scope & non-goals
21+
22+ HomeGlow is ** not** a mobile web app — it is a touch-first dashboard designed for a
23+ wall-mounted / large touchscreen display (Raspberry Pi, kiosk, etc.). This work is
24+ ** narrowly about letting an end user administer settings from a phone out of
25+ convenience.** Everything else stays exactly as it is.
26+
27+ ** In scope:** the Admin Panel and everything reachable from it — [ AdminPanel.jsx] ( ../../client/src/components/AdminPanel.jsx ) ,
28+ the embedded [ ChoreSchedulesTab.jsx] ( ../../client/src/components/ChoreSchedulesTab.jsx ) /
29+ [ ChoreHistoryTab.jsx] ( ../../client/src/components/ChoreHistoryTab.jsx ) , the shared modals
30+ ([ PinModal.jsx] ( ../../client/src/components/PinModal.jsx ) ,
31+ [ ClamValueModal.jsx] ( ../../client/src/components/ClamValueModal.jsx ) ,
32+ [ TabIconModal.jsx] ( ../../client/src/components/TabIconModal.jsx ) ,
33+ [ SoundPicker.jsx] ( ../../client/src/components/SoundPicker.jsx ) ), and the single Admin-Panel
34+ ` <Dialog> ` in ` app.jsx ` .
35+
36+ ** Explicitly out of scope (do not touch):** the dashboard/widget grid
37+ ([ WidgetContainer.jsx] ( ../../client/src/components/WidgetContainer.jsx ) ,
38+ [ DraggableWidget.jsx] ( ../../client/src/components/DraggableWidget.jsx ) ), the widgets
39+ themselves (Calendar/Weather/Chore/Photo), the [ TabBar] ( ../../client/src/components/TabBar.jsx )
40+ dock, the screensaver, and the overall app layout. These are meant for the large display and
41+ should keep behaving as they do today.
42+
43+ ** Why the rest of the app is safe:** every change in this plan is ** viewport-gated** behind
44+ ` useIsMobile ` (` max-width: 599.95px ` ). On the large kiosk display that query is always
45+ false, so the responsive behavior never activates there — nothing changes on the dashboard,
46+ and even the shared modals (which are also reachable from the main display, e.g. the PIN pad
47+ from the dock or the Tab-icon modal from the TabBar) only go full-screen when opened on a
48+ genuinely small viewport. The only ` app.jsx ` edit is to the Admin-Panel ` <Dialog> ` itself;
49+ no dashboard, layout, or widget code is modified.
50+
51+ ** Bar for "done":** convenient and operable on a phone — not a pixel-perfect native mobile
52+ experience. Where a full card reflow would be awkward for a given table, a horizontal-scroll
53+ fallback is acceptable.
1954
2055## Constraints & current state (what the code looks like today)
2156
0 commit comments