Skip to content

Sharpen small marks, fix layered logos, and release 0.4.0 - #4

Merged
KacemMathlouthi merged 8 commits into
mainfrom
feat/post-launch-polish
Aug 11, 2026
Merged

KacemMathlouthi merged 8 commits into
mainfrom
feat/post-launch-polish

Conversation

@KacemMathlouthi

@KacemMathlouthi KacemMathlouthi commented Aug 11, 2026 •

Copy link
Copy Markdown
Owner

Post-launch pass over the registry primitive, the docs and the repo plumbing. Releases benday 0.4.0.

Install through the @benday namespace

The directory PR landed, so the command is now:

bunx shadcn@latest add @benday/benday

Verified against a bare consumer project: the namespace resolves with nothing in components.json, all seven files land on their targets, and the installed files are byte-identical to registry/ui/. README, the usage page and the four package-manager tabs updated. The launch video is deliberately untouched.

One upstream quirk worth knowing: the CLI strips a file's leading comment, so dom.ts and types.ts lose their header on install. The payload still carries them.

Rendering fixes

Two real bugs, measured on the actual pipeline rather than by eye.

Small marks rendered as haze. Every dot under 32px got a shadow blur for optical weight, even at glow: 0. At 16px the blurred footprint was 1.6× the lattice pitch, so neighbouring dots bled into one continuous wash — plus a 0.2px vertical smear from shadowOffsetY.

size pitch dot r blur footprint ÷ pitch
16px 1.53px 0.58px 0.65px 1.61×
20px 1.56px 0.56px 0.48px 1.33×

Only glow blurs now, shadowOffsetY is gone, the consolidation floor went 1.5px → 2px, and small lattices snap to whole device pixels. At 16px: 7×7 dots on an exact 2.00px pitch, no blur, footprint 0.76× pitch.

Layered logos came out one solid layer and one faint one. The bake normalized each source to its own 8th–92nd percentile luminance and stretched it to a full 0..1, so any difference became the maximum difference — with a cliff where 17 levels of spread separated nothing and 19 separated everything.

artwork before after
blue #3b82f6 + red #ef4444, 19 levels apart 5.85× area difference 1.05×
indigo + near-black 5.85× 1.54×
four greys, black → near-white 5.75× 5.75× (unchanged)

Tone is now applied in proportion to the separation the artwork actually has. Near-uniform artwork stays flat; genuinely layered artwork separates exactly as before.

Marks will look different after this change, and pre-baked dotMaps keep their old tone until re-baked — both called out in the changeset.

Tests are no longer stale

registry/tests/ now runs in CI, between Typecheck and Unused code. Kept out of registry/ui/ so that tree stays a clean mirror of what the CLI installs.

Also gave registry its own typecheck. It had none — it was only checked incidentally through apps/web's tsconfig include, and since turbo hashes inputs per package, registry edits never invalidated web:typecheck and it would replay a stale pass. Verified the new one isn't vacuous by planting a type error.

New coverage for bake.ts (641 lines, previously untested) via a stubbed canvas: mask selection, trimming, layered artwork in both directions, EDT depth normalization, threshold, dilate, and empty sources. 24 tests total. Three existing tests failed under the tone fix because they pinned the old over-stretched extremes — rewritten to assert proportion, with new guards for the equal-weight-inks case and the no-blur behaviour.

Smaller things

  • bun run dev no longer starts Remotion Studio. It filters to web; the video stays behind bun run video:studio.
  • Third agent preview replaced with the long-running shape: the mark, a shimmering label and a live elapsed timer in tabular figures, looping like its siblings. Both labels share one grid cell so the timer can't shift.
  • Three more dot colours (Fuchsia, Sky, and the existing set reordered around the wheel), from a single DOT_COLORS list — the home page and playground each had their own copy before.

Checks

check, typecheck, test, knip, registry drift and build all pass locally.

Worth a look before merge: the numbers say the lattice resolves now, but whether the mark still reads at 16px with 7×7 dots instead of 10×10 is a judgement call. The playground at small sizes and the agent preview at 28px are the places to check.

🤖 Generated with Claude Code


Summary by cubic

Sharpens small marks and fixes layered logo tone in benday, with pixel-snapped lattices and a 2px auto-grid floor, and releases 0.4.0. Adds CI-backed tests, a long-running agent preview, and @benday/benday install docs.

  • Bug Fixes

    • Small marks resolve cleanly: only glow blurs, no vertical shadow offset, auto-consolidation won’t go below 2px cells, and small lattices (and origins) snap to device pixels to avoid haze.
    • Layered logos render in proportion to the source’s luminance separation; near-uniform art stays flat and true layers still separate. Pre-baked dotMaps keep old tone until re-baked.
  • New Features

    • Install via @benday/benday; docs and usage updated. bun run dev now filters to web; use bun run video:studio for Remotion.
    • registry/tests run in CI; added bake and renderer coverage and a dedicated registry typecheck.
    • Playground/website share DOT_COLORS (adds Fuchsia and Sky; reordered swatches). Agent preview adds a long-running “Searching” mock with a shimmer label and elapsed timer.

Written for commit 198069b. Summary will update on new commits.

Review in cubic

@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
benday-playground Ready Ready Preview Aug 11, 2026 11:25pm

@KacemMathlouthi
KacemMathlouthi merged commit da9875f into main Aug 11, 2026
4 checks passed

This branch was successfully deployed

1 active deployment
Preview — 198069b9 Deployed Aug 11, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant