rough first draft of v2!

This commit is contained in:
ari melody 2026-07-06 19:09:56 +01:00
parent 103bf3f1c3
commit dd04d44f47
Signed by: ari
GPG key ID: CF99829C92678188
29 changed files with 430 additions and 389 deletions

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Artists - ari melody 💫</title> <title>Artists - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<link rel="stylesheet" href="/admin/static/artists.css"> <link rel="stylesheet" href="/admin/static/artists.css">
{{end}} {{end}}

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Account Settings - ari melody 💫</title> <title>Account Settings - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<link rel="stylesheet" href="/admin/static/edit-account.css"> <link rel="stylesheet" href="/admin/static/edit-account.css">
{{end}} {{end}}

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Editing Track - ari melody 💫</title> <title>Editing Track - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<link rel="stylesheet" href="/admin/static/edit-track.css"> <link rel="stylesheet" href="/admin/static/edit-track.css">
<link rel="stylesheet" href="/admin/static/tracks.css"> <link rel="stylesheet" href="/admin/static/tracks.css">
<link rel="stylesheet" href="/admin/static/releases.css"> <link rel="stylesheet" href="/admin/static/releases.css">

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Admin - ari melody 💫</title> <title>Admin - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<link rel="stylesheet" href="/admin/static/releases.css"> <link rel="stylesheet" href="/admin/static/releases.css">
<link rel="stylesheet" href="/admin/static/artists.css"> <link rel="stylesheet" href="/admin/static/artists.css">
<link rel="stylesheet" href="/admin/static/tracks.css"> <link rel="stylesheet" href="/admin/static/tracks.css">

View file

