/* if you want to keep it super simple, you can edit these top variables (variables = the things that start with --) to add some style and leave the rest of the css alone! */ :root { /* colors */ --background-image: url(background.png); --background-color: #FFD9F8; --text: #5e333f; --box-background: #fefaf4; --accent: #e1373a; --accent-dark: #883727; --accent-light: #f3729f; --accent-lighter: #ffd1e9; /* fonts */ --base-font: monospace; --text-size: 12px; --secondary-font: serif; /* misc styling */ --background-image-size: auto; --max-width: 850px; --spacing: 15px; --border-radius: 8px; --text-underline: wavy var(--accent-light); --border: dashed var(--accent) 1px; --shadow-color: var(--accent); --shadow-color-hover: var(--accent-light); --title-color: var(--box-background); --nav-width: 120px; /* don't mess with these unless you really want to */ --header-size: clamp(2em, calc(var(--max-width) / 20), 50px); --border-radius-lg: calc(var(--border-radius) * 2); --border-radius-sm: calc(var(--border-radius) / 2); --nav-shadow: 0px 0px 4px var(--shadow-color); --nav-shadow-hover: 0px 0px 4px var(--shadow-color-hover); --flower-shadow: drop-shadow(1px 1px var(--shadow-color)) drop-shadow(-1px 1px var(--shadow-color)) drop-shadow(-1px -1px var(--shadow-color)) drop-shadow(1px -1px var(--shadow-color)); --doublespacing: calc(var(--spacing) * 2); --halfspacing: calc(var(--spacing) / 2); --smnavwidth: calc(var(--nav-width) * .6); --halfwidth: calc(var(--smnavwidth) * .5); } * { box-sizing: border-box; max-width: 100%; scrollbar-color: var(--accent-light) transparent; -ms-overflow-style: none; box-decoration-break: clone; } body { overflow-x: hidden; overflow-y: scroll; padding: var(--spacing) 5%; /* background-color: ; */ background: var(--background-image) var(--background-color); background-size: var(--background-image-size); color: var(--text); font-family: var(--base-font); font-size: var(--text-size); line-height: 1.5em; } #container { display: flex; flex-flow: row wrap; gap: var(--doublespacing); margin: 30px auto; max-width: var(--max-width); } aside { width: var(--nav-width); gap: var(--spacing); display: flex; text-align: center; flex-flow: row wrap; align-content: space-evenly; align-items: center; justify-content: space-evenly; max-height: 1000px; &.left { order: 1; } &.right { order: 3; } .nav { width: 100%; margin: 0 auto; display: flex; flex-flow: column; align-items: center; text-align: center; text-align-last: center; align-content: center; justify-content: center; position: relative; filter: var(--flower-shadow); >article, >div[popover] { filter: var(--flower-shadow); overflow-y: scroll; overflow-x: hidden; word-wrap: break-word; max-height: 250px; padding: 8px 4px; line-height: 1.2em; background: var(--box-background); width: 100%; height: 100%; border-radius: var(--border-radius); border: none; outline: 1px var(--box-background) dashed; outline-offset: 2px; } >article { font-size: .9em; } >div[popover] { aspect-ratio: 1 / 1; max-height: max(var(--nav-width), 100px); } >a, >button { background-color: transparent; font-size: var(--smnavwidth); color: var(--text); font-family: var(--secondary-font); border-radius: 100%; flex: 1 1 auto; margin: 0 auto; line-height: 1em; vertical-align: baseline; text-decoration: none; position: relative; >.img { position: relative; display: flex; height: var(--nav-width); width: var(--nav-width); flex-flow: row; justify-content: center; align-items: center; align-content: center; filter: drop-shadow(var(--nav-shadow)); >img {} } &::before { content: ""; background: var(--box-background); display: block; height: 100%; margin: 0 auto; aspect-ratio: 1 / 1; position: absolute; z-index: -1; --g: /15.522% 15.522% radial-gradient(#000 calc(71% - 1px), #0000 71%) no-repeat; mask: 100% 50% var(--g), 96.624% 68.062% var(--g), 86.95% 83.685% var(--g), 72.287% 94.758% var(--g), 54.613% 99.787% var(--g), 36.317% 98.091% var(--g), 19.868% 89.901% var(--g), 7.489% 76.322% var(--g), 0.851% 59.187% var(--g), 0.851% 40.813% var(--g), 7.489% 23.678% var(--g), 19.868% 10.099% var(--g), 36.317% 1.909% var(--g), 54.613% 0.213% var(--g), 72.287% 5.242% var(--g), 86.95% 16.315% var(--g), 96.624% 31.938% var(--g), radial-gradient(100% 100%, #000 41.519%, #0000 calc(41.519% + 1px)); } &:hover, &:focus { .img { transform: rotate(5deg); filter: drop-shadow(var(--nav-shadow-hover)); } span { display: block; color: var(--box-background); margin: 0 auto; line-height: 15px; font-size: initial; z-index: 2; padding: 2px; width: 100%; min-width: fit-content; text-align: center; background: var(--accent); position: absolute; bottom: 0; font-family: var(--secondary-font) } } >span { display: none } } div[popover] { position: relative; max-width: var(--nav-width); inset: unset; min-width: 150px; &.links a { margin: 5px auto; } } } /* end nav */ } /* end aside */ /* main */ main { order: 2; flex: 4 1 200px; display: flex; flex-flow: row wrap; gap: var(--spacing); align-content: flex-start; article { background: var(--box-background); padding: 20px; outline: var(--border); outline-offset: -6px; border-radius: var(--border-radius); border: 2px var(--background-color) solid; overflow-x: hidden; width: 100%; } } /* end main */ footer { flex: 1 0 100%; background: var(--accent); color: var(--box-background); border-radius: var(--border-radius-sm); padding: 2px 5%; text-align: center; height: fit-content; } /* classes for articles, etc */ .small { flex: 1 2 220px } .big { flex: 1 0 100%; } article:has(> .small) { display: flex; flex-flow: row wrap; gap: var(--halfspacing); >.small { flex: 1 2 100px; } } .scroll { max-height: 400px; overflow-y: scroll; } .center { text-align: center; } article.accent { background: var(--accent-lighter); border-color: var(--box-background) } /* element styling */ article a, main a, div[popover] a { padding: 0px 2px; margin: 4px -1px; } a { background: var(--accent); color: var(--box-background); text-decoration: underline var(--text-underline); text-underline-offset: .3em; &:has(> img) { background: none; display: inline-block; padding: 2px; } } a:hover { background: var(--accent-light) } .links a { display: block; margin: 10px auto; font-size: 1em; letter-spacing: 2px; line-height: 1.2em; border-radius: var(--border-radius-sm) } b, strong { color: var(--accent-dark) } i, em { color: var(--accent) } mark { background-color: var(--accent-lighter); padding: 0 2px; color: var(--accent-dark) } code, textarea { font-size: min(.9em, 12px); vertical-align: middle; padding: 0px 3px; font-family: monospace; background: var(--accent-lighter); color: var(--accent-dark); border: var(--accent-light) solid 1px; border-radius: var(--border-radius-sm); } textarea { padding: var(--halfspacing) } u { text-decoration: underline var(--text-underline); } ol, ul { margin: var(--spacing) 0; } li { padding-left: var(--halfspacing); margin: var(--halfspacing) auto; } li>ul { padding-left: var(--spacing); margin: auto; } li::marker { color: var(--accent); } blockquote { padding-left: var(--spacing); margin: var(--spacing); margin-left: var(--halfspacing); border-left: var(--border); color: var(--accent-dark) } hr { width: auto; border: .5px var(--accent) solid; filter: var(--flower-shadow); outline: 1px var(--box-background) dashed; outline-offset: 2px; margin: var(--spacing); } button { background: none; border: none; color: inherit; font-size: inherit; padding: 0; margin: 0; cursor: help; } article :is(h1, h2, h3, h4) { font-family: var(--secondary-font); font-weight: normal; line-height: 1em; margin: var(--spacing) auto; padding: 0; text-wrap: pretty; border-bottom: var(--border); &:first-child { margin-top: 0; } &:has(+ br, + p) { margin-bottom: 0 } } h1 { color: var(--accent); font-size: var(--header-size); } h1:not(article h1) { font-family: var(--secondary-font); font-weight: normal; line-height: 1em; padding: 0; text-wrap: pretty; background: var(--shadow-color); color: var(--title-color); line-height: 1.2em; width: 100%; text-align: center; margin: 0 auto; border-radius: var(--border-radius-sm); border: var(--background-color) 1px solid; filter: var(--flower-shadow); outline: 1px var(--box-background) dashed; outline-offset: 2px; } h2 { font-size: calc(var(--header-size) * .9); color: var(--accent); } h3 { font-size: calc(var(--header-size) * .6); width: 100%; display: block; border-bottom: var(--border); color: var(--accent); } h4 { font-size: calc(var(--header-size) * .5); width: 100%; display: block; color: var(--accent-light); border-bottom: 1px dashed var(--accent-light) } /* dark mode */ :where(.dark) { b, strong, blockquote { color: var(--accent-light) !important; } code, mark, textarea { color: var(--box-background) !important; } article.accent { background: accent-dark; } } /* make the layout responsive for smaller screens */ @media screen and (max-width: 750px) { #container, main { flex-flow: column wrap } aside { order: 1; flex-flow: row wrap; width: 100%; max-width: 100%; &.right { order: 1; } .nav { width: 80%; aspect-ratio: auto; padding: 0; max-width: fit-content; >a::before, >button::before { width: var(--smnavwidth); height: var(--smnavwidth); top: calc(50% - var(--halfwidth)); left: calc(50% - var(--halfwidth)) } >a, >button { width: var(--smnavwidth); height: var(--smnavwidth); >.img { width: var(--smnavwidth); height: var(--smnavwidth); } &:hover, &:focus { span { left: 0px; } } } article { flex: 1 1 100%; } div[popover] { width: 100%; max-width: 50vw; left: 20%; filter: var(--flower-shadow) drop-shadow(0px 0px 5px var(--accent-dark)); } } } main { order: 2 } aside .nav:has(> article) { order: 5; } footer { flex: 1 1 auto } }