/**
* 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-family: $base-font-family; font-weight: $base-font-weight; font-size: #{$base-font-size}; line-height: #{$base-line-height}; 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; &:hover { 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); color: $text-color;
}
*:not(pre) > code {
padding: 3px 6px; border-radius: 3px; background-color: #eee; margin: 0 5px;
}
pre {
overflow-x: auto; position: relative; background-color: #f0f0f0; > code { display: inline-block; padding: 20px!important; background-color: transparent; border: 0; } table, pre { margin-bottom: 0; .gutter, .code { padding: 6px; border: none; } }
}
/**
* Wrapper */
.wrapper {
max-width: $content-width; margin: auto; padding-right: $spacing-unit; padding-left: $spacing-unit; @extend %clearfix;
}
/**
* Clearfix */
%clearfix:after {
content: ""; display: table; clear: both;
}
/**
* Tables */
table {
display: block; margin-bottom: $spacing-unit; width: 100%; text-align: $table-text-align; color: lighten($text-color, 5%); border-collapse: collapse; overflow: auto; 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; }
}
/**
* Flex layout */
%flex {
display: flex;
}
%flex-1 {
flex: 1; min-width: 0; /* <-- fix flexbox width with pre tags */
}
/**
* Flex sticky */
@mixin flex-sticky($top) {
position: sticky; position: -moz-sticky; /* <-- fix sticky compatibility issue */ position: -ms-sticky; position: -o-sticky; position: -webkit-sticky; align-self: flex-start; /* <-- fix the sticky not work issue */ transform: scale(0.9999); /* <-- fix the sticky x overflow issue */ top: $top;
}
/**
* Vertical center */
@mixin vertical-center($position) {
position: $position; top: 50%; transform: translateY(-50%);
}
/**
* Horizontal center */
@mixin horizontal-center($position) {
position: $position; left: 50%; transform: translateX(-50%);
}
/**
* Center background image */
@mixin center-image {
height: 100%; max-width: 1000%; background-size: cover; background-position: center center; overflow: hidden;
}