@ -18,7 +18,7 @@
<header> <header>
<nav id="navbar"> <nav id="navbar">
<a href="/" class="nav icon" aria-label="ari melody" title="Return to Home"> <a href="/" class="nav icon" aria-label="ari melody" title="Return to Home">
<img src="/img/favicon.png" alt="" width="64" height="64"> <img src="/img/favicon.webp" alt="" width="64" height="64">
</a> </a>
<div class="nav-item{{if eq .Path "/"}} active{{end}}"> <div class="nav-item{{if eq .Path "/"}} active{{end}}">
<a href="/admin">home</a> <a href="/admin">home</a>

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Login - ari melody 💫</title> <title>Login - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<style> <style>
form#login-totp { form#login-totp {
width: 100%; width: 100%;

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Login - ari melody 💫</title> <title>Login - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<style> <style>
@media screen and (max-width: 720px) { @media screen and (max-width: 720px) {
h1 { h1 {

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Admin - ari melody 💫</title> <title>Admin - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<style> <style>
p a { p a {

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Audit Logs - ari melody 💫</title> <title>Audit Logs - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<link rel="stylesheet" href="/admin/static/logs.css"> <link rel="stylesheet" href="/admin/static/logs.css">
{{end}} {{end}}

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Register - ari melody 💫</title> <title>Register - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<style> <style>
p a { p a {
color: #2a67c8; color: #2a67c8;

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Releases - ari melody 💫</title> <title>Releases - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<link rel="stylesheet" href="/admin/static/releases.css"> <link rel="stylesheet" href="/admin/static/releases.css">
{{end}} {{end}}

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>TOTP Confirmation - ari melody 💫</title> <title>TOTP Confirmation - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<style> <style>
.qr-code { .qr-code {
border: 1px solid #8888; border: 1px solid #8888;

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>TOTP Setup - ari melody 💫</title> <title>TOTP Setup - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
{{end}} {{end}}
{{define "content"}} {{define "content"}}

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>Releases - ari melody 💫</title> <title>Releases - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<link rel="stylesheet" href="/admin/static/tracks.css"> <link rel="stylesheet" href="/admin/static/tracks.css">
{{end}} {{end}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 944 KiB

BIN
public/img/favicon.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 24 KiB

View file

@ -1,23 +1,36 @@
:root { :root {
--background: #080808; --background-dark: #080808;
--on-background: #f0f0f0; --on-background-dark: #f0f0f0;
--primary-dark: #b7fd49;
--secondary-dark: #f8e05b;
--tertiary-dark: #f788fe;
--links-dark: #5eb2ff;
--background-light: #ffffff;
--on-background-light: #101010;
--primary-light: #6d9e23;
--secondary-light: #a5911e;
--tertiary-light: #a92cb1;
--links-light: #3ba1ff;
--background: var(--background-dark);
--on-background: var(--on-background-dark);
--primary: var(--primary-dark);
--secondary: var(--secondary-dark);
--tertiary: var(--tertiary-dark);
--links: var(--links-dark);
--primary: #b7fd49;
--secondary: #f8e05b;
--tertiary: #f788fe;
--links: #5eb2ff;
--live: #fd3737; --live: #fd3737;
} }
@media (prefers-color-scheme: light) { @media (prefers-color-scheme: light) {
:root { :root {
--background: #ffffff; --background: var(--background-light);
--on-background: #101010; --on-background: var(--on-background-light);
--primary: var(--primary-light);
--primary: #6d9e23; --secondary: var(--secondary-light);
--secondary: #a5911e; --tertiary: var(--tertiary-light);
--tertiary: #a92cb1; --links: var(--links-light);
--links: #3ba1ff;
} }
} }

View file

@ -1,63 +1,63 @@
header { header {
position: fixed; position: fixed;
top: 0; top: 8px;
left: 0; left: 0;
width: 100vw; width: 100vw;
border-bottom: 1px solid #8888; z-index: 999;
background-color: var(--background);
z-index: 1;
transition: color .2s, background-color .2s; transition: color .2s, background-color .2s;
} }
nav { nav {
width: min(calc(100% - 4rem), 720px); width: min-content; /* min(calc(100% - 7.25em), 900px); */
height: 3em; height: 3em;
margin: auto; margin: auto; /* auto 6em auto auto; */
padding: 0 1em; padding: 0 0 0 .25em;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
gap: .8em; gap: .8em;
align-items: center; align-items: center;
border-radius: 2em;
backdrop-filter: blur(8px) brightness(110%);
box-shadow: 0 1px 2px #0004;
transition-property: background-color, color, backdrop-filter;
transition-duration: .2s;
img#header-icon {
width: 2em;
height: 2em;
padding: .5em;
transition: filter ease-out .1s;
}
}
@media (prefers-color-scheme: dark) {
nav {
backdrop-filter: blur(8px) brightness(200%);
img#header-icon {
filter: invert();
}
}
}
@media screen and (max-width: 540px) {
nav {
width: calc(100vw - 2em);
padding: 0 .25em;
}
} }
#header-home { #header-home {
flex-grow: 1;
display: flex; display: flex;
gap: .5em; gap: .5em;
} }
img#header-icon {
width: 2em;
height: 2em;
margin: .5em;
display: block;
}
#header-text {
display: flex;
flex-direction: column;
justify-content: center;
}
#header-text h1 {
width: fit-content;
margin: 0;
font-size: 1em;
}
#header-text h2 {
width: fit-content;
height: 1.2em;
line-height: 1.2em;
margin: 0;
font-size: .7em;
color: #bbb;
}
#header-links-toggle { #header-links-toggle {
width: 3em; width: 3em;
height: 3em; height: 3em;
margin-left: auto;
margin-right: .5em;
display: none; display: none;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -69,71 +69,75 @@ img#header-icon {
} }
header ul#header-links { header ul#header-links {
height: 100%;
margin: 0; margin: 0;
padding: 0; padding: 0;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
gap: .5em;
align-items: center; align-items: center;
} gap: .5em;
header ul li { li {
height: 100%;
margin: 0 -.5em;
list-style: none; list-style: none;
}
header ul li a, &:last-of-type {
header ul li span { margin-right: 0;
padding: .4em .5em;
border: 1px solid var(--links); a {
color: var(--links); padding-right: 1em;
border-radius: 2px; }
background-color: transparent; }
transition-property: color, border-color, background-color;
transition-duration: .2s; a, span {
animation-delay: 0s; --colour: var(--links);
animation: list-item-fadein .2s forwards;
opacity: 0; height: 100%;
min-width: 3em;
padding: 0 1em;
display: flex;
justify-content: center;
align-items: center;
color: var(--colour);
transition-property: color, background-color, box-shadow;
transition-duration: .05s;
transition-timing-function: ease-out;
text-decoration: none; text-decoration: none;
} }
header ul li span { span {
color: #aaa; color: #aaa;
border-color: #aaa; border-color: #aaa;
cursor: default; cursor: default;
text-decoration: none; text-decoration: none;
}
header ul li a:hover {
color: #eee;
border-color: #eee;
background-color: var(--links) !important;
text-decoration: none;
}
#toggle-crt a {
color: var(--primary);
border-color: var(--primary);
opacity: 1;
}
#toggle-crt a:hover {
color: #111;
background-color: var(--primary) !important;
}
#toggle-crt.disabled a {
opacity: .5 !important;
}
@media screen and (max-width: 780px) {
header {
font-size: 14px;
} }
nav { a {
width: calc(100vw - 2rem); border-radius: 2em;
margin: 0;
&:hover, &.active {
--bg-transparency: 90%;
background-color: color-mix(
in srgb,
var(--colour),
transparent var(--bg-transparency)
);
text-decoration: none;
&:active {
--bg-transparency: 75%;
}
}
}
}
}
@media screen and (max-width: 540px) {
header {
font-size: 14px;
} }
div#header-text { div#header-text {
@ -146,32 +150,40 @@ header ul li a:hover {
header ul#header-links { header ul#header-links {
position: fixed; position: fixed;
left: 0; left: -.75em;
top: 2.7rem; top: 3.5em;
width: calc(100vw - 2rem); width: calc(100vw - 4em);
padding: 1rem; height: fit-content;
margin: 0 1em;
padding: 1em;
display: none;
flex-direction: column; flex-direction: column;
gap: 1rem; gap: 1rem;
border-bottom: 1px solid #888;
border-radius: 1em;
box-shadow: 0 1px 2px #0004;
background: var(--background); background: var(--background);
display: none;
}
header ul#header-links.open { li {
display: flex;
}
ul#header-links li {
width: 100%; width: 100%;
&:last-of-type {
margin-right: -.5em;
} }
ul#header-links li a, a, span {
ul#header-links li span {
margin: 0; margin: 0;
display: block; display: block;
font-size: 1em; font-size: 1em;
text-align: center; text-align: center;
} }
}
}
header ul#header-links.open {
display: flex;
}
} }
@keyframes list-item-fadein { @keyframes list-item-fadein {
@ -185,4 +197,3 @@ header ul li a:hover {
background: transparent; background: transparent;
} }
} }

