/* Basic CSS reset */
html,
body {
margin: 0;
font-family: system-ui, sans-serif;
color: #222;
background: #f8f8f8;
}
input,
textarea {
font-size: 1em;
box-sizing: border-box;
padding: 6px 8px;
}
button,
code,
kbd,
pre {
font-size: 1em;
}
code,
kbd,
pre {
font-family: 'Menlo', 'Monaco', monospace;
border-radius: 3px;
box-sizing: border-box;
padding: 2px 4px 1px 4px;
background: rgba(0, 0, 0, .1);
}
pre {
padding: 8px 12px;
}
p {
line-height: 1.5em;
}
a {
color: #222;
}
a:hover {
color: #666;
}
/* util.css
* custom utility CSS library for projects by @thesephist */
/* margins */
.m0 {margin: 0}
.mt0, .my0 {margin-top: 0}
.mt1, .my1 {margin-top: .25rem}
.mt2, .my2 {margin-top: .5rem}
.mt3, .my3 {margin-top: .75rem}
.mt4, .my4 {margin-top: 1.5rem}
.mt5, .my5 {margin-top: 2.25rem}
.mt6, .my6 {margin-top: 3.25rem}
.mb0, .my0 {margin-bottom: 0}
.mb1, .my1 {margin-bottom: .25rem}
.mb2, .my2 {margin-bottom: .5rem}
.mb3, .my3 {margin-bottom: .75rem}
.mb4, .my4 {margin-bottom: 1.5rem}
.mb5, .my5 {margin-bottom: 2.25rem}
.mb6, .my6 {margin-bottom: 3.25rem}
.ml0, .mx0 {margin-left: 0}
.ml1, .mx1 {margin-left: .25rem}
.ml2, .mx2 {margin-left: .5rem}
.ml3, .mx3 {margin-left: .75rem}
.ml4, .mx4 {margin-left: 1.5rem}
.ml5, .mx5 {margin-left: 2.25rem}
.ml6, .mx6 {margin-left: 3.25rem}
.mr0, .mx0 {margin-right: 0}
.mr1, .mx1 {margin-right: .25rem}
.mr2, .mx2 {margin-right: .5rem}
.mr3, .mx3 {margin-right: .75rem}
.mr4, .mx4 {margin-right: 1.5rem}
.mr5, .mx5 {margin-right: 2.25rem}
.mr6, .mx6 {margin-right: 3.25rem}
/* paddings */
.p0 {padding: 0}
.pt0, .py0 {padding-top: 0}
.pt1, .py1 {padding-top: .25rem}
.pt2, .py2 {padding-top: .5rem}
.pt3, .py3 {padding-top: .75rem}
.pt4, .py4 {padding-top: 1rem}
.pb0, .py0 {padding-bottom: 0}
.pb1, .py1 {padding-bottom: .25rem}
.pb2, .py2 {padding-bottom: .5rem}
.pb3, .py3 {padding-bottom: .75rem}
.pb4, .py4 {padding-bottom: 1rem}
.pl0, .px0 {padding-left: 0}
.pl1, .px1 {padding-left: .25rem}
.pl2, .px2 {padding-left: .5rem}
.pl3, .px3 {padding-left: .75rem}
.pl4, .px4 {padding-left: 1rem}
.pr0, .px0 {padding-right: 0}
.pr1, .px1 {padding-right: .25rem}
.pr2, .px2 {padding-right: .5rem}
.pr3, .px3 {padding-right: .75rem}
.pr4, .px4 {padding-right: 1rem}
/* typography */
h1, h2, h3, h4, h5, h6 {font-weight: 400}
.bold {font-weight: bold}
.clean {text-decoration: none}
.underline {text-decoration: underline}
.f0 {font-size: .75rem}
.f1 {font-size: 1rem}
.f2 {font-size: 1.25rem}
.f3 {font-size: 1.6rem}
.f4 {font-size: 2rem}
.f5 {font-size: 3rem}
.text-start {text-align: start}
.text-end {text-align: end}
.text-center {text-align: center}
/* flex & layout */
.flex {display: flex}
.flex-row {flex-direction: row}
.flex-column {flex-direction: column}
.flex-wrap {flex-wrap: wrap}
.align-center {align-items: center}
.align-start {align-items: flex-start}
.align-end {align-items: flex-end}
.justify-center {justify-content: center}
.justify-start {justify-content: flex-start}
.justify-end {justify-content: flex-end}
.fill, .fill-width {width: 100%}
.fill, .fill-height {height: 100%}
/* page widths */
.page-xs {max-width: 480px}
.page-s {max-width: 600px}
.page-m {max-width: 800px}
.page-l {max-width: 1200px}
.page-xl {max-width: 1600px}
/* shadows */
.shadow1 {box-shadow: 0 2px 3px rgba(0, 0, 0, .36)}
.shadow2 {box-shadow: 0 3px 5px -1px rgba(0, 0, 0, .34)}
.shadow3 {box-shadow: 0 4px 7px -1px rgba(0, 0, 0, .32)}
.shadow4 {box-shadow: 0 5px 9px -2px rgba(0, 0, 0, .3)}
.shadow5 {box-shadow: 0 7px 12px -3px rgba(0, 0, 0, .28)}
/* list */
ul.list-reset,
ol.list-reset {
padding-left: 0;
list-style: none;
}
/* other utility */
.borderless {border: 0 solid transparent}
.rounded {border-radius: 4px}
.block {display: block}
.inline-block {display: inline-block}
.inline {display: inline}
.hidden {display: none}
.pointer {cursor: pointer}
.auto-center {margin-left: auto; margin-right: auto}
/* DEFAULT VARIABLES */
body {
--block-text-color: #222;
--block-background-color: #fff;
--block-accent-color: #00ae86;
--block-shadow-color: #444;
}
/* BASIC BLOCK STYLES */
.block {
display: block;
color: var(--block-text-color);
border: 3px solid var(--block-text-color);
border-radius: 3px;
padding: 4px 8px;
background: var(--block-background-color);
cursor: pointer;
box-sizing: border-box;
position: relative;
top: -2px;
left: -2px;
transition: transform 0.2s;
margin: 8px 6px 10px 6px;
z-index: 1;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
}
.block.wrapper,
.block.wrapper.inline {
display: inline-block;
padding: 0;
}
.block.wrapper > * {
margin: 0;
}
/* INTERACTIVE BLOCK STYLES */
.block::before {
content: "";
background: var(--block-background-color);
border: 3px solid var(--block-text-color);
border-radius: 3px;
box-sizing: border-box;
position: absolute;
top: -3px;
left: -3px;
height: calc(100% + 6px);
width: calc(100% + 6px);
z-index: -1;
}
.block:hover,
.block:focus {
transform: translate(2px, 2px);
}
.block::after {
content: "";
display: block;
box-sizing: border-box;
background: var(--block-shadow-color);
border: 3px solid var(--block-text-color);
border-radius: 3px;
height: calc(100% + 6px);
width: calc(100% + 6px);
position: absolute;
top: 3px;
left: 3px;
right: 0;
z-index: -2;
transition: transform 0.2s;
}
.block:hover::after,
.block:focus::after {
transform: translate(-2px, -3px);
}
.block:active {
color: var(--block-text-color);
transform: translate(3px, 3px);
}
.block:active::after {
transform: translate(-4px, -4px);
}
.block:focus {
outline: none;
}
.block.fixed {
cursor: initial !important;
}
.block.btn {
font-weight: bold;
}
/* FIXED STYLES */
.block.fixed:hover,
.block.fixed:hover::before,
.block.fixed:hover::after,
.block.fixed:active,
.block.fixed:active::before,
.block.fixed:active::after,
.block.fixed:focus,
.block.fixed:focus::before,
.block.fixed:focus::after {
transform: none !important;
}
/* ACCENT STYLES */
.block.accent {
color: var(--block-background-color);
background: var(--block-accent-color);
}
.block.accent::before {
background: var(--block-accent-color);
}
/* INLINE STYLES */
.block.inline {
display: inline-block;
font-size: 0.75em;
padding: 0 6px;
margin: 3px 2px 1px 4px;
}
.block.inline::after {
top: -1px;
left: -1px;
}
.block.inline:hover,
.block.inline:focus {
transform: translate(1px, 1px);
}
.block.inline:hover::after,
.block.inline:focus::after {
transform: translate(-1px, -1px);
}
.block.inline:active {
transform: translate(2px, 2px);
}
/* ROUND STYLES */
.block.round,
.block.round::before,
.block.round::after {
border-radius: 30px;
}
.block.round::after {
left: 1px;
}