43189e8972
- 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).
101 lines
6.1 KiB
Markdown
101 lines
6.1 KiB
Markdown
# 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](hub/CHANGELOG.md); the scripts history lives in [scripts/CHANGELOG.md](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`, 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.
|