schaefersoft/laravel-headless-ui
<input type="range">) and ARIA attributes, ensuring accessibility without JavaScript. This reduces reliance on custom scripts and aligns with modern web standards.tabs, range-slider) and can be combined or extended, fitting Laravel’s modular architecture. The Blade prefix (x-hui::) avoids namespace collisions.<script> tags. Tailwind integration is explicitly supported via layer(base).:active, :disabled).range-slider) rely on JS for interactivity. Test edge cases like:
layer(base) ensures utility classes blend seamlessly. Example:
<x-hui::tabs.tab class="px-4 py-2 text-sm font-medium text-gray-500 hover:text-gray-700 data-[active]:text-blue-600 data-[disabled]:opacity-40">
data-* attributes (e.g., [data-active]).hui.js) works out-of-the-box. For TypeScript projects, import hui.ts directly.<script type="module"> for standalone integration.range-slider).@stack, @include, slots). Example:
<x-hui::tabs>
<x-slot name="tablist">
<x-hui::tabs.tablist>
<!-- tabs -->
</x-hui::tabs.tablist>
</x-slot>
<x-slot name="panels">
<x-hui::tabs.panel>...</x-hui::tabs.panel>
</x-slot>
</x-hui::tabs>
hui.css and define base styles for all components before JS integration.hui.js after DOM content is loaded (e.g., via Laravel’s @stack('scripts')).tabs, dropdown), then add interactive ones (e.g., range-slider).range-slider events).tabs component:
# Check if JS is loaded
grep -r "hui.js" resources/views
# Inspect rendered HTML for missing data attributes
php artisan view:clear && php artisan serve
if (!('querySelector' in document)) {
// Fallback to a simple tab implementation
}
layer(base). For custom CSS, optimize with PurgeCSS.hui.js only on pages using components).dialog with nested content) may require additional JS logic. Example:
// Custom event handling for dialog focus traps
document.addEventListener('hui-dialog-open', (e) => {
// Focus management logic
});
data-hui-range-slider-value for synced displays").| Failure Scenario | Impact | Mitigation Strategy |
|---|---|---|
| CSS conflicts | Visual inconsistencies | Use scoped CSS (e.g., Tailwind’s group or CSS Modules). |
| JavaScript errors | Component non-functionality | Wrap JS in try-catch and log errors. |
| Missing accessibility features | Non-compliance with WCAG | Audit with axe-devtools; add custom ARIA as needed. |
| Package abandonment | Unmaintained code |
How can I help you explore Laravel packages today?