import { Platform, StyleSheet } from "react-native"; import * as tokens from "./tokens"; export const asp = { debug: { borderColor: "red", borderWidth: 1, }, /* * Positioning */ fixed: { position: Platform.select({ web: "fixed", native: "absolute" }) as "absolute", }, absolute: { position: "absolute", }, relative: { position: "relative", }, static: { position: "static", }, inset_0: { top: 0, left: 0, right: 0, bottom: 0, }, top_0: { top: 0, }, right_0: { right: 0, }, bottom_0: { bottom: 0, }, left_0: { left: 0, }, z_10: { zIndex: 10, }, z_20: { zIndex: 20, }, z_30: { zIndex: 30, }, z_40: { zIndex: 40, }, z_50: { zIndex: 50, }, overflow_hidden: { overflow: "hidden", }, /* * Width & Height */ w_full: { width: "100%", }, h_full: { height: "100%", }, max_w_full: { maxWidth: "100%", }, max_h_full: { maxHeight: "100%", }, /* * Theme-independent bg colors */ bg_transparent: { backgroundColor: "transparent", }, /* * Border radius */ rounded_0: { borderRadius: 0, }, rounded_2xs: { borderRadius: tokens.borderRadius._2xs, }, rounded_xs: { borderRadius: tokens.borderRadius.xs, }, rounded_sm: { borderRadius: tokens.borderRadius.sm, }, rounded_md: { borderRadius: tokens.borderRadius.md, }, rounded_lg: { borderRadius: tokens.borderRadius.lg, }, rounded_full: { borderRadius: tokens.borderRadius.full, }, /* * Flex */ gap_0: { gap: 0, }, gap_2xs: { gap: tokens.space._2xs, }, gap_xs: { gap: tokens.space.xs, }, gap_sm: { gap: tokens.space.sm, }, gap_md: { gap: tokens.space.md, }, gap_lg: { gap: tokens.space.lg, }, gap_xl: { gap: tokens.space.xl, }, gap_2xl: { gap: tokens.space._2xl, }, gap_3xl: { gap: tokens.space._3xl, }, gap_4xl: { gap: tokens.space._4xl, }, gap_5xl: { gap: tokens.space._5xl, }, flex: { display: "flex", }, flex_col: { flexDirection: "column", }, flex_row: { flexDirection: "row", }, flex_col_reverse: { flexDirection: "column-reverse", }, flex_row_reverse: { flexDirection: "row-reverse", }, flex_wrap: { flexWrap: "wrap", }, flex_nowrap: { flexWrap: "nowrap", }, flex_0: { flex: 0, }, flex_1: { flex: 1, }, flex_grow: { flexGrow: 1, }, flex_grow_0: { flexGrow: 0, }, flex_shrink: { flexShrink: 1, }, flex_shrink_0: { flexShrink: 0, }, justify_start: { justifyContent: "flex-start", }, justify_center: { justifyContent: "center", }, justify_between: { justifyContent: "space-between", }, justify_around: { justifyContent: "space-around", }, justify_end: { justifyContent: "flex-end", }, align_center: { alignItems: "center", }, align_start: { alignItems: "flex-start", }, align_end: { alignItems: "flex-end", }, align_baseline: { alignItems: "baseline", }, align_stretch: { alignItems: "stretch", }, self_auto: { alignSelf: "auto", }, self_start: { alignSelf: "flex-start", }, self_end: { alignSelf: "flex-end", }, self_center: { alignSelf: "center", }, self_stretch: { alignSelf: "stretch", }, self_baseline: { alignSelf: "baseline", }, /* * Text */ text_left: { textAlign: "left", }, text_center: { textAlign: "center", }, text_right: { textAlign: "right", }, text_2xs: { fontSize: tokens.fontSize._2xs, letterSpacing: tokens.TRACKING, }, text_xs: { fontSize: tokens.fontSize.xs, letterSpacing: tokens.TRACKING, }, text_sm: { fontSize: tokens.fontSize.sm, letterSpacing: tokens.TRACKING, }, text_md: { fontSize: tokens.fontSize.md, letterSpacing: tokens.TRACKING, }, text_lg: { fontSize: tokens.fontSize.lg, letterSpacing: tokens.TRACKING, }, text_xl: { fontSize: tokens.fontSize.xl, letterSpacing: tokens.TRACKING, }, text_2xl: { fontSize: tokens.fontSize._2xl, letterSpacing: tokens.TRACKING, }, text_3xl: { fontSize: tokens.fontSize._3xl, letterSpacing: tokens.TRACKING, }, text_4xl: { fontSize: tokens.fontSize._4xl, letterSpacing: tokens.TRACKING, }, text_5xl: { fontSize: tokens.fontSize._5xl, letterSpacing: tokens.TRACKING, }, leading_tight: { lineHeight: 1.15, }, leading_snug: { lineHeight: 1.3, }, leading_normal: { lineHeight: 1.5, }, tracking_normal: { letterSpacing: tokens.TRACKING, }, font_normal: { fontWeight: tokens.fontWeight.normal, }, font_bold: { fontWeight: tokens.fontWeight.bold, }, font_heavy: { fontWeight: tokens.fontWeight.black, }, italic: { fontStyle: "italic", }, /* * Border */ border_0: { borderWidth: 0, }, border_t_0: { borderTopWidth: 0, }, border_b_0: { borderBottomWidth: 0, }, border_l_0: { borderLeftWidth: 0, }, border_r_0: { borderRightWidth: 0, }, border: { borderWidth: StyleSheet.hairlineWidth, }, border_t: { borderTopWidth: StyleSheet.hairlineWidth, }, border_b: { borderBottomWidth: StyleSheet.hairlineWidth, }, border_l: { borderLeftWidth: StyleSheet.hairlineWidth, }, border_r: { borderRightWidth: StyleSheet.hairlineWidth, }, border_transparent: { borderColor: "transparent", }, /* * Shadow */ shadow_sm: { shadowRadius: 8, shadowOpacity: 0.1, elevation: 8, }, shadow_md: { shadowRadius: 16, shadowOpacity: 0.1, elevation: 16, }, shadow_lg: { shadowRadius: 32, shadowOpacity: 0.1, elevation: 24, }, shadow_elevated: { shadowColor: "black", shadowOpacity: 0.25, shadowOffset: { width: 0, height: 3 }, shadowRadius: 3.84, elevation: 5, }, /* * Padding */ p_0: { padding: 0, }, p_2xs: { padding: tokens.space._2xs, }, p_xs: { padding: tokens.space.xs, }, p_sm: { padding: tokens.space.sm, }, p_md: { padding: tokens.space.md, }, p_lg: { padding: tokens.space.lg, }, p_xl: { padding: tokens.space.xl, }, p_2xl: { padding: tokens.space._2xl, }, p_3xl: { padding: tokens.space._3xl, }, p_4xl: { padding: tokens.space._4xl, }, p_5xl: { padding: tokens.space._5xl, }, px_0: { paddingLeft: 0, paddingRight: 0, }, px_2xs: { paddingLeft: tokens.space._2xs, paddingRight: tokens.space._2xs, }, px_xs: { paddingLeft: tokens.space.xs, paddingRight: tokens.space.xs, }, px_sm: { paddingLeft: tokens.space.sm, paddingRight: tokens.space.sm, }, px_md: { paddingLeft: tokens.space.md, paddingRight: tokens.space.md, }, px_lg: { paddingLeft: tokens.space.lg, paddingRight: tokens.space.lg, }, px_xl: { paddingLeft: tokens.space.xl, paddingRight: tokens.space.xl, }, px_2xl: { paddingLeft: tokens.space._2xl, paddingRight: tokens.space._2xl, }, px_3xl: { paddingLeft: tokens.space._3xl, paddingRight: tokens.space._3xl, }, px_4xl: { paddingLeft: tokens.space._4xl, paddingRight: tokens.space._4xl, }, px_5xl: { paddingLeft: tokens.space._5xl, paddingRight: tokens.space._5xl, }, py_0: { paddingTop: 0, paddingBottom: 0, }, py_2xs: { paddingTop: tokens.space._2xs, paddingBottom: tokens.space._2xs, }, py_xs: { paddingTop: tokens.space.xs, paddingBottom: tokens.space.xs, }, py_sm: { paddingTop: tokens.space.sm, paddingBottom: tokens.space.sm, }, py_md: { paddingTop: tokens.space.md, paddingBottom: tokens.space.md, }, py_lg: { paddingTop: tokens.space.lg, paddingBottom: tokens.space.lg, }, py_xl: { paddingTop: tokens.space.xl, paddingBottom: tokens.space.xl, }, py_2xl: { paddingTop: tokens.space._2xl, paddingBottom: tokens.space._2xl, }, py_3xl: { paddingTop: tokens.space._3xl, paddingBottom: tokens.space._3xl, }, py_4xl: { paddingTop: tokens.space._4xl, paddingBottom: tokens.space._4xl, }, py_5xl: { paddingTop: tokens.space._5xl, paddingBottom: tokens.space._5xl, }, pt_0: { paddingTop: 0, }, pt_2xs: { paddingTop: tokens.space._2xs, }, pt_xs: { paddingTop: tokens.space.xs, }, pt_sm: { paddingTop: tokens.space.sm, }, pt_md: { paddingTop: tokens.space.md, }, pt_lg: { paddingTop: tokens.space.lg, }, pt_xl: { paddingTop: tokens.space.xl, }, pt_2xl: { paddingTop: tokens.space._2xl, }, pt_3xl: { paddingTop: tokens.space._3xl, }, pt_4xl: { paddingTop: tokens.space._4xl, }, pt_5xl: { paddingTop: tokens.space._5xl, }, pb_0: { paddingBottom: 0, }, pb_2xs: { paddingBottom: tokens.space._2xs, }, pb_xs: { paddingBottom: tokens.space.xs, }, pb_sm: { paddingBottom: tokens.space.sm, }, pb_md: { paddingBottom: tokens.space.md, }, pb_lg: { paddingBottom: tokens.space.lg, }, pb_xl: { paddingBottom: tokens.space.xl, }, pb_2xl: { paddingBottom: tokens.space._2xl, }, pb_3xl: { paddingBottom: tokens.space._3xl, }, pb_4xl: { paddingBottom: tokens.space._4xl, }, pb_5xl: { paddingBottom: tokens.space._5xl, }, pl_0: { paddingLeft: 0, }, pl_2xs: { paddingLeft: tokens.space._2xs, }, pl_xs: { paddingLeft: tokens.space.xs, }, pl_sm: { paddingLeft: tokens.space.sm, }, pl_md: { paddingLeft: tokens.space.md, }, pl_lg: { paddingLeft: tokens.space.lg, }, pl_xl: { paddingLeft: tokens.space.xl, }, pl_2xl: { paddingLeft: tokens.space._2xl, }, pl_3xl: { paddingLeft: tokens.space._3xl, }, pl_4xl: { paddingLeft: tokens.space._4xl, }, pl_5xl: { paddingLeft: tokens.space._5xl, }, pr_0: { paddingRight: 0, }, pr_2xs: { paddingRight: tokens.space._2xs, }, pr_xs: { paddingRight: tokens.space.xs, }, pr_sm: { paddingRight: tokens.space.sm, }, pr_md: { paddingRight: tokens.space.md, }, pr_lg: { paddingRight: tokens.space.lg, }, pr_xl: { paddingRight: tokens.space.xl, }, pr_2xl: { paddingRight: tokens.space._2xl, }, pr_3xl: { paddingRight: tokens.space._3xl, }, pr_4xl: { paddingRight: tokens.space._4xl, }, pr_5xl: { paddingRight: tokens.space._5xl, }, /* * Margin */ m_0: { margin: 0, }, m_2xs: { margin: tokens.space._2xs, }, m_xs: { margin: tokens.space.xs, }, m_sm: { margin: tokens.space.sm, }, m_md: { margin: tokens.space.md, }, m_lg: { margin: tokens.space.lg, }, m_xl: { margin: tokens.space.xl, }, m_2xl: { margin: tokens.space._2xl, }, m_3xl: { margin: tokens.space._3xl, }, m_4xl: { margin: tokens.space._4xl, }, m_5xl: { margin: tokens.space._5xl, }, m_auto: { margin: "auto", }, mx_0: { marginLeft: 0, marginRight: 0, }, mx_2xs: { marginLeft: tokens.space._2xs, marginRight: tokens.space._2xs, }, mx_xs: { marginLeft: tokens.space.xs, marginRight: tokens.space.xs, }, mx_sm: { marginLeft: tokens.space.sm, marginRight: tokens.space.sm, }, mx_md: { marginLeft: tokens.space.md, marginRight: tokens.space.md, }, mx_lg: { marginLeft: tokens.space.lg, marginRight: tokens.space.lg, }, mx_xl: { marginLeft: tokens.space.xl, marginRight: tokens.space.xl, }, mx_2xl: { marginLeft: tokens.space._2xl, marginRight: tokens.space._2xl, }, mx_3xl: { marginLeft: tokens.space._3xl, marginRight: tokens.space._3xl, }, mx_4xl: { marginLeft: tokens.space._4xl, marginRight: tokens.space._4xl, }, mx_5xl: { marginLeft: tokens.space._5xl, marginRight: tokens.space._5xl, }, mx_auto: { marginLeft: "auto", marginRight: "auto", }, my_0: { marginTop: 0, marginBottom: 0, }, my_2xs: { marginTop: tokens.space._2xs, marginBottom: tokens.space._2xs, }, my_xs: { marginTop: tokens.space.xs, marginBottom: tokens.space.xs, }, my_sm: { marginTop: tokens.space.sm, marginBottom: tokens.space.sm, }, my_md: { marginTop: tokens.space.md, marginBottom: tokens.space.md, }, my_lg: { marginTop: tokens.space.lg, marginBottom: tokens.space.lg, }, my_xl: { marginTop: tokens.space.xl, marginBottom: tokens.space.xl, }, my_2xl: { marginTop: tokens.space._2xl, marginBottom: tokens.space._2xl, }, my_3xl: { marginTop: tokens.space._3xl, marginBottom: tokens.space._3xl, }, my_4xl: { marginTop: tokens.space._4xl, marginBottom: tokens.space._4xl, }, my_5xl: { marginTop: tokens.space._5xl, marginBottom: tokens.space._5xl, }, my_auto: { marginTop: "auto", marginBottom: "auto", }, mt_0: { marginTop: 0, }, mt_2xs: { marginTop: tokens.space._2xs, }, mt_xs: { marginTop: tokens.space.xs, }, mt_sm: { marginTop: tokens.space.sm, }, mt_md: { marginTop: tokens.space.md, }, mt_lg: { marginTop: tokens.space.lg, }, mt_xl: { marginTop: tokens.space.xl, }, mt_2xl: { marginTop: tokens.space._2xl, }, mt_3xl: { marginTop: tokens.space._3xl, }, mt_4xl: { marginTop: tokens.space._4xl, }, mt_5xl: { marginTop: tokens.space._5xl, }, mt_auto: { marginTop: "auto", }, mb_0: { marginBottom: 0, }, mb_2xs: { marginBottom: tokens.space._2xs, }, mb_xs: { marginBottom: tokens.space.xs, }, mb_sm: { marginBottom: tokens.space.sm, }, mb_md: { marginBottom: tokens.space.md, }, mb_lg: { marginBottom: tokens.space.lg, }, mb_xl: { marginBottom: tokens.space.xl, }, mb_2xl: { marginBottom: tokens.space._2xl, }, mb_3xl: { marginBottom: tokens.space._3xl, }, mb_4xl: { marginBottom: tokens.space._4xl, }, mb_5xl: { marginBottom: tokens.space._5xl, }, mb_auto: { marginBottom: "auto", }, ml_0: { marginLeft: 0, }, ml_2xs: { marginLeft: tokens.space._2xs, }, ml_xs: { marginLeft: tokens.space.xs, }, ml_sm: { marginLeft: tokens.space.sm, }, ml_md: { marginLeft: tokens.space.md, }, ml_lg: { marginLeft: tokens.space.lg, }, ml_xl: { marginLeft: tokens.space.xl, }, ml_2xl: { marginLeft: tokens.space._2xl, }, ml_3xl: { marginLeft: tokens.space._3xl, }, ml_4xl: { marginLeft: tokens.space._4xl, }, ml_5xl: { marginLeft: tokens.space._5xl, }, ml_auto: { marginLeft: "auto", }, mr_0: { marginRight: 0, }, mr_2xs: { marginRight: tokens.space._2xs, }, mr_xs: { marginRight: tokens.space.xs, }, mr_sm: { marginRight: tokens.space.sm, }, mr_md: { marginRight: tokens.space.md, }, mr_lg: { marginRight: tokens.space.lg, }, mr_xl: { marginRight: tokens.space.xl, }, mr_2xl: { marginRight: tokens.space._2xl, }, mr_3xl: { marginRight: tokens.space._3xl, }, mr_4xl: { marginRight: tokens.space._4xl, }, mr_5xl: { marginRight: tokens.space._5xl, }, mr_auto: { marginRight: "auto", }, /* * Pointer events & user select */ pointer_events_none: { pointerEvents: "none", }, pointer_events_auto: { pointerEvents: "auto", }, user_select_none: { userSelect: "none", }, user_select_text: { userSelect: "text", }, user_select_all: { userSelect: "all", }, outline_inset_1: { outlineOffset: -1, }, /* * Text decoration */ underline: { textDecorationLine: "underline", }, strike_through: { textDecorationLine: "line-through", }, /* * Display */ hidden: { display: "none", }, } as const;