update default styling

Hunter
Thursday, April 30th, 2026 at 4:31 PM

build.py+1 
readme.md+4-2
readme_images/playlist.png  
resources/fonts/Basteleur/Basteleur-Moonlight.woff2new
resources/fonts/Basteleur/LICENSE.txtnew
resources/script.js+1 
resources/styles.css+37-15

build.py
146  		"resources/prev.svg",
147  		"resources/next.svg",
148  		"resources/repeat.svg",
149 +		"resources/fonts/Basteleur/Basteleur-Moonlight.woff2",
150  	]
151  
152  	AUDIO_EXTS = {".mp3", ".m4a", ".ogg", ".flac", ".wav"}
readme.md
73  
74  it may have looked like i winked just now, but that was a blink. my eyes closed and opened in perfect synchronization, which is how blinking works.
75  
   -## license
   -<a href="LICENSE">GNU GPLv3</a>
76 +## licenses
77 +this project is licensed under the <a href="LICENSE">GNU General Public License v3.0</a>.
78 +
79 +the <a href="https://velvetyne.fr/fonts/basteleur/">Basteleur</a> font by <a href="https://keussel.studio/">Keussel</a> (distributed by <a href="https://velvetyne.fr/">Velvetyne</a>) is licensed under the <a href="resources/fonts/Basteleur/LICENSE.txt">SIL Open Font License, version 1.1</a>.
readme_images/playlist.png
Binary files differ.
resources/fonts/Basteleur/Basteleur-Moonlight.woff2
Binary files differ.
resources/fonts/Basteleur/LICENSE.txt
  1 +Copyright (c) 2021, Keussel (www.keussel.studio|contact@keussel.studio),
  2 +with Reserved Font Name Basteleur.
  3 +
  4 +This Font Software is licensed under the SIL Open Font License, Version 1.1.
  5 +This license is copied below, and is also available with a FAQ at:
  6 +http://scripts.sil.org/OFL
  7 +
  8 +SIL Open Font License v1.1
  9 +====================================================
 10 +
 11 +
 12 +Preamble
 13 +----------
 14 +
 15 +The goals of the Open Font License (OFL) are to stimulate worldwide
 16 +development of collaborative font projects, to support the font creation
 17 +efforts of academic and linguistic communities, and to provide a free and
 18 +open framework in which fonts may be shared and improved in partnership
 19 +with others.
 20 +
 21 +The OFL allows the licensed fonts to be used, studied, modified and
 22 +redistributed freely as long as they are not sold by themselves. The
 23 +fonts, including any derivative works, can be bundled, embedded, 
 24 +redistributed and/or sold with any software provided that any reserved
 25 +names are not used by derivative works. The fonts and derivatives,
 26 +however, cannot be released under any other type of license. The
 27 +requirement for fonts to remain under this license does not apply
 28 +to any document created using the fonts or their derivatives.
 29 +
 30 +
 31 +Definitions
 32 +-------------
 33 +
 34 +`"Font Software"` refers to the set of files released by the Copyright
 35 +Holder(s) under this license and clearly marked as such. This may
 36 +include source files, build scripts and documentation.
 37 +
 38 +`"Reserved Font Name"` refers to any names specified as such after the
 39 +copyright statement(s).
 40 +
 41 +`"Original Version"` refers to the collection of Font Software components as
 42 +distributed by the Copyright Holder(s).
 43 +
 44 +`"Modified Version"` refers to any derivative made by adding to, deleting,
 45 +or substituting -- in part or in whole -- any of the components of the
 46 +Original Version, by changing formats or by porting the Font Software to a
 47 +new environment.
 48 +
 49 +`"Author"` refers to any designer, engineer, programmer, technical
 50 +writer or other person who contributed to the Font Software.
 51 +
 52 +
 53 +Permission & Conditions
 54 +------------------------
 55 +
 56 +Permission is hereby granted, free of charge, to any person obtaining
 57 +a copy of the Font Software, to use, study, copy, merge, embed, modify,
 58 +redistribute, and sell modified and unmodified copies of the Font
 59 +Software, subject to the following conditions:
 60 +
 61 +1. Neither the Font Software nor any of its individual components,
 62 +   in Original or Modified Versions, may be sold by itself.
 63 +
 64 +2. Original or Modified Versions of the Font Software may be bundled,
 65 +   redistributed and/or sold with any software, provided that each copy
 66 +   contains the above copyright notice and this license. These can be
 67 +   included either as stand-alone text files, human-readable headers or
 68 +   in the appropriate machine-readable metadata fields within text or
 69 +   binary files as long as those fields can be easily viewed by the user.
 70 +
 71 +3. No Modified Version of the Font Software may use the Reserved Font
 72 +   Name(s) unless explicit written permission is granted by the corresponding
 73 +   Copyright Holder. This restriction only applies to the primary font name as
 74 +   presented to the users.
 75 +
 76 +4. The name(s) of the Copyright Holder(s) or the Author(s) of the Font
 77 +   Software shall not be used to promote, endorse or advertise any
 78 +   Modified Version, except to acknowledge the contribution(s) of the
 79 +   Copyright Holder(s) and the Author(s) or with their explicit written
 80 +   permission.
 81 +
 82 +5. The Font Software, modified or unmodified, in part or in whole,
 83 +   must be distributed entirely under this license, and must not be
 84 +   distributed under any other license. The requirement for fonts to
 85 +   remain under this license does not apply to any document created
 86 +   using the Font Software.
 87 +
 88 +
 89 +Termination
 90 +-----------
 91 +
 92 +This license becomes null and void if any of the above conditions are
 93 +not met.
 94 +
 95 +
 96 +    DISCLAIMER
 97 +    
 98 +    THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 99 +    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
