2019-04-29 14:43:22 +02:00

229 lines
5.1 KiB
SCSS

/* tame reveal.js */
section {
min-height: 100vh;
width: 100vw;
padding: 0 !important;
}
/* config */
:root {
--secondary: #c8ceda;
}
/* basic layout */
:root {
--square: 100vw;
@media screen and (min-aspect-ratio: 1/1) {
--square: 50vw;
}
@media screen and (min-aspect-ratio: 2/1) {
--square: 100vh;
}
}
body {
font-size: calc(0.035 * var(--square));
.layout-content-and-preview,
.layout-content-only {
display: grid;
min-height: 100vh;
max-height: 100vh;
min-width: 100vw;
max-width: 100vw;
overflow: auto;
}
.layout-content-and-preview {
grid-template-rows: var(--square) auto;
grid-template-columns: auto;
grid-template-areas:
"content"
"preview";
background: linear-gradient(to bottom,
white 0%,
white var(--square),
var(--secondary) var(--square),
var(--secondary) var(--square));
@media screen and (min-aspect-ratio: 1/1) {
grid-template-rows: auto var(--square) auto;
grid-template-columns: var(--square) auto;
grid-template-areas:
" . preview"
"content preview"
" . preview";
background: linear-gradient(to right, white 0%, white var(--square), var(--secondary) var(--square), var(--secondary) 100%);
}
@media screen and (min-aspect-ratio: 2/1) {
grid-template-rows: var(--square);
grid-template-columns: var(--square) auto;
grid-template-areas:
"content preview";
}
}
.layout-content-only {
grid-template-rows: var(--square) auto;
grid-template-columns: var(--square);
grid-template-areas:
"content"
" . ";
background: linear-gradient(to bottom, white 0%, white var(--square), var(--secondary) var(--square), var(--secondary) 100%);
@media screen and (min-aspect-ratio: 1/1) {
grid-template-rows: auto var(--square) auto;
grid-template-columns: auto var(--square) auto;
grid-template-areas:
". . ."
". content ."
". . .";
background: linear-gradient(to right,
var(--secondary) 0%,
var(--secondary) calc((100% - var(--square)) / 2),
white calc((100% - var(--square)) / 2),
white calc(100% - (100% - var(--square)) / 2),
var(--secondary) calc(100% - (100% - var(--square)) / 2),
var(--secondary) 100%);
}
}
.layout-content {
background: white;
grid-area: content;
position: relative;
}
.layout-preview {
grid-area: preview;
display: flex;
align-items: center;
justify-content: center;
background: var(--secondary);
img {
width: auto;
height: auto;
max-width: 90%;
max-height: 90%;
box-shadow: .2em .2em .5em 0 rgba(0, 0, 0, .3);
}
}
}
/* content layout */
@font-face {
font-family: 'Fira Sans';
src: url('../../lib/font/fira-sans/FiraSans-Regular.ttf');
font-weight: 400;
}
@font-face {
font-family: 'Fira Sans';
src: url('../../lib/font/fira-sans/FiraSans-Bold.ttf');
font-weight: 700;
}
@font-face {
font-family: 'Fira Code';
src: url('../../lib/font/fira-code/FiraCode-Regular.otf');
font-weight: 400;
}
@font-face {
font-family: 'Fira Code';
src: url('../../lib/font/fira-code/FiraCode-Bold.otf');
font-weight: 700;
}
body {
font-family: 'Fira Sans';
margin: 0;
line-height: 1.2em;
}
.layout-content-and-preview,
.layout-content-only {
--margin: 0.1;
.layout-content {
overflow: auto;
padding: calc(var(--margin) * var(--square));
*:first-child {
margin-top: 0;
}
.layout-title {
padding: calc(0.3 * var(--margin) * var(--square)) 0;
line-height: 1.15em;
h2 {
margin: 0;
}
}
ul {
list-style-type: none;
padding-left: 0;
position: relative;
li::before {
content: '';
color: var(--secondary);
position: absolute;
left: calc(-0.33 * var(--margin) * var(--square));
}
ul {
margin-left: calc(0.33 * var(--margin) * var(--square));
}
}
pre {
margin-left: calc(-1 * var(--margin) * var(--square));
padding-left: calc(var(--margin) * var(--square));
line-height: 1.2em;
position: relative;
overflow: hidden;
&::before {
content: attr(data-sourcefile);
position: absolute;
text-align: right;
color: var(--secondary);
top: .85em;
width: 100%;
left: calc(-1 * var(--square) + 1.2 * var(--margin) * var(--square));
transform-origin: top right;
transform: rotate(-90deg);
}
}
code {
font-size: 0.9em;
font-family: 'Fira Code';
&.hljs {
padding: .3em 0;
}
}
}
}
.layout.layout-chapter-heading {
height: 100vh;
width: 100vw;
position: relative;
.layout-title {
position: absolute;
left: 2vw;
width: calc(100vw - 4vw);
text-align: center;
bottom: calc(38.2% - .5em);
}
}
h1 {
position: absolute;
font-size: 300%;
bottom: 0;
left: 0;
line-height: 115%;
vertical-align: bottom;
max-width: var(--square);
padding: 0 calc(var(--margin) * var(--square)) .5em;
}