Skip to content
This repository is currently being migrated. It's locked while the migration is in progress.

va-card-status: add new component#1862

Merged
ediiotero merged 30 commits intomainfrom
4519-Card-status-comp
Jan 28, 2026
Merged

va-card-status: add new component#1862
ediiotero merged 30 commits intomainfrom
4519-Card-status-comp

Conversation

@ediiotero
Copy link
Copy Markdown
Contributor

@ediiotero ediiotero commented Nov 13, 2025

Chromatic

https://4519-Card-status-comp--65a6e2ed2314f7b8f98609d8.chromatic.com

Description

Adding a new va-card-status component. It uses va-card as a child and includes props for heading, footer links, and tag status.

Related tickets and links

Closes 4519

Screenshots

Screenshot 2025-12-19 at 11 28 46 AM Screenshot 2025-12-19 at 11 29 13 AM

Testing and review

Running unit test and manual testing within the story.

Approvals

See the QA Checklists section below for suggested approvals. Use your best judgment if additional reviews are needed. When in doubt, request a review.

Approval groups

Add approval groups to the PR as needed:

QA checklists

Use the QA checklists below as guides, not rules. Not all checklists will apply to every PR but there could be some overlap.

In all scenarios, changes should be fully tested by the author and verified by the reviewer(s); functionality, responsiveness, etc.

✨ New Component Added
  • The PR has the minor label
  • The component matches the Figma designs.
  • All properties, custom events, and utility functions have e2e and/or unit tests
  • A new Storybook page has been added for the component
  • Tested in all VA breakpoints.
  • Chromatic UI Tests have run and snapshot changes have been accepted by the design reviewer
  • Tested in vets-website using Verdaccio
  • Engineering has approved the PR
  • Design has approved the PR
  • Accessibility has approved the PR
🌱 New Component Variation Added
  • The PR has the minor label
  • The variation matches its Figma design.
  • Any new properties, custom events, or utility functions have e2e and/or unit tests
  • A new story has been added to the component's existing Storybook page
  • Any Chromatic UI snapshot changes have been accepted by a design reviewer
  • Tested in vets-website using Verdaccio
  • Engineering has approved the PR
  • Design has approved the PR
🐞 Component Fix
  • The PR has the patch label
  • Any new properties, custom events, or utility functions have e2e and/or unit tests
  • Any markup changes are evaluated for impact on vets-website.
    • Will any vets-website tests fail from the change?
  • Any Chromatic UI snapshot changes have been reviewed and approved by a designer if necessary
  • Engineering has approved the PR
♿️ Component Fix - Accessibility
  • The PR has the patch label
  • Any new properties, custom events, or utility functions have e2e and/or unit tests
  • Any Chromatic UI snapshot changes have been reviewed and approved by a designer if necessary
  • Engineering has approved the PR
  • Accessibility has approved the PR
🚨 Component Fix - Breaking API Change
  • The PR has the major label
  • vets-website and content-build have been evaluated to determine the impact of the breaking change
  • Any new properties, custom events, or utility functions have e2e and/or unit tests
  • Any Chromatic UI snapshot changes have been reviewed and approved by a designer if necessary
  • Tested in vets-website using Verdaccio
  • Engineering has approved the PR
🔧 Component Update - Non-Breaking API Change
  • The PR has the minor label
  • Any new properties, custom events, or utility functions have e2e and/or unit tests
  • Any Chromatic UI snapshot changes have been reviewed and approved by a designer if necessary
  • Engineering has approved the PR
📖 Storybook Update
  • The PR has the ignore-for-release label
  • Any Chromatic UI snapshot changes have been reviewed and approved by a designer if necessary
  • Engineering has approved the PR
🎨 CSS-Library Update
  • The PR has the css-library label
  • vets-website and content-build have been checked to determine the impact of any breaking changes
  • Engineering has approved the PR

@ediiotero ediiotero requested a review from a team as a code owner November 13, 2025 17:16
@ediiotero ediiotero added the minor For a minor Semantic Version change label Nov 13, 2025
@ediiotero ediiotero requested review from a team November 13, 2025 17:16
Copy link
Copy Markdown
Contributor

@jamigibbs jamigibbs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@edmondpewing Is this accessibility and architecture outline still accurate for the development of this? If not, could you note what has changed? That will help us with our reviews.

It would also be helpful to link to the Figma designs.

@jamigibbs jamigibbs requested review from a team November 13, 2025 17:43
@jamigibbs jamigibbs dismissed their stale review November 13, 2025 21:27

re-reviewing

Copy link
Copy Markdown
Contributor

@jamigibbs jamigibbs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this Eddie! I've left a few comments/questions but mostly I think we just need to make sure we're developing for the requirements in the accessibility review doc linked above. That might mean creating a separate component using va-card as a child but I'll leave that up to you to determine.

