ullamlaboriosam
Version:
Lightweight and intuitive javascript library
480 lines (378 loc) • 6.89 kB
CSS
html, body {
border: none;
margin: 0;
padding: 0;
transition: all .3s ease;
font-size: 1.05em;
background: #D0E2EC;
background-attachment: fixed;
background-size: cover;
}
body {
padding-top: 3em;
overflow-y: scroll;
overflow-x: hidden;
}
nav .icon {
vertical-align: middle;
display: inline-block;
height: 2em;
}
nav img {
height: 2em;
}
article {
position: relative;
width: calc(100% - 1.2em);
max-width: 900px;
margin: .6em auto;
min-height: calc(100vh - 4.2em);
padding: 10px 20px 20px;
box-sizing: border-box;
border-radius: 10px;
box-shadow: .1em .1em .1em rgba(17, 17, 17, 0.2);
background: #fff;
transition: all .3s ease;
}
.loading::before,
.loading::after {
content: '';
position: absolute;
z-index: 1;
border-radius: inherit;
}
.loading::before {
left: 0;
top: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, .5);
}
.loading::after {
width: 30px;
height: 30px;
left: 50%;
top: 50%;
border: 10px solid #0074d9;
border-color: #0074d9 transparent #0074d9 transparent;
border-radius: 50%;
animation: spin 1s ease 0s infinite;
transform: translate(-50%, -50%);
}
@keyframes spin {
from {
transform: translate(-50%, -50%) rotate(0deg);
}
to {
transform: translate(-50%, -50%) rotate(360deg);
}
}
article h1,
article h2 {
padding: 70px 0 0;
margin: -70px 0 0;
transition: all .3s ease;
}
@media all and (min-width: 900px) {
article {
margin: calc(20vh - 1.5em) auto;
min-height: 60vh;
padding: 50px;
}
aside + article {
margin-top: .6em;
}
aside + article.loading {
margin: .6em auto;
min-height: calc(100vh - 4.2em);
}
}
aside {
position: fixed;
height: calc(100vh - 3.6em);
top: 3.6em;
left: 0;
border-radius: 0 10px 0 0;
background: #fff;
transition: all .3s ease;
box-shadow: .1em .1em .1em rgba(17, 17, 17, 0.2);
width: 0;
padding: 0;
overflow: hidden;
}
aside.loading {
height: calc(100vh - 4.2em);
bottom: .6em;
border-radius: 0 10px 10px 0;
}
aside ul,
aside ol {
max-height: 100%;
padding: 10px;
margin: 0;
list-style: none;
overflow-y: scroll;
}
aside .brand ~ ul,
aside .brand ~ ol {
max-height: calc(100% - 60px);
}
aside li:last-child {
margin-bottom: 20vh;
}
aside ul .pseudo.button,
aside ol .pseudo.button {
width: 100%;
text-align: left;
color: #0074d9;
margin: 0;
}
[data-headers] img {
height: 2em;
vertical-align: middle;
margin-right: 5px
}
[data-headers] .brand,
[data-headers] .button.brand {
width: 100%;
text-align: left;
padding: .3em;
margin: 0 0 10px;
}
.pseudo.button.active {
box-shadow: 0 0 0 2px #0074d9 inset;
}
.pseudo.button.active:hover {
color: #fff;
background: #0074d9;
}
@media all and (min-width: 900px) {
aside {
width: 250px;
padding: 10px;
}
body.withaside {
padding-left: 250px;
}
}
@media all and (min-width: 1200px) {
body.withaside {
padding-left: 250px;
}
aside {
left: calc(50% - 450px - 125px - .6em);
z-index: 10;
}
aside {
border-radius: 10px 10px 0 0;
}
aside.loading {
border-radius: 10px;
}
}
.tableofcontents {
height: 0;
overflow: hidden;
padding: 0;
}
.tableofcontents ul {
list-style: none;
padding-left: 0px;
margin: 30px 0;
}
.tableofcontents .button {
width: 100%;
text-align: left;
color: #0074d9;
margin: 0;
}
.col {
-moz-column-count: 4;
column-count: 4;
}
@media all and (min-width: 900px) {
.tableofcontents {
height: auto;
overflow: visible;
}
}
pre,
pre[class*="language-"] {
margin-top: 0;
padding: .5em .8em;
font-size: 1.2em;
line-height: 1.3;
}
nav.super .menu {
display: none;
padding: .6em;
}
nav.super .brand {
padding: 0;
}
nav.super header {
display: none;
height: 3em;
clear: both;
z-index: 100;
padding: 0 .6em;
height: 3em;
line-height: 3em;
font-size: 1em;
width: calc(100vw - 5em);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
nav.super .home {
display: none;
}
nav.super .button.switch {
display: none;
}
nav.super footer {
float: right;
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
white-space: nowrap;
}
nav.super footer .flex {
display: inline;
}
nav.super footer .button {
width: auto;
padding: .3em .9em;
}
nav.super footer .button i {
margin-right: 10px;
}
@media all and (max-width: 900px) {
.no-scroll {
overflow-y: hidden;
}
nav.super header {
display: inline-block;
}
nav.super .brand .text {
display: none;
}
nav.super .home {
display: inline-block;
}
nav.super .button.switch {
display: block;
position: fixed;
top: 0;
right: 0;
margin: 0;
height: 1.5em;
width: 1.5em;
line-height: 1.5em;
border-radius: 0;
font-size: 2em;
padding: 0;
color: #333;
transform: none;
}
nav.super .menu > .content,
nav.super footer {
margin: 0;
}
nav.super .menu .button {
display: block;
text-align: left;
border-radius: 0;
margin: 0;
padding: .9em;
}
nav .burger ~ .menu > * {
display: flex;
margin: 0 0 0 -0.6em;
}
nav.super ul {
padding: 0;
list-style: none;
}
nav.super li {
margin: 0;
}
nav.super footer {
z-index: 100;
position: fixed;
width: 100%;
height: 0em;
top: calc(100vh - 5em);
display: block;
float: none;
transform: none;
transition: all .3s ease;
}
nav.super :checked ~ * footer {
height: 0em;
}
nav.super footer .flex {
display: flex;
}
nav.super footer .button {
width: 33.333%;
height: 5em;
border-radius: 0;
margin: 0;
line-height: 1;
padding: 1em .3em;
background: #0074d9;
color: #fff;
}
nav.super footer .button span {
font-size: 0.8em;
}
nav.super footer .button i,
nav.super footer .button img {
display: block;
font-size: 2em;
height: 1em;
text-align: center;
margin: 0 auto 10px;
}
nav.super .switch::before {
content: '≡';
}
nav.super .show:checked ~ .switch::before {
content: '×';
}
nav.super .menu,
nav.super footer {
left: 0;
top: 100vh;
opacity: 1;
z-index: 1;
transform: scaleY(1);
pointer-events: all;
z-index: 100;
}
nav.super .menu {
background: #ddd;
display: block;
top: 3em;
width: 100%;
height: 0;
padding: 0 .6em;
min-height: 0;
overflow: hidden;
border: 0
transition: all .6s ease;
}
nav.super .menu .button {
background: #fff;
}
nav.super .show:checked ~ .menu {
width: 100%; /* overwriting picnic */
height: calc(100vh - 8em);
padding: .6em;
}
nav.super .show:checked ~ footer {
top: calc(100vh - 5em);
}
}