# Les 10: Styling: Tailwind CSS & shadcn/ui

---

## Hoofdstuk
**Deel 3: Full-Stack Development** (Les 9-12)

## Beschrijving
Styling je applicatie met Tailwind CSS en modern components met shadcn/ui. Utility-first approach, component libraries, themeing en dark mode implementatie.

---

## Te Behandelen (~45 min)

- Waarom Tailwind? Utility-first CSS approach vs traditioneel CSS
- Tailwind in Next.js (meestal al ingesteld)
- Core utilities: spacing, colors, flexbox, grid, responsive (mobile-first)
- Tailwind components: buttons, cards, forms patterns
- Wat is shadcn/ui? Beautifully designed component library
- shadcn/ui installatie en configuratie
- shadcn/ui components: Button, Card, Input, Dialog, etc.
- Custom Tailwind color themes (tailwind.config.ts)
- Dark mode implementation met Tailwind
- Performance: class optimization, purging unused styles

---

## Tools
- Tailwind CSS
- shadcn/ui
- Cursor
- TypeScript

---

## Lesopdracht (2 uur, klassikaal)

### Styling Je Mini-Project

**Groepsdiscussie (15 min):**
Bespreek klassikaal de Full-Stack Mini Project ervaringen uit Les 9 - welke onderdelen werkten goed en waar liepen jullie vast?

**Deel 1: Tailwind Basics (30 min)**

1. Open je mini-project uit Les 9
2. Refactor bestaande components met Tailwind classes:
   - Button: `bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded`
   - Card: `bg-white rounded-lg shadow-lg p-6`
   - Form inputs: `w-full px-3 py-2 border border-gray-300 rounded-md`
3. Voeg spacing, colors, responsive design toe

**Deel 2: shadcn/ui Setup & Components (45 min)**

1. Install shadcn/ui: `npx shadcn-ui@latest init`
2. Install components: `npx shadcn-ui@latest add button input card dialog`
3. Replace je custom components met shadcn versions
4. Test styling en interactiviteit

**Deel 3: Theme & Dark Mode (30 min)**

1. Customize Tailwind color scheme in `tailwind.config.ts`
2. Voeg dark mode toggle toe (localStorage + CSS class toggle)
3. Zorg dat je hele app responsive is (mobile-first)

### Deliverable
- Gerestyled mini-project met Tailwind + shadcn/ui
- Dark mode toggle werkend
- Mobile responsive design
- GitHub commit met improvements

---

## Huiswerk (2 uur)

### Vervolg Styling & Polish

**Deel 1: Component Library Uitbreiden (1 uur)**

Install en integreer meer shadcn/ui components:
- Select, Tabs, Modal/Dialog
- Forms package voor betere form handling
- Toast notifications
- Zorg dat je hele app consistent gelayout is

**Deel 2: Custom Theme (30 min)**

Maak je eigen color palette in `tailwind.config.ts`:
- Primary, secondary, accent colors
- Custom spacing, typography
- Test in light en dark mode

**Deel 3: Accessibility & Polish (30 min)**

1. Voeg alt text toe aan images
2. Zorg voor proper heading hierarchy
3. Test keyboard navigation
4. Fix UI inconsistencies

### Deliverable
- Compleet gestylde mini-project
- Alle shadcn/ui components correct geintegreerd
- Custom color theme
- GitHub commits met styling improvements

---

## Leerdoelen

Na deze les kan de student:
- Tailwind utility-first approach begrijpen en toepassen
- shadcn/ui components installeren en gebruiken
- Custom Tailwind themes maken
- Dark mode implementeren
- Responsive design (mobile-first) toepassen
- Professional-looking UI bouwen met componenten
- Het verschil tussen styling approaches begrijpen
