PR card

The PR card displays a personal record achieved by the user at the end of a workout. Each card surfaces the exercise name, the new record value, and when a previous record exists, the former best as a struck through reference. Cards are purely informational and not interactive. Two types exist depending on the nature of the record: Max weight (a raw weight lifted) and Performance score (a value derived from the one rep max calculation).

When to use

Use the PR card on the workout finishing screen to celebrate and communicate a new personal record.

Don't use the PR card to display general exercise stats or historical data. Use a dedicated history or stats component instead.

Types

Performance score

Displays a record based on the one rep max calculation. The badge is neutral (broz-bg/neutral/light/default) with a secondary text label. No unit is shown next to the value.

Max weight

Displays a raw weight record. The badge is brand coloured (broz-bg/interactive/middle/default) with a primary interactive text label. A unit (e.g. "kg") is displayed next to the value.

Type

Prop

Badge background

Badge border

Badge text colour

Unit shown

Max weight

performanceScore=false

broz-bg/interactive/middle/default

broz-borders/interactive/middle/default

broz-content/interactive/primary

Yes

Performance score

performanceScore=true

broz-bg/neutral/light/default

broz-borders/neutral/middle/default

broz-content/neutral/secondary

No

Props

Prop

Values

Default

Description

performanceScore

true / false

false

Switches between the Max weight and Performance score types.

Structure

The PR card is a fixed width (150px) rounded card (responsive/layout/radius/2xl) containing:

  • Badge — a pill label at the top identifying the PR type ("Max Weight" or "Performance score"). Pill uses responsive/layout/radius/rounded.

  • Exercise name — the name of the exercise in text/content/caption/strong, coloured broz-content/interactive/primary.

  • Value row — the record value in text/heading/sm (broz-content/neutral/primary), followed by an optional unit in text/content/note/emphasis (broz-content/neutral/tertiary), and the previous record reference when applicable.

  • Previous record — displayed as "was : [value][unit]" with the old value struck through, in text/content/caption/emphasis (broz-content/neutral/tertiary). Only shown when a previous record exists.

Interaction

The PR card is non interactive and display only. It does not respond to taps or trigger any navigation.

Placement

PR cards appear on the workout finishing screen in a horizontal scroll row. They are always shown as a result of the current workout session and should not appear in history or mid workout contexts.

Accessibility

  • The card should carry a descriptive accessible label combining type, exercise, and value. For example: "New personal record: Bench press, Max Weight, 85 kg. Previous best was 82 kg."

  • The struck through previous value must not be announced as deleted text. Use an explicit accessible label or aria-label on the previous record element to convey its meaning ("previous best").

  • The card must not be focusable or included in the interactive tab order since it is display only.

Content

Badge labels are fixed strings tied to the PR type. Exercise names and values are always user generated and should not be truncated. Ensure the card layout handles long exercise names gracefully.

Previous record line

Do: "was : 82kg" (concise, inline)

Don't: "Your previous best was 82 kg" (too long for the card width)

Tokens

Element

Token

Card background

broz-bg/neutral/light/default

Card border

broz-borders/subtler

Card corner radius

responsive/layout/radius/2xl

Card shadow

shadow/sm

Badge corner radius

responsive/layout/radius/rounded

Max weight badge background

broz-bg/interactive/middle/default

Max weight badge border

broz-borders/interactive/middle/default

Max weight badge text

broz-content/interactive/primary

Performance score badge background

broz-bg/neutral/light/default

Performance score badge border

broz-borders/neutral/middle/default

Performance score badge text

broz-content/neutral/secondary

Exercise name

broz-content/interactive/primary, text/content/caption/strong

Record value

broz-content/neutral/primary, text/heading/sm

Unit

broz-content/neutral/tertiary, text/content/note/emphasis

Previous record

broz-content/neutral/tertiary, text/content/caption/emphasis