diff --git a/package.json b/package.json index adf479f2..e8c82368 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "2.13.5", + "version": "2.13.6", "private": true, "type": "module", "bin": "dist/service.js", diff --git a/src/components/PWAInstallPrompt.vue b/src/components/PWAInstallPrompt.vue index c8baa163..48db3591 100644 --- a/src/components/PWAInstallPrompt.vue +++ b/src/components/PWAInstallPrompt.vue @@ -178,7 +178,7 @@ const instructions = computed(() => { position: fixed; z-index: 1000; border: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); - border-radius: 12px; + border-radius: var(--app-surface-radius); background: rgb(var(--v-theme-surface)); box-shadow: 0 4px 20px rgba(0, 0, 0, 10%); inset-block-end: 5rem; diff --git a/src/components/ThemeCustomizer.vue b/src/components/ThemeCustomizer.vue index 58b76800..088b73a6 100644 --- a/src/components/ThemeCustomizer.vue +++ b/src/components/ThemeCustomizer.vue @@ -4,6 +4,7 @@ import { themeCustomizerPrimaryColors, useThemeCustomizer, type ThemeCustomizerLayout, + type ThemeCustomizerRadius, type ThemeCustomizerShadow, type ThemeCustomizerSkin, type ThemeCustomizerTheme, @@ -34,6 +35,7 @@ const { resetSettings, setLayout, setPrimaryColor, + setRadius, setSemiDarkMenu, setShadow, setSkin, @@ -175,6 +177,40 @@ const shadowOptions = computed< }, ]) +const radiusOptions = computed< + Array<{ + previewRadius: string + title: string + value: ThemeCustomizerRadius + }> +>(() => [ + { + previewRadius: '0', + title: t('theme.customizer.radiusSquare'), + value: 'square', + }, + { + previewRadius: '4px', + title: t('theme.customizer.radiusSmall'), + value: 'small', + }, + { + previewRadius: '8px', + title: t('theme.customizer.radiusDefault'), + value: 'default', + }, + { + previewRadius: '12px', + title: t('theme.customizer.radiusLarge'), + value: 'large', + }, + { + previewRadius: '16px', + title: t('theme.customizer.radiusExtra'), + value: 'extra', + }, +]) + const layoutOptions = computed>(() => [ { title: t('theme.customizer.layoutVertical'), value: 'vertical', icon: 'mdi-dock-left' }, { title: t('theme.customizer.layoutCollapsed'), value: 'collapsed', icon: 'mdi-dock-window' }, @@ -186,6 +222,7 @@ const showLayoutSection = computed(() => !appMode.value) const hasAppModeCustomization = computed(() => { return ( settings.value.primaryColor !== defaultPrimaryColor || + settings.value.radius !== 'default' || settings.value.shadow !== 'none' || settings.value.skin !== 'default' || settings.value.theme !== 'auto' @@ -228,6 +265,7 @@ async function handleResetSettings() { // App 模式共享定制器,但保留桌面导航相关偏好,只重置 App 侧可调整的外观设置。 await setPrimaryColor(defaultPrimaryColor) + await setRadius('default') await setShadow('none') await setSkin('default') await setTheme('auto') @@ -348,6 +386,31 @@ async function handleResetSettings() { +

{{ t('theme.customizer.radius') }}

+
+
+ + + + + + + + {{ radius.title }} +
+
+ + +

{{ t('theme.customizer.shadow') }}