ironflow/halo-ui

Modern, composable Blade UI component library for Laravel 12+ powered by TailwindCSS, Alpine.js, and Blade Icons

Installs: 14

Dependents: 1

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 0

Open Issues: 0

Language:Blade

pkg:composer/ironflow/halo-ui

v3.0.0 2025-11-02 04:18 UTC

This package is auto-updated.

Last update: 2025-12-04 13:14:36 UTC


README

Latest Version Total Downloads License GitHub issues

Modern, Beautiful UI Components for Laravel
Built with Blade, TailwindCSS 3+, and Alpine.js 3+

InstallationFeaturesComponentsDocumentationExamples

What's New in v2.1

Modern Design System - Gradient buttons, glassmorphism effects, smooth animations Enhanced Icon Integration - Full Blade UI Kit support with intelligent fallbacks Alpine Stores - Global state management for modals, toasts, and themes 49 Components - Complete library with advanced form components Performance Optimized - Lazy loading, caching, and minification support Dark Mode Ready - Built-in theme switching with persistence IronFlow Form Builder - Integrated form builder package (coming soon)

Features

Modern Design Language

  • Gradient-based variants with glow effects
  • Glassmorphism support for modern UIs
  • Smooth animations with customizable timing
  • Responsive mobile-first design
  • Accessible ARIA-compliant components

Developer Experience

  • Copy-and-own philosophy - full component customization
  • Interactive CLI installer with dependency resolution
  • TypeScript-ready with full type definitions
  • Hot reload support for development
  • Comprehensive testing with PHPUnit/Pest
  • Theme System
    • CSS variables for dynamic theming
    • Gradient & Glass morphism effects
    • Dark mode with system detection
    • Component-level theme overrides

Performance

  • Lazy loading for heavy components
  • Minimal JavaScript footprint with Alpine.js
  • Optimized rendering with Blade caching
  • Production builds with minification

Installation

Requirements

  • PHP 8.2+
  • Laravel 11+ or 12+
  • TailwindCSS 3.0+
  • Alpine.js 3.0+
  • Blade UI Kit (optional, recommended)

Quick Install

# 1. Install HaloUI
composer require halo/ui

# 2. Install Alpine.js & dependencies
npm install alpinejs

# 3. Install Blade UI Kit (recommended for icons)
composer require blade-ui-kit/blade-heroicons

# 4. Install components
php artisan halo:install --all

# 5. Configure Tailwind
# Add to tailwind.config.js content array:
'./resources/views/components/halo/**/*.blade.php',

Configuration

# Publish configuration
php artisan vendor:publish --tag=halo-config

# Publish assets
php artisan vendor:publish --tag=halo-assets

# Publish templates (optional)
php artisan vendor:publish --tag=halo-templates

Setup Alpine.js

// resources/js/app.js
import Alpine from "alpinejs";

// Import HaloUI
import "../../../vendor/halo/ui/resources/js/halo.js";

window.Alpine = Alpine;
Alpine.start();

Include in Layout

<!DOCTYPE html>
<html>
<head>
    @vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
<body>
    {{ $slot }}

    {{-- Toast Container --}}
    <x-halo.toast />
</body>
</html>

Components (49 Total)

Form Components (8)

  • Button - Gradient variants with glow effects
  • Input - Enhanced with icons and clearable option
  • Textarea - Auto-resize with character counter
  • Select - Custom styled dropdown
  • Checkbox - Modern toggle design
  • Radio - Styled radio buttons
  • Toggle - iOS-style toggle
  • Rating - Interactive star ratings

Advanced Form Components (6)

  • FileUpload - Drag & drop with preview
  • DatePicker - Calendar date selection
  • TimePicker - Time selection (12h/24h)
  • RichText - WYSIWYG editor
  • ColorPicker - Color selection
  • SliderRange - Range slider input

Layout Components (7)

  • Card - Elevated, flat, bordered, glass variants
  • Modal - Animated dialogs with Alpine store
  • Navbar - Responsive navigation
  • Sidebar - Collapsible side navigation
  • Breadcrumb - Navigation trail
  • Accordion - Collapsible sections
  • BottomSheet - Mobile bottom drawer

