Skip to content

Message Status

Get Ritla UI

Under a sent message: the time and a status icon, from sending to read or not sent.

Preview

Mirrored is the same English content laid out right to left: it separates a mirroring bug from a translation one.

PreviewCode
EnglishMirroredArabic
LTR →

Installation

  1. Add the component

    npx ritla add message-status

    Also works with shadcn: npx shadcn@latest add @ritla/message-status

  2. Dependencies it brings

    @phosphor-icons/react

  3. Or copy by hand

    Installing by hand copies the component's source into your project. The source comes with a Ritla UI license, so the CLI is the short way to the same files.

Usage

message-status.tsx
import { MessageStatus } from "@/components/ui/message-status";<MessageStatus status="read" time="09:41" />

API reference

MessageStatus

PropTypeDefaultDescription
status"sending" | "sent" | "delivered" | "read" | "failed"NoneFigma's Status.
time / dateTimeReactNode / stringNoneFigma's Time and its machine value.
showLabelbooleanfalseFigma's Show label; without it the words stay for screen readers.
labelReactNodeNoneReplaces the built-in label.

Accessibility

ARIA

  • The state is always read as words, and never relies on colour alone: the icon's shape carries it.
  • The time is a <time> element.

Arabic and RTL notes

Mirrors

  • The order follows the line's direction.

Does not mirror

  • Checkmarks and the clock don't mirror.
Numerals
The time as the app passes it.
Arabic typography
label-12 Medium.