Mobile declutter pass: step flows, compact cards, simplified settings
Phones only (<=639px); desktop markup is untouched.
- New deck is a 3-step flow: progress (1/3 + bar) and a fixed Back/Next
bar above the tab bar. Step 1 = Add photos or files / Camera / Paste
text instead (no drop zone or paste copy on touch), step 2 = folder,
difficulty and count with defaults plus one collapsed focus/notes row,
step 3 = one summary line (photos/docs/text · difficulty · count ·
folder) with Freeze. Going Back keeps every input; step transitions
respect prefers-reduced-motion.
- Make my homework is a 2-step flow sharing the same pattern; tapping a
mode card starts it (no separate CTA on phones), with a short preview
of the assignment on step 2. The hero is now 'Make my homework' /
'Udělej mi úkol' everywhere ('Solve your homework' is gone) and the
intro is one line.
- Library: stats line removed, folder row and 'Unorganized' heading
hidden until folders exist (New folder lives in the drawer), Import is
a small icon button beside the tabs. Deck and homework cards are
compact on phones: title, one meta line (activities · difficulty ·
best), a one-line description that expands on tap, the whole card
tappable and a small Study/Open pill instead of the full-width button.
- Settings sheet on phones: no .env.local subtitle; Language stays first;
one Connection card (status dot + 'Connected · 2 models ready', key
field with the eye inside, Save only when edited, auto re-check on
save, refresh icon instead of Test connection); privacy one-liner with
a More expander (daemon tip inside); raw health rows behind one
collapsed Details list; Remove key as a small danger button at the very
bottom (same confirmation).
- Decorative orbs on phones moved further off the screen edges so they
never glow under cards or primary buttons.
- Shared markup for folder/difficulty/count and mode cards keeps one
source of state; new lib/use-phone.ts gates the layouts.
Verified: new declutter suite 116/116 (360 + 390, EN + CS, photo + PDF +
pasted text, Back keeps input, summaries, settings flow), regression
74/74, mobile 52/52, i18n 25/25. Lint + build clean. SW freezmo-v20.
This commit is contained in:
parent
0ee9e930f0
commit
6564e88138
12 changed files with 1345 additions and 309 deletions
28
README.md
28
README.md
|
|
@ -43,6 +43,12 @@ no database, no data leaving your machine except the requests you send to Ollama
|
|||
**Capture & generate**
|
||||
|
||||
- Drag & drop, file picker, **mobile camera capture** and **clipboard paste** (Ctrl/⌘+V)
|
||||
- **Phones get a 3-step flow** — notes → options → summary — with a progress bar and a
|
||||
floating Back / Next bar above the tab bar. Step 1 is just *Add photos or files*,
|
||||
*Camera* and a *Paste text instead* field (no drop zone on touch screens); step 2 keeps
|
||||
folder, difficulty and activity count at their defaults and tucks the topic hint and
|
||||
pasted notes behind one collapsed row; step 3 is a single summary line with **Freeze my
|
||||
deck**. Going Back keeps every input. The desktop page is unchanged.
|
||||
- **Photos and documents**: JPG/PNG/WEBP/HEIC images plus **PDF, DOCX, PPTX, ODT/ODP/ODS, TXT, MD, CSV**
|
||||
- Documents are read **in the browser**: PDF text layers are extracted, scanned PDF pages are rendered
|
||||
as images for the vision model, DOCX/PPTX text, speaker notes and embedded images are pulled out.
|
||||
|
|
@ -85,6 +91,9 @@ no database, no data leaving your machine except the requests you send to Ollama
|
|||
file; photos go through the same vision model and language guard that notes do
|
||||
- Two modes: **Just make it** returns the finished homework (the answer only, ready to copy), and
|
||||
**Explain how to make this homework** turns it into a guided walkthrough
|
||||
- On phones this is a **2-step flow**: the assignment first (same simplified input as the
|
||||
deck flow), then the two mode cards under a short preview — tapping a card starts it
|
||||
immediately, so there is no separate button. Desktop keeps the select-then-confirm layout.
|
||||
- The guide is one step per screen in the same snap-feed feel as the study feed: what to do and
|
||||
why, **three progressive hints** per step (nudge → hint → the full answer), and a **checkpoint**
|
||||
built from the normal activity components and graded through `/api/grade`
|
||||
|
|
@ -120,6 +129,11 @@ no database, no data leaving your machine except the requests you send to Ollama
|
|||
- **Two pools, never mixed**: a **Study Decks** tab (the folder + card library) and a **Homework**
|
||||
tab with saved solutions and step-by-step guides — each with its own empty state and call to
|
||||
action, and the active tab lives in the URL (`/?tab=homework`)
|
||||
- **Phone library, decluttered**: no stats line, the folder row and “Unorganized” heading only
|
||||
appear once folders exist (the drawer has *New folder*), and Import is a small icon button in
|
||||
the tab row. Deck cards shrink to title + one meta line (activities · difficulty · best
|
||||
score) + a one-line description that expands on tap, with the whole card tappable and a small
|
||||
**Study** pill; homework cards match.
|
||||
- Decks saved locally with title, subject, folder, activity count, date, play count and best score
|
||||
- **Folders**: create named groups ("History", "Biology", …) from the sidebar or the create screen.
|
||||
New decks freeze straight into the selected folder; anything unfiled lives in **Unorganized**.
|
||||
|
|
@ -346,7 +360,10 @@ the two pipeline steps stay separate either way.
|
|||
### Checking the connection
|
||||
|
||||
- **In the app:** click the ⚙️ button — it shows mode, base URL, API key status, latency and
|
||||
whether each configured model is available, with a hint for what to fix.
|
||||
whether each configured model is available, with a hint for what to fix. On phones the sheet
|
||||
is simplified: a **Connection** card with one status row (dot + “Connected · 2 models ready”)
|
||||
and the key field, the raw health details live behind a **Details** expander, and the key can
|
||||
be removed from a small danger button at the very bottom.
|
||||
- **From the shell:** `curl http://localhost:3207/api/health`
|
||||
- **Directly against Ollama:** `curl http://localhost:11434/api/tags`
|
||||
|
||||
|
|
@ -908,6 +925,15 @@ Things I chose while building, with the reasoning:
|
|||
second copy. Result records store the assignment text — the vision transcription when photos
|
||||
were used — so “Make it again” works without storing a single original file.
|
||||
|
||||
36. **The mobile declutter pass reshapes, it doesn't fork.** Phones (≤639px) get a 3-step deck
|
||||
flow and a 2-step homework flow that share the exact state and handlers with the desktop
|
||||
cards (one `UploadScreen` / one `HomeworkInput`, two layouts switched by `useIsPhone()`);
|
||||
desktop markup is untouched. Library cards collapse to title + one meta line + one
|
||||
description line (expand on tap) with the whole card tappable and a small Study pill, the
|
||||
stats line and folder row only appear once folders exist, and the settings sheet trades the
|
||||
health cards for a Connection status row plus a collapsed Details list. Decorative orbs were
|
||||
pushed further off the phone edges so they never glow under CTAs or cards.
|
||||
|
||||
14. **`gpt-oss:120b` does all content work — but it cannot read images** (`this model does not
|
||||
support image input`), so `VISION_MODEL` has to stay a multimodal model (`gemma4:31b-cloud`).
|
||||
Text-only inputs — pasted text, PDFs with a text layer, DOCX/PPTX/ODT — never touch the vision
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue