diff --git a/assets/components.css b/assets/components.css index 72686e0..1381897 100644 --- a/assets/components.css +++ b/assets/components.css @@ -16,14 +16,27 @@ } .inline-code { - border-radius: var(--radius-md); + border-radius: var(--space-2); border: 1px solid var(--theme-separator); background-color: var(--theme-background-alt); - color: var(--theme-foreground); - padding: 0.1em 0.5em; + color: var(--text-foreground-alt); + padding: 0em 0.75em; + text-align: center; + display: inline-block; + vertical-align: middle; + line-height: 2; + font-weight: 500; +} + +#logo-home > img { + height: 2.4rem; } nav { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; margin-bottom: var(--spacing-2xl); } @@ -31,20 +44,32 @@ nav ul { display: flex; flex-wrap: wrap; list-style: none; - padding-left: 0; - gap: var(--spacing-md); + padding: var(--space-1); + gap: var(--space-1); + + font-family: monospace; + font-size: var(--font-size-md); + font-weight: 500; + + background-color: var(--theme-surface); + border: 1px solid var(--theme-surface-border); + border-radius: 1000px; + + width: fit-content; } nav li a { - padding: 0.35em 1.5em; color: var(--theme-foreground-alt); + padding: var(--space-pad-surface) var(--space-4); + line-height: 1rem; display: block; } nav li.selected a { background-color: var(--theme-primary); color: var(--theme-background); - border-radius: var(--radius-lg); + font-weight: 600; + border-radius: 1000px; } nav a { @@ -106,27 +131,17 @@ section::before { } } -.typewriting a::after, #donation a::after, #links a::after, #about a::after, -article a::after { +#contact a::after, +:is(.typewriting, article) a:not([href^="#"])::after { display: inline-block; width: 0.9em; height: 0.9em; margin-left: var(--space-1); - vertical-align: -0.1em; - content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a7a0ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6' /%3E%3Cpath d='M11 13l9 -9' /%3E%3Cpath d='M15 4h5v5' /%3E%3C/svg%3E"); -} - -@media (prefers-color-scheme: light) { - .typewriting a::after, - #donation a::after, - #links a::after, - #about a::after, - article a::after { - content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236f65f2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6' /%3E%3Cpath d='M11 13l9 -9' /%3E%3Cpath d='M15 4h5v5' /%3E%3C/svg%3E"); - } + vertical-align: -0.2em; + content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5e0dc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6' /%3E%3Cpath d='M11 13l9 -9' /%3E%3Cpath d='M15 4h5v5' /%3E%3C/svg%3E"); } section.typewriting a, diff --git a/assets/home.css b/assets/home.css index 0f191c7..0dd72c4 100644 --- a/assets/home.css +++ b/assets/home.css @@ -8,6 +8,9 @@ #projects ul { list-style: none; padding-left: 0; + display: grid; + grid-template-columns: repeat(2,minmax(0,1fr)); + gap: var(--space-2); } .project-card { @@ -17,11 +20,11 @@ background-color: var(--theme-background-alt); border: 1px solid var(--theme-separator); padding: var(--space-3) var(--space-4); - margin-bottom: var(--space-2); position: relative; overflow: hidden; border-radius: var(--radius-lg); transition: all var(--transition-fast); + line-height: 1.75; } .project-card::before { @@ -34,12 +37,12 @@ color: transparent; font-size: 32rem; letter-spacing: -0.075em; - line-height: 1; + line-height: 0.95; text-align: center; align-items: center; justify-content: center; -webkit-text-stroke: 2px var(--theme-separator); - opacity: 0.16; + opacity: 0.1; } .project-card:hover { @@ -52,6 +55,7 @@ position: absolute; color: var(--theme-foreground-alt); bottom: var(--space-3); + line-height: 1; right: var(--space-3); opacity: 50%; } @@ -90,7 +94,7 @@ .project-card .description { font-size: var(--font-size-sm); color: var(--theme-foreground-alt); - margin-bottom: var(--space-2); + margin-bottom: var(--space-3); } .project-card .info { @@ -131,10 +135,6 @@ line-height: 1; } -#donation .silly-table a::after { - vertical-align: -0.2em; -} - .row:last-of-type .key, .row:last-of-type .value { border-bottom: none; @@ -320,29 +320,30 @@ u #friends::before { #about h2::before, #languages h2::before, -#trivia h2::before { - background-color: #9f99f0; +#trivia h2::before, +#contact h2::before { + background-color: #f5e0dc; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); } #links h2::before { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%239f99f0' %3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M10 2a3 3 0 0 1 2.995 2.824l.005 .176v1h3a2 2 0 0 1 1.995 1.85l.005 .15v3h1a3 3 0 0 1 .176 5.995l-.176 .005h-1v3a2 2 0 0 1 -1.85 1.995l-.15 .005h-3a2 2 0 0 1 -1.995 -1.85l-.005 -.15v-1a1 1 0 0 0 -1.993 -.117l-.007 .117v1a2 2 0 0 1 -1.85 1.995l-.15 .005h-3a2 2 0 0 1 -1.995 -1.85l-.005 -.15v-3a2 2 0 0 1 1.85 -1.995l.15 -.005h1a1 1 0 0 0 .117 -1.993l-.117 -.007h-1a2 2 0 0 1 -1.995 -1.85l-.005 -.15v-3a2 2 0 0 1 1.85 -1.995l.15 -.005h3v-1a3 3 0 0 1 3 -3z' /%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%23f5e0dc' %3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M10 2a3 3 0 0 1 2.995 2.824l.005 .176v1h3a2 2 0 0 1 1.995 1.85l.005 .15v3h1a3 3 0 0 1 .176 5.995l-.176 .005h-1v3a2 2 0 0 1 -1.85 1.995l-.15 .005h-3a2 2 0 0 1 -1.995 -1.85l-.005 -.15v-1a1 1 0 0 0 -1.993 -.117l-.007 .117v1a2 2 0 0 1 -1.85 1.995l-.15 .005h-3a2 2 0 0 1 -1.995 -1.85l-.005 -.15v-3a2 2 0 0 1 1.85 -1.995l.15 -.005h1a1 1 0 0 0 .117 -1.993l-.117 -.007h-1a2 2 0 0 1 -1.995 -1.85l-.005 -.15v-3a2 2 0 0 1 1.85 -1.995l.15 -.005h3v-1a3 3 0 0 1 3 -3z' /%3E%3C/svg%3E"); } #donation h2::before { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%239f99f0'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M15.999 2a1 1 0 0 1 1.001 1v3.255l.026 .018a7 7 0 0 1 2.204 2.537l.092 .19h.676a2 2 0 0 1 1.995 1.85l.005 .15v2a2 2 0 0 1 -2 2h-.676l-.104 .213a7 7 0 0 1 -1.097 1.558l-.123 .125v1.604a2.5 2.5 0 0 1 -2.336 2.495l-.162 .005c-1.16 0 -2.135 -.79 -2.418 -1.86l-.032 -.141l-4.05 .001l-.05 -.002l-.032 .141a2.5 2.5 0 0 1 -2.254 1.856l-.164 .005a2.5 2.5 0 0 1 -2.5 -2.5v-1.602l-.056 -.055a7 7 0 0 1 -1.576 -7.085l.092 -.256a7 7 0 0 1 6.539 -4.502h2.196l4.25 -2.832a1 1 0 0 1 .436 -.161zm-.999 8a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%23f5e0dc'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M15.999 2a1 1 0 0 1 1.001 1v3.255l.026 .018a7 7 0 0 1 2.204 2.537l.092 .19h.676a2 2 0 0 1 1.995 1.85l.005 .15v2a2 2 0 0 1 -2 2h-.676l-.104 .213a7 7 0 0 1 -1.097 1.558l-.123 .125v1.604a2.5 2.5 0 0 1 -2.336 2.495l-.162 .005c-1.16 0 -2.135 -.79 -2.418 -1.86l-.032 -.141l-4.05 .001l-.05 -.002l-.032 .141a2.5 2.5 0 0 1 -2.254 1.856l-.164 .005a2.5 2.5 0 0 1 -2.5 -2.5v-1.602l-.056 -.055a7 7 0 0 1 -1.576 -7.085l.092 -.256a7 7 0 0 1 6.539 -4.502h2.196l4.25 -2.832a1 1 0 0 1 .436 -.161zm-.999 8a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1'/%3E%3C/svg%3E"); } #projects h2::before { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%239f99f0'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M17.108 22.085c-1.266 -.068 -2.924 -.859 -5.071 -2.355l-.04 -.027l-.037 .027c-2.147 1.497 -3.804 2.288 -5.072 2.356l-.178 .005c-2.747 0 -3.097 -2.64 -1.718 -7.244l.054 -.178l-.1 -.075c-6.056 -4.638 -5.046 -7.848 2.554 -8.066l.202 -.005l.115 -.326c1.184 -3.33 2.426 -5.085 4.027 -5.192l.156 -.005c1.674 0 2.957 1.76 4.182 5.197l.114 .326l.204 .005c7.6 .218 8.61 3.428 2.553 8.065l-.102 .075l.055 .178c1.35 4.512 1.04 7.137 -1.556 7.24l-.163 .003z' /%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%23f5e0dc'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M17.108 22.085c-1.266 -.068 -2.924 -.859 -5.071 -2.355l-.04 -.027l-.037 .027c-2.147 1.497 -3.804 2.288 -5.072 2.356l-.178 .005c-2.747 0 -3.097 -2.64 -1.718 -7.244l.054 -.178l-.1 -.075c-6.056 -4.638 -5.046 -7.848 2.554 -8.066l.202 -.005l.115 -.326c1.184 -3.33 2.426 -5.085 4.027 -5.192l.156 -.005c1.674 0 2.957 1.76 4.182 5.197l.114 .326l.204 .005c7.6 .218 8.61 3.428 2.553 8.065l-.102 .075l.055 .178c1.35 4.512 1.04 7.137 -1.556 7.24l-.163 .003z' /%3E%3C/svg%3E"); } #friends h2::before { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239f99f0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0' /%3E%3Cpath d='M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2' /%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75' /%3E%3Cpath d='M21 21v-2a4 4 0 0 0 -3 -3.85' /%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23f5e0dc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0' /%3E%3Cpath d='M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2' /%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75' /%3E%3Cpath d='M21 21v-2a4 4 0 0 0 -3 -3.85' /%3E%3C/svg%3E"); } #media h2::before { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239f99f0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 10v3'/%3E%3Cpath d='M6 6v11'/%3E%3Cpath d='M10 3v18'/%3E%3Cpath d='M14 8v7'/%3E%3Cpath d='M18 5v13'/%3E%3Cpath d='M22 10v3'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23f5e0dc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 10v3'/%3E%3Cpath d='M6 6v11'/%3E%3Cpath d='M10 3v18'/%3E%3Cpath d='M14 8v7'/%3E%3Cpath d='M18 5v13'/%3E%3Cpath d='M22 10v3'/%3E%3C/svg%3E"); } .typecycle { @@ -382,7 +383,7 @@ u #friends::before { } 8.33%, 16.66% { - width: 4ch; + width: 4.1ch; } } @@ -395,7 +396,7 @@ u #friends::before { } 41.66%, 50% { - width: 5ch; + width: 4.1ch; } } @@ -408,7 +409,7 @@ u #friends::before { } 75%, 83.33% { - width: 5ch; + width: 4.1ch; } } @@ -434,6 +435,12 @@ u #friends::before { } } +@media (max-width: 920px) { + #projects ul { + grid-template-columns: repeat(1, 1fr); + } +} + @media (max-width: 370px) { .griddy { grid-template-columns: repeat(1, 1fr); @@ -455,7 +462,7 @@ u #friends::before { } .griddy .column li { - font-style: italic; + font-family: monospace; font-size: 0.9em; color: var(--theme-foreground-alt); } @@ -520,11 +527,67 @@ footer a, #trivia ul { color: var(--theme-foreground-alt); font-size: 0.9em; + list-style-type: square; padding-left: 2ch; } #languages li::marker, #trivia li::marker { - color: var(--theme-foreground); - content: "# "; + color: var(--theme-primary); + content: "↳ "; +} + +.dats-me { + background-clip: text !important; + -webkit-background-clip: text !important; + -webkit-text-fill-color: transparent; + animation: dats-lowkey-me 60s linear infinite; + background-size: 1000% 100% !important; + + background: repeating-linear-gradient( + -90deg, + #a6e3a1, + #a6e3a1, + #e5c76b, + #e5c76b, + #1e66f5, + #1e66f5, + #89b4fa, + #89b4fa, + #f5c2e7, + #f5c2e7, + #cdd6f4, + #cdd6f4, + #f5c2e7, + #f5c2e7, + #89b4fa, + #89b4fa, + #d97742, + #d97742, + #fab387, + #fab387, + #f2e9e1, + #f2e9e1, + #f5bde6, + #f5bde6, + #b4637a, + #b4637a + ); +} + +@keyframes dats-lowkey-me { + 0% { + background-position: 0% 50%; + } + 100% { + background-position: -900% 50%; + } +} + +#languages img { + display: inline-block; + vertical-align: middle; + image-rendering: pixelated; + margin-right: var(--space-1); + height: 16px; } diff --git a/assets/report.css b/assets/report.css index fc8318e..670e77c 100644 --- a/assets/report.css +++ b/assets/report.css @@ -89,6 +89,7 @@ background-color: var(--theme-background); border: 1px solid var(--theme-separator); border-radius: var(--radius-lg); + line-height: 1.75; color: var(--theme-foreground-alt); } @@ -112,15 +113,15 @@ article header { margin-bottom: var(--space-7); padding-bottom: var(--space-7); border-bottom: 1px solid var(--theme-separator); + color: var(--theme-foreground-bruh); } article header .meta { display: flex; align-items: center; font-size: var(--font-size-md); - color: var(--theme-foreground-bruh); margin-bottom: var(--space-2); - gap: var(--space-4); + gap: var(--space-1); } body > a[href="/reports"] { @@ -131,14 +132,18 @@ body > a[href="/reports"] { article header h1 { font-size: var(--font-size-xl); - margin-top: var(--space-5); - margin-bottom: var(--space-3); + margin-top: var(--space-6); color: var(--theme-foreground); } +article header p { + margin-bottom: var(--space-4); +} + article header .tags { display: flex; flex-wrap: wrap; + margin-top: var(--space-2); gap: var(--space-2); } @@ -149,6 +154,7 @@ article header .tag { border: 1px solid var(--theme-separator); border-radius: var(--radius-lg); color: var(--theme-foreground-alt); + line-height: 1.75; } article .content { @@ -186,13 +192,8 @@ article .content h3::before { margin-right: 0.5ch; } -article footer { - margin-top: var(--space-10); - padding-top: var(--space-7); - border-top: 1px solid var(--theme-separator); - text-align: center; - color: var(--theme-foreground-alt); - font-size: var(--font-size-md); +article + footer { + margin-top: var(--space-7); } #reports-header { @@ -210,3 +211,28 @@ article footer { #reports-header > a > svg { margin-left: var(--space-1); } + +hr { + border: none; + height: 1px; + width: 100%; + background-color: var(--theme-separator); + margin: var(--space-7) 0; +} + +article a[href^="#"] { + text-decoration: underline; + text-underline-offset: 1px; +} + +article blockquote { + padding-left: 1em; + border-left: 3px solid var(--theme-primary); + border-radius: 2px; + font-style: italic; +} + +article .expanded > span { + display: block; + margin: 0.5em 0; +} diff --git a/assets/styles.css b/assets/styles.css index 28ba747..e98cde7 100644 --- a/assets/styles.css +++ b/assets/styles.css @@ -1,4 +1,52 @@ -@import url(/fonts/iosevka-custom/import.css); +@font-face { + font-family: "Iosevka Custom Web"; + font-display: swap; + font-weight: 400; + font-stretch: normal; + font-style: normal; + src: + url("/fonts/iosevka-custom/WOFF2/IosevkaCustom-Regular.woff2") + format("woff2"), + url("/fonts/iosevka-custom/TTF/IosevkaCustom-Regular.ttf") + format("truetype"); +} + +@font-face { + font-family: "Iosevka Custom Web"; + font-display: swap; + font-weight: 400; + font-stretch: normal; + font-style: italic; + src: + url("/fonts/iosevka-custom/WOFF2/IosevkaCustom-Italic.woff2") + format("woff2"), + url("/fonts/iosevka-custom/TTF/IosevkaCustom-Italic.ttf") + format("truetype"); +} + +@font-face { + font-family: "Iosevka Custom Web"; + font-display: swap; + font-weight: 700; + font-stretch: normal; + font-style: normal; + src: + url("/fonts/iosevka-custom/WOFF2/IosevkaCustom-Bold.woff2") format("woff2"), + url("/fonts/iosevka-custom/TTF/IosevkaCustom-Bold.ttf") format("truetype"); +} + +@font-face { + font-family: "Iosevka Custom Web"; + font-display: swap; + font-weight: 700; + font-stretch: normal; + font-style: italic; + src: + url("/fonts/iosevka-custom/WOFF2/IosevkaCustom-BoldItalic.woff2") + format("woff2"), + url("/fonts/iosevka-custom/TTF/IosevkaCustom-BoldItalic.ttf") + format("truetype"); +} *, *::before, @@ -70,6 +118,7 @@ pre, code, button { font-family: - "Iosevka Custom Web", "Iosevka Custom", "Iosevka", monospace, sans-serif; - line-height: 1.7; + "Iosevka Custom Web", "Iosevka Custom", Iosevka, monospace, sans-serif; + text-rendering: optimizeLegibility; + line-height: 1.75rem; } diff --git a/assets/theme.css b/assets/theme.css index b081566..d39ee84 100644 --- a/assets/theme.css +++ b/assets/theme.css @@ -4,17 +4,20 @@ */ :root { - --theme-background: #121317; - --theme-background-alt: #090a0d; - --theme-foreground: #cac7ee; - --theme-primary: #9f99f0; - --theme-foreground-alt: #9593b9; - --theme-foreground-bruh: #7d7d86; - --theme-separator: #232833; + --theme-background: #181825; + --theme-background-alt: #11111b; + --theme-surface: #1e1e2e; + --theme-surface-border: #313244; + --theme-foreground: #cdd6f4; + --theme-primary: #f5e0dc; + --theme-foreground-alt: #a6adc8; + --theme-foreground-bruh: #7f849c; + --theme-separator: #313244; --space-0: 0.16rem; --space-1: 0.25rem; --space-2: 0.5rem; + --space-pad-surface: 0.625rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; @@ -64,15 +67,3 @@ --z-base: 0; --z-elevated: 10; } - -@media (prefers-color-scheme: light) { - :root { - --theme-background: #f5f5f7; - --theme-background-alt: #ffffff; - --theme-foreground: #1d1d1f; - --theme-foreground-alt: #515154; - --theme-foreground-bruh: #86868b; - --theme-separator: #b9b9bf; - --theme-primary: #6f65f2; - } -} diff --git a/components/Fm.tsx b/components/Fm.tsx index 38548a1..b81aa29 100644 --- a/components/Fm.tsx +++ b/components/Fm.tsx @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ -import { tracks } from "../utils/fm.ts"; +import { FM_USER, tracks } from "../utils/fm.ts"; export function Fm() { if (!tracks) return; @@ -45,7 +45,7 @@ export function Fm() { ))} - + Check out more on Last.fm diff --git a/components/Footer.tsx b/components/Footer.tsx index 71f3ae8..4beea96 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -7,6 +7,7 @@ export default function Footer() { return ( ); } diff --git a/components/Header.tsx b/components/Header.tsx index 60e54d7..c82bd53 100644 --- a/components/Header.tsx +++ b/components/Header.tsx @@ -7,9 +7,9 @@ export function Header(props: any) { return (

