hoceineel/filament-keyboard-shortcuts
Add customizable keyboard shortcuts to Filament admin panels for faster navigation and actions. Open resources, trigger commands, and streamline workflows without reaching for the mouse. Simple setup and seamless integration.
g c u), a hint mode that reveals available letters, a shortcuts sheet with searchable combos, and a live "keys typed so far" pill. That's a discoverable, learnable system rather than a hidden set of incantations — which is the difference between a feature a few engineers use and one that shifts how a whole ops team works. This is the data point that moves "keyboard navigation" from nice-to-have to a scoped initiative.->navigationHints(false)) rather than code you own and maintain through every Filament upgrade.aria-description (with title as a fallback when no tooltip renders) plus a direction-agnostic focus ring is incremental but concrete WCAG-aligned work. Useful when an accessibility audit is on the roadmap and you need cheap wins in the admin surface.aria-modal="true" fix is the single most decision-relevant line in this release: a closed sheet was advertising itself as a modal and silently disabling every Filament key binding on the page, including global search and ->keyBindings(). Anyone who evaluated v0.1.x and saw inexplicably dead keybindings should re-test on v0.2.0, and anyone shipping should pin a minimum version at or above it.Consider it when:
Look elsewhere or defer when:
aria-description coverage is sufficient.Adoption gate: run it against your largest panel with real users for a sprint, watch whether hint mode gets used unprompted, and confirm no regressions to existing Filament keybindings before rolling out beyond a pilot group.
For executives (one paragraph): We're evaluating a small, focused add-on for our Filament admin panels that makes them dramatically faster for the people who use them all day. It adds keyboard shortcuts to jump anywhere in the panel, an in-product cheat sheet that teaches them, and a hint mode that shows what's available — so speed comes with discoverability instead of a training doc. It ships with roughly two dozen languages, works in dark mode and right-to-left layouts, and respects reduced-motion settings. The cost is a dependency and a configuration flag, not a build project; the return is measurable time-on-task for ops and support staff, faster onboarding for new hires, and a credible accessibility story for procurement. This release also fixes a bug where the feature could silently disable existing keyboard shortcuts in the panel — so if we trialed an earlier version and found keybindings broken, that was the cause and it's resolved.
For engineering leads: Drop-in Laravel package, no service container surgery. Integration is a plugin registration plus optional per-resource chords via protected static ?string $keyboardShortcut or a public static getKeyboardShortcut(), with one-character or two-character overrides. Hint mode is a single toggle (->navigationHints(false)). Notable engineering signals in this release: JavaScript unit tests and a Playwright end-to-end suite against a Testbench workbench, both running in CI, plus a test that keeps every locale in sync with English — this is a maintainer investing in regression safety, which is the main thing we'd otherwise worry about at 0.x. Two things to schedule: (1) pin a minimum of v0.2.0 and treat the aria-modal fix as a required upgrade if v0.1.x is anywhere near production, since the failure mode was silent global-search and action-keybinding breakage; (2) budget a compatibility check per Filament minor, as the package touches sidebar rendering, tooltips, and modal state.
For the design and accessibility partner: The interaction model is legible and well-considered — chord pills surface partial input, Enter disambiguates prefixes, Esc dismisses immediately, letter badges use the panel font so O and 0 stay distinct, and the focus ring is direction-agnostic rather than an inline-start bar. Motion is gated behind reduced-motion, and it holds up in RTL and dark mode. Worth a short review pass on the sheet's empty-state copy and the column-balancing behavior with our real navigation groups before we commit to a rollout.
How can I help you explore Laravel packages today?