# Vytvorte bankovú aplikáciu časť 2: Vytvorte prihlasovací a registračný formulár
```mermaid
journey
title Vaša cesta vývoja formulárov
section Základy HTML
Pochopiť prvky formulára: 3: Student
Naučiť sa typy vstupov: 4: Student
Ovládnuť prístupnosť: 4: Student
section Integrácia JavaScriptu
Spracovať odoslanie formulára: 4: Student
Implementovať AJAX komunikáciu: 5: Student
Spracovať odpovede servera: 5: Student
section Systémy validácie
Vytvoriť viacvrstvovú validáciu: 5: Student
Zlepšiť používateľský zážitok: 5: Student
Zabezpečiť integritu údajov: 5: Student
```
## Prednáškový kvíz
[Prednáškový kvíz](https://ff-quizzes.netlify.app/web/quiz/43)
Už ste niekedy vyplňovali formulár online a formulár vám odmietol formát e-mailu? Alebo ste stratili všetky svoje údaje po kliknutí na odoslať? Všetci sme zažili tieto frustrujúce situácie.
Formuláre sú mostom medzi vašimi používateľmi a funkcionalitou vašej aplikácie. Podobne ako starostlivé protokoly, ktoré používajú letoví dispečeri na bezpečné nasmerovanie lietadiel do cieľa, dobre navrhnuté formuláre poskytujú jasnú spätnú väzbu a zabraňujú nákladným chybám. Zlé formuláre naopak môžu používateľov odradiť rýchlejšie než nepochopenie v rušnom letisku.
V tejto lekcii premeníme vašu statickú bankovú aplikáciu na interaktívnu aplikáciu. Naučíte sa vytvárať formuláre, ktoré overujú vstupy používateľov, komunikujú so servermi a poskytujú užitočnú spätnú väzbu. Predstavte si to ako vytvorenie riadiaceho rozhrania, ktoré umožňuje používateľom navigovať funkcie vašej aplikácie.
Na konci budete mať kompletný prihlasovací a registračný systém s validáciou, ktorý vedie používateľov k úspechu, nie k frustrácii.
```mermaid
mindmap
root((Vývoj formulára))
HTML Základy
Sémantické prvky
Typy vstupov
Prístupnosť
Asociácia popiskov
Používateľský zážitok
Validácia a spätná väzba
Prevencia chýb
Stav načítavania
Správy o úspechu
Integrácia JavaScriptu
Spracovanie udalostí
AJAX komunikácia
Spracovanie dát
Manažment chýb
Validančné vrstvy
HTML5 validácia
Logika na strane klienta
Bezpečnosť na strane servera
Progresívne vylepšenia
Moderné vzory
Fetch API
Async/Await
Form Data API
Spracovanie Promise
```
## Predpoklady
Predtým, než začneme s tvorbou formulárov, uistime sa, že máte všetko správne nastavené. Táto lekcia nadväzuje tam, kde sme skončili v predchádzajúcej, takže ak ste ju preskočili, možno sa oplatí vrátiť a najprv si osvojiť základy.
### Požadované nastavenie
| Komponent | Stav | Popis |
|-----------|--------|-------------|
| [HTML šablóny](../1-template-route/README.md) | ✅ Povinné | Základná štruktúra vašej bankovej aplikácie |
| [Node.js](https://nodejs.org) | ✅ Povinné | JavaScript runtime pre server |
| [Bankový API server](../api/README.md) | ✅ Povinné | Backend služba pre ukladanie dát |
> 💡 **Tip na vývoj**: Budete súčasne spúšťať dva samostatné servery – jeden pre frontend vašej bankovej aplikácie a druhý pre backendové API. Tento setup odráža reálny vývoj, kde front-end a back-end služby fungujú nezávisle.
### Konfigurácia servera
**Vaše vývojové prostredie bude obsahovať:**
- **Frontend server**: poskytuje vašu bankovú aplikáciu (typicky port `3000`)
- **Backend API server**: spracováva ukladanie a načítanie dát (port `5000`)
- **Oba servery** môžu bežať súčasne bez konfliktov
**Testovanie pripojenia k API:**
```bash
curl http://localhost:5000/api
# Očakávaná odpoveď: "Bank API v1.0.0"
```
**Ak vidíte odpoveď s verziou API, ste pripravení pokračovať!**
---
## Pochopenie HTML formulárov a ovládacích prvkov
HTML formuláre sú spôsobom, ako používatelia komunikujú s vašou webovou aplikáciou. Predstavte si ich ako telegrafný systém, ktorý spájal vzdialené miesta v 19. storočí – sú komunikačným protokolom medzi úmyslom používateľa a odpoveďou aplikácie. Keď sú navrhnuté premyslene, zachytávajú chyby, navigujú formátovanie vstupu a poskytujú užitočné návrhy.
Moderné formuláre sú výrazne sofistikovanejšie než základné textové vstupy. HTML5 prinieslo špecializované typy vstupov, ktoré automaticky zvládajú overenie e-mailu, formátovanie čísiel a výber dátumu. Tieto vylepšenia prospievajú prístupnosti aj používateľskému zážitku na mobilných zariadeniach.
### Základné prvky formulára
**Stavebné bloky, ktoré každý formulár potrebuje:**
```html
```
**Tento kód robí nasledovné:**
- **Vytvára** kontajner formulára s jedinečným identifikátorom
- **Špecifikuje** HTTP metódu pre odoslanie dát
- **Spojuje** popisky s vstupmi pre prístupnosť
- **Definuje** tlačidlo na odoslanie formulára
### Moderné typy vstupov a atribúty
| Typ vstupu | Účel | Príklad použitia |
|------------|---------|---------------|
| `text` | Všeobecný textový vstup | `` |
| `email` | Overenie e-mailu | `` |
| `password` | Skrytý textový vstup | `` |
| `number` | Číselný vstup | `` |
| `tel` | Telefónne čísla | `` |
> 💡 **Výhoda moderného HTML5**: Používanie špecifických typov vstupov zaisťuje automatickú validáciu, vhodné klávesnice pre mobil a lepšiu podporu prístupnosti bez potreby ďalšieho JavaScriptu!
### Typy tlačidiel a ich správanie
```html
```
**Čo robí každý typ tlačidla:**
- **Tlačidlá submit**: Spustia odoslanie formulára a pošlú dáta na zadaný endpoint
- **Tlačidlá reset**: Obnovia všetky polia formulára do pôvodného stavu
- **Bežné tlačidlá**: Nemajú žiadne štandardné správanie, vyžadujú vlastný JavaScript pre funkčnosť
> ⚠️ **Dôležitá poznámka**: `` element je samo-uzatvárací a nepotrebuje ukončujúci tag. Moderný odporúčaný zápis je `` bez lomky.
### Vytváranie prihlasovacieho formulára
Teraz vytvoríme praktický prihlasovací formulár, ktorý demonštruje moderné HTML postupy. Začneme so základnou štruktúrou a postupne ho vylepšíme o prístupnostné prvky a validáciu.
```html
Bank App
Login
```
**Čo sa tu deje:**
- **Štruktúruje** formulár pomocou semantických HTML5 elementov
- **Zoskupuje** súvisiace prvky pomocou `div` kontajnerov s výstižnými triedami
- **Spojuje** popisky s inputmi cez `for` a `id` atribúty
- **Pridáva** moderné atribúty ako `autocomplete` a `placeholder` pre lepší UX
- **Používa** `novalidate` pre spracovanie validácie cez JavaScript namiesto štandardnej prehliadačovej
### Sila správnych popiskov
**Prečo sú popisky dôležité pre moderný webový vývoj:**
```mermaid
graph TD
A[Označenie prvku] --> B[Podpora čítačiek obrazovky]
A --> C[Rozšírenie cieľa kliknutia]
A --> D[Validácia formulára]
A --> E[Výhody SEO]
B --> F[Prístupné pre všetkých používateľov]
C --> G[Lepší mobilný zážitok]
D --> H[Jasné chybové hlásenia]
E --> I[Lepšie hodnotenie vo vyhľadávaní]
```
**Čo správne popisky zabezpečujú:**
- **Umožňujú** čítačkám obrazovky jasne oznamovať polia formulára
- **Rozširujú** klikaciu plochu (kliknutie na popis aktivuje vstup)
- **Zlepšujú** použiteľnosť na mobiloch väčšími dotykovými cieľmi
- **Podporujú** validáciu formulára s výstižnými chybovými správami
- **Zvyšujú** SEO tým, že formulárovým prvkom dávajú sémantický význam
> 🎯 **Cieľ prístupnosti**: Každý vstup v formulári by mal mať priradený popisok. Tento jednoduchý zvyk robí vaše formuláre použiteľnými pre všetkých, vrátane používateľov so zdravotným postihnutím, a zlepšuje zážitok pre všetkých.
### Vytváranie registračného formulára
Registračný formulár vyžaduje podrobnejšie údaje na vytvorenie kompletného používateľského účtu. Postavme ho pomocou moderných HTML5 funkcií a vylepšenej prístupnosti.
```html
Register
```
**V tomto sme:**
- **Usadili** každé pole do kontajnerov `div` pre lepšie štýlovanie a rozloženie
- **Pridali** vhodné atribúty `autocomplete` pre podporu automatického vyplňovania prehliadačom
- **Zapracovali** užitočný placeholder text na usmernenie používateľa
- **Nastavili** rozumné predvolené hodnoty cez atribút `value`
- **Použili** validácie ako `required`, `maxlength` a `min`
- **Zvolili** `type="number"` pre pole zostatku s podporou desatinných čísiel
### Preskúmanie typov vstupov a správania
**Moderné typy vstupov prinášajú vylepšenia:**
| Funkcia | Výhoda | Príklad |
|---------|---------|----------|
| `type="number"` | Číselná klávesnica na mobile | Jednoduchšie zadávanie zostatku |
| `step="0.01"` | Kontrola desatinnej presnosti | Umožňuje centy v mene |
| `autocomplete` | Automatické vyplňovanie prehliadačom | Rýchlejšie vypĺňanie formulára |
| `placeholder` | Kontextové nápovedy | Viesť očakávania používateľa |
> 🎯 **Výzva na prístupnosť**: Skúste formuláre prechádzať iba pomocou klávesnice! Použite `Tab` na presun medzi poliami, `Space` na zaškrtnutie políčok a `Enter` na odoslanie. Tento zážitok vám pomôže pochopiť, ako používatelia čítačiek obrazovky interagujú s vašimi formulármi.
### 🔄 **Pedagogická kontrola**
**Porozumenie základom formulárov**: Pred implementáciou JavaScriptu si overte, že rozumiete:
- ✅ Ako semantický HTML vytvára prístupné formulárové štruktúry
- ✅ Prečo typy vstupov ovplyvňujú klávesnice na mobile a validáciu
- ✅ Vzťah medzi popiskami a ovládacími prvkami formulára
- ✅ Ako atribúty formulára ovplyvňujú základné správanie prehliadača
**Rýchly samotest**: Čo sa stane, ak odošlete formulár bez JavaScriptovej obsluhy?
*Odpoveď: Prehliadač vykoná štandardné odoslanie, obvykle presmeruje na URL z atributu action*
**Výhody formulárov HTML5**: Moderné formuláre prinášajú:
- **Vstavanú validáciu**: automatickú kontrolu e-mailu a formátu čísiel
- **Optimalizáciu pre mobily**: vhodné klávesnice pre rôzne typy vstupov
- **Prístupnosť**: podpora čítačiek obrazovky a navigácie klávesnicou
- **Progresívne vylepšenie**: fungujú aj keď je JavaScript vypnutý
## Pochopenie metód odosielania formulárov
Keď niekto vyplní váš formulár a stlačí odoslať, tieto dáta musia niekam ísť – zvyčajne na server, ktorý ich môže uložiť. Existuje niekoľko spôsobov, ako sa to deje, a poznať, ktorý použiť, vám ušetrí budúce komplikácie.
Pozrime sa, čo sa vlastne deje, keď používateľ klikne na tlačidlo odoslania.
### Štandardné správanie formulára
Najprv si všimnime, čo sa deje pri základnom odoslaní formulára:
**Otestujte svoje aktuálne formuláre:**
1. Kliknite na tlačidlo *Register* vo vašom formulári
2. Sledujte zmenu URL v adresnom riadku prehliadača
3. Všimnite si, ako stránka obnoví a údaje sa zobrazia v URL

### Porovnanie HTTP metód
```mermaid
graph TD
A[Odoslanie formulára] --> B{HTTP metóda}
B -->|GET| C[Dáta v URL]
B -->|POST| D[Dáta v tele požiadavky]
C --> E[Viditeľné v adresnom riadku]
C --> F[Obmedzená veľkosť dát]
C --> G[Možné pridať medzi záložky]
D --> H[Skryté z URL]
D --> I[Veľká kapacita dát]
D --> J[Bezpečnejšie]
```
**Pochopenie rozdielov:**
| Metóda | Použitie | Umiestnenie dát | Úroveň zabezpečenia | Limit veľkosti |
|--------|----------|-----------------|---------------------|----------------|
| `GET` | Vyhľadávacie dotazy, filtre | Parametre URL | Nízka (viditeľné) | ~2000 znakov |
| `POST` | Používateľské účty, citlivé údaje | Telo požiadavky | Vyššia (skryté) | Prakticky bez limitu |
**Základné rozdiely:**
- **GET**: Pridáva dáta formulára do URL ako parametre (vhodné na vyhľadávanie)
- **POST**: Posiela dáta v tele požiadavky (nevyhnutné pre citlivé informácie)
- **Ograničenia GET**: Obmedzená veľkosť, viditeľné dáta, pretrvávajúca história prehliadača
- **Výhody POST**: Veľká kapacita dát, ochrana súkromia, podpora nahrávania súborov
> 💡 **Dobrá prax**: Používajte `GET` pre vyhľadávacie formuláre a filtre (na vyhľadávanie dát), `POST` pre registráciu používateľov, prihlásenie a vytváranie dát.
### Konfigurácia odoslania formulára
Nakonfigurujme váš registračný formulár tak, aby správne komunikoval so backendovým API pomocou metódy POST:
```html
```
**Pochopenie rozšírenej validácie:**
- **Kombinuje** indikátory povinných polí s užitočnými opisami
- **Obsahuje** atribúty `pattern` pre formátovú validáciu
- **Poskytuje** atribúty `title` pre prístupnosť a tooltipy
- **Pridáva** pomocný text na usmernenie vstupu používateľa
- **Používa** sémantickú štruktúru HTML pre lepšiu prístupnosť
### Pokročilé validačné pravidlá
**Čo každé validačné pravidlo zabezpečuje:**
| Pole | Validačné pravidlá | Výhoda pre používateľa |
|-------|--------------------|-----------------------|
| Užívateľské meno | `required`, `minlength="3"`, `maxlength="20"`, `pattern="[a-zA-Z0-9_]+"` | Zabezpečuje platné, jedinečné identifikátory |
| Mena | `required`, `maxlength="3"`, `pattern="[A-Z$€£¥₹]+"` | Prijíma bežné symboly mien |
| Zostatok | `min="0"`, `step="0.01"`, `type="number"` | Zabráni záporným zostatkom |
| Popis | `maxlength="100"` | Rozumné obmedzenia dĺžky |
### Testovanie správania validácie
**Vyskúšajte tieto validačné situácie:**
1. **Odošlite** formulár s prázdnymi povinnými poliami
2. **Vložte** užívateľské meno kratšie ako 3 znaky
3. **Vyskúšajte** špeciálne znaky v poli užívateľského mena
4. **Zadajte** zápornú hodnotu zostatku

**Čo uvidíte:**
- **Prehliadač zobrazí** natívne validačné správy
- **Štýly sa menia** na základe stavov `:valid` a `:invalid`
- **Odoslanie formulára** je blokované, kým všetky validácie neprejdú
- **Automatické presunutie focusu** na prvé neplatné pole
### Validácia na klientovi vs na serveri
```mermaid
graph LR
A[Validácia na strane klienta] --> B[Okamžitá spätná väzba]
A --> C[Lepší UX]
A --> D[Znížené zaťaženie servera]
E[Validácia na strane servera] --> F[Bezpečnosť]
E --> G[Integrita dát]
E --> H[Obchodné pravidlá]
A -.-> I[Obe sú potrebné]
E -.-> I
```
**Prečo potrebujete obe vrstvy:**
- **Klientská validácia**: Poskytuje okamžitú spätnú väzbu a zlepšuje používateľský zážitok
- **Serverová validácia**: Zabezpečuje bezpečnosť a rieši zložité obchodné pravidlá
- **Kombinovaný prístup**: Vytvára robustné, používateľsky prívetivé a bezpečné aplikácie
- **Progresívne vylepšenie**: Funguje aj bez JavaScriptu
> 🛡️ **Bezpečnostné pripomenutie**: Nikdy nespoliehajte len na klientskú validáciu! Škodliví používatelia môžu obísť kontroly na klientovi, preto je serverová validácia nevyhnutná pre bezpečnosť a integritu dát.
### ⚡ **Čo môžete spraviť v nasledujúcich 5 minútach**
- [ ] Otestujte svoj formulár s neplatnými dátami a skontrolujte validačné správy
- [ ] Skúste odoslať formulár s vypnutým JavaScriptom a pozrite si HTML5 validáciu
- [ ] Otvorte DevTools prehliadača a skontrolujte odosielané dáta formulára
- [ ] Vyskúšajte rôzne typy vstupov a sledujte zmeny klávesnice na mobilných zariadeniach
### 🎯 **Čo môžete dosiahnuť počas tejto hodiny**
- [ ] Dokončite kvíz po lekcii a pochopte koncepty spracovania formulárov
- [ ] Implementujte komplexnú validáciu s okamžitou spätnou väzbou
- [ ] Pridajte CSS štýly pre profesionálny vzhľad formulárov
- [ ] Vytvorte spracovanie chýb pre duplicitné užívateľské mená a chyby servera
- [ ] Pridajte pole na potvrdenie hesla s validáciou súladu
### 📅 **Váš týždenný plán ovládania formulárov**
- [ ] Dokončite komplexnú bankovú aplikáciu s pokročilými funkciami formulárov
- [ ] Implementujte nahrávanie súborov pre profilové obrázky alebo dokumenty
- [ ] Pridajte viacstupňové formuláre s indikátormi progresu a správou stavu
- [ ] Vytvorte dynamické formuláre, ktoré sa prispôsobujú na základe výberov používateľa
- [ ] Implementujte automatické ukladanie a obnovu formulárov pre lepší používateľský zážitok
- [ ] Pridajte pokročilú validáciu, ako overenie emailu a formátovanie telefónnych čísel
### 🌟 **Váš mesačný plán ovládania frontendového vývoja**
- [ ] Vytvorte komplexné aplikácie s formulármi vrátane podmienených logík a workflowov
- [ ] Naučte sa knižnice a frameworky pre rýchly vývoj formulárov
- [ ] Ovládnite zásady prístupnosti a inkluzívne dizajnové princípy
- [ ] Implementujte internacionalizáciu a lokalizáciu pre globálne formuláre
- [ ] Vytvorte knižnice opakovane použiteľných komponentov formulárov a dizajnové systémy
- [ ] Prispievajte do open source projektov zameraných na formuláre a zdieľajte najlepšie postupy
## 🎯 Váš časový plán ovládania vývoja formulárov
```mermaid
timeline
title Vývoj formulárov & postup učenia používateľskej skúsenosti
section Základy HTML (15 minút)
Semantické formuláre: Formulárové prvky
: Typy vstupov
: Popisky a prístupnosť
: Postupné vylepšovanie
section Integrácia JavaScriptu (25 minút)
Spracovanie udalostí: Odoslanie formulára
: Zber dát
: AJAX komunikácia
: Async/await vzory
section Systémy overovania (35 minút)
Viacvrstvová bezpečnosť: Validácia HTML5
: Klientská logika
: Serverová verifikácia
: Spracovanie chýb
section Používateľská skúsenosť (45 minút)
Vylepšenie rozhrania: Stav načítania
: Správy o úspechu
: Obnova po chybe
: Prístupnostné funkcie
section Pokročilé vzory (1 týždeň)
Profesionálne formuláre: Dynamická validácia
: Viacstupňové postupy
: Nahrávanie súborov
: Spätná väzba v reálnom čase
section Firemné zručnosti (1 mesiac)
Produkčné aplikácie: Knižnice formulárov
: Testovacie stratégie
: Optimalizácia výkonu
: Najlepšie bezpečnostné praktiky
```
### 🛠️ Zhrnutie vášho nástroja pre vývoj formulárov
Po dokončení tejto lekcie ste ovládli:
- **HTML5 formuláre**: Sémantickú štruktúru, typy vstupov a prístupnostné funkcie
- **JavaScript spracovanie formulárov**: Spracovanie udalostí, zber dát a AJAX komunikáciu
- **Architektúru validácie**: Viacvrstvovú validáciu pre bezpečnosť a používateľský zážitok
- **Asynchrónne programovanie**: Moderné Fetch API a vzory async/await
- **Správu chýb**: Komplexné spracovanie chýb a systémy spätnej väzby používateľovi
- **Dizajn používateľského zážitku**: Stavy načítania, správy o úspechu a zotavenie z chýb
- **Progresívne vylepšenie**: Formuláre fungujúce vo všetkých prehliadačoch a podmienkach
**Skutočné aplikácie**: Vaše zručnosti vo vývoji formulárov nájdu uplatnenie v:
- **E-commerce aplikáciách**: Procesy platby, registrácia účtu a platobné formuláre
- **Podnikových softvéroch**: Systémy zadávania dát, reportovacie rozhrania a workflow aplikácie
- **Systémoch správy obsahu**: Publikačné platformy, obsah generovaný používateľmi a administrátorské rozhrania
- **Finančných aplikáciách**: Bankové rozhrania, investičné platformy a transakčné systémy
- **Zdravotníckych systémoch**: Portály pre pacientov, plánovanie termínov a formuláre lekárskych záznamov
- **Vzdelávacích platformách**: Registrácia kurzov, hodnotiace nástroje a manažment vzdelávania
**Profesijné zručnosti získané**: Teraz viete:
- **Navrhovať** prístupné formuláre fungujúce pre všetkých používateľov vrátane osôb so zdravotným postihnutím
- **Implementovať** bezpečnú validáciu formulárov, ktorá zabraňuje poškodeniu dát a bezpečnostným dieram
- **Vytvárať** responzívne používateľské rozhrania poskytujúce jasnú spätnú väzbu a usmernenia
- **Ladiť** zložité interakcie formulárov pomocou nástrojov vývojára prehliadača a analýzy siete
- **Optimalizovať** výkon formulárov efektívnym spracovaním dát a stratégiami validácie
**Ovládnuté koncepty frontendového vývoja**:
- **Architektúra riadená udalosťami**: Spracovanie interakcie používateľa a odpoveďových systémov
- **Asynchrónne programovanie**: Nezablokujúca komunikácia so serverom a spracovanie chýb
- **Validácia dát**: Klientská aj serverová bezpečnosť a kontrola integrity
- **Dizajn používateľského zážitku**: Intuitívne rozhrania vedúce používateľov k úspechu
- **Inžinierstvo prístupnosti**: Inkluzívny dizajn fungujúci pre rôzne potreby používateľov
**Ďalšia úroveň**: Ste pripravení objaviť pokročilé knižnice formulárov, implementovať komplexné validačné pravidlá alebo vybudovať podnikové systémy zberu dát!
🌟 **Dosiahnutý úspech**: Vybudovali ste kompletný systém spracovania formulárov s profesionálnou validáciou, spracovaním chýb a používateľskými vzormi!
---
---
## GitHub Copilot Agent Challenge 🚀
Použite režim Agenta na dokončenie nasledujúcej výzvy:
**Popis:** Vylepšite registračný formulár komplexnou validáciou na strane klienta a spätnou väzbou používateľovi. Táto výzva vám pomôže precvičiť validáciu formulárov, spracovanie chýb a zlepšovanie používateľského zážitku interaktívnou spätnou väzbou.
**Výzva:** Vytvorte kompletný systém validácie formulára pre registračný formulár, ktorý zahŕňa: 1) spätnej väzby validácie v reálnom čase pre každé pole počas písania používateľa, 2) vlastné chybové hlásenia zobrazené pod každým vstupným poľom, 3) pole na potvrdenie hesla s validáciou zhody, 4) vizuálne indikátory (ako zelené fajky pre platné polia a červené varovania pre neplatné), 5) tlačidlo odoslania, ktoré je povolené len vtedy, keď prejdú všetky validácie. Použite atribúty HTML5 na validáciu, CSS pre štýlovanie stavov validácie a JavaScript pre interaktívne správanie.
Viac informácií o [agent mode](https://code.visualstudio.com/blogs/2025/02/24/introducing-copilot-agent-mode) nájdete tu.
## 🚀 Výzva
Zobrazte chybové hlásenie v HTML, ak užívateľ už existuje.
Tu je príklad, ako môže konečná prihlasovacia stránka vyzerať po miernom úprave štýlov:

## Kvíz po prednáške
[Kvíz po prednáške](https://ff-quizzes.netlify.app/web/quiz/44)
## Prehľad & Samostatné štúdium
Vývojári sa stali veľmi kreatívnymi v tvorbe svojich formulárov, najmä čo sa týka stratégií validácie. Prezrite si rôzne postupy pri tvorbe formulárov na [CodePen](https://codepen.com); dokážete nájsť nejaké zaujímavé a inšpiratívne formuláre?
## Zadanie
[Štýlujte svoju bankovú aplikáciu](assignment.md)
---
**Zrieknutie sa zodpovednosti**:
Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, majte prosím na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.