Skip to content

Version Packages (next) - #1002

Merged
davedbase merged 2 commits into
nextfrom
changeset-release/next
Aug 2, 2026
Merged

Version Packages (next)#1002
davedbase merged 2 commits into
nextfrom
changeset-release/next

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to next, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

next is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on next.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@solid-primitives/favicon@1.0.0-next.0

Major Changes

  • 63b3375: New package: @solid-primitives/favicon

    Primitives for controlling the document favicon, built for Solid 2.0 (beta.24).

    makeFavicon / createFavicon

    Non-reactive base and reactive primitive for swapping the favicon <link> href. Reuses an existing <link rel="icon"> if present and restores its previous href on dispose()/cleanup; creates and removes one otherwise. Nested/sequential calls compose correctly under normal mount/unmount ordering.

    makeFaviconAnimation / createFaviconAnimation

    Cycles the favicon through a sequence of hrefs on an interval — for build-status spinners and similar loading indicators. The reactive version accepts a static or reactive frame list, exposes frame/playing signals and play/pause, and automatically pauses while the tab is hidden (document.visibilitychange), resuming if it was playing before.

    makeFaviconBadge / createFaviconBadge

    Composites a notification count, short string, or plain dot onto a base icon via an offscreen canvas. 0/false/undefined/"" render no badge; true renders a dot; numbers clamp to "{max}+". Falls back to the plain base href if the base image fails to load.

    makeFaviconScheme / createFaviconScheme

    Swaps between a light/dark icon to match prefers-color-scheme, staying in sync via a matchMedia listener as the OS/browser preference changes. Treats SSR as "light" (no reliable server-side signal for OS theme).

    makeFaviconProgress / createFaviconProgress

    Composites a progress ring (0–100, clamped) onto a base icon via an offscreen canvas — for upload/download-style indicators. undefined shows the base icon with no ring; 0 still draws the (empty) ring track. Falls back to the plain base href if the base image fails to load.

    FaviconLink

    A component that renders the favicon <link> directly, so its initial href is part of the server-rendered HTML instead of only applying once client JS hydrates. Place it once in your document's real <head> region (e.g. your SSR framework's root document component); any make*/create* call elsewhere composes with it automatically, since bindFaviconLink's existing "reuse an existing link" lookup finds and takes over the exact element it rendered.

    Design notes

    Rather than one createAdvancedFavicon combining all of this behind an options object, each capability is its own small make*/create* pair sharing internal DOM (link.ts) and canvas (canvas.ts) helpers — consistent with this repo's existing layered-primitive packages (e.g. video). See DESIGN.md for the full reasoning.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 2, 2026

Copy link
Copy Markdown

Deploying solid-primitives with  Cloudflare Pages  Cloudflare Pages

Latest commit: b168053
Status:⚡️  Build in progress...

View logs

@davedbase
davedbase merged commit fbda35f into next Aug 2, 2026
1 of 2 checks passed
@davedbase
davedbase deleted the changeset-release/next branch August 2, 2026 11:52
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