:root { font-family: Verdana, Geneva, sans-serif; font-size: larger; } * { box-sizing: border-box; transition: all 0.25s ease-in-out; } h1, h2 { text-align: center; } body, html { margin: 0; padding: 0; } body { width: 100%; display: grid; grid-template-areas: 'header' 'main' 'footer'; grid-template-rows: 3em auto auto; grid-template-columns: auto; } body > header { grid-area: header; } body > footer { grid-area: footer; padding-top: 0.5em; padding-bottom: 0.5em; } main { grid-area: main; padding-top: 0.5em; border-radius: 5px; padding-bottom: 0.5em; } a{ text-decoration: none; } mark, mark * { background: none; animation: mark-rainbow 2s linear infinite; } body > header, body > footer, main { justify-self: center; width: clamp(30ch, calc(100% - 1em), 75ch); padding-left: 0.5em; padding-right: 0.5em; } main.art { width: clamp(30ch, calc(100% - 1em), 100%); } main.art p { margin-left: auto; margin-right: auto; width: clamp(30ch, calc(100% - 1em), 75ch); } /* article/art elements */ div.article-info, div.art-info { line-height: 0.5; font-size: smaller; } /* nav bar / header */ body > header { display: flex; justify-content: space-between; align-items: center; align-content: center; } nav ul { margin: 0; padding: 0; list-style-type: none; } nav li { display: block; float: left; border-radius: 5px; min-width: 1em; max-width: 10em; padding-top: 0.2em; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; margin-left: 0.2em; margin-right: 0.2em; } nav > ul > li > ul { visibility: hidden; position: absolute; padding-top: 0.2em; padding-bottom: 0.2em; } nav > ul > li:hover > ul { visibility: visible; } nav > ul > li > ul > li { float: none; margin-top: 0.4em; } nav span { display: none; } @media screen and (min-width: 600px) { nav span { display: inline; padding-left: 0.4em; } } /* footer */ body > footer { margin-left: auto; margin-right: auto; text-align: center; } body > footer > span { font-size: smaller; } /* theme swticher */ button.theme-switcher { border: none; font: inherit; cursor: pointer; position: relative; border-radius: 5px; padding-top: 0.2em; padding-bottom: 0.2em; padding-left: 0; padding-right: 0; margin-left: 0.2em; margin-right: 0.2em; } button.theme-switcher > .fa-sun { transform: translate(-0.5em, -1em); } .theme-light button.theme-switcher > .fa-sun { transform: translateX(-0.5em); transition: all 0.25s ease-in-out; } button.theme-switcher > .fa-moon { transform: translate(0.5em, -1em); } .theme-dark button.theme-switcher > .fa-moon { transform: translateX(0.5em); transition: all 0.25s ease-in-out; } /* code blocks */ pre { white-space: pre-wrap; } code { padding: 0.1em; padding-left: 0.4em; padding-right: 0.4em; overflow-wrap: anywhere; } code.crypto { font-size: smaller; } /* for hljs line numbers */ .hljs-ln-numbers { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; text-align: right; border-right: 1px solid #CCC; vertical-align: top; padding-right: 0.5em !important; } .hljs-ln-code { padding-left: 0.5em !important; } /* images */ figure { margin: 0; margin-left: 1em; margin-right: 1em; } figcaption { margin-top: 0.5em; text-align: center; font-size: smaller; font-style: italic; } img { border-radius: 5px; max-width: 100%; display: block; margin-left: auto; margin-right: auto; /* vertical-align: middle; */ } img.wrap-right { float: right; } img.wrap-left { float: left; } /* img grid */ div.img-grid, div.img-grid > p { display: grid; gap: 1em; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } div.img-grid img { display: flex; flex-direction: column; justify-content: center; align-items: center; overflow: hidden; } /* crypto grid */ div.crypto-grid { display: grid; gap: 1em; /* the 200px corresponds tothe img qr size */ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } div.crypto-grid figure { margin: 0; } div.crypto-grid a { display: contents; } div.crypto-grid img.qr { max-width: 140px; } /* art grid / art gallery */ div.art-grid { display: grid; gap: 0.5em; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); grid-auto-rows: auto; } div.art-grid a { display: flex; flex-direction: column; justify-content: center; align-items: center; overflow: hidden; } div.art-grid a { display: contents; } div.art-grid img { object-fit: cover; width: 100%; height: 100%; } /* not sure if these two are needed as the one above works fine */ div.art-grid a.wide img { width: 100%; } div.art-grid a.tall img { height: 100%; } @media screen and (min-width: 600px) { div.art-grid a.wide img { grid-column: span 2 / auto; } div.art-grid a.tall img { grid-row: span 2 / auto; } } a.zoom-in { cursor: zoom-in; } /* art nav / for now also page nav */ div.art-nav, div.page-nav { width: 100%; display: grid; grid-template-areas: 'next index prev'; grid-template-columns: 1fr 1fr 1fr; align-items: center; justify-items: center; } div.art-nav > span.index, div.page-nav > span.index { grid-area: index; } div.art-nav > span.previous, div.page-nav > span.previous { grid-area: prev; } div.art-nav > span.next, div.page-nav > span.next { grid-area: next; } div.art-nav > span, div.page-nav > span { border-radius: 5px; min-width: 1em; max-width: 10em; padding-top: 0.2em; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; margin-left: 0.2em; margin-right: 0.2em; } div.art-nav > span span, div.page-nav > span span { display: none; } @media screen and (min-width: 600px) { div.art-nav > span span, div.page-nav > span span { display: inline; } }