[Project Solar / Phase 1 / Cherry-pick] Cherry-pick updates to the HDS components#3947
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR cherry-picks a set of updates from the Project Solar Phase 1 work into main, spanning component styling tweaks, additional modifier classes for targeting, and integration test stabilization in the showcase app.
Changes:
- Updated multiple component templates to add/adjust CSS modifier classes (Dropdown list items, Pagination variants, Tag variants).
- Adjusted component SCSS (Flyout shadow token usage, LinkStandalone hover color, and substantial Badge/BadgeCount styling changes).
- Stabilized Tooltip integration testing by removing timing-based waits and using
waitUntil.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| showcase/tests/integration/components/hds/tooltip/tooltip-button-test.gts | Replaces fixed waits with waitUntil + disables tippy animation timing for more reliable assertions. |
| showcase/tests/integration/components/hds/tag/index-test.gts | Adds integration coverage for Tag “interactive vs static” rendering and classes. |
| packages/components/src/styles/components/link/standalone.scss | Sets an explicit secondary hover color to avoid unintended overrides. |
| packages/components/src/styles/components/flyout.scss | Switches Flyout box-shadow to the --token-elevation-overlay-box-shadow token. |
| packages/components/src/styles/components/badge.scss | Refactors Badge styles to use --token-badge-* variables for sizing and color/type combinations. |
| packages/components/src/styles/components/badge-count.scss | Refactors BadgeCount styles to use --token-badge-* / --token-badge-count-* variables. |
| packages/components/src/components/hds/tag/index.gts | Adds hds-tag--is-interactive / hds-tag--is-static modifier classes based on @href/@route. |
| packages/components/src/components/hds/pagination/size-selector/index.gts | Removes extra whitespace in the label markup. |
| packages/components/src/components/hds/pagination/numbered/index.gts | Adds hds-pagination--numbered modifier class on the root element. |
| packages/components/src/components/hds/pagination/compact/index.gts | Adds hds-pagination--compact modifier class on the root element. |
| packages/components/src/components/hds/dropdown/toggle/button.gts | Simplifies badgeType conditional logic (no functional change). |
| packages/components/src/components/hds/dropdown/list-item/radio.gts | Adds missing hds-dropdown-list-item--color-action class to the list item. |
| packages/components/src/components/hds/dropdown/list-item/checkbox.gts | Adds missing hds-dropdown-list-item--color-action class to the list item. |
| .changeset/rare-falcons-guess.md | Adds a changeset for the cherry-picked updates (needs formatting/content fixes). |
42ca5ff to
3383d0d
Compare
db5282c to
1f353a6
Compare
3383d0d to
d995067
Compare
d995067 to
8f01e6f
Compare
e90162e to
20078d4
Compare
8f01e6f to
7cbff96
Compare
20078d4 to
7683c64
Compare
(no actual changes for the consumers)
…ss to `Checkbox/Radio` list items
…a HDS `Text` component with standard HTML tags and updated CSS styles to use newly added component-level design tokens
…possible overrides #3920
…`/`hds-pagination—compact` to variants
…tag--is-static` to variants
…ed `-color` icon with normal icon (dynamically tinted)
e04d7de to
bf14a68
Compare
| <template> | ||
| <li class="hds-dropdown-list-item hds-dropdown-list-item--variant-checkbox"> | ||
| <li | ||
| class="hds-dropdown-list-item hds-dropdown-list-item--color-action hds-dropdown-list-item--variant-checkbox" |
There was a problem hiding this comment.
[Issue] For this class name addition to have an effect, the dropdown styles need to be adjusted for this selector. The .hds-dropdown-list-item__label selector needs to be added to the child selector list
.hds-dropdown-list-item--color-action {
a,
button,
.hds-dropdown-list-item__label {
| <template> | ||
| <li class="hds-dropdown-list-item hds-dropdown-list-item--variant-checkbox"> | ||
| <li | ||
| class="hds-dropdown-list-item hds-dropdown-list-item--color-action hds-dropdown-list-item--variant-checkbox" |
There was a problem hiding this comment.
[Note][Non-blocker] Not for this PR, but an improvement could be made to the showcase page to show the hover/active states on the label as well. Right now the mock hover is only applied to the checkbox input, not the label. So there is no way to see the label interactive states besides manually triggering them.
(From the carbonization main feature branch)
Existing mock hover view
Actual hover state (triggered via mouse)
| --- | ||
|
|
||
| <!-- START components/dropdown --> | ||
| `Dropdown` - Added missing `hds-dropdown-list-item--color-action` class to `DropdownListItemCheckbox/Radio` list items. |
There was a problem hiding this comment.
[Suggestion] Once implemented correctly (see previous comment) this will result in a visual change to the hover state for the checkbox and radio. That could be worth mentioning.
| <template> | ||
| <li class="hds-dropdown-list-item hds-dropdown-list-item--variant-checkbox"> | ||
| <li | ||
| class="hds-dropdown-list-item hds-dropdown-list-item--color-action hds-dropdown-list-item--variant-checkbox" |
There was a problem hiding this comment.
[todo] Add changeset for icon tile about changing color argument classes and border radii
| <!-- END --> | ||
|
|
||
| <!-- START components/pagination --> | ||
| `Pagination` |
There was a problem hiding this comment.
[Suggestion] I think the script may get hung up with this format since there isn't a - after the component name. Recommended formatting from confluence is more like this
<!-- START {components/component-name} -->
`{component-name}` - Changed {...additional details}, including:
- {change 1}
- {change 2}
<!-- END -->
Could also split these into two entries
<!-- START components/pagination -->
`Pagination` - Added extra modifier classes `hds-pagination--numbered`/`hds-pagination—compact` to variants.
<!-- END -->
<!-- START components/pagination -->
`Pagination` - Removed extra whitespace in label for `PaginationSizeSelector`.
<!-- END -->
|
|
||
| <template> | ||
| <div class="hds-pagination" ...attributes> | ||
| <div class="hds-pagination hds-pagination--compact" ...attributes> |
There was a problem hiding this comment.
[Suggestion] Is it worth updating the tests to use the more specific class name for each component?
test('it should render the component with a CSS class that matches the component name', async function (assert) {
await render(
<template>
<HdsPaginationCompact id="test-pagination-compact" />
</template>,
);
assert.dom('#test-pagination-compact').hasClass('hds-pagination');
});
There was a problem hiding this comment.
[Note] These changes will fix the issues I raised with #3946 for the showcase updates.
There was a problem hiding this comment.
[todo] Add changeset for badge and badge count style changes
| if (this.args.logo) { | ||
| // for the logo version we use the colored versions directly | ||
| return `${this.args.logo}-color`; | ||
| return this.args.logo; |
There was a problem hiding this comment.
I noticed theres no changelog entry for icon tile, does this not change anything for the consumer?
| assert.dom('#test-tag').doesNotHaveClass('hds-tag--is-static'); | ||
| assert.dom('#test-tag').hasClass('hds-tag--is-interactive'); | ||
| assert.dom('#test-tag .hds-tag__text').doesNotExist(); | ||
| assert.dom('#test-tag .hds-tag__link').exists(); |
There was a problem hiding this comment.
Suggestion: also check that the element with .hds-tag__link is actually an anchor

Note
Code cherry picked (and in some cases tweaked) from #3237
📌 Summary
There are some minor changes made to the HDS components in #3237 that can be cherry picked and imported directly and safely to the
mainbranch.🛠️ Detailed description
See commits descriptions for details about the changes.
🔗 External links
Jira ticket: https://hashicorp.atlassian.net/browse/HDS-6479
👀 Component checklist
💬 Please consider using conventional comments when reviewing this PR.
📋 PCI review checklist
Examples of changes to controls include access controls, encryption, logging, etc.
Examples include changes to operating systems, ports, protocols, services, cryptography-related components, PII processing code, etc.