Skip to content

Show icons and link references in forced colors - #5907

Open
Eugene (OEvgeny) wants to merge 13 commits into
mainfrom
OEvgeny/fix-fluent-forced-colors-icons
Open

Eugene (OEvgeny) wants to merge 13 commits into
mainfrom
OEvgeny/fix-fluent-forced-colors-icons

Conversation

@OEvgeny

@OEvgeny Eugene (OEvgeny) commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #4906, fixes #4907

Changelog Entry

Fixed

  • Fixed icons being invisible, link references not using the link color, and Fluent messages and Copy button having no border in forced colors, fixes #4906 and #4907, in PR #5907, by @OEvgeny

Description

In forced colors, icons were drawn in the background color or dark gray, and non-URL references were not in the link color. They now use system colors in forced colors only (LinkText for links), and Fluent bubbles and the Copy button get a border, as in the default theme.

Specific Changes

  • CSS: FluentIcon, Copy button (ButtonText border in Fluent), Fluent bubbles (CanvasText border), external link icons, link references, Fluent pills and chips (also hovered); MicrophoneButton (Highlight while dictating)

  • New forcedColors tests, snap 1: markdown/externalLinkIcon/, markdown/codeBlockCopyButton/, linkDefinition/ (Fluent pills and chips all LinkText), speech/recognition/dictating, fluentTheme/telephoneKeypad, fluentTheme/citation.hover; fluentTheme/icons snaps 1–2; Fluent snaps show message borders

  • richCard/animationCard.gif.fluent.html snap 4: send box icons and message border visible

  • I have added tests and executed them locally

  • I have updated CHANGELOG.md

  • I have updated documentation

Review Checklist

This section is for contributors to review your work.

  • Accessibility reviewed (tab order, content readability, alt text, color contrast)
  • Browser and platform compatibilities reviewed
  • CSS styles reviewed (minimal rules, no z-index)
  • Documents reviewed (docs, samples, live demo)
  • Internationalization reviewed (strings, unit formatting)
  • package.json and package-lock.json reviewed
  • Security reviewed (no data URIs, check for nonce leak)
  • Tests reviewed (coverage, legitimacy)

@OEvgeny
Eugene (OEvgeny) marked this pull request as ready for review October 19, 2026 07:41
Copilot AI balanced review requested due to automatic review settings October 19, 2026 07:41

Copilot AI left a comment

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@OEvgeny
Eugene (OEvgeny) force-pushed the OEvgeny/fix-fluent-forced-colors-icons branch from d067a05 to e266265 Compare October 19, 2026 07:53
@OEvgeny Eugene (OEvgeny) changed the title Show icons in forced colors in the Fluent theme and code blocks Show icons and link references in forced colors Oct 19, 2026
@OEvgeny

Copy link
Copy Markdown
Collaborator Author
Screenshot 2026-10-19 095625 Screenshot 2026-10-19 095256 Screenshot 2026-10-19 095324 Screenshot 2026-10-19 095346 Screenshot 2026-10-19 095414

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Not exactly sure, maybe the "1 reference" should not be in yellow or not.

Let's try browser native <summary> to see if it is yellow or not.

Because what I feel (from other screenshots) is that "yellow is for hyperlink", for example, the send button is an action and is not yellow.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Here is how it looks like with the details:
image

It doesn't have frame around, but for the frame I imagine we do benefit from a different color

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The copy button does not have a border.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Added a ButtonText border to the Copy button in forced colors in 2f6af04, see snap 1.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Copy button does not have border.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Added a ButtonText border to the Copy button in forced colors in 2f6af04, see snap 1.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Not exactly sure but it seems missing the message border.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fluent bubbles now get a CanvasText border in forced colors (fb2720c), see snap 1.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Seems missing message border.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fluent bubbles now get a CanvasText border in forced colors (fb2720c), see snap 1.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Message border maybe?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Yes, added in fb2720c, see snap 4.

text-decoration: underline;

@media (forced-colors: active) {
color: LinkText;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Capitalization, some time we have buttonText, and this one is LinkText.

I think "TitleCase" is good.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Switched all system colors in this PR to TitleCase in 158e811.

--webchat__fluent-icon--color: currentColor;

@media (forced-colors: active) {
--webchat__fluent-icon--color: canvasText;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
--webchat__fluent-icon--color: canvasText;
--webchat__fluent-icon--color: CanvasText;

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Applied in 158e811.

--webchat__component-icon--color: currentColor;

@media (forced-colors: active) {
--webchat__component-icon--color: buttonText;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nitpick.

Suggested change
--webchat__component-icon--color: buttonText;
--webchat__component-icon--color: ButtonText;

https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/system-color

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Applied in 158e811.

Eugene Olonov added 12 commits October 19, 2026 19:22
In forced colors, Fluent icons with the text appearance were painted in
the background color: the mask icon is drawn with `background-color:
currentColor`, which forced colors replace with `Canvas`.

- FluentIcon: text-appearance icons use `canvasText` in forced colors,
  the same as ComponentIcon, so the Upload file, Send, Telephone keypad
  and microphone buttons, starter prompt images, the telephone keypad
  message icon and the drop zone icon are visible
- Tests: fluentTheme/icons.forcedColors (light and dark),
  fluentTheme/telephoneKeypad.forcedColors; updated the forced-colors
  snapshot of richCard/animationCard.gif.fluent.html (send box icons)
The icon of the Copy button of code blocks was painted in the background
color in forced colors, in the default and Fluent themes.

- Use `buttonText` in forced colors, like ActivityButton (#5897)
- Tests: markdown/codeBlockCopyButton/forcedColors (default and Fluent,
  light and dark)
Also await actRecognizeOnce() in the dictating test, drop its unrelated name assertion, and shorten the changelog entry.
@OEvgeny
Eugene (OEvgeny) force-pushed the OEvgeny/fix-fluent-forced-colors-icons branch from 158e811 to bad14a7 Compare October 20, 2026 02:22

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Link references for citation should be yellow External link icon in high contrast dark theme appears as black

3 participants