Skip to main content

Creuva Theme for Contao

Creuva Contao Theme Logo Creuva Contao Theme Logo

Creuva – create something new. Creuva is a flexible theme for Contao 5.7 and Contao 6 based on the Theme Components Bundle. A single command sets up the theme, page layout, modules and website root, optionally with basic pages or a complete demo website.

Creuva demo in light color mode Creuva demo in light color mode

Quick start

What’s included

  • 17 color schemes, light, dark or system color mode, two typographies and four corner radii – all configurable in the page layout, with contrasts that meet WCAG 2.1 AA
  • Four demos (Standard / Creative, Company, Portfolio / Studio, Sports club) and a style guide with all elements
  • Custom content elements such as hero, logo bar and match pairing, plus many template variants (card, icon box, call to action, image & text, key figures, timeline, gallery slider …)
  • CSS classes via select fields using the CSS Style Selector: backgrounds, grids, spacing, buttons, animations
  • Search, Open Graph and link previews, lightbox, responsive images and self-hosted fonts
  • Export websites as templates and import them into other installations

Creuva demo in dark color mode with the Petrol color scheme Creuva demo in dark color mode with the Petrol color scheme

The theme documentation covers these topics:

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Subsections of Creuva Theme

Requirements

Contao 5.7Contao 6
PHP8.3 or higher8.4 or higher
Page layoutType “Modern”Type “Modern”

Contao system requirements

The Contao Manager or Composer installs these extensions automatically:

Creuva styles the modules for news, events, FAQ, newsletter, comments and listing, but they are optional. The demos only create news and events if the respective bundle is installed.

Tip

You can set up Creuva in an empty or in an existing installation. Existing content is kept, the theme comes with its own page layout.

Note

The demo files (icons, PDFs) are served via the symlink public/files/creuva-demo. On Windows, contao:symlinks needs administrator rights or developer mode for this, otherwise icons and downloads are missing.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

License

Buying a license

You can get a license for Creuva at contao-themes.net. A license is valid for one domain including subdomains; for multiple websites you need several single licenses or a license for unlimited domains. You may use the theme for private and commercial projects.

The bottom bar in the footer always contains the link “powered by contao-themes.net”. It is part of the license and may only be removed or changed with a license without copyright link – even if you only use the theme as a base and customize it.

Agencies and transfer

  • You can transfer the usage rights to your client once; the agency then loses its rights.
  • You need a new license for each additional project (except with the license for unlimited domains).
  • Reselling the theme or any of its parts is not allowed.

Demo content and libraries

Texts, images and other media in the demos are for preview purposes only and must not be used for your own websites. The bundled fonts (Plus Jakarta Sans and Fraunces under the SIL Open Font License 1.1) and the required packages are subject to their own licenses; you can find an overview in the bundle’s THIRD-PARTY-NOTICES.md file.

You can find the full license terms in the LICENSE file in the bundle.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Installation

Installation takes two steps: install the package, then set up the theme. You can do the setup in the back end under Layout › Creuva or on the console with creuva:install – both lead to the same result.

1. Install the package

With the Contao Manager

Open the Contao Manager (www.your-domain.com/contao-manager.phar.php), search for creuva in the Discover tab, add the package pdir/creuva-theme-bundle and click Apply changes. Then update the database when the Contao Manager prompts you to.

With Composer

composer require pdir/creuva-theme-bundle
vendor/bin/contao-console contao:migrate

2. Set up the theme in the back end

Log in to the back end as an administrator and open Layout › Creuva. Under Set up you choose what should be created:

OptionResult
Import a demo websiteNew website root with all pages, content, news, images and forms of a demo
Create an empty site structureNew website root with start, contact, imprint, privacy, accessibility statement, sitemap and search pages
Use an existing websiteThe Creuva layout is assigned to the selected website roots, the content stays unchanged
Only create the themeCreate the theme, modules and page layout; you assign the layout yourself later

For a new website root you enter the title, language and optionally the domain. You need the domain if there already is a website root with the same language and no domain. Below each form you find the matching console command and, after running it, the output.

Note

If the page reports that the database is not up to date, update it first in the Contao Manager or with contao:migrate.

What gets created

  • the theme “Creuva” with the modules main navigation, header, footer – brand, footer navigations, copyright and bottom links
  • a page layout of type “Modern” with the template page/layout/creuva, with all modules assigned to their slots
  • the image size “Logo” (480 × 120 px, 2x density), if the theme does not have one yet
  • the CSS styles for the CSS Style Selector
  • the assignment of the layout to the website root

The theme detects the contact, imprint, privacy, accessibility, sitemap and search pages of an existing website by their alias (kontakt, impressum, datenschutz, barrierefreiheit, sitemap, suche …) and links them in the header button, the header search and the footer. Module names and texts follow the language of the website root (German or English).

2. Set up the theme on the console

# Existing website: the website root is queried or passed by ID
vendor/bin/contao-console creuva:install --root=1

# New website with basic pages
vendor/bin/contao-console creuva:install --with-pages --site-title="My Company" --dns=example.org

# Complete demo website with sample content, images, news and form
vendor/bin/contao-console creuva:install --demo
OptionDescription
--root=<ID>Website root that receives the Creuva layout (can be used multiple times)
--with-pagesCreate a new website root with basic pages (automatic if there is none yet)
--demo[=<name>]Create a new website root with a demo: standard (default), unternehmen, portfolio, sportverein or a folder such as files/my-demo
--site-title, --language, --dnsTitle, language (default de) and domain of the new website root
--schemeColor scheme, e.g. green (default), petrol, blue – see Color schemes
--variantColor mode: light (default), dark, auto (follows the system setting)
--typographymodern (default, Plus Jakarta Sans) or editorial (headings in Fraunces)
--theme-nameName of the theme (default “Creuva”), e.g. for a second variant
--replaceDelete the website with the same domain and language, including its theme, beforehand, see Reset content
--resetDelete all Contao content beforehand
--force, --no-backupWith --reset/--replace: without confirmation or without a database backup

Notes

Error message: This page isn’t working / The page redirected you too many times

Edit the website root and set the protocol under URL settings to http:// or https://, depending on how your site should be accessed.

Demo icons and downloads are missing

Run vendor/bin/contao-console contao:symlinks so that public/files/creuva-demo is created.

Search finds nothing

Build the search index once after the setup: System › Maintenance or contao:crawl.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Subsections of Installation

Manual setup

creuva:install or Layout › Creuva takes care of these steps for you. If you prefer to put the theme together yourself, proceed as follows:

1. Theme and modules

Create a new theme under Layout › Themes and add these modules to it:

  • Navigation menu (2 levels) for the main menu
  • Creuva › Creuva header – logo, navigation module, CTA button, optional search; contains the mobile menu
  • optionally Search engine on a hidden “Search” page (see Search)
  • Creuva › Creuva brand – logo, claim and social media links for the footer (the platform is detected from the URL)
  • Custom navigation with a headline for each footer column (e.g. Services, Company, Legal)
  • optionally Custom HTML code for the copyright and a custom navigation for the links at the bottom right
  • optionally Creuva › Creuva style switcher for trying out the color schemes (see Style switcher)

2. Page layout

Create a page layout of type “Modern” with the template page/layout/creuva and assign the modules to the slots:

SlotContent
topoptional bar, style switcher
headerCreuva header
mainarticles
prefooteroptional, e.g. a logo bar above the footer
footerCreuva brand and footer navigations
bottomcopyright, sitemap, cookie settings

The bottom bar always contains the link “powered by contao-themes.net”, see License.

3. Design

In the page layout, set the color scheme, color mode, typography, corner radius and animations under Creuva design, see Design.

4. Import CSS styles

To make the Creuva classes available as select fields:

vendor/bin/contao-console creuva:css-styles

Accessibility

  • Give each navigation module a unique ARIA label under Expert settings, e.g. “Main navigation”, “Services”, “Service links”.
  • The headlines of the footer columns should be h2.
  • In forms, set the Autocomplete field for name, email, phone etc. (name, email, tel, organization).

The installer and the demos already do this.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Demos and styleguide

Creuva comes with four demos. Each one is imported as a website root of its own – in the back end under Layout › Creuva › Set up (option “Import a demo website”) or on the console. In an existing installation, you add the demo alongside with its own domain (--dns) or language (--language).

DemoCommandForLive
Standard / Creativecreuva:install --demoAgencies, freelancers, small businessesView
Companycreuva:install --demo=unternehmenMid-sized companies, industry, tradesView
Portfolio / Studiocreuva:install --demo=portfolioPhotographers, architects, creative studiosView
Sports clubcreuva:install --demo=sportvereinFootball and sports clubs, associationsView

All demos use only core elements, Creuva elements and template variants, so they work the same in Contao 5.7 and 6. The elements are independent of the demos: whatever a demo shows, you can use on any Creuva website.

Note

The texts, images and media of the demos are for preview purposes only and must not be used on your own websites. The contact form does not send any emails – add the sending in the form generator.

Standard / Creative

  • Pages: home page, services (web design, development, consulting), projects with six project pages, about us with team, pricing, news & knowledge with FAQ and downloads, contact with thank-you page, legal notice, privacy policy, accessibility statement, sitemap, search and a 404 page
  • Modules: main navigation, header with CTA and search, footer with four columns and social media links, news list and reader, sitemap, search engine
  • Image sizes for every spot in the layout (logo, hero, card, image & text, wide, team, avatar, news, gallery) with several widths, WebP and lazy loading
  • News archive with three posts (only with the News bundle installed)
  • Files under files/creuva-demo/standard/ (illustrations, icons, PDFs) with alt texts
  • Favicon in the website root and the style switcher for trying out the color schemes

Company

A classic company website (“Kessler Metalltechnik GmbH”, Light, color scheme Ocean, square corners):

  • Pages: home page with key figures, services and industries; services with machinery; industry solutions; references; company with history, certificates and locations; careers with job offers and online application (file upload); download center; news; contact with contact persons
  • Job offers are news items in the archive “Stellenangebote” with the list template news_creuva_job (see News)
  • Process steps as a template variant of the description list

Portfolio / Studio

For photographers, architects and creative studios (“Studio Lichtung”, typography Editorial, color scheme Terracotta, small corners):

  • Pages: home page with full-screen hero, works with six project pages, image archive (masonry gallery with lightbox), studio with team, services with pricing and FAQ, journal, contact
  • Project pages: full-screen hero, project data (facts), text, a different gallery arrangement or a slider with thumbnails on each page, and a link to the next project
  • Image tiles (creuva_tile), logo bar and the grid class “Versetzt” (offset, u-grid-offset)

Sports club

For football and sports clubs (“TSV Rotenbach 1921”, Light, color scheme Red, medium corners, crest as logo):

  • Pages: home page with next match and latest result, teams with training times and league table, fixtures, club with board and sports park, news, sponsors with packages, membership with online application and membership form (PDF)
  • Fixtures and results are events in the calendar “Spielplan”. Their dates are relative to the day of the import, so the next matches are always in the future.
  • Content element “Match” and table class “Liga-Tabelle” (league table, u-table-league)

Styleguide

The styleguide shows all elements, template variants, CSS classes and modules of the theme on one page: colors, typography, buttons, lists, tables, media, key figures, accordion, backgrounds, animations, all form fields, breadcrumb and news list. It is independent of the demos and can be added to any Creuva website – under Layout › Creuva › Styleguide or on the console:

vendor/bin/contao-console creuva:styleguide --root=1
vendor/bin/contao-console creuva:styleguide --root=1 --replace   # recreate after a theme update
  • Page “Styleguide” (alias styleguide) at the end of the website, not in the navigation, not in the search index and with noindex,nofollow
  • its own modules, a form and a news archive with the prefix “Styleguide – "
  • files under files/creuva-demo/styleguide/

The demos install the styleguide as well.

Accessibility statement

Every demo comes with the page zugaenglichkeitserklaerung, linked in the footer. Each section is a text element of its own; sections that don’t fit every website (PDF documents, videos, maps, third parties, BFSG, dispute resolution …) are hidden and can be shown via the eye icon. --with-pages creates the page with a placeholder.

Note

The text is a template. The theme alone does not make a website accessible; the date and details must match the website in question.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Subsections of Demos and styleguide

Custom demo and export

You can export a website as a template and import it into another installation – e.g. as a starter package for client projects. The template is a folder with a demo.yaml and the files used, the same structure as the bundled demos.

Exporting a website

In the back end under Layout › Creuva › Export a website (administrators only), you choose the website root and optionally a title and folder name. Below, all exports are listed with date, number of files and size; you can download them as a ZIP and delete them. On the console:

vendor/bin/contao-console creuva:export
vendor/bin/contao-console creuva:export 1 --name=kunde-x --title="Kunde X"
var/exports/kunde-x/
├── demo.yaml       pages, contents, modules, forms, news, events, image sizes, design
└── files/          the files used

The export includes:

  • the page tree with articles and content elements, and the modules, forms, news and events used in it
  • the image sizes of the theme and all sizes used in contents
  • all referenced files with alt texts
  • header, logos, brand and footer columns from the Creuva modules
  • color scheme, color mode, typography, corner radius and logo height, plus the favicon and preview image of the website root

Not exported are custom colors of the layout, recipient addresses of forms, tables of other extensions and the styleguide page (it is recreated on import). Insert tags with IDs such as {{insert_module::3}} and the elements “Content element” and “Article” (aliases) cannot be transferred; the export lists them as warnings. Page links such as {{link_url::12}} are converted to aliases.

Tip

To move a complete website, a database backup is the better way. The export is meant for templates.

Importing a custom demo

  1. Unzip the ZIP and copy the folder to files/<name>. Do not make the folder public, otherwise the demo.yaml can be accessed on the web.
  2. Under Layout › Creuva › Set up, enter files/<name> in “Or own folder”, or:
vendor/bin/contao-console creuva:install --demo=files/kunde-x

The files are copied to files/creuva-demo/local-<folder name>/, the source folder stays unchanged. With filesFolder: inhalte in the demo.yaml, they end up in files/inhalte/ instead; this folder is not deleted by creuva:reset.

Structure of the demo.yaml

The definition is YAML. You write references as page:<alias>, module:<key>, image_size:<key>, news_archive:<key>, calendar:<key> or file:<path>. An example with the most important sections:

design:
  scheme: green       # color scheme, color mode, typography and corner radius of the page layout
  variant: light
  typography: modern
  radius: large
  logoHeight: 4rem
  stylesheets: ['files/design/custom.css']   # created if it does not exist
header:
  logo: file:design/logo.png
  search: suche       # alias of the search results page
brand:
  logo: file:design/logo-hell.png
bottom: ['impressum', 'datenschutz', 'sitemap']   # links next to the copyright
imageSizes:
  card:
    name: Karte (4:3)
    width: 800
    height: 600
    resizeMode: crop
    densities: 400w, 600w, 800w
    sizes: '(min-width: 80rem) 384px, (min-width: 44rem) 31vw, calc(100vw - 2rem)'
    lazyLoading: true
pages:
  - title: Start
    articles:
      - elements:
          - { type: 'image', singleSRC: 'file:bilder/foto.jpg', size: 'image_size:card' }
modules:
  newslist: { name: 'News', type: 'newslist', news_archives: ['news_archive:blog'], imgSize: 'image_size:card' }
layout:
  prefooter: [partner]   # additional modules in sections of the page layout
styleguide: true

You define events under events:; the date is a strtotime() expression ("2026-12-05", "5 December"), relative values such as 'date:next saturday 15:00' are possible as well. The bundled demos in the bundle’s demo/ folder are the best template.

Image sizes of the demos

Each image size is meant for one spot in the layout, so the browser doesn’t load more than necessary:

KeyNameFor
logoLogoLogo in header and footer
heroHeroImage in the hero element
coverVollbild (16:9)Full-width hero
cardKarte (4:3)Cards in three or four columns, slider with several cards
mediaBild & Text (4:3)Template variant “Image & text”, cards in two columns
wideBreitImage across the content width
tile-portrait, tile-landscapeKachel hoch/querImage tiles
sliderSlider (3:2)Images in a slider across the content width
team, avatarTeam, AvatarPortrait and testimonial
news, news-detailNews-Teaser, News-DetailNews list and header of the news reader
galleryGalerie (responsiv)Galleries, the gallery template sets sizes per image
Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Resetting contents

