5 Commits

Author SHA1 Message Date
6b23cc330e feat: add Prettier, ESLint, and pre-commit hooks
- Add Prettier with svelte and tailwindcss plugins
- Add ESLint with typescript-eslint and eslint-plugin-svelte
- Add pre-commit hooks (trailing-whitespace, end-of-file-fixer,
  check-yaml, check-json, no-commit-to-branch, prettier, eslint,
  svelte-check)
- Add format, format:check, lint, lint:fix scripts to package.json
- Rename CI typecheck step to lint, add format:check and lint commands
- Fix ESLint issues: unused imports, Leaflet type import, extract
  JSON-LD from {@html} template literals to script-block variables
2026-02-23 05:33:44 +01:00
df93f83fcd feat(seo): add sitemap, canonical URLs, structured data, and OG/Twitter tags
- Add dynamic sitemap.xml with static pages and market entries
- Add canonical URLs and base OG/Twitter meta tags in root layout
- Add JSON-LD WebSite schema with SearchAction on home page
- Add JSON-LD Event schema on market detail pages
- Add twitter:card summary_large_image for markets with images
- Add OG tags to impressum and datenschutz pages
- Add font preloading for critical rendering path fonts
- Add Sitemap directive to robots.txt
2026-02-22 11:45:27 +01:00
76afe71854 feat: add signet ring logo and favicon with fleur-de-lis
Introduces brand identity with a medieval signet ring motif:
gold fleur-de-lis on dark green signet face. Adds SVG favicon,
raster fallbacks (ICO/PNG), apple-touch-icon, web manifest,
and inline signet ring logo in the header next to the wordmark.
2026-02-18 07:44:41 +01:00
2b02168747 feat: medieval aesthetic restyling with dark/light mode
- Add MedievalSharp + Crimson Pro fonts (woff2)
- Implement OKLCH color theme: forest green primary, gold accent,
  warm stone neutrals, parchment/vellum surfaces, brick red danger
- Add dark/light mode with system preference detection and user toggle
  (ThemeToggle component cycling system/light/dark)
- Prevent FOUC with inline script in app.html
- Replace native <select> with custom accessible dropdown (combobox/
  listbox pattern, keyboard nav, type-ahead, app-themed styling)
- Add IP geolocation fallback via geojs.io when native geolocation
  fails, with visual location badge showing resolved city name
- Shared form control styles via @layer base
- WCAG/a11y: skip-to-content link, aria-invalid, aria-describedby,
  aria-live, focus-visible, role="search", color-scheme:dark
- Update all 23 component/page files with new color system and
  dark: variants
2026-02-18 07:19:30 +01:00
1bcab1f1d4 feat: implement SvelteKit web frontend MVP
SvelteKit 2 (Svelte 5 runes) + Tailwind 4 + TypeScript frontend for
the Marktvogt medieval market platform.

- Market search with keyword FTS, location/radius, date range, sorting
- List/map toggle (Leaflet with OSM tiles, dynamic import)
- Market detail pages with SSR, SEO meta/OG tags, opening hours,
  admission prices, embedded map
- Auth: login (password + magic link + OAuth), register, logout
- Profile: view/edit display name + avatar, account deletion
- 2FA: TOTP setup, verify, disable
- httpOnly cookie auth with JWT access + session token refresh
- Responsive layout with mobile hamburger nav
- German UI text for DACH audience
2026-02-18 06:27:51 +01:00