View file

@ -1,85 +1,60 @@
main { main {
width: min(calc(100% - 4rem), 720px); width: min(calc(100% - 4rem), 900px);
min-height: calc(100vh - 10.3rem); min-height: calc(100vh - 10.3rem);
margin: 0 auto 2rem auto; margin: 0 auto 2rem auto;
padding-top: 4rem;
} }
main h1 { .fancyheader-inner {
line-height: 3rem; display: flex;
color: var(--primary); justify-content: space-between;
.right {
margin-top: auto;
}
h1 .icon {
width: .5em;
height: .5em;
transform: translateY(-.3em);
animation: wiggle-loop 2s cubic-bezier(.4,0,.6,1) alternate infinite;
}
} }
main h2 { @media (prefers-color-scheme: dark) {
.fancyheader-inner h1 .icon {
filter: invert();
}
}
@keyframes wiggle-loop {
from { transform: translateY(-.3em) rotate(0deg); }
to { transform: translateY(-.3em) rotate(10deg); }
}
h2 {
color: var(--secondary); color: var(--secondary);
} }
main h3 { h3 {
color: var(--tertiary); color: var(--tertiary);
} }
div#me_irl { h1, h2, h3, h4, h5, h6, p, small, blockquote {
width: fit-content;
height: fit-content;
border: 2px solid white;
}
div#me_irl img {
display: block;
}
div#me_irl::before {
content: "";
position: absolute;
width: 104px;
height: 104px;
transform: translate(2px, 2px);
background-image: linear-gradient(to top right,
var(--primary),
var(--secondary));
z-index: -1;
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
small,
blockquote {
transition: background-color 0.1s; transition: background-color 0.1s;
}
h1 a, &:hover {
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
color: inherit;
}
h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover {
text-decoration: none;
}
main h1:hover,
main h2:hover,
main h3:hover,
main h4:hover,
main h5:hover,
main h6:hover,
main p:hover,
main small:hover,
main blockquote:hover {
background-color: #fff1; background-color: #fff1;
}
}
h1, h2, h3, h4, h5, h6 {
a {
color: inherit;
&:hover {
text-decoration: none;
}
}
} }
blockquote { blockquote {
@ -97,45 +72,48 @@ hr {
} }
ul.platform-links { ul.platform-links {
padding-left: 1em;
display: flex; display: flex;
gap: .5em; margin: 0 0 0 auto;
flex-wrap: wrap; padding: 0;
}
ul.platform-links li { li {
list-style: none; list-style: none;
}
ul.platform-links li a { a {
padding: .4em .5em; padding: .5em;
display: flex; display: flex;
flex-direction: row;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
gap: .5em;
border: 1px solid var(--links);
color: var(--links);
border-radius: 2px;
background-color: transparent; background-color: transparent;
transition-property: color, border-color, background-color, box-shadow; transition-property: background-color, box-shadow;
transition-duration: .2s; transition-duration: .2s;
animation-delay: 0s; animation:
animation: list-item-fadein .2s forwards; social-button-bouncein .5s forwards cubic-bezier(0, 1.5, .5, 1),
social-button-fadein .2s forwards ease-out;
opacity: 0; opacity: 0;
}
ul.platform-links li a:hover { img {
color: #eee;
border-color: #eee;
background-color: var(--links) !important;
text-decoration: none;
box-shadow: 0 0 1em var(--links);
}
ul.platform-links li a img {
height: 1em; height: 1em;
width: 1em; width: 1em;
}
&:hover {
background-color: var(--on-background) !important;
box-shadow: 0 0 1em var(--on-background);
text-decoration: none;
}
}
}
}
@keyframes social-button-bouncein {
from { transform: translateY(1em); }
to { transform: none; }
}
@keyframes social-button-fadein {
from { opacity: 0; }
to { opacity: 1; }
} }
ul#projects { ul#projects {

View file

@ -14,19 +14,84 @@
} }
body { body {
margin: 0; margin: 4em 0 0 0;
padding: 0; padding: 0;
background: var(--background); background: var(--background);
color: var(--on-background); color: var(--on-background);
font-family: "Monaspace Argon", monospace; font-family: "Lora", serif;
font-size: 18px; font-size: 18px;
scroll-behavior: smooth; scroll-behavior: smooth;
transition: color .2s, background-color .2s; transition: color .2s, background-color .2s;
} }
body.crt #overlay { .fancyheader {
display: block; width: 100vw;
margin: 5em 0 2em 0;
background-color: var(--background);
color: var(--on-background);
background-image: radial-gradient(
circle at 0% 0%,
color-mix(in srgb, var(--primary-dark), transparent 75%),
transparent
);
.fancyheader-inner {
width: 900px;
margin: 0 auto;
padding: 2em 0;
gap: 1em;
}
span {
font-family: "Monaspace Argon", monospace;
}
}
@media screen and (max-width: 980px) {
.fancyheader .fancyheader-inner {
width: calc(100% - 4em);
padding: 2em;
}
}
@media screen and (max-width: 540px) {
.fancyheader .fancyheader-inner {
flex-direction: column;
}
}
h1 {
margin: 0;
font-family: "Inter Display", "Inter", sans-serif;
font-size: 4em;
}
.subheader {
height: 2em;
display: flex;
flex-direction: row;
gap: 2px;
align-items: center;
.swatch {
--colour: #f0f;
width: .5em;
height: .5em;
background-color: var(--colour);
box-shadow: 1px 1px 0 #000;
&.primary { --colour: var(--primary-dark); }
&.secondary { --colour: var(--secondary-dark); }
&.tertiary { --colour: var(--tertiary-dark); }
&:last-of-type {
margin-right: .5em;
}
}
} }
a { a {
@ -135,10 +200,6 @@ a#backtotop:hover {
body { body {
font-size: 14px; font-size: 14px;
} }
main {
margin-top: 4rem;
}
} }
@ -164,9 +225,3 @@ a#backtotop:hover {
filter: invert(.9); filter: invert(.9);
} }
} }
@media (prefers-color-scheme: dark) {
body.crt {
text-shadow: 0 0 3em;
}
}