The demo import does not overwrite any existing contents. To import a demo again or to put an installation back into the state right after a fresh install, there are two ways.

Warning

Both commands delete contents. A database backup is created automatically beforehand – only turn it off if you are sure.

Deleting all contents (creuva:reset)

# Delete all contents (with confirmation and database backup)
vendor/bin/contao-console creuva:reset

# Delete contents and import the demo again
vendor/bin/contao-console creuva:install --demo --reset

In the back end, this corresponds to the option “Delete all contents first” under Layout › Creuva › Set up.

  • All Contao tables are emptied: site structure, articles, content elements, themes, modules, layouts, forms, news, versions, search index etc. The IDs start at 1 again.
  • Back end users and user groups, members and member groups and the file manager are kept.
  • Of the files, only the demo folder files/creuva-demo is deleted.
  • The backup is stored under var/backups/creuva-reset__<timestamp>.sql.gz; restore it with contao:backup:restore <file name>.
  • Without confirmation (e.g. in scripts): --force, without backup: --no-backup.

Replacing one website of a multisite installation (--replace)

--reset deletes all websites. If several websites run in one installation, --replace only replaces the website that the import would create:

vendor/bin/contao-console creuva:install --demo=files/meine-demo \
    --site-title="Meine Firma" --dns=example.org --theme-name="Meine Firma" --replace

This deletes the website roots with the same domain and language including their subpages and contents, the theme with the name from --theme-name and the themes whose layouts this website uses, as well as forms, news archives and calendars – but only if no other website uses them.

  • If the theme is also used by another website, the command aborts without deleting anything.
  • Before deleting, the command lists all affected records and asks for confirmation.
  • Files are kept; the import overwrites the demo files, their UUIDs stay the same.
  • If there is no matching website yet, --replace simply creates it.
  • Cannot be combined with --reset and --root; requires --demo or --with-pages.

Afterwards, rebuild the search index with contao:crawl.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Design

You set up the look in the page layout under Creuva design. Below the fields, a live preview shows a heading, buttons and boxes with the current selection.

FieldOptions
Color scheme17 schemes, see below
Color modeLight / Minimal, Dark / Creative, Light or dark by system setting
TypographyModern (Plus Jakarta Sans) or Editorial (headings in Fraunces) – can be combined with any color mode
Corner radiusSquare, Small, Medium, Large – rounding of cards, buttons and images
Primary color, Accent coloroptional custom colors as a hex value without #, they override the scheme
Logo heightHeight of the logo in the header as a CSS value, e.g. 4rem (default 2.25rem); the header grows with it
Own stylesheetsCSS files from the file manager, see Custom CSS
AnimationsAll sections, CSS class only, None
Tip

The live preview checks custom colors: it shows a notice if white text on the primary color, or the accent color as text on white, falls below a contrast ratio of 4.5:1. The accent color is also used for links and small text.

Color schemes

Each scheme consists of a primary color (buttons, dark areas, links; it also tints backgrounds, borders and text) and an accent color (accents, badges, icons, focus outlines). All schemes meet the WCAG contrast requirements (text 4.5:1, large text and graphics 3:1) in light and dark mode.

SchemeKeyPrimaryAccent
Green (default)green#1d3b2a#3c9a2f
Sagesage#2f3e36#52755f
Oliveolive#2e3220#647219
Graphite & limelime#1c1f22#b5e61d
Petrolpetrol#0f3a40#0b7d7d
Oceanocean#0b2545#08759a
Blueblue#1b2f4b#2f6fd6
Indigoindigo#1a1b4b#4f46e5
Violetviolet#2a1846#7c4dff
Plumplum#33152e#9c3d8f
Magentamagenta#3d1430#c92a63
Redred#3f1418#c8323a
Bordeauxbordeaux#3b0d1f#a3214e
Terracottaterracotta#3b2219#b84f24
Orangeorange#2d1b0e#f08c00
Yellowyellow#26241c#f2b705
Midnight & goldgold#141a2e#c9a227

You need the key for creuva:install --scheme=…, for the demo.yaml and for links to the style switcher.

Color mode “System”

With “Light or dark by system setting”, the website appears light or dark depending on what the visitor has set in their operating system or browser, and switches along when the setting changes. A small script sets the mode before the first render, so the page doesn’t flash. Without JavaScript, it stays light.

Design per website

In the website root, you can additionally set color scheme, color mode, typography and corner radius under “Creuva design”. These values take precedence over the page layout; a scheme in the website root also replaces the custom colors of the layout. This way, several websites can share one layout and still look different.

The installer and the demos leave the fields in the website root empty (“As in the page layout”), so changes in the page layout become visible right away.

Animations

SettingEffect
All sections (default)All elements in the main section fade in from below on scroll, grids and news lists element by element, “Image & text” from both sides; key figures count up
CSS class onlyOnly elements with a class from “Animation” (see CSS classes)
NoneNo scroll animations, no intro animation in the hero, numbers appear immediately
  • The u-reveal-* classes set the direction per element and take precedence; u-reveal-none excludes an element or a whole article.
  • Contents that are already visible on load are never hidden; without JavaScript, everything is visible right away.
  • Visitors who have “Reduce motion” turned on in their system settings don’t see any animations.
  • Hover effects (cards lift, images zoom, arrows move along) are always active.

