Vývojář Struktura tématu

Struktura tématu

Šablona (theme) je složka Blade šablon, která určuje vzhled webu. Weby v režimu šablony si ji vybírají v administraci a jedna instalace může obsahovat libovolný počet šablon. Tento článek popisuje anatomii složky a vytvoření vlastní šablony.

Kde šablony žijí

Šablony sedí v kořeni aplikace ve složce themes/:

themes/
└── default/
    ├── theme.json
    ├── preview.png        (volitelné)
    ├── assets/
    └── views/
        ├── layouts/app.blade.php
        ├── default.blade.php
        ├── page/show.blade.php
        ├── post/show.blade.php
        ├── archive/show.blade.php
        ├── preview/nav.blade.php
        └── blocks/
            ├── text.blade.php
            ├── hero.blade.php
            └── ...

Každý adresář v themes/ se automaticky registruje jako Blade view namespace: themes/default/views/page/show.blade.php je dostupný jako themes.default::page.show. Seznam šablon v administraci (zakládání webu a Nastavení → Vzhled) je prostě seznam těchto adresářů.

Jednotlivé části

  • theme.json — manifest s metadaty:

    {
        "name": "Default",
        "version": "1.0.0",
        "author": "Laravix"
    }
    
  • preview.svg / preview.webp / preview.png / preview.jpg — volitelný screenshot zobrazený vedle šablony ve výběru v administraci.

  • views/{type}/show.blade.php — šablona typu obsahu (page, post, archive, pluginové typy). Když typ šablonu nemá, vykreslí se views/default.blade.php — šablona tak funguje i pro typy obsahu, o kterých nikdy neslyšela.

  • views/layouts/app.blade.php — sdílený layout: <head> se SEO tagy, hlavičková navigace, @yield('content'), patička. Výchozí šablona navíc definuje @stack('head') a @stack('scripts'), přes které view obsahu z builderu vkládá styly a skripty.

  • views/blocks/{key}.blade.php — jedno view pro každý klasický typ bloku (text, hero, cards, columns, button, button_group, divider). Použijí se, když obsah vznikl z klasického pole bloků, ne ve vizuálním builderu — viz Šablony a data ve views.

  • views/preview/nav.blade.php — volitelný partial, který živý náhled navigace v administraci používá k vykreslení samotné navigace.

  • views/docs/…, views/changelog/… — pluginy nejdřív hledají svá views v aktivní šabloně (themes.{theme}::docs.show) a teprve pak sahají po vlastních přibalených views, takže šablona může přestylovat i stránky pluginů.

Vytvoření šablony

  1. Zkopírujte výchozí šablonu jako výchozí bod:

    cp -r themes/default themes/mytheme
    
  2. Upravte themes/mytheme/theme.json (název, verze, autor).

  3. Upravte šablony — začněte u layouts/app.blade.php.

  4. Volitelně přihoďte preview.png.

  5. V administraci otevřete Nastavení → Vzhled a novou šablonu vyberte. Změna platí okamžitě.

Tip: Výchozí šablona načítá stylesheet dodávaný s jádrem (Laravix::asset('app.css')public/vendor/laravix/app.css) plus Font Awesome z CDN. Vlastní šablona si může přinést vlastní asset pipeline — nalinkujte libovolné CSS/JS, které si sestavíte.

Šablony a aktualizace

php artisan laravix:upgrade se složky themes/ nikdy nedotýká — patří vám. Výchozí šablona se publikuje jen jednou, při instalaci (instalátor publikaci přeskočí, když themes/default už existuje). Čistou kopii výchozí šablony později získáte ručně:

php artisan vendor:publish --tag=laravix-theme

Související články

Laravix Documentation · 14.07.2026
Star on GitHub