View file

@ -1,8 +1,7 @@
main { main {
width: min(calc(100% - 4rem), 720px); width: min(calc(100% - 4rem), 900px);
min-height: calc(100vh - 10.3rem); min-height: calc(100vh - 10.3rem);
margin: 0 auto 2rem auto; margin: 0 auto 2rem auto;
padding-top: 4rem;
} }
main nav { main nav {
@ -101,18 +100,11 @@ h3.music-type-upcoming {
} }
h2.question { h2.question {
margin: 1rem 0; margin: 1em 0;
padding: 1rem 1.5rem;
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
} }
div.answer {
margin: -1rem 0 1rem 0;
padding: .5em 1.5em;
border-radius: 4px;
}
@media screen and (max-width: 740px) { @media screen and (max-width: 740px) {
div.music { div.music {
flex-direction: column; flex-direction: column;

View file

@ -1,6 +1,6 @@
{{define "head"}} {{define "head"}}
<title>404 - ari melody 💫</title> <title>404 - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<link rel="stylesheet" href="/style/error.css"> <link rel="stylesheet" href="/style/error.css">
{{end}} {{end}}

View file

@ -3,11 +3,7 @@
<header> <header>
<nav> <nav>
<div id="header-home"> <div id="header-home">
<img src="/img/favicon.png" id="header-icon" width="100" height="100" alt=""> <img src="/img/favicon.webp" id="header-icon" width="100" height="100" alt="">
<div id="header-text">
<h1>ari melody</h1>
<h2>your local SPACEGIRL 💫</h2>
</div>
</div> </div>
<a id="header-links-toggle"> <a id="header-links-toggle">
<svg viewBox="0 0 70 50" xmlns="http://www.w3.org/2000/svg" width="24" height="24"> <svg viewBox="0 0 70 50" xmlns="http://www.w3.org/2000/svg" width="24" height="24">
@ -31,9 +27,6 @@
<!-- coming later! --> <!-- coming later! -->
<span title="coming later!">art</span> <span title="coming later!">art</span>
</li> </li>
<li id="toggle-crt">
<a href="javascript:void(0)">crt</a>
</li>
</ul> </ul>
</nav> </nav>
</header> </header>

View file

@ -1,13 +1,13 @@
{{define "head"}} {{define "head"}}
<title>ari melody 💫</title> <title>ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<meta name="description" content="home to your local SPACEGIRL 💫"> <meta name="description" content="home to your local SPACEGIRL 💫">
<meta property="og:title" content="ari melody"> <meta property="og:title" content="ari melody">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:url" content="www.arimelody.space"> <meta property="og:url" content="www.arimelody.space">
<meta property="og:image" content="https://www.arimelody.space/img/favicon.png"> <meta property="og:image" content="https://www.arimelody.space/img/favicon.webp">
<meta property="og:site_name" content="ari melody 💫"> <meta property="og:site_name" content="ari melody 💫">
<meta property="og:description" content="home to your local SPACEGIRL 💫"> <meta property="og:description" content="home to your local SPACEGIRL 💫">
@ -20,9 +20,9 @@
{{end}} {{end}}
{{define "content"}} {{define "content"}}
<main>
{{if .TwitchStatus}} {{if .TwitchStatus}}
<div id="live-banner"> <div id="live-banner">
<div class="live-preview"> <div class="live-preview">
<div> <div>
<img src="{{.TwitchStatus.Thumbnail 144 81}}" alt="livestream thumbnail" class="live-thumbnail"> <img src="{{.TwitchStatus.Thumbnail 144 81}}" alt="livestream thumbnail" class="live-thumbnail">
@ -35,19 +35,63 @@
<p class="live-viewers">{{.TwitchStatus.ViewerCount}} viewers</p> <p class="live-viewers">{{.TwitchStatus.ViewerCount}} viewers</p>
</div> </div>
</div> </div>
</div> </div>
{{end}} {{end}}
<h1 class="typeout"> <div class="fancyheader">
# hello, world! <div class="fancyheader-inner">
<div class="left">
<h1>
hi, i'm ari!
<img src="/img/favicon.webp" class="icon" width="64" height="64" alt="">
</h1> </h1>
<div class="subheader">
<div class="swatch primary"></div>
<div class="swatch secondary"></div>
<div class="swatch tertiary"></div>
<span>she/her 🏳️‍⚧️ 🏳️‍🌈 💫 🦆 🇮🇪</span>
</div>
</div>
<p> <div class="right">
<strong>i'm ari!</strong> <ul class="platform-links">
<br> <li>
<small>she/her 🏳️‍⚧️🏳️‍🌈💫🦆🇮🇪</small> <a href="https://youtube.com/@arispacegirl" title="youtube" style="animation-delay: 0ms">
</p> <img src="/img/brand/youtube.svg" alt="youtube" width="32" height="32"/>
</a>
</li>
<li>
<a href="https://twitch.tv/arispacegirl" title="twitch" style="animation-delay: 50ms">
<img src="/img/brand/twitch.svg" alt="twitch" width="32" height="32"/>
</a>
</li>
<li>
<a href="https://arimelody.bandcamp.com" title="bandcamp" style="animation-delay: 100ms">
<img src="/img/brand/bandcamp.svg" alt="bandcamp" width="32" height="32"/>
</a>
</li>
<li>
<a href="https://codeberg.org/arimelody" title="codeberg" style="animation-delay: 150ms">
<img src="/img/brand/codeberg.svg" alt="codeberg" width="32" height="32"/>
</a>
</li>
<li>
<a href="https://bsky.app/profile/arimelody.space" title="bluesky" style="animation-delay: 200ms">
<img src="/img/brand/bluesky.svg" alt="bluesky" width="32" height="32"/>
</a>
</li>
<li>
<a href="https://arimelody.space/discord" title="discord" style="animation-delay: 250ms">
<img src="/img/brand/discord.svg" alt="discord" width="32" height="32"/>
</a>
</li>
</ul>
</div>
</div>
</div>
<main>
<div id="intro">
<p> <p>
i'm a <a href="/music">musician</a>, <a href="https://codeberg.org/arimelody?tab=repositories">developer</a>, i'm a <a href="/music">musician</a>, <a href="https://codeberg.org/arimelody?tab=repositories">developer</a>,
<a href="https://twitch.tv/arispacegirl">streamer</a>, <a href="https://youtube.com/@arispacegirl">youtuber</a>, <a href="https://twitch.tv/arispacegirl">streamer</a>, <a href="https://youtube.com/@arispacegirl">youtuber</a>,
@ -74,10 +118,14 @@
thank you for stopping by- i hope you have a lovely rest of your day! 💫 thank you for stopping by- i hope you have a lovely rest of your day! 💫
</p> </p>
<div class="character">
</div>
</div>
<hr> <hr>
<h2 class="typeout"> <h2 class="typeout">
## metadata metadata
</h2> </h2>
<p> <p>
@ -97,48 +145,6 @@
<li>ssh (ed25519): <a href="/keys/id_ari_ed25519.pub" target="_blank">[link]</a></li> <li>ssh (ed25519): <a href="/keys/id_ari_ed25519.pub" target="_blank">[link]</a></li>
</ul> </ul>
<p>
<strong>where to find me 🛰️</strong>
</p>
<ul class="platform-links">
<li>
<a href="https://youtube.com/@arispacegirl" title="youtube">
<img src="/img/brand/youtube.svg" alt="youtube" width="32" height="32"/>
youtube
</a>
</li>
<li>
<a href="https://twitch.tv/arispacegirl" title="twitch">
<img src="/img/brand/twitch.svg" alt="twitch" width="32" height="32"/>
twitch
</a>
</li>
<li>
<a href="https://arimelody.bandcamp.com" title="bandcamp">
<img src="/img/brand/bandcamp.svg" alt="bandcamp" width="32" height="32"/>
bandcamp
</a>
</li>
<li>
<a href="https://codeberg.org/arimelody" title="codeberg">
<img src="/img/brand/codeberg.svg" alt="codeberg" width="32" height="32"/>
codeberg
</a>
</li>
<li>
<a href="https://bsky.app/profile/arimelody.space" title="bluesky">
<img src="/img/brand/bluesky.svg" alt="bluesky" width="32" height="32"/>
bluesky
</a>
</li>
<li>
<a href="https://arimelody.space/discord" title="discord">
<img src="/img/brand/discord.svg" alt="discord" width="32" height="32"/>
discord
</a>
</li>
</ul>
<p> <p>
<strong>projects i've worked on 🛠️</strong> <strong>projects i've worked on 🛠️</strong>
</p> </p>
@ -197,7 +203,7 @@
<hr> <hr>
<h2 class="typeout"> <h2 class="typeout">
## cool critters cool critters
</h2> </h2>
<div id="web-buttons"> <div id="web-buttons">
@ -266,7 +272,7 @@
</div> </div>
<h2 class="typeout"> <h2 class="typeout">
## webring webring
</h2> </h2>
<div class="webring"> <div class="webring">

View file

@ -17,12 +17,8 @@
{{block "content" .}} {{block "content" .}}
<main> <main>
<h1> <h1>hello, world!</h1>
# hello, world! <p>this is a default page!</p>
</h1>
<p>
this is a default page!
</p>
</main> </main>
{{end}} {{end}}

View file

@ -1,13 +1,13 @@
{{define "head"}} {{define "head"}}
<title>music - ari melody 💫</title> <title>music - ari melody 💫</title>
<link rel="shortcut icon" href="/img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="/img/favicon.webp" type="image/x-icon">
<meta name="description" content="music from your local SPACEGIRL 💫"> <meta name="description" content="music from your local SPACEGIRL 💫">
<meta property="og:title" content="ari melody music"> <meta property="og:title" content="ari melody music">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:url" content="www.arimelody.space/music"> <meta property="og:url" content="www.arimelody.space/music">
<meta property="og:image" content="https://www.arimelody.space/img/favicon.png"> <meta property="og:image" content="https://www.arimelody.space/img/favicon.webp">
<meta property="og:site_name" content="ari melody 💫"> <meta property="og:site_name" content="ari melody 💫">
<meta property="og:description" content="music from your local SPACEGIRL 💫"> <meta property="og:description" content="music from your local SPACEGIRL 💫">
@ -17,13 +17,20 @@
{{end}} {{end}}
{{define "content"}} {{define "content"}}
<div class="fancyheader">
<div class="fancyheader-inner">
<div class="left">
<h1>my music</h1>
<div class="subheader">
<span>art for your ears!</span>
</div>
</div>
</div>
</div>
<main> <main>
<script type="module" src="/script/music.js"></script> <script type="module" src="/script/music.js"></script>
<h1 class="typeout">
# my music
</h1>
<div id="music-container"> <div id="music-container">
{{range $Release := .}} {{range $Release := .}}
<div class="music" id="{{$Release.ID}}"> <div class="music" id="{{$Release.ID}}">
@ -54,7 +61,7 @@
<h2 id="usage" class="question typeout"> <h2 id="usage" class="question typeout">
<a href="#usage"> <a href="#usage">
&gt; "can i use your music in my content?" Q: "can i use your music in my content?"
</a> </a>
</h2> </h2>
<div class="answer"> <div class="answer">