- 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).
6.1 KiB
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, ✕ → ×, 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, zerofonts.googleapis/<style>in the served bytes; BOM passes through nginx byte-for-byte (efbbbfleading the served /). - Assets:
site.css?v=1200 text/css,icons.svg?v=1200 image/svg+xml, woff2 200 font/woff2. - Internal linkcheck (live): every internal href across the pages → 200.
- Chrome (live):
document.fonts.checktrue 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)
alkalmazasok.htmlfeature keywords remain filled chips (restyled flat 2px, blue-dim) — per the new.tagvs.badgeaddendum 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.- 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. - The nonpublic draft still carries placeholder pricing copy (content freeze — untouched).
- Weight: alkalmazasok.html is ~97 KB HTML + dozens of webp screenshots; a lazy-loading pass would help mobile data budgets.
- The hero float animation + nav backdrop blur kept (motion, not shadow); a
prefers-reduced-motionblock now disables animations globally. assets/checkmark-green.svgis now unreferenced (afterf114f4a) — left in place; removable in a later cleanup.