[EuiLink] Quieter default: paragraph text, dotted underline, primary on hover - #9904
[EuiLink] Quieter default: paragraph text, dotted underline, primary on hover#9904ryankeairns wants to merge 4 commits into
Conversation
…over Align default link chrome with the visual refresh hierarchy so body links sit with text until interaction, and primary CTAs stay distinct. `primary` and `text` now share that interactive treatment. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
This PR updates EuiLink’s default visual treatment to be quieter at rest (paragraph text + dotted underline) and transition to primary styling on hover/focus, aligning link affordance with the “visual refresh” direction while keeping semantic link colors static. It also updates documentation and Jest snapshots to reflect the new default classes/styling.
Changes:
- Updated shared
euiLinkCSSto use paragraph-colored text + dotted underline at rest, and primary color + solid underline on hover/focus. - Adjusted
EuiLink’s color handling soprimaryandtextshare the same default interactive styling, while semantic colors remain static on hover/focus. - Updated docs and multiple component snapshots for the new generated Emotion classnames/styling output.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/website/docs/components/navigation/link.mdx | Updates docs to describe the new default/alias behavior and demo labeling. |
| packages/eui/src/components/link/link.tsx | Treats primary + text as the same default interactive styling; semantic colors still get explicit styles. |
| packages/eui/src/components/link/link.styles.ts | Implements the new shared link “chrome” and updates disabled/static color styling behavior. |
| packages/eui/src/components/link/snapshots/link.test.tsx.snap | Snapshot updates for default Emotion class changes. |
| packages/eui/src/components/breadcrumbs/snapshots/breadcrumbs.test.tsx.snap | Snapshot updates reflecting the new default link class output. |
| packages/eui/src/components/page/page_header/snapshots/page_header.test.tsx.snap | Snapshot updates reflecting the new default link class output. |
| packages/eui/src/components/page/page_header/snapshots/page_header_content.test.tsx.snap | Snapshot updates reflecting the new default link class output. |
| packages/eui/src/components/date_picker/super_date_picker/quick_select_popover/snapshots/quick_select_popover.test.tsx.snap | Snapshot updates reflecting the new default link class output. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| &:target { | ||
| color: darken(${color}, 10%); | ||
| } |
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
💔 Build Failed
Failed CI StepsHistory
|
💚 Build Succeeded
|
122 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuiemptyprompt (8 differences)
euimarkdownformat (6 differences)
euicombobox (4 differences)
euiselectable (4 differences)
euisuperdatepicker (4 differences)
euiheader (12 differences)
euibreadcrumbs (8 differences)
euicollapsiblenav (2 differences)
euilink (4 differences)
euibasictable (18 differences)
euidatagrid (50 differences)
|



























































































































































































































































































Summary
Related to #9899 (visual refresh) — EuiLink default interaction slice. Delivers the global quieter-link treatment; optional transparent row backgrounds remain open on that issue. Sibling action-icon quieting: #9902.
color="primary"/color="text":textParagraph+ dotted underline at rest → primary on hover/focus (solid underline)primaryandtextnow share that interactive treatment (no longer two static paints)subdued,danger, etc.) stay static and override the hover→primary shifteuiLinkCSS(also used by bare anchors inEuiText) gets the same default chromeTest plan
primaryandtextlook the same; semantic colors unchanged at rest/hover<a>) match the quieter treatmentpackages/eui/changelogs/upcoming/9904.mdMade with Cursor