100 +    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
101 +    OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
102 +    COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
103 +    INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
104 +    DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
105 +    FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
106 +    OTHER DEALINGS IN THE FONT SOFTWARE.
resources/script.js
87  	'resources/prev.svg',
88  	'resources/next.svg',
89  	'resources/repeat.svg',
90 +	'resources/fonts/Basteleur/Basteleur-Moonlight.woff2',
91  ];
92  
93  // Retry fetch with exponential backoff
resources/styles.css
  1 +@font-face {
  2 +	font-family: 'Basteleur Moonlight';
  3 +	src: url('fonts/Basteleur/Basteleur-Moonlight.woff2') format('woff2');
  4 +	font-weight: normal;
  5 +	font-style: normal;
  6 +	font-display: swap;
  7 +}
  8 +
  9  :root {
    -	--text: #dddddd;
    -	--dimmed-text: #ddddddcc;
    -	--primary: #4c7ae6;
    -	--accent: #f421ff;
    -	--background: #080a0c;
 10 +	--primary: #ff1900;
 11 +	--accent: #5d0cf4;
 12 +	--background: #000000;
 13 +	--text: #ffffff;
 14 +	--dimmed-text: #a6a6b4;
 15  }
 16  
 17  * {

 40  body {
 41  	margin: 0;
 42  	padding: 0;
    -	font-family: "MS Sans Serif", Arial, sans-serif;
 43 +	font-family: 'Basteleur Moonlight', sans-serif;
 44  	height: 100dvh;
 45  	display: flex;
 46  	flex-direction: column;
    -	font-size: 25px;
 47 +	font-size: 24px;
 48  	background-color: var(--background);
 49  	position: fixed;
 50  	width: 100%;

170  }
171  
172  .playlist-item-title {
    -	font-size: 21px;
173 +	font-size: 20px;
174  	line-height: 1.2;
175  }
176  

180  }
181  
182  .playlist-item-artist {
    -	font-size: 17px;
183 +	font-size: 16px;
184  	color: var(--dimmed-text);
185  	line-height: 1.2;
186  }

194  @media (hover: hover) and (pointer: fine) {
195  	.playlist-item:hover {
196  		cursor: pointer;
    -		color: var(--accent);
197  	}
198  
199 +	.playlist-item:hover .playlist-item-title,
200  	.playlist-item:hover .playlist-item-artist {
    -		color: var(--accent);
201 +		color: var(--text);
202 +		background-color: var(--accent);
203 +		align-self: flex-start;
204 +		padding: 0 4px;
205 +		margin-left: -4px;
206  	}
207  
208  	.playlist-item:hover .playlist-item-title.current,
209  	.playlist-item:hover .playlist-item-artist.current {
    -		color: var(--accent);
210 +		background-color: var(--primary);
211 +		color: var(--background);
212  	}
213  
214  	body.reorderable .playlist,

232  	box-sizing: border-box;
233  }
234  
    -.playlist-item.dragging,
235  .playlist-item.dragging .playlist-item-title,
236  .playlist-item.dragging .playlist-item-artist {
    -	color: var(--accent);
237 +	color: var(--text);
238 +	background-color: var(--accent);
239 +	align-self: flex-start;
240 +	padding: 0 4px;
241 +	margin-left: -4px;
242 +}
243 +
244 +.playlist-item.dragging .playlist-item-title.current,
245 +.playlist-item.dragging .playlist-item-artist.current {
246 +	background-color: var(--primary);
247 +	color: var(--background);
248  }
249  
250  .playlist-item-placeholder {

284  
285  .progress-container {
286  	width: 100%;
    -	font-size: 24px;
287 +	font-size: 23px;
288  	cursor: grab;
289  	margin-top: 0;
290  	height: 35px;