/** * Reset some basic elements */ body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; } /** * Basic styling */ body { font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family; color: $text-color; background-color: $background-color; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; } /** * Set `margin-bottom` to maintain vertical rhythm */ h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, %vertical-rhythm { margin-bottom: $spacing-unit / 2; } /** * `main` element */ main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ } /** * Images */ img { max-width: 100%; vertical-align: middle; } /** * Figures */ figure > img { display: block; } figcaption { font-size: $small-font-size; } /** * Lists */ ul, ol { margin-left: $spacing-unit; } li { > ul, > ol { margin-bottom: 0; } } /** * Headings */ h1, h2, h3, h4, h5, h6 { font-weight: $base-font-weight * 1.5; } /** * Links */ a { color: $brand-color; text-decoration: none; &:visited { color: darken($brand-color, 15%); } &:hover { color: $text-color; text-decoration: underline; } .social-media-list &:hover { text-decoration: none; .username { text-decoration: underline; } } } /** * Blockquotes */ blockquote { color: $grey-color; border-left: 4px solid $grey-color-light; padding-left: $spacing-unit / 2; @include relative-font-size(1.125); letter-spacing: -1px; font-style: italic; > :last-child { margin-bottom: 0; } } /** * Code formatting */ pre, code { @include relative-font-size(0.9375); border-radius: 3px; background-color: #3d3d3d; } code { padding: 1px 5px; } pre { padding: 8px 12px; overflow-x: auto; > code { border: 0; padding-right: 0; padding-left: 0; } } /** * Wrapper */ .wrapper { max-width: $content-width; margin: auto; padding-right: $spacing-unit; padding-left: $spacing-unit; @extend %clearfix; @include media-query($on-laptop) { padding-right: $spacing-unit / 2; padding-left: $spacing-unit / 2; } } /** * Clearfix */ %clearfix:after { content: ""; display: table; clear: both; } /** * Tables */ table { margin-bottom: $spacing-unit; width: 100%; text-align: $table-text-align; color: lighten($text-color, 18%); border-collapse: collapse; border: 1px solid $grey-color-light; tr { &:nth-child(even) { background-color: lighten($grey-color-light, 6%); } } th, td { padding: ($spacing-unit / 3) ($spacing-unit / 2); } th { background-color: lighten($grey-color-light, 3%); border: 1px solid darken($grey-color-light, 4%); border-bottom-color: darken($grey-color-light, 12%); } td { border: 1px solid $grey-color-light; } } /** * Vertical center */ %vertical-center { position: absolute; top: 50%; transform: translateY(-50%); } /** * Flex layout */ %flex-layout { display: flex; } %flex-1 { flex: 1; min-width: 0; /* <-- fix flexbox width with pre tags */ } /** * Flex sticky */ @mixin flex-sticky($top) { position: sticky; align-self: flex-start; /* <-- fix the sticky not work issue */ transform: scale(0.9999); /* <-- fix the sticky x overflow issue */ top: $top; }