Hero

<figure class="o-hero ">
    <img src="/assets/images/hero.jpg" alt="hero" class="o-hero__image">
    <figcaption class="o-hero__caption">
        <div class="wrapper">
            <div class="o-hero__text">

                <a href="#" class="o-hero__link">
                    <h1 class="supersize">Meningsfull tid i rapporten Svenskarna och internet 2019</h1>
                </a>
                <p class="o-hero__paragraph"></p>
                <div class="o-hero__tags">
                    <a href="" class="a-tag a-tag--light">
                        <span class="a-tag__text">internet</span>
                    </a>
                </div>
            </div>
        </div>
    </figcaption>
</figure>
{{#if limited_width}}
<div class="wrapper">
	<div class="row">
		<div class="grid">
{{/if}}
<figure class="o-hero{{#if no_image_class}} {{no_image_class}}{{/if}}{{#if has_radius}} o-hero--border-radius{{/if}}{{#if has_video}} {{video_class}}{{/if}} {{#if is_event}}o-hero--event {{/if}}{{#if geometric_figures}} o-hero--geometric {{/if}}{{#if background_color}} {{background_color}} {{/if}}">
	{{#if has_image}}<img src="{{hero_image}}" alt="hero" class="o-hero__image">{{/if}}
	{{#if has_video}}
		{{> @icon-overlay overlay_icon="play" youtube="3RVcnx-hOk8"}}

		<div class="u-visuallyhidden">
			<a href="#" class="a-button" data-youtube-play>
				<span class="a-button__text">Play video</span>
			</a>
			<a href="#" class="a-button" data-youtube-stop>
				<span class="a-button__text">Stop video</span>
			</a>
		</div>
	{{else if is_event}}
		<figcaption class="o-hero__content">
			<div class="wrapper">
				<p class="o-hero__text">{{event_text}} {{#if city}}<strong>{{city}}</strong>{{/if}}</p>
				<h1 class="supersize">{{event_title}}</h1>
				<p class="o-hero__text display-flex flex-wrap">
					<span class="meta u-m-y-0 u-p-y-0 u-p-r-1">{{time}}</span>
					<span class="o-hero__spacer">|</span>
					<span>Arrangör: <a href="#">{{organizer}}
						<svg class="icon o-mega-menu__link__icon">
							<use xlink:href="#icon-external-link"></use>
						</svg></a>
					</span>
				</p>
					{{#if has_button}}
						{{> @button el="a" modifiers="lemon a-button--inline u-m-y-2 u-m-r-2"}}
					{{/if}}
					{{> @share modifiers="inline"}}
			</div>
	</figcaption>
	{{else}}
	<figcaption class="o-hero__caption">
		<div class="wrapper">
			<div class="o-hero__text">
				{{#if has_pre_heading}}<span class="u-m-b-1 u-display-block">{{pre_heading}}</span>{{/if}}
				{{#if has_link}}<a href="#" class="o-hero__link">{{/if}}
					<h1 class="supersize">{{heading}}</h1>
				{{#if has_link}}</a>{{/if}}
				{{#if has_text}}<p class="o-hero__paragraph">{{text}}</p>{{/if}}
				{{#if has_tags}}
					<div class="o-hero__tags">
						{{> @tag is_light=true text="internet"}}
					</div>
				{{else if has_buttons}}
					<div class="o-hero__buttons">
						<div>{{> @button el="a" modifiers="lemon a-button--inline" text="Stockholm"}}</div>
						<div>{{> @button el="a" modifiers="lemon a-button--inline" text="Linköping"}}</div>
						<div>{{> @button el="a" modifiers="lemon a-button--inline" text="Malmö"}}</div>
					</div>
				{{/if}}
				{{#if has_button}}
					{{> @button el="a" text="Anmäl intresse" modifiers="lemon a-button--inline"}}
				{{/if}}
			</div>
		</div>
	</figcaption>
	{{/if}}
</figure>
{{#if limited_width}}
		</div>
	</div>
</div>
{{/if}}
{
  "heading": "Meningsfull tid i rapporten Svenskarna och internet 2019",
  "has_image": true,
  "has_radius": false,
  "limited_width": false,
  "has_buttons": false,
  "has_tags": true,
  "hero_image": "/assets/images/hero.jpg",
  "has_link": true,
  "has_pre_heading": false,
  "has_text": true
}
  • Content:
    @charset "UTF-8";
    @use '../../configurations/mixins' as mixin;
    @use '../../configurations/extends';
    @use '../../configurations/typography/typography';
    @use '../../configurations/bem' as bem;
    @use '../../configurations/config' as config;
    @use '../../configurations/variables' as var;
    @use '../../configurations/functions' as func;
    @use '../../configurations/colors/colors' as colors;
    @use '../../configurations/colors/colors-functions' as colorFunc;
    @use '../../vendor/grid/breakpoints' as breakpoint;
    @use '../../vendor/grid/grid' as grid;
    @use '../../vendor/baseline/plumber' as plumber;
    
    @include mixin.organism(hero) {
    	@include bem.m(bbk) {
    		background-color: colors.$color-ocean-dark;
    		display: flex;
    		justify-content: center;
    		align-items: center;
    		flex-direction: column;
    		position: relative;
    		overflow: visible;
    
    		@include bem.e(top) {
    			display: flex;
    			flex-direction: row;
    			justify-content: center;
    			align-items: center;
    			position: relative;
    			padding-top: func.rhythm(2);
    			padding-bottom: func.rhythm(2);
    			max-width: 100%;
    
    			@include breakpoint.bp-up(md) {
    				padding-top: func.rhythm(4);
    				padding-bottom: func.rhythm(4);
    			}
    
    			@include breakpoint.bp-up(lg) {
    				max-width: 900px;
    			}
    
    			@include breakpoint.bp-up(xl) {
    				padding-top: func.rhythm(8);
    				padding-bottom: func.rhythm(8);
    			}
    
    			@include breakpoint.bp-up(xxl) {
    				padding-top: func.rhythm(10);
    				padding-bottom: func.rhythm(10);
    			}
    		}
    
    		@include bem.e(button) {
    			position: absolute;
    			bottom: 0;
    			transform: translateY(50%);
    
    			@extend %box-shadow;
    		}
    
    		@include bem.e(text) {
    			color: colors.$color-snow;
    			margin-left: func.rhythm(4);
    			transition: opacity 0.25s ease;
    			overflow: hidden;
    			opacity: 1;
    
    			&.is-minimized {
    				opacity: 0;
    			}
    
    			@include breakpoint.bp-up(md) {
    				max-width: 60%;
    			}
    
    			@include breakpoint.bp-up(lg) {
    				max-width: 60%;
    			}
    		}
    	}
    
    	@include bem.e(gauge) {
    		width: func.to_rem(162px);
    		height: func.to_rem(162px);
    		flex-shrink: 0;
    		transform: scale(.7) translate3d(0,0,0);
    		position: relative;
    
    
    		@include breakpoint.bp-up(md) {
    			position: absolute;
    			left: 0;
    			top:37%;
    			transition: left 0.25s ease;
    			transform: scale(.7) translate3d(0,-50%,0);
    
    			&.is-testing {
    				left: 50%;
    				transition: scale 0.25s ease, transform 0.25s, left 0.25s ease;
    				transform: scale(.7) translate3d(-70%,-50%,0);
    			}
    		}
    
    		@include breakpoint.bp-up(xl) {
    			top: 50%;
    			transform: scale(1) translate3d(0,-50%,0);
    
    			&.is-testing {
    				left: 50%;
    				transition: scale 0.25s ease, transform 0.25s, left 0.25s ease;
    				transform: translate3d(-50%,-50%,0);
    			}
    		}
    
    	}
    
    	@include bem.e(icon-gauge) {
    		fill: colors.$color-snow;
    		width: 100%;
    		height: 100%;
    	}
    
    	@include bem.e(icon-pointer) {
    		position: absolute;
    		top: 50%;
    		left: 50%;
    		width: func.rhythm(2);
    		height: func.rhythm(2);
    		margin-top: -#{func.rhythm(1)};
    		margin-left: -#{func.rhythm(1)};
    		transform: rotate(0deg);
    		transition: transform .8s;
    
    		&.is-testing {
    			transform: rotate(188deg);
    		}
    
    		&::before {
    			content: '';
    			display: block;
    			width: 46px;
    			height: 43px;
    			background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMjcuNyAxOC4zQzIzLjQgMjIuMiAwIDI5LjUgMCAyOS41UzkuNCA2LjggMTMuNiAzYzQuMi0zLjkgMTAuOC0zLjYgMTQuNy43IDMuOSA0LjIgMy42IDEwLjctLjYgMTQuNiIgZmlsbD0iIzMyODRCRiIvPjxwYXRoIGQ9Ik0yNS40IDExLjRjLS4xIDIuOC0yLjUgNC45LTUuMyA0LjgtMi44LS4xLTQuOS0yLjUtNC44LTUuMy4xLTIuOCAyLjUtNC45IDUuMy00LjggMi43LjIgNC45IDIuNSA0LjggNS4zIiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTI1LjQgMTEuNGMtLjEgMi44LTIuNSA0LjktNS4zIDQuOC0yLjgtLjEtNC45LTIuNS00LjgtNS4zLjEtMi44IDIuNS00LjkgNS4zLTQuOCAyLjcuMiA0LjkgMi41IDQuOCA1LjMiIGZpbGw9IiNGRkYiLz48L2c+PC9zdmc+Cg==');
    			background-repeat: no-repeat;
    			background-size: 46px 43px;
    			position: absolute;
    			top: -#{func.to_rem(7px)};
    			left: -#{func.to_rem(20px)};
    		}
    	}
    }
    
  • URL: /components/raw/hero/_hero--bbk.scss
  • Filesystem Path: src/organisms/hero/_hero--bbk.scss
  • Size: 4 KB
  • Content:
    @charset "UTF-8";
    @use '../../configurations/mixins' as mixin;
    @use '../../configurations/bem' as bem;
    @use '../../configurations/config' as config;
    @use '../../configurations/variables' as var;
    @use '../../configurations/functions' as func;
    @use '../../configurations/colors/colors' as colors;
    @use '../../configurations/colors/colors-functions' as colorFunc;
    @use '../../vendor/grid/breakpoints' as breakpoint;
    @use '../../vendor/grid/grid' as grid;
    @use '../../vendor/baseline/plumber' as plumber;
    
    @include mixin.organism(hero) {
    	@include bem.m(dynamic-headline) {
    		display: flex;
    		flex-direction: column;
    		justify-content: space-around;
    		overflow: visible;
    		border-radius: 0;
    
    		@include bem.e(image) {
    			max-height: none;
    			min-height: 0;
    			height: 100%;
    			position: absolute;
    			top: 0;
    			left: 0;
    			right: 0;
    			bottom: 0;
    			z-index: -1;
    
    			@include breakpoint.bp-up(xxl) {
    				object-position: 50% 50%;
    			}
    		}
    
    		@include bem.e(caption) {
    			display: flex;
    			flex-direction: column;
    			align-items: flex-start;
    			padding: func.rhythm(3);
    			background-image: none;
    			position: static;
    			z-index: auto;
    			color: colors.$color-snow;
    
    			> h1 {
    				--minFontSize: 22px;
    				--maxFontSize: 200px;
    				--scaler: 10vw;
    
    				font-size: clamp( var(--minFontSize), var(--scaler), var(--maxFontSize) );
    				font-family: var.$font-family-bold;
    				margin: 0;
    				padding: 0;
    				line-height: 1.2;
    
    				@include breakpoint.bp-up(md) {
    					line-height: 1.1;
    				}
    
    				@include breakpoint.bp-up(lg) {
    					line-height: 1;
    				}
    			}
    
    			@include breakpoint.bp-up(sm-xs) {
    				padding: func.rhythm(4);
    			}
    
    			@include breakpoint.bp-up(sm) {
    				padding: func.rhythm(5);
    			}
    
    			@include breakpoint.bp-up(md) {
    				padding: func.rhythm(7);
    			}
    
    			@include breakpoint.bp-up(lg) {
    				padding: func.rhythm(8);
    			}
    
    			@include breakpoint.bp-up(xl) {
    				padding: func.rhythm(10);
    			}
    
    			&::before {
    				display: block;
    				content: attr(data-meta);
    				font-family: var.$font-family-mono;
    				font-size: 14px !important;
    				text-transform: uppercase;
    				text-shadow: 0 0 func.to_rem(5px) colors.$color-black;
    
    				@include breakpoint.bp-up(sm-xs) {
    					margin-left: func.rhythm(0.5);
    				}
    
    				@include breakpoint.bp-up(md) {
    					font-size: 18px !important;
    					margin-left: func.rhythm(1);
    				}
    
    				@include breakpoint.bp-up(lg) {
    					font-size: 20px !important;
    				}
    
    				@include breakpoint.bp-up(xl) {
    					font-size: 22px !important;
    				}
    
    				@include breakpoint.bp-up(xxl) {
    					font-size: 24px !important;
    				}
    			}
    		}
    
    		@include bem.e(button-continue) {
    			position: relative;
    			z-index: func.z_index(middleground);
    			align-self: center;
    			transform: scale(1) translateY(0);
    			animation: pulse infinite 1.5s ease;
    			will-change: transform;
    			top: func.to_rem(15px);
    
    			@include breakpoint.bp-up(sm) {
    				animation: pulse2 infinite 1.5s ease;
    				top: func.to_rem(20px);
    			}
    
    			@include breakpoint.bp-up(md) {
    				top: func.to_rem(40px);
    			}
    
    			@include breakpoint.bp-up(xl) {
    				animation: pulse3 infinite 1.5s ease;
    				top: func.to_rem(50px);
    			}
    		}
    
    		@keyframes pulse {
    			0% {
    				transform: translateY(0);
    			}
    
    			50% {
    				transform: translateY(-25%);
    			}
    
    			100% {
    				transform: translateY(0);
    			}
    		}
    
    		@keyframes pulse2 {
    			0% {
    				transform: translateY(0) scale(2);
    			}
    
    			50% {
    				transform: translateY(-25%) scale(2);
    			}
    
    			100% {
    				transform: translateY(0) scale(2);
    			}
    		}
    
    		@keyframes pulse3 {
    			0% {
    				transform: translateY(0) scale(3);
    			}
    
    			50% {
    				transform: translateY(-25%) scale(3);
    			}
    
    			100% {
    				transform: translateY(0) scale(3);
    			}
    		}
    
    
    	}
    }
    
  • URL: /components/raw/hero/_hero--dynamic-headline.scss
  • Filesystem Path: src/organisms/hero/_hero--dynamic-headline.scss
  • Size: 3.7 KB
  • Content:
    @charset "UTF-8";
    @use '../../configurations/mixins' as mixin;
    @use '../../configurations/bem' as bem;
    @use '../../configurations/typography/typography';
    @use '../../configurations/config' as config;
    @use '../../configurations/variables' as var;
    @use '../../configurations/functions' as func;
    @use '../../configurations/colors/colors' as colors;
    @use '../../configurations/colors/colors-functions' as colorFunc;
    @use '../../vendor/grid/breakpoints' as breakpoint;
    @use '../../vendor/grid/grid' as grid;
    @use '../../vendor/baseline/plumber' as plumber;
    
    @include mixin.organism(hero) {
    	position: relative;
    	z-index: func.z_index(background);
    	margin-bottom: func.rhythm(4);
    	-webkit-font-smoothing: antialiased;
    	-moz-osx-font-smoothing: grayscale;
    
    	.supersize {
    		+ [class*='buttons'] {
    			margin-top: func.rhythm(2);
    
    			@include breakpoint.bp-up(lg) {
    				margin-top: func.rhythm(3);
    			}
    		}
    	}
    
    	@include breakpoint.bp-up(sm) {
    		overflow: hidden;
    		background-color: transparent;
    	}
    
    	@include bem.e(image) {
    		display: block;
    		object-fit: cover;
    		object-position: 50% 25%;
    		width: 100%;
    
    		@include breakpoint.bp-up(sm) {
    			min-height: func.to_rem(500px);
    			max-height: 50vh;
    		}
    	}
    
    	@include bem.e(caption) {
    		display: flex;
    		align-items: flex-end;
    		padding: func.rhythm(2) 0;
    		background-image: none;
    
    		@include breakpoint.bp-up(sm) {
    			position: absolute;
    			z-index: func.z_index(middlegroundImportant);
    			top: 0;
    			right: 0;
    			bottom: 0;
    			left: 0;
    			padding: func.rhythm(4);
    			background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(colors.$color-black, 0) 35%, rgba(colors.$color-black, 1) 100%);
    			text-shadow: config.$text-shadow;
    		}
    
    		@include breakpoint.bp-up(md) {
    			padding: func.rhythm(6);
    		}
    
    		@include breakpoint.bp-up(lg) {
    			padding: func.rhythm(8);
    		}
    	}
    
    	@include bem.e(paragraph) {
    		color: colors.$color-cyberspace;
    
    		@include plumber.plumber(
    			$font-size: 2.5,
    			$line-height: 3
    		);
    
    		@include breakpoint.bp-up(sm) {
    			color: colors.$color-snow;
    		}
    	}
    
    	@include bem.e(tags) {
    		margin-top: func.rhythm(2);
    
    		@include breakpoint.bp-up(lg) {
    			margin-top: func.rhythm(3);
    		}
    
    		@include breakpoint.bp-down(sm-xs) {
    			[class*="tag--light"] {
    				[class*="tag__text"] {
    					color: colors.$color-cyberspace;
    				}
    			}
    		}
    	}
    
    	@include bem.e(buttons) {
    		display: flex;
    		flex-direction: row;
    		flex-wrap: wrap;
    		margin: -#{func.rhythm(1)} 0 0 -#{func.rhythm(3)};
    
    		@include mixin.atom(button) {
    			margin: func.rhythm(1) 0 0 func.rhythm(3);
    		}
    
    		@include breakpoint.bp-up(sm) {
    			flex-direction: row;
    		}
    	}
    
    	@include bem.e(text) {
    		:last-child {
    			margin-bottom: 0;
    		}
    
    		@include breakpoint.bp-up(sm) {
    			color: colors.$color-snow;
    		}
    
    		@include breakpoint.bp-up(md) {
    			max-width: 100%;
    		}
    
    		@include breakpoint.bp-up(lg) {
    			max-width: 70%;
    		}
    
    		@include breakpoint.bp-up(xxl) {
    			max-width: 60%;
    		}
    	}
    
    	@include bem.b(a-tag) {
    		@include mixin.tag;
    
    		@include breakpoint.bp-up(sm) {
    			@include mixin.tag-light;
    		}
    	}
    
    	@include bem.e(link) {
    		color: colors.$color-cyberspace;
    		text-decoration: none;
    
    		&:hover,
    		&:focus {
    			text-decoration: underline;
    		}
    
    		&::after {
    			content: '';
    			display: block;
    			position: absolute;
    			top: 0;
    			right: 0,;
    			bottom: 0;
    			left: 0;
    			cursor: pointer;
    		}
    
    		> p {
    			@include plumber.plumber(
    				$font-size: 2.5,
    				$line-height: 3
    			);
    		}
    
    		+ [class*='buttons'] {
    			margin-top: func.rhythm(2);
    
    			@include breakpoint.bp-up(lg) {
    				margin-top: func.rhythm(3);
    			}
    		}
    
    		@include breakpoint.bp-up(sm) {
    			color: colors.$color-snow;
    		}
    	}
    
    	// Hero without image
    	@include bem.m(no-image) {
    		background-color: transparent;
    		-webkit-font-smoothing: auto;
    		-moz-osx-font-smoothing: auto;
    
    		@include bem.e(caption) {
    			position: static;
    			background-image: none;
    			text-shadow: none;
    
    			.wrapper {
    				padding-right: 0;
    				padding-left: 0;
    
    				@include breakpoint.bp-up(sm) {
    					padding-right: var.$grid-gutter-width;
    					padding-left: var.$grid-gutter-width;
    				}
    			}
    
    			@include breakpoint.bp-down(md) {
    				padding-right: 0;
    				padding-left: 0;
    			}
    		}
    
    		@include bem.e(paragraph) {
    			color: colors.$color-cyberspace;
    		}
    
    		&.alignfull {
    			@include bem.e(caption) {
    				.wrapper {
    					padding-right: func.rhythm(2);
    					padding-left: func.rhythm(2);
    				}
    			}
    		}
    
    		@include bem.e(link) {
    			color: colors.$color-cyberspace;
    		}
    
    		@include bem.e(text) {
    			color: colors.$color-cyberspace;
    		}
    
    		@include bem.e(paragraph) {
    			@extend %preamble;
    		}
    
    		@include bem.b(a-tag) {
    			@include mixin.tag;
    
    			[class*=text] {
    				color: colors.$color-cyberspace;
    			}
    		}
    
    		@include breakpoint.bp-up(md) {
    			@include bem.e(text) {
    				max-width: 85%;
    			}
    		}
    
    		@include breakpoint.bp-up(lg) {
    			@include bem.e(text) {
    				max-width: 67%;
    			}
    		}
    	}
    
    	@include bem.m(timeline) {
    		@include bem.e(caption) {
    			background-color: colors.$color-snow;
    
    			@include breakpoint.bp-up(sm) {
    				background-color: transparent;
    			}
    		}
    	}
    
    	// Hero with earlier mobile breakpoint
    	@include bem.m(break-early) {
    		@include bem.e(caption) {
    			@include breakpoint.bp-up(sm) {
    				position: static;
    				padding: func.rhythm(2) 0;
    			}
    
    			@include breakpoint.bp-up(md) {
    				padding: func.rhythm(3) func.rhythm(1);
    			}
    
    			@include breakpoint.bp-up(lg) {
    				position: absolute;
    				z-index: func.z_index(middlegroundImportant);
    				top: 50%;
    				right: 0;
    				bottom: auto;
    				left: 0;
    				padding: func.rhythm(4);
    				transform: translateY(-50%);
    				background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(colors.$color-black, 0) 55%, rgba(colors.$color-black, 1) 100%);
    				text-shadow: 0 0 func.rhythm(2) rgba(colors.$color-black, 0.5);
    			}
    
    			@include breakpoint.bp-down(md) {
    				[class*="tag--light"] {
    					[class*="tag__text"] {
    						color: colors.$color-cyberspace;
    					}
    				}
    			}
    		}
    
    		@include bem.e(text) {
    			max-width: 100%;
    
    			@include breakpoint.bp-up(md) {
    				max-width: 90%;
    			}
    
    			@include breakpoint.bp-up(lg) {
    				max-width: 85%;
    			}
    
    			@include breakpoint.bp-up(xxl) {
    				max-width: 70%;
    			}
    
    			@include breakpoint.bp-only(lg) {
    				.supersize {
    					@include plumber.plumber(
    						$font-size: 6,
    						$line-height: 7,
    						$leading-bottom: 2
    					);
    				}
    			}
    		}
    
    		@include bem.e(link) {
    			color: colors.$color-cyberspace;
    			text-shadow: none;
    
    			@include breakpoint.bp-up(lg) {
    				color: colors.$color-snow;
    				text-shadow: 0 0 func.rhythm(2) rgba(colors.$color-black, 0.5);
    			}
    		}
    
    		@include bem.b(a-tag) {
    			@include mixin.tag;
    
    			@include breakpoint.bp-up(lg) {
    				@include mixin.tag-light;
    			}
    		}
    	}
    
    	@include bem.m(no-break) {
    		@include bem.e(image) {
    			aspect-ratio: 1 / 1;
    			object-position: 100% 25%;
    
    			@include breakpoint.bp-up(sm-xs) {
    				aspect-ratio: 4 / 3;
    			}
    
    			@include breakpoint.bp-up(sm) {
    				aspect-ratio: 16 / 9;
    			}
    
    			@include breakpoint.bp-up(md) {
    				object-position: 50% 25%;
    			}
    		}
    
    		@include bem.e(caption) {
    			position: absolute;
    			z-index: func.z_index(middlegroundImportant);
    			top: 0;
    			right: 0;
    			bottom: 0;
    			left: 0;
    			padding: func.rhythm(1) func.rhythm(1) func.rhythm(4) func.rhythm(1);
    			background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(colors.$color-black, 0) 35%, rgba(colors.$color-black, 1) 100%);
    			text-shadow: config.$text-shadow;
    
    			@include breakpoint.bp-up(sm) {
    				padding: func.rhythm(2) func.rhythm(2) func.rhythm(4) func.rhythm(2);
    			}
    
    			@include breakpoint.bp-up(md) {
    				padding: func.rhythm(4);
    			}
    		}
    
    		@include bem.e(paragraph) {
    			color: colors.$color-snow;
    
    			@include breakpoint.bp-down(sm-xs) {
    				font-size: 95%;
    			}
    		}
    
    		@include bem.e(text) {
    			color: colors.$color-snow;
    		}
    
    		@include bem.e(link) {
    			color: colors.$color-snow;
    		}
    
    		@include breakpoint.bp-down(sm-xs) {
    			@include bem.e(buttons) {
    				position: absolute;
    				bottom: 0;
    				left: func.rhythm(3);
    				right: func.rhythm(3);
    				display: flex;
    				flex-wrap: nowrap;
    				justify-content: space-between;
    				align-items: stretch;
    				margin: 0 0 func.rhythm(2) 0;
    
    				> div {
    					flex: 1;
    					display: flex;
    					align-items: stretch;
    					margin: 0 func.rhythm(1) 0 0;
    
    					&:last-child {
    						margin-right: 0;
    					}
    				}
    
    				a[class*='a-button'],
    				button[class*='a-button']{
    					flex: 1;
    					margin: 0;
    					padding-top: func.rhythm(1);
    					padding-bottom: func.rhythm(1);
    					padding-left: func.rhythm(1.5);
    					padding-right: func.rhythm(1.5);
    					white-space: nowrap;
    
    					> span {
    						font-size: 90%;
    					}
    				}
    			}
    		}
    	}
    
    	// Hero without darkened caption
    	@include bem.m(clean) {
    		@include bem.e(caption) {
    			background: none;
    		}
    	}
    
    	// Hero with border-radius
    	@include bem.m(border-radius) {
    		border-radius: var.$border-radius;
    
    		@include bem.e(image) {
    			border-radius: var.$border-radius;
    		}
    
    		@include breakpoint.bp-up(md) {
    			@include bem.e(text) {
    				max-width: 100%;
    
    				.supersize {
    					@include plumber.plumber(
    						$font-size: 4.5,
    						$line-height: 5,
    						$leading-bottom: 1
    					);
    				}
    			}
    		}
    
    		@include breakpoint.bp-up(lg) {
    			@include bem.e(text) {
    				max-width: 90%;
    			}
    		}
    
    		@include breakpoint.bp-up(xxl) {
    			@include bem.e(text) {
    				max-width: 80%;
    
    				.supersize {
    					@include plumber.plumber(
    						$font-size: 7,
    						$line-height: 8,
    						$leading-bottom: 2
    					);
    				}
    			}
    		}
    
    		@include breakpoint.bp-only(xs) {
    			.wrapper {
    				padding-left: 0;
    				padding-right: 0;
    			}
    		}
    	}
    
    	// Hero with video
    	@include bem.m(video) {
    		margin-top: func.to_rem(20px);
    		//padding-top: 56.25%;
    
    		iframe {
    			position: absolute;
    			top: 0;
    			right: 0;
    			bottom: 0;
    			left: 0;
    		}
    
    		@include breakpoint.bp-up(lg) {
    			margin-top: func.rhythm(4);
    		}
    	}
    
    	@include bem.m(video-wide) {
    		width: 100%;
    
    		@include bem.e(video) {
    			width: 100%;
    			object-fit: cover;
    			object-position: 50% center;
    
    			@include breakpoint.bp-up(sm) {
    				min-height: func.to_rem(500px);
    				max-height: 50vh;
    			}
    
    		}
    	}
    
    	// Event
    	@include bem.m(event) {
    		width: 100%;
    
    		[class*='share'] {
    			a {
    				> svg {
    					&[class*='facebook'],
    					&[class*='linkedin'] {
    						border-radius: var.$border-radius;
    						background-color: colors.$color-snow;
    					}
    
    					&[class*='facebook'] {
    						border-radius: 50%;
    					}
    				}
    			}
    		}
    
    		@include bem.e(content) {
    			padding: func.rhythm(2) 0;
    
    			@include breakpoint.bp-up(sm) {
    				padding: func.rhythm(4);
    			}
    
    			@include bem.e(icon) {
    				position: relative;
    				width: var.$icon-size-medium;
    				height: var.$icon-size-medium;
    				margin-left: func.rhythm(0.5);
    				transform: translateY(func.to_rem(1px));
    				fill: currentColor;
    
    				@include bem.m(external) {
    					width: var.$icon-size-smallest;
    					height: var.$icon-size-smallest;
    				}
    			}
    		}
    
    		@include bem.e(text) {
    			margin-bottom: 0;
    			color: colors.$color-cyberspace;
    		}
    
    		@include bem.e(spacer) {
    			display: inline-flex;
    			margin-right: func.rhythm(1);
    		}
    	}
    
    	// Geometric
    	@include bem.m(geometric) {
    		position: relative;
    		overflow: hidden;
    
    		&::after {
    			content: '';
    			position: absolute;
    			z-index: func.z_index(background);
    			top: 25%;
    			left: -25%;
    			width: func.to_rem(250px);
    			height: func.to_rem(250px);
    			transform: translate(calc(-150% - #{func.to_rem(20px)}), -50%) rotate(-20deg);
    			transform-origin: center left;
    			animation: spin 240s linear infinite;
    			animation-direction: alternate;
    			background-color: colors.$color-lemon;
    
    			@include breakpoint.bp-up(sm) {
    				left: -15%;
    			}
    
    			@include breakpoint.bp-up(xl) {
    				left: 0;
    				animation-duration: 120s;
    			}
    		}
    
    		&::before {
    			content: '';
    			position: absolute;
    			top: 75%;
    			right: -25%;
    			width: func.to_rem(250px);
    			height: func.to_rem(80px);
    			transform: translate(calc(120% + #{func.to_rem(20px)}), 50%) rotate(20deg);
    			transform-origin: center center;
    			animation: spin 240s linear infinite;
    			animation-direction: alternate-reverse;
    			background-color: colors.$color-lemon;
    
    			@include breakpoint.bp-up(sm) {
    				right: -15%;
    			}
    
    			@include breakpoint.bp-up(xl) {
    				right: 0;
    				animation-duration: 120s;
    			}
    		}
    
    		@include breakpoint.bp-up(xl) {
    			h1 {
    				max-width: 60%;
    			}
    		}
    
    		@include bem.e(content) {
    			position: relative;
    			z-index: func.z_index(middleground);
    		}
    
    		@keyframes spin {
    			from {
    				transform: rotate(20deg);
    			}
    
    			to {
    				transform: rotate(379deg);
    			}
    		}
    	}
    }
    
  • URL: /components/raw/hero/_hero.scss
  • Filesystem Path: src/organisms/hero/_hero.scss
  • Size: 12.5 KB

No notes defined.