M19.4: CryptoZing favicon set (faithful trace) — retire emoji favicons#99
Conversation
…oji favicons Replace the per-page emoji-favicon system with one brand favicon site-wide, derived faithfully from the real logo (public/images/CZ.png) — not a redraw. Pipeline (reproducible, in resources/branding/): - potrace vectorizes CZ.png, color-separated navy/orange + white-keyline silhouette, into the master cz-trace.svg. - generate-favicons.php (Imagick + rsvg) renders every deliverable with a per-size, non-linear white keyline so the navy C stays legible on dark browser chrome instead of vanishing at 16px. Deliverables in public/: favicon.ico (multi-res 16/32/48), favicon.svg (keyline, tightened viewBox), favicon-16/32 png, apple-touch-icon (opaque white bg for iOS), android-chrome 192/512, site.webmanifest. Wiring: - New <x-favicon /> component, included in all three layouts. - Removed x-emoji-favicon from 21 views; deleted the component. - tests/Feature/FaviconTest.php guards the link set + deliverables. Docs: 19.4 decisions recorded (single mark, faithful trace), §1 items 1-4 checked off (5-6 marketing/Pages + §2 og:image + §3 copy refactor remain); milestone 19 active-phases line updated. Full suite: 365 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0ef1be6379
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| <link rel="icon" href="{{ asset('favicon.ico') }}" type="image/x-icon"> | ||
| @stack('page-favicon') | ||
| <x-favicon /> |
There was a problem hiding this comment.
Include the favicon set on the landing page
This only adds the new favicon component to shared layouts, but the / route renders view('welcome') directly and resources/views/welcome.blade.php has its own <head> without <x-favicon /> or the manifest/apple/theme tags. When visitors land on the unauthenticated homepage they still won't emit the shipped SVG/PNG/apple/manifest favicon set, so add the component to that standalone head or move the page onto a layout.
Useful? React with 👍 / 👎.
Replace the raw 1024px CZ.png favicon on the marketing/Pages site with the same generated set used by the app: - favicon files placed under site/ (source for the CI passthrough) - registered as Eleventy addPassthroughCopy entries (CI/Pages build) - linked from site/_layouts/default.njk (sole layout; index + articles chain to it) — full ico/svg/png/apple-touch/manifest set Verified with a CI-mode Eleventy build: all deliverables land in _site/ and the six link tags render in the head. The GitHub Pages placeholder isn't a distinct surface — it is this site/ build — so §1 items 5-6 both close. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Swap the old indigo placeholder og-preview for a card that matches the new mark: navy brand background, the keyline CZ glyph (embedded from favicon.svg, keyline thinned for the larger scale), wordmark + tagline. - site/og-preview.png (1200×630) + og-preview.svg source. - Meta tags in site/_layouts/default.njk already point at /og-preview.png — drops in with no markup change. - Generator preserved at resources/branding/generate-og-image.php; README documents it. (No public/ copy: the Laravel app has no social-card surface; the marketing site is it.) §2 items 1-3 done; preview-tool validation (4-5) is the remaining [User] pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The accent bar under-spanned the wordmark and read as an unintentional partial underline. Measure the rendered wordmark width (Imagick queryFontMetrics, same DejaVu Sans Bold) and size the orange underline to match it exactly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
§3 was mis-written — it conflated "pre-release" (accurate lifecycle word), "Release Candidate", and "RC" (internal jargon) and implied a swap nobody asked for. Rewrite it to the real rule: "RC"/"Release Candidate" never appear in user-facing copy; the deployed RC is publicly "open beta"; "pre-release" stays where accurate; internal docs/comments keep "RC". Audit result: no user-facing "RC"/"Release Candidate" today — the only hits are internal, unrendered comments (wallet/settings Blade comment, config/mail comment). Nothing to replace. Guard: tests/Feature/UserFacingCopyTest.php fails if "Release Candidate" appears in user-facing template source (resources/views + site/). Verified it catches a planted violation. Also checked off §5.1 (favicon link test already covers it; og:image meta lives in the static site layout). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…eta" Per decision: active worklist docs drop "RC" for "open beta" (filenames abbreviated "OB"); only code comments + config keep "RC"; completed x-docs keep their historical "RC". - Renamed: 19_RC_HARDENING_OPS.md -> 19_OB_HARDENING_OPS.md, 21_RC_DEPLOYMENT.md -> 21_OB_DEPLOYMENT.md. Repointed every link (PLAN, 19.3-19.8 + x19.1/x19.2 parent links). - Prose/titles RC -> open beta in PLAN.md, both milestone docs, milestones.ics, README, AGENTS, and the 19.6/19.7/19.8 goal lines. - Reversed the 19.4 "internal docs keep RC" decision to match. - RC_ROLLOUT_CHECKLIST.md left as-is (flagged follow-up — ripples into completed docs + PRODUCT_SPEC); active refs drop the "RC" adjective. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ECKLIST
Carry the "open beta" terminology beyond the planning worklist into the
internal spec/reference docs, with two-bucket treatment:
- scope-label "RC" -> plain "open beta" (e.g. "for the open beta",
"open-beta scope", "Out of Scope for the open beta", "post-open-beta").
- run-up/prep "RC" -> launch framing ("before open-beta launch",
"ahead of the open beta", "critical for open-beta launch").
Swept: PRODUCT_SPEC, BACKLOG, CONTENT_PROMISES, DOC_ROLES, docs/specs/* (7),
docs/qa/tests/* (3), docs/ops/* (3), research/btcpay-server-alternatives.
Renamed docs/ops/RC_ROLLOUT_CHECKLIST.md -> OB_ROLLOUT_CHECKLIST.md and
repointed every reference (incl. filename pointers in completed x16 docs so
links stay valid; their historical "RC" terminology is untouched). Fixed the
checklist's own title/intro/body prose.
Out of scope (still "RC"): completed x-docs, code/config comments, and the
user-facing site article ("pre-release", accurate).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
What
Replaces the per-page emoji-favicon system with one CryptoZing brand favicon site-wide, derived faithfully from the real logo (
public/images/CZ.png) — traced, not redrawn.How it was made (reproducible,
resources/branding/)potracevectorizes the real artwork, color-separated into navy#04254a/ orange#ff5908+ a white-keyline silhouette → mastercz-trace.svg.generate-favicons.php(Imagick +rsvg-convert) renders every deliverable with a per-size, non-linear white keyline — heavier at small sizes — so the navy C stays legible on dark browser chrome instead of vanishing at 16px.resources/branding/README.md.Deliverables (
public/)favicon.ico(multi-res 16/32/48) ·favicon.svg(keyline, tightened viewBox) ·favicon-16x16.png·favicon-32x32.png·apple-touch-icon.png(opaque white bg for iOS) ·android-chrome-192/512·site.webmanifestWiring
<x-favicon />component, included in all three layouts.x-emoji-faviconfrom 21 views; deleted the component.tests/Feature/FaviconTest.phpguards the link set + deliverable files.Docs
19.4 decisions recorded (single mark, faithful trace); §1 items 1–4 checked off. Remaining: §1 items 5–6 (marketing
site/+ Pages wiring), §2 og:image, §3 copy refactor. Plus the two[User]eyeball-verification items (7–8) — real-browser check across Chrome/Firefox/Safari + mobile.Full local suite: 365 passed.
🤖 Generated with Claude Code