Feedback Components (8)

  • Alert - Contextual messages
  • Toast - Gradient toasts with progress bar
  • Badge - Status indicators
  • Spinner - Loading indicators
  • Progress - Progress bars with animations
  • Skeleton - Loading placeholders
  • EmptyState - No data displays
  • Notification - Persistent notifications

Navigation (5) & Data Display (11)

  • Dropdown, Tab, Pagination, Timeline, Stepper
  • Table, Tooltip, Avatar, AvatarGroup, Divider
  • Stats, Chip, Kbd, Code, Popover, Icon

Advanced Components (9)

  • ContextMenu, CommandPalette, Carousel, Calendar
  • ImageCropper, TreeView, Kanban (Board/Column/Card)

Usage Examples

Modern Button with Icon

<x-halo.button variant="primary" icon="plus" size="lg">
    Add New Item
</x-halo.button>

<x-halo.button variant="glass" icon="heart" icon-position="right">
    Glassmorphism
</x-halo.button>

<x-halo.button variant="gradient-sunset" :loading="true">
    Processing...
</x-halo.button>

Modal with Alpine Store

{{-- Trigger --}}
<x-halo.button @click="HaloUI.modal.open('user-modal')">
    Open Modal
</x-halo.button>

{{-- Modal --}}
<x-halo.modal name="user-modal" size="lg">
    <x-halo.modal.header closeable>
        Create New User
    </x-halo.modal.header>

    <x-halo.modal.body>
        <x-halo.input
            name="name"
            label="Full Name"
            icon="user"
            :clearable="true"
        />
    </x-halo.modal.body>

    <x-halo.modal.footer>
        <x-halo.button @click="HaloUI.modal.close('user-modal')" variant="outline">
            Cancel
        </x-halo.button>
        <x-halo.button variant="primary">
            Create
        </x-halo.button>
    </x-halo.modal.footer>
</x-halo.modal>

Toast Notifications

{{-- In Blade --}}
<x-halo.button @click="HaloUI.toast.success('Success!', 'Item created successfully')">
    Show Toast
</x-halo.button>

{{-- In Controller --}}
return redirect()->back()->with('toast', [
    'type' => 'success',
    'title' => 'Saved!',
    'message' => 'Changes have been saved successfully.'
]);

{{-- In JavaScript --}}
HaloUI.toast.error('Error!', 'Something went wrong');
HaloUI.toast.warning('Warning!', 'Please review your input');
HaloUI.toast.info('Info', 'New features available');

Modern Card Design

<x-halo.card variant="glass" :interactive="true">
    <x-halo.card.header>
        <h3 class="text-xl font-bold">Premium Feature</h3>
    </x-halo.card.header>

    <x-halo.card.body>
        <p class="text-gray-600">
            Glassmorphism card with interactive hover effect
        </p>
    </x-halo.card.body>

    <x-halo.card.footer>
        <x-halo.button variant="gradient-ocean" class="w-full">
            Upgrade Now
        </x-halo.button>
    </x-halo.card.footer>
</x-halo.card>

🎯 JavaScript API

// Modal API
HaloUI.modal.open("modal-name");
HaloUI.modal.close("modal-name");
HaloUI.modal.closeAll();

// Toast API
HaloUI.toast.success("Title", "Message");
HaloUI.toast.error("Title", "Message");
HaloUI.toast.warning("Title", "Message");
HaloUI.toast.info("Title", "Message");

// Theme API
HaloUI.theme.toggle();
HaloUI.theme.set("dark");
const mode = HaloUI.theme.get();

// Utilities
HaloUI.utils.debounce(func, 300);
HaloUI.utils.throttle(func, 100);
HaloUI.utils.copyToClipboard(text);

🎨 Theming & Customization

Design Styles

// config/halo.php
'design' => [
    'style' => 'modern', // modern, minimal, brutalist, glassmorphism
]

Custom Colors

'colors' => [
    'primary' => [
        500 => '#your-color',
        600 => '#your-hover-color',
    ],
]

Component Overrides

After installation, all components are in resources/views/components/halo/ - modify freely!

🧪 Testing

# Run tests
composer test

# Run with coverage
composer test-coverage

# Run specific test
php artisan test tests/Feature/ComponentRenderTest.php

Contributing

Contributions are welcome! See CONTRIBUTING.md

Changelog

See CHANGELOG.md for version history

License

MIT License - see LICENSE.md

Credits

HaloUI - Build with ❤️ by Aure Dulvresse