UNPKG

@pattern-lab/starterkit-handlebars-demo

Version:
2,261 lines (2,085 loc) 44.3 kB
@charset "UTF-8"; /*------------------------------------*\ #TABLE OF CONTENTS \*------------------------------------*/ /** * ABSTRACTS..............................Declarations of Sass variables & mixins * BASE...................................Default element styles * LAYOUT.................................Layout-specific styles * COMPONENTS.............................Component styles * UTILITIES..............................Utility classes */ /*------------------------------------*\ #ABSTRACTS \*------------------------------------*/ /*------------------------------------*\ #VARIABLES \*------------------------------------*/ /** * CONTENTS * * COLORS * Brand Colors...............Globally-available variables and config * Neutral Colors.............Grayscale colors, including white and black * Utility Colors.............Info, Warning, Error, Success * * TYPOGRAPHY * Font Families..............The fonts used in the design system * Sizing.....................Font sizing * * LAYOUT * Max-widths.................Maximum layout container width * * SPACING * Spacing defaults...........Spacing between elements * * BORDERS * Border Width...............Border thicknesses * Border Radius..............Border radius definitions * * ANIMATION * Animation Speed............Transition/animation speed variables * Animation easing...........Easing variables * * BREAKPOINTS * Breakpoints................Global breakpoint definitions */ /*------------------------------------*\ #COLORS \*------------------------------------*/ /** * Brand Colors * 1) Brand=specific colors */ /** * Neutral Colors * 1) Neutral colors are grayscale values used throughout the UI */ /** * Utility Colors * 1) Utility colors are colors used to provide feedback, such as alert messages, * form validation, etc. */ /*------------------------------------*\ #TYPOGRAPHY \*------------------------------------*/ /** * Font Family */ /** * Font Sizing */ /** * Line Height */ /*------------------------------------*\ #LAYOUT \*------------------------------------*/ /** * Max Width */ /*------------------------------------*\ #SPACING \*------------------------------------*/ /** * Spacing and offsets * 1) Used to space grids and body padding */ /*------------------------------------*\ #BORDERS \*------------------------------------*/ /** * Border */ /** * Border radius */ /*------------------------------------*\ #ANIMATION \*------------------------------------*/ /** * Transition Speed */ /** * Transition Ease */ /*------------------------------------*\ #BREAKPOINTS \*------------------------------------*/ /** * Breakpoints used in media queries * 1) These are not the only breakpoints used, but they provide a few defaults */ /*------------------------------------*\ #MIXINS \*------------------------------------*/ /** * Body Styles * 1) Prevent Mobile Safari from scaling up text: https://blog.55minutes.com/2012/04/iphone-text-resizing/ */ /** * XL Type Styles */ /** * XL Heading Styles */ /** * XL Heading Styles */ /** * Large Heading Styles */ /** * Medium 2 Heading Styles */ /** * Medium Heading Styles */ /*------------------------------------*\ #COLORS \*------------------------------------*/ /** * In this file, we take the literal colors from our palette (defined in variables.scss) * and define them against variables that we can utilise anywhere throughout the project. */ /*------------------------------------*\ #GLOBAL TEXT COLOR \*------------------------------------*/ /** * Body text and background colors */ /** * Highlight colors */ /*------------------------------------*\ #LINKS \*------------------------------------*/ /*------------------------------------*\ #BUTTONS \*------------------------------------*/ /*------------------------------------*\ #FORMS \*------------------------------------*/ /*------------------------------------*\ #TYPOGRAPHY \*------------------------------------*/ /** * In this file, we take the literal font sizes from our scale and define them * against variables that we can utilise anywhere throughout the project. */ /*------------------------------------*\ #BASE \*------------------------------------*/ /*------------------------------------*\ #RESET \*------------------------------------*/ /** * Border-Box http:/paulirish.com/2012/box-sizing-border-box-ftw/ */ * { box-sizing: border-box; } /** * 1) Zero out margins and padding for elements */ html, body, div, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, ol, ul, li, form, legend, label, table, header, footer, nav, section, figure { margin: 0; padding: 0; } /** * 1) Set HTML5 elements to display: block */ header, footer, nav, section, article, figure { display: block; } /*------------------------------------*\ #FONT REFERENCES \*------------------------------------*/ /** * Referencing SCSS mixins by @fontsource library * Hardening references by – redundant, but specifically – declaring the variables previous to @include */ @font-face { font-family: "Abel"; font-style: normal; font-display: swap; font-weight: 400; src: url("../fonts/abel-latin-400-normal.woff2") format("woff2"), url("../fonts/abel-all-400-normal.woff") format("woff"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 400; src: url("../fonts/raleway-cyrillic-ext-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 400; src: url("../fonts/raleway-cyrillic-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 400; src: url("../fonts/raleway-vietnamese-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 400; src: url("../fonts/raleway-latin-ext-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 400; src: url("../fonts/raleway-latin-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "Raleway"; font-style: italic; font-display: swap; font-weight: 400; src: url("../fonts/raleway-cyrillic-ext-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } @font-face { font-family: "Raleway"; font-style: italic; font-display: swap; font-weight: 400; src: url("../fonts/raleway-cyrillic-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @font-face { font-family: "Raleway"; font-style: italic; font-display: swap; font-weight: 400; src: url("../fonts/raleway-vietnamese-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } @font-face { font-family: "Raleway"; font-style: italic; font-display: swap; font-weight: 400; src: url("../fonts/raleway-latin-ext-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } @font-face { font-family: "Raleway"; font-style: italic; font-display: swap; font-weight: 400; src: url("../fonts/raleway-latin-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 700; src: url("../fonts/raleway-cyrillic-ext-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 700; src: url("../fonts/raleway-cyrillic-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 700; src: url("../fonts/raleway-vietnamese-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 700; src: url("../fonts/raleway-latin-ext-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } @font-face { font-family: "Raleway"; font-style: normal; font-display: swap; font-weight: 700; src: url("../fonts/raleway-latin-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /*------------------------------------*\ #BODY \*------------------------------------*/ /** * HTML base styles * 1) Set the html element's height to at least 100% of the viewport. * This is used to achieve a sticky footer */ html { min-height: 100vh; /* 1 */ } /** * Body base styles * 1) Set the body element's height to at least 100% of the viewport. * This is used to achieve a sticky footer */ body { min-height: 100vh; /* 1 */ font-family: "Raleway", "HelveticaNeue", "Helvetica", "Arial", sans-serif; font-size: 1rem; line-height: 1.6; -webkit-text-size-adjust: 100%; /* 1 */ background-color: #fff; color: #131313; } /*------------------------------------*\ #LINKS \*------------------------------------*/ /** * Link base styles */ a { color: #444; text-decoration: none; outline: 0; transition: color 0.15s ease-out; } a:hover, a:focus { color: #ba6333; } a:active { color: #131313; } /*------------------------------------*\ #LISTS \*------------------------------------*/ /** * 1) List base styles */ /** * Remove list styles from unordered and ordered lists */ ol, ul { list-style: none; } /*------------------------------------*\ #HEADINGS \*------------------------------------*/ h1, h2, h3, h4 { font-family: "Abel", serif; text-transform: uppercase; } /** * Heading 1 base styles */ h1 { font-size: 3rem; font-weight: normal; line-height: 1.2; } @media all and (min-width: 47em) { h1 { font-size: 4rem; } } /** * Heading 2 base styles */ h2 { font-size: 1.2rem; font-weight: normal; line-height: 1.2; } /** * Heading 3 base styles */ h3 { font-size: 1.2rem; font-weight: normal; line-height: 1.2; } /** * Heading 4 base styles */ h4 { font-size: 1rem; font-weight: normal; line-height: 1.2; } /*------------------------------------*\ #FORMS \*------------------------------------*/ /** * 1) Form element base styles */ /** * Input placeholder text base styles */ ::-webkit-input-placeholder { color: #808080; } ::-moz-placeholder { color: #808080; } :-ms-input-placeholder { color: #808080; } /** * Fieldset base styles */ fieldset { border: 0; padding: 0; margin: 0; } /** * Legend base styles */ legend { margin-bottom: 0.25rem; } /** * Label base styles */ label { display: block; padding-bottom: 0.25rem; color: #131313; } /** * Add font size 100% of form element and margin 0 to these elements */ button, input, select, textarea { font-family: inherit; font-size: 1rem; margin: 0; } /** * Text area base styles */ textarea { resize: none; } /** * Input and text area base styles */ input, textarea { width: 100%; padding: 0.5rem; border: 1px solid #444; background: #fff; } input:focus, textarea:focus { border-color: #131313; } input:disabled, textarea:disabled { border-color: #eee; background: #eee; color: #808080; } /** * Remove webkit appearance styles from these elements */ input[type=text], input[type=search], input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration, input[type=url], input[type=number], textarea { -webkit-appearance: none; } /** * Checkbox and radio button base styles */ input[type=checkbox], input[type=radio] { width: auto; margin-right: 0.3rem; border-color: #444; } /** * Search input base styles */ input[type=search] { -webkit-appearance: none; border-radius: 0; } /** * Select * 1) Remove default styling */ select { display: block; font-size: 1rem; width: 100%; border: 1px solid #444; border-radius: 0; padding: 0.5rem; height: 2rem; background: #fff; color: #131313; } select:focus { border-color: #131313; } /*------------------------------------*\ #BUTTONS \*------------------------------------*/ /** * Button and submit inputs reset * 1) These should be styled using c-btn */ button { cursor: pointer; } /*------------------------------------*\ #MAIN ELEMENT \*------------------------------------*/ /** * Main element */ [role=main] { display: block; flex: 1 0 auto; } /*------------------------------------*\ #MEDIA \*------------------------------------*/ /** * Responsive image styling * 1) Allows for images to flex with varying screen size */ img { max-width: 100%; height: auto; } /*------------------------------------*\ #TEXT \*------------------------------------*/ /** * Paragraph base styles */ p { margin-bottom: 1rem; } /** * Blockquote base styles */ blockquote { font-style: italic; border-left: 1px solid #808080; color: #808080; padding-left: 1rem; margin-bottom: 1rem; } /** * Horizontal rule base styles */ hr { border: 0; height: 1px; background: #ddd; margin: 1rem 0; } /** * Selection styles */ ::-moz-selection { color: #131313; background: #ddd; /* Gecko Browsers */ } ::selection { color: #131313; background: #ddd; /* WebKit/Blink Browsers */ } /** * Code base styles */ code { display: inline-block; background: #f9f9f9; border: 1px solid #ddd; padding: 0.2rem 0.5rem; line-height: 1.2; font-size: 0.85rem; } /** * Preformatted text base styles */ pre { background: #f9f9f9; border: 1px solid #ddd; font-size: 1rem; padding: 1rem; overflow-x: auto; /** * Remove border from code within preformatted text block */ } pre code { border: 0; } /** * Code with languages associated with them * 1) Override Prism sysles for code blocks with language */ code[class*=language-], pre[class*=language-] { font-family: monospace !important; } /*------------------------------------*\ #TABLES \*------------------------------------*/ /** * Table */ table { border-collapse: collapse; border-spacing: 0; width: 100%; } /** * Table header cell */ th { text-align: left; } /** * Table row */ tr { vertical-align: top; } /*------------------------------------*\ #LAYOUT \*------------------------------------*/ /*------------------------------------*\ #LAYOUT \*------------------------------------*/ /** * Layout Container * 1) Caps the width of the content to the maximum width * and centers the container */ .l-container { max-width: 80rem; padding: 0 1rem; margin: 0 auto; } @media all and (min-width: 60em) { .l-container { padding: 0 2rem; } } .l-container--narrow { max-width: 45rem; } /** * * 1) This caps the width of text passages * to achieve a comfortable line length */ .l-linelength-container { max-width: 36rem; } .l-band { background: #f9f9f9; padding: 2rem 1rem; } /** * 2 column layout */ .l-page-layout--two-column { display: flex; flex-direction: column; } @media all and (min-width: 60em) { .l-page-layout--two-column { flex-direction: row; } } @media all and (min-width: 60em) { .l-page-layout--two-column .l-page-layout__main { width: 70%; padding-right: 1rem; } } /** * Sidebar */ @media all and (min-width: 60em) { .l-page-layout--two-column .l-page-layout__secondary { width: 30%; margin-left: 2rem; } } .l-page-layout--reversed .l-page-layout__secondary { margin-bottom: 2rem; } @media all and (min-width: 60em) { .l-page-layout--reversed .l-page-layout__secondary { order: 1; margin-bottom: 0; } } /*------------------------------------*\ #GRID \*------------------------------------*/ /** * Grid Container */ .l-grid { display: flex; flex-wrap: wrap; } @supports (display: grid) { .l-grid { display: grid; grid-gap: 2rem; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); margin: 0; } } /** * Grid Item */ .l-grid__item { display: flex; } /*------------------------------------*\ #COMPONENTS \*------------------------------------*/ /*------------------------------------*\ #BUTTONS \*------------------------------------*/ /** * * 1) Button or link that has functionality to it */ .c-btn { display: inline-block; border: 1px solid #131313; background: #114689; color: #fff; line-height: 1; padding: 1rem 2rem; border: 0; text-transform: uppercase; text-align: center; transition: all 0.15s ease-out; } .c-btn:hover, .c-btn:focus { color: #fff; background: #041544; } .c-btn--bare { background: none; color: #114689; border: 1px solid transparent; } .c-btn--bare:hover, .c-btn--bare:focus { background: none; color: #114689; border-color: #114689; } /* * Inner container wrapper * 1) Container is direct decendant of <button>, since there's * a bug with applying flexbox directly to a <button> * 2) Only needs to be used for buttons containing both icons and text */ .c-btn__inner { display: flex; align-items: center; justify-content: center; } /* * Button icon */ .c-btn__icon { width: 1rem; height: 1rem; fill: #fff; transition: fill 0.15s ease-out; } /*------------------------------------*\ #DEFINITION LIST \*------------------------------------*/ /** * 1) Definition list (`dl`) that contains a definition term (`dt`) and a definition description (`dd`) */ .c-definition-list { margin: 0 0 1rem; } /** * Definition list item */ .c-definition-list__item { display: flex; } @media all and (min-width: 60em) { .c-definition-list__item { justify-content: space-between; } } /** * Definition list term */ .c-definition-list__term { font-weight: bold; margin-bottom: 0.25rem; width: 5rem; } @media all and (min-width: 60em) { .c-definition-list__term { width: auto; } } /** * Definition list description */ /*------------------------------------*\ #DEFINITION LIST LIST \*------------------------------------*/ /** * 1) List of definition lists */ /** * Definition list list item */ .c-definition-list-list--lined .c-definition-list-list__item { margin-bottom: 1rem; border-bottom: 1px solid #ddd; } /*------------------------------------*\ #HERO BLOCK \*------------------------------------*/ /** * 1) Sit hero flush with header. Normally we wouldn't * do this and handle margin using utility classes, * but we're taking a shortcut for a demo. */ .c-hero { display: block; position: relative; margin: -2rem 0 2rem; /* 1 */ } /** * Hero Image * 1) This is the primary hero image that runs full-bleed across the layout */ .c-hero__img { display: block; width: 100%; object-fit: cover; max-height: 70vh; overflow: hidden; } .c-hero__body { background: #ba6333; padding: 1rem; } @media all and (min-width: 35em) { .c-hero__body { padding: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: 100%; width: 100%; background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 20%, #000 100%); } } /** * Hero Headline * 1) This sits overtop of the hero image when space permits */ .c-hero__headline { text-transform: uppercase; font-size: 3rem; background-color: #ba6333; color: #fff; transition: all 0.15s ease-out; } @media all and (min-width: 35em) { .c-hero__headline { padding: 0 0.4rem; font-size: 4rem; } } /*------------------------------------*\ #TOUT BLOCK \*------------------------------------*/ /** * 1) The tout block contains an image and headline overlayed over the image. */ .c-tout { display: block; position: relative; overflow: hidden; max-width: 1024px; } /** * Tout image */ .c-tout__img { display: block; } /** * Tout headline */ .c-tout__headline { position: absolute; bottom: 0; left: 0; width: 100%; text-transform: uppercase; letter-spacing: 1px; color: #fff; padding: 0.5rem; font-size: 1.4rem; transition: all 0.15s ease-out; } .c-tout:hover .c-tout__headline, .c-tout:focus .c-tout__headline { padding-bottom: 2rem; background: #114689; } /*------------------------------------*\ #SECTION HEADER \*------------------------------------*/ /** * 1) A group of text with a title that headlines a section */ .c-section__header { display: flex; align-items: center; position: relative; margin-bottom: 1rem; } .c-section__header::after { content: ""; display: block; flex: 1; height: 2px; margin-left: 1rem; background: #ba6333; } .c-section__title { font-size: 2rem; } /*------------------------------------*\ #STACKED BLOCK \*------------------------------------*/ /** * 1) A link block consisting of media, headline, and description all stacked on top * of each other * 2) Capped for demo purposes */ .c-stacked-block { display: flex; flex-direction: column; position: relative; max-width: 600px; /* 2 */ transition: transform 0.15s ease-out; } .c-stacked-block:hover, .c-stacked-block:focus { transform: scale(1.03); } .c-stacked-block__body { flex: 1; } .c-stacked-block__title { text-transform: uppercase; letter-spacing: 1px; color: #114689; transition: color 0.15s ease-out; } .c-stacked-block:hover .c-stacked-block__title, .c-stacked-block:focus .c-stacked-block__title { color: #ba6333; } .c-stacked-block__excerpt { margin-bottom: 0; color: #444; } .c-stacked-block__meta { color: #114689; font-size: 1.2rem; font-family: "Abel", serif; margin-bottom: 0; transition: color 0.15s ease-out; } .c-stacked-block:hover .c-stacked-block__meta, .c-stacked-block:focus .c-stacked-block__meta { color: #ba6333; } .c-stacked-block__badge { display: block; position: absolute; top: 0; right: 0; padding: 0.5rem; font-family: "Abel", serif; text-transform: uppercase; color: #fff; background: #ba6333; } .c-stacked-block__optional { margin-left: 0.5rem; color: #808080; font-family: "Abel", serif; font-size: 0.85rem; text-decoration: line-through; } /*------------------------------------*\ #STRIPE \*------------------------------------*/ /** * 1) Block that contains a right and left column of text and other possible components */ .c-stripe { padding: 2rem 0; } @media all and (min-width: 35em) { .c-stripe { display: flex; } } .c-stripe-list--condensed .c-stripe { padding: 1rem 0; } /** * Stripe lef container * 1) Contains elements that display on the left side of the stripe */ .c-stripe__left-container { margin-right: 2rem; } @media all and (min-width: 35em) { .c-stripe__left-container { width: 20%; } } .c-stripe-list--condensed .c-stripe__left-container { display: none; } .c-stripe__link { display: block; } @media all and (min-width: 35em) { .c-stripe__link { max-width: 10rem; } } /** * Stripe right container * 1) Contains elements that display on the right side of the stripe */ .c-stripe__right-container { flex: 1; } @media all and (min-width: 35em) { .c-stripe__right-container { display: flex; align-items: center; } } .c-stripe__title { margin-bottom: 2rem; } @media all and (min-width: 35em) { .c-stripe__title { margin-bottom: 0; margin-right: 2rem; width: 40%; } } @media all and (min-width: 35em) { .c-stripe__meta { margin-left: 2rem; margin-bottom: 2.25rem; width: 20%; text-align: right; flex: 1; } } .c-stripe__meta-label { font-weight: bold; margin-bottom: 0.75rem; } .c-stripe__meta-span { font-family: "Abel", serif; color: #114689; font-size: 1.2rem; } /*------------------------------------*\ #STRIPE LIST \*------------------------------------*/ /** * 1) Block that contains a right and left column of text and other possible components */ .c-stripe-list__item { border-bottom: 1px solid #ddd; } /*------------------------------------*\ $FOOTER \*------------------------------------*/ /** * 1) Global block at the bottom of each page that contains a navigation and other information */ .c-footer { padding: 2rem 0; margin-top: 2rem; background: #041544; } @media all and (min-width: 47em) { .c-footer__inner { display: flex; } } @media all and (min-width: 47em) { .c-footer__bottom { margin-left: auto; } } .c-footer__credit, .c-footer__copyright { color: #fff; text-transform: uppercase; font-family: "Abel", serif; font-size: 0.85rem; } .c-footer__credit a, .c-footer__copyright a { color: #ba6333; } .c-footer__credit a:hover, .c-footer__credit a:focus, .c-footer__copyright a:hover, .c-footer__copyright a:focus { color: #808080; } /*------------------------------------*\ #FOOTER NAV \*------------------------------------*/ /** * 1) Global block at the bottom of each page that contains a navigation and other information */ .c-footer-nav { margin-bottom: 2rem; } @media all and (min-width: 47em) { .c-footer-nav { display: flex; margin-bottom: 0; } } @media all and (min-width: 47em) { .c-footer-nav__item { margin-right: 2rem; } .c-footer-nav__item:last-child { margin-right: 0; } } .c-footer-nav__link { color: #fff; font-family: "Abel", serif; text-transform: uppercase; font-size: 1.2rem; } /*------------------------------------*\ #HEADER \*------------------------------------*/ /** * Global block at the top of each page containing the navigation, logo, and other potential contents */ .c-header { position: relative; margin-bottom: 2rem; border-bottom: 1px solid #ddd; } /** * Header inner */ .c-header__inner { padding-top: 1rem; padding-bottom: 1rem; } @media all and (min-width: 35em) { .c-header__inner { display: flex; align-items: center; } } /** * Header navigation button * 1) Button used to toggle the navigation on/off on small screens */ .c-header__nav-btn { margin-left: auto; } @media all and (min-width: 70em) { .c-header__nav-btn { display: none; } } /** * Header navigation conntainer * 1) Contains the primary navigation and other possible patterns */ .c-header__nav-container { display: none; /** * Header navigation conntainer within vertical header */ } @media all and (min-width: 70em) { .c-header__nav-container { display: block; margin-left: auto; } } @media all and (min-width: 70em) { .c-header--vertical .c-header__nav-container { margin-left: 0; } } /** * Active header nav container */ .c-header__nav-container.is-active { display: block; position: absolute; background: #eee; top: 100%; left: 0; width: 100%; z-index: 5; padding: 1rem; /** * Active header nav container within vertical header */ } @media all and (min-width: 70em) { .c-header__nav-container.is-active { display: block; position: static; padding: 0; margin-left: auto; width: inherit; } } @media all and (min-width: 70em) { .c-header--vertical .c-header__nav-container.is-active { margin-left: 0; width: 100%; } } /*------------------------------------*\ #LOGO \*------------------------------------*/ /** * Branding image or text of the site */ .c-logo { font-size: 2rem; } .c-footer .c-logo { margin-bottom: 2rem; } @media all and (min-width: 47em) { .c-footer .c-logo { margin-bottom: 0; } } /** * Logo link */ .c-logo__link { display: block; } /** * Logo image */ .c-logo__img { display: block; } .c-logo__left { color: #114689; } .c-logo--light .c-logo__left { color: #fff; } .c-logo__right { color: #ba6333; } /*------------------------------------*\ #ICON \*------------------------------------*/ /** * 1) Small image that represents functionality */ .c-icon { height: 16px; width: 16px; } /*------------------------------------*\ #INPUT \*------------------------------------*/ /** * 1) Actual input of a field */ .c-stripe .c-input { max-width: 3rem; } /*------------------------------------*\ #PAGE HEADER \*------------------------------------*/ /** * 1) Container that consists of of a page header title and description */ /** * Page header title */ .c-page-header { margin-top: 4rem; margin-bottom: 2rem; } /** * Page description */ .c-page-header__desc { margin-top: 1rem; } /*------------------------------------*\ #PAGINATION \*------------------------------------*/ /** * Pagination */ .c-pagination { display: flex; flex-wrap: wrap; justify-content: center; overflow: hidden; margin-bottom: 1rem; font-family: "Abel", serif; text-transform: uppercase; } .c-pagination__item { border-right: 1px solid #ddd; } .c-pagination__item:last-child { border: 0; } .c-pagination__link { padding: 1rem; text-decoration: underline; } .c-pagination__item:first-child .c-pagination__link { padding-left: 0; } .c-pagination__item.is-active .c-pagination__link { font-weight: bold; text-decoration: none; pointer-events: none; } .c-pagination__item.is-disabled .c-pagination__link { color: #ddd; pointer-events: none; text-decoration: none; } /*------------------------------------*\ #PRIMARY NAVIGATION \*------------------------------------*/ /** * Primary navigation existing in the header and maybe the footer */ @media all and (min-width: 32em) { .c-primary-nav { margin-left: auto; } } /** * Primary navigation list */ .c-primary-nav__list { display: flex; align-items: center; } /** * Primary navigation item */ .c-primary-nav__item { margin-right: 2rem; } .c-primary-nav__item:last-child { margin-right: 0; } /** * Primary navigation link */ .c-primary-nav__link { display: block; cursor: pointer; font-family: "Abel", serif; font-size: 1.2rem; line-height: 1; text-transform: uppercase; transition: background 0.15s ease-out; } .c-primary-nav__link:hover, .c-primary-nav__link:focus { color: #ba6333; } .c-primary-nav__icon.c-icon { fill: #041544; height: 24px; width: 24px; } /*------------------------------------*\ #PROMO BLOCK \*------------------------------------*/ /** * Large block containing an image and copy * 1) Move promo block up to sit flush with hero * Normally we wouldn't do this, but we're taking * a shortcut for demo purposes. */ .c-promo-block { color: #fff; position: relative; margin-top: -2rem; /* 1 */ } .c-promo-block__media { position: relative; z-index: 0; } .c-promo-block__media::before { content: ""; background: linear-gradient(to left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 40%, #000 100%); position: absolute; top: 0; right: 0; bottom: 0; left: 0; } .c-promo-block--right .c-promo-block__media::before { background: linear-gradient(to right, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 20%, #000 100%); } .c-promo-block__body { position: absolute; top: 40%; left: 4rem; z-index: 1; max-width: 400px; transition: opacity 0.5s ease-out, transform 0.5s ease-out; } .c-promo-block--right .c-promo-block__body { left: auto; right: 4rem; } .c-promo-block__body.c-promo-block__body--initial { opacity: 0; transform: translateY(70px); } .c-promo-block__img { display: block; width: 100%; } .c-promo-block__link { color: #fff; } .c-promo-block__link:hover, .c-promo-block__link:focus { color: #ba6333; } .c-promo-block__heading { display: inline; color: inherit; border-bottom: 2px solid #ba6333; font-size: 2rem; } @media all and (min-width: 60em) { .c-promo-block__heading { font-size: 3rem; } } .c-promo-block__description { margin-top: 1rem; } @media all and (min-width: 60em) { .c-promo-block__description { font-size: 1.2rem; } } /*------------------------------------*\ #PROGRESS TRACKER \*------------------------------------*/ /** * 1) Ordered list showing progress (i.e. step by step) * 2) Display flex used to put items in row. Flex wrap wraps items underneat when space is * unavailable. */ .c-progress-tracker { display: flex; /* 2 */ justify-content: center; flex-wrap: wrap; /* 2 */ } /* Progress tracker iterm */ .c-progress-tracker__item { margin-right: 2rem; text-align: center; font-size: 0.85rem; width: 5rem; /* Don't display the horizontal line on the last item number */ } .c-progress-tracker__item:last-child .c-progress-tracker__number::before { display: none; } .c-progress-tracker__number { padding: 0.125rem; margin-bottom: 0.5rem; color: #114689; border: 1px solid #114689; background-color: #fff; position: relative; } @media all and (min-width: 28em) { .c-progress-tracker__number { padding: 0.5rem; } } .is-complete .c-progress-tracker__number { background-color: #ddd; border-color: #ddd; } .is-current .c-progress-tracker__number { color: #fff; background-color: #114689; font-weight: bold; } .is-disabled .c-progress-tracker__number { color: #041544; border-color: #114689; } .c-progress-tracker__number::before { content: " "; display: block; width: 4rem; height: 1px; background-color: #ddd; position: absolute; top: 50%; right: -4rem; z-index: -1; } .c-progress-tracker__label { display: none; /* Do show it on larger screens */ } @media all and (min-width: 35em) { .c-progress-tracker__label { display: inline; } } .is-current .c-progress-tracker__label { font-weight: bold; } /*------------------------------------*\ #TEXT PASSAGE \*------------------------------------*/ /** * 1) A passage of text, including various components (i.e. article, blog post) */ .c-text-passage { /** * Link within the text passage */ /** * Blockquote within text passage */ /** * First-level heading within text passage */ /** * Second-level heading within text passage */ /** * Third-level heading within text passage */ /** * Fourth-level heading within text passage */ /** * Fifth-level heading within text passage */ /** * Sixth-level heading within text passage */ /** * Unordered list within text passage */ /** * Ordered list within text passage */ } .c-text-passage p { margin-bottom: 1rem; } .c-text-passage a { text-decoration: underline; } .c-text-passage blockquote { padding-left: 0.8rem; border-left: 3px solid #444; color: #808080; font-size: 1rem; } .c-text-passage h1 { margin-bottom: 1rem; } .c-text-passage h2 { margin: 1rem 0 1rem; color: #444; font-weight: bold; } .c-text-passage h3 { margin: 1rem 0 1rem; } .c-text-passage h4 { margin: 1rem 0 1rem; } .c-text-passage h5 { margin: 1rem 0 1rem; } .c-text-passage h6 { margin: 1rem 0 1rem; } .c-text-passage ul { list-style: disc; margin-left: 1rem; margin-bottom: 1rem; } .c-text-passage ul li:last-child { margin-bottom: 0; } .c-text-passage ol { list-style: decimal; margin-left: 1rem; margin-bottom: 1rem; } .c-text-passage ol li:last-child { margin-bottom: 0; } .c-text-passage li { margin-bottom: 0.5rem; line-height: 1.6; } /*------------------------------------*\ #FIELDS \*------------------------------------*/ /** * 1) Consists of a label, form control, and an optional note about the field. */ .c-field { margin-bottom: 2rem; } /** * Field label */ .c-field__label { margin-bottom: 0.5rem; font-size: 1rem; font-weight: bold; } /** * Field body */ .c-field__body { position: relative; } /** * Field note */ .c-field__note { display: inline-block; font-size: 0.75rem; color: #808080; } /*------------------------------------*\ #SEARCH FORM \*------------------------------------*/ /** * 1) Search form that contains a text input and button */ /** * Page header title */ .c-search-form__body { display: flex; } .c-stacked-block-list { max-width: 80rem; margin-bottom: 2rem; } /*------------------------------------*\ #TOTAL CONTAINER \*------------------------------------*/ /** * 1) */ .c-total-container { margin-top: 1rem; } @media all and (min-width: 35em) { .c-total-container { text-align: right; } } .c-total { display: flex; align-items: center; } @media all and (min-width: 35em) { .c-total { justify-content: flex-end; } } .c-total--no-break { justify-content: flex-start; } @media all and (min-width: 60em) { .c-total--no-break { justify-content: flex-end; } } .c-total__label { font-weight: bold; margin-right: 0.5rem; padding-bottom: 0; } .c-total--no-break .c-total__label { width: 5rem; } @media all and (min-width: 60em) { .c-total--no-break .c-total__label { width: auto; } } .c-total__span { font-family: "Abel", serif; font-size: 1.2rem; color: #114689; } .c-total--no-break .c-total__span { margin-left: 2rem; } @media all and (min-width: 60em) { .c-total--no-break .c-total__span { margin-left: 0; } } /*------------------------------------*\ #UTILITIES \*------------------------------------*/ /*------------------------------------*\ #VISIBILITY CLASSES \*------------------------------------*/ /** * Is Hidden * 1) Completely remove from the flow and screen readers. */ .u-is-hidden { display: none !important; visibility: hidden !important; } /** * Is Visibly Hidden * 1) Completely remove from the flow but leave available to screen readers. */ .u-is-vishidden { position: absolute !important; overflow: hidden; width: 1px; height: 1px; padding: 0; border: 0; clip: rect(1px, 1px, 1px, 1px); } /*------------------------------------*\ #SPACING \*------------------------------------*/ /** * Margin bottom none * 1) Force margin bottom of 0 */ .u-margin-bottom-none { margin-bottom: 0 !important; } /** * Margin bottom small * 1) Force margin bottom of $spacing-small variable */ .u-margin-bottom-small { margin-bottom: 1rem !important; } /** * Margin bottom * 1) Force margin bottom of $spacing variable */ .u-margin-bottom { margin-bottom: 1rem !important; } /** * Margin bottom large * 1) Force margin bottom of $spacing-large variable */ .u-margin-bottom-large { margin-bottom: 2rem !important; } .u-margin-bottom-large-to-xxl { margin-bottom: 2rem !important; } @media all and (min-width: 60em) { .u-margin-bottom-large-to-xxl { margin-bottom: 8rem !important; } } /** * Margin top none * 1) Force margin top of 0 */ .u-margin-top-none { margin-top: 0 !important; } /** * Margin top small * 1) Force margin top of $spacing-small variable */ .u-margin-top-small { margin-top: 1rem !important; } /** * Margin top * 1) Force margin top of $spacing variable */ .u-margin-top { margin-top: 1rem !important; } /** * Margin top large * 1) Force margin top of $spacing-large variable */ .u-margin-top-large { margin-top: 2rem !important; } .u-margin-top-booking { margin-top: 28rem !important; } /** * Margin right none * 1) Force margin right of 0 */ .u-margin-right-none { margin-right: 0 !important; } /** * Margin right small * 1) Force margin right of $spacing-small variable */ .u-margin-right-small { margin-right: 1rem !important; } /** * Margin right * 1) Force margin right of $spacing variable */ .u-margin-right { margin-right: 1rem !important; } /** * Margin right large * 1) Force margin right of $spacing-large variable */ .u-margin-right-large { margin-right: 2rem !important; } /** * Margin left none * 1) Force margin left of 0 */ .u-margin-left-none { margin-left: 0 !important; } /** * Margin left small * 1) Force margin left of $spacing-small variable */ .u-margin-left-small { margin-left: 1rem !important; } /** * Margin left * 1) Force margin left of $spacing variable */ .u-margin-left { margin-left: 1rem !important; } /** * Margin left large * 1) Force margin left of $spacing-large variable */ .u-margin-left-large { margin-left: 2rem !important; } /** * Center display block contents */ .u-margin-center { margin: 0 auto !important; } /** * Padding none */ .u-padding-none { padding: 0 !important; } /** * Padding small */ .u-padding-small { padding: 1rem !important; } /** * Padding */ .u-padding { padding: 1rem !important; } /** * Padding large */ .u-padding-large { padding: 2rem !important; } /** * Padding top none */ .u-padding-top-none { padding-top: 0 !important; } /** * Padding top small */ .u-padding-top-small { padding-top: 1rem !important; } /** * Padding top */ .u-padding-top { padding-top: 1rem !important; } /** * Padding top large */ .u-padding-top-large { padding-top: 2rem !important; } /** * Padding bottom none */ .u-padding-bottom-none { padding-bottom: 0 !important; } /** * Padding bottom small */ .u-padding-bottom-small { padding-bottom: 1rem !important; } /** * Padding bottom */ .u-padding-bottom { padding-bottom: 1rem !important; } /** * Padding bottom large */ .u-padding-bottom-large { padding-bottom: 2rem !important; } /** * Padding right none */ .u-padding-right-none { padding-right: 0 !important; } /** * Padding right small */ .u-padding-right-small { padding-right: 1rem !important; } /** * Padding right */ .u-padding-right { padding-right: 1rem !important; } /** * Padding right large */ .u-padding-right-large { padding-right: 2rem !important; } /** * Padding left none */ .u-padding-left-none { padding-left: 0 !important; } /** * Padding left small */ .u-padding-left-small { padding-left: 1rem !important; } /** * Padding left */ .u-padding-left { padding-left: 1rem !important; } /** * Padding left large */ .u-padding-left-large { padding-left: 2rem !important; } /*# sourceMappingURL=style.css.map */