Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Blade Radix Icons Laravel Package

codeat3/blade-radix-icons

A Laravel Blade package for rendering Radix Icons as simple, customizable components. Use convenient x-radix-icon tags in your views, with support for sizing, colors, and easy Composer installation.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

codeat3/blade-radix-icons is a packaging-only dependency. It registers the Radix Icons SVG set as an icon set for the blade-ui-kit/blade-icons ecosystem via a service provider and exposes each glyph as <x-radix-icon-name />. From a TPM lens this is pure presentation-layer capability: no runtime services, no data, no network calls, no migrations, no config surface. The architectural question collapses to a binary — it either fits our Blade view layer or it does not — and the blast radius is bounded by rendered HTML.

Release 1.9.0 is a single-change release: a Laravel 13 compatibility constraint update (PR #22). No new icons, no API change, no deprecations, no config keys. That is the lowest-risk release class, and it marginally improves the risk profile by keeping the package on a supported framework path. Two stars and zero dependents mean we would effectively be an early adopter; acceptable because the underlying icon set (Radix) is reputable and MIT-licensed, but we should not assume community-vetted behavior.

Technical risk, ranked by materiality:

  • Transitive constraint risk (highest). The package's real dependency is blade-ui-kit/blade-icons. Laravel 13 support only holds if that upstream also resolves on Laravel 13. A green release here is necessary but not sufficient for a clean composer update in our app.
  • Single-maintainer / generated-content risk. Bus factor of one. Icon assets are largely generated from upstream Radix; release cadence is healthy but ownership is thin.
  • Silent rendering failures. Unknown or renamed icon components typically render empty markup rather than failing loudly — defects land in visual QA, not CI.
  • Declared vs. tested compatibility. 1.9.0 declares Laravel 13; the release note alone does not confirm the matrix is exercised.
  • Asset staleness. Icons track upstream Radix independently of our framework upgrades; nothing forces a refresh, so drift is cosmetic but unbounded.

Key questions to resolve before adoption:

  1. Does composer require codeat3/blade-radix-icons:^1.9 actually resolve on our target Laravel 13 skeleton — including blade-ui-kit/blade-icons and the PHP floor Laravel 13 implies?
  2. Is Laravel 13 support tested or merely declared, and does Laravel 13 change view/component resolution in a way this release does not address?
  3. Does the bundled icon count and licensing satisfy our design-system needs, or do we need a curated subset?
  4. Do we need blade-icons sprite/caching mode for icon-dense pages, and is that configurable without forking?
  5. Is there an accepted fallback if the maintainer stops shipping? (The SVGs are MIT and vendorable, so exit is mechanical — but the decision needs to be recorded.)

Net: a low-risk, additive, reversible, commodity dependency. The 1.9.0 release does not change the risk profile; it marginally improves it.

Integration Approach

Stack fit. Native for Blade-first, server-rendered Laravel — admin panels, internal tooling, back-office dashboards, static marketing pages. It coexists with other blade-* icon packs because each registers a distinct prefix. Poor fit for Inertia/React/Vue frontends with an established JS icon pipeline, where a Blade-only wrapper creates a second, inconsistent icon path. Also a poor fit where procurement requires vendor SLAs or security attestation.

Migration path. Greenfield: add to composer.json, use immediately — service provider auto-discovered, nothing to publish, no build step, no npm. Brownfield: replace inline SVG partials or icon-font classes with <x-radix-* /> incrementally; components are self-contained, so no controller or model changes are involved. Exit is mechanical: publish the SVGs into resources/ and preserve the component names.

Compatibility. 1.9.0 widens framework support rather than narrowing it, so it is backward compatible with our current Laravel by construction. Two gates must be verified in the lockfile: (a) our pinned blade-icons version satisfies the package requirement, and (b) our PHP version meets the floor implied by Laravel 13. Component names are stable across 1.x and derive from upstream Radix naming, so template-level breakage is unlikely.

Sequencing.

  1. Verify resolvability on a throwaway branch: composer require codeat3/blade-radix-icons:^1.9 --dry-run against the Laravel 13 skeleton; capture the full dependency delta.
  2. Land the current-framework upgrade first (near no-op), then bump the package — do not couple the two in a single PR.
  3. Add rendering smoke tests (assert a handful of representative icon components emit non-empty <svg> markup) so silent failures surface in CI.
  4. Decide on sprite/caching mode only after the framework upgrade is stable; treat it as a separate, measured performance change.
  5. Publish a one-page usage note to frontend/design naming the component namespace and the upstream catalogue — this is the only real adoption friction.

Operational Impact

Maintenance. Near-zero steady state: no jobs, no storage, no credentials, no external runtime calls. Ongoing work is periodic composer update cycles to pull icon refreshes and framework support. Posture: caret constraint plus committed lockfile, automated via Dependabot/Renovate, CI as the gate.

Support. Burden concentrates in "the icon renders blank" tickets. Mitigate with a documented component-name convention and a link to the upstream Radix catalogue in internal docs. Because the package is single-maintainer, avoid building deep customization on top of it — treat it as a replaceable asset source so support never becomes a blocker.

Scaling. Horizontally irrelevant — it is compile-time markup, not a service. The only scaling dimension is HTML weight: many inline SVGs inflate payloads. For icon-dense pages, evaluate blade-icons sprite/caching mode or trim to a curated subset; measure before optimizing, since most apps will not notice.

Failure modes.

  • Composer resolution failure during framework upgrades (transitive blade-icons lag) — surfaces at build time, loud, recoverable by pinning one version back.
  • Missing or renamed icon component — silent empty markup, caught only by visual QA; the smoke tests above exist for exactly this.
  • Stale icon set after an upstream Radix release — cosmetic drift, no functional impact.
  • Maintainer abandonment — degraded, not broken; assets are MIT and vendorable, so this is scheduled work, not an outage.
  • Deploy-time view cache ordering — view:cache must run after composer install so components are discoverable; misordering yields blank icons in production only. Add to the deploy checklist.

Ramp-up. Effectively zero for anyone who has written Blade: one line of documentation ("icons are <x-radix-* />, catalogue at X"). TPM effort to adopt is hours, not sprints. The one judgment call worth escalating is adopt-vs-inline: for a design system consuming fewer than roughly 20 icons, vendoring those SVGs directly may be the lower lifetime-cost choice than carrying a dependency. Recommendation: adopt for internal and admin surfaces where Blade is the render path; revisit if these icons become load-bearing in customer-facing UI or if a second, non-Blade frontend appears.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin