diff --git a/src/views/Settings/components/SettingsGroup.vue b/src/views/Settings/components/SettingsGroup.vue new file mode 100644 index 00000000..14f68aed --- /dev/null +++ b/src/views/Settings/components/SettingsGroup.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/views/Settings/components/SettingsItem.vue b/src/views/Settings/components/SettingsItem.vue new file mode 100644 index 00000000..cf9aa021 --- /dev/null +++ b/src/views/Settings/components/SettingsItem.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/views/Settings/components/Tabs/AppearanceTab.vue b/src/views/Settings/components/Tabs/AppearanceTab.vue index a6ef8f57..8fcd1610 100644 --- a/src/views/Settings/components/Tabs/AppearanceTab.vue +++ b/src/views/Settings/components/Tabs/AppearanceTab.vue @@ -1,9 +1,7 @@ @@ -397,6 +337,7 @@ import { CheckIcon, ChevronDown } from 'lucide-vue-next'; import { useAppearanceSettingsStore, useFavoriteStore, useVrStore } from '@/stores'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; + import { Switch } from '@/components/ui/switch'; import { getLanguageName, languageCodes } from '@/localization'; import { APP_CJK_FONT_PACKS, APP_FONT_CONFIG, APP_FONT_DEFAULT_KEY, APP_FONT_FAMILIES } from '@/shared/constants'; import { Button } from '@/components/ui/button'; @@ -408,7 +349,8 @@ import TableLimitsDialog from '@/components/dialogs/TableLimitsDialog.vue'; import { saveSortFavoritesOption } from '@/coordinators/favoriteCoordinator'; - import SimpleSwitch from '../SimpleSwitch.vue'; + import SettingsGroup from '../SettingsGroup.vue'; + import SettingsItem from '../SettingsItem.vue'; const { t } = useI18n(); @@ -464,6 +406,51 @@ setAppCjkFontPack } = appearanceSettingsStore; + const trustColorEntries = [ + { + key: 'untrusted', + tagClass: 'x-tag-untrusted', + labelKey: 'view.settings.appearance.user_colors.trust_levels.visitor', + presets: ['#CCCCCC'] + }, + { + key: 'basic', + tagClass: 'x-tag-basic', + labelKey: 'view.settings.appearance.user_colors.trust_levels.new_user', + presets: ['#1778ff'] + }, + { + key: 'known', + tagClass: 'x-tag-known', + labelKey: 'view.settings.appearance.user_colors.trust_levels.user', + presets: ['#2bcf5c'] + }, + { + key: 'trusted', + tagClass: 'x-tag-trusted', + labelKey: 'view.settings.appearance.user_colors.trust_levels.known_user', + presets: ['#ff7b42'] + }, + { + key: 'veteran', + tagClass: 'x-tag-veteran', + labelKey: 'view.settings.appearance.user_colors.trust_levels.trusted_user', + presets: ['#b18fff', '#8143e6', '#ff69b4', '#b52626', '#ffd000', '#abcdef'] + }, + { + key: 'vip', + tagClass: 'x-tag-vip', + labelKey: 'view.settings.appearance.user_colors.trust_levels.vrchat_team', + presets: ['#ff2626'] + }, + { + key: 'troll', + tagClass: 'x-tag-troll', + labelKey: 'view.settings.appearance.user_colors.trust_levels.nuisance', + presets: ['#782f2f'] + } + ]; + const fontDropdownDisplayText = computed(() => { if (appFontFamily.value === 'custom') { return t('view.settings.appearance.appearance.font_family_custom');