InertiaThemes
$ composer require inertiathemes/inertiathemes

Theming System for
Laravel + Inertia

Build switchable themes with composable blocks. Works with Vue, React & Svelte.

InertiaThemes Core Package 🎨 Themes 🧱 Blocks Vue Svelte React

How It Works

Four simple concepts that work together seamlessly

🎨

Themes

PHP classes defining colors, settings, and visual identity

🧱

Blocks

Content schemas that define what data each section needs

⚛️

Components

Vue, React, or Svelte files organized by theme

<Blocks />

Auto-renders everything based on active theme

Simple & Expressive

Define themes and blocks with clean, readable code

1 DefaultTheme.php Themes
class DefaultTheme extends BaseTheme
{
    public function colors(): array
    {
        return [
            'primary' => '#3B82F6',
            'secondary' => '#1F2937',
        ];
    }
}
2 HeroBlock.php Blocks
class HeroBlock extends Block
{
    public function schema(): array
    {
        return [
            'title' => 'string',
            'subtitle' => 'string',
            'cta' => 'array',
        ];
    }
}
3 HeroBlock.vue Components
<script setup>
defineProps(['title', 'subtitle', 'cta'])
</script>

<template>
  <section class="hero">
    <h1>{{ title }}</h1>
    <p>{{ subtitle }}</p>
  </section>
</template>
4 Page.vue <Blocks />
<template>
  <!-- Render all blocks -->
  <Blocks />

  <!-- Or by area -->
  <Blocks area="header" />
  <Blocks area="content" />
  <Blocks area="footer" />
</template>

Use Cases

From simple landing pages to complex multi-tenant applications

Multi-Tenant SaaS

Give each tenant their own branded experience with unique themes, colors, and layouts while sharing core functionality.

Page Builders

Create flexible, drag-and-drop page builders where content editors can arrange blocks without touching code.

White-Label Products

Sell the same product to multiple clients with completely customized branding and user interfaces.

Content Management

Build modular content systems where marketing teams manage pages through a visual block interface.

Dark/Light Mode

Implement system-wide theme switching with consistent styling across all components and pages.

E-commerce Storefronts

Create multiple storefronts with different themes for seasonal campaigns, brands, or product lines.

Ready to Build?

Start creating themeable applications in minutes

1 composer require inertiathemes/inertiathemes
2 Choose your framework:
php artisan vendor:publish --tag=inertiathemes-vue
3 php artisan make:theme DefaultTheme
4 <Blocks />
Copied!