List
Styled list items for settings, menus, and navigation.
Account SettingsManage your account preferences
NotificationsConfigure push notifications
PrivacyControl your privacy settings
import { List, ListItem, ListItemTitle, ListItemDescription } from "@/components/ui/list";
export function MyScreen() {
return (
<List>
<ListItem>
<View>
<ListItemTitle>Account Settings</ListItemTitle>
<ListItemDescription>Manage your account preferences</ListItemDescription>
</View>
</ListItem>
<ListItem>
<View>
<ListItemTitle>Notifications</ListItemTitle>
<ListItemDescription>Configure push notifications</ListItemDescription>
</View>
</ListItem>
</List>
);
}Installation
npx @aniui/cli add listUsage
app/index.tsx
import { List, ListItem, ListItemTitle, ListItemDescription } from "@/components/ui/list";
export function MyScreen() {
return (
<List>
<ListItem>
<View>
<ListItemTitle>Account Settings</ListItemTitle>
<ListItemDescription>Manage your account preferences</ListItemDescription>
</View>
</ListItem>
<ListItem>
<View>
<ListItemTitle>Notifications</ListItemTitle>
<ListItemDescription>Configure push notifications</ListItemDescription>
</View>
</ListItem>
</List>
);
}Compound Components
ComponentDescription
ListRoot container for list items
ListItemPressable row with border separator
ListItemTitlePrimary text label
ListItemDescriptionSecondary description text
Props
PropTypeDefault
classNamestring—childrenReact.ReactNode—ListItem accepts all Pressable props. Title and Description accept all Text props.
Source
components/ui/list.tsx
import React from "react";
import { View, Text, Pressable } from "react-native";
import { cn } from "@/lib/utils";
export interface ListProps extends React.ComponentPropsWithoutRef<typeof View> {
className?: string;
children?: React.ReactNode;
}
export function List({ className, ...props }: ListProps) {
return <View className={cn("", className)} {...props} />;
}
export interface ListItemProps extends React.ComponentPropsWithoutRef<typeof Pressable> {
className?: string;
children?: React.ReactNode;
}
export function ListItem({ className, ...props }: ListItemProps) {
return (
<Pressable
className={cn("flex-row items-center px-4 py-3 min-h-12 border-b border-border", className)}
accessible={true}
{...props}
/>
);
}
export interface ListItemTitleProps extends React.ComponentPropsWithoutRef<typeof Text> {
className?: string;
}
export function ListItemTitle({ className, ...props }: ListItemTitleProps) {
return <Text className={cn("text-base font-medium text-foreground", className)} {...props} />;
}
export interface ListItemDescriptionProps extends React.ComponentPropsWithoutRef<typeof Text> {
className?: string;
}
export function ListItemDescription({ className, ...props }: ListItemDescriptionProps) {
return <Text className={cn("text-sm text-muted-foreground", className)} {...props} />;
}