Compare commits
5 Commits
search
...
fdc5b3e911
Author | SHA1 | Date | |
---|---|---|---|
fdc5b3e911 | |||
d5cc96a647 | |||
4fe838eb2a | |||
78e16a9851 | |||
e35f3f5494 |
1
sass/_fonts.scss
Normal file
1
sass/_fonts.scss
Normal file
@ -0,0 +1 @@
|
|||||||
|
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,400;0,600;1,400;1,600&display=swap');
|
@ -1,11 +1,15 @@
|
|||||||
|
@import "fonts";
|
||||||
|
|
||||||
$col-white: #fff;
|
$col-white: #fff;
|
||||||
$col-black: #181818;
|
$col-black: #2e3440;
|
||||||
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: $col-white;
|
background-color: $col-black;
|
||||||
color: $col-black;
|
color: $col-white;
|
||||||
|
font-family: "Noto Sans", Tahoma, Geneva, Verdana, sans-serif;
|
||||||
|
text-rendering: geometricPrecision;
|
||||||
}
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
@ -13,7 +17,7 @@ table {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.song {
|
.song {
|
||||||
padding: 2em;
|
padding: 1em 0 0 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
@ -40,7 +44,7 @@ table {
|
|||||||
display: block;
|
display: block;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 2px;
|
width: 2px;
|
||||||
background-color: $col-black;
|
background-color: $col-white;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,22 +57,22 @@ table {
|
|||||||
.comment {
|
.comment {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: .25em .5em;
|
padding: .25em .5em;
|
||||||
background-color: #bbb;
|
background-color: #4c566a;
|
||||||
|
color: $col-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: light) {
|
||||||
|
body {
|
||||||
|
background-color: $col-white;
|
||||||
color: $col-black;
|
color: $col-black;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
body {
|
|
||||||
background-color: $col-black;
|
|
||||||
color: $col-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chorus:before {
|
.chorus:before {
|
||||||
background-color: $col-white;
|
background-color: $col-black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.comment {
|
.comment {
|
||||||
background-color: #585858;
|
background-color: #d8dee9;
|
||||||
color: $col-white;
|
color: $col-black;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
109
sass/style.scss
109
sass/style.scss
@ -1,3 +1,5 @@
|
|||||||
|
@import "fonts";
|
||||||
|
|
||||||
$width-mobile: 900px;
|
$width-mobile: 900px;
|
||||||
|
|
||||||
* {
|
* {
|
||||||
@ -7,6 +9,15 @@ $width-mobile: 900px;
|
|||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
background-color: #2e3440;
|
||||||
|
color: #fff;
|
||||||
|
font-family: "Noto Sans", Tahoma, Geneva, Verdana, sans-serif;
|
||||||
|
text-rendering: geometricPrecision;
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: light) {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #2e3440;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
main.songs {
|
main.songs {
|
||||||
@ -23,7 +34,7 @@ main.songs {
|
|||||||
|
|
||||||
.filters {
|
.filters {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 2fr 1fr 1fr;
|
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||||
gap: 1em;
|
gap: 1em;
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
|
|
||||||
@ -32,21 +43,64 @@ main.songs {
|
|||||||
&.hidden { display: none }
|
&.hidden { display: none }
|
||||||
|
|
||||||
&>* {
|
&>* {
|
||||||
border: 1px solid #aaa;
|
|
||||||
border-radius: .5em;
|
border-radius: .5em;
|
||||||
padding: .5em 1em;
|
box-shadow: rgba(15, 17, 21, 0.5) 0px 3px 6px 0px;
|
||||||
font-size: 1em;
|
background-color: #3b4252;
|
||||||
|
color: inherit;
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: light) {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #2e3440;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
form {
|
||||||
|
grid-column: 1 / 3;
|
||||||
|
display: flex;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
input {
|
||||||
|
font-size: inherit;
|
||||||
|
border: 0;
|
||||||
|
background-color: inherit;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="search"] {
|
||||||
|
flex-grow: 1;
|
||||||
|
padding: .75em 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="reset"] {
|
||||||
|
cursor: pointer;
|
||||||
|
width: 3em;
|
||||||
|
padding: 0;
|
||||||
|
background-size: auto 1.5em;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(160,163,170,1)'%3E%3Cpath d='M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 10.5858L14.8284 7.75736L16.2426 9.17157L13.4142 12L16.2426 14.8284L14.8284 16.2426L12 13.4142L9.17157 16.2426L7.75736 14.8284L10.5858 12L7.75736 9.17157L9.17157 7.75736L12 10.5858Z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&>.button {
|
&>.button {
|
||||||
|
font-weight: bold;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
user-select: none;
|
||||||
|
padding: .75em 1em;
|
||||||
|
|
||||||
&.selected {
|
&.selected {
|
||||||
border-color: #333;
|
color: #fff;
|
||||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 10px;
|
|
||||||
|
&[data-category="mixtape"] { background-color: #bf616a }
|
||||||
|
&[data-category="classic"] { background-color: #5e81ac }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: $width-mobile) {
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.song-list {
|
.song-list {
|
||||||
@ -57,25 +111,26 @@ main.songs {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
gap: 1em;
|
||||||
padding: .5em;
|
padding: .5em;
|
||||||
padding-left: 1em;
|
padding-left: 1em;
|
||||||
border-radius: .5em;
|
border-radius: .5em;
|
||||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 10px;
|
box-shadow: rgba(15, 17, 21, 0.5) 0px 3px 6px 0px;
|
||||||
border-left: .7em solid #000;
|
border-left: .7em solid #000;
|
||||||
|
background-color: #3b4252;
|
||||||
|
|
||||||
&.hidden { display: none }
|
&.hidden { display: none }
|
||||||
|
|
||||||
&.mixtape { border-color: #654575 }
|
&.mixtape { border-color: #bf616a }
|
||||||
&.classic { border-color: #a55d05 }
|
&.classic { border-color: #5e81ac }
|
||||||
|
|
||||||
.meta {
|
.meta {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
.title {
|
.title { font-weight: bold }
|
||||||
font-weight: bold;
|
.artist { font-size: .8em }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.links {
|
.links {
|
||||||
@ -83,8 +138,8 @@ main.songs {
|
|||||||
gap: .5em;
|
gap: .5em;
|
||||||
|
|
||||||
&>* {
|
&>* {
|
||||||
height: 3em;
|
height: 2.75em;
|
||||||
width: 3em;
|
width: 2.75em;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: auto 1.5em;
|
background-size: auto 1.5em;
|
||||||
@ -92,22 +147,40 @@ main.songs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.html {
|
.html {
|
||||||
background-color: #335872;
|
background-color: #5e81ac;
|
||||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,1)'%3E%3Cpath d='M16 2L21 7V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5447 3 21.0082V2.9918C3 2.44405 3.44495 2 3.9934 2H16ZM17.6569 12L14.1213 8.46447L12.7071 9.87868L14.8284 12L12.7071 14.1213L14.1213 15.5355L17.6569 12ZM6.34315 12L9.87868 15.5355L11.2929 14.1213L9.17157 12L11.2929 9.87868L9.87868 8.46447L6.34315 12Z'%3E%3C/path%3E%3C/svg%3E");
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,1)'%3E%3Cpath d='M16 2L21 7V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5447 3 21.0082V2.9918C3 2.44405 3.44495 2 3.9934 2H16ZM17.6569 12L14.1213 8.46447L12.7071 9.87868L14.8284 12L12.7071 14.1213L14.1213 15.5355L17.6569 12ZM6.34315 12L9.87868 15.5355L11.2929 14.1213L9.17157 12L11.2929 9.87868L9.87868 8.46447L6.34315 12Z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
.pdf {
|
.pdf {
|
||||||
background-color: #67503a;
|
background-color: #bf616a;
|
||||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,1)'%3E%3Cpath d='M3.9985 2C3.44749 2 3 2.44405 3 2.9918V21.0082C3 21.5447 3.44476 22 3.9934 22H20.0066C20.5551 22 21 21.5489 21 20.9925L20.9997 7L16 2H3.9985ZM10.5 7.5H12.5C12.5 9.98994 14.6436 12.6604 17.3162 13.5513L16.8586 15.49C13.7234 15.0421 10.4821 16.3804 7.5547 18.3321L6.3753 16.7191C7.46149 15.8502 8.50293 14.3757 9.27499 12.6534C10.0443 10.9373 10.5 9.07749 10.5 7.5ZM11.1 13.4716C11.3673 12.8752 11.6043 12.2563 11.8037 11.6285C12.2754 12.3531 12.8553 13.0182 13.5102 13.5953C12.5284 13.7711 11.5666 14.0596 10.6353 14.4276C10.8 14.1143 10.9551 13.7948 11.1 13.4716Z'%3E%3C/path%3E%3C/svg%3E");
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,1)'%3E%3Cpath d='M3.9985 2C3.44749 2 3 2.44405 3 2.9918V21.0082C3 21.5447 3.44476 22 3.9934 22H20.0066C20.5551 22 21 21.5489 21 20.9925L20.9997 7L16 2H3.9985ZM10.5 7.5H12.5C12.5 9.98994 14.6436 12.6604 17.3162 13.5513L16.8586 15.49C13.7234 15.0421 10.4821 16.3804 7.5547 18.3321L6.3753 16.7191C7.46149 15.8502 8.50293 14.3757 9.27499 12.6534C10.0443 10.9373 10.5 9.07749 10.5 7.5ZM11.1 13.4716C11.3673 12.8752 11.6043 12.2563 11.8037 11.6285C12.2754 12.3531 12.8553 13.0182 13.5102 13.5953C12.5284 13.7711 11.5666 14.0596 10.6353 14.4276C10.8 14.1143 10.9551 13.7948 11.1 13.4716Z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: light) {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #2e3440;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
iframe.song {
|
main.song {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
max-width: 50em;
|
||||||
|
min-height: 100vh;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding-left: .5em;
|
||||||
|
|
||||||
|
iframe {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-height: 100vh;
|
|
||||||
border: 0;
|
border: 0;
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.controls {
|
||||||
|
display: none; // Temporary
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
BIN
static/favicon.png
Normal file
BIN
static/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
@ -1,6 +1,7 @@
|
|||||||
const filters = document.querySelector(".filters");
|
const filters = document.querySelector(".filters");
|
||||||
const buttons = Array.from(filters.querySelectorAll(".button"));
|
const buttons = Array.from(filters.querySelectorAll(".button"));
|
||||||
const search = document.querySelector("input[type='text']");
|
const search = document.querySelector("input[type='search']");
|
||||||
|
const form = document.querySelector("form");
|
||||||
const songList = document.querySelector(".song-list");
|
const songList = document.querySelector(".song-list");
|
||||||
|
|
||||||
let selectedCategory = null;
|
let selectedCategory = null;
|
||||||
@ -12,7 +13,7 @@ function buttonToggle(clickedButton) {
|
|||||||
selectedCategory = button.dataset.category;
|
selectedCategory = button.dataset.category;
|
||||||
} else {
|
} else {
|
||||||
button.classList.remove("selected");
|
button.classList.remove("selected");
|
||||||
selectedCategory = null;
|
if (button.dataset.category == selectedCategory) selectedCategory = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
filterSongs();
|
filterSongs();
|
||||||
@ -29,7 +30,9 @@ function filterSongs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Event listeners
|
// Event listeners
|
||||||
search.addEventListener("keyup", filterSongs);
|
search.addEventListener("input", filterSongs);
|
||||||
|
// Filtering happens before the reset itself without this timeout
|
||||||
|
form.addEventListener("reset", () => setTimeout(filterSongs, 0));
|
||||||
buttons.forEach(button => button.addEventListener("click", () => buttonToggle(button)));
|
buttons.forEach(button => button.addEventListener("click", () => buttonToggle(button)));
|
||||||
|
|
||||||
// Normalize song titles
|
// Normalize song titles
|
||||||
|
@ -6,15 +6,18 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>{% block title %}{{ config.title }}{% endblock %}</title>
|
<title>{% block title %}{{ config.title }}{% endblock %}</title>
|
||||||
<link rel="stylesheet" href="{{ get_url(path="/style.css") }}">
|
<link rel="stylesheet" href="{{ get_url(path="/style.css") }}">
|
||||||
<link rel="icon" href="favicon.svg">
|
<link rel="icon" type="image/png" href="{{ get_url(path="/favicon.png") }}">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<main class="songs">
|
<main class="songs">
|
||||||
<section class="filters">
|
<section class="filters">
|
||||||
<input type="text" placeholder="Hledat">
|
<form>
|
||||||
<div class="button" data-category="classic">classic</div>
|
<input type="search" placeholder="Hledat">
|
||||||
<div class="button" data-category="mixtape">mixtape</div>
|
<input type="reset" value="">
|
||||||
|
</form>
|
||||||
|
<div class="button" data-category="classic">Classic</div>
|
||||||
|
<div class="button" data-category="mixtape">Mixtape</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="song-list">
|
<section class="song-list">
|
||||||
{% for song in section.pages %}
|
{% for song in section.pages %}
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
{% extends "index.html" %}
|
{% extends "index.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<main class="song">
|
||||||
{% for asset in page.assets %}
|
{% for asset in page.assets %}
|
||||||
{% if asset is matching(page.slug~"[.](html)$") %}
|
{% if asset is matching(page.slug~"[.](html)$") %}
|
||||||
<iframe class="song" src="{{ asset }}"></iframe>
|
<iframe class="song" src="{{ asset }}"></iframe>
|
||||||
|
<div class="controls">controls</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</main>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Reference in New Issue
Block a user