Care Card
A care card is a healthcare-oriented component for displaying medical guidance with varying levels of urgency. Inspired by the NHS England design system, care cards communicate health advice in three tiers: non-urgent (speak to a GP), urgent (visit A&E or call 111), and immediate (call 999).
Each care card has a heading that describes the action and a body containing the relevant advice or conditions. The data-type attribute allows consumers to apply urgency-appropriate styling (e.g., blue for non-urgent, red for immediate). The card is rendered as a <section> landmark with an accessible label derived from the heading.
Implementation Notes
- NHS England inspired pattern for healthcare guidance
- Three urgency levels: non-urgent, urgent, immediate
- Renders as
<section role="region">with heading for landmark navigation aria-labeldefaults to the heading text, overridable via thelabelprop- Uses
<h2>for the heading element data-typeattribute exposes the urgency level for consumer CSS styling- Content is provided through child elements
Props
type: "non-urgent" | "urgent" | "immediate" (default: "non-urgent") -- urgency levelheading: string (required) -- heading text for the care cardlabel: string (optional) --aria-labeloverride; defaults to heading textchildren: slot (required) -- the care card body content...restProps: Any additional HTML attributes passed to the<section>element
Usage
<CareCard type="non-urgent" heading="See a GP if:">
<ul>
<li>your symptoms do not improve after 2 weeks</li>
<li>you have a high temperature for more than 3 days</li>
</ul>
</CareCard>
<CareCard type="urgent" heading="Ask for an urgent GP appointment or call 111 if:">
<ul>
<li>you have difficulty breathing</li>
<li>you have chest pain</li>
</ul>
</CareCard>
<CareCard type="immediate" heading="Call 999 if:">
<ul>
<li>someone is unconscious</li>
<li>someone is having a seizure for the first time</li>
</ul>
</CareCard>
Keyboard Interactions
- None -- this component is a passive content container
ARIA
role="region"-- identifies the card as a named landmarkaria-label-- set fromlabelprop orheadingprop for screen reader identificationdata-type-- exposes urgency level for consumer styling hooks
When to Use
- Use to provide medical care instructions with urgency levels (non-urgent, urgent, emergency)
- Use when directing users to seek medical help, such as "See a GP" or "Call 999"
- Use to communicate the appropriate level of medical response for symptoms described on the page
- Use when medical guidance needs to be visually distinct from surrounding content with clear urgency indicators
- Use on health information pages where users need actionable next steps based on their symptoms
When Not to Use
- Do not use for general warnings without medical context -- use WarningCallout instead
- Do not use for informational callouts or supplementary notes -- use InformationCallout or InsetText
- Do not use for system alerts or application-level messages -- use Alert or Banner
- Do not use for patient record banners -- use MedicalBanner with MedicalBannerBoxForDanger
Headless
This headless CareCard component provides the semantic <section> with role="region", accessible labeling from the heading, and a data-type attribute exposing the urgency level. The consumer provides all visual styling including urgency-specific colors (e.g., blue for non-urgent, red for immediate), card borders, spacing, and typography.
Styles
The consumer provides all CSS styling. The component renders with a .care-card class for targeting. No default styles are included — this is a fully headless component.
Testing
- Verify the component renders a
<div>element with classcare-card - Verify role="region"` -- identifies the card as a named landmark
- Verify aria-label
-- set fromlabelprop orheading` prop for screen reader identification - Verify keyboard interactions work correctly
- Verify pass-through attributes are applied
Advice
- Designers: Use distinct, high-contrast colors for each urgency level so users can quickly identify severity. Follow NHS design patterns for familiarity in healthcare contexts.
- Developers: Always set the
typeprop explicitly to match the clinical urgency. Use thedata-typeattribute in your CSS selectors to apply urgency-specific styling.
Related components
card— a grouped content container with header, body, and footer areasmedical-banner— a prominent message bar across the top of a page, with medical informationalert— a status message for important information or feedback
References
- NHS England Care Cards: https://service-manual.nhs.uk/design-system/components/care-cards