diff --git a/README.md b/README.md index 2303283..4824a89 100644 --- a/README.md +++ b/README.md @@ -63,15 +63,15 @@ uten at visningene må skrives om. ## Sider og ruter -Rutene er definert i `src/App.tsx` med React Router. Alle sidene er -foreløpig plassholdere som fylles ut i egne oppgaver. - -| Rute | Side | Innhold nå | -| ---------------------- | ------------------- | ------------------------------------------ | -| `/` | `CatalogPage` | Plassholder og lenker til eksempelannonser | -| `/annonser/:listingId` | `ListingDetailPage` | Tittel, område og pris for annonsen | -| `/lei-ut` | `RentOutPage` | Plassholder for utleieskjema | -| Alle andre | `NotFoundPage` | «Fant ikke siden» | +Rutene er definert i `src/App.tsx` med React Router. Sidene som ikke er +ferdige, er plassholdere som fylles ut i egne oppgaver. + +| Rute | Side | Innhold nå | +| ---------------------- | ------------------- | ------------------------------------- | +| `/` | `CatalogPage` | Alle eksempelannonser som annonsekort | +| `/annonser/:listingId` | `ListingDetailPage` | Tittel, område og pris for annonsen | +| `/lei-ut` | `RentOutPage` | Plassholder for utleieskjema | +| Alle andre | `NotFoundPage` | «Fant ikke siden» | Ny side: lag en mappe i `src/pages/`, legg til en `Route` i `App.tsx` og kall `usePageTitle` i siden. Sidemalen (`Layout`) gir header, navigasjon og diff --git a/docs/design.md b/docs/design.md index 53fc73f..96938cd 100644 --- a/docs/design.md +++ b/docs/design.md @@ -103,16 +103,36 @@ bakgrunn, men teksten alene er nok til å skille dem. ### ListingCard -Visuell referanse for et annonsekort med bilde, tittel, kategori, område og -pris. Når `imageUrl` er `null`, vises en plassholder med teksten «Ingen bilde». -Bildet har tom alt-tekst fordi tittelen rett under beskriver det samme. +Annonsekort med bilde, tittel, kategori, område og pris. Når `imageUrl` er +`null`, vises en plassholder med teksten «Ingen bilde». Bildet har tom +alt-tekst fordi tittelen rett under beskriver det samme. ```tsx ``` -Tittelen er en `h2`. Katalogen kan gjøre tittelen til en lenke til -detaljvisningen, for eksempel `/annonser/listing-001`. +Tittelen er en `h2` med en lenke til detaljvisningen, for eksempel +`/annonser/listing-001`. Lenken dekker hele kortet med CSS, så hele kortet er +klikkbart. Likevel har hvert kort bare ett tabulatorstopp, og skjermlesere +leser bare tittelen som lenketekst. Fokusringen og hover-effekten tegnes rundt +hele kortet. + +Kortet bruker `Link` fra React Router og må derfor ligge inne i en router. +Designreferansen bruker `MemoryRouter` av samme grunn. + +### ListingGrid + +Responsivt rutenett med ett `ListingCard` per annonse. Annonsene vises i den +rekkefølgen de sendes inn, så søk, filtre og sortering gjøres før listen +sendes til rutenettet. + +```tsx + +``` + +Rutenettet er en `