// Foundation for Sites by ZURB // foundation.zurb.com // Licensed under MIT Open Source //// /// @group typography-base //// // Base Typography // - - - - - - - - - - - - - - - // These are styles applied to basic HTML tags, including: // - Paragraphs

// - Bold/italics // - Small text // - Headings

-
// - Anchors // - Dividers
// - Lists
      // - Blockquotes
      // - Code blocks // - Abbreviations // - Citations // - Keystrokes /// Font family for header elements. /// @type String | List $header-font-family: $body-font-family !default; /// Font weight of headers. /// @type String $header-font-weight: $global-weight-normal !default; /// Font style (e.g. italicized) of headers. /// @type String $header-font-style: normal !default; /// Font stack used for elements that use monospaced type, such as code samples /// @type String | List $font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default; /// Color of headers. /// @type Color $header-color: inherit !default; /// Line height of headers. /// @type Number $header-lineheight: 1.4 !default; /// Bottom margin of headers. /// @type Number $header-margin-bottom: 0.5rem !default; /// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles. /// @type Map $header-styles: ( small: ( 'h1': ('font-size': 24), 'h2': ('font-size': 20), 'h3': ('font-size': 19), 'h4': ('font-size': 18), 'h5': ('font-size': 17), 'h6': ('font-size': 16), ), medium: ( 'h1': ('font-size': 48), 'h2': ('font-size': 40), 'h3': ('font-size': 31), 'h4': ('font-size': 25), 'h5': ('font-size': 20), 'h6': ('font-size': 16), ), ) !default; // $header-styles map is built from $header-sizes in order to ensure downward compatibility // when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss @function build_from_header-sizes($header-sizes) { @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.'; $header-styles: (); @each $size, $headers in $header-sizes { $header-map: (); @each $header, $font-size in $headers { $header-map: map-merge($header-map, ($header: ('font-size': $font-size))); } $header-styles: map-merge($header-styles, ($size: $header-map)); } @return $header-styles; } // If it exists $headers-sizes is used to build $header-styles. See the documentation. @if variable-exists(header-sizes) { $header-styles: build_from_header-sizes($header-sizes); } /// Text rendering method of headers. /// @type String $header-text-rendering: optimizeLegibility !default; /// Font size of `` elements. /// @type Number $small-font-size: 80% !default; /// Color of `` elements when placed inside headers. /// @type Color $header-small-font-color: $medium-gray !default; /// Line height of text inside `

      ` elements. /// @type Number $paragraph-lineheight: 1.6 !default; /// Bottom margin of paragraphs. /// @type Number $paragraph-margin-bottom: 1rem !default; /// Text rendering method for paragraph text. /// @type String $paragraph-text-rendering: optimizeLegibility !default; /// Text color of code samples. /// @type Color $code-color: $black !default; /// Font family of code samples. /// @type String | List $code-font-family: $font-family-monospace !default; /// Font weight of text in code samples. /// @type String $code-font-weight: $global-weight-normal !default; /// Background color of code samples. /// @type Color $code-background: $light-gray !default; /// Border around code samples. /// @type List $code-border: 1px solid $medium-gray !default; /// Padding around text of code samples. /// @type Number | List $code-padding: rem-calc(2 5 1) !default; /// Default color for links. /// @type Color $anchor-color: $primary-color !default; /// Default color for links on hover. /// @type Color $anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default; /// Default text decoration for links. /// @type String $anchor-text-decoration: none !default; /// Default text decoration for links on hover. /// @type String $anchor-text-decoration-hover: none !default; /// Maximum width of a divider. /// @type Number $hr-width: $global-width !default; /// Default border for a divider. /// @type List $hr-border: 1px solid $medium-gray !default; /// Default margin for a divider. /// @type Number | List $hr-margin: rem-calc(20) auto !default; /// Line height for items in a list. /// @type Number $list-lineheight: $paragraph-lineheight !default; /// Bottom margin for items in a list. /// @type Number $list-margin-bottom: $paragraph-margin-bottom !default; /// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`). /// @type String $list-style-type: disc !default; /// Positioning for bullets on unordered list items. /// @type String $list-style-position: outside !default; /// Left (or right) margin for lists. /// @type Number $list-side-margin: 1.25rem !default; /// Left (or right) margin for a list inside a list. /// @type Number $list-nested-side-margin: 1.25rem !default; /// Bottom margin for `

      ` elements. /// @type Number $defnlist-margin-bottom: 1rem !default; /// Font weight for `
      ` elements. /// @type String $defnlist-term-weight: $global-weight-bold !default; /// Spacing between `
      ` and `
      ` elements. /// @type Number $defnlist-term-margin-bottom: 0.3rem !default; /// Text color of `
      ` elements. /// @type Color $blockquote-color: $dark-gray !default; /// Padding inside a `
      ` element. /// @type Number | List $blockquote-padding: rem-calc(9 20 0 19) !default; /// Side border for `
      ` elements. /// @type List $blockquote-border: 1px solid $medium-gray !default; /// Font size for `` elements. /// @type Number $cite-font-size: rem-calc(13) !default; /// Text color for `` elements. /// @type Color $cite-color: $dark-gray !default; /// Pseudo content for `` elements. /// @type String $cite-pseudo-content: '\2014 \0020' !default; /// Font family for `` elements. /// @type String | List $keystroke-font: $font-family-monospace !default; /// Text color for `` elements. /// @type Color $keystroke-color: $black !default; /// Background color for `` elements. /// @type Color $keystroke-background: $light-gray !default; /// Padding for `` elements. /// @type Number | List $keystroke-padding: rem-calc(2 4 0) !default; /// Border radius for `` elements. /// @type Number | List $keystroke-radius: $global-radius !default; /// Bottom border style for `` elements. /// @type List $abbr-underline: 1px dotted $black !default; @mixin foundation-typography-base { // Typography resets div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; } // Paragraphs p { margin-bottom: $paragraph-margin-bottom; font-size: inherit; line-height: $paragraph-lineheight; text-rendering: $paragraph-text-rendering; } // Emphasized text em, i { font-style: italic; line-height: inherit; } // Strong text strong, b { font-weight: $global-weight-bold; line-height: inherit; } // Small text small { font-size: $small-font-size; line-height: inherit; } // Headings h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { font-family: $header-font-family; font-style: $header-font-style; font-weight: $header-font-weight; color: $header-color; text-rendering: $header-text-rendering; small { line-height: 0; color: $header-small-font-color; } } // Heading styles @each $size, $headers in $header-styles { @include breakpoint($size) { @each $header, $header-defs in $headers { $font-size-temp: 1rem; #{$header}, .#{$header} { @if map-has-key($header-defs, font-size) { $font-size-temp: rem-calc(map-get($header-defs, font-size)); font-size: $font-size-temp; } @else if map-has-key($header-defs, fs) { $font-size-temp: rem-calc(map-get($header-defs, fs)); font-size: $font-size-temp; } @else if $size == $-zf-zero-breakpoint { font-size: $font-size-temp; } @if map-has-key($header-defs, line-height) { line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp); } @else if map-has-key($header-defs, lh) { line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp); } @else if $size == $-zf-zero-breakpoint { line-height: unitless-calc($header-lineheight, $font-size-temp); } @if map-has-key($header-defs, margin-top) { margin-top: rem-calc(map-get($header-defs, margin-top)); } @else if map-has-key($header-defs, mt) { margin-top: rem-calc(map-get($header-defs, mt)); } @else if $size == $-zf-zero-breakpoint { margin-top: 0; } @if map-has-key($header-defs, margin-bottom) { margin-bottom: rem-calc(map-get($header-defs, margin-bottom)); } @else if map-has-key($header-defs, mb) { margin-bottom: rem-calc(map-get($header-defs, mb)); } @else if $size == $-zf-zero-breakpoint { margin-bottom: rem-calc($header-margin-bottom); } } } } } // Links a { line-height: inherit; color: $anchor-color; text-decoration: $anchor-text-decoration; cursor: pointer; &:hover, &:focus { color: $anchor-color-hover; @if $anchor-text-decoration-hover != $anchor-text-decoration { text-decoration: $anchor-text-decoration-hover; } } img { border: 0; } } // Horizontal rule hr { clear: both; max-width: $hr-width; height: 0; margin: $hr-margin; border-top: 0; border-right: 0; border-bottom: $hr-border; border-left: 0; } // Lists ul, ol, dl { margin-bottom: $list-margin-bottom; list-style-position: $list-style-position; line-height: $list-lineheight; } // List items li { font-size: inherit; } // Unordered lists ul { margin-#{$global-left}: $list-side-margin; list-style-type: $list-style-type; } // Ordered lists ol { margin-#{$global-left}: $list-side-margin; } // Nested unordered/ordered lists ul, ol { & & { margin-#{$global-left}: $list-nested-side-margin; margin-bottom: 0; } } // Definition lists dl { margin-bottom: $defnlist-margin-bottom; dt { margin-bottom: $defnlist-term-margin-bottom; font-weight: $defnlist-term-weight; } } // Blockquotes blockquote { margin: 0 0 $paragraph-margin-bottom; padding: $blockquote-padding; border-#{$global-left}: $blockquote-border; &, p { line-height: $paragraph-lineheight; color: $blockquote-color; } } // Citations cite { display: block; font-size: $cite-font-size; color: $cite-color; &:before { content: $cite-pseudo-content; } } // Abbreviations abbr, abbr[title] { border-bottom: $abbr-underline; cursor: help; text-decoration: none; } // Figures figure { margin: 0; } // Code code { padding: $code-padding; border: $code-border; background-color: $code-background; font-family: $code-font-family; font-weight: $code-font-weight; color: $code-color; } // Keystrokes kbd { margin: 0; padding: $keystroke-padding; background-color: $keystroke-background; font-family: $keystroke-font; color: $keystroke-color; @if has-value($keystroke-radius) { border-radius: $keystroke-radius; } } }