- ~miwa + ~lívia + lívia lívia - clara

she/her ∘ free software advocate ∘ linguistics enthusiast ૮ ˶ᵔ ᵕ ᵔ˶ sა diff --git a/components/Links.tsx b/components/Links.tsx index fafc9b9..6ebf034 100644 --- a/components/Links.tsx +++ b/components/Links.tsx @@ -4,7 +4,7 @@ */ export default function Links(props: { - selected: "home" | "about" | "reports" | "misc"; + selected: "home" | "contact" | "reports"; }) { return ( ); diff --git a/routes/about.tsx b/routes/about.tsx deleted file mode 100644 index 472a920..0000000 --- a/routes/about.tsx +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright (c) 2025 miwa - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - -import { Fm } from "@/components/Fm.tsx"; -import { Header } from "@/components/Header.tsx"; -import Links from "@/components/Links.tsx"; -import ProjectCard from "@/components/ProjectCard.tsx"; -import Code from "@/islands/Code.tsx"; -import Meow from "@/islands/Meow.tsx"; -import "@/assets/home.css"; -import Footer from "../components/Footer.tsx"; - -export default function About() { - return ( - <> - -
-

About

-

- I'm an aspiring electrical engineer with a keen interest in open - access to information and knowledge. My technical work centers on - functional programming, C99, and writing quirky TypeScript code that - explores its more obscure corners and unconventional patterns. I'm - drawn to atypical low-level technologies and have a particular - interest in the x86 and RISC-V ISAs. -

-

- In a more personal tone...{" "} - Hewwo! I'm Lívia, a 18-year-old girl from Brazil passionate about open - access to information, technology, linguistics, functional - programming, and pretty much anything that involves understanding - technology, human language, or philosophical frameworks. I hope you - find something interesting here, and don't hesitate to reach out if - you feel like it. :3 -

-

- When I'm not studying circuits or coding, it's likely that I'm either - exploring linguistics or listening to music. My tastes shift - constantly with my hyperfocus, ranging from indie, shoegaze, and J-Pop - to speedcore and various metal derivatives. I run a FreeBSD server - that hosts this site and various services, serving as my hands-on lab - for systems administration. ^-^ -

-

- Beyond quirky technology, I really{" "} - like linguistics and philosophy enthusiast. I'm also autistic n' ADHD, - so I might struggle with humour once in a while. I really like - befriending new people and growing as a person every single day!!! If - you've read this far, thanks for stopping by!{" "} -

-
-
-

languages

-
    -
  • - brazilian portuguese (native) -
  • -
  • - «all over the place» english (C1) -
  • -
  • - latin american spanish (A2) -
  • -
-
-
-

trivia

-
    -
  • there are no easter eggs up here. go away
  • -
-
-