website/public/assets/css/document.css
vlw e5a0a8169c Initial code commit (#1)
First (rushed 😦) release of the Vegvisir website.

Reviewed-on: https://codeberg.org/vegvisir/website/pulls/1
Co-authored-by: vlw <victor@vlw.se>
Co-committed-by: vlw <victor@vlw.se>
2024-08-30 10:01:58 +00:00

267 lines
No EOL
4.3 KiB
CSS

:root {
--primer-color-deep: 0, 128, 255;
--primer-color-light: 135, 255, 255;
--color-deep: rgba(var(--primer-color-deep));
--color-light: rgba(var(--primer-color-light));
--border-style-width: 1px;
--border-style: solid var(--border-style-width) rgba(var(--primer-color-deep), .2);
--padding: 10px;
--running-size: 70px;
--max-width: 1400px;
}
/* # Cornerstones */
* {
margin: 0;
color: inherit;
font-size: inherit;
box-sizing: border-box;
font-family: monospace;
}
body {
font-size: 15px;
overflow-x: hidden;
overscroll-behavior: none;
}
body.menuOpen {
overflow: hidden;
}
a {
color: inherit;
display: contents;
text-decoration: none;
}
/* # Components */
:is(h1, h2, h3, p, li) > a {
--underline-tickness: 3px;
display: initial;
text-decoration: underline;
text-decoration-color: var(--color-accent);
text-underline-offset: var(--underline-tickness);
text-decoration-thickness: var(--underline-tickness);
}
@media (hover: hover) {
:is(h1, h2, h3, p, li) > a:hover {
text-decoration-color: var(--color-deep);
}
}
h1 {
font-size: 30px;
color: var(--color-accent);
}
h2 {
font-size: 25px;
}
h3 {
font-size: 18px;
}
/* ## Container */
container {
margin: auto;
height: 100%;
display: flex;
width: clamp(200px, 100%, 80vw);
max-width: var(--max-width);
align-items: center;
gap: var(--padding);
padding: var(--padding) 0;
}
container.split {
display: grid;
grid-template-columns: repeat(2, 1fr);
}
container.split.reverse div:last-child {
order: -1;
}
container.split > div {
display: flex;
flex-direction: column;
align-items: baseline;
gap: var(--padding);
}
/* ## Button */
button {
border: unset;
fill: black;
cursor: pointer;
padding: 10px 15px;
border-radius: 4px;
background-color: rgba(0, 0, 0, 0);
border: solid var(--border-style-width) transparent;
}
button.solid {
fill: white;
color: white;
background-color: var(--color-deep);
}
button.shade {
background-color: rgba(0, 0, 0, .05);
}
@media (hover: hover) {
button:hover {
background-color: rgba(var(--primer-color-light), .3);
}
button.solid:hover {
color: var(--color-light);
background-color: var(--color-deep);
}
}
button svg {
fill: inherit;
width: 1em;
}
/* # Content */
/* ## Runners */
:is(header, footer) ul {
display: flex;
padding-left: 0;
list-style: none;
gap: var(--padding);
}
:is(header, footer) ul:last-of-type {
margin-left: auto;
}
:is(header, footer) container > button {
display: none;
margin-left: auto;
}
/* ### Header */
header {
--border-width: 2px;
top: 0px;
position: sticky;
background-color: white;
height: calc(var(--running-size) + var(--border-style-width));
border-bottom: var(--border-style);
z-index: 1000;
}
header .logo {
height: 40px;
padding: 5px;
border-radius: 4px;
background-color: var(--color-deep);
}
[vv-top-page="/"] header:not(.transparent) a[href="/"] button,
[vv-top-page="/help"] header a[href="/help"] button,
[vv-top-page^="/docs"] header a[href="/docs"] button,
[vv-top-page="/demos"] header a[href="/demos"] button,
[vv-top-page="/why"] header a[href="/why"] button {
font-weight: bold;
color: var(--color-deep);
border: var(--border-style);
}
/* ### Footer */
footer {
padding: var(--padding);
color: var(--color-light);
background-color: var(--color-deep);
}
/* ### Menu */
menu {
display: none;
position: fixed;
top: var(--running-size);
left: 0;
width: 100svw;
padding: calc(var(--padding) * 2);
height: calc(100svh - var(--running-size));
background-color: var(--color-deep);
}
body.menuOpen menu {
display: initial;
}
menu ul {
list-style: none;
padding-left: unset;
}
menu button {
color: white;
width: 100%;
margin-top: var(--padding);
}
/* # Size queries */
@media (max-width: 950px) {
container {
min-width: unset;
width: 100%;
padding: calc(var(--padding) * 2);
}
container.split {
display: flex;
flex-direction: column;
}
container.split.reverse {
flex-direction: column-reverse;
}
header ul button.solid,
:is(header, footer) ul:not(:last-of-type) {
display: none;
}
:is(header, footer) container > button {
display: initial;
}
footer :is(container, ul) {
flex-direction: column;
}
footer button,
footer ul:last-of-type {
width: 100%;
margin-left: unset;
}
}
@media (min-width: 950px) {
body.menuOpen menu {
display: none;
}
}