hugo-book-theme/assets/book.scss
2018-10-22 15:51:20 +02:00

189 lines
No EOL
2.9 KiB
SCSS

@import 'variables';
@import 'markdown';
html {
font-size: $font-size-base;
letter-spacing: .3px;
}
html, body {
min-width: $body-min-width;
overflow: hidden auto;
}
body {
color: $body-font-color;
background: $body-background;
font-family: 'Roboto', sans-serif;
font-weight: $body-font-weight;
box-sizing: border-box;
* {
box-sizing: inherit;
}
}
h1, h2, h3, h4, h5 {
font-weight: 400;
}
a {
text-decoration: none;
color: $color-link;
&:visited {
color: $color-visited-link;
}
}
img {
vertical-align: middle;
}
aside {
ul {
margin: 0;
padding-left: $padding-16;
list-style: none;
line-height: 1.5em;
li {
margin: .5em 0;
a { display: block; }
a:hover { opacity: .5; }
img {
height: $padding-16;
}
}
}
// start padding on second level
nav > ul {
padding-left: 0;
}
}
aside.fixed nav {
position: fixed;
top: 0;
bottom: 0;
overflow: hidden auto;
}
header {
display: flex;
align-items:center;
justify-content: space-between;
margin-bottom: $padding-16;
display: none;
}
main {
max-width: $content-max-width;
margin: 0 auto;
display: flex;
flex-flow: row;
aside nav, .content, .markdown {
transition: .2s ease-in-out;
transition-property: transform, margin-left, opacity;
will-change: transform, margin-left;
}
.menu {
flex: 0 0 $nav-menu-width;
.brand {
margin-top: 0;
margin-bottom: $padding-16;
}
nav {
width: $nav-menu-width;
padding: $padding-16;
font-size: $font-size-14;
}
a { color: $nav-link-color; }
a.active { color: $color-link; }
.flat-section {
margin-bottom: $padding-16;
> a { font-weight: 700; }
> ul { padding-left: 0; }
}
}
.content {
flex: 1 0;
width: 0;
min-width: $body-min-width;
padding: $padding-16;
}
.toc {
flex: 0 0 $toc-menu-width;
nav {
width: $toc-menu-width;
padding: $padding-16;
font-size: $font-size-12;
ul ul {
padding-left: $padding-8;
}
}
}
}
// Responsive styles
$menu-hide-point: $nav-menu-width + $body-min-width;
$toc-hide-point: $menu-hide-point + $nav-menu-width;
@media screen and (max-width: $toc-hide-point) {
.toc {
display: none;
}
}
@media screen and (max-width: $menu-hide-point) {
.menu {
margin-left: -$nav-menu-width;
}
main header {
display: flex;
}
#menu-control:checked + main {
.menu nav, .content {
transform: translateX($nav-menu-width);
}
header label img {
transform: rotate(90deg);
}
.markdown {
opacity: .25;
}
}
}
// Extra space for big screens
@media screen and (min-width: $toc-hide-point) {
main {
.content {
padding: $padding-16 * 2 $padding-16;
}
.menu nav, .toc nav {
padding: $padding-16 * 2;
}
}
}