Hermes
|
9a14803d26
|
fix(ui): 10 regression fixes from new design pass
- Nav: always visible glass background (no more transparent-on-top)
- Logo: remove text span, kill link underline completely
- Masonry: fix HTML class drift (gallery-grid -> masonry-grid)
- Gallery captions: rename to grid-item-label (hover-only)
- Honeypot: rename to hp-field (was rendered visible!)
- Hero: stronger gradient + text-shadow on h1/tag/meta
- LAGE features: cards with pin icon, no more bulleted list
- Map: full-viewport-width break-out from .lage-section
- Contact form: border-radius, focus glow, custom select arrow,
working .form-submit button style
- Light text: unified --text-muted-on-dark token (replaces 4 magic
white-XX% variants + --stone on .fact-label)
- A11y test: update honeypot class assertion
|
2026-06-04 18:03:50 +00:00 |
|
Hermes
|
7dd8023222
|
-m
|
2026-06-04 17:23:49 +00:00 |
|
Hermes
|
a1984b9413
|
test(i18n): integration render tests for 4 locales + Playwright E2E flow (closes #77)
|
2026-06-04 11:14:25 +00:00 |
|
Hermes
|
13a25aded2
|
feat(i18n): accessibility - per-field form errors, landmark aria-labels, tests (closes #76)
|
2026-06-04 11:04:06 +00:00 |
|
Hermes
|
0186de90ec
|
feat(i18n): responsive locale-switcher with SVG flags (closes #75)
|
2026-06-04 09:44:40 +00:00 |
|
Hermes
|
4b1c779846
|
feat(i18n): translation files DE/EN/UK/RU + layout integration (closes #74)
|
2026-06-04 09:31:34 +00:00 |
|
Hermes
|
ce21242308
|
feat(i18n): LocaleController switcher with open-redirect protection (closes #73)
- App\Controllers\LocaleController: GET /locale?set=xx&return=/path
- Sets 1-year cookie (HttpOnly=false for SSR, SameSite=Lax, Secure on HTTPS)
- 302 redirect to explicit return URL > Referer > /
- Pure buildResponse() helper for unit tests (no headers/exit)
- current() helper: resolves locale from $_GET/$_COOKIE/Accept-Language
- safeRedirect: rejects absolute URLs, protocol-relative (//evil.com),
backslash tricks (\\evil.com), javascript:/data: schemes
- 28 PHPUnit tests (LocaleControllerTest), all green
- Total project tests now: 92
|
2026-06-04 08:57:33 +00:00 |
|
Hermes
|
63c8c759d2
|
feat(i18n): core Locale resolver + I18n t()-helper with tests (closes #72)
- App\Core\Locale: query-param > cookie > Accept-Language > 'de' fallback
- BCP-47 region stripping (en-US -> en, uk-UA -> uk)
- q-value sorting with stable order
- og:locale mapping (de_DE, en_GB, uk_UA, ru_RU)
- hreflang alternates helper
- App\Core\I18n: t() with {placeholder} interpolation, lookup chain
current-locale -> de -> key, in-memory cache
- ADR-002: documents the architecture decision
- 46 PHPUnit tests (LocaleTest, I18nTest), all green
|
2026-06-04 08:53:58 +00:00 |
|
greggy
|
57b97b5069
|
feat: add PHPUnit test infrastructure and Router tests
Deploy Feature Branch to Test / deploy (push) Successful in 28s
Lint / PHP Syntax Check (push) Successful in 36s
Lint / CSS Lint (stylelint) (push) Successful in 1m18s
Lint / HTML Lint (htmlhint) (push) Successful in 1m11s
Lint / PHP Syntax Check (pull_request) Successful in 37s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m20s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m13s
- Add composer.json with PHPUnit 11 and PSR-4 autoloading
- Add phpunit.xml configuration
- Rename app/core/ → app/Core/ and app/controllers/ → app/Controllers/ (PSR-4)
- Add 18 unit tests for App\Core\Router (31 assertions)
- addRoute(): default action, custom action, overwrite
- dispatch(): URL normalization, direct match, legacy redirects
- dispatch(): 404 handling, controller/action not found exceptions
- TestableRouter subclass to intercept side-effects
- Update .gitignore (vendor/, .phpunit.cache/)
|
2026-05-22 19:02:02 +00:00 |
|