Scrum4Me/.icons/icons/INSTALL.md
janpeter visser 4dd62c199c feat: ST-201-ST-210 M2 stories, drag-and-drop en Zustand stores
- usePlannerStore met pbiOrder/storyOrder init/reorder/rollback (ST-201)
- useSelectionStore uitgebreid met selectedStoryId en clearSelection (ST-202)
- PBI drag-and-drop binnen prioriteitsgroep via dnd-kit (ST-203)
- PBI slepen over prioriteitsgrens wijzigt priority (ST-204)
- Stories als blokken met prioriteit- en statusbadge (ST-205/ST-206)
- Story drag-and-drop horizontaal binnen en tussen groepen (ST-207)
- Story detail slide-over met bewerkformulier (ST-208)
- Story verwijderen met bevestigingsstap (ST-209)
- Filter op status en prioriteit in rechterpaneel (ST-210)
- Fix: infinite loop in useEffect door stabiele string dependency

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 11:46:18 +02:00

125 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Scrum4Me — Icon installatie voor Next.js
## Bestandslocaties
Kopieer de bestanden naar de juiste plek in je Next.js App Router project:
```
app/
favicon.ico ← favicon.ico
icon-192.png ← icon-192.png (rename: icon.png)
apple-icon.png ← icon-180.png (rename: apple-icon.png)
public/
icon-512.png ← voor PWA manifest
icon-192.png ← voor PWA manifest
components/
shared/
app-icon.tsx ← herbruikbare React component
```
## Stap 1 — Favicon en app icons
```bash
# Kopieer naar app/ map (Next.js pikt deze automatisch op)
cp favicon.ico ../app/favicon.ico
cp icon-192.png ../app/icon.png
cp icon-180.png ../app/apple-icon.png
# Kopieer naar public/ voor manifest
cp icon-512.png ../public/icon-512.png
cp icon-192.png ../public/icon-192.png
```
## Stap 2 — Metadata in app/layout.tsx
```tsx
// app/layout.tsx
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: {
default: 'Scrum4Me',
template: '%s — Scrum4Me',
},
description: 'Lichtgewicht Scrum-planner voor solo developers en kleine teams',
icons: {
icon: [
{ url: '/favicon.ico', sizes: '48x48' },
{ url: '/icon.png', sizes: '192x192', type: 'image/png' },
],
apple: [
{ url: '/apple-icon.png', sizes: '180x180', type: 'image/png' },
],
},
manifest: '/manifest.json',
}
```
## Stap 3 — PWA manifest (optioneel)
Maak `public/manifest.json` aan:
```json
{
"name": "Scrum4Me",
"short_name": "Scrum4Me",
"description": "Lichtgewicht Scrum-planner voor solo developers en kleine teams",
"start_url": "/dashboard",
"display": "standalone",
"background_color": "#0d0a14",
"theme_color": "#7c3aed",
"icons": [
{
"src": "/icon-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any maskable"
},
{
"src": "/icon-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any maskable"
}
]
}
```
## Stap 4 — AppIcon component gebruiken
```tsx
// In de navigatiebalk:
import { AppIcon } from '@/components/shared/app-icon'
export function Navbar() {
return (
<nav>
<div className="flex items-center gap-2">
<AppIcon size={28} />
<span className="font-semibold text-foreground">Scrum4Me</span>
</div>
</nav>
)
}
```
## Gegenereerde bestanden — overzicht
| Bestand | Formaat | Gebruik |
|---|---|---|
| `favicon.ico` | ICO (16+32+48) | Browser tabblad |
| `icon-16.png` | PNG 16×16 | Browser fallback |
| `icon-32.png` | PNG 32×32 | Browser retina tabblad |
| `icon-48.png` | PNG 48×48 | Windows taskbar |
| `icon-76.png` | PNG 76×76 | iPad non-retina |
| `icon-120.png` | PNG 120×120 | iPhone retina |
| `icon-144.png` | PNG 144×144 | Windows tile |
| `icon-152.png` | PNG 152×152 | iPad retina |
| `icon-180.png` | PNG 180×180 | Apple touch icon |
| `icon-192.png` | PNG 192×192 | Android / PWA |
| `icon-512.png` | PNG 512×512 | PWA splash / stores |
| `icon-master.svg` | SVG | Bronbestand (master) |
| `icon-simple.svg` | SVG | Vereenvoudigd voor kleine formaten |
| `app-icon.tsx` | React | Inline SVG component |