450 lines
15 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@charset "UTF-8";
/* tame reveal.js */
section {
min-height: 100vh;
width: 100vw;
padding: 0 !important; }
* {
line-height: inherit; }
/* config */
:root {
--primary: #f8f281;
--primary-dark: #928c1b;
--secondary: #bbd6ec;
--secondary-dark: #3f5d75;
--secondary-light: #eaf2f9;
--margin: 0.1; }
/* basic layout */
:root {
--square: 100vw; }
@media screen and (min-aspect-ratio: 1 / 1) {
:root {
--square: 50vw; } }
@media screen and (min-aspect-ratio: 2 / 1) {
:root {
--square: 100vh; } }
body {
font-size: calc(0.035 * var(--square)); }
body .layout-content-and-preview,
body .layout-content-only,
body .layout-preview-only {
display: grid;
min-height: 100vh;
max-height: 100vh;
min-width: 100vw;
max-width: 100vw;
overflow: auto; }
body .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) {
body .layout-content-and-preview {
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) {
body .layout-content-and-preview {
grid-template-rows: var(--square);
grid-template-columns: var(--square) auto;
grid-template-areas: "content preview"; } }
body .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) {
body .layout-content-only {
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%); } }
body .layout-preview-only {
grid-template-rows: auto;
grid-template-columns: auto;
grid-template-areas: "preview";
background: var(--secondary); }
body .layout-content {
background: white;
grid-area: content;
position: relative; }
body .layout-preview {
grid-area: preview;
display: flex;
align-items: center;
justify-content: center;
background: var(--secondary);
position: relative; }
body .layout-preview figure {
display: contents; }
body .layout-preview img {
width: auto;
height: auto;
max-width: calc(.9 * var(--square));
max-height: calc(.9 * var(--square));
box-shadow: 0.2em 0.2em 0.5em 0 rgba(0, 0, 0, 0.3);
object-fit: cover;
margin: calc(.05 * var(--square)); }
body .layout-preview img[src$="-crop.svg"] {
box-sizing: border-box;
background: white;
padding: calc(var(--margin) * var(--square));
object-fit: contain;
width: calc(0.7 * var(--square)); }
body .layout-preview img[src$="-orig.svg"] {
background: white;
object-fit: contain; }
body .layout-preview figcaption {
position: absolute;
background: rgba(0, 0, 0, 0.5);
bottom: 0;
width: 100%;
text-align: center;
color: white;
padding: .5em;
box-sizing: border-box; }
body .layout-two-columns {
display: grid;
min-height: 100vh;
max-height: 100vh;
min-width: 100vw;
max-width: 100vw;
overflow: auto;
grid-template-rows: auto auto auto 1fr;
grid-template-columns: var(--square);
grid-template-areas: "title" "column1" "column2" ".";
background: var(--secondary); }
@media screen and (min-aspect-ratio: 1 / 1) {
body .layout-two-columns {
grid-template-rows: auto calc(0.18 * var(--square)) calc(0.82 * var(--square)) auto;
grid-template-columns: var(--square) var(--square);
grid-template-areas: " . . " " title title " "column1 column2" " . . "; } }
@media screen and (min-aspect-ratio: 2 / 1) {
body .layout-two-columns {
grid-template-rows: calc(0.18 * var(--square)) calc(0.82 * var(--square));
grid-template-columns: auto var(--square) var(--square) auto;
grid-template-areas: ". title title ." ". column1 column2 ."; } }
body .layout-two-columns .layout-title {
grid-area: title;
background: var(--secondary); }
body .layout-two-columns .layout-column-one {
grid-area: column1;
background: white; }
body .layout-two-columns .layout-column-two {
grid-area: column2;
background: white; }
body .layout-two-previews {
display: grid;
min-height: 100vh;
max-height: 100vh;
min-width: 100vw;
max-width: 100vw;
overflow: auto;
grid-template-rows: auto auto;
grid-template-columns: auto;
background: var(--secondary); }
@media screen and (min-aspect-ratio: 1 / 1) {
body .layout-two-previews {
grid-template-rows: 100vh;
grid-template-columns: 50vw 50vw;
grid-template-areas: "preview preview"; } }
body .layout-two-previews .layout-preview {
grid-area: auto; }
/* 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,
.layout-content-only .layout-content {
overflow: auto;
padding: calc(var(--margin) * var(--square)); }
.layout-content-and-preview .layout-content *:first-child,
.layout-content-only .layout-content *:first-child {
margin-top: 0; }
.layout-content-and-preview .layout-content .layout-title,
.layout-content-only .layout-content .layout-title {
padding: calc(0.3 * var(--margin) * var(--square)) 0;
line-height: 1.15em; }
.layout-content-and-preview .layout-content .layout-title h2,
.layout-content-only .layout-content .layout-title h2 {
margin: 0;
line-height: 1.15em; }
.layout-content-and-preview .layout-content ul, .layout-content-and-preview .layout-content ol,
.layout-content-only .layout-content ul,
.layout-content-only .layout-content ol {
list-style-type: none;
padding-left: 0;
position: relative; }
.layout-content-and-preview .layout-content ul li::before, .layout-content-and-preview .layout-content ol li::before,
.layout-content-only .layout-content ul li::before,
.layout-content-only .layout-content ol li::before {
content: '▪';
color: var(--secondary);
position: absolute;
left: calc(-0.33 * var(--margin) * var(--square)); }
.layout-content-and-preview .layout-content ul ul, .layout-content-and-preview .layout-content ul ol, .layout-content-and-preview .layout-content ol ul, .layout-content-and-preview .layout-content ol ol,
.layout-content-only .layout-content ul ul,
.layout-content-only .layout-content ul ol,
.layout-content-only .layout-content ol ul,
.layout-content-only .layout-content ol ol {
margin-left: calc(0.33 * var(--margin) * var(--square)); }
.layout-content-and-preview .layout-content ol,
.layout-content-only .layout-content ol {
counter-reset: ol-counter; }
.layout-content-and-preview .layout-content ol li::before,
.layout-content-only .layout-content ol li::before {
counter-increment: ol-counter;
content: counter(ol-counter) ".";
color: var(--secondary-dark);
left: calc(-0.36 * var(--margin) * var(--square)); }
.layout-content-and-preview .layout-content pre,
.layout-content-only .layout-content pre {
margin-left: calc(-1 * var(--margin) * var(--square));
padding-left: calc(var(--margin) * var(--square));
line-height: 1.2em;
position: relative;
overflow: hidden; }
.layout-content-and-preview .layout-content pre::before,
.layout-content-only .layout-content pre::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); }
.layout-content-and-preview .layout-content pre code,
.layout-content-only .layout-content pre code {
padding: .3em 0; }
.layout-content-and-preview .layout-content code,
.layout-content-only .layout-content code {
font-size: 0.9em;
font-family: 'Fira Code'; }
.layout-two-columns .layout-title {
padding: calc(0.3 * var(--margin) * var(--square)) calc(var(--margin) * var(--square)); }
.layout-two-columns .layout-title h2 {
line-height: 1.15em; }
.layout-two-columns .layout-column-one,
.layout-two-columns .layout-column-two {
padding: calc(var(--margin) * var(--square));
padding-top: 0; }
.layout-two-columns .layout-column-one *:first-child,
.layout-two-columns .layout-column-two *:first-child {
margin-top: 0; }
.layout-two-columns .layout-column-one ul,
.layout-two-columns .layout-column-two ul {
list-style-type: none;
padding-left: 0;
position: relative; }
.layout-two-columns .layout-column-one ul li::before,
.layout-two-columns .layout-column-two ul li::before {
content: '▪';
color: var(--secondary);
position: absolute;
left: calc(-0.33 * var(--margin) * var(--square)); }
.layout-two-columns .layout-column-one ul ul,
.layout-two-columns .layout-column-two ul ul {
margin-left: calc(0.33 * var(--margin) * var(--square)); }
.layout-two-columns .layout-column-one pre,
.layout-two-columns .layout-column-two pre {
margin: 0 calc(-1 * var(--margin) * var(--square));
line-height: 1.2em;
position: relative;
overflow: hidden; }
.layout-two-columns .layout-column-one pre::before,
.layout-two-columns .layout-column-two pre::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); }
.layout-two-columns .layout-column-one pre code,
.layout-two-columns .layout-column-two pre code {
padding: 0.3em calc(var(--margin) * var(--square)); }
.layout-two-columns .layout-column-one code,
.layout-two-columns .layout-column-two code {
font-size: 0.9em;
font-family: 'Fira Code'; }
.layout.layout-chapter-heading {
height: 100vh;
width: 100vw;
position: relative; }
.layout.layout-chapter-heading .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)) 0.5em; }
h2 {
line-height: 1.2; }
p[data-category]::before,
h2[data-category]::before {
content: attr(data-category);
font-size: .7em;
font-variant: small-caps;
text-transform: lowercase;
background: black;
color: white;
padding: .1em .5em;
display: inline-block;
vertical-align: baseline;
letter-spacing: .1em;
position: relative;
margin-left: calc(-1 * var(--margin) * var(--square));
padding-left: calc(var(--margin) * var(--square));
margin-right: .5em; }
img {
width: auto;
max-width: 100%; }
table {
width: calc(var(--square) - var(--margin) * var(--square));
margin-left: calc(-1 * var(--margin) * var(--square));
border-spacing: 0; }
table tr:nth-child(2n-1) {
background: var(--secondary); }
table tr > *:first-child {
padding-left: calc(var(--margin) * var(--square)); }
table th, table td {
text-align: left;
vertical-align: top;
padding: .3em;
padding-left: 0; }
table th:last-child, table td:last-child {
padding-right: .1em; }
.layout-content-only table {
border-spacing: 0;
margin-left: 0;
width: 100%;
box-sizing: border-box; }
.layout-content-only table tr > *:first-child {
padding-left: .3rem;
padding-right: .3rem; }
.box, blockquote {
margin-left: calc(-1 * var(--margin) * var(--square));
padding: 0.8em 0.1em 0.1em calc(var(--margin) * var(--square)); }
.box.warning {
background: var(--primary); }
blockquote {
color: var(--secondary-dark);
text-indent: -.55em;
padding-bottom: .8em; }
blockquote::before {
content: '»';
color: var(--secondary-dark); }
blockquote cite::before {
content: ' '; }
.layout-content figure {
margin: 0 1em 1em 0; }
.bubble {
display: inline-block;
position: absolute;
margin-top: -2em;
margin-left: -3.8em;
width: 6em;
border: 0.1em solid var(--primary-dark);
background: var(--primary);
text-align: center;
border-radius: 1em; }
.bubble::before {
content: '';
width: 0;
height: 0;
position: absolute;
border: .5em solid transparent;
border-top-color: var(--primary-dark);
bottom: -1em;
left: calc(50% - .5em); }
.bubble::after {
content: '';
width: 0;
height: 0;
position: absolute;
border: .5em solid transparent;
border-top-color: var(--primary);
bottom: -0.87em;
left: calc(50% - .5em); }
section > h1, section > h2, section > h3, section > p, section > ul {
background: var(--primary); }
/*
* Keyboard Shortcut Styling
* =========================
*/
kbd {
font-family: "Fira Code", monospace !important;
font-size: 65% !important;
display: inline-block;
border: 1px solid white !important;
border-width: 1px 5px 5px 1px !important;
padding: .2rem .5rem !important; }
/*
* Emoji Fonts
* ============
*/
@font-face {
font-family: 'Twemoji';
src: url("../../lib/font/twemoji/TwitterColorEmoji-SVGinOT.ttf"); }
.emoji {
font-family: "Twemoji"; }