Základ (tokeny, komponenty, ikonová sada) a všech dvanáct skupin obrazovek je hotových ve všech stavech, ve světlém i tmavém režimu, od 360 do 1920 px. Tohle je zápis toho, co jsem rozhodl sám, kde se zadání pere samo se sebou a co od vás potřebuji odsouhlasit.
Každá obrazovka má v koutu tichý přepínač: ukázkový profil salonu (malý / velký), stav dat (plný, prázdný, načítání, chyba, bez oprávnění) a režim. Veřejná část má navíc přepínač značky — koňak, šalvěj, švestka.
Rozhodnutí, která jsem udělal sám
Skupina obrazovek = jeden soubor. Ne 120 souborů, ale třináct: A-vstup, B-prehled, C1-kalendar-den, C-provoz, D1-zakaznici, D-karta-zakaznika, E-nabidka, F-tym, G-penize, H-komunikace, I-reporty, J-nastaveni, K-rezervace, L-zpravy. Uvnitř se přechází lištou s číslem obrazovky a adresa drží #E4, takže se dá odkázat na jednu konkrétní. Klikání se tím zkrátilo a design systém se nemá kde rozejít.
Odkazy vedou přes navigaci aplikace, ne přes přepínač prototypu. Levý panel je živý — Kalendář, Zákazníci, Nabídka, Tým, Peníze, Zprávy, Reporty i Nastavení vedou na skutečné obrazovky. Kde modul není zapnutý, položka v menu vůbec není.
Krok kalendáře 1,4 px za minutu (hodina 84 px). Při hustším měřítku se do 30minutového bloku nevejde jméno, čas a stav bez barvy zároveň. Měřítko je tokenizované a jde měnit.
Stav bez barvy = textový štítek v bloku (POTVRZENO / ČEKÁ / PROBÍHÁ / ZAPLACENO / NO-SHOW). Výplň patří službě, levý 3px pruh stavu. „Hotovo / zaplaceno" má šedý pruh, ne zelený — jinak by dopoledne svítila polovina kalendáře zeleně.
Model dostupnosti je osm vrstev, které jen ubírají — otevírací doba salonu, pracovní doba člena, směny, výjimky a nepřítomnost, existující rezervace včetně přípravy a úklidu, dovednosti a denní limit, zdroje, rezervační pravidla. Je vypsaný přímo na obrazovce F4, aby se o něm dalo mluvit. Směna pracovní dobu pro daný týden přebíjí, nesčítá se. Pauza na oběd je osobní opakovaná blokace u člena týmu, ne salonová.
Mimo otevírací dobu se online nenabízí nic — ledaže má člen týmu zapnuté „smí pracovat mimo otevírací dobu". Ten přepínač se odemkne jen u lidí na IČO a u nájmu křesla. Ruční rezervace v adminu smí mimo otevírací dobu vždy, recepce dostane jen upozornění.
Výchozí pracovní doba je „stejná jako salon", dokud se jí někdo nedotkne. Řádek dne to říká štítkem, takže je poznat, co je zdědělé a co vlastní — a jde se to jedním tlačítkem vrátit.
Prodaný poukaz není tržba. Do tržeb se dostane až ve chvíli, kdy ho někdo vyčerpá. Do té doby je v Nevyčerpaných závazcích (G11) a v podkladech pro účetní stojí zvlášť. Stejně se počítají balíčky a členství.
Tržba nájemce křesla se nepočítá do tržeb salonu, do reportů jde jen nájem. V tabulce tržeb je proto řádek „z toho nájem křesla" se znaménkem mínus — jinak by čísla salonu byla nadsazená o třetinu.
Reporty počítají jen z uzavřených účtů. Otevřený účet v reportu ještě není a je to napsané pod čísly, aby se recepce nedivila, proč souhrn nesedí s tím, co je právě v salonu.
„Poslat na Google" jen u čtyř a pěti hvězd. U tří a méně dostane zákazník jen odpověď salonu. Filtrovat negativní hodnocení ven ze systému by bylo proti smyslu, ale aktivně je posílat na Google salonu nepomůže.
Veřejná část má vlastní token--brand, aby se dala přebarvit bez zásahu do administrace. Koňak, šalvěj a švestka drží kontrast v obou režimech.
Ceny a trvání ve veřejném toku se dopočítávají z vybrané služby a odpovědí na doplňkové otázky — shrnutí ani záloha nemají žádné číslo natvrdo. Záloha je 30 % z ceny po odpovědích, zaokrouhlená na desítky.
E-maily v prototypu používají tokeny, ne pevné barvy. Jde o náhled v prohlížeči, takže se dá přepnout režim poštovního klienta a značka salonu. V odesílané zprávě se tokeny musí přepsat na pevné hodnoty — poštovní klienti CSS proměnné neumí. Je to napsané přímo na obrazovce L.
Karta D2 je Markéta Šimková, ne Lucie Dvořáková. Zadání chce na kartě výstrahu o alergii a v figurínových datech ji má jen Markéta. Lucie zůstává VIP v kalendáři a na pokladně.
Doplnil jsem sedm jmen zákazníků a jeden produkt. Uvěřitelný den čtyřčlenného salonu má 22 rezervací, šest jmen z kapitoly 11 na to nestačí. Šestice z kapitoly 11 je nedotčená a drží si své vlastnosti. Nová jména už nepřidávám nikde.
Nikdo z týmu neskončil. Filtr „Ukončení" v seznamu týmu má proto prázdný stav, který vysvětluje, co se s takovým člověkem stane — zůstane v historii, zmizí z kalendáře a z online rezervace. Přidávat kvůli jednomu stavu osmé jméno mi přišlo horší.
Průvodce prvním nastavením má všech šest kroků funkčních (obor, otevírací doba, tým, ceník, pravidla, kanály), ne jen první a poslední. Bez toho se nedá ověřit, že se do šesti kroků vejde salon, který začíná od nuly.
Mřížka kalendáře je kreslená pozadím (opakovaná linka po 30 minutách), ne stovkami prázdných divů — kvůli výkonu při 12 sloupcích na širokém monitoru.
Fotky, mapy a portréty jsou pruhované plochy s popiskem, ne kreslené ilustrace. Kapitola 12 zakazuje dekorativní grafiku a hádat, jak vypadá interiér salonu, mi nepřísluší.
Místa, kde se zadání pere samo se sebou
44 px dotykový cíl vs. řádek tabulky 40 px (kap. 4.3 obě věty vedle sebe). Držím 40 px pro hustou desktopovou lištu a 44 px a víc všude, kde se sahá na tablet: bloky v kalendáři, řádky seznamů, rozbalovací sekce, celá veřejná část (tam 52–76 px).
„Maximálně pět polí nahoře" je psané pro formulář, D2 je čtená karta. Vyložil jsem to jako pět údajů v základním bloku a zbytek pod „Pokročilé údaje". Stejné pravidlo drží detail služby (E2): pět polí a fotka, dvanáct pokročilých voleb pod čarou.
Barevné rozlišení stavu (3.7) vs. barva služby jako výplň (4.1). Pět stavů a osm barev služeb se do jedné výplně nevejde. Stav je proto vždy levý pruh + štítek. Pokud je pro provoz důležitější stav než služba, umím to obrátit — je to jeden token.
Pod 768 px svislý seznam dne (kap. 10) vs. přesun tažením (3.4). V seznamu není kam táhnout. Na mobilu se rezervace přesouvá přes detail panel, tažení zůstává na 768 px a výš.
Stav „bez oprávnění" u každé obrazovky (kap. 9) nemá u veřejné části smysl — tam žádná role není. U K je místo něj čtvrtý stav „bez termínů", u L náhled bez obrázků.
Zákaz gradientů (kap. 12) vs. „barvy služeb v tmavém režimu při 22 % krytí" (4.1). Řeším color-mix v tokenu, ne překryvnou vrstvou. Opakovaný přechod používám jen jako technickou linku mřížky a jako pruhovanou plochu místo fotky.
Prázdný stav a vypnuté moduly. Texty prázdných stavů závisí na modulech — prázdný kalendář nesmí odkazovat na Žádosti, když schvalování neběží. U většiny obrazovek to znamená dvě varianty textu. Takhle je to udělané všude, ověřte prosím, že to tak chcete.
Dvoufázová služba a „levý pruh = stav". U dvoufázového bloku je pruh přes celou výšku včetně prodlevy, aby šlo poznat, že jde o jednu rezervaci. Prodleva je rozeznatelná čárkovaným rámem a popiskem, bez barvy — a je to jediné místo, kam smí systém vsunout jinou rezervaci.
Jméno salonu. Kapitola 11 mluví o Studiu Vlna, vy chcete Salon by Flowbit. Administrace v profilu „malý salon" nese Salon by Flowbit, ve „velkém salonu" vlastní logo Studia Vlna; veřejná část a e-maily vždy Studio Vlna. Značka salonu tedy nikdy nesouvisí se značkou dodavatele.
Detail obrazovky vs. seznam. Zadání dává detail faktury, poukazu a hodnocení jako samostatné stránky (G6, G9, H7). V prototypu jsou to karty v rámci skupiny, ne modály — na tabletu recepce se modál nad tabulkou ukázal jako horší, protože bere kontext.
Co potřebuji odsouhlasit
Model dostupnosti — těch osm vrstev na F4 a pravidlo, že směna přebíjí pracovní dobu.
Pobočky: co je na pobočku a co na účet. Návrh je v CLAUDE.md, v rozhraní se zatím projevuje jen štítkem u pracovní doby.
Ceník a trvání služeb — sdílené mezi pobočkami, nebo zvlášť? Rozhoduje to o podobě E1 a E4.
Rozsah pokladny: G1 dnes umí položkové slevy, spropitné, kredit, poukaz i rozdělení platby. Je to na jednu obrazovku moc?
Zálohy: 30 % z ceny a poloviční poplatek při pozdním storně jsou moje čísla, ne vaše.
Tón veřejné části a e-mailů — je to dost jednoduché pro člověka, který web vidí poprvé?
Co dál: dopsat produkční HTML/CSS podle prototypu, nebo přejít na předání vývoji (komponenty, stavy, tokeny jako balík)?