PHPackages                             itech-world/sulu-tailwind-theme-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. itech-world/sulu-tailwind-theme-bundle

ActiveSulu-bundle[Templating &amp; Views](/categories/templating)

itech-world/sulu-tailwind-theme-bundle
======================================

Complete theming system for Sulu CMS 3.x based on design tokens compiled to CSS custom properties

v2.4.0(1mo ago)7151[1 issues](https://github.com/steeven-th/SuluTailwindThemeBundle/issues)[1 PRs](https://github.com/steeven-th/SuluTailwindThemeBundle/pulls)MITTwigPHP ^8.2

Since Mar 5Pushed 1w ago1 watchersCompare

[ Source](https://github.com/steeven-th/SuluTailwindThemeBundle)[ Packagist](https://packagist.org/packages/itech-world/sulu-tailwind-theme-bundle)[ RSS](/packages/itech-world-sulu-tailwind-theme-bundle/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (10)Dependencies (20)Versions (23)Used By (0)

 [![Itech World logo](./doc/images/logo.png)](./doc/images/logo.png)

Tailwind Theme Bundle
=====================

[](#tailwind-theme-bundle)

### Complete theming system for [Sulu CMS 3.x](https://sulu.io)

[](#complete-theming-system-for-sulu-cms-3x)

 [ ![GitHub license](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e) ](LICENSE) [ ![Sulu compatibility](https://camo.githubusercontent.com/c2518bccb7955fc7ec0e7795a08cc2bf5f44ff21fb62a122d060806c7d3983f5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73756c752d2533453d332e302d6379616e) ](https://sulu.io/)

 A design-token-based theming system that compiles JSON configuration into CSS custom properties.
 Manage colors, typography, buttons, borders, block variants, and menu styles from the Sulu admin interface.

 [**See screenshots of the admin interface**](doc/screenshots.md)

---

Requirements
------------

[](#requirements)

- PHP &gt;= 8.2
- Sulu CMS &gt;= 3.0
- Doctrine ORM &gt;= 3.0
- Tailwind CSS &gt;= 4.0 (configured with PostCSS)
- Webpack Encore

> **Important:** Tailwind CSS must be installed and configured with PostCSS in your Webpack Encore project **before** installing this bundle. Follow the official [Tailwind CSS Symfony guide](https://tailwindcss.com/docs/installation/framework-guides/symfony) if you haven't set it up yet. This includes installing `@tailwindcss/postcss`, creating a `postcss.config.js`, and enabling `.enablePostCssLoader()` in your `webpack.config.js`.

Features
--------

[](#features)

- **Design tokens**: Store all theme settings as structured JSON, compiled to CSS custom properties
- **Admin interface**: Full CRUD with 7 tabs (details, colors, typography, buttons, borders, block variants, menu)
- **Multi-webspace support**: Assign different themes to different webspaces (sites) in a multi-site Sulu installation
- **Multiple themes**: Create and switch between 7 preset themes (corporate, creative, minimal, nature, halloween, christmas, megamenu)
- **CSS compilation**: Automatic generation of `:root` variables, `.block-variant-*` classes, `.btn-*` styles
- **Shared CSS**: Multiple webspaces using the same theme share a single compiled CSS file
- **Google Fonts**: Automatic resolution and inclusion of Google Fonts from typography settings
- **Block variants**: Per-block color schemes (light, accent, dark) applied via CSS custom properties
- **Menu configuration**: Configurable menu type, colors, animation, and display options
- **Twig integration**: Helper functions for including theme CSS, fonts, block styles, and menu config
- **Article blocks**: 3 article-specific blocks for pages — article list (grid/list/cards), article carousel, article featured (hero/side-by-side/spotlight)
- **Customizable article cards**: configure surface, border (width + style), padding, and composable hover effects (card transform, image effect, shadow, border color, duration, easing) for the listing card, grid and list styles via the admin Articles tab
- **CLI commands**: Install preset themes, assign to webspaces, recompile CSS, and run integration diagnostics from the command line
- **Auto-recompile**: Doctrine listener recompiles CSS on theme save

Installation
------------

[](#installation)

### 1. Require the bundle

[](#1-require-the-bundle)

```
composer require itech-world/sulu-tailwind-theme-bundle
```

For local development with a path repository, add to your project's `composer.json`:

```
{
    "repositories": [
        {
            "type": "path",
            "url": "../SuluTailwindThemeBundle"
        }
    ],
    "require": {
        "itech-world/sulu-tailwind-theme-bundle": "dev-dev"
    }
}
```

### 2. Register the bundle

[](#2-register-the-bundle)

If Symfony Flex doesn't register it automatically, add to `config/bundles.php`:

```
return [
    // ...
    ItechWorld\SuluTailwindThemeBundle\ItechWorldSuluTailwindThemeBundle::class => ['all' => true],
];
```

### 3. Register routes

[](#3-register-routes)

Add the following to your `config/routes.yaml`:

```
itech_world_sulu_tailwind_theme:
    resource: '@ItechWorldSuluTailwindThemeBundle/src/Controller/'
    type: attribute
```

### 4. Register frontend assets

[](#4-register-frontend-assets)

The bundle provides Stimulus controllers and CSS that need to be compiled by Webpack Encore.

**Add the npm package** to your project's `package.json`:

```
{
    "devDependencies": {
        "@itech-world/sulu-tailwind-theme-bundle": "file:vendor/itech-world/sulu-tailwind-theme-bundle/assets"
    }
}
```

**Import the CSS** and add the bundle's templates as a Tailwind source in your `assets/styles/app.css`:

```
@import "tailwindcss";
@import "@itech-world/sulu-tailwind-theme-bundle";
@import "@itech-world/sulu-tailwind-theme-bundle/styles/tailwind-theme-bridge.css";
@source "../../vendor/itech-world/sulu-tailwind-theme-bundle/templates";
```

> `@import "tailwindcss"` **must come first** — it activates the Tailwind compiler. Without it, your CSS is processed as plain CSS and no utility class will work.
>
> The **theme bridge** registers all CSS custom properties (colors, typography, borders, buttons, menu) as Tailwind 4 `@theme` tokens. This enables utility classes like `bg-primary`, `text-error-500`, `font-heading`, `rounded-image`, etc. Without it, you would need to use the verbose `bg-[var(--color-primary)]` syntax.
>
> The `@source` directive tells Tailwind CSS 4 to scan the bundle's Twig templates for utility classes. Without it, classes used in menu and block templates won't be compiled.

**Register the Stimulus controllers** in your `assets/controllers.json`:

```
{
    "controllers": {
        "@itech-world/sulu-tailwind-theme-bundle": {
            "lightbox": {
                "enabled": true,
                "fetch": "lazy"
            },
            "menu": {
                "enabled": true,
                "fetch": "lazy"
            },
            "slider": {
                "enabled": true,
                "fetch": "lazy"
            },
            "carousel3d": {
                "enabled": true,
                "fetch": "lazy"
            },
            "key_figures": {
                "enabled": true,
                "fetch": "lazy"
            },
            "location_overlay": {
                "enabled": true,
                "fetch": "lazy"
            },
            "combobox": {
                "enabled": true,
                "fetch": "lazy"
            },
            "fileinput": {
                "enabled": true,
                "fetch": "lazy"
            }
        }
    },
    "entrypoints": []
}
```

**Configure Webpack** to disable symlink resolution in your `webpack.config.js`:

```
// Replace the last line:
// module.exports = Encore.getWebpackConfig();

// With:
const config = Encore.getWebpackConfig();
config.resolve.symlinks = false;
module.exports = config;
```

> This is required so that Webpack treats the bundle's Stimulus controllers as `node_modules` files (skipping Babel transpilation) and resolves their dependencies correctly.

Then install and rebuild your assets:

```
npm install
npm run build
```

### 5. Register admin assets

[](#5-register-admin-assets)

Edit the `assets/admin/package.json` to add the bundle to the list of bundles:

```
{
    "dependencies": {
        // ...
        "sulu-itech-world-sulu-tailwind-theme-bundle": "file:../../vendor/itech-world/sulu-tailwind-theme-bundle/public/js"
    }
}
```

Edit the `assets/admin/app.js` to add the bundle in imports:

```
import 'sulu-itech-world-sulu-tailwind-theme-bundle';
```

In the `assets/admin/` folder, run the following command:

```
npm install
npm run build
```

or

```
yarn install
yarn build
```

### 6. Update the database schema

[](#6-update-the-database-schema)

```
php bin/adminconsole doctrine:schema:update --force
```

### 7. Install a preset theme (optional)

[](#7-install-a-preset-theme-optional)

```
# Install a single preset theme
php bin/adminconsole iw-sulu:theme:install corporate

# Install and assign to a specific webspace
php bin/adminconsole iw-sulu:theme:install corporate --webspace=website

# Install all available preset themes at once
php bin/adminconsole iw-sulu:theme:install --all
```

Available presets: `corporate`, `creative`, `minimal`, `nature`, `halloween`, `christmas`, `megamenu`.

Themes are created in the catalog. To assign them to webspaces, use the `--webspace` option or assign them via the admin UI (see Multi-site setup below).

### 8. Clear the cache

[](#8-clear-the-cache)

```
php bin/adminconsole cache:clear
```

Configuration
-------------

[](#configuration)

The bundle works with **zero configuration**. The only optional setting is the Google Fonts API key for the Font Picker autocomplete.

### Google Fonts API key (optional)

[](#google-fonts-api-key-optional)

The typography tab includes a **Font Picker** with autocomplete for Google Fonts. To enable it:

1. **Get an API key** from the [Google Cloud Console](https://console.cloud.google.com/apis/credentials):

    - Create a project (or use an existing one)
    - Enable the **Google Fonts Developer API** in [API Library](https://console.cloud.google.com/apis/library/webfonts.googleapis.com)
    - Create an API key in **Credentials**
    - (Recommended) Restrict the key to the **Google Fonts Developer API** only
2. **Add the key to your `.env` file**:

    ```
    GOOGLE_FONTS_API_KEY=your_api_key_here
    ```
3. **Configure the bundle** in `config/packages/itech_world_sulu_tailwind_theme.yaml`:

    ```
    itech_world_sulu_tailwind_theme:
        google_fonts_api_key: '%env(GOOGLE_FONTS_API_KEY)%'
    ```
4. **Sync the font catalog** (first time or to update):

    ```
    php bin/adminconsole iw-sulu:theme:sync-fonts
    ```

    You can also sync from the admin UI by clicking the **sync button (↻)** in the Font Picker.

> **Without an API key**, the Font Picker still works: the Google tab falls back to a free-text input, and the System tab lists 15 cross-platform fonts (Arial, Georgia, Courier New, etc.).

### Article templates (optional)

[](#article-templates-optional)

The bundle provides ready-to-use article templates (News, Event, Blog Post) that integrate with [SuluArticleBundle](https://github.com/sulu/sulu). They are **opt-in** and disabled by default.

**Requirements:** The Sulu article package must be installed in your project (`sulu/sulu` includes it by default in 3.x).

**Enable the templates** in `config/packages/itech_world_sulu_tailwind_theme.yaml`:

```
itech_world_sulu_tailwind_theme:
    article_templates:
        enabled: true
```

After enabling, clear the admin cache:

```
php bin/adminconsole cache:clear
```

Three article templates will appear in the admin, each in its own tab:

TemplateGroupDescription**News** (`iw_news`)newsPress/news articles with hero, authors, dates, categories, tags**Event** (`iw_event`)eventsEvents with start/end dates, location (physical or online), organizer**Blog Post** (`iw_blog_post`)publicationsBlog/journal articles with excerpt, reading time, related articlesAll templates use shared [XML fragments](config/templates/fragments/) (`article-hero`, `article-authors`, `article-dates`, etc.) that you can also include in your own custom article templates via `xi:include`.

Each article type comes with **multiple page styles** that can be selected via theme configuration:

TypeAvailable stylesDefault**News**`classic`, `magazine`, `minimal``classic`**Event**`card_info`, `timeline``card_info`**Blog Post**`classic`, `editorial`, `sidebar``classic`**Listing**`grid`, `list`, `cards``grid`Article templates extend the project's `base.html.twig` — your menu, footer, and layout are automatically inherited.

> You can restrict which templates are loaded using the `types` whitelist:
>
> ```
> itech_world_sulu_tailwind_theme:
>     article_templates:
>         enabled: true
>         types: ['news', 'event']  # blog_post will not be registered
> ```

Usage
-----

[](#usage)

### Admin interface

[](#admin-interface)

Navigate to **Settings &gt; Themes** in the Sulu admin panel. From there you can:

1. **Create a theme**: Click "Add", fill in the name and label
2. **Configure colors**: Set primary, secondary, accent, and background colors + text, link, and link hover colors
3. **Configure typography**: Select fonts for headings/body/accent via the Font Picker (Google Fonts autocomplete, system fonts, or free text)
4. **Configure buttons**: Set global padding plus primary/secondary/accent button styles — colors, hover states, radius, border width/style, and five composable hover effects (shadow, transform, opacity, duration, easing). See [Button hover effects](doc/button-effects.md) for the full catalog.
5. **Configure borders**: Set border radius values (default, small, large, full, image)
6. **Configure block variants**: Define color schemes (e.g., light, accent, dark) for content blocks
7. **Configure menu**: Choose menu type, colors, animation, and display options

### Multi-site setup

[](#multi-site-setup)

In a multi-webspace Sulu installation, you can assign different themes to different webspaces:

1. Navigate to **Webspaces** in the Sulu admin
2. Select a webspace and go to the **"Theme"** tab
3. Choose a theme from the dropdown and save

The same theme can be shared across multiple webspaces — they will share the same compiled CSS file. Each webspace can also have its own unique theme.

The theme list in **Settings &gt; Themes** shows a "Webspaces" column indicating which webspaces use each theme.

### Page templates

[](#page-templates)

The bundle ships with a ready-to-use page template (`iw_theme_default`) that includes **14 block types**: `text`, `text_images`, `gallery`, `key_figures`, `linked_pages`, `location`, `form`, `document`, `cta`, `testimonial`, `separator`, `article_list`, `article_carousel`, and `article_featured`.

To use it, simply select **"Page par défaut"** (or **"Default page"**) as the template when creating a page in the Sulu admin.

The template system uses a **modular architecture** with global block types registered via `sulu_admin.templates.block.directories`. You can create your own page templates referencing any subset of blocks, use XInclude fragments to reuse shared properties, and exclude the default template from specific webspaces.

> See **[Page Templates](doc/page-templates.md)** for the full reference: modular architecture, creating custom templates, available block types, XInclude fragments, and excluding templates.

#### Integrating the theme in your base template

[](#integrating-the-theme-in-your-base-template)

Add the theme functions to your `templates/base.html.twig`:

```

    {# Google Fonts #}
    {{ iw_sulu_tailwind_theme_fonts_link()|raw }}

    {# Compiled CSS custom properties #}
    {% set themeCssPath = iw_sulu_tailwind_theme_css_path() %}
    {% if themeCssPath is not empty %}

    {% endif %}

    {# SEO: Open Graph + Twitter Cards (renders meta tags for social sharing) #}
    {% include '@ItechWorldSuluTailwindTheme/seo/_opengraph.html.twig' ignore missing %}
    {% include '@ItechWorldSuluTailwindTheme/seo/_twitter_card.html.twig' ignore missing %}

    {# SEO: JSON-LD structured data — leave empty, article templates fill it automatically #}
    {% block seo_structured_data %}{% endblock %}

    {{ encore_entry_link_tags('app') }}

    {# Dynamic menu #}
    {% set menuConfig = iw_sulu_tailwind_theme_menu_config() %}
    {% if menuConfig is not empty and menuConfig.type is defined and menuConfig.type %}
        {% include '@ItechWorldSuluTailwindTheme/menu/_' ~ menuConfig.type ~ '.html.twig'
            with {config: menuConfig} %}
    {% endif %}

    {% block content %}{% endblock %}

    {{ encore_entry_script_tags('app') }}

```

> The `{% block seo_structured_data %}` block is required for article JSON-LD (schema.org) to appear in the ``. Article templates automatically fill this block with NewsArticle, BlogPosting, or Event structured data.

> The bundle also provides `@ItechWorldSuluTailwindTheme/base.html.twig` as a ready-to-extend base template. See **[Custom Integration Guide](doc/custom-integration.md)** for a complete example with SEO, fallback navigation, and more.

### Twig functions

[](#twig-functions)

FunctionReturns`iw_sulu_tailwind_theme_css_path()`Web path to the compiled theme CSS`iw_sulu_tailwind_theme_fonts_link()``` tags for Google Fonts`iw_sulu_tailwind_theme_menu_config()`Menu configuration array`iw_sulu_tailwind_theme_tokens()`Full design tokens array`iw_sulu_tailwind_theme_block_styles()`Block style configuration`iw_sulu_block_style_template(type, style)`Resolved template path for a block style`iw_sulu_tailwind_theme_format_date(date, format?)`Localized date string (ICU formatting)`iw_sulu_tailwind_theme_reading_time(content)`Estimated reading time in minutes`iw_sulu_tailwind_theme_author_name(authorBlock)`Resolved author name (custom/contact/organization)`iw_sulu_tailwind_theme_article_style(type)`Active page style for an article type`iw_sulu_tailwind_theme_listing_style()`Active listing style (grid/list/cards)The global variable `iw_sulu_tailwind_theme` is available in all templates and contains the active theme tokens.

> The article functions are only available when `article_templates.enabled: true`.

> See **[Twig Reference](doc/twig-reference.md)** for the full API, return types, and token structure.

### CLI commands

[](#cli-commands)

```
# Install a single preset theme
php bin/adminconsole iw-sulu:theme:install

# Install and assign to a webspace
php bin/adminconsole iw-sulu:theme:install  --webspace=website

# Install all preset themes at once
php bin/adminconsole iw-sulu:theme:install --all

# Recompile CSS for a specific theme (or all)
php bin/adminconsole iw-sulu:theme:compile
php bin/adminconsole iw-sulu:theme:compile --theme=corporate

# Sync the Google Fonts catalog (requires API key)
php bin/adminconsole iw-sulu:theme:sync-fonts

# Migrate from isActive to multi-webspace (upgrade from previous version)
php bin/adminconsole iw-sulu:theme:migrate-webspaces

# Run integration diagnostics (check theme, CSS, assets, article bundle)
php bin/adminconsole iw:tailwind-theme:check
```

### Security

[](#security)

The bundle registers two types of security contexts:

- **Theme catalog**: `sulu.iw_sulu_tailwind_theme.themes` with VIEW, ADD, EDIT, and DELETE permissions (Settings &gt; Themes CRUD).
- **Per-webspace theme assignment**: `sulu.iw_sulu_tailwind_theme.{webspaceKey}.themes` with VIEW and EDIT permissions. Controls who can see and modify the "Theme" tab for each webspace.

Configure role access in **Settings &gt; Roles**. After upgrading, make sure to update roles to include the new per-webspace security contexts.

Upgrading from previous versions
--------------------------------

[](#upgrading-from-previous-versions)

### Upgrading to multi-webspace support

[](#upgrading-to-multi-webspace-support)

This version replaces the global `isActive` theme activation with per-webspace theme assignment. Follow these steps:

```
# 1. Update the bundle
composer update itech-world/sulu-tailwind-theme-bundle

# 2. Migrate existing active theme to all webspaces (BEFORE schema update)
php bin/adminconsole iw-sulu:theme:migrate-webspaces

# 3. Update the database schema (creates new table, drops isActive column)
php bin/adminconsole doctrine:schema:update --force

# 4. Clear the cache
php bin/adminconsole cache:clear
```

After upgrading:

- Update admin roles in **Settings &gt; Roles** to include the new per-webspace security contexts (`sulu.iw_sulu_tailwind_theme.{webspaceKey}.themes`), otherwise the "Theme" tab will be invisible.
- The admin JS assets need to be rebuilt (`npm run build` in `assets/admin/`).

Documentation
-------------

[](#documentation)

The theme compiles design tokens into **CSS custom properties** and exposes data through **Twig functions** and a **global variable**. Your custom templates and CSS automatically adapt when the active theme changes.

DocumentDescription[Screenshots](doc/screenshots.md)Visual overview of the admin interface (colors, typography, buttons, blocks, menu)[Page Templates](doc/page-templates.md)Modular architecture, creating custom templates, block types, XInclude fragments[CSS Variables Reference](doc/css-variables.md)All CSS custom properties: colors, palettes, typography, borders, buttons, menu[Block Variants](doc/block-variants.md)Variant classes, auto-styled elements, separator styles, `.btn-variant`[Button Hover Effects](doc/button-effects.md)Catalog of composable hover effects (shadow, transform, opacity, duration, easing)[Twig Reference](doc/twig-reference.md)All Twig functions, global variable `iw_sulu_tailwind_theme`, token structure[Tailwind Integration](doc/tailwind-integration.md)Theme bridge setup, available tokens, custom colors, manual setup, Tailwind 4.x compatibility[Custom Integration Guide](doc/custom-integration.md)Custom CSS, Twig components, block templates, PHP services[Menus](doc/menus.md)Menu types, configuration, and customizationArchitecture
------------

[](#architecture)

```
SuluTailwindThemeBundle/
├── config/
│   ├── forms/              # Sulu admin form XMLs (7 tabs)
│   ├── lists/              # Sulu admin list XML
│   ├── templates/
│   │   ├── pages/          # Page template XML (uses )
│   │   ├── blocks/         # Global block type definitions (14 types)
│   │   └── fragments/      # Shared property fragments (reference)
│   └── services.yaml       # Service definitions
├── src/
│   ├── Admin/              # ThemeAdmin, WebspaceThemeAdmin (navigation, views, security)
│   ├── Command/            # CLI commands (install, compile, sync-fonts, migrate-webspaces, check)
│   ├── Controller/Admin/   # REST API controllers (themes, webspace-theme assignment)
│   ├── DataFixtures/       # Preset theme fixtures
│   ├── Entity/             # ThemeConfig, WebspaceTheme Doctrine entities
│   ├── EventSubscriber/    # Auto-recompile on save
│   ├── Repository/         # ThemeConfigRepository, WebspaceThemeRepository
│   ├── Service/            # ThemeCompiler, ThemeProvider, GoogleFontsResolver, GoogleFontsCatalog
│   └── Twig/               # ThemeExtension
├── templates/              # Twig templates (blocks, menus, base)
├── translations/           # Admin translations (fr, en, de)
├── assets/                 # Frontend assets (Stimulus controllers, CSS)
└── public/js/              # Admin React components

```

Available translations
----------------------

[](#available-translations)

- English
- French
- German

🐛 Bug and Idea
--------------

[](#-bug-and-idea)

See the [open issues](https://github.com/steeven-th/SuluTailwindThemeBundle/issues) for a list of proposed features (and known issues).

💰 Support me
------------

[](#-support-me)

You can buy me a coffee to support me **this plugin is 100% free**.

[Buy me a coffee](https://www.buymeacoffee.com/steeven.th)

👨‍💻 Contact
-----------

[](#‍-contact)

[![](https://avatars.githubusercontent.com/u/82022828?s=96&v=4)](https://steeven-th.dev)[![x.com](./doc/images/x.webp)](https://x.com/ThomasSteeven2)[![Linkedin](./doc/images/linkedin.png)](https://www.linkedin.com/in/steeven-thomas-221b02b8/)

📘 License
---------

[](#-license)

This bundle is under the [MIT License](LICENSE).

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance92

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

11

Last Release

51d ago

Major Versions

v1.2.0 → v2.0.02026-03-19

### Community

Maintainers

![](https://www.gravatar.com/avatar/15d31371355db522b06ffd73f8be76e32972f145390b1eba33b190c7fd412413?d=identicon)[steeven-th](/maintainers/steeven-th)

---

Top Contributors

[![steeven-th](https://avatars.githubusercontent.com/u/82022828?v=4)](https://github.com/steeven-th "steeven-th (95 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (16 commits)")

---

Tags

phpsymfonysymfony-uxcmsthemedesign-tokenssulucss-variables

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/itech-world-sulu-tailwind-theme-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/itech-world-sulu-tailwind-theme-bundle/health.svg)](https://phpackages.com/packages/itech-world-sulu-tailwind-theme-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.5M373](/packages/easycorp-easyadmin-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M196](/packages/sulu-sulu)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1155.2k](/packages/rcsofttech-audit-trail-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.8M712](/packages/sylius-sylius)[kimai/kimai

Kimai - Time Tracking

4.7k8.7k1](/packages/kimai-kimai)[forumify/forumify-platform

122.0k12](/packages/forumify-forumify-platform)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
