UNPKG

@randstad-design/orbit-multitheme

Version:

multitheme Front-end code based on Randstad Human Forward components

1 lines 17.4 kB
{"version":3,"sources":["../scss/04_organisms/banners/_banner.scss","00_helpers/variables/_spacing.scss","00_helpers/mixins/grid/_grid-gutter.scss","00_helpers/mixins/_font-style.scss","00_helpers/variables/_fonts.scss","00_helpers/mixins/_media-queries.scss","00_helpers/mixins/grid/_grid-columns.scss"],"names":[],"mappings":"AACE;EACE,oBCYsB;EDXtB,iBCWsB;EDVtB,WAAW,EAAA;;AAGb;EACE,iBAAiB;EACjB,oBAAoB;EACpB,aAAa;EACb,gDAAgD;EAChD,uCEToE;EFSpE,oCEToE;EFSpE,+BEToE,EAAA;;AFHxE;EG4BE,oDCXmE;EDYnE,eC2CiB;ED1CjB,yBC4C2B;ED3C3B,iBC0CmB,EAAA;ECXjB;IL9DJ;MG4BE,oDCXmE;MDYnE,eCuDiB;MDtDjB,yBCwD2B;MDvD3B,iBCsDmB,EAAA,EJjElB;;AApBH;EG4BE,mDCZiE;EDajE,eCqCiB;EDpCjB,oBCsCsB;EDrCtB,iBCoCmB,EAAA;ECLjB;IL9DJ;MG4BE,mDCZiE;MDajE,eC6DiB;MD5DjB,oBC8DsB;MD7DtB,iBC4DmB,EAAA,EJjElB;;AKwBC;ELnBF;IAEI,gBCtBqB,EAAA;EDyBvB;IACE,kBCjBe;IDkBf,mBClBe,EAAA;IDgBhB;MAKG,aAAsB;MACtB,oBAAiB;MAAjB,iBAAiB;MACjB,WAAW,EAAA;IAPd;MAWG,iBClCkB,EAAA;EDsCrB;IAEG,aAAsB;IACtB,cAAc;IACd,gBAAgB,EAAA;EAIpB;IACE,cAAc,EAAA;EA7BlB;IAiCI,SAAS;IACT,aAAsB,EAAA;EAGxB;IACE,iBCvDoB,EAAA,EDwDrB;;AK1CD;ELgDF;IACE,kBC1DiB;ID2DjB,mBC3DiB,EAAA,ED4DlB;;AKjBC;ELsBF;IACE,gBAAgB;IAChB,kBAAkB,EAAA;IAElB;MACE,oBAAa;MAAb,qBAAa;MAAb,oBAAa;MAAb,aAAa;MACb,iBAA0B,EAAA;IAG5B;MACE,0BAAkB;MAAlB,2BAAkB;MAAlB,kBAAkB;MAClB,oBChFqB;MDiFrB,iBCjFqB;MDkFrB,kBAAkB;MAClB,2BMrEuD,EAAA;MNwEvD;QACE,6CM7EoG;QN8EpG,2BM1EqD,EAAA;MN6EvD;QACE,WAAW,EAAA;IAIf;MACE,kBAAkB;MAClB,qBAAqB;MACrB,mBMrFuD;MNqFvD,sCMrFuD;MNqFvD,kCMrFuD;MNqFvD,8BMrFuD;MNsFvD,WAAW;MACX,aAAa;MACb,gDAAgD;MAChD,uCE/GkE;MF+GlE,oCE/GkE;MF+GlE,+BE/GkE,EAAA;IFkHpE;MACE,qBAAqB;MACrB,kBAAkB,EAAA;IAvCtB;MA2CI,qBAAqB,EAAA;IAGvB;MACE,4BAAQ;MAAR,gBAAQ;MAAR,iBAAQ;MAAR,QAAQ;MACR,QAAQ,EAAA;IAhDZ;MAoDI,0BAAkB;MAAlB,2BAAkB;MAAlB,kBAAkB;MAClB,+BM5GuD;MN6GvD,aAAsB,EAAA;IAIvB;MAEG,mBMnHqD;MNmHrD,sCMnHqD;MNmHrD,kCMnHqD;MNmHrD,8BMnHqD;MNoHrD,iBAAiB,EAAA;IAHpB;MAMG,iBAAiB;MACjB,4BAAQ;MAAR,gBAAQ;MAAR,iBAAQ;MAAR,QAAQ,EAAA;IAPX;MAWG,iBAAiB;MACjB,iCM7HqD;MN8HrD,eAAe;MACf,kCAAkC,EAAA;IAdrC;MAkBG,cAAc,EAAA;IAlBjB;MAsBG,OAAO,EAAA;IAtBV;MA0BG,QAAQ,EAAA,EACT","file":"banners.css","sourcesContent":[".banner {\n &__content {\n padding-bottom: $banner-content-spacing;\n padding-top: $banner-content-spacing;\n width: 100%;\n }\n\n &__text-container {\n padding-top: 15px;\n padding-bottom: 50px;\n display: grid;\n grid-template-columns: repeat(6, minmax(0, 1fr));\n column-gap: grid-gutter();\n }\n\n .content-block__title {\n @include font-style(\n $banner-content-block-title-font-style,\n $banner-content-block-title-font-style--l\n );\n }\n .content-block__title-s {\n @include font-style(\n $banner-content-block-title--s-font-style,\n $banner-content-block-title--s-font-style--l\n );\n }\n}\n\n// viewport m\n@include viewport--l('inversed') {\n .banner {\n .content-block__description {\n margin-top: $spacing--xs;\n }\n\n &__media {\n margin-left: -($grid-margin--m);\n margin-right: -($grid-margin--m);\n\n img {\n height: $baseline * 20;\n object-fit: cover; // needed because of height\n width: 100%;\n }\n\n & + .banner__content {\n padding-top: $spacing--m;\n }\n }\n // limit image size\n &__media:not(.media-block--half-width):not(.media-block--full-width):not(.media-block--boxed-large) {\n img {\n height: $baseline * 30; // forces height to exact Design specifications\n margin: 0 auto;\n max-height: 100%;\n }\n }\n\n &__media:not(.media-block--half-width):not(.media-block--full-width):not(.media-block--boxed-large):not(.media-block--boxed) {\n margin: 0 auto;\n }\n // boxed\n .media-block--boxed {\n margin: 0;\n height: $baseline * 30; // forces height to exact Design specifications\n }\n\n &__wrapper {\n padding-top: $spacing--l;\n }\n }\n}\n\n// viewport s\n@include viewport--m('inversed') {\n .banner__media {\n margin-left: -($grid-margin--s);\n margin-right: -($grid-margin--s);\n }\n}\n\n// viewport l\n@include viewport--l {\n .banner {\n overflow: hidden;\n position: relative;\n\n &__wrapper {\n display: flex;\n min-height: $baseline * 47;\n }\n\n &__content {\n align-self: center;\n padding-bottom: $banner-content-spacing--l;\n padding-top: $banner-content-spacing--l;\n position: relative;\n width: grid-columns(5, 12);\n\n // small\n &--s {\n margin-left: grid-columns(1, 12, 1);\n width: grid-columns(5, 12);\n }\n // full width\n &--full-width {\n width: 100%;\n }\n }\n\n &__text-container {\n padding-top: 130px;\n padding-bottom: 130px;\n flex: 0 0 grid-columns(6, 12);\n width: 100%;\n display: grid;\n grid-template-columns: repeat(6, minmax(0, 1fr));\n column-gap: grid-gutter('l');\n }\n\n &__text-container--s {\n padding-bottom: 100px;\n padding-top: 100px;\n }\n\n .content-block__title {\n overflow-wrap: normal;\n }\n\n &__media {\n order: 1;\n right: 0;\n }\n // boxed\n .media-block--boxed {\n align-self: center;\n max-width: grid-columns(6, 12);\n height: $baseline * 40; // forces height to exact Design specifications\n }\n\n // alternative (swaps order content/media)\n &--alternative {\n .banner__text-container {\n flex: 0 0 grid-columns(6, 12);\n margin-left: auto;\n }\n .banner__content {\n margin-left: auto;\n order: 1;\n }\n // small\n .banner__content--s {\n margin-left: auto;\n margin-right: grid-columns(1, 12);\n padding-left: 0;\n padding-right: calc(2 / 58 * 100%);\n }\n\n .banner__media {\n margin-left: 0;\n }\n\n .media-block--half-width {\n left: 0;\n }\n\n img {\n right: 0;\n }\n }\n }\n}\n","// | variable | size | calculation |\n// |---------------|-------|-----------------|\n// | $spacing--xxs | 5px | $baseline * 0.5 |\n// | $spacing--xs | 10px | $baseline * 1 |\n// | $spacing--s | 20px | $baseline * 2 |\n// | $spacing--m | 30px | $baseline * 3 |\n// | $spacing--l | 50px | $baseline * 5 |\n// | $spacing--xl | 80px | $baseline * 8 |\n// | $spacing--xxl | 130px | $baseline * 13 |\n\n$spacing--xxs: $baseline * 0.5;\n$spacing--xs: $baseline * 1;\n$spacing--s: $baseline * 2;\n$spacing--m: $baseline * 3;\n$spacing--l: $baseline * 5;\n$spacing--xl: $baseline * 8;\n$spacing--xxl: $baseline * 13;\n\n// grid spacings\n$grid-margin--s: 25px;\n$grid-margin--m: 50px;\n$grid-margin--l: 100px;\n","@function grid-gutter($viewport: 's') {\n // viewport s\n @if ($viewport == 's') {\n @return calc((#{$grid-gutter-units}/#{$grid-units-total--s}) * 100%);\n }\n // viewport l\n @else if ($viewport == 'l') {\n @return calc((#{$grid-gutter-units}/#{$grid-units-total--l}) * 100%);\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-family: (map-get($type, font-family));\n font-size: (map-get($type, font-size));\n text-transform: (map-get($type, text-transform));\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 | 12 | body s | 12 | body s | 12 | |\n\n// font family\n$font-family-theme: Montserrat, arial, sans-serif;\n$font-family-theme-semibold: Montserrat-SemiBold, arial, sans-serif;\n$font-family-theme-extrabold: Montserrat-ExtraBold, arial, sans-serif;\n// assets path to font\n// this path is overwritten in component CSS\n\n// font mappings - font-size / line-height / letter-spacing\n$types: (\n 12: (\n font-size: 12px,\n line-height: 15px,\n text-transform: none,\n font-family: $font-family-theme\n ),\n 14: (\n font-size: 14px,\n line-height: 25px,\n text-transform: none,\n font-family: $font-family-theme\n ),\n 16: (\n font-size: 16px,\n line-height: 25px,\n text-transform: none,\n font-family: $font-family-theme\n ),\n 18: (\n font-size: 18px,\n line-height: 30px,\n text-transform: none,\n font-family: $font-family-theme\n ),\n 20: (\n font-size: 20px,\n line-height: 30px,\n text-transform: none,\n font-family: $font-family-theme-extrabold\n ),\n 20s: (\n font-size: 20px,\n line-height: 30px,\n text-transform: none,\n font-family: $font-family-theme-semibold\n ),\n 26: (\n font-size: 26px,\n line-height: 30px,\n text-transform: uppercase,\n font-family: $font-family-theme-extrabold\n ),\n 26s: (\n font-size: 26px,\n line-height: 30px,\n text-transform: none,\n font-family: $font-family-theme-semibold\n ),\n 32: (\n font-size: 32px,\n line-height: 40px,\n text-transform: uppercase,\n font-family: $font-family-theme-extrabold\n ),\n 32s: (\n font-size: 32px,\n line-height: 40px,\n text-transform: none,\n font-family: $font-family-theme-semibold\n ),\n 40: (\n font-size: 40px,\n line-height: 45px,\n text-transform: uppercase,\n font-family: $font-family-theme-extrabold\n ),\n 40s: (\n font-size: 40px,\n line-height: 45px,\n text-transform: none,\n font-family: $font-family-theme-semibold\n ),\n 60: (\n font-size: 60px,\n line-height: 60px,\n text-transform: uppercase,\n font-family: $font-family-theme-extrabold\n ),\n 80: (\n font-size: 80px,\n line-height: 80px,\n text-transform: uppercase,\n font-family: $font-family-theme-extrabold\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--l-slim: 40s,\n title--m: 32,\n title--m-slim: 32s,\n title--s: 26,\n title--s-slim: 26s,\n title--xs: 20,\n title--xs-slim: 20s,\n title--xxs: 18,\n body--l: 18,\n body--m: 16,\n body--s: 14,\n body--xs: 12\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","// @grid-columns($columns, $columns-total, $grid-gutter)\n\n// grid for viewport S & M:\n// 6 columns / 28 units\n//\n// | | | | | | | | | | | |\n// | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 |\n// | | | | | | | | | | | |\n//\n//\n// grid for vieport L:\n// 12 columns / 58 units\n//\n// | | | | | | | | | | | | | | | | | | | | | | | |\n// | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 |\n// | | | | | | | | | | | | | | | | | | | | | | | |\n\n@function grid-columns($columns, $columns-total, $grid-gutter: null) {\n $column-gutter-diff: ($grid-column-units - $grid-gutter-units);\n\n $column-units: ($columns * $grid-column-units) + (($columns - $column-gutter-diff) * $grid-gutter-units);\n $columns-total: ($columns-total * $grid-column-units) + (($columns-total - $column-gutter-diff) * $grid-gutter-units);\n\n // if grid gutter is provided use it in calculation\n @if ($grid-gutter) {\n @return calc(((#{$column-units} + (#{$grid-gutter} * #{$grid-gutter-units})) /#{$columns-total}) * 100%);\n }\n // if grid-gutter is not provided return default calculation\n @else {\n @return calc((#{$column-units}/#{$columns-total}) * 100%);\n }\n}\n"]}