Custom Flux UI components for Laravel Livewire applications.

composer require wishborn/fancy-flux
To avoid naming conflicts with official Flux components or other custom components, you can configure a custom prefix for Fancy Flux components.
Publish the config file:
php artisan vendor:publish --tag=fancy-flux-config
Configure in config/fancy-flux.php:
return [
'prefix' => 'fancy',
'use_flux_namespace' => true,
'enable_demo_routes' => false,
];
Configuration Priority:
Configuration is loaded in this order (later values override earlier ones):
config/fancy-flux.php) - Base defaults.env) - Highest priority, overrides PHP configEnvironment Variables (Optional Override):
You can override PHP config with environment variables for environment-specific settings:
FANCY_FLUX_PREFIX=fancy
FANCY_FLUX_USE_FLUX_NAMESPACE=true
FANCY_FLUX_ENABLE_DEMO_ROUTES=false
Usage Examples:
<flux:carousel><fancy:carousel> (and optionally <flux:carousel> if use_flux_namespace is true)Configuration Options:
prefix - Custom prefix for components (e.g., "fancy", "custom", "myapp"). Set to null for no prefix.use_flux_namespace - When true, components are also available in the flux namespace for backward compatibility. Set to false to use ONLY the prefixed namespace.enable_demo_routes - When true, demo routes are loaded from the package at /fancy-flux-demos/*. Set to false to publish and customize routes yourself.Why use a prefix?
carousel component, your prefixed version won't conflictA reusable button component with standalone colors, behavioral states, shape variants, avatars, badges, icons, emojis, and flexible placement.
Quick Example:
<flux:action icon="pencil">Edit</flux:action>
<flux:action color="blue" emoji="fire">Hot!</flux:action>
<flux:action color="red" badge="3">Alerts</flux:action>
<flux:action variant="circle" icon="play" />
<flux:action avatar="/img/user.jpg" badge="Admin">John</flux:action>
A flexible carousel/slideshow component with multiple variants:
Quick Example:
<flux:carousel :data="$slides" autoplay />
A native color input component with enhanced UI, swatch preview, and preset support.
Quick Example:
<flux:color-picker label="Primary Color" wire:model="primaryColor" />
Display emojis using slugs, classic emoticons, or raw characters - like flux:icon but for emoji.
Quick Example:
<flux:emoji name="fire" /> {{-- 🔥 from slug --}}
<flux:emoji name=":)" /> {{-- 😊 from emoticon --}}
<flux:emoji name="rocket" size="lg" />
A composable emoji picker component with category navigation, search, and customizable styling. Saves the emoji character directly (e.g., 🔥), with backward compatibility for slug values.
Quick Example:
<flux:emoji-select wire:model.live="selectedEmoji" />
A lightweight vertical timeline for displaying events. Pure Tailwind CSS + Alpine.js, no external dependencies. Supports stacked and alternating layouts, per-event colors, icons, emojis, and scroll-reveal animation.
Quick Example:
<flux:timeline :events="$events" />
<flux:timeline :events="$events" variant="alternating" />
The FANCY facade provides programmatic access to FancyFlux features:
// Emoji lookup (787+ emojis with slug-based access)
FANCY::emoji('fire'); // Returns: 🔥
FANCY::emoji(':)'); // Returns: 😊 (emoticon support!)
FANCY::emoji()->list(); // Get all emoji slugs
FANCY::emoji()->search('heart'); // Search emojis
FANCY::emoji()->emoticons(); // Get all supported emoticons
// Carousel control
FANCY::carousel('wizard')->next();
FANCY::carousel('wizard')->goTo('step-3');
// Configuration
FANCY::prefix(); // Custom prefix or null
FANCY::components(); // List of components
Ready-to-use examples are available in the demos/ folder. Copy the demo files into your Laravel application to get started quickly:
See the demos README for details.
Fancy Flux includes AI guidelines for Laravel Boost. When you install this package and run php artisan boost:install, Boost will automatically load the guidelines to help AI assistants generate correct code for Fancy Flux components.
You can also add custom AI guidelines for Fancy Flux by creating a .ai/guidelines/fancy-flux.md file in your application. This allows you to customize how AI assistants understand and use Fancy Flux components in your specific project context.
Update via Composer:
composer update wishborn/fancy-flux
Clear caches:
php artisan config:clear
php artisan view:clear
Review changelog: Check CHANGELOG.md for version-specific changes
Test your application: Verify all components work as expected
New Feature: Component Prefix Configuration
Version 1.0.8 introduces optional component prefix configuration to avoid naming conflicts. This is backward compatible - existing code will continue to work without changes.
Optional: Configure a Prefix
If you want to use a custom prefix (recommended for new projects):
Publish the config file:
php artisan vendor:publish --tag=fancy-flux-config
Set prefix in config/fancy-flux.php:
return [
'prefix' => 'fancy',
'use_flux_namespace' => true,
'enable_demo_routes' => false,
];
Clear config cache:
php artisan config:clear
No Action Required
If you don't configure a prefix, components continue to work exactly as before:
<flux:carousel> - Still works<flux:color-picker> - Still works<flux:emoji-select> - Still worksMigration Path (Optional)
If you want to migrate to a prefixed namespace:
FANCY_FLUX_PREFIX and keep FANCY_FLUX_USE_FLUX_NAMESPACE=trueFANCY_FLUX_USE_FLUX_NAMESPACE=falseSee Prefix Configuration for detailed migration steps.
MIT
How can I help you explore Laravel packages today?