Files
folio/app/assets/css/main.css
T
2026-06-22 00:28:43 -05:00

163 lines
3.1 KiB
CSS

@import './fonts.css';
:root {
/* --font: 'Baskervville', serif; */
/* --font: 'EB Garamond', serif; */
/* --font: 'Plantin MT Pro', serif; */
/* --font: 'Young Serif', serif; */
/* --font: "SohneBuch", sans-serif; */
--font-plain: 'SohneBuch', sans-serif;
--font: 'Redaction', serif;
--font-hover: 'Redaction 70', serif;
/* --font-hover: var(--font); */
--text: #333;
--muted: #666;
--bg: #fbfbf7;
--bg-secondary: #efefe8;
--dot-color: #666;
--color-white-500: #fbfbf7;
--gap: 1rem;
--radius: 4px;
}
::selection {
background: var(--text);
color: var(--bg);
}
.dark-mode {
--text: #fbfbf7;
--bg: #0c0c0c;
--bg-secondary: #1c1c1c;
--dot-color: #666;
--muted: #a3a3a3;
--color-white-500: #fbfbf7;
}
.flex {
display: flex;
}
.flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.flex-ff {
flex: 1;
}
.row {
flex-direction: row;
}
.col {
flex-direction: column;
}
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
background: var(--bg);
overscroll-behavior-y: none;
overscroll-behavior-x: auto;
}
body {
font-family: var(--font);
color: var(--text);
font-size: 16px;
line-height: 1.6;
}
/* full-page film grain */
body::after {
content: '';
position: fixed;
inset: 0;
z-index: 9999;
pointer-events: none;
opacity: 0.06;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
mix-blend-mode: multiply;
}
.dark-mode body::after {
mix-blend-mode: screen;
opacity: 0.045;
}
/* quick page transition */
.page-enter-active,
.page-leave-active {
transition: opacity 0.18s ease;
}
.page-enter-from,
.page-leave-to {
opacity: 0;
}
.basic-link {
color: var(--text);
transition: opacity 0.2s ease;
text-underline-offset: 4px;
}
.basic-link:hover {
opacity: 0.5;
}
.punch-link {
display: inline-block;
vertical-align: bottom;
position: relative;
color: var(--color-white-500);
text-decoration: none;
transition: all 200ms ease;
padding: 0 4px;
margin: 0 -4px;
background-image: linear-gradient(
var(--color-white-500),
var(--color-white-500)
);
background-size: 100% 1px;
background-position: bottom;
background-repeat: no-repeat;
mix-blend-mode: screen;
}
.punch-link:hover {
background-size: 100% 100%;
background-image: linear-gradient(#fff, #fff);
color: #000;
}
.back-link {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: small;
color: var(--text);
text-decoration: none;
transition: opacity 0.2s ease;
}
.back-link .arrow {
transition: transform 0.2s ease;
}
.back-link:hover .arrow {
transform: translateX(-4px);
}