/* werc layout. Palette, type and components: tc.css */ html { min-height: 100%; } body { display: grid; grid-template-columns: minmax(16em, max-content) minmax(0, 1200px) minmax(0, 1fr); grid-template-rows: auto 1fr auto; min-height: 100vh; min-height: 100dvh; margin: 0; padding: 0; } header, footer { grid-column: 1 / -1; } body > nav { grid-column: 1; padding: 0; font-family: var(--font-ui); border-right: 3px solid var(--border-primary); } article { grid-column: 2; min-width: 0; padding: .5ex 1vw 5vh 1vw; backdrop-filter: blur(3px); background-color: rgba(0, 0, 0, .6); } /* header and top bar */ nav a, header a { text-decoration: none; color: inherit; } header a:hover, nav a:hover { color: inherit; text-shadow: none; } header h1 { display: flex; margin: 0; padding: .5ex 0 .5ex .6ex; color: var(--text-primary); border-bottom: 3px solid var(--border-secondary); font-size: 200%; font-weight: bold; line-height: 1.2; } header h1 a img { width: 50px; } header h1 .headerLink { display: inline-block; margin: .2ex 0 0 .6ex; font-family: var(--font-headers); font-size: xx-large; } header h1 #headerSubTitle { display: block; margin-left: 2em; font-size: 40%; color: var(--color-accent); } header h1 span:not(.siteTitle) { margin-left: 1em; font-size: 50%; font-style: italic; } header nav { display: flex; justify-content: space-between; padding: .3em; background-color: var(--header-bg); color: var(--header-text); border-bottom: 3px solid var(--border-secondary); font-family: var(--font-ui); font-size: 110%; } header nav a { padding: .2ex .5ex; } header nav a:hover { text-decoration: underline; background-color: rgba(255, 255, 255, .2); } header nav .right { font-weight: bold; } /* sidebar */ nav ul { display: flex; flex-direction: column; list-style: none; padding-left: 0; } nav li ul { padding-left: .6em; } body > nav > div p { margin: 0 0 .5em 2mm; padding: 1em 0 0; font-weight: bold; } body > nav > div .dt { color: var(--text-primary); } body > nav > div a:hover .dt { color: var(--text-accent); } body > nav > div a, input[type="submit"], .bu { display: block; padding: .25em 1ex .25em 2mm; color: var(--color-accent); font-weight: bold; font-size: 102%; } body > nav > div a:hover, input[type="submit"]:hover, .bu:hover { color: var(--text-accent) !important; background-color: var(--bg-primary); border-left: .3em solid var(--color-accent); text-decoration: none; } /* forms */ input[type="submit"], .bu { margin-top: 0; background-color: transparent; border: none; font-family: inherit; } fieldset { max-width: 1000px; padding: 1em; } fieldset input[type="submit"], .bu { margin-top: .6em; border: 2px solid var(--color-accent); } fieldset input[type="submit"]:hover, .bu:hover { border: 2px ridge var(--color-accent); border-left: .3em solid var(--color-accent); } .bu { width: fit-content; } input[type="text"], textarea { width: 100%; padding: 10px; margin-bottom: 10px; box-sizing: border-box; font-size: 12px; font-family: monospace; } .log input[type="text"] { width: unset; padding: 2px; } textarea#comment_text { max-width: 50em; max-height: 5em; } #test-search { padding: 5px; margin: 5px; } /* footer */ footer { display: flex; flex-wrap: wrap; justify-content: space-between; color: var(--text-primary); background-color: color-mix(in srgb, var(--bg-primary), transparent 40%); border-top: 1px solid color-mix(in srgb, var(--border-primary), transparent 70%); } footer div { padding: 1em; } /* sidebar toggle: a shell prompt, only shown on mobile */ .menu-toggle { position: absolute; opacity: 0; pointer-events: none; } .menu-toggle + label { display: none; } @media (max-width: 700px) { body { grid-template-columns: minmax(0, 1fr); padding-bottom: 4em; } article { grid-column: 1; padding: .5em .8em 3em; } header h1 { font-size: 150%; } header h1 { align-items: center; } header h1 .headerLink { flex: 1; margin: 0 .4em 0 0; text-align: center; font-size: clamp(1.4rem, 7vw, 2.1rem); line-height: 1.05; } header h1 #headerSubTitle { margin: .2em 0 0; font-size: 40%; } header nav { flex-direction: column; gap: .2em; padding: .3em 0; font-size: 100%; } header nav > div { overflow-x: auto; white-space: nowrap; padding: .1em .5em; scrollbar-width: none; } header nav > div::-webkit-scrollbar { display: none; } header nav .right { border-top: 1px dashed color-mix(in srgb, var(--header-text), transparent 60%); padding-top: .25em; } body > nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; flex-direction: column-reverse; border: 0; border-top: 2px solid var(--color-accent); background: color-mix(in srgb, var(--bg-primary), transparent 4%); backdrop-filter: blur(6px); } .menu-toggle + label { display: flex; align-items: center; gap: .6em; padding: .95em 1em; cursor: pointer; font-family: var(--font-body); font-size: 108%; color: var(--text-primary); user-select: none; } .menu-toggle + label .here { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .menu-toggle + label .here::before { content: 'tc:'; color: var(--color-accent); } .menu-toggle + label .here::after { content: '_'; color: var(--color-accent); animation: caret 1.1s steps(1) infinite; } .menu-toggle + label .cmd::before { content: '[ menu > ]'; margin-right: .6em; font-family: var(--font-ui); font-size: 90%; color: var(--text-secondary); opacity: .7; } .menu-toggle + label .cmd::after { content: 'ls ▴'; padding: .15em .6em; border: 1px solid var(--color-accent); font-family: var(--font-ui); letter-spacing: .08em; color: var(--color-accent); } .menu-toggle:checked + label .cmd::after { content: 'exit ▾'; color: var(--hot); border-color: var(--hot); } .menu-toggle:focus-visible + label { outline: 2px solid var(--color-accent); outline-offset: -2px; } .nav-content { display: none; max-height: 70vh; overflow-y: auto; overscroll-behavior: contain; padding: .4em .4em .8em; border-bottom: 1px dashed color-mix(in srgb, var(--color-accent), transparent 50%); } .menu-toggle:checked ~ .nav-content { display: block; } .nav-content::before { content: '$ ls -R ~ — ~/noumenon/cabin'; display: block; padding: .3em .5em .5em; font-family: var(--font-body); font-size: 85%; color: var(--text-secondary); } .nav-content ul { margin: 0; } .nav-content li ul { margin-left: 1.1em; padding-left: .5em; border-left: 1px dashed color-mix(in srgb, var(--color-accent), transparent 55%); } body > nav > div a { padding: .55em .6em; font-size: 105%; } body > nav > div a.thisPage { background: color-mix(in srgb, var(--color-secondary), transparent 82%); border-left: .3em solid var(--color-accent); } } @keyframes caret { 50% { opacity: 0; } }