2024-04-20 10:10:34 +00:00
<!DOCTYPE html>
< html lang = "en" dir = "ltr" id = "page-top" >
< head >
< meta charset = "UTF-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< meta property = "og:title" content = "My Music Playlists" >
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< meta name = "description" content = "Music playlists that I have created." >
< meta name = "generator" content = "Eleventy v2.0.1" >
< meta property = "og:type" content = "website" >
< meta property = "og:url" content = "https://leilukin.neocities.org/projects/playlists/" >
< meta property = "og:site_name" content = "Leilukin's Hub" >
< meta property = "og:locale" content = "en_MY" >
< meta property = "og:description" content = "Music playlists that I have created." >
< meta name = "twitter:card" content = "summary" >
< meta name = "twitter:url" content = "https://leilukin.neocities.org/projects/playlists/" >
< meta name = "twitter:description" content = "Music playlists that I have created." >
< link rel = "canonical" href = "https://leilukin.neocities.org/projects/playlists/" >
< link rel = "stylesheet" href = "/assets/css/main.css" >
< link rel = "stylesheet" href = "/assets/fonts/noto-sans/noto-sans.css" >
< link href = "/assets/fonts/fontawesome/css/fontawesome.css" rel = "stylesheet" / >
< link href = "/assets/fonts/fontawesome/css/brands.css" rel = "stylesheet" / >
< link href = "/assets/fonts/fontawesome/css/solid.css" rel = "stylesheet" / >
< link rel = "apple-touch-icon" sizes = "180x180" href = "/assets/favicon/apple-touch-icon.png" >
< link rel = "icon" type = "image/png" sizes = "32x32" href = "/assets/favicon/favicon-32x32.png" >
< link rel = "icon" type = "image/png" sizes = "16x16" href = "/assets/favicon/favicon-16x16.png" >
< link rel = "manifest" href = "/assets/favicon/site.webmanifest" >
< title >
My Music Playlists | Leilukin's Hub
< / title >
< / head >
< body >
< header class = "hero" >
< div class = "hero__top-bar hidden" > < / div >
< div class = "hero__img" >
2024-04-20 12:00:02 +00:00
< img fetchpriority = "high" src = "/assets/leilukin/Leilukins-Hub-website-banner.png" alt = "Banner of Leilukin's Hub" >
2024-04-20 10:10:34 +00:00
< / div >
< / header >
< style >
.hero {
width: 100%;
background-color: var(--clr-hero-bg);
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
}
.hero__top-bar {
background-color: var(--clr-navbar-bg);
width: 100%;
2024-04-23 07:57:54 +00:00
padding: 0.5em 0.7em;
2024-04-20 10:10:34 +00:00
}
.hero__img {
display: grid;
place-content: center;
}
.hero img {
2024-04-20 11:43:13 +00:00
object-fit: contain;
2024-04-20 10:10:34 +00:00
overflow: hidden;
2024-04-20 11:43:13 +00:00
max-height: 16rem;
2024-04-26 16:12:13 +00:00
filter: drop-shadow(0.1rem 0.1rem 0.2rem black);
2024-04-20 10:10:34 +00:00
}
< / style >
< script defer >
const hero = document.querySelector(".hero");
const heroTopBarEl = document.querySelector(".hero__top-bar");
const headerImgEl = document.querySelector(".hero__img");
2024-04-29 03:16:44 +00:00
const todayEvent = getTodayEvent();
2024-04-29 05:07:49 +00:00
if (todayEvent) {
2024-04-20 10:10:34 +00:00
heroTopBarEl.classList.remove('hidden');
2024-04-29 05:07:49 +00:00
heroTopBarEl.innerHTML = todayEvent.blurb;
2024-04-20 10:10:34 +00:00
2024-04-29 05:07:49 +00:00
if (todayEvent.class) {
headerImgEl.classList.add(todayEvent.class);
2024-04-20 10:10:34 +00:00
}
}
function getTodayEvent() {
const date = new Date();
const month = date.getMonth() + 1;
const day = date.getDate();
2024-04-29 05:14:21 +00:00
const year = date.getFullYear();
2024-04-29 07:10:16 +00:00
const weekOfMonth = Math.ceil(day / 7);
2024-04-20 10:10:34 +00:00
2024-04-29 05:07:49 +00:00
const leilukinsHubLaunchDate = new Date("2022-09-11").getFullYear();
2024-04-29 05:14:21 +00:00
const siteAnniversary = year - leilukinsHubLaunchDate;
2024-04-29 05:07:49 +00:00
if (month === 3 & & day === 1)
return {
blurb: `Today is < a href = "https://www.unaids.org/en/zero-discrimination-day" target = "_blank" > Zero Discrimination Day< / a > `,
class: "flag-progress-intersex",
};
else if (month === 3 & & day === 8)
return {
blurb: `Today is < a href = "https://www.internationalwomensday.com/" target = "_blank" > International Women's Day}< / a > `,
class: "symbol-venus",
};
else if (month === 3 & & day === 31)
return {
blurb: `Today is < a href = "https://www.manygendersonevoice.org/tdov.html" target = "_blank" > Trans Day of Visibility< / a > `,
class: "flag-trans",
};
else if (month === 4 & & day === 6)
return {
blurb: `Today is < a href = "https://internationalasexualityday.org/en" target = "_blank" > International Asexuality Day< / a > `,
class: "flag-ace",
};
else if (month === 4 & & day === 26)
return {
blurb: `Today is < a href = "https://www.lesbianvisibilityweek.com" target = "_blank" > Lesbian Visibility Day< / a > `,
class: "flag-lesbian",
};
2024-04-29 07:10:16 +00:00
else if (month === 4 & & weekOfMonth === 4)
return {
blurb: `This week is < a href = "https://www.lesbianvisibilityweek.com" target = "_blank" > Lesbian Visibility Week< / a > `,
class: "flag-lesbian",
};
2024-04-29 05:07:49 +00:00
else if (month === 5 & & day === 17)
return {
blurb: `Today is < a href = "https://may17.org" target = "_blank" > International Day Against Homophobia, Biphobia and Transphobia< / a > `,
class: "flag-progress",
};
else if (month === 5 & & day === 19)
return {
blurb: `Today is < a href = "https://www.believeoutloud.com/voices/article/agender-pride-day/" target = "_blank" > Agender Pride Day< / a > `,
class: "flag-agender",
};
else if (month === 5 & & day === 25)
return {
blurb: `Today is < a href = "https://genderedintelligence.co.uk/panvisibilityday" target = "_blank" > Pansexual and Panromantic Awareness and Visibility Day< / a > `,
class: "flag-pan",
};
else if (month === 6)
return {
blurb: `Happy < a href = "https://www.loc.gov/lgbt-pride-month/about/" target = "_blank" > Pride Month< / a > !`,
class: "flag-progress-intersex",
};
else if (month === 7 & & day === 14)
return {
blurb: `Today is < a href = "https://www.manygendersonevoice.org/non-binary-peoples-day.html" target = "_blank" > Non-Binary People's Day< / a > `,
2024-04-29 08:47:49 +00:00
class: "flag-non-binary",
2024-04-29 05:07:49 +00:00
};
else if (month === 7 & & day === 28)
return {
blurb: `Today is Leilukin's Birthday`
};
2024-04-29 07:03:38 +00:00
else if (month === 8 & & day === 25)
return {
blurb: `Today is < a href = "https://aromanticspectrumday.net/" target = "_blank" > Aromantic Spectrum Visibility Day< / a > `,
class: "flag-aro",
};
2024-04-29 05:07:49 +00:00
else if (month === 9 & & day === 11)
return {
2024-04-29 05:14:21 +00:00
blurb: `Today is the ${siteAnniversary}-year anniversary of the launch of Leilukin' s Hub`
2024-04-29 05:07:49 +00:00
};
else if (month === 9 & & day === 23)
return {
blurb: `Today is < a href = "https://bivisibilityday.com/about" target = "_blank" > Bi Visibility Day< / a > `,
class: "flag-bi",
};
else if (month === 10 & & day === 8)
return {
blurb: `Today is < a href = "https://www.lgbtiqhealth.org.au/international_lesbian_day2" target = "_blank" > International Lesbian Day< / a > `,
class: "flag-lesbian",
};
else if (month === 10 & & day === 11)
return {
blurb: `Today is < a href = "https://www.hrc.org/resources/national-coming-out-day" target = "_blank" > National Coming Out Day< / a > `,
class: "flag-rainbow",
};
else if (month === 10 & & day === 17)
return {
blurb: `Today is the start of < a href = "https://www.grlgbtqhealthcareconsortium.org/significantdates/genderfluid-visibility-week" target = "_blank" > Genderfluid Visibility Week< / a > `,
class: "flag-genderfluid",
};
else if (month === 10 & & day === 24)
return {
blurb: `Today is the start of < a href = "https://www.grlgbtqhealthcareconsortium.org/significantdates/ace-week" target = "_blank" > Ace Week< / a > `,
class: "flag-ace",
};
else if (month === 10 & & day === 26)
return {
blurb: `Today is < a href = "https://interactadvocates.org/intersex-awareness-day" target = "_blank" > Intersex Awareness Day< / a > `,
class: "flag-intersex",
};
2024-04-29 07:03:38 +00:00
else if (month === 11 & & day === 13)
return {
blurb: `Today is the start of < a href = "https://glaad.org/transweek/" target = "_blank" > Transgender Awareness Week< / a > `,
class: "flag-trans",
};
2024-04-20 10:10:34 +00:00
else
2024-04-29 05:07:49 +00:00
return null;
2024-04-20 10:10:34 +00:00
}
< / script >
< nav class = "navbar" >
2024-04-29 10:01:46 +00:00
< div class = "navbar__header" >
< button class = "navbar__toggle" aria-label = "Navigation menu toggle" >
< i class = "fa-solid fa-bars" > < / i >
< / button >
< h2 class = "navbar__title" > Navigation< / h2 >
< / div >
< ul class = "navbar__links" >
2024-04-20 10:10:34 +00:00
< li >
2024-04-24 16:43:39 +00:00
< a href = "/" > Home< / a >
2024-04-20 10:10:34 +00:00
< / li >
< li >
2024-04-24 16:43:39 +00:00
< a href = "/about/" > About< / a >
2024-04-20 10:10:34 +00:00
< / li >
< li >
2024-04-24 16:43:39 +00:00
< a href = "/now/" > Now< / a >
2024-04-20 10:10:34 +00:00
< / li >
< li >
2024-04-24 16:43:39 +00:00
< a href = "/blog/" > Blog< / a >
2024-04-20 10:10:34 +00:00
< / li >
< li >
2024-04-24 16:43:39 +00:00
< a href = "/articles/" > Articles< / a >
2024-04-20 10:10:34 +00:00
< / li >
< li >
2024-04-24 16:43:39 +00:00
< a href = "/projects/" > Projects< / a >
2024-04-20 10:10:34 +00:00
< / li >
< li >
2024-04-24 16:43:39 +00:00
< a href = "/shrines/" > Shrines< / a >
2024-04-20 10:10:34 +00:00
< / li >
< li >
2024-04-24 16:43:39 +00:00
< a href = "/links/" > Links< / a >
2024-04-20 10:10:34 +00:00
< / li >
< li > < a href = "https://leilukin.123guestbook.com/" > Guestbook< / a > < / li >
< / ul >
< / nav >
< style >
.navbar {
background: var(--clr-navbar-bg);
2024-04-29 10:01:46 +00:00
padding: 0.6em 1em;
2024-04-20 10:10:34 +00:00
width: 100%;
z-index: 999;
position: sticky;
top: 0;
}
2024-04-29 10:01:46 +00:00
.navbar__header {
display: flex;
align-items: center;
gap: 0.8em;
}
.navbar__toggle {
border: none;
padding: 0;
margin: 0;
font-size: 1.3rem;
background-color: inherit;
color: var(--clr-navbar-link);
}
.navbar__title {
font-size: 1.3rem;
color: var(--clr-navbar-link);
}
2024-04-20 10:10:34 +00:00
.navbar a {
color: var(--clr-navbar-link);
text-decoration: none;
cursor: pointer;
}
.navbar a:hover {
color: var(--clr-link-hover);
}
.navbar a:focus {
outline-offset: 0.3em;
outline: 0.15em solid var(--clr-navbar-link);
}
2024-04-29 10:01:46 +00:00
.navbar__links {
2024-04-20 10:10:34 +00:00
list-style: none;
2024-04-29 10:01:46 +00:00
display: none;
gap: 1em;
padding: 0.5em 2em;
overflow: auto;
2024-04-20 10:10:34 +00:00
}
2024-04-29 10:01:46 +00:00
.navbar__links--show {
display: grid;
}
/* Tablet screen size */
@media only screen and (min-width: 43.75rem) {
.navbar {
padding: 0 0.6em;
}
.navbar__header {
display: none;
}
.navbar__links {
display: flex;
justify-content: space-evenly;
gap: 0.5em;
flex-wrap: wrap;
padding: 0;
2024-04-29 10:12:51 +00:00
overflow: unset;
2024-04-29 10:01:46 +00:00
}
}
2024-04-20 10:10:34 +00:00
< / style >
2024-04-29 10:01:46 +00:00
< script defer >
const navbarToggle = document.querySelector('.navbar__toggle');
const navbarLinks = document.querySelector(".navbar__links");
navbarToggle.addEventListener('click', () => {
navbarLinks.classList.toggle("navbar__links--show");
});
< / script >
2024-04-20 10:10:34 +00:00
< main >
< header class = "main__header" >
< ul class = "breadcrumbs" >
< li >
2024-04-24 17:42:28 +00:00
< a href = "/projects/" > Projects< / a >
2024-04-20 10:10:34 +00:00
< / li >
< / ul >
< h1 > My Music Playlists< / h1 >
< p > Music playlists that I have created.< / p >
< / header >
< div class = "content__wrapper" >
< aside class = "left-sidebar" >
< details class = "toc__wrapper sidebar--sticky" >
< summary class = "toc__heading" >
On This Page
< / summary >
< nav class = "toc" >
< ol >
< li > < a href = "#my-dear-summer-lover" > My Dear Summer Lover< / a >
< / li >
< li > < a href = "#mandopop-lgbtq-anthem" > Mandopop LGBTQ+ Anthem 華語流行音樂同志國歌< / a >
< / li >
< / ol >
< / nav >
< / details >
< / aside >
< style >
.toc__wrapper {
max-height: 89vh;
overflow: auto;
background-color: var(--clr-content-bg);
padding: 1rem 1.3rem;
}
.toc__heading {
font-size: 1.3rem;
font-weight: 700;
color: var(--clr-sub-heading);
cursor: pointer;
}
.toc ol,
.toc ol ol {
display: grid;
gap: 0.3em;
}
.toc ol {
border-top: 0.1em solid var(--clr-title-border);
padding-left: 1.3em;
padding-top: 1em;
}
.toc ol ol {
border-top: none;
list-style-type: disc;
padding-left: 1em;
padding-top: 0.3em;
}
.toc ol a {
font-size: 1.1rem;
padding-left: 0.3em;
}
.toc ol ol a {
padding: 0;
font-size: 1rem;
}
< / style >
< div class = "content " >
< div class = "heading-wrapper h2" >
< h2 id = "my-dear-summer-lover" > My Dear Summer Lover< / h2 >
< a class = "heading-anchor" href = "#my-dear-summer-lover" aria-labelledby = "my-dear-summer-lover" > < span hidden > #< / span > < / a > < / div >
2024-04-25 12:18:09 +00:00
< figure >
< img src = "/assets/projects/playlists/My-Dear-Summer-Lover-cover.png" alt = "Cover image of A Summer's End fanmix 'My Dear Summer Lover: A Sam x Michelle Fanmix'" >
< figcaption >
[Image description: Sam and Michelle from A Summer's End almost kisses, with a play symbol and text on the top left corner, and the text "My Dear Summer Lover: A Sam x Michelle Fanmix" in a digital style font in front.]
< / figcaption >
< / figure >
2024-04-20 10:10:34 +00:00
< p > A fanmix for the visual novel < cite > < a href = "https://www.asummersend.com/home" > A Summer’ s End — Hong Kong 1986< / a > < / cite > , dedicated to Sam and Michelle’ s love story.< / p >
< p > This mix contains mostly Cantonese and English songs, with one Mandarin song. Majority of these songs were performed by Hong Kong artists and released in the 80s, because A Summer’ s End took place in Hong Kong and in the 80s.< / p >
< p > I have carefully selected and arranged these tracks, so the lyrics would reflect Sam and Michelle’ s relationship development throughout A Summer’ s End. Therefore, the content of this mix could be considered spoilers if you have not played the visual novel.< / p >
< p > Since Oracle and Bone has cited Anita Mui as a major inspiration for them and this visual novel, I have also included multiple songs performed by Anita Mui in this mix. Because A Summer’ s End is a lesbian story, when I was choosing which songs to include in this mix, I also prioritize songs that were performed by women artists.< / p >
< p > < a class = "link-btn" href = "https://open.spotify.com/playlist/3SIV7VjSKhspYwugVIQjug" target = "_blank" > Listen on Spotify< / a > < / p >
< iframe style = "border-radius:12px" src = "https://open.spotify.com/embed/playlist/3SIV7VjSKhspYwugVIQjug?utm_source=generator" width = "100%" height = "380" frameBorder = "0" allowfullscreen = "" allow = "autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading = "lazy" > < / iframe >
< div class = "heading-wrapper h2" >
< h2 id = "mandopop-lgbtq-anthem" > Mandopop LGBTQ+ Anthem 華語流行音樂同志國歌< / h2 >
< a class = "heading-anchor" href = "#mandopop-lgbtq-anthem" aria-labelledby = "mandopop-lgbtq-anthem" > < span hidden > #< / span > < / a > < / div >
2024-04-25 12:18:09 +00:00
< figure >
< img src = "/assets/projects/playlists/Mandopop-LGBTQ+-Anthem-Cover.png" alt = "Cover image of the Mandopop LGBTQ+ Anthem playlist" >
< figcaption >
[Image description: A progress pride flag, with Chinese words meaning queer anthem on top.]
< / figcaption >
< / figure >
< p > A collection of Mandarin queer anthems.< / p >
2024-04-20 10:10:34 +00:00
< p > I made this playlist after discovering Wikipedia's list of Chinese queer anthems on < a href = "https://zh.wikipedia.org/wiki/%E5%90%8C%E5%BF%97%E5%9C%8B%E6%AD%8C#%E8%8F%AF%E8%AA%9E" > its Mandarin article for Gay Anthem (同志國歌)< / a > .< / p >
< p > < a class = "link-btn" href = "https://open.spotify.com/playlist/5JXAUPZkmv1cFScAfhOkXh" target = "_blank" > Listen on Spotify< / a > < / p >
< iframe style = "border-radius:12px" src = "https://open.spotify.com/embed/playlist/5JXAUPZkmv1cFScAfhOkXh?utm_source=generator" width = "100%" height = "380" frameBorder = "0" allowfullscreen = "" allow = "autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading = "lazy" > < / iframe >
< / div >
< / div >
< style >
.breadcrumbs {
list-style: none;
padding: 0;
margin: 0 0 0.7em 0;
display: flex;
gap: 0.5em;
flex-wrap: wrap;
justify-content: center;
}
2024-04-24 17:31:54 +00:00
.breadcrumbs li::after {
content: '➔';
padding-left: 0.3em;
}
2024-04-20 10:10:34 +00:00
< / style >
< / main >
< footer class = "footer" >
< p > Made with ♥ by Leilukin since < time > 11 September 2022< / time > < / p >
< ul class = "footer__links" >
2024-04-20 10:59:51 +00:00
< li > < a
href="/sitemap/
">Site Map< / a > < / li >
< li > < a
href="/changelogs/"
>Changelogs< / a > < / li >
2024-04-20 10:10:34 +00:00
< li > < a href = "/feed.xml" > RSS< / a > < / li >
< / ul >
< / footer >
< style >
.footer {
margin-top: auto;
background: var(--clr-main-footer-bg);
padding: 0.8rem;
text-align: center;
display: grid;
}
.footer p {
padding: 0;
}
.footer__links {
justify-self: center;
list-style: none;
margin: 0;
padding: 0;
display: flex;
gap: 0.7em;
}
2024-04-20 10:59:51 +00:00
.footer__links li:not(:last-child)::after {
content: '|';
padding-left: 0.6em;
}
2024-04-20 10:10:34 +00:00
@media only screen and (min-width: 600px) {
.footer {
width: 100%;
}
}
< / style >
2024-04-21 19:05:20 +00:00
< button class = "top-btn hidden" aria-label = "Scroll to top" >
< i class = "fa-solid fa-chevron-up" > < / i >
2024-04-20 10:10:34 +00:00
< / button >
< style >
.top-btn {
position: fixed;
2024-04-21 19:05:20 +00:00
margin: 0;
padding: 0;
2024-04-21 19:08:40 +00:00
bottom: 0.5rem;
right: 0.5rem;
2024-04-20 10:10:34 +00:00
z-index: 999;
border: none;
2024-04-21 19:05:20 +00:00
background-color: var(--clr-top-btn-bg);
color: var(--clr-top-btn-txt);
2024-04-20 10:10:34 +00:00
border-radius: 50em;
2024-04-21 19:08:40 +00:00
width: 2rem;
2024-04-21 19:05:20 +00:00
aspect-ratio: 1 / 1;
2024-04-20 10:10:34 +00:00
}
.top-btn:focus {
2024-04-21 19:05:20 +00:00
outline: 0.25em solid var(--clr-top-btn-bg);
2024-04-20 10:10:34 +00:00
outline-offset: 0.15em;
}
< / style >
< script defer >
const topButton = document.querySelector(".top-btn");
window.onscroll = () => {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
topButton.classList.remove("hidden");
} else {
topButton.classList.add("hidden");
}
}
topButton.addEventListener('click', () => {
window.scrollTo({
top: 0,
left: 0,
behavior: "smooth",
});
});
< / script >
< / body >
< / html >