Files
NetMesh/infrastructure/config/appIconVariants.ts

87 lines
3.7 KiB
TypeScript
Raw Normal View History

import {
APP_ICON_VARIANTS,
DEFAULT_APP_ICON_VARIANT,
type AppIconVariant,
} from '../../domain/appIconVariant';
export { APP_ICON_VARIANTS, DEFAULT_APP_ICON_VARIANT, type AppIconVariant };
// Elf SVG icon source — shared across all variants.
export const APP_ICON_ELF_SVG = '/senmesh-elf-logo.svg';
// Background colors for the icon preview tiles in Settings.
// Each variant is: background (can be a linear-gradient or solid color), optional border.
export const APP_ICON_VARIANT_TILE: Record<
AppIconVariant,
{ background: string; border?: string }
> = {
original: { background: 'linear-gradient(135deg, #5BAF7E 0%, #3D8B5E 100%)' },
bright: { background: 'linear-gradient(135deg, #A8E0B0 0%, #7BC48A 100%)' },
dark: { background: 'linear-gradient(135deg, #2E7D4F 0%, #1B5E3A 100%)' },
colorful: { background: 'linear-gradient(135deg, #5BAF7E 0%, #7BC4A5 50%, #A8D8B9 100%)' },
'high-contrast': { background: '#0F2418', border: '1px solid #5BAF7E' },
'white-navy': { background: 'linear-gradient(135deg, #1E3A5F 0%, #0F2440 100%)' },
'white-sky': { background: 'linear-gradient(135deg, #7EC8E3 0%, #4A9BC0 100%)' },
'white-rose': { background: 'linear-gradient(135deg, #F8BBD0 0%, #E8A0B8 100%)' },
'white-emerald': { background: 'linear-gradient(135deg, #5BAF7E 0%, #3D8B5E 100%)' },
'white-amber': { background: 'linear-gradient(135deg, #F5CBA7 0%, #E0A86A 100%)' },
'white-violet': { background: 'linear-gradient(135deg, #9B7FC4 0%, #6D4F99 100%)' },
rainbow: {
background: 'linear-gradient(135deg, #E74C3C 0%, #F39C12 20%, #F1C40F 40%, #27AE60 60%, #3498DB 80%, #9B59B6 100%)',
},
};
// Legacy PNG paths — kept for Electron main-process window icon usage
// (real PNG files are still needed for taskbar/dock icons).
export const APP_ICON_VARIANT_ASSET_PATH: Record<AppIconVariant, string> = {
original: '/icons/variants/original.png',
bright: '/icons/variants/bright.png',
dark: '/icons/variants/dark.png',
colorful: '/icons/variants/colorful.png',
'high-contrast': '/icons/variants/high-contrast.png',
'white-navy': '/icons/variants/white-navy.png',
'white-sky': '/icons/variants/white-sky.png',
'white-rose': '/icons/variants/white-rose.png',
'white-emerald': '/icons/variants/white-emerald.png',
'white-amber': '/icons/variants/white-amber.png',
'white-violet': '/icons/variants/white-violet.png',
rainbow: '/icons/variants/rainbow.png',
};
export const APP_ICON_VARIANT_I18N_KEY: Record<AppIconVariant, string> = {
original: 'settings.appearance.appIcon.original',
bright: 'settings.appearance.appIcon.bright',
dark: 'settings.appearance.appIcon.dark',
colorful: 'settings.appearance.appIcon.colorful',
'high-contrast': 'settings.appearance.appIcon.highContrast',
'white-navy': 'settings.appearance.appIcon.whiteNavy',
'white-sky': 'settings.appearance.appIcon.whiteSky',
'white-rose': 'settings.appearance.appIcon.whiteRose',
'white-emerald': 'settings.appearance.appIcon.whiteEmerald',
'white-amber': 'settings.appearance.appIcon.whiteAmber',
'white-violet': 'settings.appearance.appIcon.whiteViolet',
rainbow: 'settings.appearance.appIcon.rainbow',
};
export const APP_ICON_VARIANT_GROUPS: Array<{
id: 'classic' | 'white' | 'special';
labelKey: string;
variants: AppIconVariant[];
}> = [
{
id: 'classic',
labelKey: 'settings.appearance.appIcon.group.classic',
variants: ['original', 'bright', 'dark', 'colorful', 'high-contrast'],
},
{
id: 'white',
labelKey: 'settings.appearance.appIcon.group.white',
variants: ['white-navy', 'white-sky', 'white-rose', 'white-emerald', 'white-amber', 'white-violet'],
},
{
id: 'special',
labelKey: 'settings.appearance.appIcon.group.special',
variants: ['rainbow'],
},
];