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

Filament Header Schema Laravel Package

vitisstudio/filament-header-schema

Build Filament page headers with a schema-based API. Compose titles, actions, breadcrumbs, and custom header content consistently across resources and custom pages, cutting boilerplate and keeping headers clean, reusable, and easy to maintain.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for admin UI chrome. Rich record headers — avatar, badge row, customer, price, dates — are today hand-written Blade partials, copied per resource. This package makes them a declarative headerSchema() alongside the Forms, Tables and Infolists the team already composes. Frame it as a standardization decision, not a capability one: Filament can already render these headers, just inconsistently and with more boilerplate each time.
  • Sizing "detail page" roadmap items. When the backlog says "Customer 360 above the fold" or "Order detail with full context," this package determines what that header can carry without a new view. It moves the estimate from "design and build a header partial" to "list the components and reuse" — useful before a delivery date is committed.
  • Design-system consolidation. Where several resources have grown their own header markup, this is the lever for making them one thing. Header changes then review as schema diffs rather than template diffs — a review-quality and onboarding win, not just tidiness.
  • Multi-panel reuse. "Define once, reuse across pages and panels" is the pitch that matters if you run more than one panel (internal ops vs. customer-facing admin) and want the same identity block in both.
  • Known-good use cases: Filament SaaS admin panels where detail pages need identity + status + commercial context; support and ticketing views with badge rows; anywhere the header carries five or six facts rather than one title.
  • Out of scope: public-facing pages, non-Filament admin surfaces, or anything requiring vendor SLAs. With nine stars and zero dependents, you are the reference implementation — treat it as a pattern you are borrowing as much as a package you are adopting.

When to Consider This Package

Adopt when all of these hold:

  • You are on Filament and the team is already fluent in the schema builder. The abstraction only pays for itself if headerSchema() reads as native next to the rest of the panel.
  • You have, or expect, several resources whose headers carry more than a title — roughly the point where the second copy-pasted partial appears. One rich header is not a business case.
  • You accept ownership: pin the version, read the source, be prepared to vendor it if upstream goes quiet. This is code you own with an upstream, not infrastructure.
  • Header layout correctness under a collapsible sidebar or split pane matters. v1.1.0's move to @container queries against a named fi-hs-header container — the header answering its own width rather than the window — is the right fix and exactly what you would never get around to building yourself.
  • Your browser fleet clears the container-query floor (roughly Chrome 105 / Safari 16 / Firefox 110). Fine for internal admin tooling; name it explicitly if kiosks or locked-down browsers are in play.

Look elsewhere, or hand-roll, when:

  • The header is one line of text. Filament's default is correct; this adds a dependency to solve a non-problem.
  • You need a maintained dependency with a support commitment, procurement review, or security-response process. Single maintainer, near-zero adoption, no downstream pressure to track Filament releases.
  • You need layouts beyond what the schema components expose — you end up back in Blade, now with an extra layer in between.
  • You are sensitive to cosmetic churn. v1.1.0 correctly claims "no API changes" while moving pixels for any header between 40rem and 64rem of container width and adding a wrapper element. Budget a visual QA pass per upgrade.
  • Accessibility or i18n requirements exceed what the package documents. Verify before committing, not after.

Adoption cost: low integration effort, moderate diligence. No data layer, no migrations, no auth surface — the failure domain is one rendered region per page. But nine stars and zero dependents means the README is not a substitute for reading the source.

How to Pitch It (Stakeholders)

To executives: Our admin panel has accumulated several hand-built page headers that each do roughly the same job slightly differently. This package lets us declare a header the same way we already declare forms and tables, so we get consistency without commissioning a design project. It is MIT-licensed, small and free — the cost is a few days of integration and a small ongoing maintenance line item, not a contract. Risk is low and bounded: it is presentation-layer, so removing it means reverting one region of a page to Blade, not re-architecting anything. Fund it as hygiene, not as a feature.

To engineering: Schema-driven Filament page headers instead of Blade views — headerSchema() alongside the existing getHeaderActions(), composed the way you already compose forms. v1.1.0 wraps the header in a named inline-size container and moves layout rules to @container queries, so the actions row responds to the header's own width rather than the window; this fixes the case where an open sidebar squeezes the heading until it wraps mid-word. No API changes on upgrade, with two cosmetic notes: one extra wrapper element (check any sibling-position CSS or tests), and headers between 40rem and 64rem of container width now stack where they sat side by side. Known open item: HeaderSection's own ->from() breakpoints are still media queries against the window — the same class of bug, one level down, deliberately deferred. Integration is incremental and reversible per page; start with one rich header, keep the old Blade partial until it has shipped for a sprint, and only standardize house conventions after two or three conversions. Pin the version, verify the Filament and Tailwind constraints in composer.json, and plan on vendoring it if upstream stalls.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource