Skip to content

Configuration

The Theme Builder groups configuration into multiple areas. This page is the full field reference; for a guided tour see Getting Started.

Metadata

FieldTypeRequiredDefaultDescription
technicalNameStringyesPascalCase, regex ^[A-Z][A-Za-z0-9]+$. Determines plugin class + directory.
labelStringyesTheme display name in the admin.
authorStringyesMaps to Composer vendor slug; fallback custom if slug is ambiguous.
guppyVersionStringyes^2.2Composer constraint for dmf/sw6-guppy-theme.
description.de-DEStringyesGerman plugin description.
description.en-GBStringyesEnglish plugin description.

Theme variables (~176 fields)

Split into 5 sub-tabs:

General

Brand colors (primary, secondary), borders, backgrounds, system status (success/info/warning/danger), greyscale palette.

Typography

Font families (body, headlines), sizes (h1–h6, display 1–3), line heights, text color, headlines color, link colors.

UI Components

  • Button colors/sizes
  • Input borders
  • Badge colors (new/top-seller/discount, with outline toggles)
  • Alert backgrounds + text colors

Layout

  • Container widths (default/fluid/narrow/wide/extra-wide)
  • Section padding (desktop/tablet/mobile)
  • Header/navigation/footer variants
  • Product card configuration
  • USP bar (toggle, colors, texts, social links)

Advanced

Detail page buybox styling, product images, sliders, delivery status colors, order item status colors, block padding.

Bi-directional Bootstrap sync

Fields marked guppyManagedBy: 'sw-*' (e.g. font-family-basesw-font-family-base) are read-only in the Bootstrap editor and reference the Guppy counterpart.

Bootstrap variables (~80 fields)

Direct access to Bootstrap 5 variables, grouped by category:

CategoryExamples
Colorsprimary, secondary, success, info, warning, danger, light, dark, body-color
Typographyfont-family-base, font-family-sans-serif, font-size-base, font-weight-bold, line-height-base
Spacingspacer, grid-gutter-width
Bordersborder-radius (default, sm, lg, xl, pill), border-width
Shadowsbox-shadow (default, sm, lg), enable-shadows toggle
LayoutContainer widths, enable-negative-margins, grid breakpoints
ComponentsButton/input/card radii, link decoration, pagination, badge sizing
Feature flagsenable-rounded and other enable-* toggles

Validation

The builder validates Bootstrap field names against the known Bootstrap 5 variables. Typos are flagged in the UI.

Assets

Five slots, two of them required:

SlotRequiredFormatRecommended sizeMaxTarget in plugin
pluginIconyesPNG512 × 5122 MBsrc/Resources/config/plugin.png
themePreviewyesJPEG/PNG/WebP1280 × 7205 MBsrc/Resources/app/storefront/dist/assets/theme-preview.jpg
logonoSVG/PNG/JPEG/WebP320 × 1203 MBpopulates sw-logo-desktop, sw-logo-tablet, sw-logo-mobile
faviconnoICO/PNG64 × 641 MBpopulates sw-logo-favicon
shareImagenoSVG/PNG/JPEG/WebP512 × 5123 MBpopulates sw-logo-share

Fonts

Upload .woff and .woff2 files. One directory per family is generated:

text
src/Resources/app/storefront/dist/assets/font/{family-slug}/{filename.woff2}

The @font-face rules end up in src/Resources/app/storefront/src/scss/base/_fonts.scss. Uploaded families become selectable in the typography fields.

Path resolution

@font-face paths use $app-css-relative-asset-path so fonts load correctly after theme:compile.

Custom SCSS variables

Name-value pairs appended to abstract/variables/custom.scss with !default:

scss
$custom-spacer: 12px !default;
$brand-accent: #f49927 !default;

Adopted by the child theme's SCSS and overridable downstream.

Snippets

Translation keys for storefront text, in de-DE and en-GB. Land in:

text
src/Resources/snippet/de_DE/storefront.de-DE.json
src/Resources/snippet/en_GB/storefront.en-GB.json

Spacer map

Custom $spacers entries:

FieldDescription
Keynumeric or named map key
ValueCSS value (e.g. 24px, 1.5rem)

Icon mappings

Shopware icon name ↔ Phosphor icon configuration:

FieldDescription
Shopware nameStandard Shopware icon identifier
Phosphor iconTarget icon
Weightthin, light, regular, bold, fill, duotone
PackPhosphor pack

Validation rules

RuleEffect
technicalName must match ^[A-Z][A-Za-z0-9]+$Required, no export otherwise.
technicalName should end with ThemeWarning, not blocked.
Required assets (pluginIcon, themePreview) must be presentRequired, no export otherwise.
Asset dimensions checked against recommendationsInfo hint, not blocked.
Bootstrap variable names validated against the Bootstrap 5 schemaError in the UI.
Snapshot schema version migrated on importAuto-migration v0–v7 → v8.

Snapshot

.guppy-builder.json contains:

  • All 176 theme variable values
  • All Bootstrap variables
  • Asset metadata + base64 contents
  • Font files (base64)
  • Custom SCSS variables, snippets, spacer map, icon mappings
  • Schema version (currently v8)

Re-import: load an existing snapshot via Load Snapshot in the builder. The form is fully restored.