Keep the library header steady across tabs; simplify the empty states
Header & action bar
- Import JSON no longer disappears on the Homework tab: it sits directly
under the "Your icebox" header/subtitle, above the tab switcher, on every
tab — so switching pools no longer shifts the layout or hides actions. It
is one secondary button at all sizes now, not a quiet link when empty.
- The decks-only "Homework Solver" header action is gone; the homework tab's
empty-state CTA and the drawer cover starting a new solve.
Empty states
- Dropped the "Using your own Ollama models — check the connection in
Settings." line (and its two dictionary keys) everywhere.
- Both tabs share one structure: ice icon -> heading -> short description ->
primary CTA button, starting at the same height:
Study Decks: "No decks yet" -> "Freeze a page of notes into flashcards
and quizzes." -> "Create study deck"
Homework: "No homework yet" -> "Solved assignments and step-by-step
guides show up here." -> "Solve homework"
- CTA labels read as actions on the standardized nouns; removed the now
unused actionStudyDeck/actionHomework keys.
Tabs
- Link segments are 44px tall at every breakpoint (min-height in the base
.segmented > a rule).
Service worker: freezmo-v11.
Verified: library-consistency suite 49/49 (Import visible with a fixed
position on both tabs, no Ollama text, empty states at the same y, primary
ice CTA buttons >=44px, deep links, deletion, redirects, desktop, 360px, axe
en+cs light+dark), mobile 51/51, i18n 27/27, desktop regression 74/74.
Lint + build clean.
This commit is contained in:
parent
8c44f47881
commit
9d6ef90f02
4 changed files with 55 additions and 139 deletions
|
|
@ -223,7 +223,7 @@ const en: Record<string, string> = {
|
|||
"homework.history.openTitle": "Open “{title}”",
|
||||
"homework.history.deleteConfirm": "Delete this result?",
|
||||
"homework.emptyTitle": "No homework yet",
|
||||
"homework.emptyBody": "Solved assignments and step-by-step guides you save show up here.",
|
||||
"homework.emptyBody": "Solved assignments and step-by-step guides show up here.",
|
||||
"homework.open": "Open",
|
||||
"homework.steps.one": "{n} step",
|
||||
"homework.steps.few": "{n} steps",
|
||||
|
|
@ -234,10 +234,8 @@ const en: Record<string, string> = {
|
|||
"tabHomework": "Homework",
|
||||
|
||||
/* quick actions (library empty state + /create switcher) ----------- */
|
||||
"emptyStateCreateDeck": "Study Deck",
|
||||
"emptyStateHomework": "Homework Solver",
|
||||
"actionStudyDeck": "Study Deck",
|
||||
"actionHomework": "Homework Solver",
|
||||
"emptyStateCreateDeck": "Create study deck",
|
||||
"emptyStateHomework": "Solve homework",
|
||||
|
||||
/* library --------------------------------------------------------- */
|
||||
"library.title": "Your icebox",
|
||||
|
|
@ -250,9 +248,7 @@ const en: Record<string, string> = {
|
|||
"library.deckMoved": "Deck moved.",
|
||||
"library.deckMovedUnorganized": "Deck moved to Unorganized.",
|
||||
"library.noDecks": "No decks yet",
|
||||
"library.emptyBody": "Freeze a page of notes into a feed of flashcards and quizzes.",
|
||||
"library.emptyHint": "Using your own Ollama models —",
|
||||
"library.emptySettings": "check the connection in Settings",
|
||||
"library.emptyBody": "Freeze a page of notes into flashcards and quizzes.",
|
||||
"library.renameFolderAria": "Folder name",
|
||||
"library.nothingUnfiled": "Nothing unfiled right now.",
|
||||
"library.emptyFolder": "Empty folder — freeze a deck into it or move one over from Unorganized.",
|
||||
|
|
@ -817,7 +813,7 @@ const cs: Record<string, string> = {
|
|||
"homework.history.openTitle": "Otevřít „{title}“",
|
||||
"homework.history.deleteConfirm": "Smazat tento výsledek?",
|
||||
"homework.emptyTitle": "Zatím žádné úkoly",
|
||||
"homework.emptyBody": "Uložená řešení úkolů a návody krok za krokem se objeví tady.",
|
||||
"homework.emptyBody": "Vyřešená zadání a návody krok za krokem se objeví tady.",
|
||||
"homework.open": "Otevřít",
|
||||
"homework.steps.one": "{n} krok",
|
||||
"homework.steps.few": "{n} kroky",
|
||||
|
|
@ -828,10 +824,8 @@ const cs: Record<string, string> = {
|
|||
"tabHomework": "Úkoly",
|
||||
|
||||
/* quick actions (library empty state + /create switcher) ----------- */
|
||||
"emptyStateCreateDeck": "Studijní balíček",
|
||||
"emptyStateHomework": "Řešitel úkolů",
|
||||
"actionStudyDeck": "Studijní balíček",
|
||||
"actionHomework": "Řešitel úkolů",
|
||||
"emptyStateCreateDeck": "Vytvořit studijní balíček",
|
||||
"emptyStateHomework": "Vyřešit úkol",
|
||||
|
||||
/* library --------------------------------------------------------- */
|
||||
"library.title": "Tvoje mraznička",
|
||||
|
|
@ -844,9 +838,7 @@ const cs: Record<string, string> = {
|
|||
"library.deckMoved": "Sada přesunuta.",
|
||||
"library.deckMovedUnorganized": "Sada přesunuta do Nezařazených.",
|
||||
"library.noDecks": "Zatím žádné sady",
|
||||
"library.emptyBody": "Zmraz stránku poznámek do feedu kartiček a kvízů.",
|
||||
"library.emptyHint": "S tvými vlastními modely Ollama —",
|
||||
"library.emptySettings": "zkontroluj připojení v Nastavení",
|
||||
"library.emptyBody": "Zmraz stránku poznámek do kartiček a kvízů.",
|
||||
"library.renameFolderAria": "Název složky",
|
||||
"library.nothingUnfiled": "Teď tu nic nezařazeného není.",
|
||||
"library.emptyFolder": "Prázdná složka — zmraz do ní sadu nebo ji sem přesuň z Nezařazených.",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue