Skip to content

PR5: feat: cross-theme hover/focus UX improvements + button XS size#1699

Open
anirudha wants to merge 3 commits intoopensearch-project:mainfrom
anirudha:v9-upstream/pr-5-hover-focus-button-xs
Open

PR5: feat: cross-theme hover/focus UX improvements + button XS size#1699
anirudha wants to merge 3 commits intoopensearch-project:mainfrom
anirudha:v9-upstream/pr-5-hover-focus-button-xs

Conversation

@anirudha
Copy link
Copy Markdown

@anirudha anirudha commented Feb 8, 2026

  • Replace text-decoration underline hover states with subtle background color hover states across all themes (oui, oui-next, v9)
  • Update _states.scss mixin to use background-color hover instead of text-decoration underline
  • Update _button.scss mixin to remove text-decoration on hover/focus
  • Add focus-visible improvements to tabs component
  • Add XS (extra-small) button size variant with OuiXSmallButton component
  • Update component hover states: accordion, card, tabs, combo_box, context_menu, control_bar, date_picker, super_date_picker, expression, facet_button, filter_button, file_picker, image, list_group, pagination, selectable, steps, table
  • Add button XS documentation examples

These are cross-theme changes that improve all themes, not v9-specific.

PR 5: Hover/Focus UX + Button XS (~25 files)

Scope: Cross-theme interactive state improvements and the new button XS size. These are shared changes that improve all themes.

Files included:

  • src/global_styling/mixins/_states.scss (hover background changes)
  • src/global_styling/mixins/_button.scss (button mixin updates)
  • src/themes/oui-next/global_styling/mixins/_states.scss (mirror)
  • src/themes/oui-next/global_styling/mixins/_button.scss (mirror)
  • src/themes/v9/global_styling/mixins/_states.scss (mirror)
  • src/themes/v9/global_styling/mixins/_button.scss (mirror)
  • Component hover/focus SCSS fixes: accordion, card, tabs, combo_box_option, context_menu_item, context_menu_panel, control_bar, date_picker, super_date_picker, expression, facet_button, filter_button, file_picker, image, list_group_item, pagination_button, selectable_list_item, selectable_template_sitewide_option, steps_horizontal, table
  • src/components/tabs/_tabs.scss (focus-visible)
  • src/components/button/_button.scss (XS size styles)
  • src/components/button/button.tsx (XS type + OuiXSmallButton)
  • src/components/button/index.ts (export)
  • src/components/index.js (export)
  • src-docs/src/views/button/button.js (XS button docs)

Testing: yarn test-unit button for snapshot updates, yarn lint, yarn test-unit full suite to verify no regressions across themes

- Replace text-decoration underline hover states with subtle background
  color hover states across all themes (oui, oui-next, v9)
- Update _states.scss mixin to use background-color hover instead of
  text-decoration underline
- Update _button.scss mixin to remove text-decoration on hover/focus
- Add focus-visible improvements to tabs component
- Add XS (extra-small) button size variant with OuiXSmallButton component
- Update component hover states: accordion, card, tabs, combo_box,
  context_menu, control_bar, date_picker, super_date_picker, expression,
  facet_button, filter_button, file_picker, image, list_group,
  pagination, selectable, steps, table
- Add button XS documentation examples

These are cross-theme changes that improve all themes, not v9-specific.

Signed-off-by: Anirudha Jadhav <jadhanir@amazon.com>
Signed-off-by: Anirudha (Ani) Jadhav <anirudha@nyu.edu>
@anirudha anirudha changed the title feat: cross-theme hover/focus UX improvements + button XS size PR5: feat: cross-theme hover/focus UX improvements + button XS size Feb 8, 2026
Filter buttons sit side-by-side in a filter group with shared borders.
Adding border-radius on hover causes individual buttons to look rounded
and disconnected from the group. The background-color hover effect is
sufficient without it.

Signed-off-by: Anirudha (Ani) Jadhav <anirudha@nyu.edu>
@anirudha
Copy link
Copy Markdown
Author

anirudha commented Feb 8, 2026

Fixed — removed the border-radius: $ouiBorderRadius from the filter button hover state in _filter_button.scss. Filter buttons share borders in a group, so adding border-radius on hover made them look disconnected. The background-color hover tint is sufficient on its own.

This was caught during review on ruanyl#1 — thanks @ruanyl.

Signed-off-by: Anirudha (Ani) Jadhav <anirudha@nyu.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant