contao-components/contao
Contao Components: maintained community packages and add-ons for the Contao CMS. Extends core functionality with reusable components for common features and integrations, helping developers add capabilities to Contao projects quickly and consistently.
Installation Add the package via Composer:
composer require contao-components/contao
Publish the assets (if needed) via:
php artisan vendor:publish --tag=contao-assets
First Use Case
Include the CSS in your Laravel app by adding the following to your resources/views/layouts/app.blade.php (or equivalent):
<link href="{{ asset('vendor/contao/css/contao.css') }}" rel="stylesheet">
Start using Contao’s utility classes in your Blade templates:
<div class="container">
<button class="btn btn-primary">Click Me</button>
<p class="text-center">Centered text</p>
</div>
Where to Look First
public/vendor/contao/css/contao.css.resources/css directory (if published) for customization hooks.webpack.mix.js to process Contao’s SCSS (if applicable).margin-top-1, text-bold) for rapid UI development.
<div class="margin-top-2 margin-bottom-1">
<h2 class="text-bold text-primary">Heading</h2>
</div>
hidden-xs, visible-sm-up):
<div class="hidden-xs">Visible on sm+</div>
<button class="btn @if($isPrimary) btn-primary @else btn-secondary @endif">
Action
</button>
<x-card class="bg-light shadow-sm">
<x-slot name="title">Card Title</x-slot>
<p>Content here.</p>
</x-card>
resources/sass/app.scss:
$primary-color: #3498db; // Override Contao’s default
@import 'vendor/contao/css/contao';
mix.sass('resources/sass/app.scss', 'public/css');
<form>
<input type="text" class="input input-lg" placeholder="Name">
<button type="submit" class="btn btn-success">Submit</button>
</form>
{!! Form::text('email', null, ['class' => 'input']) !!}
<div class="dark-mode @if($darkMode) active @endif">
<!-- Content -->
</div>
CSS Specificity Conflicts
!important sparingly or scope Contao classes:
.contao-utils .btn { /* Override */ }
Missing Documentation
No JavaScript Bundle
Responsive Breakpoints
php artisan config:clear
php artisan cache:clear
public/vendor/contao/css/.Custom SCSS Variables
resources/sass/app.scss:
// Override Contao’s colors
$primary-color: #20c997;
$secondary-color: #6f42c1;
@import 'vendor/contao/css/contao';
Laravel Mix Aliases
mix.webpackConfig({
resolve: {
alias: {
contao: path.resolve(__dirname, 'vendor/contao-components/contao/resources/css')
}
}
});
Tailwind-like Directives
// app/Providers/BladeServiceProvider.php
Blade::directive('contao', function ($expression) {
return "class=\"{$expression}\"";
});
Usage:
<div @contao('container margin-top-3')>...</div>
Contao + Livewire
<x-livewire:component class="card bg-white p-4" />
mix.postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
require('tailwindcss'),
require('autoprefixer'),
require('postcss-purgecss')({
content: ['app/**/*.blade.php', 'resources/**/*.js']
})
]);
How can I help you explore Laravel packages today?