/* 공통 디자인: themes 와 defaults 는 AI-Archive/ui/src/plugins/vuetify.js 원본에서 그대로 * 옮긴 것(ABOX 사본 경유). 원본이 바뀌면 같은 객체를 다시 옮긴다. * 이 앱에만 있는 추가분은 app.js 에 둔다. */ window.APP_THEME = (() => { const shared = { variables: { 'high-emphasis-opacity': 0.95, 'medium-emphasis-opacity': 0.62, 'disabled-opacity': 0.34, 'hover-opacity': 0.045, 'focus-opacity': 0.09, 'selected-opacity': 0.06, 'activated-opacity': 0.06, 'dragged-opacity': 0.08, }, }; const light = { dark: false, colors: { background: '#fbfbfd', surface: '#ffffff', 'surface-light': '#f4f4f7', 'surface-bright': '#ffffff', 'surface-variant': '#2b2b33', 'on-surface-variant': '#f4f4f7', 'on-background': '#17171c', 'on-surface': '#17171c', primary: '#5b5bd6', 'on-primary': '#ffffff', secondary: '#6b6b7b', 'on-secondary': '#ffffff', error: '#d92d20', warning: '#b54708', info: '#175cd3', success: '#067647', }, ...shared, variables: { ...shared.variables, 'border-color': '#17171c', 'border-opacity': 0.11 }, }; const dark = { dark: true, colors: { background: '#0e0e12', surface: '#16161c', 'surface-light': '#1e1e26', 'surface-bright': '#262630', 'surface-variant': '#d7d7e0', 'on-surface-variant': '#1e1e26', 'on-background': '#e8e8ee', 'on-surface': '#e8e8ee', primary: '#9d9dfb', 'on-primary': '#14142b', secondary: '#9a9aab', 'on-secondary': '#14142b', error: '#f97066', warning: '#fdb022', info: '#84caff', success: '#75e0a7', }, ...shared, variables: { ...shared.variables, 'border-color': '#e8e8ee', 'border-opacity': 0.13 }, }; return { themes: { light, dark }, defaults: { global: { ripple: false }, VBtn: { variant: 'text', color: 'primary' }, VCard: { elevation: 0, border: true, rounded: 'lg' }, VList: { density: 'compact', nav: true }, VListItem: { rounded: 'lg', minHeight: 36 }, VTextField: { variant: 'solo-filled', flat: true, density: 'compact', hideDetails: true, rounded: 'lg' }, VSelect: { variant: 'solo-filled', flat: true, density: 'compact', hideDetails: true, rounded: 'lg' }, VChip: { size: 'small', variant: 'tonal', rounded: 'lg' }, VToolbar: { color: 'transparent', flat: true }, // VDivider 기본값 없음: opacity 1 이 구분선을 글자색 그대로 그렸다(원본에서도 뺐다) VTooltip: { location: 'bottom' }, VMenu: { offset: 6 }, VDialog: { scrollable: true }, VSkeletonLoader: { color: 'surface-light' }, }, }; })();