Skip to content

DRAFT: Introduce new Button appearance props ("tint" and "outlineColor") for CAP visual refresh#35844

Draft
GianoglioEnrico wants to merge 3 commits intomicrosoft:masterfrom
GianoglioEnrico:feat/cap-visual-refresh-button
Draft

DRAFT: Introduce new Button appearance props ("tint" and "outlineColor") for CAP visual refresh#35844
GianoglioEnrico wants to merge 3 commits intomicrosoft:masterfrom
GianoglioEnrico:feat/cap-visual-refresh-button

Conversation

@GianoglioEnrico
Copy link
Contributor

@GianoglioEnrico GianoglioEnrico commented Mar 6, 2026

Overview

This is a draft PR — not intended for merge. The goal is to kickoff a discussion with the Fluent team on the right approach to introduce these new appearance variants needed for CAP visual refresh.

The styles used in this PR are not yet finalized and are still in progress.

Context

The CAP visual refresh requires two additional Button appearances beyond what Fluent currently offers:

  • tint — A button with a tinted background using brand colors
  • outlineColor — A button with a colored outline using brand colors

As discussed previously, CAP styles will be applied through customStyleHooks_unstable.
This PR introduces the two new appearances so that they can be styled through custom hooks. The appearances have been added to the style definitions (useButtonStyles.styles.ts,....) but have no Fluent-specific styles associated with them, so both currently fall back to the secondary appearance style. CAP applies its own specific styles to both through custom hooks. We are looking for guidance on how these appearances should be handled on the Fluent side — specifically, whether Fluent should define its own base styles for tint and outlineColor.

This PR also introduces a Fluent/CAP toggle in the Storybook docs for Button to preview style modes.

Screenshot 2026-03-06 at 19 25 30

@github-actions
Copy link

github-actions bot commented Mar 6, 2026

Pull request demo site: URL

@github-actions
Copy link

github-actions bot commented Mar 6, 2026

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-breadcrumb
@fluentui/react-breadcrumb - package
114.911 kB
31.405 kB
114.959 kB
31.421 kB
48 B
16 B
react-button
Button
33.962 kB
9.022 kB
34.01 kB
9.041 kB
48 B
19 B
react-button
CompoundButton
40.843 kB
10.379 kB
40.915 kB
10.401 kB
72 B
22 B
react-button
MenuButton
38.866 kB
10.414 kB
38.962 kB
10.433 kB
96 B
19 B
react-button
SplitButton
47.663 kB
12.057 kB
47.783 kB
12.079 kB
120 B
22 B
react-button
ToggleButton
50.938 kB
10.877 kB
51.034 kB
10.897 kB
96 B
20 B
react-charts
AreaChart
412.28 kB
126.425 kB
412.376 kB
126.457 kB
96 B
32 B
react-charts
DeclarativeChart
762.108 kB
220.192 kB
762.204 kB
220.225 kB
96 B
33 B
react-charts
DonutChart
322.715 kB
96.946 kB
322.811 kB
96.971 kB
96 B
25 B
react-charts
FunnelChart
314.268 kB
93.991 kB
314.364 kB
94.021 kB
96 B
30 B
react-charts
GanttChart
395.399 kB
119.927 kB
395.495 kB
119.961 kB
96 B
34 B
react-charts
GaugeChart
322.146 kB
96.373 kB
322.242 kB
96.405 kB
96 B
32 B
react-charts
GroupedVerticalBarChart
403.269 kB
122.494 kB
403.365 kB
122.529 kB
96 B
35 B
react-charts
HeatMapChart
397.47 kB
121.788 kB
397.566 kB
121.818 kB
96 B
30 B
react-charts
HorizontalBarChart
302.442 kB
89.116 kB
302.538 kB
89.142 kB
96 B
26 B
react-charts
Legends
242.388 kB
71.585 kB
242.484 kB
71.62 kB
96 B
35 B
react-charts
LineChart
422.844 kB
128.284 kB
422.94 kB
128.316 kB
96 B
32 B
react-charts
PolarChart
351.333 kB
107.364 kB
351.429 kB
107.395 kB
96 B
31 B
react-charts
ScatterChart
402.671 kB
122.473 kB
402.767 kB
122.508 kB
96 B
35 B
react-charts
VerticalBarChart
439.74 kB
128.215 kB
439.836 kB
128.244 kB
96 B
29 B
react-charts
VerticalStackedBarChart
409.183 kB
123.955 kB
409.279 kB
123.987 kB
96 B
32 B
react-components
react-components: Button, FluentProvider & webLightTheme
70.397 kB
19.96 kB
70.445 kB
19.98 kB
48 B
20 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
236.537 kB
68.697 kB
236.585 kB
68.716 kB
48 B
19 B
react-components
react-components: entire library
1.292 MB
323.177 kB
1.292 MB
323.206 kB
192 B
29 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
react-card
Card - All
105.131 kB
29.449 kB
react-card
Card
97.799 kB
27.572 kB
react-card
CardFooter
12.756 kB
5.109 kB
react-card
CardHeader
15.289 kB
5.972 kB
react-card
CardPreview
12.84 kB
5.248 kB
react-charts
HorizontalBarChartWithAxis
63 B
83 B
react-charts
SankeyChart
220.381 kB
67.866 kB
react-charts
Sparkline
91.393 kB
28.708 kB
react-components
react-components: FluentProvider & webLightTheme
43.612 kB
14.022 kB
react-dialog
Dialog (including children components)
102.12 kB
30.394 kB
react-message-bar
MessageBar (all components)
23.294 kB
8.63 kB
react-portal-compat
PortalCompatProvider
8.386 kB
2.624 kB
react-tag-picker
@fluentui/react-tag-picker - package
186.596 kB
55.849 kB
react-teaching-popover
TeachingPopover
112.414 kB
34.219 kB
react-timepicker-compat
TimePicker
108.174 kB
35.695 kB
react-tree
FlatTree
147.635 kB
42.134 kB
react-tree
PersonaFlatTree
149.463 kB
42.517 kB
react-tree
PersonaTree
145.523 kB
41.338 kB
react-tree
Tree
143.701 kB
40.972 kB
🤖 This report was generated against d33ac4d486d36f4298889dc7ca11330c7268eb5e

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