Files
felhom.eu/REPORT.md
T
admin 43189e8972 D3 Part 4: docs — .tag/.badge addendum, website CHANGELOG, REPORT
- design-system.md: the .tag (outline+dot, state) vs .badge (filled
  chip, static informational label) distinction the D1 unified view
  left implicit, + a Website (TASK-D3) section (shared site.css,
  self-hosted fonts, external sprite, mask-based CSS marks, ?v=
  cache-busting, site_gates.py enforcement).
- website/CHANGELOG.md created (newest-on-top) with the D3 entry.
- REPORT.md overwritten per §15 (baselines, commits, gate outputs +
  all three red-proofs, 84-problem/182-emoji baseline → 0, contact-form
  freeze proof + live TESZT submission resend id, live checks, the
  narrow-viewport limitation, observations).
2026-07-02 22:19:58 +02:00

6.1 KiB
Raw Blame History

felhom.eu — task reports

Overwrite this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in hub/CHANGELOG.md; the scripts history lives in scripts/CHANGELOG.md.


REPORT — TASK-D3: felhom.eu website re-skin (design system v2, static-site edition)

Date: 2026-07-02 · Deploy: push = live via nginx + git-sync (verified per commit)

1. Baselines

  • felhom.eu main @ a336fe3 — matched the spec; main had not moved at session start.
  • felhom-controller @ d0c70a7 (v0.98.3) — read-only source of the 4 woff2 files (byte-copied).

2. Commits (all pushed to main, live site checked after each)

Commit Content
dd54e4c Part 1: assets + gates — site.css, fonts/, icons.svg (70 symbols), scripts/site_gates.py; pages untouched, live site unaffected
bed8675 Part 2: index + kapcsolat converted
ccbb13a Part 3: the remaining five pages converted; ALL 8 gates green
f114f4a Open Source badge: checkmark-green.svg image → sprite .ico-yes check (found live)
(docs) Part 4: design-system addendum + website/CHANGELOG.md + this REPORT

3. What changed per page (uniform)

Google Fonts links + preconnects removed → /assets/site.css?v=1; embedded <style> deleted (7→0); page-<name> body class; canonical nav/footer (active marker per page; index's #szolgaltatasok href normalized to /#szolgaltatasok); every emoji → sprite icon (.ico-tile 48px bg-2 feature squares / .ico-lg heading icons / inline .ico) or plain text; legacy inline var(--…) names → v2 tokens. Content, copy, meta/SEO/JSON-LD, and the umami analytics snippet preserved verbatim (gate-asserted per page). alkalmazasok.html verified hand-maintained (no generator anywhere in the workspace) before editing; its 49-card grid, screenshots, and logos untouched. szolgaltatasok-nonpublic re-skinned, still unlinked from nav.

4. Gate outputs + red-proofs

Final run: site gates OK — BOM, emoji=0, nav/footer consistent, analytics present, no CDN, no legacy tokens, no <style>, cache-busted assets (8 gates).

Baselines (pre-task tree): 84 problems, 182 emoji (the spec's leftover estimate was low — the website was never swept; the Python gate counts what Windows grep could not). Style blocks 7→0. Banned tokens (Google Fonts refs, legacy hexes, 999px, box-shadow) → 0.

Red-proofs (run on a copy, shown, restored):

  • A (BOM): stripping gyik.html's BOM → FAIL: gyik.html: missing UTF-8 BOM (first bytes: 3c2144); restored → exit 0.
  • B (nav/footer): mutating one footer char on technologiak → FAIL: technologiak.html: <footer> differs from index.html; restored → 0.
  • C (emoji): planting 🔒 into index → FAIL: index.html: 1 emoji (🔒 …); restored → 0. Pre-task tree count: 182.

5. Contact form (Scenario E)

Functional markup frozen — the bed8675 diff shows zero changed lines touching contactForm, formEndpoint (/api/contact), or any field name=/id= (name/email/subject/message/privacy/website honeypot). Visual-only JS changes: file-type/paperclip emoji strings → sprite refs, &#215;, status-message emoji prefixes dropped.

Live TESZT submission (real UI, after deploy): success status rendered („Üzeneted sikeresen elküldtük!"), and the contact-mailer pod logged [OK] Email sent: resend_id=6835b3ac-6f46-45c0-8aa8-a10b852aaa7a subject="[Felhom.eu] Egyéb TESZT — D3 website re-skin validálás" — accepted end-to-end via Resend.

6. Live checks

  • All 7 pages 200 with site.css?v=1, zero fonts.googleapis/<style> in the served bytes; BOM passes through nginx byte-for-byte (efbbbf leading the served /).
  • Assets: site.css?v=1 200 text/css, icons.svg?v=1 200 image/svg+xml, woff2 200 font/woff2.
  • Internal linkcheck (live): every internal href across the pages → 200.
  • Chrome (live): document.fonts.check true for both faces; 0 Google requests; self-hosted pjs-latin + pjs-latin-ext + jbm-latin loaded (ő/ű render in PJS — hero screenshot); DOM-asserted 0 box-shadows, 0 radii other than 0/2px/50%; 31 sprite icons on index; comparison lists render the mask-based ✓/✗ marks; screenshots of index (hero + feature tiles), alkalmazasok grid, technologiak comparison.
  • Responsive: the mobile menu CSS/JS moved verbatim (same ≤900px breakpoint); the served site.css verifiably contains the mobile rules (CSSOM check: .hamburger {display:block}, off-canvas .nav-links). A true ~375px viewport screenshot was NOT possible — the window manager forced the browser window back to 1920px; noted under §7.

7. NOT live-validated

  • Narrow-viewport rendering (real ~375px screenshot): resize was overridden by the window manager; verified statically instead (mobile rules present in the served CSS + the pre-existing, unchanged menu JS). Worth one phone-check by the operator.
  • Cache expiry over the 7-day window (the ?v= scheme makes future changes safe regardless).

8. Observations (not acted on)

  1. alkalmazasok.html feature keywords remain filled chips (restyled flat 2px, blue-dim) — per the new .tag vs .badge addendum they are informational .badge-semantics labels; converting ~200 of them to icon+text metarows would need per-feature icon inventions. Deliberate deviation from the literal "chips → metarow" wording, documented in the addendum.
  2. The comparison/cons lists inherited --warn-colored ✗ marks from the original orange — kept (a con is a warning-ish signal); pure-absence marks use muted.
  3. The nonpublic draft still carries placeholder pricing copy (content freeze — untouched).
  4. Weight: alkalmazasok.html is ~97 KB HTML + dozens of webp screenshots; a lazy-loading pass would help mobile data budgets.
  5. The hero float animation + nav backdrop blur kept (motion, not shadow); a prefers-reduced-motion block now disables animations globally.
  6. assets/checkmark-green.svg is now unreferenced (after f114f4a) — left in place; removable in a later cleanup.