From 72a06d6c079a84abd7b56040db79130365abee33 Mon Sep 17 00:00:00 2001 From: lee-hyeon-cheol Date: Mon, 21 Sep 2026 10:40:32 +0900 Subject: [PATCH] =?UTF-8?q?style(frontend):=20PwC=20=EB=A1=9C=EA=B3=A0=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0,=20=EA=B8=B0=EB=B3=B8=20=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20=EB=AA=A8=EB=93=9C,=20=EC=82=BC=EC=84=B1=20?= =?UTF-8?q?=ED=8C=94=EB=A0=88=ED=8A=B8=20=ED=8F=AC=EC=9D=B8=ED=8A=B8=20Sam?= =?UTF-8?q?sung=20Blue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LogoMark 는 null 렌더(호출부 6곳 그대로), logo.png·logo-dark.png 삭제, 파비콘 투명 - themeStore·index.html 기본 light. 예전 dark 저장값은 첫 실행 때 한 번만 초기화 - samsung 팔레트 primary/ring/link = #1428A0(브랜드 파랑). 바탕·글씨·면은 실측값 유지 - Message 테스트: 기본 라이트 기준으로 코드블럭 흰 배경 기대 Co-Authored-By: Claude Fable 5.1 --- 2_frontend/index.html | 10 +++++++--- 2_frontend/public/favicon.png | Bin 1981 -> 83 bytes 2_frontend/src/assets/logo-dark.png | Bin 26575 -> 0 bytes 2_frontend/src/assets/logo.png | Bin 39409 -> 0 bytes .../features/snap/components/Message.test.tsx | 4 ++-- 2_frontend/src/shared/components/LogoMark.tsx | 16 +++------------- 2_frontend/src/shared/store/themeStore.ts | 4 ++-- 2_frontend/src/shared/theme/derive.ts | 14 +++++++------- 2_frontend/src/shared/theme/palettes.ts | 2 +- 9 files changed, 22 insertions(+), 28 deletions(-) delete mode 100644 2_frontend/src/assets/logo-dark.png delete mode 100644 2_frontend/src/assets/logo.png diff --git a/2_frontend/index.html b/2_frontend/index.html index 604365c..c072b3f 100644 --- a/2_frontend/index.html +++ b/2_frontend/index.html @@ -21,11 +21,15 @@ } document.documentElement.setAttribute("data-theme", pal) var raw = localStorage.getItem("theme-store") - var mode = "dark" // 저장값 없으면 다크 (themeStore 기본과 동일) - if (raw) { + var mode = "light" // 저장값 없으면 라이트 (themeStore 기본과 동일) + // 기본 모드를 라이트로 바꾸면서(2026-09) 예전 저장값 dark 는 한 번만 light 로. 이후 직접 고른 건 유지. + if (raw && localStorage.getItem("light-default-v1")) { try { - mode = (JSON.parse(raw).state || {}).theme || "dark" + mode = (JSON.parse(raw).state || {}).theme || "light" } catch (e) {} + } else { + localStorage.removeItem("theme-store") + localStorage.setItem("light-default-v1", "1") } var dark = mode === "dark" || diff --git a/2_frontend/public/favicon.png b/2_frontend/public/favicon.png index 713ad489b14f3ef77ba19f3c528da595167249a1..6e3cb09bcf701bc53ecc7886c19b82d386469aa6 100644 GIT binary patch literal 83 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzDNh&2kcv5P4>B?Wc})uc*XMaS bfSB*u1QZw;C7n&)0XYnwu6{1-oD!MlM#kfRdZMn2AVL5hMgh)jiG=kvVJ^M0T2_j%su{r&Mv^&}sK z!*pQ)0KlD{9K1nK0?j~O72Ho&bjd-d5^>1=5CBwM(Ueo6;29C>mINsag$R{~? zvPDMn`5ZhJD-Z}Ug8djaHv(&p!{M-I7FY`lG{`{nPP6z_A)3Y8{jtb@>NwDNp}b9%61mZ6bA7xgO-TRTiN*Ug7C0bwBZD=^m|-_-gHpllyXQ`FNe<{Dnd{Ppy z8}oiK|HsGufP$|}gb}ctUy2Bu-ld)n08oUp!yzAEjkzqwh2zJyA1>b)l=5nvN=({a z=+y{RM~khbjk0Y?ep*k|xJRzmGD?YL*-0${Gg7jJcDfyE|oSn$S9AY52EW z=7It*4ICNz`C@mL^TUE#qg1;zq&1pc+5MexvEseNbLS0veJy5cW*EKy>ex)P`OHDp*a_w!ye7<|J##{RP|K#tMeq9C z{)O$b>~@^q*{xGCaa!>zrpF2+cb&3^A6S1mF{+*RTqcwR!aSP(6hlp=iln7+zbWM* zg8$%k1pR#1c>JKcU4p@64Br&CU^D)3+KLRF4Vdf;ymKc$=(jr28^*;3u{XPe!GRn= z`xoBIKu7P_WK>BMXLgw+tVIuxCXYTs`^AHUCPXamrs7aHu z_)N(j#aIU0CQ=anco63q{qlwJb!!vrX04SiERh|esy~O*phPU0I9Qt8ox?xOcP2vo zS0*`XCd|V)cx#V%r&Lv&qZfF$HFOZlYK}2?OZ+}q{pPkfNF~32sUSbx@xH%D^`v#{ z^a7zc#XtSl#h|iF6i9>qD57Ftp@dBHb3sTtawzrfkyb!j^L2vpe3ZVW~SiB2L_U4_7`k6M~Wu3;-Ej_;|`8C_8Vv zj9lK!G%bp^q}|i7ylKgvDM*ibuw*LX_NME+f(xZC=wH%eo~_=Ns!7z0c+IQPjOD~f zG3t)S82O6VdJ3XmN^Yx#ac^ai@y|M^yIIP%9-2+@%|)X})OiQCkj`5zHM@QdT*@D5 zcwk-VMM-3SH9JyZS`K?~b^-PJ-0Tt}o8Q}|NM$Who|xCYl@^sH?>4*^XFgc#p$gaD z@*=yGopL14XIPo~d-<4s&h#bKDuqsf2H$Z_(^GHl2gssEdrG`VCS_)WBozI}G0IzoxvsG;C?iXZItnzG%28LyU=dN&# z&+5}z3Rb7B+{u_^Q(*Vx2Lndl-wpn@?}pd4r4xMJw*jrf{<8o-mkiT6n7I0lC$3a> z_{6g2puA4f_&WUZfcliylZcsg@nq@wfF6yl`B}V}g$nVy=8ujg(>A^4qZ@xZXGgL_ J>EU3}zX9~LR}%mL diff --git a/2_frontend/src/assets/logo-dark.png b/2_frontend/src/assets/logo-dark.png deleted file mode 100644 index a9ece4c2d475d22df533e20f488f48fac8cc8908..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26575 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 Ib_Hbo8x!fen*aa+ diff --git a/2_frontend/src/assets/logo.png b/2_frontend/src/assets/logo.png deleted file mode 100644 index 8eabb55146e8d96f2d6587cc99180b8a025a9200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39409 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 diff --git a/2_frontend/src/features/snap/components/Message.test.tsx b/2_frontend/src/features/snap/components/Message.test.tsx index 7fb505b..db00ecf 100644 --- a/2_frontend/src/features/snap/components/Message.test.tsx +++ b/2_frontend/src/features/snap/components/Message.test.tsx @@ -23,8 +23,8 @@ describe("Message 코드펜스 렌더", () => { // 스크롤 컨테이너 있는 CodeBlock 으로 감싸져야 함 const block = container.querySelector("[data-code-block]") expect(block).not.toBeNull() - // 코드 상자 색은 앱 테마를 따름 — 기본(다크)에선 어두운 코드 상자, 라이트 모드면 흰 에디터 룩 - expect(block?.className).toContain("bg-[#0d1117]") + // 코드 상자 색은 앱 테마를 따름 — 기본이 라이트(2026-09-21)라 언어 없는 블럭은 흰 에디터 룩, 다크면 bg-[#0d1117] + expect(block?.className).toContain("bg-white") // 인라인 code 스타일(bg-black/10)로 새지 않아야 함 expect(container.querySelector("code.rounded")).toBeNull() }) diff --git a/2_frontend/src/shared/components/LogoMark.tsx b/2_frontend/src/shared/components/LogoMark.tsx index c8d3299..4d216fe 100644 --- a/2_frontend/src/shared/components/LogoMark.tsx +++ b/2_frontend/src/shared/components/LogoMark.tsx @@ -1,19 +1,9 @@ -import logo from "@/assets/logo.png" -import logoDark from "@/assets/logo-dark.png" -import { cn } from "@/lib/utils/cn" - interface LogoMarkProps { - /** 로고 가로 폭(px) — 원본 비율(약 2.06:1) 유지 */ width?: number className?: string } -/** 브랜드 마크 — ABAP_OPENCODE 와 같은 PwC 로고. 다크에선 밝은 글자 변형. */ -export function LogoMark({ width = 38, className }: LogoMarkProps) { - return ( - - PwC - PwC - - ) +/** 브랜드 마크 자리 — 지금은 아무것도 안 그림(PwC 로고 제거, 2026-09-21). 호출부 6곳은 그대로 두고 여기서만 끔. */ +export function LogoMark(_props: LogoMarkProps) { + return null } diff --git a/2_frontend/src/shared/store/themeStore.ts b/2_frontend/src/shared/store/themeStore.ts index 325b5f3..483337c 100644 --- a/2_frontend/src/shared/store/themeStore.ts +++ b/2_frontend/src/shared/store/themeStore.ts @@ -35,8 +35,8 @@ const ORDER: Theme[] = ["light", "dark", "system"] export const useThemeStore = create()( persist( (set, get) => ({ - theme: "dark", // ABAP_OPENCODE 와 같이 다크가 기본 - resolved: resolve("dark"), + theme: "light", // 삼성향 팔레트가 라이트라 라이트 기본(2026-09-21) + resolved: resolve("light"), setTheme: (theme) => { const resolved = resolve(theme) applyToDocument(resolved) diff --git a/2_frontend/src/shared/theme/derive.ts b/2_frontend/src/shared/theme/derive.ts index 5a49f54..0f56c84 100644 --- a/2_frontend/src/shared/theme/derive.ts +++ b/2_frontend/src/shared/theme/derive.ts @@ -83,8 +83,8 @@ export type DerivedTokens = { // 의미색 — 모든 테마 공통 const DESTRUCTIVE = "oklch(0.577 0.245 27.325)" -// 삼성향 — 삼성닷컴(sec) 공개 웹 2026-07 실측값. 검정 주색·흰 바탕·회색 면, 그림자 없음, 알약 버튼(20px). -// One UI 파랑(#0381fe)은 폰 앱용이라 안 씀. 링크만 #007aff. 폰트는 재배포 근거 없어 안 넣음. +// 삼성향 — 삼성닷컴(sec) 공개 웹 2026-07 실측값(흰 바탕·검정 글씨·회색 면, 그림자 없음, 알약 20px)에 +// 포인트로 Samsung Blue #1428A0(브랜드 로고 색) — 버튼·링·활성 표시. One UI 파랑(#0381fe)은 폰 앱용이라 안 씀. const SAMSUNG_TOKENS: DerivedTokens = { background: "#FFFFFF", // canvas foreground: "#000000", @@ -92,7 +92,7 @@ const SAMSUNG_TOKENS: DerivedTokens = { cardForeground: "#000000", popover: "#FFFFFF", popoverForeground: "#000000", - primary: "#000000", // contained CTA + primary: "#1428A0", // Samsung Blue — 포인트 primaryForeground: "#FFFFFF", secondary: "#F7F7F7", // surface secondaryForeground: "#000000", @@ -103,15 +103,15 @@ const SAMSUNG_TOKENS: DerivedTokens = { destructive: DESTRUCTIVE, border: "#DDDDDD", input: "#DDDDDD", - ring: "#000000", + ring: "#1428A0", sidebar: "#F7F7F7", sidebarForeground: "#000000", - sidebarPrimary: "#000000", + sidebarPrimary: "#1428A0", sidebarPrimaryForeground: "#FFFFFF", sidebarAccent: "#EDEDED", sidebarAccentForeground: "#000000", sidebarBorder: "#DDDDDD", - sidebarRing: "#000000", + sidebarRing: "#1428A0", } // 기본 팔레트(id 는 하위호환으로 clean-blue 유지) — ABAP_OPENCODE DESIGN_SYSTEM.md §7 라이트 값. @@ -152,7 +152,7 @@ const FIXED_TOKENS: Record = { } // 팔레트별 추가 CSS — samsung 은 알약 radius(실측 20px) + 링크색 const EXTRA_CSS: Record = { - samsung: `[data-theme="samsung"]:not(.dark){--radius:20px;--link:#007aff}`, + samsung: `[data-theme="samsung"]:not(.dark){--radius:20px;--link:#1428A0}`, } export function derivePaletteTokens( diff --git a/2_frontend/src/shared/theme/palettes.ts b/2_frontend/src/shared/theme/palettes.ts index 0000b0b..9fa4934 100644 --- a/2_frontend/src/shared/theme/palettes.ts +++ b/2_frontend/src/shared/theme/palettes.ts @@ -12,7 +12,7 @@ export const PALETTES: RawPalette[] = [ { id: "samsung", // 고정 토큰(derive.ts SAMSUNG_TOKENS) — 삼성닷컴 공개 웹 실측값. 라이트 전용, 다크는 공통 name: "Samsung", - swatch: ["#FFFFFF", "#F7F7F7", "#000000", "#707070"], + swatch: ["#FFFFFF", "#F7F7F7", "#1428A0", "#000000"], }, { id: "clean-blue", // id 는 저장된 값 호환 위해 유지 — 실제 토큰은 derive.ts 워크스페이스(ABAP_OPENCODE) 값