Comment thread packages/web-components/src/components/va-card/va-card.tsx Outdated
Comment thread packages/web-components/src/components/va-card/va-card.tsx Outdated
Comment thread packages/web-components/src/components/va-card/va-card.scss Outdated
Comment thread packages/storybook/types.d.ts
Comment thread packages/web-components/src/components/va-card/va-card.tsx Outdated
Comment thread packages/web-components/src/components/va-card/va-card.tsx Outdated
Comment thread packages/web-components/src/components/va-card/va-card.tsx Outdated
<footer>
{linkHref && linkText ? (
<va-link
aria-describedby={ariaDescribedbyIds}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should use va-link-action with type="secondary"

Image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. I missed that. Its changed now.

@jamigibbs jamigibbs changed the title VA-Card status variant va-card-status: add new component Dec 16, 2025
Copy link
Copy Markdown
Contributor

@jamigibbs jamigibbs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @ediiotero! Do you mind updating the description of this PR so that it more accurately reflects the changes made since switching from a va-card update to a new va-card-status component?

Also can you confirm that we want all of those different Storybook examples instead of just error? I was thinking that this component would only have an error state/status. Maybe in the future there would be other statuses but I didn't think it would yet. I could have missed some detail somewhere though.

I will hold off on doing a code review until those things are clarified.

Error Status in Storybook

Image

Copy link
Copy Markdown
Contributor

@amyleadem amyleadem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @ediiotero, thanks for all your work on this. I did a preliminary review and noticed that there were some opportunities to simplify this implementation by removing some slot support. Can you take a look at the comments and let me know if you have any questions or concerns?

I can come back for a deeper review after these updates.

Comment thread packages/storybook/stories/va-card-status.stories.tsx Outdated
Comment thread packages/storybook/stories/va-card-status.stories.tsx Outdated
Comment thread packages/storybook/stories/va-card-status.stories.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
@ediiotero
Copy link
Copy Markdown
Contributor Author

All requested changes complete. I'm including this link to the Figma file I used while working on this. It might be helpful in understanding some of the decisions I made. As an FYI the Figma is outdated now: Card-Status Figma

Copy link
Copy Markdown
Contributor

@amyleadem amyleadem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ediiotero I have some more testing to do, but wanted to add a few more comments with some issues I found. Let me know if you have questions!

Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/test/va-card-status.e2e.ts Outdated
Comment thread packages/storybook/stories/va-card-status.stories.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
@ediiotero ediiotero requested a review from amyleadem January 16, 2026 16:59
Comment thread packages/storybook/stories/va-card-status.stories.tsx Outdated
Comment thread packages/web-components/src/components/va-card-status/va-card-status.tsx Outdated
Copy link
Copy Markdown
Contributor

@amyleadem amyleadem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

I reviewed the component for accessibility by checking the component in the following environments:

  • MacOS/VoiceOver/Safari
  • MacOS/VoiceOverChrome
  • iOS/VoiceOver/Safari
  • Windows/NVDA/Chrome
  • Windows/JAWS/Chrome
  • Android/Talkback
    • Note: On my Pixel device, I did hear some unexpected announcements when swiping through the content, but I think it was an anomaly. It would occasionally announce "start 17px color black background color white font family source sans pro" when swiping to the telphone number. However, I did not see this behavior before today, there is nothing in the code that would indicate that this should be read out, and we were not able to replicate this behavior in other devices/emulators. Additionally, the issue was happening in other stable components on the failing device. All of this points to it being a strange glitch, but interested to learn if other discover this. Update: This was related to a recent settings update in Talkback. The style announcements stopped once I updated the text styling announcement settings (Settings > Accessibility > TalkBack > Settings > Verbosity > Speak text formatting). This was not caused by the component.

I completed the tests in the component's accessibility checklist, which included testing for zoom, keyboard, font resizing, forced colors/high contrast mode, and visual design cues like color contrast.

Before merge, let's get another engineering review and design/content review (@jeana-adhoc ?).

Copy link
Copy Markdown
Contributor

@powellkerry powellkerry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Copy Markdown
Contributor

@RyanMunsch RyanMunsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Nice work, @ediiotero!

/**
* @componentName Card Status
* @maturityCategory use
* @maturityLevel deployed
Copy link
Copy Markdown
Contributor

@jeana-adhoc jeana-adhoc Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the right maturity level we should be using? For new components, should we be using "Available". After this is used on production in 3x products looks like we can promote it to deployed

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure. I was following the Card component @amyleadem Do you know what the maturityLevel should be?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jamigibbs Thanks

@ediiotero ediiotero requested a review from jeana-adhoc January 27, 2026 14:21
Copy link
Copy Markdown
Contributor

@jeana-adhoc jeana-adhoc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks for all of your work on this.

@ediiotero ediiotero merged commit 48b2815 into main Jan 28, 2026
8 checks passed
@ediiotero ediiotero deleted the 4519-Card-status-comp branch January 28, 2026 17:24
@amyleadem amyleadem mentioned this pull request Feb 2, 2026
44 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor For a minor Semantic Version change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Step 4: Card component status state - Development

6 participants