mirror of
https://codeberg.org/vegvisir/website.git
synced 2025-09-14 00:43:42 +02:00
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>
267 lines
No EOL
4.3 KiB
CSS
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;
|
|
}
|
|
} |