/* * Cascading Style Sheets für www.nelsbrock.de * Copyright © 2022 Niklas Elsbrock */ :root { --bg-color: #1a1a24; --text-color: #c9c9c9; --deco-color: #c9c9c9; --link-color: #c9c9c9; --link-hover-color: #ffffff; --footer-text-color: #888888; } @font-face { font-family: 'Inter'; font-display: swap; src: local('Inter Regular'), url('./fonts/inter/Inter-Regular.woff2') format('woff2'); } @font-face { font-family: 'Inter'; font-style: italic; font-display: swap; src: local('Inter Italic'), url('./fonts/inter/Inter-Italic.woff2') format('woff2'); } @font-face { font-family: 'Inter'; font-weight: bold; font-display: swap; src: local('Inter Bold'), url('./fonts/inter/Inter-Bold.woff2') format('woff2'); } @font-face { font-family: 'Metropolis'; font-display: swap; src: local('Metropolis Regular'), url('./fonts/metropolis/Metropolis-Regular.woff2') format('woff2'); } @font-face { font-family: 'Metropolis'; font-style: italic; font-display: swap; src: local('Metropolis RegularItalic'), url('./fonts/metropolis/Metropolis-RegularItalic.woff2') format('woff2'); } @font-face { font-family: 'Metropolis'; font-weight: bold; font-display: swap; src: local('Metropolis Bold'), url('./fonts/metropolis/Metropolis-Bold.woff2') format('woff2'); } @font-face { font-family: 'Font Awesome 6 Free Solid'; font-weight: 900; font-display: block; src: url('./fonts/fontawesome/fa-solid-900.woff2') format('woff2'); } @font-face { font-family: 'Font Awesome 6 Free Brands'; font-weight: 400; font-display: block; src: url('./fonts/fontawesome/fa-brands-400.woff2') format('woff2'); } @keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes moveFromLeft { 0% { transform: translateX(-2rem); } 100% { transform: none; } } @keyframes moveFromRight { 0% { transform: translateX(2rem); } 100% { transform: none; } } @keyframes moveFromTop { 0% { transform: translateY(-2rem); } 100% { transform: none; } } @keyframes moveFromBottom { 0% { transform: translateY(2rem); } 100% { transform: none; } } @keyframes enlargeX { 0% { transform: scaleX(0.5); } 100% { transform: none; } } @keyframes enlargeY { 0% { transform: scaleY(0.5); } 100% { transform: none; } } html { font-size: 20px; } html, body { width: 100%; height: 100%; } body { display: flex; justify-content: center; align-items: center; margin: 0; color: var(--text-color); background-color: var(--bg-color); font-family: Inter, sans-serif; } h1, h2, h3, h4, h5, h6 { font-family: Metropolis, sans-serif; } hr { border: 4px solid var(--deco-color); border-radius: 4px; } main { animation: fadeIn ease 1s; animation-iteration-count: 1; } .card { display: flex; } .card > * { margin: 0.5rem 1rem; } .card .main-info { text-align: right; animation: moveFromLeft ease 1s; animation-iteration-count: 1; } .card hr { animation: enlargeY ease 1s; animation-iteration-count: 1; } .card nav { display: flex; align-items: center; line-height: 2; animation: moveFromRight ease 1s; animation-iteration-count: 1; } .card nav ul { margin: 0; padding: 0; list-style: none; } .card nav a { color: var(--link-color); text-decoration: none; transition: color 0.25s; } .card nav a:hover { color: var(--link-hover-color); } .card nav a::before { display: inline-block; min-width: 1.5rem; font-family: 'Font Awesome 6 Free Solid', 'Font Awesome 6 Free Brands'; margin: 0; } /* ----- GITHUB LINK ----- */ .card nav a.link-github:hover { color: #00bfff; } .card nav a.link-github::before { content: "\f09b"; } /* ----- E-MAIL LINK ----- */ .card nav a.link-email:hover { color: #ff7700; } .card nav a.link-email::before { content: "\f0e0"; } /* ----- PGP KEY LINK ----- */ .card nav a.link-pgp-key:hover { color: #cf3fff; } .card nav a.link-pgp-key::before { content: "\f084"; } /* ------------------------ */ footer { position: absolute; right: 0; bottom: 0; margin: 0.25rem; font-size: 0.6rem; color: var(--footer-text-color); } a { color: inherit; text-decoration: underline dotted; } a:hover { text-decoration-style: solid; } a[data-icon]::before { font-family: 'Font Awesome 6 Free Solid', 'Font Awesome 6 Free Brands'; font-style: normal; font-weight: normal; content: attr(data-icon) '\00A0'; } @media (max-width: 800px) { .card { flex-direction: column; } .card .main-info { text-align: center; animation-name: moveFromTop; } .card hr { animation-name: enlargeX; } .card nav { justify-content: center; animation-name: moveFromBottom; } }