:root{ --bar-h: 3rem; --c-link: blue; --c-back: whitesmoke; --c-default: black; --c-contributed: palegreen; --c-jave: mediumpurple; } .default{ --c: var(--c-default); } .contributed{ --c: var(--c-contributed); } .jave{ --c: var(--c-jave); } body{ background-color: var(--c-back); } button{ background-color: var(--c-link); border: none; border-radius: 5em; padding: 0.5em 1em; color: white; } img{ display: block; max-width: 100%; } /* BAR ================================================= */ body{ margin-top: calc(var(--bar-h) * 1); } body.write, body.catalogue, body.draw{ margin-top: calc(var(--bar-h) * 2); } body.write .font, body.catalogue .font, body.draw .font{ height: calc(100vh - var(--bar-h) * 2); grid-template-rows: 1fr; box-sizing: border-box; } body > .tabs{ position: fixed; top: 0; width: 100%; z-index: 99999; } nav ul, .controls{ box-sizing: border-box; width: 100%; display: flex; align-items: center; } nav ul li{ flex-grow: 1; } nav ul li:not(:last-child){ border-right: 1px solid var(--c-back); } nav ul a{ color: white; padding: 0 2rem; display: flex; align-items: center; justify-content: center; text-decoration: none; height: var(--bar-h); background-color: black; box-sizing: border-box; } nav ul a.active{ background-color: var(--c-link); } /* CONTROLS ================================================= */ .controls{ position: fixed; gap: 0.5rem; top: var(--bar-h); background-color: var(--c-back); padding: 0rem 1rem; height: var(--bar-h); z-index: 99; } #text-input{ width: 26em; } .controls hr{ display: block !important; border: none; margin: none; margin-left: auto; } .reload::after{ content: 'reload'; position: fixed; inset: 0; background-color: rgba(0,0,205,0.2); z-index: 998; pointer-events: all; color: white; right: 0.5rem; display: flex; justify-content: center; align-items: center; } /* BOXES ================================================= */ .box{ box-sizing: border-box; padding: 0 2rem 1rem; } .two-columns{ display: flex; flex-wrap: wrap; gap: var(--bar-h); } .two-columns > *{ flex: 1 1 0%; } /* one font block */ .font{ display: grid; grid-template-columns: repeat(2, calc(50% - 0.5rem)); gap: 1rem; padding: 0 1rem 1rem; position: relative; } .font aside{ position: absolute; bottom: 0.5rem; display: flex; gap: 0.5rem; } aside.right{ right: 2.5rem; } aside.left{ right: calc(50vw + 1.5rem); } .font h2{ font-size: 0.875rem; grid-column: 1 / -1; font-weight: normal; } .f-ascii{ font-family: monospace; font-size: 1rem; background-color: white; overflow: auto; line-height: 1; } .f-svg{ background-color: white; overflow: auto; } .f-ascii, .f-svg{ height: 100%; width: 100%; box-sizing: border-box; grid-row: 1 / span 1; border: 1px solid black; } .f-svg iframe{ border: none !important; width: 100%; height: 100%; display: block; } .f-double{ width: 100%; height: 100%; } .font:first-of-type{ margin-top: 1rem; } /* TITLE ================================================= */ .title.font{ padding: 2rem 2rem 4rem; gap: 0 var(--bar-h); grid-template-columns: repeat(2, calc(50% - calc(var(--bar-h) / 2))); } .title .f-ascii{ margin-left: auto; grid-row: auto; } .title .f-svg{ grid-row: auto; margin-right: auto; padding: 0; } .title .f-ascii, .title .f-svg{ padding: 0; background: initial; border: none; width: auto; } .title svg { overflow: visible; max-width: 100%; grid-column: span 2; max-height: 24rem; margin: 0 auto; } .title svg a{ fill: var(--c-link); } .title svg a.software{ font-weight: bold; } .title .intro{ margin: 1rem auto; grid-column: span 2; max-width: 48rem; } /* gallery ================================================= */ .gallery{ padding: 2rem 2rem 4rem; margin: 2rem 0; grid-column: span 2; display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; } .gallery h3{ font-size: 0.875rem; font-weight: bold; grid-column: 1 / -1; } .gallery h2{ display: block; font-size: 0.875rem; font-weight: bold; grid-column: 1 / -1; width: fit-content; padding: 1rem; margin: 1rem auto; border: 1px solid black; } /* font ================================================= */ .write .font{ grid-template-columns: 32rem 1fr; } /* catalogue ================================================= */ .catalogue .font{ grid-template-columns: 1fr; } details{ position: relative; z-index: 999; } details[open] > summary{ background-color: var(--c-link); color: white; } .collection-menu{ position: relative; } .collection-menu[open] .collection-menu-back{ position: fixed; inset: 0; top: var(--bar-h); padding: 0 1rem 1rem; background-color: rgba(240, 240, 240, 0.85); background-color: var(--c-back); } .collection-menu-back{ display: flex; justify-content: flex-end; flex-direction: column; } summary{ padding: calc(1rem - 1px) 1rem; height: var(--bar-h); border-top: 1px solid var(--c-back); box-sizing: border-box; background: lightgray; color: black; cursor: pointer; white-space: nowrap; padding-right: 3rem; z-index: 999; position: relative; } summary span{ display: inline-block; position: absolute; right: 0.5rem; } summary + div{ position: absolute; left: calc(100% + 1px); top: 0; } .collection{ top: calc(-1 * var(--bar-h) * calc(var(--index) - 1) + 1px); max-height: calc(100vh - 1px - var(--bar-h)); overflow: auto; width: calc(100vw - 24rem); display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1px; padding-bottom: var(--bar-h); box-sizing: border-box; } .collection > .figfont{ padding: 0rem 0.5rem; background: lightgray; cursor: pointer; white-space: nowrap; box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; gap: 0.25rem; position: relative; } .specimen-link { display: flex; align-items: center; padding: 1em; } .figfont:hover{ color: var(--c-link); } /* catalogue colors */ .figfont::after{ content: ''; width: 0.75rem; height: 0.75rem; border-radius: 50%; background-color: var(--c); display: inline-block; position: absolute; top: 0.5rem; right: 0.5rem; } .thumbnail{ mix-blend-mode: darken; display: block; } .legend::before{ content: ''; width: 0.75rem; height: 0.75rem; border-radius: 50%; background-color: var(--c); margin-right: 0.5rem; display: inline-block; vertical-align: middle; }