style(frontend): taste-skill 반영 — 오프블랙 글씨, 버튼 알약/카드 10px 분리, 눌림 피드백

- .agents/skills: Leonxlnx/taste-skill 3개 설치(랜딩용이라 채팅 앱엔 일부만 적용)
- samsung 팔레트: foreground #000→#111. 전역 --radius 20 을 10 으로 내리고 --radius-pill 로 버튼만 알약
- Button: rounded-[var(--radius-pill,var(--radius-md))], active:scale-[0.98]

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
lee-hyeon-cheol
2026-09-21 15:21:32 +09:00
co-authored by Claude Fable 5.1
parent 55e3163695
commit 458a828409
17 changed files with 6806 additions and 12 deletions
+9 -9
View File
@@ -87,29 +87,29 @@ const DESTRUCTIVE = "oklch(0.577 0.245 27.325)"
// 포인트로 Samsung Blue #1428A0(브랜드 로고 색) — 버튼·링·활성 표시. One UI 파랑(#0381fe)은 폰 앱용이라 안 씀.
const SAMSUNG_TOKENS: DerivedTokens = {
background: "#FFFFFF", // canvas
foreground: "#000000",
foreground: "#111111", // 순검정 대신 오프블랙 — 긴 글 읽을 때 눈 편함
card: "#FFFFFF",
cardForeground: "#000000",
cardForeground: "#111111",
popover: "#FFFFFF",
popoverForeground: "#000000",
popoverForeground: "#111111",
primary: "#1428A0", // Samsung Blue — 포인트
primaryForeground: "#FFFFFF",
secondary: "#F7F7F7", // surface
secondaryForeground: "#000000",
secondaryForeground: "#111111",
muted: "#F7F7F7",
mutedForeground: "#707070",
accent: "#EDEDED", // hover — surface 보다 한 단계
accentForeground: "#000000",
accentForeground: "#111111",
destructive: DESTRUCTIVE,
border: "#DDDDDD",
input: "#DDDDDD",
ring: "#1428A0",
sidebar: "#F7F7F7",
sidebarForeground: "#000000",
sidebarForeground: "#111111",
sidebarPrimary: "#1428A0",
sidebarPrimaryForeground: "#FFFFFF",
sidebarAccent: "#EDEDED",
sidebarAccentForeground: "#000000",
sidebarAccentForeground: "#111111",
sidebarBorder: "#DDDDDD",
sidebarRing: "#1428A0",
}
@@ -150,9 +150,9 @@ const FIXED_TOKENS: Record<string, DerivedTokens> = {
"clean-blue": CLEAN_BLUE_TOKENS,
samsung: SAMSUNG_TOKENS,
}
// 팔레트별 추가 CSS — samsung 은 알약 radius(실측 20px) + 링크색
// 팔레트별 추가 CSS — samsung: 카드·입력 10px, 버튼은 알약(--radius-pill, button.tsx 가 씀), 링크색
const EXTRA_CSS: Record<string, string> = {
samsung: `[data-theme="samsung"]:not(.dark){--radius:20px;--link:#1428A0}`,
samsung: `[data-theme="samsung"]:not(.dark){--radius:10px;--radius-pill:9999px;--link:#1428A0}`,
}
export function derivePaletteTokens(
+5 -3
View File
@@ -5,7 +5,9 @@ import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "@/lib/utils/cn"
const buttonVariants = cva(
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
// rounded-[var(--radius-pill,var(--radius-md))]: 팔레트가 --radius-pill 을 주면 알약, 아니면 기존 md.
// active:scale-[0.98]: 눌림 피드백(정적 hover 만 있으면 밋밋함).
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[var(--radius-pill,var(--radius-md))] text-sm font-medium ring-offset-background transition-[color,background-color,transform] active:scale-[0.98] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
{
variants: {
variant: {
@@ -18,8 +20,8 @@ const buttonVariants = cva(
},
size: {
default: "h-10 px-4 py-2",
sm: "h-9 rounded-md px-3",
lg: "h-11 rounded-md px-8",
sm: "h-9 px-3",
lg: "h-11 px-8",
icon: "h-10 w-10",
},
},