No notes defined.
<nav class="breadcrumbNav">
<div class="breadcrumbNav-item">
<a href="#" class="breadcrumbNav-link">Startpage</a>
</div>
<div class="breadcrumbNav-item">
<a href="#" class="breadcrumbNav-link">Page</a>
</div>
<div class="breadcrumbNav-item">
<span>Current Page</span>
</div>
</nav>
<header class="solutionsPageHeader has-backdrop has-figure has-product-mockup">
<div class="solutionsPageHeader-figure">
<div class="productMockup" data-device="tablet">
<div class="productMockup-figure">
<figure class="figure" style="">
<a href="../../#.html">
<img class="figure-image" src="../../images/productMockup/sample-screenshot-tablet.png" alt="Ich bin eine Produktabbildung" />
</a>
<figcaption class="figure-caption"><span>Selfies fixie next level trust fund jean shorts photo booth raw denim butcher mixtape ethical mustache.</span></figcaption>
</figure>
</div>
</div>
</div>
<div class="solutionsPageHeader-text">
<h1 class="solutionsPageHeader-heading">
<span class="kicker">
Thema der Seite
</span>
<strong class="solutionsPageHeader-title">Ich bin der Titel der Seite</strong>
</h1>
<div class="solutionsPageHeader-description">
<p>Selfies fixie next level trust fund jean shorts photo booth raw denim butcher mixtape ethical mustache.</p>
</div>
<div class="solutionsPageHeader-cta">
<a href="#" class="button"><span class="button-label">Klick mich</span></a>
</div>
</div>
</header>
{{#breadcrumbnav}}
{{render '@breadcrumbnav' (contextData '@pageheader' this) merge=true}}
{{/breadcrumbnav}}
<header class="solutionsPageHeader has-backdrop{{#if figure}} has-figure{{/if}}{{#if productmockup}} has-figure has-product-mockup{{/if}}{{#modifier}} {{.}}{{/modifier}}"{{#figure}} style="background-image: url({{src}});"{{/figure}}{{#theme}} data-theme="{{.}}"{{/theme}}>
{{#figure}}
<div class="solutionsPageHeader-figure">
{{render '@figure' (contextData '@pageheader' this) merge=true}}
</div>
{{/figure}}
{{#productmockup}}
<div class="solutionsPageHeader-figure">
{{render '@productmockup' (contextData '@pageheader' this) merge=true}}
</div>
{{/productmockup}}
<div class="solutionsPageHeader-text">
<h1 class="solutionsPageHeader-heading">
{{#kicker}}
{{render '@kicker' (contextData '@pageheader' this) merge=true}}
{{/kicker}}
{{#title}}<strong class="solutionsPageHeader-title">{{{.}}}</strong>{{/title}}
</h1>
{{#description}}
<div class="solutionsPageHeader-description">
{{{.}}}
</div>
{{/description}}
{{#metadatalist}}
<div class="solutionsPageHeader-metadata">
{{render '@metadatalist' (contextData '@pageheader' this) merge=true}}
</div>
{{/metadatalist}}
{{#if cta}}
<div class="solutionsPageHeader-cta">
{{#cta}}
{{render '@button--link' (contextData '@pageheader' this) merge=true}}
{{/cta}}
</div>
{{/if}}
</div>
</header>
{
"figure": null,
"breadcrumbnav": {
"items": [
{
"label": "Startpage",
"url": "#"
},
{
"label": "Page",
"url": "#"
},
{
"label": "Current Page",
"is-current": true
}
]
},
"kicker": {
"content": "Thema der Seite"
},
"title": "Ich bin der Titel der Seite",
"description": "<p>Selfies fixie next level trust fund jean shorts photo booth raw denim butcher mixtape ethical mustache.</p>\n",
"cta": {
"label": "Klick mich",
"url": "#"
},
"productmockup": {
"figure": {
"src": "/images/productMockup/sample-screenshot-tablet.png",
"alt": "Ich bin eine Produktabbildung",
"caption": "Selfies fixie next level trust fund jean shorts photo booth raw denim butcher mixtape ethical mustache.",
"link": {
"label": "Details anzeigen",
"url": "#"
}
},
"device": "tablet"
}
}
@import "_solutionsPageHeader.styles";
.solutionsPageHeader {
@extend %pageHeader;
padding-top: var(--sp-section);
padding-bottom: calc(var(--bp-large) + var(--bw-large));
z-index: 1;
background-size: 0; // Hide background-image used for mobile
&:has(&-figure),
&.has-figure {
flex-direction: row;
align-items: flex-end;
}
.breadcrumbNav:has(+ &) {
z-index: 1;
@include full-width-backdrop();
}
&-figure {
@extend %pageHeader-figure;
@include stack-spacing(0);
img {
border-radius: 0;
}
}
.productMockup {
@include stack-spacing(0);
.figure-caption {
@extend %visually-hidden;
}
}
&-text {
@extend %pageHeader-text;
@include stack-spacing(0);
@include box-padding(large);
background-color: $_glass_background-color;
backdrop-filter: $_glass_backdrop-filter;
@include border-radius();
> *:first-child {
margin-top: -.2em;
}
}
&-kicker {
@extend %pageHeader-kicker;
}
&-title {
@extend %pageHeader-title;
}
&-description {
@extend %pageHeader-description;
}
&-cta {
@extend %buttonGroup;
@include stack-spacing(large);
}
&:has(.productMockup),
&.has-product-mockup {
background-image: linear-gradient(7deg, rgba(white, 0) 15%, rgba(white, .3) 45%, rgba(white, .3) 55%, rgba(white, 0) 85%);
background-size: 0;
&::before {
background-color: get-theme-property(dark, background-color);
background-image: inherit;
}
}
&:has(.productMockup):not(.has-large-mockup),
&.has-product-mockup:not(.has-large-mockup) {
@include apply-theme(dark);
}
&:has(.productMockup):not(.has-large-mockup) &,
&.has-product-mockup:not(.has-large-mockup) & {
&-text {
padding: 0;
background-color: transparent;
backdrop-filter: none;
border-radius: 0;
color: $_text-color;
}
}
@include not-on-desktop(){
margin: 0 calc(-1 * var(--pp));
padding: var(--pp);
padding-bottom: calc(var(--pp) + var(--bw-large));
overflow: hidden;
&::before {
z-index: -1;
background-color: transparent;
height: 100%;
}
&::after {
$blur-radius: 10px;
content: "";
display: block;
width: calc(100vw + #{2 * $blur-radius});
height: calc(100% + #{2 * $blur-radius});
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%) scaleY(-1);
z-index: -2;
background: bottom center;
background-size: 100% 100%;
background-image: inherit;
filter: blur($blur-radius);
}
&-text {
@include box-padding();
}
&-figure {
$indent: 20%;
margin: calc(-1 * var(--pp));
margin-bottom: (-1 * $indent);
mask-image: linear-gradient(to top, transparent, white #{$indent});
.figure {
&-caption {
top: var(--bp-small);
bottom: auto;
}
}
}
&:not(:has(.productMockup)),
&:not(.has-product-mockup) {
.figure {
--ratio: 10 / 9;
}
}
&:has(.productMockup),
&.has-product-mockup {
&::after {
content: none;
}
}
&:has(.productMockup) &-figure,
&.has-product-mockup &-figure {
margin-bottom: 0;
mask-image: none;
}
&:has(.productMockup):not(.has-large-mockup) &,
&.has-product-mockup:not(.has-large-mockup) & {
&-text {
background: $_page-color;
padding: var(--sp-component) var(--pp);
margin: calc(-1 * var(--pp));
margin-top: 0;
position: relative;
z-index: 1;
> :first-child {
margin-top: 0;
}
}
}
.productMockup {
&-figure {
transform: scale(.8) translateY(3%);
}
&[data-device="tablet"] .productMockup-figure {
transform: scale(.75) translateY(1.5%);
}
}
&.has-large-mockup &-figure {
margin-bottom: 4%;
}
&.has-large-mockup {
.productMockup {
&-figure {
transform: scale(.91) translateY(8%);
}
&[data-device="tablet"] {
margin-bottom: -5%;
.productMockup-figure {
transform: scale(.8) translateY(0);
}
}
}
}
}
@include only-on-desktop(){
$mockup_width: .8;
$mockup_width--large: .725;
$min-height: 560px;
$min-height--large: 780px;
$min-height--large--tablet: 700px;
&-figure {
z-index: -1;
width: 100vw;
max-width: $_page_max-width;
transform: translateX(-50%);
}
&:has(&-figure),
&.has-figure {
min-height: 640px;
.breadcrumbNav {
width: 100%;
}
}
&:has(&-figure) &-text,
&.has-figure &-text {
@include box-padding(large);
width: get-columns-width(6);
}
//***** With mockup *****//
.productMockup {
width: (100% * $mockup_width);
margin-left: auto;
margin-right: auto;
transform: translateY(4%);
&[data-device="tablet"] {
transform: none;
.productMockup-figure {
transform: scale(.95);
}
}
}
&:has(.productMockup),
&.has-product-mockup {
min-height: 0;
&::after { // Spacer for proportional min height
content: "";
display: block;
width: 0;
padding-bottom: min(#{math.div($min-height, $_page_max-width) * 100vw}, math.div($min-height, $_page_content_max-width) * 100%);
margin-top: calc(-1 * var(--bp-large));
margin-bottom: calc(-1 * var(--bp-large));
}
}
&:has(.productMockup):not(.has-large-mockup),
&.has-product-mockup:not(.has-large-mockup) {
@include apply-theme(dark);
padding-top: var(--bp-large);
&::before {
background-size: 0;
}
}
&:has(.productMockup):not(.has-large-mockup) &,
&.has-product-mockup:not(.has-large-mockup) & {
&-text {
padding-right: calc(.5 * var(--gg));
}
&-figure {
display: flex;
align-items: center;
width: 50vw;
max-width: (.5 * $_page_max-width);
transform: translateX(0);
background-image: inherit;
background-size: 100%;
overflow: hidden;
}
}
//***** With large mockup *****//
&.has-large-mockup {
min-height: 0;
&::after { // Spacer for proportional min height
padding-bottom: min(#{math.div($min-height--large, $_page_max-width) * 100vw}, math.div($min-height--large, $_page_content_max-width) * 100%);
margin-top: calc(-1 * var(--sp-section));
}
&:has(.productMockup[data-device="tablet"])::after {
padding-bottom: min(#{math.div($min-height--large--tablet, $_page_max-width) * 100vw}, math.div($min-height--large--tablet, $_page_content_max-width) * 100%);
}
.productMockup {
width: (100% * $mockup_width--large);
margin-left: auto;
margin-right: 0;
&-figure {
position: relative;
transform: scale(.91) translate(7.5%, -6%);
}
&[data-device="tablet"] .productMockup-figure {
transform: scale(.75) translate(13%, -8%);
}
}
}
&.has-large-mockup & {
&-figure {
width: 100vw;
max-width: $_page_max-width;
transform: translateX(-50%);
}
&-description {
width: 100%;
}
}
}
}