@import "variables/variables"; @import "ui-variables"; @import "mixins/mixins"; // // Typography // -------------------------------------------------- @font-size-h1: floor((@font-size-base * 2.6)); // ~36px @font-size-h2: floor((@font-size-base * 2.15)); // ~30px @font-size-h3: ceil((@font-size-base * 1.7)); // ~24px @font-size-h4: ceil((@font-size-base * 1.25)); // ~18px @font-size-h5: @font-size-base; @font-size-h6: ceil((@font-size-base * 0.85)); // ~12px @headings-font-family: inherit; @headings-font-weight: 500; @headings-line-height: 1.1; @headings-color: inherit; // Mixins // ------------------------- .text-variant(@type) { @text-color-name: "text-color-@{type}"; @bg-color-name: "background-color-@{type}"; @text-color: @@text-color-name; @bg-color: @@bg-color-name; color: @text-color; a&:hover, a&:focus { color: darken(@text-color, 10%); } code { color: @text-color; background: fadeout(@bg-color, 80%); } a, a code { text-decoration: underline; color: darken(@text-color, 10%); &:hover { color: darken(@text-color, 15%); } } } .bg-variant(@color) { background-color: @color; a&:hover, a&:focus { background-color: darken(@color, 10%); } } // Headings // ------------------------- h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: @headings-font-family; font-weight: @headings-font-weight; line-height: @headings-line-height; color: @headings-color; small, .small { font-weight: normal; line-height: 1; color: @headings-small-color; } } h1, .h1, h2, .h2, h3, .h3 { margin-top: @line-height-computed; margin-bottom: (@line-height-computed / 2); small, .small { font-size: 65%; } } h4, .h4, h5, .h5, h6, .h6 { margin-top: (@line-height-computed / 2); margin-bottom: (@line-height-computed / 2); small, .small { font-size: 75%; } } h1, .h1 { font-size: @font-size-h1; } h2, .h2 { font-size: @font-size-h2; } h3, .h3 { font-size: @font-size-h3; } h4, .h4 { font-size: @font-size-h4; } h5, .h5 { font-size: @font-size-h5; } h6, .h6 { font-size: @font-size-h6; } // Body text // ------------------------- p { margin: 0 0 (@line-height-computed / 2); } // Emphasis & misc // ------------------------- // Ex: (12px small font / 14px base font) * 100% = about 85% .text-smaller, small, .small { font-size: floor((100% * @font-size-small / @font-size-base)); } mark, .mark { background-color: @state-warning-bg; padding: .2em; } // Alignment .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .text-justify { text-align: justify; } .text-nowrap { white-space: nowrap; } // Transformation .text-lowercase { text-transform: lowercase; } .text-uppercase { text-transform: uppercase; } .text-capitalize { text-transform: capitalize; } // text-classes .text-subtle, .text-muted { color: @text-color-subtle; } .text-highlight { color: @text-color-highlight; } // Contextual colors .text-info, .text-primary { .text-variant(info); } .text-success { .text-variant(success); } .text-warning { .text-variant(warning); } .text-error, .text-danger { .text-variant(error); } // Contextual backgrounds // For now we'll leave these alongside the text classes until v4 when we can // safely shift things around (per SemVer rules). .bg-primary { // Given the contrast here, this is the only class to have its color inverted // automatically. color: #fff; .bg-variant(@brand-primary); } .bg-success { .bg-variant(@state-success-bg); } .bg-info { .bg-variant(@state-info-bg); } .bg-warning { .bg-variant(@state-warning-bg); } .bg-danger { .bg-variant(@state-danger-bg); } // Highlight // ------------------------- .highlight() { font-weight: bold; border-radius: @component-border-radius; } .highlight { .highlight(); color: @text-color-highlight; background-color: @background-color-highlight; } .highlight-color(@name, @color) { .highlight-@{name} { .highlight(); color: #fff; background-color: fadeout(@color, 50%); } } .highlight-color(info, @background-color-info); .highlight-color(warning, @background-color-warning); .highlight-color(error, @background-color-error); .highlight-color(success, @background-color-success); // Lists // ------------------------- // Unordered and Ordered lists ul, ol { margin-top: 0; margin-bottom: (@line-height-computed / 2); ul, ol { margin-bottom: 0; } } // Description Lists dl { margin-top: 0; // Remove browser default margin-bottom: @line-height-computed; } dt, dd { line-height: @line-height-base; } dt { font-weight: bold; } dd { margin-left: 0; // Undo browser default } // Misc // ------------------------- // Abbreviations and acronyms abbr[title], // Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 abbr[data-original-title] { cursor: help; border-bottom: 1px dotted @abbr-border-color; } // Blockquotes blockquote { padding: (@line-height-computed / 2) @line-height-computed; margin: 0 0 @line-height-computed; font-size: @blockquote-font-size; border-left: 5px solid @blockquote-border-color; p, ul, ol { &:last-child { margin-bottom: 0; } } } // Addresses address { margin-bottom: @line-height-computed; font-style: normal; line-height: @line-height-base; }