Card

Rating Card

Cards display related information for previews, while modals focus users on critical actions like confirmations. Together, they enhance clarity and streamline interactions.

AA

WCAG 2.1 accessibility compliant

Component Specs

1

1

1

Additional component / Image

2

2

2

Lucide Icon / Info

3

3

3

Overline

4

4

4

Heading / 5XL

5

5

5

Description

6

6

6

Badge

7

7

7

Rating

8

8

8

Button Group / Secondary / Primary

React Native



<Card
  accessible={true}
  accessibilityRole="article"
  accessibilityLabel="Product card for Nike Air Max 97"
  importantForAccessibility="yes"
>
  <CardHeader
    imageSource={require("../assets/air.png")}
    accessibilityLabel="Nike Air Max 97 sneakers image"
    accessibilityRole="image"
  >
    <CardOverline
      text="LIMITED EDITION"
      icon={<InfoIcon accessibilityElementsHidden={true} />}
      accessibilityLabel="Limited edition product"
      accessibilityRole="text"
    />
    <View className="flex-row items-center justify-between">
      <CardTitle
        style={styles.InterSemiBold}
        accessibilityRole="heading"
        accessibilityLevel={2}
        nativeID="product-title"
      >
        Nike Air Max 97
      </CardTitle>
      <Badge
        variant="success"
        accessibilityLabel="Sale status: On sale"
        accessibilityRole="text"
      >
        <Text>On sale</Text>
      </Badge>
    </View>
    <CardDescription
      style={styles.Inter}
      accessibilityRole="text"
      accessibilityLabel="Price: 100 dollars"
      nativeID="product-price"
    >
      $100.00
    </CardDescription>
  </CardHeader>
  <CardFooter className="flex-row justify-between mt-0">
    <View
      style={{ flex: 1, marginRight: 8 }}
      accessibilityElementsHidden={false}
      importantForAccessibility="no-hide-descendants"
    >
      <Button
        variant="secondary"
        textSize="md"
        className="w-full tracking-tighter"
        accessibilityRole="button"
        accessibilityLabel="Add to cart"
        accessibilityHint="Adds Nike Air Max 97 to your shopping cart"
        accessibilityState={{ disabled: false }}
      >
        Add to cart
      </Button>
    </View>
    <View
      style={{ flex: 1 }}
      accessibilityElementsHidden={false}
      importantForAccessibility="no-hide-descendants"
    >
      <Button
        variant="default"
        textSize="md"
        className="w-full tracking-tighter"
        accessibilityRole="button"
        accessibilityLabel="Purchase now"
        accessibilityHint="Proceeds directly to checkout with Nike Air Max 97"
        accessibilityState={{ disabled: false }}
      >
        Purchase
      </Button>
    </View>
  </CardFooter>
</Card>;

WCAG 2.1 accessibility checks

1.3.1 Info and Relationships (Level A)

1.4.3 Contrast (Minimum) (Level AA)

2.4.6 Headings and Labels (Level AA)

4.1.2 Name, Role, Value (Level A)

4.1.3 Status Messages (Level AA)

Mobile App Starter Kit

·

©

2025

All rights reserved, Studio Hola.

Mobile App Starter Kit

·

©

2025

All rights reserved, Studio Hola.

Mobile App Starter Kit

·

©

2025

All rights reserved, Studio Hola.