Typography
ZS-ui는 React Native 스타일링에서 일관된 타이포그래피를 적용할 수 있도록 useTheme에서 typography를 제공합니다. 이를 통해 ZS-ui 컴포넌트 외부에서도 동일한 타이포그래피 스타일을 사용할 수 있습니다.
기본 사용법
import { useTheme } from '@0610studio/zs-ui';
import { Text } from 'react-native';
function MyComponent() {
const { typography } = useTheme();
return (
<Text style={typography.heading[1]}>제목</Text>
<Text style={typography.body[2]}>본문</Text>
);
}
Typography 구조
타이포그래피는 다음과 같은 구조로 구성됩니다:
heading: 제목 스타일 (1~6)title: 페이지/섹션 제목 스타일 (1~6)subTitle: 부제목 스타일 (1~6)label: 레이블 스타일 (1~6)body: 본문 스타일 (1~6)caption: 작은 텍스트 스타일 (1~6)
사용 예제
Heading
const { typography } = useTheme();
<Text style={typography.heading[1]}>Heading 1</Text>
<Text style={typography.heading[2]}>Heading 2</Text>
<Text style={typography.heading[3]}>Heading 3</Text>
Title
<Text style={typography.title[1]}>Title 1</Text>
<Text style={typography.title[2]}>Title 2</Text>
Body
<Text style={typography.body[1]}>Body 1</Text>
<Text style={typography.body[2]}>Body 2</Text>
Label
<Text style={typography.label[1]}>Label 1</Text>
<Text style={typography.label[2]}>Label 2</Text>
Caption
<Text style={typography.caption[1]}>Caption 1</Text>
<Text style={typography.caption[2]}>Caption 2</Text>
폰트 설정
ThemeFonts
ThemeProvider에서 폰트를 설정할 수 있습니 다:
const themeFonts = {
100: 'Pretendard-Thin',
200: 'Pretendard-ExtraLight',
300: 'Pretendard-Light',
400: 'Pretendard-Regular',
500: 'Pretendard-Medium',
600: 'Pretendard-SemiBold',
700: 'Pretendard-Bold',
800: 'Pretendard-ExtraBold',
900: 'Pretendard-Black',
};
<ThemeProvider themeFonts={themeFonts}>
{/* 앱 내용 */}
</ThemeProvider>
폰트 접근
const { typography } = useTheme();
// 폰트 정보 접근
const fontFamily = typography.themeFonts?.[400]; // 'Pretendard-Regular'