Every component on the checklist, mapped to what simple-shared-react ships, with a live example and an honest check against each item.
How the reader moves and acts.
Interactive text element used for navigation within paragraphs.
Ships asGlobal a style in globals.css, next/link, Button variant="link"
Prices are median negotiated rates and exclude facility fees. See the contrast audit for the color issue, or read the opt-out style.
Navigation between multiple pages or content sections.
Ships asTabs (uncontrolled), TabLinks (controlled)
Median negotiated rate across in-network plans.
Median negotiated rate across in-network plans.
Enables a selection from a range of pages.
Ships asPagination
List of contextual actions the user can trigger. Not to be confused with Select below: the shared Dropdown component is a value picker.
Ships asnothing yet
How the reader tells us things. Native inputs are styled by element in base.css; the richer pieces are components.
Form field to enter and edit single-line text.
Ships asNative <input> styled by base.css; Password
Form field to enter and edit multiline text.
Ships asNative <textarea> styled by base.css
Choose a single value from a list of options. The shared Dropdown also does multi-select, search, and async options.
Ships asDropdown; native <select> styled by base.css
Form field used to select one or multiple values from a list.
Ships asNative <input type=checkbox>, unstyled
Form element for selecting one option from a list.
Ships asNative <input type=radio>, unstyled
Toggle for immediately changing the state of a single item.
Ships asToggle
Grid of days in one or more months for picking a date or a range.
Ships asNative <input type=date>, styled by base.css
How we tell the reader what happened, what is happening, and what to watch for.
Prominent message about the whole page or a specific area of it.
Ships asCallout
Notification message displayed above the page content.
Ships asToast via ToastProvider and useToast()
Contextual text shown on hover or focus.
Ships asInfo
Median negotiated rate
Container in front of the main content for critical information or an action.
Ships asModal
Animated element that communicates progress without saying how long it will take.
Ships asLoading
Bar showing progress for a long task or one with several steps. Range is a slider, not a progress bar.
Ships asnothing yet
Placeholder that stands in for page elements while their data loads.
Ships asLoadingSkeleton
Containers and small elements that carry content.
Container that groups information about a subject and its related actions.
Ships asCard
Card body. Anything can go here, including other components.
Without a title the body starts at the top.
Toggles the visibility of a content region when its trigger is pressed.
Ships asNative <details>, unstyled
The price an insurer and a provider have agreed on for a service. Native details element, unstyled.
Horizontal scrollable area for grouped content. Probably not needed: none of the deployed products has a use for one.
Ships asnothing yet
Displays a list of items.
Ships asNative ul and ol styled by base.css
Element for visual content separation.
Ships asNative hr styled in this app, not in base.css
Above the rule.
Below the rule.
Utility for displaying images and controlling their behavior.
Ships asnext/image
next/image with explicit width and height. The mark is an SVG so density is moot; raster images get a srcset.
Thumbnail of a user photo, organization, or other content. Likely needed once accounts show a signed-in user.
Ships asnothing yet
Compact element that represents the status of an object or a user input.
Ships asTag
Wrapper for SVG assets that controls their appearance.
Ships asIcon
Shared components with no checklist counterpart. They follow the same rules; there is just no external list to grade them against.
Slider with role=slider, aria-value*, keyboard steps, and a commitOn prop for drag versus release. The best-instrumented component in the library.
Text field with a show/hide toggle. The toggle has a proper aria-label.
Inline and block code. Block mode has a language badge; syntax highlighting is commented out.
Controlled tab strip with no panels, for routing-driven tabs.