SluijsensandClaude Sonnet 5 43132bb491
Continuous Integration / config (pull_request) Successful in 9s
Continuous Integration / prepare (pull_request) Successful in 1m14s
Continuous Integration / build-production (pull_request) Skipped
Continuous Integration / build (pull_request) Successful in 1m56s
Continuous Integration / test (pull_request) Successful in 1m50s
Continuous Integration / deploy-test (pull_request) Skipped
Continuous Integration / deploy-production (pull_request) Skipped
Scroll naar de eyebrow-label i.p.v. sectietop, met ruimte voor de nav
id + scroll-mt-16 stonden op de <section>, die zelf al py-[88px]
padding heeft - scrollIntoView lijnde dus de sectierand (inclusief
die padding) uit met de viewport-top, waardoor het te ver leek door
te scrollen en de content alsnog achter de sticky nav kon vallen.
id + scroll-mt-16 staan nu direct op de eyebrow-span ("// over",
"// werkwijze", "// pakketten", "// contact"), zodat er precies
daarheen én met 64px ruimte voor de nav wordt gescrold.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 14:20:01 +02:00
2026-07-24 23:28:16 +02:00
2026-08-04 16:09:10 +02:00

SLP Software — React Frontend

React frontend for the SLP Software marketing site. Ported 1-to-1 from the static reference designs in References/ (slp-software.html = purple accent, slp-software-rood.html = red accent), with an added visible theme switcher (red default, purple selectable).

Tech Stack

Getting Started

pnpm install
pnpm dev

The app runs at http://localhost:5173/ by default.

Available Scripts

Script Description
pnpm dev Start the Vite dev server
pnpm build Type-check and build a production bundle to dist/
pnpm preview Preview the production build locally
pnpm test Run the test suite once (Vitest)
pnpm test:watch Run the test suite in watch mode
pnpm lint Run ESLint
pnpm format Format the codebase with Prettier

Project Structure

src/
  components/       Presentational React components (Nav, Hero, PackagesSection, ...)
  data/             Static site content (content.ts) — current source of truth for copy/data
  hooks/            usePackagesQuery — placeholder TanStack Query hook
  routes/           TanStack Router route definitions (__root.tsx, index.tsx)
  theme/            Theme system (ThemeProvider, theme tokens)
  test/             Test setup (Vitest + Testing Library)
  fonts.ts          Self-hosted font imports (@fontsource)
  index.css         Global styles + red/purple theme CSS variables
  main.tsx          Application entry point
  router.tsx        Router instance (hash history)
  queryClient.ts    Shared TanStack Query client

Theming

The site defaults to the red theme; visitors can switch to purple via the toggle button in the navigation bar. The chosen theme is persisted in localStorage and restored on future visits. See aidlc-docs/features/react-frontend/construction/react-frontend-app/functional-design/business-rules.md for the full theme business rules.

Deployment Notes

This app builds to a plain static bundle (pnpm builddist/), intended for upload to a traditional web host via FTP. TanStack Router uses hash-based history (/#/route) so that client-side routing keeps working even on hosts without server-side rewrite rules configured. See the feature's NFR Requirements/Design documentation under aidlc-docs/features/react-frontend/ for the rationale.

S
Description
No description provided
Readme
1.2 MiB
Languages
TypeScript 62.3%
HTML 34.5%
CSS 2.2%
JavaScript 1%