electrik/slate

There is no license information available for the latest version (2.0.0) of this package.

Beautiful, accessible Laravel Blade components built with Tailwind CSS v4 for your next Laravel or Livewire project

Fund package maintenance!
electrikhq

Installs: 2 251

Dependents: 1

Suggesters: 0

Security: 0

Stars: 11

Watchers: 2

Forks: 0

Open Issues: 0

Language:Blade

pkg:composer/electrik/slate

2.0.0 2026-01-09 15:08 UTC

README

Latest Version Total Downloads

Slate UI Kit is a set of beautiful anonymous blade components built using tailwindcss for your next Laravel project.

Slate UI Auth Login Screen Screenshot

Demo | Documentation

โœจ Features

  • ๐ŸŽจ 57 Components - Complete component library
  • ๐ŸŽฏ Zero PHP Color Logic - All colors controlled via CSS variables
  • ๐ŸŒ™ Dark Mode - Built-in dark mode support with automatic variable switching
  • โ™ฟ Accessible - WCAG 2.1 AA compliant with proper ARIA attributes
  • ๐Ÿš€ Tailwind CSS v4 - Using latest Tailwind with CSS variables
  • ๐Ÿ“ฆ Anonymous Components - Pure Blade templates, no PHP classes
  • ๐ŸŽจ Self-Contained - Everything in the package, minimal client configuration
  • โšก Alpine.js - Interactive components using Alpine.js (standard in Laravel)
  • ๐ŸŽจ Semantic Colors - success, warning, info, error, danger color system

๐Ÿ“‹ Requirements

  • PHP 8.1+
  • Laravel 10.0+ or 11.0+ or 12.0+
  • Tailwind CSS v4
  • Alpine.js (for interactive components - usually included in Laravel apps)

๐Ÿš€ Installation

Step 1: Install via Composer

composer require electrik/slate

Step 2: Run Installation Command

php artisan slate:install

This command will:

  • Copy slate.css to resources/css/slate.css
  • Add @import './slate.css'; to your app.css (after @import 'tailwindcss';)
  • Add @source directive to scan Slate components

Note: The installation command automatically configures your app.css file. No manual Tailwind config changes needed when using Tailwind CSS v4!

Step 3: Build Assets

npm run build

That's it! Slate uses CSS variables and Tailwind v4's @theme system, so no tailwind.config.js changes are required.

๐Ÿ“– Usage

Basic Example

<x-slate::button>Click me</x-slate::button>

With Variants

<x-slate::button variant="success">Save</x-slate::button>
<x-slate::button variant="warning">Warning</x-slate::button>
<x-slate::button variant="error">Error</x-slate::button>
<x-slate::button variant="danger">Delete</x-slate::button>
<x-slate::button variant="outline">Cancel</x-slate::button>
<x-slate::button variant="ghost">Ghost Button</x-slate::button>

Form Example

<x-slate::label for="email">Email</x-slate::label>
<x-slate::input type="email" id="email" name="email" placeholder="Enter your email" />

๐ŸŽจ Components

Slate includes 57 components:

Core Components

  • Button, Input, Card, Label, Badge

Form Components

  • Textarea, Select, Checkbox, Radio Group, Switch, Slider, Input Group, Input OTP, Field

Feedback & Overlay

  • Alert, Dialog, Alert Dialog, Drawer, Sheet, Popover, Tooltip, Hover Card, Sonner (Toast)

Navigation

  • Dropdown Menu, Context Menu, Navigation Menu, Menubar, Breadcrumb, Tabs, Sidebar, Pagination

Data Display

  • Table, Avatar, Separator, Skeleton, Empty, Aspect Ratio

Advanced

  • Accordion, Collapsible, Command, Combobox, Calendar, Progress, Scroll Area, Resizable, Carousel, Chart

Utility

  • Toggle, Toggle Group, Button Group, Item, Kbd, Spinner

๐ŸŽจ Theming

Color System

Slate uses semantic color naming with foreground/background pairs:

Base Colors:

  • background / foreground - Page background and text
  • border, input, ring - UI element colors

Semantic Colors:

  • primary / primary-foreground - Main brand color
  • secondary / secondary-foreground - Secondary actions
  • success / success-foreground - Success states
  • warning / warning-foreground - Warning states
  • info / info-foreground - Informational states
  • error / error-foreground - Error states
  • danger / danger-foreground - Destructive actions
  • muted / muted-foreground - Subtle backgrounds/text
  • accent / accent-foreground - Hover states, highlights
  • card / card-foreground - Card backgrounds
  • popover / popover-foreground - Popover backgrounds

Customize Colors

Override CSS variables in resources/css/slate.css:

:root {
  --color-primary: 142 76% 36%; /* Custom green */
  --color-primary-foreground: 355 100% 97%;
  --color-success: 142 71% 45%; /* Custom success color */
  --color-success-foreground: 0 0% 98%;
}

.dark {
  --color-primary: 142 70% 45%; /* Dark mode variant */
  --color-primary-foreground: 0 0% 9%;
}

Dark Mode

Dark mode is automatically handled via the .dark class:

<html class="dark">
  <!-- Dark mode enabled -->
</html>

Toggle dark mode with Alpine.js:

<div x-data="{ dark: false }">
  <button @click="dark = !dark; document.documentElement.classList.toggle('dark', dark)">
    Toggle Dark Mode
  </button>
</div>

๐Ÿงช Testing

Slate components are tested using:

  • Unit Tests - Blade component rendering with different props/variants
  • Integration Tests - Components in real Laravel views and forms
  • Visual Regression Tests
  • Accessibility Tests - WCAG 2.1 AA compliance using axe-core/Pa11y

๐Ÿ“š Documentation

Full documentation is available at: https://slate.electrik.dev

Note: Documentation is in a separate repository (slate-docs) and uses Jigsaw for static site generation.

๐Ÿ”ง Customization

Self-Contained Package

Slate is designed to be self-contained. All styles and components live in the package, and the slate:install command handles configuration automatically.

Customize CSS Variables

Edit resources/css/slate.css (copied during installation) to customize colors, spacing, and other design tokens.

Publish Views (Optional)

To customize component markup:

php artisan vendor:publish --tag=slate-views

Views will be published to resources/views/vendor/slate/components/

Note: Published views won't receive automatic updates. Use this only if you need to modify component structure.

๐Ÿค Contributing

Contributions are welcome! Please see our Contributing Guide for details.

๐Ÿ“„ License

This package is open-sourced software licensed under the MIT license.

๐Ÿ™ Credits

Made with โค๏ธ by Electrik