diff --git a/app/(tabs)/(folder)/[id].tsx b/app/(tabs)/(folder)/[id].tsx index f1ab934..41863c2 100644 --- a/app/(tabs)/(folder)/[id].tsx +++ b/app/(tabs)/(folder)/[id].tsx @@ -73,7 +73,12 @@ export default function FolderDetailScreen() { {/* 폴더명 + URL 추가 버튼 */} - {folderName} + + 현재 폴더 + + {folderName} + + - - 내 폴더 - - + } + /> {folders.length > 0 ? ( @@ -210,7 +211,7 @@ const styles = StyleSheet.create({ gap: 4, }, title: { - ...Typography.title, + ...Typography.pageTitle, color: Colors.brand.text, }, subtitle: { @@ -226,16 +227,6 @@ const styles = StyleSheet.create({ padding: 16, gap: 16, }, - canvasHeader: { - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'space-between', - }, - canvasTitle: { - ...Typography.title, - color: Colors.brand.text, - }, - grid: { flexDirection: 'row', flexWrap: 'wrap', diff --git a/app/(tabs)/(home)/index.tsx b/app/(tabs)/(home)/index.tsx index 0282262..1e74d9d 100644 --- a/app/(tabs)/(home)/index.tsx +++ b/app/(tabs)/(home)/index.tsx @@ -36,7 +36,7 @@ export default function HomeScreen() { LinClean @@ -129,7 +129,7 @@ const styles = StyleSheet.create({ gap: 6, }, brandText: { - ...Typography.title, + ...Typography.displayMedium, color: Colors.brand.primary, }, diff --git a/components/ui/section-header.tsx b/components/ui/section-header.tsx index a0a23f5..daabe63 100644 --- a/components/ui/section-header.tsx +++ b/components/ui/section-header.tsx @@ -1,3 +1,4 @@ +import type { ReactNode } from 'react'; import { StyleSheet, Text, TouchableOpacity, View } from 'react-native'; import { Colors, Typography } from '@/constants/theme'; @@ -5,17 +6,18 @@ interface SectionHeaderProps { label: string; onViewAll?: () => void; viewAllLabel?: string; + rightSlot?: ReactNode; } -export function SectionHeader({ label, onViewAll, viewAllLabel = '전체보기' }: SectionHeaderProps) { +export function SectionHeader({ label, onViewAll, viewAllLabel = '전체보기', rightSlot }: SectionHeaderProps) { return ( {label} - {onViewAll && ( + {rightSlot ?? (onViewAll && ( {viewAllLabel} - )} + ))} ); } @@ -27,7 +29,7 @@ const styles = StyleSheet.create({ alignItems: 'center', }, label: { - ...Typography.section, + ...Typography.sectionTitle, color: Colors.brand.text, }, viewAll: { diff --git a/components/ui/toast.tsx b/components/ui/toast.tsx index f6c8a05..b41b1b2 100644 --- a/components/ui/toast.tsx +++ b/components/ui/toast.tsx @@ -58,6 +58,7 @@ const styles = StyleSheet.create({ }, message: { ...Typography.summary, + lineHeight: 20, fontWeight: '700', color: Colors.brand.onPrimary, }, diff --git a/constants/theme.ts b/constants/theme.ts index f6c6fba..07c0dc9 100644 --- a/constants/theme.ts +++ b/constants/theme.ts @@ -134,7 +134,9 @@ export const Fonts = { // Font size tokens (from Figma Design System) const fontSizeDisplay = 32; const fontSizeDisplayMedium = 30; +const fontSizePageTitle = 24; const fontSizeTitle = 22; +const fontSizeSectionTitle = 20; const fontSizeSection = 18; const fontSizeProfile = 17; const fontSizeBody = 16; @@ -151,7 +153,9 @@ const fontWeightRegular = '400' as const; export const Typography = { display: { fontSize: fontSizeDisplay, fontWeight: fontWeightBold }, displayMedium: { fontSize: fontSizeDisplayMedium, fontWeight: fontWeightBold }, + pageTitle: { fontSize: fontSizePageTitle, fontWeight: fontWeightBold }, title: { fontSize: fontSizeTitle, fontWeight: fontWeightBold }, + sectionTitle: { fontSize: fontSizeSectionTitle, fontWeight: fontWeightBold }, section: { fontSize: fontSizeSection, fontWeight: fontWeightBold }, profile: { fontSize: fontSizeProfile, fontWeight: fontWeightBold }, body: { fontSize: fontSizeBody, fontWeight: fontWeightRegular },