diff --git a/packages/web/src/settings/ThemeSkeleton.svelte b/packages/web/src/settings/ThemeSkeleton.svelte index 298b6eb65..43008dc85 100644 --- a/packages/web/src/settings/ThemeSkeleton.svelte +++ b/packages/web/src/settings/ThemeSkeleton.svelte @@ -2,27 +2,32 @@ import { ThemeDefinition } from 'dbgate-types'; import FontIcon from '../icons/FontIcon.svelte'; import { currentTheme } from '../stores'; + import _ from 'lodash'; + + function extractThemeColors(theme: ThemeDefinition) { + if (!theme.themeCss) return {}; + + return _.fromPairs( + [...theme.themeCss.matchAll(/(--theme-[a-z0-9\-]+)\s*\:\s*(\#[0-9a-fA-F]{6})/g)].map(x => [x[1], x[2]]) + ); + } export let theme: ThemeDefinition; - // export let theme; - function getThemeStyle(val: ThemeDefinition) { - return ``; - } + $: colors = extractThemeColors(theme); + $: cssVarColors = Object.entries(colors) + .map(([key, value]) => `${key}:${value}`) + .join(';'); -{#if theme.themeCss} - {@html getThemeStyle(theme)} -{/if} -