diff --git a/frontend/src/components/home/relation-force-map.tsx b/frontend/src/components/home/relation-force-map.tsx index 0d643de..131d3f5 100644 --- a/frontend/src/components/home/relation-force-map.tsx +++ b/frontend/src/components/home/relation-force-map.tsx @@ -289,12 +289,12 @@ export function RelationForceMap({ }} >
event.stopPropagation()} >
-
+
{categories.map((category) => ( setActiveGraphIndex(index)} aria-label={`그래프 ${index + 1}`} > + {/* 비활성 도트 bg-zinc-300/700은 전용 토큰 나오기 전까지 손튜닝 값으로 둔다 */} @@ -421,11 +423,11 @@ function OrbitGraph({ <>
-
+
{`${me.name} { const target = event.currentTarget if (target.dataset.fallback === '1') return @@ -441,7 +443,7 @@ function OrbitGraph({
{me.name} @@ -511,7 +513,8 @@ function CategoryClusterGraph({ + {/* flow-path stroke는 모드별 알파를 손으로 맞춘 값이라 전용 토큰 나오기 전까지 유지한다 */} + {/* 궤도선 stroke-stone은 따뜻한 색감으로 손튜닝한 값이라 무채색 토큰으로 치환하지 않는다 */} {displayName} ) : null} {showLastMeet && person.intimacy.daysSinceLastMeet != null ? ( - + {formatDaysSinceLastMeet(person.intimacy.daysSinceLastMeet)} ) : null} diff --git a/frontend/src/components/timeline/timeline-event-card.tsx b/frontend/src/components/timeline/timeline-event-card.tsx index 1cc97f2..764ef9d 100644 --- a/frontend/src/components/timeline/timeline-event-card.tsx +++ b/frontend/src/components/timeline/timeline-event-card.tsx @@ -100,7 +100,7 @@ export function TimelineEventCard({ onClick={() => onSelect(item.id)} className="block min-w-0 flex-1 text-left" > - +

({ return (
-
+
{month} {day}
diff --git a/frontend/src/stackflow/tabs/home-tab.tsx b/frontend/src/stackflow/tabs/home-tab.tsx index 43507ea..0158cf1 100644 --- a/frontend/src/stackflow/tabs/home-tab.tsx +++ b/frontend/src/stackflow/tabs/home-tab.tsx @@ -106,7 +106,7 @@ export function HomeTab() { if (throwbackExiting) setThrowbackDismissed(true) }} > - +
diff --git a/frontend/src/styles.css b/frontend/src/styles.css index 3c08daa..9f87569 100644 --- a/frontend/src/styles.css +++ b/frontend/src/styles.css @@ -42,6 +42,11 @@ --border: oklch(0.922 0 0); --input: oklch(0.922 0 0); --ring: oklch(0.708 0 0); + /* elevation 단계 토큰, 라이트/다크 각각 정의해 dark:shadow 중복을 없앤다. */ + --elevation-1: 0 4px 12px rgba(24, 24, 27, 0.07); + --elevation-2: 0 8px 18px rgba(24, 24, 27, 0.06); + --elevation-3: 0 10px 24px rgba(24, 24, 27, 0.08); + --elevation-4: 0 18px 42px rgba(24, 24, 27, 0.12); --font-sans: 'Pretendard', ui-sans-serif, system-ui, sans-serif; } @@ -65,6 +70,10 @@ --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 15%); --ring: oklch(0.556 0 0); + --elevation-1: 0 4px 12px rgba(0, 0, 0, 0.3); + --elevation-2: 0 8px 18px rgba(0, 0, 0, 0.26); + --elevation-3: 0 10px 24px rgba(0, 0, 0, 0.32); + --elevation-4: 0 18px 42px rgba(0, 0, 0, 0.38); } @theme inline { @@ -90,6 +99,10 @@ --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); + --shadow-e1: var(--elevation-1); + --shadow-e2: var(--elevation-2); + --shadow-e3: var(--elevation-3); + --shadow-e4: var(--elevation-4); --font-sans: var(--font-sans); --font-hand: 'Onglip Eunbyeol', var(--font-sans); /* 앱 고유 타이포 스케일. font-size만 지정해 기존 text-[Npx] 임의값과 렌더가 동일하다