diff --git a/build/installer.nsh b/build/installer.nsh index 5e6e6bd..2299370 100644 --- a/build/installer.nsh +++ b/build/installer.nsh @@ -1,11 +1,9 @@ -; 기본 설치 경로 지정. -; productName 이 한글이라 electron-builder 가 기본 경로를 package.json name(sb_pt)으로 폴백하는 문제 회피. -; → $PROGRAMFILES\DonDwaeji 로 고정 (사용자는 설치 시 변경 가능). +; 기본 설치 경로 지정 (사용자 폴더 = 관리자 권한 불필요 → UAC 프롬프트 없음). +; productName 이 한글이라 electron-builder 가 기본 경로를 package.json name(sb_pt)으로 폴백하는 문제도 함께 회피. +; → %LOCALAPPDATA%\Programs\DonDwaeji 로 고정 (사용자는 설치 시 변경 가능). !macro preInit SetRegView 64 - WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$PROGRAMFILES64\DonDwaeji" - WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$PROGRAMFILES64\DonDwaeji" + WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$LOCALAPPDATA\Programs\DonDwaeji" SetRegView 32 - WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$PROGRAMFILES\DonDwaeji" - WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$PROGRAMFILES\DonDwaeji" + WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$LOCALAPPDATA\Programs\DonDwaeji" !macroend diff --git a/src/api/boardApi.js b/src/api/boardApi.js index bc68a89..0b97b62 100644 --- a/src/api/boardApi.js +++ b/src/api/boardApi.js @@ -53,4 +53,11 @@ export const boardApi = { unblock(id) { return http.post(`/board/posts/${id}/unblock`) }, + // 공지 설정/해제 (관리자) — 목록 최상단 고정 + setNotice(id) { + return http.post(`/board/posts/${id}/notice`) + }, + unsetNotice(id) { + return http.post(`/board/posts/${id}/unnotice`) + }, } diff --git a/src/assets/base.css b/src/assets/base.css index 8816868..b19ba6e 100644 --- a/src/assets/base.css +++ b/src/assets/base.css @@ -34,10 +34,26 @@ --color-text: var(--vt-c-text-light-1); --section-gap: 160px; + /* 모든 화면 본문 공통 폭 (화면별 제각각이던 max-width 를 일관되게) */ + --page-max: 760px; } +/* 다크 변수 묶음 — 명시적 다크(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 +62,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/assets/main.css b/src/assets/main.css index 216a561..ac52f8a 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -4,6 +4,14 @@ font-weight: normal; } +/* 모든 화면 본문 폭 통일 — 각 뷰가 제각각 두던 root max-width 를 한 곳에서 일관되게. + (본문 직계 자식 = 각 화면 루트 컨테이너) scoped 스타일을 덮기 위해 !important 사용. */ +.layout-body > * { + max-width: var(--page-max) !important; + margin-left: auto !important; + margin-right: auto !important; +} + /* 폼 요소 폰트 상속(표준 리셋) — 네이티브 input/select/textarea 가 서로 폰트·높이 달라 보이던 이질감 해소. (개별 화면 scoped 스타일이 더 구체적이면 그쪽이 우선) */ input, diff --git a/src/components/WebOnlyNotice.vue b/src/components/WebOnlyNotice.vue index c45606f..a6ce3a0 100644 --- a/src/components/WebOnlyNotice.vue +++ b/src/components/WebOnlyNotice.vue @@ -13,8 +13,14 @@ const mobileReady = false

슬림하게 관리하는 가계부 · 자산 · 예산

-

🖥️ PC는 설치형 앱으로, 📱 모바일은 으로 이용해요.

-

웹 브라우저에서는 안내만 제공됩니다. 설치한 뒤 로그인해 주세요.

+

+ 🖥️ PC는 설치형 앱으로, + 📱 모바일은 으로 이용해요. +

+

+ 웹 브라우저에서는 안내만 제공됩니다. + 설치한 뒤 로그인해 주세요. +

@@ -78,6 +84,11 @@ const mobileReady = false font-size: 0.86rem; opacity: 0.7; } +/* 각 구절을 한 덩어리로 — 좁으면 절(span) 경계에서만 줄바꿈, 넓으면 한 줄 */ +.lead .ln, +.sub .ln { + display: inline-block; +} .dl-group { display: flex; flex-direction: column; 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 @@