You can adjust duration, distance and delay with CSS:

:root {
  --reveal-duration: 0.6s;   /* default 0.8s */
  --reveal-distance: 1.5rem; /* default 2.5rem */
  --reveal-stagger: 60ms;    /* delay per element in the grid */
  --hover-lift: -4px;        /* lift of cards on hover */
}

Fonts

Plus Jakarta Sans and Fraunces ship with the theme and are self-hosted, so there are no requests to Google. The browser only loads Fraunces if the typography “Editorial” is selected.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Subsections of Design

Style switcher

The front end module Creuva › Creuva style switcher shows a cog on the left edge. Visitors can use it to try out color scheme, color mode (Light, Dark, System), typography (Modern, Editorial) and corner radius live – ideal for a demo or for choosing a color scheme together with clients.

Setting it up

  1. Create a module of the type Creuva style switcher under Layout › Themes › Modules (the demos already have one).
  2. Assign it to the top section in the page layout, so the selection takes effect before the first render.

The selection is only stored in the browser (localStorage) and applies to all pages with the module.

Linking a combination

You can link to a combination directly, e.g.:

https://www.deine-domain.de/?scheme=red&theme=dark&typography=editorial&radius=none
ParameterValues
schemeKey of the color scheme, e.g. petrol
themelight, dark, auto
typographymodern, editorial
radiusnone, small, medium, large

Saving the selection for the website

In the front end preview, the switcher additionally shows administrators the button “Save for the website”. It saves the selection in the website root of the current website, clears the page cache and then applies to all visitors. Editors without admin rights and regular visitors don’t see the button.

Back end users only

With the module option “Logged in back end users only”, the switcher is invisible to visitors. It only appears when you are logged in to the back end; a selection previously stored in the browser then no longer applies to visitors.

Note

Set this option on live websites. Without it, every visitor sees the switcher.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Custom CSS and templates

Own stylesheets

Create a CSS file in the file manager, e.g. files/design/custom.css, and select it in the page layout under Creuva design › Own stylesheets. It is loaded after the Creuva CSS, with its modification time for cache busting. The folder must be public.

All Creuva styles live in CSS cascade layers (creuva.*). This means your own styles without a layer always take precedence – without !important and without long selectors.

Colors, spacing and rounding

Colors, spacing and typography are CSS variables and are easy to override:

:root {
  --scheme-primary: #123456; /* primary color incl. tinted backgrounds */
  --radius-l: 0.75rem;
}

For custom primary and accent colors, the page layout is usually enough (see Design).

Accordion with a custom icon

Give the accordion the class u-accordion-icon plus a class of your own, and set the icon with CSS:

.content-accordion.mein-icon {
  --accordion-icon-mask: url("/files/icons/paket.svg");
}

Customizing templates

All templates are Twig templates and can be overridden in the templates/ folder as usual, e.g. templates/content_element/creuva_hero.html.twig:

{% extends '@Contao/content_element/creuva_hero.html.twig' %}

Print

Only the content is printed, black on white, without header, footer, breadcrumb, slider controls and backgrounds. Links in the text appear with their address, accordions are expanded, and cards and images are not split across pages.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Elements and modules

Creuva comes with its own content elements and modules and styles the Contao core elements. The Styleguide shows how everything looks together.

Content elements

ElementDescription
Creuva › HeroIntro section with kicker, headline with highlighted part, text, two buttons, image and badge
Logo bar (creuva_logos)Client or partner logos; no background of its own, the section defines it
Match (creuva_match)Competition, home and away team with crests, kick-off, venue, optional result and button

Hero

The hero image comes in several shapes:

  • Organic – image with an organic mask
  • Rounded – the whole image with a shadow and an accent shape behind it
  • Image unchanged
  • Image unchanged with accent shape – no shadow and no cropping, ideal for cut-out images with a transparent background
  • Full screen (text on the image) – hero across the full width, portrait format on phones

The badge appears as a small card with check marks, one line per point. Image and text are optional.

Logo bar

You link the logos via the file metadata (“Link” field). In dark mode the logos sit on a light surface so that dark and colored logos stay readable. The exceptions are the background „Primär (dunkel)“ (primary, dark) and the class u-logos-original, both meant for white logos. The logo bar is also available as a module, e.g. for the prefooter slot above the footer.

Match

Without a result, the element shows the kick-off time (next match); with a result, it shows the final score. The matching table class is „Liga-Tabelle“ (league table, u-table-league): a compact table with centered numbers; your own team is highlighted if it is bold in the table.

Modules

ModuleDescription
Creuva headerLogo, main navigation with dropdowns, CTA button, mobile menu and the optional search
Creuva brandLogo, claim and social media links for the footer; the platform is detected from the URL
Logo barlike the content element, for the slots of the page layout
Creuva style switcherTry out color scheme, color mode, typography and corner radius, see Style switcher

A full-width contact section below the footer columns is an HTML module with the class c-footer-contact in the footer slot (see the standard demo for an example).

Styled core elements

Creuva also styles:

  • the Contao core elements: text, list, description list, table, image, gallery, content slider, accordion, downloads (with file type and size, e.g. “PDF · 245 KB”), hyperlink, code, top link, forms, breadcrumb, search
  • the news modules (list as cards, reader, archive menu, pagination)
  • events (list with date badge, reader, month and mini calendar, menu), FAQ, newsletter, comments and listing
  • the elements of the Theme Components Bundle 2.0: content box, teaser box, price box, feature element, simple box, icon tile, modal
  • select fields in forms, without JavaScript

