From 75228cbb641d24b760b28f0b8430b822cd381106 Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Sat, 27 Jun 2026 22:15:27 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=82=AC=EC=9D=B4=EB=93=9C=EB=B0=94=20?= =?UTF-8?q?=EB=B8=8C=EB=9E=9C=EB=93=9C/=ED=97=A4=EB=8D=94=20=ED=83=80?= =?UTF-8?q?=EC=9D=B4=ED=8B=80=20+=20=EB=9D=BC=EC=9D=B4=ED=8A=B8=C2=B7?= =?UTF-8?q?=EB=8B=A4=ED=81=AC=20=ED=85=8C=EB=A7=88=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1) 사이드바 상단에 돼지 로고 + '돈돼지 가계부'('메뉴' 텍스트 대체, 데스크톱/모바일 공통) 2) 헤더에서 돼지 로고 제거 → 현재 화면 타이틀 표시(라우트별) 3) 설정에 화면 테마(시스템/라이트/다크) 선택 추가 - base.css: data-theme 기반 수동 다크 + 시스템 설정 폴백 - theme.js 유틸 + ui 스토어 theme 상태, main.js 시작 시 적용(깜빡임 방지) Co-Authored-By: Claude Opus 4.8 --- src/assets/base.css | 18 +++++++- src/components/layout/AppHeader.vue | 53 ++++++++++++++---------- src/components/layout/AppSidebar.vue | 61 +++++++++++++++++++--------- src/main.js | 4 ++ src/stores/ui.js | 9 ++++ src/theme.js | 34 ++++++++++++++++ src/views/settings/SettingsView.vue | 50 +++++++++++++++++++++++ 7 files changed, 187 insertions(+), 42 deletions(-) create mode 100644 src/theme.js diff --git a/src/assets/base.css b/src/assets/base.css index 8816868..b09de53 100644 --- a/src/assets/base.css +++ b/src/assets/base.css @@ -36,8 +36,22 @@ --section-gap: 160px; } +/* 다크 변수 묶음 — 명시적 다크(data-theme=dark)와 시스템 다크에서 공통 사용 */ +:root[data-theme='dark'] { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-1); +} + +/* 시스템 설정 따름(테마 미지정 = 시스템). 명시적 라이트/다크가 있으면 그게 우선 */ @media (prefers-color-scheme: dark) { - :root { + :root:not([data-theme]) { --color-background: var(--vt-c-black); --color-background-soft: var(--vt-c-black-soft); --color-background-mute: var(--vt-c-black-mute); @@ -46,7 +60,7 @@ --color-border-hover: var(--vt-c-divider-dark-1); --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); + --color-text: var(--vt-c-text-dark-1); } } diff --git a/src/components/layout/AppHeader.vue b/src/components/layout/AppHeader.vue index 844eecd..2451b2a 100644 --- a/src/components/layout/AppHeader.vue +++ b/src/components/layout/AppHeader.vue @@ -1,12 +1,39 @@