cv.marc/in/style/main.css
2025-03-29 00:08:41 +01:00

263 lines
5.1 KiB
CSS

/* variables */
:root {
--alpha: rgba(0, 0, 0, 0);
/* border */
--border-off: var(--border-width) none var(--alpha);
--border-on: var(--border-width) solid var(--border-color);
--border-width: .1rem;
/* margin */
--margin: .4rem;
/* theme */
color-scheme: light dark;
/* theme / gradients */
--anchor-gradient: linear-gradient(to top, var(--alpha), var(--anchor-background), var(--alpha));
--banner-gradient: linear-gradient(to top, var(--alpha), var(--banner-background));
--body-gradient: linear-gradient(to top, var(--alpha), var(--body-background));
--header-gradient: linear-gradient(to top, var(--alpha), var(--header-background));
--item-even-gradient: linear-gradient(to top, var(--alpha), var(--item-even));
--item-odd-gradient: linear-gradient(to top, var(--alpha), var(--item-odd));
--org-gradient: linear-gradient(to top, var(--alpha), var(--org-background));
/* theme / light */
--anchor-background: #fcc;
--anchor-text: #f00;
--banner-background: #ccf;
--body-background: #fff;
--body-text: #000;
--border-color: #888;
--button-background: #bbb;
--header-background: #ccc;
--item-even: #ddd;
--item-odd: #eee;
--org-background: #afa;
--qrcode-background: ;
--ruler-border: #888;
}
@media screen {
[data-theme="dark"] {
/* theme / dark */
--anchor-background: #622;
--anchor-text: #f88;
--banner-background: #558;
--body-background: #000;
--body-text: #aaa;
--border-color: #888;
--button-background: #444;
--header-background: #444;
--item-even: #222;
--item-odd: #111;
--org-background: #030;
--qrcode-background: #aaa;
--ruler-border: #444;
}
}
/* main */
#link, #theme {
background-color: var(--button-background);
}
#vcard {
background-color: var(--qrcode-background);
}
@font-face {
font-display: swap;
font-family: "fa";
src: url("font/fa.woff2");
}
html {
font-family: "DejaVu Sans", sans-serif;
text-align: justify;
}
body {
background-color: var(--body-background);
color: var(--body-text);
margin-inline: auto;
max-inline-size: 108ch;
}
article, h2, h3, table {
margin-block-start: var(--margin);
}
h2, h3, header {
border-bottom: var(--border-off);
border-left: var(--border-on);
border-right: var(--border-on);
border-top: var(--border-on);
}
.link a:not(:has(img)),
.link button.link {
background: var(--anchor-gradient);
}
a:not(:has(img)) {
color: inherit;
padding: 0 .25em;
text-decoration: none;
text-decoration-skip-ink: auto;
text-underline-offset: .2em;
}
a:hover {
color: var(--anchor-text);
}
article.org, header {
border-radius: .25em;
padding-block: .25em;
}
header {
padding-inline: .5em;
background: var(--header-gradient);
}
header.org {
background: var(--org-gradient);
}
article header {
display: flex;
justify-content: space-between;
}
div.org {
display: flex;
}
section.banner {
align-items: center;
display: flex;
justify-content: space-evenly;
}
.banner {
margin-block-start: .5em;
}
button {
block-size: 2em;
border-radius: .25em;
color: var(--body-text);
margin-block: 0 auto;
margin-inline: .25em;
padding-inline: .5em;
}
h1, h2, h3 {
border-radius: .25em;
font-weight: bold;
}
h1 {
font-size: 1.15rem;
}
h2 {
background: var(--banner-gradient);
font-size: 1.10rem;
padding-block: .25em;
text-align: center;
}
h3 {
background: var(--header-gradient);
font-size: 1.05rem;
padding: .125em .25em;
}
hr {
border: .1em dashed;
border-color: var(--ruler-border);
margin-block: var(--margin);
}
img.big {
block-size: 5em;
}
img.inline {
block-size: 1.5em;
vertical-align: middle;
}
a.logo {
block-size: 2em;
margin-block: 0 auto;
}
img.logo {
block-size: 100%;
margin-inline: auto;
}
img.org {
block-size: 2em;
margin-inline-end: .5em;
}
img.photo {
border-radius: 1em;
border-bottom: var(--border-on);
border-left: var(--border-on);
border-right: var(--border-on);
border-top: var(--border-on);
}
li:nth-of-type(even) {
background: var(--item-even-gradient);
}
li:nth-of-type(odd) {
background: var(--item-odd-gradient);
}
strong, th {
text-shadow: .05em .05em .05em;
}
.banner table {
margin-block-start: 0;
margin-inline: 0;
}
table {
border-collapse: separate;
border-spacing: .5em .125em;
margin-inline: auto;
}
table h3 {
text-align: center;
}
th.logo, td.logo {
block-size: 1.5em;
}
th {
text-align: end;
}
ul {
list-style-type: disc;
padding-inline-start: 1.25em;
}
.columns {
display: grid;
gap: 1em;
grid-template-columns: 1fr;
}
.title, .duration.org {
font-weight: bold;
}
.sub, .period {
font-size: .75em;
}
.time {
text-align: end;
}
@media (width > 66ch) {
.columns { grid-template-columns: 2fr 1fr; }
aside { order: 2; }
main { order: 1; }
}
@media print {
@page { size: A4; }
html { font-size: 3mm; }
.columns { grid-template-columns: 2fr 1fr; }
aside { order: 2; }
main { order: 1; }
#theme { display: none; }
}