Accordion

Each entry is a card with a round plus/minus toggle. To add an icon in front of the question, set a class on the accordion element: u-accordion-icon (question mark), u-accordion-info or u-accordion-chat. You can add an icon of your own with CSS, see Custom CSS.

Sections with a background

You can also select the background classes (u-bg-muted, u-bg-accent, u-bg-primary) on an article – the article then becomes a full-width section with a background.

Every article has section spacing at the top and bottom. If two articles without a background or with the same background follow each other, the top spacing of the second one is dropped so it doesn’t double up. You can adjust individual articles in the CSS Style Selector under „Abstände“ (spacing).

Topics

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Subsections of Elements and modules

Template variants

You can choose these variants under Template settings › Custom template. All of them work independently of the demos; the Styleguide shows examples.

Text

VariantUse
creuva_cardCard with image, category (subline), title and text; the last link makes the whole card clickable
creuva_featureIcon box with a round icon (SVG or small image); on hover the card lifts and the icon is filled with the primary color
creuva_ctaCall to action: a surface with kicker, two-tone headline and text on the left, the links in the last paragraph as buttons on the right (the first one filled, the others as outlines)
creuva_mediaImage & text: image left, right, above or below (image alignment), kicker, two-tone headline, text with a check list; links in the last paragraph become buttons
creuva_testimonialTestimonial: quote in the text, name as headline, role as subline, portrait as image
creuva_teamTeam member: portrait, name, role (subline), contact
creuva_pricePrice card: package as headline, price as subline, list of features, last link as button; highlighted with u-featured
creuva_tileImage tile: image in the proportions of its image size, the whole tile is clickable

Icon box: In the CSS Style Selector under „Elementoptionen › Icon-Box“ (element options › icon box) you find „Ohne Karte“ (without card, u-feature-plain, e.g. benefits in a row) and „Icon links, ohne Karte“ (icon on the left, u-feature-inline, e.g. contact details).

Call to action: You choose the color under „Farben des Elements“ (element colors: white, gray, light accent, accent color, outline; text and buttons adapt). „Call to Action › Zentriert“ (centered, u-cta-stacked) puts the buttons below the text. To span the full window width, use „Breite › Volle Breite“ (width › full width, u-full-bleed) – then set „Innenabstand oben und unten: Kein“ (top and bottom padding: none) on the article.

Description list

VariantUse
creuva_statsKey figures as cards: term = number, description = label
creuva_timelineTimeline: term = year/step, description = event; horizontal as soon as the element is wide enough, vertical in a grid column
creuva_factsFacts as a card, e.g. project data: term = label (“Client”), description = value
creuva_stepsProcess steps: numbered steps, side by side with a connecting line from tablet width up

Key figures: Characters before or after the number ("+", “%”, “o’clock”) are highlighted, and the numbers count up while you scroll. Ranges such as “11–20” don’t count up, and dates stay unchanged. Optionally, an icon sits above each number (field Icons (key figures), in the order of the entries). With u-no-countup the numbers don’t count up.

VariantUse
creuva_sliderGallery as a slider: Images per row sets how many images a slide shows (1–6; at most two on tablets, one on phones); Full-size view opens the lightbox

You can find more about galleries under Sliders and galleries.

In boxes with u-bg-primary or u-bg-accent, a link that stands alone in the last paragraph is automatically shown as a button. In texts with u-lead and in section headers it becomes an arrow link (“View all services →”).

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Headlines and text

Headline addition

The Theme Components Bundle adds a subline to headlines. Creuva calls the field “Headline addition”:

  • addition without a checkbox → small line above the headline (“WHAT WE DO”)
  • addition with “Two-tone headline” → addition and headline in one line, the actual headline appears in the accent color (“More than just an agency.”)
  • addition with “Show addition below” → line below the headline

Kicker

Text elements and description lists also have the Kicker field: small uppercase text above the headline. Together with a two-tone headline you get the combination used on the demo home page (“CREATIVE PARTNERS ON EQUAL TERMS – More than just an agency.”).

Section header

Headline on the left, intro and link on the right: create an element group with the classes u-grid-2 u-align-end, and inside it a headline element and a text element with the class u-lead whose last paragraph contains only the link.

Text formats in the editor

The text editor has a “Formats” menu with the theme’s text styles:

  • Text: Accent color, Highlight, Muted – for selected words
  • Paragraph: Lead (larger), Kicker
  • Links: Button, Secondary button – select the link and choose the format

Buttons

In the CSS Style Selector, „Primär-Button“ (primary), „Sekundär-Button“ (secondary), „Akzent-Button“ (accent) or „Outline“ turn a hyperlink element into a button. On a text element with this selection, the links in the last paragraph become buttons, side by side. In “Image & text” and in call-to-action boxes this happens automatically.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Sliders and galleries

Content slider

In the content slider element, every element inside is a slide: images, cards, testimonials, texts or whole element groups. Creuva adds the following to the slider settings:

  • Elements per view (1–4): at most two on tablets, one on phones
  • Navigation arrows and Dots: can be turned off individually, shown in a bar below the slides; they are hidden when all elements fit into the view
  • Thumbnails: preview images below the slider, taken from the first image of each slide, e.g. for an image gallery

Autoplay (delay), speed, start slide and loop are the Contao fields. Cards and boxes in a row have the same height.

