Feat : Initialize DSFR design system #5

Merged
eliott merged 1 commit from feat/dsfr-init into develop 2026-05-10 18:23:29 +02:00
Owner

Summary

  • Wires @codegouvfr/react-dsfr@1.32.1 into the Next.js App Router with the canonical dsfr-bootstrap scaffold (DsfrProvider, DsfrHead, getHtmlAttributes, default color scheme = system)
  • Replaces the create-next-app starter shell with DSFR Header (République Française block + service title "Ressources Relationnelles") and DSFR Footer (theme switcher in both)
  • Drops Geist fonts in favor of Marianne (preloaded by DsfrHead); lang="fr"
  • Adds predev/prebuild running react-dsfr update-icons; keeps output: "standalone" for the Docker image

Test plan

  • pnpm run lint clean
  • pnpm run build succeeds (Turbopack, static prerender of /)
  • Dev server returns HTTP 200 with lang="fr", DSFR classes (fr-header__brand, fr-footer, fr-container), Marianne font preload, no runtime errors
  • Visual check in browser (theme switcher modal, Marianne font, header/footer layout)

⚠ Before merging

Deps were installed with pnpm because npm wasn't available on the dev host. The Dockerfile uses npm ci, so package-lock.json must be regenerated on a host with npm and committed before the next Docker build, otherwise CI/Docker will break.

🤖 Generated with Claude Code

## Summary - Wires `@codegouvfr/react-dsfr@1.32.1` into the Next.js App Router with the canonical `dsfr-bootstrap` scaffold (DsfrProvider, DsfrHead, getHtmlAttributes, default color scheme = system) - Replaces the create-next-app starter shell with DSFR Header (République Française block + service title "Ressources Relationnelles") and DSFR Footer (theme switcher in both) - Drops Geist fonts in favor of Marianne (preloaded by DsfrHead); `lang="fr"` - Adds `predev`/`prebuild` running `react-dsfr update-icons`; keeps `output: "standalone"` for the Docker image ## Test plan - [x] `pnpm run lint` clean - [x] `pnpm run build` succeeds (Turbopack, static prerender of `/`) - [x] Dev server returns HTTP 200 with `lang="fr"`, DSFR classes (`fr-header__brand`, `fr-footer`, `fr-container`), Marianne font preload, no runtime errors - [ ] Visual check in browser (theme switcher modal, Marianne font, header/footer layout) ## ⚠ Before merging Deps were installed with **pnpm** because npm wasn't available on the dev host. The Dockerfile uses `npm ci`, so `package-lock.json` must be regenerated on a host with npm and committed before the next Docker build, otherwise CI/Docker will break. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Wire @codegouvfr/react-dsfr into the Next.js App Router so the project
inherits the official design system out of the box. Adds the standard
dsfr-bootstrap scaffold (DsfrProvider, DsfrHead, getHtmlAttributes,
default color scheme = system), the Republique Francaise header with
service title "Ressources Relationnelles", a DSFR footer with the
theme switcher, and replaces the create-next-app starter page with a
minimal DSFR-styled home. Drops the Geist fonts in favor of Marianne
preloaded by DsfrHead. Adds predev/prebuild scripts running
react-dsfr update-icons. next.config.ts keeps output: standalone for
the Docker image.

Note: deps installed via pnpm; package-lock.json must be regenerated
on a host with npm before the Docker build (npm ci) will work again.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
eliott merged commit 4a0d1fad05 into develop 2026-05-10 18:23:29 +02:00
eliott deleted branch feat/dsfr-init 2026-05-10 18:23:29 +02:00
Commenting is not possible because the repository is archived.
No reviewers
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
cda-solutions/resources-relationnelles-website!5
No description provided.