mirror of
https://github.com/seigler/presentation-blockchains
synced 2025-07-26 17:16:11 +00:00
525 lines
9.3 KiB
CSS
525 lines
9.3 KiB
CSS
/* Basics */
|
|
|
|
*, *:before, *:after {
|
|
box-sizing: inherit;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
:root {
|
|
--main-font: sans-serif;
|
|
--monospace-font: monospace;
|
|
--mouse-x: 0.5;
|
|
|
|
box-sizing: border-box;
|
|
font-family: var(--main-font);
|
|
font-size: calc(5vw);
|
|
cursor: default;
|
|
line-height: 1.1;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
::selection {
|
|
text-shadow: none;
|
|
background: #FF0;
|
|
color: black;
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
cursor: pointer;
|
|
text-decoration: none;
|
|
display: inline-block;
|
|
background-image: linear-gradient(to right, currentcolor, currentcolor);
|
|
background-position: 0 1.9ex;
|
|
background-repeat: repeat-x;
|
|
background-size: 8px 0.08ex;
|
|
}
|
|
|
|
li {
|
|
list-style: none;
|
|
}
|
|
|
|
code {
|
|
font-family: monospace;
|
|
font-family: var(--monospace-font, monospace);
|
|
}
|
|
|
|
kbd {
|
|
font-size: 0.7em;
|
|
border-radius: 0.2em;
|
|
padding: 0.1em;
|
|
font-family: inherit;
|
|
text-transform: uppercase;
|
|
display: inline-block;
|
|
border: 0.1em solid;
|
|
}
|
|
|
|
textarea {
|
|
font-family: monospace;
|
|
font-family: var(--monospace-font, monospace);
|
|
font-size: 0.5em;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 1.5em;
|
|
font-weight: 400;
|
|
}
|
|
h2 {
|
|
font-size: 1em;
|
|
font-weight: 900;
|
|
}
|
|
|
|
sup {
|
|
display: inline-block;
|
|
margin-top: -0.5em;
|
|
}
|
|
|
|
sub {
|
|
display: inline-block;
|
|
margin-bottom: -0.5em;
|
|
}
|
|
|
|
img.thumbnail {
|
|
height: 1em;
|
|
}
|
|
|
|
iframe {
|
|
background-color: white;
|
|
}
|
|
|
|
blockquote {
|
|
quotes: "\201C""\201D""\2018""\2019";
|
|
text-align: left;
|
|
margin: 0 2em;
|
|
}
|
|
|
|
blockquote > p::before, blockquote > p::after {
|
|
display: inline-block;
|
|
position: absolute;
|
|
margin: -0.2em;
|
|
font-size: 4em;
|
|
opacity: 0.25;
|
|
pointer-events: none;
|
|
}
|
|
blockquote > p::before {
|
|
content: open-quote;
|
|
}
|
|
blockquote > p::after {
|
|
content: close-quote;
|
|
}
|
|
|
|
blockquote > cite {
|
|
font-style: normal;
|
|
font-size: 0.8em;
|
|
text-align: right;
|
|
}
|
|
|
|
blockquote > cite::before {
|
|
content: '- ';
|
|
}
|
|
|
|
/* Layout */
|
|
body {
|
|
display: flex;
|
|
flex-direction: column;
|
|
padding: 0;
|
|
margin: 0;
|
|
background-color: black;
|
|
color: white;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
body.is-loading:after {
|
|
content: 'Loading...';
|
|
font-size: 0.5em;
|
|
line-height: 100vh;
|
|
color: white;
|
|
background-image: linear-gradient(45deg, #030, #000, #003);
|
|
position: fixed;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
text-align: center;
|
|
z-index: 100;
|
|
}
|
|
|
|
body.simulate-projection {
|
|
filter: contrast(0.8);
|
|
}
|
|
|
|
main {
|
|
margin-top: 0;
|
|
perspective: 100vmin;
|
|
transform-style: preserve-3d;
|
|
height: 100vh;
|
|
}
|
|
|
|
.row, .col {
|
|
position: relative;
|
|
display: flex;
|
|
flex-grow: 1;
|
|
flex-basis: 0;
|
|
align-items: stretch;
|
|
justify-content: center;
|
|
}
|
|
|
|
.row--shrink, .col--shrink {
|
|
flex: 0 1 auto;
|
|
align-self: center;
|
|
}
|
|
|
|
.row {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.col {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
/* Components */
|
|
nav {
|
|
flex-wrap: wrap;
|
|
display: flex;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
padding: 0.25em 0.25em 6em;
|
|
transition: transform ease 0.5s;
|
|
font-size: 0.5rem;
|
|
z-index: 2;
|
|
background-image: linear-gradient(to top, hsla(0, 0%, 0%, 0), hsla(0, 0%, 0%, 1));
|
|
}
|
|
|
|
nav > label {
|
|
flex: 0 0 auto;
|
|
padding-right: 1ch;
|
|
}
|
|
|
|
nav > input {
|
|
flex: 1 1 auto;
|
|
padding: 0;
|
|
font-size: inherit;
|
|
border: none;
|
|
background: transparent;
|
|
color: inherit;
|
|
outline: none;
|
|
}
|
|
|
|
nav > input:invalid {
|
|
color: red;
|
|
}
|
|
|
|
ul.help {
|
|
width: 100%;
|
|
flex-shrink: 0;
|
|
font-size: 0.5em;
|
|
}
|
|
|
|
ul.help li {
|
|
display: inline-block;
|
|
background-color: hsla(0, 0%, 40%, 0.6);
|
|
border-radius: 0.5em;
|
|
padding: 0 0.5em;
|
|
}
|
|
|
|
table {
|
|
margin: 0 auto;
|
|
}
|
|
|
|
th, td {
|
|
text-align: center;
|
|
}
|
|
|
|
thead th div {
|
|
white-space: nowrap;
|
|
width: 1.5em;
|
|
height: 1em;
|
|
line-height: 0.9;
|
|
text-align: left;
|
|
transform-origin: left bottom;
|
|
transform: translateX(1.3em) rotate(-60deg);
|
|
}
|
|
|
|
tbody th {
|
|
text-align: right;
|
|
}
|
|
|
|
section {
|
|
position: absolute;
|
|
z-index: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
text-align: center;
|
|
background-color: black;
|
|
transition: transform ease 0.5s, opacity ease 0.5s, visibility step-end 0.5s;
|
|
transform-origin: 50% 50%;
|
|
}
|
|
|
|
/* live-coding */
|
|
|
|
.live-coding {
|
|
display: flex;
|
|
flex: 1 1 100%;
|
|
}
|
|
|
|
.live-coding__code {
|
|
position: relative;
|
|
width: 100%;
|
|
}
|
|
|
|
.live-coding__code textarea, .live-coding__code .highlight {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: 0.1em;
|
|
font-size: 0.4em;
|
|
resize: none;
|
|
color: white;
|
|
font-family: monospace;
|
|
white-space: pre-wrap;
|
|
word-wrap: break-word;
|
|
overflow: auto;
|
|
border: none;
|
|
outline: none;
|
|
text-align: left;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.live-coding__code textarea {
|
|
background: #333;
|
|
}
|
|
|
|
.live-coding__code .highlight {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.live-coding__code textarea::selection {
|
|
background-color: black;
|
|
color: transparent;
|
|
}
|
|
|
|
.live-coding__component {
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
.col > .live-coding__component {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.live-coding__component label {
|
|
line-height: 1;
|
|
color: var(--theme-color, inherit);
|
|
}
|
|
|
|
.hidden,
|
|
.live-coding input[type="radio"],
|
|
.live-coding input[type="checkbox"],
|
|
.live-coding input[type="radio"]:not(:checked) + .live-coding__component > .live-coding__code,
|
|
.live-coding input[type="checkbox"]:not(:checked) + .live-coding__component > .live-coding__code {
|
|
position: fixed;
|
|
visibility: hidden;
|
|
right: 110vw;
|
|
}
|
|
|
|
.live-coding input[type="radio"]:not(:checked) + .live-coding__component,
|
|
.live-coding input[type="checkbox"]:not(:checked) + .live-coding__component {
|
|
flex: 0 1 auto;
|
|
}
|
|
|
|
.row > .live-coding__component label {
|
|
writing-mode: vertical-rl;
|
|
text-align: right;
|
|
transform: rotate(180deg);
|
|
border-left: 0.1em solid var(--theme-color, currentcolor);
|
|
line-height: 1;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.col > .live-coding__component label {
|
|
text-align: left;
|
|
max-height: 1em;
|
|
border-bottom: 0.1em solid var(--theme-color, currentcolor);
|
|
}
|
|
|
|
/* adapted from Lea Verou's http://dabblet.com/gist/14cf7ecbd12505768478b36510f623c8 */
|
|
.browser {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 100%;
|
|
max-width: 100%;
|
|
max-height: 100%;
|
|
overflow: auto;
|
|
margin: 0 auto;
|
|
border-radius: 0.5vmin;
|
|
overflow: hidden;
|
|
--chrome-height: 4vmin;
|
|
padding-top: var(--chrome-height);
|
|
background-color: #DDD;
|
|
}
|
|
|
|
.browser::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0; right: 0; left: 0;
|
|
border: solid;
|
|
--right: 146; --left: 201;
|
|
border-width: var(--chrome-height) calc(var(--right) / 38 * var(--chrome-height)) 0 calc(var(--left) / 38 * var(--chrome-height));
|
|
border-image: url('browser-bar.png') 100% var(--right) 0 var(--left) repeat;
|
|
}
|
|
|
|
.browser iframe {
|
|
pointer-events: none;
|
|
flex: 1 1 auto;
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
/* states and transitions */
|
|
|
|
[janus-timeline='past'] {
|
|
transition: transform ease 0.5s, opacity ease 0.5s, visibility step-end 0.5s;
|
|
}
|
|
|
|
section[janus-timeline='present'] [janus-timeline='past'] {
|
|
transition: transform ease 0.5s, opacity ease 0.5s;
|
|
}
|
|
[janus-timeline='present'] {
|
|
transition: transform ease 0.5s, opacity ease 0.5s, visibility step-start 0.5s;
|
|
}
|
|
|
|
[janus-timeline='future'] {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
|
|
body.show-notes section [janus-timeline='future'] {
|
|
visibility: visible;
|
|
opacity: 0.4;
|
|
}
|
|
|
|
body.show-notes section[janus-timeline='future'] [janus-timeline='future'] {
|
|
opacity: 1;
|
|
}
|
|
|
|
section[janus-timeline='past'], body:not(.show-notes) [janus-timeline='past'][janus-past='big'], body:not(.show-notes) [janus-timeline='future'][janus-future='big'] {
|
|
transform: translate3d(0, 0, 0) scale(5);
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
z-index: 2;
|
|
}
|
|
|
|
section[janus-timeline='present'] {
|
|
transform: none;
|
|
opacity: 1;
|
|
}
|
|
|
|
section[janus-timeline='future'] {
|
|
transform: translate3d(0, -5vmin, 0) scale(0.8);
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.cover, .contain {
|
|
position: absolute;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
top: 0;
|
|
left: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
z-index: -1;
|
|
transform: none;
|
|
}
|
|
.cover {
|
|
object-fit: cover;
|
|
}
|
|
.contain {
|
|
object-fit: contain;
|
|
}
|
|
|
|
body.show-notes {
|
|
background-color: #777;
|
|
}
|
|
|
|
body.show-notes section {
|
|
transition: none;
|
|
}
|
|
|
|
body.show-notes section[janus-timeline='present'] {
|
|
transform: scale(0.75);
|
|
transform-origin: 0% 0%;
|
|
overflow: visible;
|
|
}
|
|
|
|
.notes {
|
|
display: none;
|
|
white-space: pre-line;
|
|
}
|
|
body.show-notes section[janus-timeline='present'] > .notes {
|
|
display: block;
|
|
position: absolute;
|
|
left: 100%;
|
|
width: 33.33%;
|
|
height: 100%;
|
|
font-size: 0.5rem;
|
|
text-align: left;
|
|
padding-left: 0.5em;
|
|
}
|
|
|
|
body.show-notes section[janus-timeline='present'] + section[janus-timeline='future'] {
|
|
transform: scale(0.25);
|
|
transform-origin: bottom right;
|
|
top: auto;
|
|
left: auto;
|
|
bottom: 0;
|
|
right: 0;
|
|
opacity: 1;
|
|
visibility: visible;
|
|
outline: 0.2rem solid white;
|
|
z-index: 3;
|
|
}
|
|
|
|
table.yesnomaybe {
|
|
border: 0px solid transparent;
|
|
border-width: 3em 2.5em 0 0;
|
|
text-shadow: 0 0 1em black, 0 0 1.5em black;
|
|
margin: auto auto 5% auto;
|
|
}
|
|
|
|
table.yesnomaybe .yes, table.yesnomaybe .no, table.yesnomaybe .maybe {
|
|
width: 1em;
|
|
background-size: auto 80%;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
}
|
|
table.yesnomaybe .yes {
|
|
background-image: url(../libs/svg/2705.svg);
|
|
}
|
|
table.yesnomaybe .no {
|
|
background-image: url(../libs/svg/274e.svg);
|
|
}
|
|
table.yesnomaybe .maybe {
|
|
background-image: url(../libs/svg/2753.svg);
|
|
}
|