Text
Properties
Text
Name | Type | Default | Description |
---|---|---|---|
size | BodyTextSize | Text size | |
bold | boolean | Bold |
Text.Title
Name | Type | Default | Description |
---|---|---|---|
size | TitleTextSize | Text size |
Text.Header
Name | Type | Default | Description |
---|---|---|---|
size | HeaderTextSize | Text size |
Type
BodyTextSize
Name | Description |
---|---|
"xLarge" | Size xLarge |
"large" | Size large |
"normal" | Size normal |
"small" | Size small |
"xSmall" | Size xSmall |
"xxSmall" | Size xxSmall |
"xxxSmall" | Size xxxSmall |
"xxxxSmall" | Size xxxxSmall |
TitleTextSize
Name | Description |
---|---|
"xLarge" | Size xLarge |
"large" | Size large |
"normal" | Size normal |
"small" | Size small |
HeaderTextSize
Name | Description |
---|---|
"normal" | Size normal |
"small" | Size small |
Example
import React from 'react'; import { Page, Text, List, Box } from 'zmp-ui'; function TextSize({ size, lineHeight }) { return ( <Box flex flexDirection='row' className='text-size-info'> <Box> <Text size='small'> Size: {size} </Text> </Box> <Box ml={6}> <Text size='small'> Line height: {lineHeight} </Text> </Box> </Box> ); } const { Item } = List; const data = { Header: ['normal', 'small'], Title: ['xLarge', 'large', 'normal', 'small'], Body: [ 'xLarge', 'large', 'normal', 'small', 'xSmall', 'xxSmall', 'xxxSmall', 'xxxxSmall' ] }; const textStyles = { Header: { normal: { size: 16, lineHeight: 22 }, small: { size: 15, lineHeight: 20 } }, Title: { xLarge: { size: 22, lineHeight: 26 }, large: { size: 20, lineHeight: 26 }, normal: { size: 18, lineHeight: 24 }, small: { size: 15, lineHeight: 20 } }, Body: { xLarge: { size: 18, lineHeight: 24 }, large: { size: 16, lineHeight: 22 }, normal: { size: 15, lineHeight: 20 }, small: { size: 14, lineHeight: 18 }, xSmall: { size: 13, lineHeight: 18 }, xxSmall: { size: 12, lineHeight: 16 }, xxxSmall: { size: 11, lineHeight: 16 }, xxxxSmall: { size: 10, lineHeight: 14 } } }; export default function HomePage(props) { const { title } = props; return ( <> {Object.keys(data).map((key) => ( <Page key={key} className='section-container p-0'> <Box p={4}> <Text.Header>{key} Text</Text.Header> </Box> <List> {data[key].map((size) => { if (key === 'Header') { return ( <Item key={`${key}-${size}`} className='mb-0'> <Text bold size='small' className='text-style'> {size} </Text> <Box mt={2}> <Text.Header size={size}> Bầu trời trong xanh thăm thẳm, không một gợn mây </Text.Header> </Box> <Box> <TextSize // eslint-disable-next-line react/jsx-props-no-spreading {...textStyles.Header[size]} /> </Box> </Item> ); } if (key === 'Title') { return ( <Item key={`${key}-${size}`} className='mb-0'> <Text bold size='small' className='text-style'> {size} </Text> <Box mt={2}> <Text.Title size={size}> Bầu trời trong xanh thăm thẳm, không một gợn mây </Text.Title> </Box> <Box> <TextSize // eslint-disable-next-line react/jsx-props-no-spreading {...textStyles.Title[size]} /> </Box> </Item> ); } return ( <Item key={`${key}-${size}`} className='mb-0'> <Box> <Text bold size='small' className='text-style'> {size} </Text> </Box> <Box mt={2}> <Text size={size}> Bầu trời trong xanh thăm thẳm, không một gợn mây </Text> </Box> <Box mt={6}> <Text size='small' bold className='text-style'> {size} M </Text> </Box> <Box mt={2}> <Text bold size={size}> Bầu trời trong xanh thăm thẳm, không một gợn mây </Text> </Box> <Box mt={2}> <TextSize // eslint-disable-next-line react/jsx-props-no-spreading {...textStyles.Body[size]} /> </Box> </Item> ); })} </List> </Page> ))} </> ); }