add black theme

This commit is contained in:
marlon-erler
2026-09-25 14:18:39 +02:00
parent 2ed43598a8
commit a81d061812
10 changed files with 177 additions and 150 deletions
+6 -3
View File
@@ -172,12 +172,13 @@ body[theme=dark] [color]:not([color=standard]).subtle-background {
} }
#background-wrapper { #background-wrapper {
position: fixed; position: fixed;
inset: 0px; top: var(--safe-area-top);
transform: scale(1.2); left: var(--safe-area-left);
right: var(--safe-area-right);
bottom: var(--safe-area-bottom);
z-index: 1; z-index: 1;
pointer-events: none; pointer-events: none;
overflow: hidden; overflow: hidden;
filter: blur(40px);
background: var(--background); background: var(--background);
} }
main { main {
@@ -187,6 +188,8 @@ main {
content: ""; content: "";
position: absolute; position: absolute;
inset: 0px; inset: 0px;
transform: scale(1.2);
filter: blur(40px);
z-index: -1; z-index: -1;
pointer-events: none; pointer-events: none;
} }
+14 -10
View File
@@ -16,7 +16,7 @@ html {
/* /*
ANIMATION ANIMATION
*/ */
@keyframes slide-up { @keyframes slide-up {
0% { 0% {
opacity: 0; opacity: 0;
@@ -318,7 +318,7 @@ body {
/* /*
TYPE TYPE
*/ */
@font-face { @font-face {
font-family: IBM Plex Sans; font-family: IBM Plex Sans;
@@ -375,8 +375,8 @@ footer {
} }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not( input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not(
label.tile * label.tile *
), ),
label.tile, label.tile,
select:not(label.tile *), select:not(label.tile *),
textarea:not(label.tile *) { textarea:not(label.tile *) {
@@ -392,8 +392,8 @@ hr {
} }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus:not( input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus:not(
label.tile * label.tile *
):not(.no-outline), ):not(.no-outline),
label.tile:has(input:focus), label.tile:has(input:focus),
label.tile:has(textarea:focus), label.tile:has(textarea:focus),
textarea:focus:not(label.tile *), textarea:focus:not(label.tile *),
@@ -1013,7 +1013,7 @@ input[type="radio"]:checked::before {
/* /*
LAYOUT LAYOUT
*/ */
/* basic */ /* basic */
body, body,
html { html {
@@ -1021,8 +1021,12 @@ html {
flex-direction: column-reverse; flex-direction: column-reverse;
margin: 0px; margin: 0px;
width: 100%;
height: 100%; position: fixed;
top: var(--safe-area-top);
left: var(--safe-area-left);
right: var(--safe-area-right);
bottom: var(--safe-area-bottom);
} }
body, body,
@@ -1243,7 +1247,7 @@ main {
/* /*
STATE STATE
*/ */
[highlight]:not(:hover):not(:active) { [highlight]:not(:hover):not(:active) {
color: var(--highlight-color) !important; color: var(--highlight-color) !important;
Vendored
+1 -1
View File
@@ -1,4 +1,4 @@
const VERSION = "2610 Beta 4.2" const VERSION = "2610 Beta 4.7"
function processUrl(event) { function processUrl(event) {
const url = event.request.url; const url = event.request.url;
+1 -1
View File
@@ -1 +1 @@
2610 Beta 4.2 2610 Beta 4.7
+1
View File
@@ -107,4 +107,5 @@ export enum ThemeSettings {
Light = "light", Light = "light",
System = "system", System = "system",
Dynamic = "dynamic", Dynamic = "dynamic",
Black = "black",
} }
+6 -2
View File
@@ -192,6 +192,10 @@ function SettingsAppearancePane(
coreViewModel.translations.settings.themes.dynamic, coreViewModel.translations.settings.themes.dynamic,
ThemeSettings.Dynamic, ThemeSettings.Dynamic,
], ],
[
coreViewModel.translations.settings.themes.system,
ThemeSettings.System,
],
[ [
coreViewModel.translations.settings.themes.dark, coreViewModel.translations.settings.themes.dark,
ThemeSettings.Dark, ThemeSettings.Dark,
@@ -201,8 +205,8 @@ function SettingsAppearancePane(
ThemeSettings.Light, ThemeSettings.Light,
], ],
[ [
coreViewModel.translations.settings.themes.system, coreViewModel.translations.settings.themes.black,
ThemeSettings.System, ThemeSettings.Black,
], ],
]), ]),
settingsViewModel.theme, settingsViewModel.theme,
+3
View File
@@ -98,6 +98,7 @@ const englishTranslations = {
dark: "Dark", dark: "Dark",
light: "Light", light: "Light",
system: "Device theme", system: "Device theme",
black: "Black",
}, },
version: "Version", version: "Version",
@@ -442,6 +443,7 @@ export const allTranslations: {
dark: "Dunkel", dark: "Dunkel",
light: "Hell", light: "Hell",
system: "Geräteeinstellung", system: "Geräteeinstellung",
black: "Schwarz",
}, },
version: "Version", version: "Version",
@@ -754,6 +756,7 @@ export const allTranslations: {
dark: "Oscuro", dark: "Oscuro",
light: "Claro", light: "Claro",
system: "Según dispositivo", system: "Según dispositivo",
black: "Negro",
}, },
version: "Versión", version: "Versión",
Binary file not shown.
+20 -10
View File
@@ -55,19 +55,21 @@ export default class SettingsViewModel extends Context {
applyTheme = (): void => { applyTheme = (): void => {
let theme: string = this.theme.value; let theme: string = this.theme.value;
if (theme == ThemeSettings.Dynamic) { if (theme == ThemeSettings.System)
theme = SettingsViewModel.getSystemTheme();
switch (theme) {
case ThemeSettings.Dynamic:
const scene = this.selectDynamicScene(); const scene = this.selectDynamicScene();
this.setScene(scene); this.setScene(scene);
return; break;
} case ThemeSettings.Dark:
if (theme == ThemeSettings.System) {
theme = SettingsViewModel.getSystemTheme();
}
if (theme == ThemeSettings.Dark) {
this.setScene(DynamicSceneNight); this.setScene(DynamicSceneNight);
} else { break;
case ThemeSettings.Black:
this.setScene(DynamicSceneBlack);
break;
default:
this.setScene(DynamicSceneDay); this.setScene(DynamicSceneDay);
} }
}; };
@@ -224,3 +226,11 @@ export const DynamicSceneSunset: DynamicScene = {
brightness: 0.4, brightness: 0.4,
baseTheme: ThemeSettings.Dark, baseTheme: ThemeSettings.Dark,
}; };
export const DynamicSceneBlack: DynamicScene = {
hue1: 0,
hue2: 0,
saturation: 0,
luma: 0,
brightness: 0,
baseTheme: ThemeSettings.Dark,
};
+7 -5
View File
@@ -9,17 +9,16 @@
/* Gradient */ /* Gradient */
#background-wrapper { #background-wrapper {
position: fixed; position: fixed;
top: var(--safe-area-top);
inset: 0px; left: var(--safe-area-left);
transform: scale(1.2); right: var(--safe-area-right);
bottom: var(--safe-area-bottom);
z-index: 1; z-index: 1;
pointer-events: none; pointer-events: none;
overflow: hidden; overflow: hidden;
filter: blur(40px);
background: var(--background); background: var(--background);
} }
@@ -33,6 +32,9 @@ main {
position: absolute; position: absolute;
inset: 0px; inset: 0px;
transform: scale(1.2);
filter: blur(40px);
z-index: -1; z-index: -1;
pointer-events: none; pointer-events: none;
} }