UNPKG

@randstad-design/orbit-multitheme

Version:

multitheme Front-end code based on Randstad Human Forward components

1 lines 21.6 kB
{"version":3,"sources":["../scss/04_organisms/_teaser.scss","components/teaser.css","00_helpers/variables/_sizing.scss","../scss/00_tools/cssVartoSass.scss","00_helpers/mixins/_media-queries.scss","00_helpers/mixins/_font-style.scss","00_helpers/variables/_fonts.scss","00_helpers/mixins/_line-clamp.scss"],"names":[],"mappings":"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","file":"teaser.css","sourcesContent":["/***** in this file ***************\n base styling cards\n - specific for S/M & L\n\n hover & focus effects cards\n - viewport L only\n\n focus effect CTA\n***********************************/\n\n.teaser {\n border-radius: $border-radius--l;\n color: returnColorCSSVar('white');\n height: 500px; // standard height mobile & 2 card version\n overflow: hidden;\n position: relative;\n text-decoration: none;\n width: 100%;\n\n @include viewport--l('inversed') {\n // added in case JS is disabled:\n margin-right: 5px;\n }\n\n @include viewport--l {\n // increase hight for 3 card version:\n &--large {\n height: 550px;\n }\n }\n\n &--small {\n height: 400px;\n }\n\n .list--checks li::before {\n background-color: returnColorCSSVar('white');\n }\n}\n\n.teaser__content {\n padding: 30px 20px;\n}\n\n.teaser__gradient,\n.teaser__img {\n border-radius: $border-radius--l;\n height: 100%;\n left: 0;\n object-fit: cover;\n position: absolute;\n text-decoration: none; //prevent any hyperlink effect on hover\n top: 0;\n width: 100%;\n}\n\n.teaser .teaser__shade {\n background: rgba(15, 25, 65, 0.7);\n opacity: 0;\n transition: opacity .3s ease;\n height:100%;\n width:100%;\n }\n\n.teaser a {\n text-decoration: none;\n}\n\n.teaser__gradient {\n background: linear-gradient(\n -180deg,\n rgba(15, 25, 65, 0) 33%,\n rgb(15, 25, 65) 100%\n );\n cursor: pointer;\n transition: all 0.3s ease -1s;\n display: flex;\n padding: 30px 20px;\n\n @include viewport--l {\n padding: 40px;\n // exception: for 2 cards list on desktop: 50%\n .cards__list--halves & {\n background: linear-gradient(\n -180deg,\n rgba(15, 25, 65, 0) 50%,\n rgb(15, 25, 65) 100%\n );\n }\n }\n}\n\n.teaser__wrapper {\n position: relative;\n display: flex;\n align-items: flex-end;\n}\n\n.teaser__body {\n @include viewport--l {\n margin-top: auto;\n max-height: 338px;\n position: relative;\n transform: translateY(100%);\n transition: transform 0.3s ease;\n }\n}\n\n.teaser--large .teaser__body {\n @include viewport--l {\n max-height: 365px;\n }\n}\n\n.teaser--small .teaser__body {\n max-height: 256px;\n}\n\n.teaser__header {\n @include viewport--l('inversed') {\n bottom: 70px;\n left: 20px;\n position: absolute;\n right: 20px;\n }\n\n @include viewport--l {\n height: 100%;\n margin-bottom: -30px; // offset eyebrow space before hover\n transform: translateY(-100%);\n }\n}\n\n.teaser__date {\n color: returnColorCSSVar('white');\n margin-bottom: 10px;\n}\n\n.teaser__title {\n @include font-style('title--s', 'title--s');\n @include line-clamp(9);\n color: returnColorCSSVar('white');\n margin-bottom: unset;\n max-height: 270px; // keep long titles wihin background gradient scope\n\n}\n\n.teaser__description {\n color: returnColorCSSVar('white');\n opacity: 0;\n\n @include viewport--l {\n margin-bottom: unset;\n padding-top: 20px;\n transition: opacity 0.3s ease;\n }\n}\n\n.cards__list--quarters .teaser__description {\n @include line-clamp(4);\n}\n\n.teaser__cta {\n bottom: 0;\n display: inline-flex;\n max-width: 100%;\n @include viewport--l {\n opacity: 0;\n position: absolute;\n transition: transform 0.3s; // first out\n }\n}\n\n.teaser__icon {\n @include viewport--l('inversed') {\n bottom: 30px;\n color: returnColorCSSVar('white');\n left: 20px;\n position: absolute;\n top: auto;\n }\n}\n\n//////////////////////// HOVER AND FOCUS EFFECTS //////////////////////////\n\n@include viewport--l {\n .teaser:hover,\n .teaser:focus {\n img {\n filter: blur(5px);\n transition: filter 0.5s;\n }\n\n .teaser__shade {\n border-radius: $border-radius--l; // to prevent flickering effect\n opacity: 1;\n position: absolute;\n text-decoration: none;\n transition: opacity .3s ease;\n }\n\n .teaser__body {\n @include line-clamp(6);\n margin-bottom: 90px;\n margin-top: auto;\n transform: translateY(0);\n transition: transform 0.3s; // first in\n }\n\n &.teaser--small .teaser__body {\n margin-bottom: 70px;\n -webkit-line-clamp: 8;\n }\n\n .teaser__header {\n transform: translateY(0%);\n margin-bottom: unset;\n }\n\n .teaser__title {\n max-height: unset;\n overflow: unset;\n -webkit-line-clamp: 10;\n }\n\n .cards__list--quarters .teaser__title {\n -webkit-line-clamp: 5;\n }\n\n .teaser__description {\n opacity: 1;\n transition: transform 0.3s ease 0.1s; // second in\n }\n\n .teaser__cta {\n opacity: 1;\n transition: all 0.2s ease-out 0.1s; // third in (both opacity and transform effect)\n }\n }\n\n //////////////////////// focus on CTA //////////////////////////\n\n .teaser__cta:focus {\n opacity: 1;\n\n + .teaser__body {\n margin-bottom: 90px; // allows for the button and 30px margin\n overflow: hidden;\n transform: translateY(0);\n\n .teaser__header {\n transform: translateY(0%);\n margin-bottom: unset;\n }\n\n .teaser__description {\n opacity: 1;\n }\n }\n }\n}\n","/***** in this file ***************\n base styling cards\n - specific for S/M & L\n\n hover & focus effects cards\n - viewport L only\n\n focus effect CTA\n***********************************/\n.teaser {\n border-radius: 8px;\n color: var(--color-white);\n height: 500px;\n overflow: hidden;\n position: relative;\n text-decoration: none;\n width: 100%; }\n @media (max-width: 940px) {\n .teaser {\n margin-right: 5px; } }\n @media (min-width: 941px) {\n .teaser--large {\n height: 550px; } }\n .teaser--small {\n height: 400px; }\n .teaser .list--checks li::before {\n background-color: var(--color-white); }\n\n.teaser__content {\n padding: 30px 20px; }\n\n.teaser__gradient,\n.teaser__img {\n border-radius: 8px;\n height: 100%;\n left: 0;\n object-fit: cover;\n position: absolute;\n text-decoration: none;\n top: 0;\n width: 100%; }\n\n.teaser .teaser__shade {\n background: rgba(15, 25, 65, 0.7);\n opacity: 0;\n transition: opacity .3s ease;\n height: 100%;\n width: 100%; }\n\n.teaser a {\n text-decoration: none; }\n\n.teaser__gradient {\n background: linear-gradient(-180deg, rgba(15, 25, 65, 0) 33%, #0f1941 100%);\n cursor: pointer;\n transition: all 0.3s ease -1s;\n display: flex;\n padding: 30px 20px; }\n @media (min-width: 941px) {\n .teaser__gradient {\n padding: 40px; }\n .cards__list--halves .teaser__gradient {\n background: linear-gradient(-180deg, rgba(15, 25, 65, 0) 50%, #0f1941 100%); } }\n\n.teaser__wrapper {\n position: relative;\n display: flex;\n align-items: flex-end; }\n\n@media (min-width: 941px) {\n .teaser__body {\n margin-top: auto;\n max-height: 338px;\n position: relative;\n transform: translateY(100%);\n transition: transform 0.3s ease; } }\n\n@media (min-width: 941px) {\n .teaser--large .teaser__body {\n max-height: 365px; } }\n\n.teaser--small .teaser__body {\n max-height: 256px; }\n\n@media (max-width: 940px) {\n .teaser__header {\n bottom: 70px;\n left: 20px;\n position: absolute;\n right: 20px; } }\n\n@media (min-width: 941px) {\n .teaser__header {\n height: 100%;\n margin-bottom: -30px;\n transform: translateY(-100%); } }\n\n.teaser__date {\n color: var(--color-white);\n margin-bottom: 10px; }\n\n.teaser__title {\n font-size: 26px;\n letter-spacing: -1px;\n line-height: 30px;\n -webkit-line-clamp: 9;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n color: var(--color-white);\n margin-bottom: unset;\n max-height: 270px; }\n\n.teaser__description {\n color: var(--color-white);\n opacity: 0; }\n @media (min-width: 941px) {\n .teaser__description {\n margin-bottom: unset;\n padding-top: 20px;\n transition: opacity 0.3s ease; } }\n\n.cards__list--quarters .teaser__description {\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden; }\n\n.teaser__cta {\n bottom: 0;\n display: inline-flex;\n max-width: 100%; }\n @media (min-width: 941px) {\n .teaser__cta {\n opacity: 0;\n position: absolute;\n transition: transform 0.3s; } }\n\n@media (max-width: 940px) {\n .teaser__icon {\n bottom: 30px;\n color: var(--color-white);\n left: 20px;\n position: absolute;\n top: auto; } }\n\n@media (min-width: 941px) {\n .teaser:hover img,\n .teaser:focus img {\n filter: blur(5px);\n transition: filter 0.5s; }\n .teaser:hover .teaser__shade,\n .teaser:focus .teaser__shade {\n border-radius: 8px;\n opacity: 1;\n position: absolute;\n text-decoration: none;\n transition: opacity .3s ease; }\n .teaser:hover .teaser__body,\n .teaser:focus .teaser__body {\n -webkit-line-clamp: 6;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n margin-bottom: 90px;\n margin-top: auto;\n transform: translateY(0);\n transition: transform 0.3s; }\n .teaser:hover.teaser--small .teaser__body,\n .teaser:focus.teaser--small .teaser__body {\n margin-bottom: 70px;\n -webkit-line-clamp: 8; }\n .teaser:hover .teaser__header,\n .teaser:focus .teaser__header {\n transform: translateY(0%);\n margin-bottom: unset; }\n .teaser:hover .teaser__title,\n .teaser:focus .teaser__title {\n max-height: unset;\n overflow: unset;\n -webkit-line-clamp: 10; }\n .teaser:hover .cards__list--quarters .teaser__title,\n .teaser:focus .cards__list--quarters .teaser__title {\n -webkit-line-clamp: 5; }\n .teaser:hover .teaser__description,\n .teaser:focus .teaser__description {\n opacity: 1;\n transition: transform 0.3s ease 0.1s; }\n .teaser:hover .teaser__cta,\n .teaser:focus .teaser__cta {\n opacity: 1;\n transition: all 0.2s ease-out 0.1s; }\n .teaser__cta:focus {\n opacity: 1; }\n .teaser__cta:focus + .teaser__body {\n margin-bottom: 90px;\n overflow: hidden;\n transform: translateY(0); }\n .teaser__cta:focus + .teaser__body .teaser__header {\n transform: translateY(0%);\n margin-bottom: unset; }\n .teaser__cta:focus + .teaser__body .teaser__description {\n opacity: 1; } }\n","// baseline size, used for every calculation\n$baseline: 10px;\n\n// border radius\n$border-radius: 4px;\n$border-radius--s: 3px;\n$border-radius--xs: 2px;\n$border-radius--m: 5px;\n$border-radius--m-l: 6px;\n$border-radius--l: 8px;\n$border-radius--max: 30px;\n","// Returns CSS4 color variables\n@function returnColorCSSVar($color-name) {\n @return var(--color-#{$color-name});\n}\n","// @viewport--x($reversed)\n\n// viewport s\n@mixin viewport--s($type: null) {\n // inversed\n @if ($type == 'inversed') {\n @media (max-width: #{($breakpoint-viewport--s - 1)}) {\n @content;\n }\n }\n // range\n @else if ($type== 'range') {\n @media (min-width:0) and (max-width: #{($breakpoint-viewport--s - 1)}) {\n @content;\n }\n }\n // default\n @else {\n @media (min-width: #{$breakpoint-viewport--s}) {\n @content;\n }\n }\n}\n\n// viewport m\n@mixin viewport--m($type: null) {\n // inversed\n @if ($type == 'inversed') {\n @media (max-width: #{($breakpoint-viewport--m - 1)}) {\n @content;\n }\n }\n // range\n @else if ($type== 'range') {\n @media (min-width: $breakpoint-viewport--m) and (max-width: #{($breakpoint-viewport--l - 1)}) {\n @content;\n }\n }\n // default\n @else {\n @media (min-width: #{$breakpoint-viewport--m}) {\n @content;\n }\n }\n}\n\n// viewport l\n@mixin viewport--l($type: null) {\n // inversed\n @if ($type == 'inversed') {\n @media (max-width: #{($breakpoint-viewport--l - 1)}) {\n @content;\n }\n }\n // range\n @else if ($type== 'range') {\n @media (min-width: $breakpoint-viewport--l) and (max-width: #{($breakpoint-viewport--xl - 1)}) {\n @content;\n }\n }\n // default\n @else {\n @media (min-width: #{$breakpoint-viewport--l}) {\n @content;\n }\n }\n}\n\n// viewport xl\n@mixin viewport--xl($type: null) {\n @if ($type == 'inversed') {\n @media (max-width: #{($breakpoint-viewport--xl - 1)}) {\n @content;\n }\n }\n // range\n @else if ($type== 'range') {\n @media (min-width: $breakpoint-viewport--xl) and (max-width: #{($breakpoint-viewport--xxl - 1)}) {\n @content;\n }\n }\n // default\n @else {\n @media (min-width: #{$breakpoint-viewport--xl}) {\n @content;\n }\n }\n}\n\n// viewport xxl\n@mixin viewport--xxl($type: null) {\n // inversed\n @if ($type == 'inversed') {\n @media (max-width: #{($breakpoint-viewport--xxl - 1)}) {\n @content;\n }\n }\n // default\n @else {\n @media (min-width: #{$breakpoint-viewport--xxl}) {\n @content;\n }\n }\n}\n\n// viewport range\n@mixin viewport--range($viewport1, $viewport2) {\n @media (min-width: #{($viewport1)}) and (max-width: #{($viewport2 - 1)}) {\n @content;\n }\n}\n\n// Internet Explorer 10 + 11\n@mixin internet-explorer-10-11 {\n @media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none) {\n @content;\n }\n}\n","// @font-style($font-style-small, $font-style-large)\n\n// $font-style-small - Desired type size for small/medium viewport.\n// $font-style-large - Desired type size for large viewport. This includes default fallback\n// for the S/M viewport.\n\n//\n// | viewport S | viewport M | viewport L | default mapping |\n// |------------------|------------------|-----------------|-----------------|\n// | title l | 40 | title l | 40 | title xxl | 80 | default |\n// | title m | 32 | title m | 32 | title xl | 60 | default |\n// | title s | 26 | title s | 26 | title l | 40 | |\n// | title s | 26 | title s | 26 | title m | 32 | default |\n// | title xs | 20 | title xs | 20 | title s | 26 | |\n// | title xs | 20 | title xs | 20 | title xs | 20 | default |\n// | title xxs | 18 | title xxs | 18 | title xxs | 18 | |\n// | | | | | | | |\n// | body l | 18 | body l | 18 | body l | 18 | |\n// | body m | 16 | body m | 16 | body m | 16 | |\n// | body s | 12 | body s | 12 | body s | 12 | |\n\n// import variables needed for the mixins\n@import '../variables/__variables.scss';\n\n// mixin to get applicable properties for chosen type size\n@mixin typeset($type) {\n $type: map-get($types, $type);\n\n font-size: (map-get($type, font-size));\n letter-spacing: (map-get($type, letter-spacing));\n line-height: (map-get($type, line-height));\n}\n\n// get correct font characteristics based on font\n@mixin type-size($size) {\n $size: map-get($type-sizes, $size);\n @include typeset($size);\n}\n\n// mixin to get font-size\n@mixin font-style($font-style-small: 'body--l', $font-style-large: null) {\n // if both arguments are added\n @if ($font-style-large != null) {\n // make sure $font-style-small & $font-style-large are not equal\n @if ($font-style-small != $font-style-large) {\n @include type-size($font-style-small);\n\n @include viewport--l {\n @include type-size($font-style-large);\n }\n } @else {\n @include type-size($font-style-small);\n }\n } @else {\n @include type-size($font-style-small);\n // default font style mappings\n @if ($font-style-small == 'title--l') {\n @include viewport--l {\n @include type-size('title--xxl');\n }\n } @else if ($font-style-small == 'title--m') {\n @include viewport--l {\n @include type-size('title--xl');\n }\n } @else if ($font-style-small == 'title--s') {\n @include viewport--l {\n @include type-size('title--m');\n }\n }\n }\n}\n","// | viewport S | viewport M | viewport L | default mapping |\n// |------------------|------------------|-----------------|-----------------|\n// | title l | 40 | title l | 40 | title xxl | 80 | default |\n// | title m | 32 | title m | 32 | title xl | 60 | default |\n// | title s | 26 | title s | 26 | title l | 40 | |\n// | title s | 26 | title s | 26 | title m | 32 | default |\n// | title xs | 20 | title xs | 20 | title s | 26 | |\n// | title xs | 20 | title xs | 20 | title xs | 20 | default |\n// | title xxs | 18 | title xxs | 18 | title xxs | 18 | |\n// | | | | | | | |\n// | body l | 18 | body l | 18 | body l | 18 | |\n// | body m | 16 | body m | 16 | body m | 16 | |\n// | body s | 14 | body s | 14 | body s | 14 | |\n// | body xs | 12 | body xs | 12 | body xs | 12 | |\n\n// font family\n$font-family-theme: Graphik, Tahoma, 'sans-serif';\n\n// font mappings - font-size / line-height / letter-spacing\n$types: (\n 12: (\n font-size: 12px,\n line-height: 15px,\n letter-spacing: 0\n ),\n 14: (\n font-size: 14px,\n line-height: 25px,\n letter-spacing: 0\n ),\n 16: (\n font-size: 16px,\n line-height: 25px,\n letter-spacing: 0\n ),\n 18: (\n font-size: 18px,\n line-height: 30px,\n letter-spacing: 0\n ),\n 20: (\n font-size: 20px,\n line-height: 30px,\n letter-spacing: 0\n ),\n 26: (\n font-size: 26px,\n line-height: 30px,\n letter-spacing: -1px\n ),\n 32: (\n font-size: 32px,\n line-height: 40px,\n letter-spacing: -1px\n ),\n 40: (\n font-size: 40px,\n line-height: 45px,\n letter-spacing: -2px\n ),\n 60: (\n font-size: 60px,\n line-height: 60px,\n letter-spacing: -3px\n ),\n 80: (\n font-size: 80px,\n line-height: 80px,\n letter-spacing: -4px\n )\n);\n\n// type-sizes - links the type-size to correct font mapping\n$type-sizes: (\n title--xxl: 80,\n title--xl: 60,\n title--l: 40,\n title--m: 32,\n title--s: 26,\n title--xs: 20,\n title--xxs: 18,\n body--l: 18,\n body--m: 16,\n body--s: 14,\n body--xs: 12\n);\n","@mixin line-clamp($lines) {\n -webkit-line-clamp: $lines;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n"]}