Something went wrong. Try again.
Bluesky app fork with some witchin' additions 💫 forked from jollywhoppers.com/witchsky.app
Something went wrong. Try again.
2.1 kB · 107 lines
TSX
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108import {type ReactNode} from 'react'import {View} from 'react-native'
import { atoms as a, flatten, type TextStyleProp, useAlf, useTheme, type ViewStyleProp,} from '#/alf'import {normalizeTextStyles} from '#/alf/typography'
type SkeletonProps = { blend?: boolean}
export function Text({blend, style}: TextStyleProp & SkeletonProps) { const {fonts, flags, theme: t} = useAlf() const {width, ...flattened} = flatten(style) const {lineHeight = 14, ...rest} = normalizeTextStyles( [a.text_sm, a.leading_snug, flattened], { fontScale: fonts.scaleMultiplier, fontFamily: fonts.family, flags, }, ) return ( <View style={[a.flex_1, {maxWidth: width, paddingVertical: lineHeight * 0.15}]}> <View style={[ a.rounded_md, t.atoms.bg_contrast_50, { height: lineHeight * 0.7, opacity: blend ? 0.6 : 1, }, rest, ]} /> </View> )}
export function Circle({ children, size, blend, style,}: ViewStyleProp & {children?: ReactNode; size: number} & SkeletonProps) { const t = useTheme() return ( <View style={[ a.justify_center, a.align_center, a.rounded_full, t.atoms.bg_contrast_50, { width: size, height: size, opacity: blend ? 0.6 : 1, }, style, ]}> {children} </View> )}
export function Pill({ size, blend, style,}: ViewStyleProp & {size: number} & SkeletonProps) { const t = useTheme() return ( <View style={[ a.rounded_full, t.atoms.bg_contrast_50, { width: size * 1.618, height: size, opacity: blend ? 0.6 : 1, }, style, ]} /> )}
export function Col({ children, style,}: ViewStyleProp & {children?: React.ReactNode}) { return <View style={[a.flex_1, style]}>{children}</View>}
export function Row({ children, style,}: ViewStyleProp & {children?: React.ReactNode}) { return <View style={[a.flex_row, style]}>{children}</View>}