From c53e4985615990796150325fb3d4a8ba89678c73 Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Wed, 24 Dec 2025 11:48:15 -0600 Subject: [PATCH 01/11] Add SK theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index 9ca58bc..9f47533 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -392,6 +392,17 @@ function Donsol () { b_low: '#4a3b44', b_inv: '#f5f5d4' } + this.skTheme = { + background: '#000709', + f_high: '#cbcbd3', + f_med: '#897668', + f_low: '#523d2c', + f_inv: '#3f4f5b', + b_high: '#aba49e', + b_med: '#59574b', + b_low: '#372823', + b_inv: '#8c5a3d' + } this.tapeTheme = { background: '#dad7cd', f_high: '#696861', diff --git a/sources/scripts/player.js b/sources/scripts/player.js index 131da93..935ae8d 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -254,6 +254,9 @@ function Player () { if (theme_value.localeCompare('roguelite') === 0) { new_theme = donsol.rogueliteTheme } + if (theme_value.localeCompare('sk') === 0) { + new_theme = donsol.skTheme + } if (theme_value.localeCompare('tape') === 0) { new_theme = donsol.tapeTheme } diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index 95b27c6..210eb21 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -45,6 +45,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From 5fe70aa5cb513ad0b9654a3653f8aabbb574e268 Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Wed, 24 Dec 2025 11:52:51 -0600 Subject: [PATCH 02/11] Add Snow theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index 9f47533..328db8e 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -403,6 +403,17 @@ function Donsol () { b_low: '#372823', b_inv: '#8c5a3d' } + this.snowTheme = { + background: '#eeefee', + f_high: '#222222', + f_med: '#999999', + f_low: '#bbbcbb', + f_inv: '#545454', + b_high: '#545454', + b_med: '#ced0ce', + b_low: '#f5f5f5', + b_inv: '#ed2c3e' + } this.tapeTheme = { background: '#dad7cd', f_high: '#696861', diff --git a/sources/scripts/player.js b/sources/scripts/player.js index 935ae8d..74c5d02 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -257,6 +257,9 @@ function Player () { if (theme_value.localeCompare('sk') === 0) { new_theme = donsol.skTheme } + if (theme_value.localeCompare('snow') === 0) { + new_theme = donsol.snowTheme + } if (theme_value.localeCompare('tape') === 0) { new_theme = donsol.tapeTheme } diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index 210eb21..09537d1 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -46,6 +46,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From 1feccd608fcb2f8a8bccc5f587866d26d1c30e12 Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Wed, 24 Dec 2025 12:00:42 -0600 Subject: [PATCH 03/11] Add Solarized Dark theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index 328db8e..3d419c2 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -414,6 +414,17 @@ function Donsol () { b_low: '#f5f5f5', b_inv: '#ed2c3e' } + this.solarizedDarkTheme = { + background: '#073642', + f_high: '#93a1a1', + f_med: '#6c71c4', + f_low: '#586e75', + f_inv: '#002b36', + b_high: '#fdf6e3', + b_med: '#eee8d5', + b_low: '#002b36', + b_inv: '#cb4b16' + } this.tapeTheme = { background: '#dad7cd', f_high: '#696861', diff --git a/sources/scripts/player.js b/sources/scripts/player.js index 74c5d02..aa3c0d7 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -260,6 +260,9 @@ function Player () { if (theme_value.localeCompare('snow') === 0) { new_theme = donsol.snowTheme } + if (theme_value.localeCompare('solarizedDark') === 0) { + new_theme = donsol.solarizedDarkTheme + } if (theme_value.localeCompare('tape') === 0) { new_theme = donsol.tapeTheme } diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index 09537d1..d8cfdaa 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -47,6 +47,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From e9da6fe369a15cabf1b8c1f61bbb0593ece15540 Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Wed, 24 Dec 2025 12:11:53 -0600 Subject: [PATCH 04/11] Add Solarized Light theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index 3d419c2..02b0dd3 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -425,6 +425,17 @@ function Donsol () { b_low: '#002b36', b_inv: '#cb4b16' } + this.solarizedLightTheme = { + background: '#eee8d5', + f_high: '#586e75', + f_med: '#6c71c4', + f_low: '#93a1a1', + f_inv: '#fdf6e3', + b_high: '#002b36', + b_med: '#073642', + b_low: '#fdf6e3', + b_inv: '#cb4b16' + } this.tapeTheme = { background: '#dad7cd', f_high: '#696861', diff --git a/sources/scripts/player.js b/sources/scripts/player.js index aa3c0d7..29a9300 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -263,6 +263,9 @@ function Player () { if (theme_value.localeCompare('solarizedDark') === 0) { new_theme = donsol.solarizedDarkTheme } + if (theme_value.localeCompare('solarizedLight') === 0) { + new_theme = donsol.solarizedLightTheme + } if (theme_value.localeCompare('tape') === 0) { new_theme = donsol.tapeTheme } diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index d8cfdaa..d14a05a 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -48,6 +48,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From 74cced0d4a39c488469ee4c56f7ea57cc0e8f1af Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Sun, 25 Jan 2026 15:34:07 -0600 Subject: [PATCH 05/11] Add Sonic Pi theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index 02b0dd3..c1207ad 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -436,6 +436,17 @@ function Donsol () { b_low: '#fdf6e3', b_inv: '#cb4b16' } + this.sonicPiTheme = { + background: '#ffffff', + f_high: '#000000', + f_med: '#ed1e92', + f_low: '#aaaaaa', + f_inv: '#ffffff', + b_high: '#444444', + b_med: '#555555', + b_low: '#ced0ce', + b_inv: '#ed1e92' + } this.tapeTheme = { background: '#dad7cd', f_high: '#696861', diff --git a/sources/scripts/player.js b/sources/scripts/player.js index 29a9300..14a72e7 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -266,6 +266,9 @@ function Player () { if (theme_value.localeCompare('solarizedLight') === 0) { new_theme = donsol.solarizedLightTheme } + if (theme_value.localeCompare('sonicPi') === 0) { + new_theme = donsol.sonicPiTheme + } if (theme_value.localeCompare('tape') === 0) { new_theme = donsol.tapeTheme } diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index d14a05a..b4522cb 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -49,6 +49,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From 9c2844b7c5f812c5d2a45b7a7342fd22015d2958 Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Sun, 25 Jan 2026 15:34:43 -0600 Subject: [PATCH 06/11] Add Soyuz theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index c1207ad..bbd9d37 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -447,6 +447,17 @@ function Donsol () { b_low: '#ced0ce', b_inv: '#ed1e92' } + this.soyuzTheme = { + background: '#111111', + f_high: '#ffffff', + f_med: '#aaaaaa', + f_low: '#555555', + f_inv: '#000000', + b_high: '#fc533e', + b_med: '#666666', + b_low: '#333333', + b_inv: '#fc533e' + } this.tapeTheme = { background: '#dad7cd', f_high: '#696861', diff --git a/sources/scripts/player.js b/sources/scripts/player.js index 14a72e7..06cb89a 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -269,6 +269,9 @@ function Player () { if (theme_value.localeCompare('sonicPi') === 0) { new_theme = donsol.sonicPiTheme } + if (theme_value.localeCompare('soyuz') === 0) { + new_theme = donsol.soyuzTheme + } if (theme_value.localeCompare('tape') === 0) { new_theme = donsol.tapeTheme } diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index b4522cb..43f6cc3 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -50,6 +50,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From f6f6d241f1eccf519e1fb66487af77e3952f871d Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Sun, 25 Jan 2026 15:35:08 -0600 Subject: [PATCH 07/11] Add Teenage theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index bbd9d37..ad44b82 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -469,6 +469,17 @@ function Donsol () { b_low: '#e5e3dc', b_inv: '#eb3f48' } + this.teenageTheme = { + background: '#a1a1a1', + f_high: '#222222', + f_med: '#e00b30', + f_low: '#888888', + f_inv: '#ffffff', + b_high: '#555555', + b_med: '#fbba2d', + b_low: '#b3b3b3', + b_inv: '#0e7242' + } this.theme = new Theme(this.defaultTheme) diff --git a/sources/scripts/player.js b/sources/scripts/player.js index 06cb89a..69cef26 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -275,6 +275,9 @@ function Player () { if (theme_value.localeCompare('tape') === 0) { new_theme = donsol.tapeTheme } + if (theme_value.localeCompare('teenage') === 0) { + new_theme = donsol.teenageTheme + } donsol.theme = new Theme(new_theme) donsol.theme.load(new_theme) donsol.theme.install(document.body) diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index 43f6cc3..1e12e60 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -52,6 +52,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From 13261e0962375f21e0c01319119c029814f4bedc Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Sun, 25 Jan 2026 15:35:35 -0600 Subject: [PATCH 08/11] Add Teletext theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index ad44b82..88942f1 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -480,6 +480,17 @@ function Donsol () { b_low: '#b3b3b3', b_inv: '#0e7242' } + this.teletextTheme = { + background: '#000000', + f_high: '#ffffff', + f_med: '#ffff00', + f_low: '#00FF00', + f_inv: '#000000', + b_high: '#ff00ff', + b_med: '#ff0000', + b_low: '#0000ff', + b_inv: '#ffffff' + } this.theme = new Theme(this.defaultTheme) diff --git a/sources/scripts/player.js b/sources/scripts/player.js index 69cef26..84c6c0a 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -278,6 +278,9 @@ function Player () { if (theme_value.localeCompare('teenage') === 0) { new_theme = donsol.teenageTheme } + if (theme_value.localeCompare('teletext') === 0) { + new_theme = donsol.teletextTheme + } donsol.theme = new Theme(new_theme) donsol.theme.load(new_theme) donsol.theme.install(document.body) diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index 1e12e60..be0c24e 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -53,6 +53,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From aef2bd440b64d1eea4de652a9d520ae25a4d7563 Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Sun, 25 Jan 2026 15:37:07 -0600 Subject: [PATCH 09/11] Add Vacuui theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index 88942f1..6cdc19c 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -491,6 +491,17 @@ function Donsol () { b_low: '#0000ff', b_inv: '#ffffff' } + this.vacuuiTheme = { + background: '#22282a', + f_high: '#f1f2f3', + f_med: '#a6e22e', + f_low: '#66d9ef', + f_inv: '#f92672', + b_high: '#678cb1', + b_med: '#4f6164', + b_low: '#42464C', + b_inv: '#e6db74' + } this.theme = new Theme(this.defaultTheme) diff --git a/sources/scripts/player.js b/sources/scripts/player.js index 84c6c0a..cc81793 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -281,6 +281,9 @@ function Player () { if (theme_value.localeCompare('teletext') === 0) { new_theme = donsol.teletextTheme } + if (theme_value.localeCompare('vacuui') === 0) { + new_theme = donsol.vacuuiTheme + } donsol.theme = new Theme(new_theme) donsol.theme.load(new_theme) donsol.theme.install(document.body) diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index be0c24e..67204aa 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -54,6 +54,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From 265d098d9fac5e48da00633808b0b7b503a64e76 Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Sun, 25 Jan 2026 15:37:26 -0600 Subject: [PATCH 10/11] Add Zenburn theme --- sources/scripts/donsol.js | 11 +++++++++++ sources/scripts/player.js | 3 +++ sources/scripts/settings.js | 1 + 3 files changed, 15 insertions(+) diff --git a/sources/scripts/donsol.js b/sources/scripts/donsol.js index 6cdc19c..2b54941 100644 --- a/sources/scripts/donsol.js +++ b/sources/scripts/donsol.js @@ -502,6 +502,17 @@ function Donsol () { b_low: '#42464C', b_inv: '#e6db74' } + this.zenburnTheme = { + background: '#464646', + f_high: '#DCDCCC', + f_med: '#DCA3A3', + f_low: '#7F9F7F', + f_inv: '#000D18', + b_high: '#262626', + b_med: '#333333', + b_low: '#3F3F3F', + b_inv: '#8FAF9F' + } this.theme = new Theme(this.defaultTheme) diff --git a/sources/scripts/player.js b/sources/scripts/player.js index cc81793..2b932b5 100644 --- a/sources/scripts/player.js +++ b/sources/scripts/player.js @@ -284,6 +284,9 @@ function Player () { if (theme_value.localeCompare('vacuui') === 0) { new_theme = donsol.vacuuiTheme } + if (theme_value.localeCompare('zenburn') === 0) { + new_theme = donsol.zenburnTheme + } donsol.theme = new Theme(new_theme) donsol.theme.load(new_theme) donsol.theme.install(document.body) diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index 67204aa..d1ebc4d 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -55,6 +55,7 @@ function Settings () { this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' + this.theme_button.innerHTML += '' this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) From f152c4304662778ff67fd34a2ffc9274efbe49ff Mon Sep 17 00:00:00 2001 From: Stephen Jianu Date: Sun, 25 Jan 2026 15:40:36 -0600 Subject: [PATCH 11/11] Add label in front of Theme button --- sources/links/main.css | 3 ++- sources/scripts/settings.js | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/sources/links/main.css b/sources/links/main.css index e7d4cc6..a149139 100644 --- a/sources/links/main.css +++ b/sources/links/main.css @@ -13,6 +13,7 @@ body { background:black; font-family: 'input_mono_regular',monospace; min-width: #player .button:hover { cursor: pointer; } #player select.button { appearance: none;-webkit-appearance: none;background-color: transparent; } #player .settings { text-align: right; } +#player span.label { color:white; } #player div#timeline { display: inline-block;color:white; transition: opacity 250ms; opacity: 0 } #player div#timeline b { font-family: 'input_mono_medium',monospace; } @@ -36,4 +37,4 @@ body { background:black; font-family: 'input_mono_regular',monospace; min-width: #board card:nth-child(3), #table card:nth-child(3) { position:absolute; left:50%;} #board card:nth-child(4), #table card:nth-child(4) { position:absolute; left:75%;} -#difficulty:hover { text-decoration: underline; cursor: pointer; } \ No newline at end of file +#difficulty:hover { text-decoration: underline; cursor: pointer; } diff --git a/sources/scripts/settings.js b/sources/scripts/settings.js index d1ebc4d..3cf2cad 100644 --- a/sources/scripts/settings.js +++ b/sources/scripts/settings.js @@ -2,15 +2,20 @@ function Settings () { this.element = null + this.theme_label = null this.theme_button = null this.install = function () { this.element = document.createElement('div') this.element.setAttribute('class', 'settings') + this.theme_label = document.createElement('span') + this.theme_label.setAttribute('class', 'label') + this.theme_label.innerHTML = 'Theme: ' + this.theme_button = document.createElement('select') this.theme_button.setAttribute('class', 'theme button') - this.theme_button.innerHTML = '' + this.theme_button.innerHTML = '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' this.theme_button.innerHTML += '' @@ -59,6 +64,7 @@ function Settings () { this.theme_button.addEventListener('mousedown', () => { donsol.player.change_theme(this.theme_button.value) }) this.theme_button.addEventListener('change', () => { donsol.player.change_theme(this.theme_button.value) }) + this.element.appendChild(this.theme_label) this.element.appendChild(this.theme_button) return this.element