This project is based on the SFCC "Storefront Reference Architecture" (SFRA).
In this project we use SASS to style elements. For further information please click
here.
Name HTML classes by BEM methodology (
.block__element--modifier ,
.block__subElement--modifier
). For further information please click
here.
Please try to avoid the usage of FLOATING <DIV>s and use FLEX instead. For further information please click
here.
We use the 'Border-Box' box model (box-sizing: border-box;) for all elements on this page. This means, that an element's speciefied width or height aren't affected by paddings and borders. For further information please click
here.
Try to use the grid system wherever it make sense to control the width of page components.
Keep the CSS/SASS clean, simple and modular. Please try to make components reusable in varying context.
We should strongly try to avoid duplicated styles. Please
always verify if the element/component you want to style (or parts of it) are not styled already, or if it's possible to reuse some elements. Please also have a look into the cartridges, because not every single element is part of the styleguide.
If you are not sure please feel always free to ask.
Please don't use classes which are used for styling to handle you JavaScript. Always use separate JS handlers named with a js- prefix.
We use relative values (like em or rem) to define most of the elements.
You can find a list of content examples here. Use them for custom content (Content assets and slots).
Breakpoints, Media Queries, Show-Hide
Breakpoints
Small micro screens (Max): 359 pixels
// Variable:
$bp-small-micro
Small mini screens (Min): 375 pixels
// Variable:
$bp-small-mini
Small interim screens (Min): 480 pixels
// Variable:
$bp-small-interim
Small screens (Max): 767 pixels
// Variable:
$bp-small-max
Medium screens (Min): 768 pixels
// Variable:
$bp-medium
Medium screens (Max): 991 pixels
// Variable:
$bp-medium-max
Large screens (Min): 992 pixels
// Variable:
$bp-large
Large screens (Max): 1199 pixels
// Variable:
$bp-large-max
Exclude from small viewports (0 - 767)
// Class
.u-hideSmall
// Mixin
hide-small
Exclude from medium viewports (768 - 991)
// Class
.u-hideMedium
// Mixin
hide-medium
Exclude from large viewports (992 - 1199)
// Class
.u-hideLarge
// Mixin
hide-large
Exclude from x-large viewports (1200+)
// Class
.u-hideXlarge
// Mixin
hide-xlarge
Hide elements from view (just visually hidden)
Hide in general
// Class
.u-visHidden
// Mixin
vis-hidden
Hide on small viewports (0 - 767)
// Class
.u-visHiddenSmall
// Mixin
vis-hidden-small
Hide on medium viewports (768 - 991)
// Class
.u-visHiddenMedium
// Mixin
vis-hidden-medium
Hide on large viewports (992 - 1199)
// Class
.u-visHiddenLarge
// Mixin
vis-hidden-large
Hide on x-large viewports (1200+)
// Class
.u-visHiddenXlarge
// Mixin
vis-hidden-xlarge
Force elements to be shown as block-element (display: block;)
Can e.g. be used to show container (as block-element), which are initially hidden.
Show in general
// Class
.u-show
// Mixin
show
Show on small viewports (0 - 767)
// Class
.u-showSmall
// Mixin
show-small
Show on medium viewports (768 - 991)
// Class
.u-showMedium
// Mixin
show-medium
Show on large viewports (992 - 1199)
// Class
.u-showLarge
// Mixin
show-large
Show on x-large viewports (1200+)
// Class
.u-showXlarge
// Mixin
show-xlarge
Force elements to be shown as inline-block-element (display: inline-block;)
Can e.g. be used to show container (as inline-block-element), which are initially hidden.
Show in general
// Class
.u-showInlineBlock
// Mixin
show-inline-block
Show on small viewports (0 - 767)
// Class
.u-showInlineBlockSmall
// Mixin
show-inline-block-small
Show on medium viewports (768 - 991)
// Class
.u-showInlineBlockMedium
// Mixin
show-inline-block-medium
Show on large viewports (992 - 1199)
// Class
.u-showInlineBlockLarge
// Mixin
show-inline-block-large
Show on x-large viewports (1200+)
// Class
.u-showInlineBlockXlarge
// Mixin
show-inline-block-xlarge
Force elements to be shown as inline-element (display: inline;)
Can e.g. be used to show container (as inline-element), which are initially hidden.
Show in general
// Class
.u-showInline
// Mixin
show-inline
Show on small viewports (0 - 767)
// Class
.u-showInlineSmall
// Mixin
show-inline-small
Show on medium viewports (768 - 991)
// Class
.u-showInlineMedium
// Mixin
show-inline-medium
Show on large viewports (992 - 1199)
// Class
.u-showInlineLarge
// Mixin
show-inline-large
Show on x-large viewports (1200+)
// Class
.u-showInlineXlarge
// Mixin
show-inline-xlarge
Force elements to be shown as flex-element (display: flex;)
Can e.g. be used to show container (as flex-element), which are initially hidden.
Show in general
// Class
.u-showFlex
// Mixin
show-flex
Show on small viewports (0 - 767)
// Class
.u-showFlexSmall
// Mixin
show-flex-small
Show on medium viewports (768 - 991)
// Class
.u-showFlexMedium
// Mixin
show-flex-medium
Show on large viewports (992 - 1199)
// Class
.u-showFlexLarge
// Mixin
show-flex-large
Show on x-large viewports (1200+)
// Class
.u-showFlexXlarge
// Mixin
show-flex-xlarge
Force elements to be shown as inline-flex-element (display: inline-flex;)
Can e.g. be used to show container (as inline-flex-element), which are initially hidden.
Show in general
// Class
.u-showInlineFlex
// Mixin
show-inline-flex
Show on small viewports (0 - 767)
// Class
.u-showInlineFlexSmall
// Mixin
show-inline-flex-small
Show on medium viewports (768 - 991)
// Class
.u-showInlineFlexMedium
// Mixin
show-inline-flex-medium
Show on large viewports (992 - 1199)
// Class
.u-showInlineFlexLarge
// Mixin
show-inline-flex-large
Show on x-large viewports (1200+)
// Class
.u-showInlineFlexXlarge
// Mixin
show-inline-flex-xlarge
Grid
Description
Grid systems are used for creating page layouts through a series of rows and columns that house your content.
We use a responsive, mobile first fluid grid system (based on
Susy 3) that appropriately scales up to 12 columns as the device or viewport size increases.
Please be aware that not every viewport size uses the same count of available columns:
Small viewports (0 - 767): 6 columns
Medium viewports (768 - 991): 8 columns
Large viewports (992+): 12 columns
There are NO global classes to define rows and columns, but SUSY mixins instead. Use them on your semantic classes to define a row or column wherever you need it:
Use the mixin
row()
to define an element as a grid row, which contains horizontal groups of columns.
Use the mixin
span(*)
to define an element as a grid column. Replace the
* by the count of column(s) you want to use as width. Overwrite this definition in media queries if neccessary.
Content should be placed within columns, and only columns may be immediate children of rows
For a detailed documentation and additional options please click
here.
Again, do not use any kind of global classes to define rows and columns in template files!
If more than the available columns are placed within a single row, each group of extra columns will, as one unit, wrap onto a new line.
To add an offset to your column you can additionally use the following mixins:
Use the mixin
push(*)
to add an offset to the left.
Use the mixin
pull(*)
to add an offset to the right.
Replace the
*
by the count of column(s) you want to use as offset.
The spacing between horizontal columns is predefined by 16 pixels (8 pixels on each side). The following mixins may be useful to create columns without these gutters:
Use the mixin
span-no-gutters(*) to define a column without any gutters.
Use the mixin
span-no-gutter-left(*) to define a column without a gutter on the left.
Use the mixin
span-no-gutter-right(*) to define a column without a gutter on the right.
Replace the
* by the count of column(s) you want to use as width.
Confused now? May the following examples enlighten you...
Example: Stacked-to-horizontal
Using a single set of columns, you can create a basic grid system that starts out stacked on small devices before becoming horizontal on large devices.
Use with components on white background, where top/bottom margins collapse into each other.
// Class
.pageSection
// Mixin
page-section
... ... ... ... ... [Content] ... ... ... ... ...
... ... ... ... ... [Content] ... ... ... ... ...
... ... ... ... ... [Content] ... ... ... ... ...
Inner Spacing
Use with components which has a background color and no margin on top & bottom, but inner padding instead. Paddings will not merge into each other.
// Class
.pageSectionInner
// Mixin
page-section-inner
Please note: This class/mixin is also combinable with
.pageSectionInner /
page-section-inner
to add outer spacing (margin) as seen above.
... ... ... ... ... [Content] ... ... ... ... ...
... ... ... ... ... [Content] ... ... ... ... ...
... ... ... ... ... [Content] ... ... ... ... ...
More Options
To remove the spacing at the top, just add class pageSection--noSpacingTop at the according page section.
To remove the spacing at the bottom, just add class pageSection--noSpacingbottom at the according page section.
To add a border at the top, just add class pageSection--borderTop at the according page section.
To add a border at the bottom, just add class pageSection--borderBottom at the according page section.
To change the background color to a slightly grey, just add class pageSection--backgroundGrey at the according page section. This class should normally only be used in combination with .pageSectionInner.
Colors
Brand specific
// Variable:
$color-primary
// Variable:
$color-primary-dark
Shades of Grey
// Variable:
$color-black
// Variable:
$color-grey-xdark
// Variable:
$color-grey-dark
// Variable:
$color-grey-medium
// Variable:
$color-grey-light
// Variable:
$color-grey-xlight
// Variable:
$color-white
Component specific
// Variable:
$color-error
// Variable:
$color-success
// Variable:
$color-bounty
// Variable:
$color-bounty-dark
// Variable:
$color-sale
// Variable:
$color-badge
// Variable:
$color-badge-new
// Variable:
$color-message-error
// Variable:
$color-message-warning
// Variable:
$color-message-success
// Variable:
$color-message-info
Icons
Module / Include
The following icons are defined using SVG's. Whenever an icon should be included, use one of the following methods, depending on the context:
Left aligned text - Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
// Class:
.text--left
Right aligned text - Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
// Class:
.text--right
Centered text - Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
// Class:
.text--center
Block text - Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
// Class:
.text--justify
Forms
Inputfields
Module
Please use
<isinputfield />
whereever possible to render a form row containing an inputfield.
Parameters
Mandatory
formfield
-
Defines the field to be rendered. Will be specified in one of the form-XML-files (mandatory state, error message, label, ... ).
type
-
Defines the type of the inputfield to be rendered. Possible options are text', 'textarea', 'password', 'email', 'number', 'tel', 'select', 'checkbox', 'radio' and 'hidden'.
Optional
uniqueid
-
Overwrites the automaticly set value of the id attribute by a custom value.
name
-
Overwrites the automaticly set value of the name attribute by a custom value.
fieldclass
-
Adds a custom class to the input field.
rowclass
-
Adds a custom class to the container which contains the input field.
secondarylabel
-
Adds a caption below the inputfield !. Doesn't works for checkboxes and radio buttons.
placeholder
-
Adds a placeholder text !. Works only for textfields and textareas.
tooltip
-
Adds a tooltip to the label text. !. Doesn't works for single checkboxes.
autocomplete
-
Adds the autocomplete attribute to the inputfield. (What is this?)
label
-
Uses a custom label instead of using the label defined in form definition
labelencoding
-
Can be used to set encoding to off when used to render markup in label
additionaloptions
-
An array of addional option (array of string or array of object with value and label properties)
hidelabel
-
If set to true the label will be hidden !. Doesn't works on checkboxes. On radios it will remove the fieldset-legend.
disabled
-
If set to true the field will be disabled.
Styling Options
Large Inputs
Add
inputText--large
via parameter
rowclass
to get a large textinput
Add
inputSelect--large
via parameter
rowclass
to get a large select
Please note that this will only affect textfields and selects
Small Inputs
Add
inputText--small
via parameter
rowclass
to get a small textinput
Add
inputSelect--small
via parameter
rowclass
to get a small select
Please note that this will only affect textfields and selects
Inline Radio buttons
Add
inputGroupRadio--gridStyle
via parameter
rowclass
to align radios vertically with default grid-gutter-spacing. Use SUSY grid mixins to control the width of the radio labels.
By default the label is placed above the input (textfields, textareas & selects). You can control up from which viewport-width it should be placed inline (left to the input), by assigning the following classes via the parameter rowclass.
Error: Vestibulum id ligula porta felis euismod semper.
Warning
Warning: Vestibulum id ligula porta felis euismod semper.
Success
Success: Vestibulum id ligula porta felis euismod semper.
Info
Info: Vestibulum id ligula porta felis euismod semper.
Linking
If you want to link pages in content assets, please use the following snippets as values inside the href="" attribute of the <a> tag, regarding on the target.
Product Pages
$url('Product-Show', 'pid', '[Product ID]')$
To preselect filters on an abo pre PDP page, append them after the hash. Medium can be omitted if there is only a single choice.
To filter Products on Category pages, append prefnX and prefvX parameters to the URL after the question mark (?). X should start with 1 and increase one by one.
prefn defines the Attribute ID, e.g. medium.
prefv defines the Attribute Value, e.g. digital or print. It can also have multiple selection with the | between the values.
If the customer is not logged in, he/ she will be redirected to the login page.
Emails
mailto:me@xyz.de
Phone Numbers
tel:123456789
Pictures
Tag
For images please use the picture tag, which gives you more flexibility in specifying image resources than a img tag.
Instead of having one image that is scaled up or down based on the viewport width, multiple images can be designed to more nicely fill the browser viewport.
The picture element holds two different tags: one or more source tags and one img tag.
The source element has the following attributes:
srcset (required) - defines the URL of the image to show
media - accepts any valid media query that would normally be defined in a CSS
sizes - defines a single width descriptor, a single media query with width descriptor, or a comma-delimited list of media queries with a width descriptor
type - defines the MIME type
The browser will use the attribute values to load the most appropriate image. The browser will use the first source element with a matching hint and ignore any following source tags.
The img element is required as the last child tag of the picture declaration block. The img element is used to provide backward compatibility for browsers that do not support the picture element, or if none of the source tags matched.
Please use
<isimagemodule />
to render a picture tag based on a single category- or product-image. The module accepts a couple of parameters:
imagemodel - Defines the base image source
viewtype - Defines the viewtype which can be configured in \app_core\cartridge\config\typeImagesConfig.json
pictureclass - Add a HTML class set on the picture tag
imageclass - Add a HTML class set on the img tag
Viewport depending sizes of images sources (assigned to varying viewtypes) can be configured in \app_core\cartridge\config\disConfiguration.json
The following attributes can be added/ edited:
Defines the viewport size where the parameters below take effect by the following parameters:
sm - Viewports up to 767px
md - Viewports up to 991px
lg - Viewports up to 1199px
xl - Viewports larger than 1200px
format - Defines the created image file format. Possible values are 'jpg' and 'png'
quality - Defines the compression rate. Use only in combination with format 'jpg'
scaleMode - Defines how the image will be handled when scaled to the wished size. Possible values are 'fit' and 'cut'
scaleWidth - Defines the with of the created image as px-value
scaleHeight - Defines the height of the created image as px-value
template - Template Path - Defines the template which will be rendered inside the modal.
or
aid - Content Asset ID - Defines the asset which will be rendered inside the modal.
triggerclass - String value following the naming conventions of HTML classes - Defines the trigger class to show the modal.
Optional
closebutton - true | false - Defines if the modal has a close-button
* Default values are marked by bold text
Example
This is a modal
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
All Carousels/Slider used in the storefront utilize a custom library. To build a carousel the following basic setup can be used. Options and adjustments to certain use cases are described below.
Accordion and Toggle functionality utilizes a custom library. To build an accordion the following basic setup can be used. Options and adjustments to certain use cases are described below.
[JSONConfigID] - A JSON string with all necessary configuration parameters (usable within the data attribute accordionconfig)
toggleBehaviour - accordion | independent | group - Defines how accordion items will toggle
activeOnInit - none | first | last - Defines items that should be active (visible) on load. Alternatively the parameter can be an array of numbers which specifies the indexes of the items that should be active on load
* Default values are marked by bold text
Viewport dependent Config
It's possible to generate a configuration for each viewport by simply extending the accordionconfig JSON. In addition to the 'default' configuration you can overwrite these for a certain viewport, see following example:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Accordion Section 02
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Accordion Section 03
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Accordion Section 04
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Accordion Section 05
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Tab triggers use the class js-tabber-trigger. They need two data-attributes:
data-tabber-class - Defines a class prefix for tab triggers and tab content sections
data-tabber-content - Refers to the ID of the attached tab content
data-tabber-preselectid - Refers to the URL Parameter (activetab) to preselect the tab after page load. "URL?activetab=NAME"
So the tab trigger needs an additional class <tabber-class>__tabBtn.
The tab content needs the class <tabber-class>__content.
Additionally there is the option to toggle the visibility of other elements.
These elements also need the classes <tabber-class>__content and a class <tabber-content>-additionalContent.
Example
[Tab 01 Content] Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
[Tab 02 Content] Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
[Tab 03 Content] Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
[Tab 04 Content] Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
[Tab 05 Content] Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
format
- small | medium | mediumInline | wide - Defines, which type of the category tile will be rendered
Optional
linked
- true | false - Defines if the whole teaser is clickable. If set to 'false' only the button triggers the link.
reversed
- true | false - Switch positioning of text and image
highlighted
- true | false - Highlights the teaser by adding a thick border in primary color
showButton
- true | false - If set to 'false' the CTA button will be removed
secondaryButton
- true | false - If set to 'true' the primary button will be replaced by a secondary button
noBorder
- true | false - If set to 'true' the border will be removed and the spacing will be adjusted. Doesn't works if the whole teaser is clickable.
noIndent
- true | false - If set to 'true' the indent on viewports up from 1200px will be removed. Doesn't works if the teaser has still a border and formats small and medium.
buttonText
- String Value - Overwrite the standard button text (Default: 'Anzeigen')
headingText
- String Value - Overwrite the standard heading text (Default: 'Category Name')
format
- small | medium | mediumInline | wide - Defines, which type of the category tiles will be used in the carousel
Optional
linked
- true | false - Defines if the whole teaser is clickable. If set to 'false' only the button triggers the link.
reversed
- true | false - Switch positioning of text and image
highlighted
- true | false - Highlights the teaser by adding a thick border in primary color
showButton
- true | false - If set to 'false' the CTA button will be removed
secondaryButton
- true | false - If set to 'true' the primary button will be replaced by a secondary button
noBorder
- true | false - If set to 'true' the border will be removed and the spacing will be adjusted. Doesn't works if the whole teaser is clickable.
noIndent
- true | false - If set to 'true' the indent on viewports up from 1200px will be removed. Doesn't works if the teaser has still a border and formats small and medium.
buttonText
- String Value - Overwrite the standard button text (Default: 'Anzeigen')
pids
- Product ID's - Defines the products shown in the carousel (separated by a '+')
cgid
- Category ID - Defines the products from the given category
brand
- Brand name - Defines the products from the given brand
Optional
format
- normal | teaserWide - Defines the used format of the product tiles in the carousel
Optional - only for cgid or brand
maxProducts
- a number of maximum displayed products - hard limit is 8 (also default)
Optional - Only for format teaserWide
reversed
- true | false - Switch positioning of text and image
highlighted
- true | false - Highlights the teaser by adding a thick border in primary color
noBorder
- true | false - If set to 'true' the border will be removed and the spacing will be adjusted. Doesn't works if the whole teaser is clickable.
noIndent
- true | false - If set to 'true' the indent on viewports up from 1200px will be removed. Doesn't works if the teaser has still a border.
linked
- true | false - Defines if the whole teaser is clickable. If set to 'false' only the button triggers the link.
showButton
- true | false - If set to 'false' the CTA button will be removed
secondaryButton
- true | false - If set to 'true' the primary button will be replaced by a secondary button
image
- true | false - If set to 'false' the image will not be shown
mediaPreview
- true | false - If set to 'false' the media preview will not be shown
productName
- true | false - If set to 'false' the product name will not be shown
badges
- true | false - If set to 'false' the badges will not be shown
offerUsp
- true | false - If set to 'false' the offer usp list will not be shown
price
- true | false - If set to 'false' the price will not be shown
pid
- Product ID - Defines the product shown in the component
Optional
format
- tile | teaserWide | teaserSmall - Defines, which type of the product tile to be used in the component
linked
- true | false - Defines if the whole teaser is clickable. If set to 'false' only the button triggers the link.
reversed
- true | false - Switch positioning of text and image
highlighted
- true | false - Highlights the teaser by adding a thick border in primary color
showButton
- true | false - If set to 'false' the CTA button will be removed
secondaryButton
- true | false - If set to 'true' the primary button will be replaced by a secondary button
noBorder
- true | false - If set to 'true' the border will be removed and the spacing will be adjusted. Doesn't works if the whole teaser is clickable.
noIndent
- true | false - If set to 'true' the indent on viewports up from 1200px will be removed. Doesn't works if the teaser has still a border and formats small and medium.
buttonText
- String Value - Overwrite the standard button text (Default: 'abo.master.toabo')
contentLinkId
- String Value - The Content Asset Id. The button in the Component will be redirected to this Content Asset page.
image
- true | false - If set to 'false' the image will not be shown
mediaPreview
- true | false - If set to 'false' the media preview will not be shown
productName
- true | false - If set to 'false' the product name will not be shown
badges
- true | false - If set to 'false' the badges will not be shown
offerUsp
- true | false - If set to 'false' the offer usp list will not be shown
price
- true | false - If set to 'false' the price will not be shown
headingText
- String Value - Overwrite the standard heading text (Default: 'Product Name')
contentText
- String Value - Add a new text (Default: empty, no text)