You set the columns with Images per row (1–6), and Full-size view opens the lightbox. You can choose more layouts in the CSS Style Selector under „Galerie-Anordnung“ (gallery layout):

ClassLayout
u-gallery-mosaiclarge image on the left, next to it one wide and two small ones, four images each
u-gallery-mosaic-rightlike the mosaic, large image on the right
u-gallery-featuredfirst image across the full width
u-gallery-masonryimages in their own height – choose an image size without cropping

Image size

A gallery has only one image size for all images. So that every tile still loads a suitable image, the demos and the Styleguide include the image size „Galerie (responsiv)“ (gallery, responsive; proportional, widths from 320 to 1600 px). The gallery template sets the right sizes value for every image, depending on the layout, the position and “Images per row”. The important part set in the file manager stays visible in the tile.

For your own galleries, choose this image size or create one following the same principle – the widths are enough.

Tip

The format of an image is defined by the image size, not by the CSS. Gallery grids and gallery sliders need a size with fixed cropping for images of equal height (e.g. „Karte (4:3)“, card 4:3). Mosaic and „Erstes Bild groß“ (first image large) fill their tiles with any size, masonry needs a size without cropping.

With Full-size view/new window, images in the gallery and the image element open the Creuva lightbox: dark background, caption or title from the metadata, counter, previous/next, keyboard (Esc, arrow keys) and swiping on phones. The images of a gallery form a group. You don’t need any jQuery or MooTools templates in the page layout for this.

Preferred loading

The first large image on a page (at least 400 px wide, in the first article, e.g. the hero image) is automatically prioritized and loaded without lazy loading. This improves the Largest Contentful Paint in PageSpeed. If a page starts with text, all images stay unchanged.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

News and events

News list

The news list shows the items as cards. With the class u-news-no-author on the module (news list, news reader or news archive) you hide the author; the date stays.

Job offers

The list template news_creuva_job shows news items as job ads: a card with title, tags and teaser. The tags come from the subline, separated by “·”, e.g. “Full-time · Neuburg · starting now”. The “Company” demo has an example.

News reader

The news reader shows a header like the hero: archive, date and reading time as the kicker, headline, subheadline as intro and author, next to it the news item’s image (image size in the News reader module). The content elements follow in the reading column.

Highlighted part: In the news item you find this field next to the headline. The text you enter appears in the accent color, e.g. “Accessibility becomes mandatory – what websites need now”. It must appear exactly like this in the headline. In lists, in the page title and in search engines the headline stays single-colored.

Reading time: The words of the content elements divided by 200 words per minute, rounded up, at least one minute. Headline, teaser and images don’t count.

Caption: Lists show no caption. The news reader only shows it if it is entered in the news item itself under Overwrite metadata; the caption from the file manager is not used.

Events

The event list shows events with a date badge. The event reader, month and mini calendar and the event menu are styled as well. The “Sports club” demo uses events for the fixtures and results.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

CSS classes

All Creuva classes are available as styles in the CSS Style Selector, in the CSS style section of content elements, articles and modules. So you don’t need to remember any class names – you just select them.

Categories and groups

The classes are sorted into categories (e.g. „Abstände“, spacing) and, within them, into groups (e.g. „Innenabstand oben und unten“, top and bottom padding). Each group appears in the element as a select field with exactly one style. An element only shows the groups that fit its type – „Raster“ (grid), for example, only on element groups, „Buttons“ only on hyperlink and text elements.

Categories and groups are normal records. Under Layout › CSS styles you can change them, sort them by drag and drop and add your own categories and groups. Sections and element types always apply to the whole group.

Importing the classes

The classes are imported

  • automatically by creuva:install,
  • once by contao:migrate on existing websites, as long as no Creuva group exists yet,
  • after a theme update with new classes, by this command:
vendor/bin/contao-console creuva:css-styles

The import only adds what is missing. Your changes in the back end – titles, element types, removed styles, your own categories and groups – are kept.

Switching from the Style Manager

The classes are still stored in the CSS class field, so the front end stays unchanged. After the update, contao:migrate creates the Creuva groups and transfers the selection. You recreate your own Style Manager groups as CSS styles. Afterwards you can delete the tables tl_style_manager_archive and tl_style_manager as well as the styleManager columns.

Tip

The classes also work directly in the CSS class field, e.g. in places without a CSS style selection.

Overview of the classes

AreaClasses
Backgroundu-bg-surface, u-bg-muted, u-bg-accent, u-bg-primary
Widthu-full-bleed (background across the full width), u-narrow
Frameu-card, u-featured (highlighted price card)
Grid (element group)u-grid-2, u-grid-3, u-grid-4; alignment u-align-start (don’t stretch columns), u-align-center, u-align-end; column width with two columns u-cols-wide-start, u-cols-wide-end (3 : 2)
Tableu-table-compare (package comparison: columns 2–4 colored, “✓”/"–" as icons), u-table-league (league table)
Newsu-news-no-author (hide author)
Spacingpadding u-py-* (top and bottom), u-pt-* (top), u-pb-* (bottom); margin u-my-*, u-mt-*, u-mb-* – each 0, s, m, l, xl
Textu-text-left, u-text-center, u-text-right, u-lead, u-muted, u-accent, u-kicker
Buttonsu-button (primary), u-button-secondary (white), u-button-accent, u-button-outline, u-button-outline-accent
Element colorsu-card-white, u-card-muted, u-card-soft, u-card-primary, u-card-accent, u-card-outline-primary, u-card-outline-accent, u-card-flat, u-card-none
Icon coloru-icon-soft (default), u-icon-accent, u-icon-primary, u-icon-white, u-icon-light, u-icon-plain, u-icon-original
Icon boxu-feature-plain (without card), u-feature-inline (icon on the left)
Call to actionu-cta-stacked (centered, buttons below the text)
Galleryu-gallery-mosaic, u-gallery-mosaic-right, u-gallery-featured, u-gallery-masonry
Animationu-reveal-up, u-reveal-left, u-reveal-right, u-reveal-down, u-reveal-zoom, u-reveal-blur, u-reveal-fade, u-reveal-none, u-reveal-stagger (content one after another), u-no-countup
Elementsu-accordion-icon, u-accordion-info, u-accordion-chat, u-media-plain (image & text without accent surface)
Visibilityu-hide-mobile, u-hide-desktop

