zairakai/laravel-blade-components

Collection of reusable Blade components for forms, layouts, navigation and UI elements with Laravel integration

Maintainers

Package info

gitlab.com/zairakai/php-packages/laravel-blade-components

Issues

Documentation

pkg:composer/zairakai/laravel-blade-components

Fund package maintenance!

Patreon

Other

Statistics

Installs: 9

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.0 2026-03-11 19:33 UTC

This package is auto-updated.

Last update: 2026-03-11 18:45:28 UTC


README

Main Develop Coverage

GitLab Release Packagist Downloads License

PHP Laravel Static Analysis Code Style

62 reusable Blade components for forms, layouts, content, and media — auto-registered with the zk- prefix, with full i18n support for 21 languages.

Features

  • 62 components auto-registered as <x-zk-*> — no manual setup required
  • Form components (30) — input, select, textarea, checkbox, radio, field, label, button, file, password, switch, and more
  • Layout components (16) — container, grid, row, column, section, nav, breadcrumb, pagination, tabs, wrapper, and more
  • Content components (6) — heading, paragraph, link, list, blockquote, msr
  • Media components (10) — image, video, audio, figure, iframe, canvas, source, track, and more
  • Internal cross-component aliasesform.field, form.input, layout.container, etc.
  • Publishable assets — views, translations, and config per individual tags
  • i18n — 21 supported locales: en, fr, es, de, it, pt, nl, ar, zh, ja, ko, ru, uk, pl, cs, ro, tr, sv, da, fi, no
  • Config — password minimum length, select icon configurable without publishing views

Install

composer require zairakai/laravel-blade-components

No service provider registration needed — the package auto-discovers via Laravel's package discovery.

Usage

Form

{{-- Labeled field with input --}}
<x-zk-field label="Email address" :required="true">
    <x-zk-input type="email" name="email" :value="old('email')" />
</x-zk-field>

{{-- Select --}}
<x-zk-select name="role" :options="$roles" />

{{-- Password --}}
<x-zk-password name="password" />

{{-- Submit button --}}
<x-zk-submit>Save changes</x-zk-submit>

Layout

<x-zk-container>
    <x-zk-grid>
        <x-zk-grid-item :span="4">
            <x-zk-aside>Sidebar</x-zk-aside>
        </x-zk-grid-item>
        <x-zk-grid-item :span="8">
            <x-zk-main>Main content</x-zk-main>
        </x-zk-grid-item>
    </x-zk-grid>
</x-zk-container>

{{-- Navigation --}}
<x-zk-nav>
    <x-zk-link :href="route('home')">Home</x-zk-link>
    <x-zk-link :href="route('about')">About</x-zk-link>
</x-zk-nav>

{{-- Breadcrumb --}}
<x-zk-breadcrumb :items="$breadcrumbs" />

{{-- Pagination --}}
<x-zk-pagination :paginator="$users" />

Content

<x-zk-heading level="2">Section title</x-zk-heading>
<x-zk-paragraph>Introductory text.</x-zk-paragraph>
<x-zk-blockquote>A quoted passage.</x-zk-blockquote>

<x-zk-list :items="$features" />

Media

<x-zk-figure>
    <x-zk-image src="/img/photo.jpg" alt="Photo" />
    <x-zk-figcaption>Caption text</x-zk-figcaption>
</x-zk-figure>

<x-zk-video src="/media/clip.mp4" controls />

Config

Publish and customize the package config:

php artisan vendor:publish --tag=zairakai-config

config/blade-components.php:

return [
    'password' => [
        'min_characters' => 8,  // minimum password length validation hint
    ],
    'select' => [
        'icon_after' => 'keyboard_arrow_down',  // dropdown icon
    ],
];

Publishing

Customize views, translations, or config individually:

# Blade views (customize any component template)
php artisan vendor:publish --tag=zairakai-components

# Translations (21 locales)
php artisan vendor:publish --tag=zairakai-lang

# Config
php artisan vendor:publish --tag=zairakai-config

# Everything at once
php artisan vendor:publish --tag=zairakai-all

Published views land in resources/views/vendor/zairakai/ and can be freely modified.

Development

make quality        # pint + phpstan + rector + insights + markdownlint + shellcheck
make quality-fast   # pint + phpstan + markdownlint
make test           # phpunit with coverage

Getting Help

License Security Policy Issues

Made with ❤️ by Zairakai