@font-face { font-family: "DuctusRegular"; font-weight: normal; src: local("DuctusRegular"), url("fonts/Ductus/DuctusRegular.otf") format("opentype"), url("fonts/Ductus/DuctusRegular.woff") format("woff"); } @font-face { font-family: "CascadiaCode VTT"; font-weight: normal; src: local("CascadiaCode VTT"), url("fonts/Cascadia/otf/CascadiaCode-Light.otf") format("opentype"), url("fonts/Cascadia/woff2/CascadiaCode-Light.woff2") format("woff2"); } @font-face { font-family: "CascadiaCode VTT"; font-weight: bold; src: local("CascadiaCode VTT"), url("fonts/Cascadia/otf/CascadiaCode-Bold.otf") format("opentype"), url("fonts/Cascadia/woff2/CascadiaCode-Bold.woff2") format("woff2"); } /* TODO: - fallback fonts */ :root { --background: #d1d1d1; --slider-height: 1.5rem; --text-color: black; --text-color-lighter: grey; --text-color-light: white; } body, html { width: 100%; height: 100%; } body { margin: 0 0; padding: 0 0; font-family: "DuctusRegular", sans-serif; background-color: var(--background); display: grid; grid-template-columns: min-content 1fr min-content; grid-template-rows: min-content 50px 1fr 50px; grid-gap: 1rem 2rem; grid-template-areas: "header header header" ". s-top s-top" "s-left main aside" "s-left footer footer"; max-width: 1200px; width: calc(100% - 4rem); margin: auto; height: calc(100svh - 4rem); margin: 2rem; } h1, h2, h3, h4 { font-weight: normal; margin: 0 0; } h1 { font-size: 3rem; } main { grid-area: main; overflow: hidden; position: relative; } .main__inner { overflow: auto; height: 100%; } .main__background, .main__background--radius { position: absolute; background-color: rgb(97, 97, 97); width: 100%; height: 100%; z-index: -1; } .main__background--radius { background-color: black; border-bottom-right-radius: 60%; } article h1, article h2, article h3 { margin-top: 1rem; margin-bottom: 0.5rem; } header { grid-area: header; } nav { display: flex; justify-content: center; align-items: center; position: relative; } .slider--top { grid-area: s-top; } .slider--left { grid-area: s-left; } article { max-width: 700px; width: calc(100% - 2rem); margin: 2rem auto; overflow-x: hidden; color: var(--text-color-light); display: flex; flex-direction: column; font-family: "CascadiaCode VTT"; } article p, article pre { margin: 0 0; font-size: 14px; line-height: 1.5; } article pre { color: green; } footer { grid-area: footer; } aside { grid-area: aside; writing-mode: vertical-rl; text-orientation: mixed; } nav label { position: absolute; right: 1rem; top: 50%; transform: translate3d(0, -50%, 0); color: var(--text-color-lighter); pointer-events: none; } .annotation { background-color: white; color: black; width: auto; max-height: 0px; overflow: hidden; display: inline-block; clear: both; transition: 1s linear max-height; font-family: "DuctusRegular"; padding: 0px 2px; font-weight: lighter; } .annotation.visible { max-height: 99px; } .slider--left label { writing-mode: vertical-rl; top: 100%; transform: translate3d(100%, -120%, 0); right: 90%; } h3 { color: var(--text-color-lighter); } input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; cursor: pointer; outline: none; overflow: hidden; border-radius: 1rem; border: 1px solid black; transition: 0.2s linear; } input[type="range"]::-webkit-slider-runnable-track { height: var(--slider-height); background: var(--background); border-radius: 1rem; transition: 0.2s linear; } input[type="range"]::-moz-range-track { height: var(--slider-height); background: var(--background); border-radius: 1rem; } input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; height: calc(100% + 4px); margin-top: -2px; width: 150px; border-radius: 1rem; background-color: white; border: 1px solid black; } input[type="range"]::-moz-range-thumb { -webkit-appearance: none; appearance: none; height: calc(100% + 4px); margin-top: -2px; width: 150px; border-radius: 30px; background-color: white; border: 1px solid black; } input[type="range"].vertical { writing-mode: vertical-lr; height: 100%; width: var(--slider-height); } input[type="range"].vertical::-webkit-slider-runnable-track { width: var(--slider-height); height: 100%; } input[type="range"].vertical::-moz-range-track { width: var(--slider-height); height: 100%; } input[type="range"].vertical::-webkit-slider-thumb { height: 150px; width: var(--slider-height); } input[type="range"].vertical::-moz-range-thumb { height: 150px; width: var(--slider-height); }