import { createStyle } from '@gluestack-style/react';
import { H1, H2, H3, H4, H5, H6 } from '@expo/html-elements';
export const Heading = createStyle({
color: '$textLight900',
letterSpacing: '$sm',
fontWeight: '$bold',
fontFamily: '$heading',
// Overrides expo-html default styling
marginVertical: 0,
_dark: {
color: '$textDark50',
},
variants: {
isTruncated: {
true: {
props: {
// @ts-ignore
numberOfLines: 1,
ellipsizeMode: 'tail',
},
},
},
bold: {
true: {
fontWeight: '$bold',
},
},
underline: {
true: {
textDecorationLine: 'underline',
},
},
strikeThrough: {
true: {
textDecorationLine: 'line-through',
},
},
sub: {
true: {
fontSize: '$xs',
lineHeight: '$xs',
},
},
italic: {
true: {
fontStyle: 'italic',
},
},
highlight: {
true: {
bg: '$yellow500',
},
},
size: {
'5xl': {
//@ts-ignore
props: { as: H1 },
fontSize: '$6xl',
lineHeight: '$7xl',
},
'4xl': {
//@ts-ignore
props: { as: H1 },
fontSize: '$5xl',
lineHeight: '$6xl',
},
'3xl': {
//@ts-ignore
props: { as: H1 },
fontSize: '$4xl',
lineHeight: '$5xl',
},
'2xl': {
//@ts-ignore
props: { as: H2 },
fontSize: '$3xl',
lineHeight: '$3xl',
},
'xl': {
//@ts-ignore
props: { as: H3 },
fontSize: '$2xl',
lineHeight: '$3xl',
},
'lg': {
//@ts-ignore
props: { as: H4 },
fontSize: '$xl',
lineHeight: '$2xl',
},
'md': {
//@ts-ignore
props: { as: H5 },
fontSize: '$lg',
lineHeight: '$lg',
},
'sm': {
//@ts-ignore
props: { as: H6 },
fontSize: '$md',
lineHeight: '$lg',
},
'xs': {
//@ts-ignore
props: { as: H6 },
fontSize: '$sm',
lineHeight: '$xs',
},
},
},
defaultProps: {
size: 'lg',
},
});