Use Alchemistic logo as favicon; fix and finish icon-generation pipeline - #42
Merged
Conversation
- Add missing vitest devDependency and npm test script - Fix generateFlatIcon to render the brand glyph on the background color instead of a blank square (apps without a bloom.icon Apple Icon Composer bundle, like this one, use this path) - Fix glyph scaling: render at the source's native 1200 viewBox and let sharp downscale, instead of reusing glyph path coordinates inside a mismatched viewBox (was cropping/offsetting the glyph) - Reconcile generate-web-icons.js output filenames with its test (logo-standard/logo-on-white) and update docs/branding.md to match - Rewrite generate-apple-touch-icon.test.js to cover the flat-fallback path this app actually exercises, instead of mutating a real bloom.icon/icon.json file that doesn't exist in this repo - Add vitest.config.js so `npm test` doesn't pick up vite.config.js's plugins and silently regenerate real icon files as a side effect - Delete orphaned duplicate icon files (application-*, bloom-*) left over from earlier renames, including copies baked with the dev debug color (#CC0000) that had been committed by mistake - Gitignore resources/icons/* since it's fully regenerated per APP_ENV by the Vite plugin on every dev/build run - Wire resources/views/partials/head.blade.php to the Vite-managed icons via Vite::asset() and remove the now-superseded static files in public/ (sidebar logo in app-logo-icon.blade.php is untouched) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01StCfH1mTviG3UqQoL1bUW5
…vicon-t0pwbb # Conflicts: # vite.config.js
Member
Author
PR Review Summary (multi-agent: code, tests, silent-failures, comments)Critical Issues (1)
Important Issues (3)
Suggestions
Strengths
🤖 Generated with multi-agent review (code-reviewer, pr-test-analyzer, silent-failure-hunter, comment-analyzer) |
- glyphLayer() now throws instead of silently returning null when a bloom.icon Apple Icon Composer asset is missing or doesn't match the expected <path d="..."> shape, so a bad icon.json reference fails the build instead of silently shipping a logo-less icon - Fix a comment overstating translucency=0.5's resulting opacity (0.4 + 0.55*0.5 = 0.675, not ~0.70) - Add `npm test` to ci.yml so the vitest suite in bin/icons/ actually runs in CI instead of only being runnable locally Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01StCfH1mTviG3UqQoL1bUW5
Member
Author
|
Thanks — pushed fixes for the parts of this in scope for this PR (f70921e):
Left for later, not urgent:
Not acting on, out of scope for this PR:
Generated by Claude Code |
This was referenced Jul 30, 2026
aquarion
marked this pull request as ready for review
July 30, 2026 23:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Alchemistic logo (yellow rounded square, black diagonal-stripe glyph) is now used for the site's favicon and Apple touch icon, generated from
resources/branding/alchemistic.svgvia a Vite-time icon-generation pipeline. The Istic logo in the sidebar (resources/views/components/app-logo-icon.blade.php) is untouched.The icon-generation pipeline itself (
bin/icons/*) was added in a prior commit on this branch but had several bugs preventing it from actually working; this PR fixes those and wires it up:vitestdevDependency andnpm testscript (test files imported fromvitestbut it was never installed, and there was no way to run them).generateFlatIcon(used by apps without abloom.iconApple Icon Composer bundle, like this one) — it was outputting a blank solid-color square instead of the brand glyph.sharpdownscale, instead of embedding the same path coordinates inside a mismatched smaller viewBox (which cropped and off-centered the glyph).generate-web-icons.js's output filenames with its own test (logo-standard.*/logo-on-white.png) and updateddocs/branding.mdto match, plus corrected a couple of other doc inaccuracies (glyph color, regeneration instructions referencing a script that doesn't exist).generate-apple-touch-icon.test.js, which previously mutated a realresources/branding/bloom.icon/icon.jsonfile that doesn't exist in this repo (so it always failed); it now covers the flat-fallback path this app actually uses.vitest.config.jssonpm testdoesn't pick upvite.config.js's plugins and silently regenerate real icon files as a side effect of running tests.application-*,bloom-*) left over from earlier renames — some had been committed with the dev-only debug background color (#CC0000) instead of the real brand color.resources/icons/*since it's fully regenerated perAPP_ENVby the Vite plugin on everydev/buildrun — keeping it out of git is what prevents stale/wrong-environment-colored files from being committed again.resources/views/partials/head.blade.phpto the Vite-managed icons viaVite::asset(), and removed the now-superseded static files inpublic/.Test plan
npm test— all 17 tests passnpm run build— icon-generation plugin runs successfully (build itself fails later on an unrelated missingvendor/livewire/flux/dist/flux.css, because Composer dependencies aren't installed in this sandbox — pre-existing environment limitation, unrelated to this change)favicon.svg,favicon-96x96.png,apple-touch-icon.png, andlogo-on-white.png— glyph renders centered and correctly proportioned🤖 Generated with Claude Code
https://claude.ai/code/session_01StCfH1mTviG3UqQoL1bUW5
Generated by Claude Code