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 713ad48..6e3cb09 100644
Binary files a/2_frontend/public/favicon.png and b/2_frontend/public/favicon.png differ
diff --git a/2_frontend/src/assets/logo-dark.png b/2_frontend/src/assets/logo-dark.png
deleted file mode 100644
index a9ece4c..0000000
Binary files a/2_frontend/src/assets/logo-dark.png and /dev/null differ
diff --git a/2_frontend/src/assets/logo.png b/2_frontend/src/assets/logo.png
deleted file mode 100644
index 8eabb55..0000000
Binary files a/2_frontend/src/assets/logo.png and /dev/null differ
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 로고 제거, 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) 값