Element colors

Cards, icon boxes, testimonials, price cards and the boxes of the Theme Components Bundle get a surface (white, gray, light accent, primary or accent color) or just a colored outline. On dark surfaces, text, links and kickers automatically switch to the contrast color.

You set the circle behind the icon of an icon box separately. With the primary and accent color the icon turns white; this works with single-colored SVG icons. SVG icons are colored in the color scheme; with u-icon-original they keep the colors of the file (e.g. multicolored icons). PNG and JPG images always keep their colors.

For key figures, the selection applies to each individual number. Without a selection they only have a light surface on a dark background, and with u-card-none not even there.

Technically, the classes only set CSS variables (--card-bg, --card-border, --icon-bg …) that all cards read – see Custom CSS.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Search and SEO

The Creuva header can show a magnifying glass (field Search in the header, legend Search). It opens a search field above the page – also with Ctrl+K (⌘+K) or / – and sends the search terms to the selected search results page. Without the checkbox, no magnifying glass appears.

The results page holds the core module Website search. Creuva styles it with its own templates: a large search field, results as cards with the page path, highlighted search terms and an optional image, plus tips when nothing was found.

creuva:install --with-pages and the demos create the page „Suche“ (search; hidden, noindex, not in the search index) and activate the search in the header. In a demo definition of your own, header: { search: suche } (alias of the results page) is enough.

The page layout only adds the main section to the search index. Header, footer and copyright therefore don’t show up in the search results.

Note

Rebuild the search index once after an update: back end › System › Maintenance or

vendor/bin/contao-console contao:crawl

On all indexable pages, the Creuva layout outputs Open Graph tags and twitter:card: title, description, address (as in the canonical link, without tracking parameters), language (og:locale, e.g. de_DE) and a preview image of 1200 × 630 px.

For the preview image, the layout uses, in this order:

  1. on pages with a news reader, the image of the news item – the item then appears as og:type “article” with publication and modification date
  2. the first hero, image or other element with an image in the main section, also inside element groups
  3. the Preview image for social networks in the website root (metadata, field creuvaOgImage)

SVG files are skipped, WebP, AVIF and GIF are output as PNG, and JPEG stays JPEG. Smaller images are not upscaled.

Tip

Set a preview image for social networks in the website root. Then pages without an image also get a link preview.

Canonical

Website roots created by creuva:install have the canonical tag enabled. On existing websites, you enable it in the website root. The Styleguide is set to noindex,nofollow.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Update

You update Creuva like any other Contao bundle, using the Contao Manager or Composer:

composer update pdir/creuva-theme-bundle

Then run the database migrations – in the Contao Manager via Update database or on the console:

vendor/bin/contao-console contao:migrate

The migrations apply changes to the page layout, CSS styles and settings. Your content and the design settings of the website root are kept.

After the update

Depending on the update, these steps may be useful:

StepCommand
Add new CSS classes to the CSS Style Selectorvendor/bin/contao-console creuva:css-styles
Recreate the style guide with the new elementsvendor/bin/contao-console creuva:styleguide --root=1 --replace
Rebuild the search indexvendor/bin/contao-console contao:crawl

creuva:css-styles only adds missing categories, groups and styles. Changes you made in the back end are kept. The --root option specifies the ID of the website root that contains the style guide.

Warning

If you have overridden templates (see Custom CSS), compare them with the bundle’s templates after an update. Otherwise your copies will be missing new features.

You can find what changed in each version in the changelog on GitHub.

Nov 9, 2026 Spare Zeit bei allen Webprojekten mit pdir+

Issues

If you run into problems during installation or setup, or you notice a display error of the theme in a particular browser, please create a new ticket or write to us at support@pdir.dev.

Ticket overview Create new ticket

Note

Please check first whether your issue is already known.

Known limitations

# 1 Accessibility tools and animations of the Theme Components Bundle have no effect

The accessibility tools (contrast, font size) and the scroll animations of the Theme Components Bundle use the generatePage and parseFrontendTemplate hooks. Contao does not run these for page layouts of type “Modern”. The settings in the website root therefore have no effect in the Creuva layout.

Creuva comes with its own animations, see Animations.

# 2 Demo icons and downloads are missing on Windows

The demo files (SVG icons, PDFs) are loaded directly from files/creuva-demo/ and need the symlink public/files/creuva-demo (contao:symlinks). On Windows this fails without administrator rights or developer mode.

For local development, a directory junction helps:

mklink /J public\files\creuva-demo files\creuva-demo

creuva:install --reset and contao:symlinks cannot handle an existing junction and abort. Remove the junction beforehand with rmdir public\files\creuva-demo (this only deletes the link).