---
robots: nofollow, noindex
tags: status
---
# May Project Cycle: Sprint 49 & 50 (May 4 - May 29)
## Quick links
[Sprint 49 (May 4 - May 15)][sprint49]
[Full VSO backlog][backlog]
[Fluent UI Roadmap](/zS7XP735R76Si87i7aI2Aw)
## Projects on deck for May
|Project|Status|Contributors|
|---|---|---|
|[Convergence - May](/4v1f3b1jRAmpBbkCmV9YpA)|Reviewed|**David**, Jon, Ben, Xu, Mak|
|[CodeMods - May](/W2QJM0SLQRapeQ_rk3m5RA)|Review Thurs|**Jon**, David, Ben|
|[Base Theme & Teams Shell 2.0](https://hackmd.io/2lHy4oK-Sq6s2YBw8Aq61A?both=#)|Review Thurs|Levi|
|[Compose cont. (Use in v0/converged)](https://hackmd.io/NcvmFBECRz2p9QoLwyT5Vg?edit)|Reviewed|Marija, Shift|
|[UI Builder (Fabric, Material and composed components)](/nNmiEJpUR0q9VGWeDElODw)|Reviewed|Miroslav|
|Shield|N/A|Elizabeth|
|Strict Mode support (concurrent)|In-progress - Michael|Xu|
|[Accessibility fixes](/QgeTil9FTd6pb5BVj0GWZw)|Later|...|
|Real world Performance baselines|Later|...|
|Open UI|Later|Levi|
|MVP repo of custom Fluent UI React components (Hudson, Office-start?)|Later|...|
|IE11 support for Fluent UI styling|No-proposal investigate in may|Jon, David, Ben|
## Weekly updates
### Convergence
#### Achievements
| Component | [Converted to FC](https://github.com/microsoft/fluentui/projects/35) | Static SCSS | Compose | Testing/Stabilization/A11y | Exported in v8 | Exported in v0 |
|-|-|-|-|-|-|-|
|Button| Merged | **Updates in PR** | **Initial draft merged** |
|Link| Merged | Merged | **In PR** |
|Slider| Merged | Merged | **Moving to hooks** |
|Checkbox| Merged | Merged | **Initial draft in PR** |
|Toggle| Merged | Merged | |
|Pivot| Merged | **In PR** |
|Avatar| In branch | In branch |In branch |
Next work (jslone):
- Get some of these into Teams (see if it solves perf)
- Baseline perf as part of investigation?
Additional items:
| Feature | Status |
|-|-|
| RTL in scss | Merged |
| ThemeProvider package checked in | Merged |
| SASS typescript build outputs stylesheet for useStylesheet to consume | Focus for week 4
| Styles can be rendered in child window | Blocked
| Styles can be rendered in SSR | Blocked
| IE11 polyfill performance exercising | In progress
| IE11 polyfill can render CSS variables scoped | Validated
| IE11 polyfill can render inline style variables | Validated
| IE11 polyfill can handle classname mutations | Failed, PR out
| IE11 polyfill can render variables in :before and :after | Failed but fallbacks work
| Compose `classes` option added | Merged
| Compose `classes` option can be a function | **In PR**
| mergeProps moved into react-compose | **In PR**
| Button package uses react-compose | **In PR**
| Slider tests and fixes| Merged |
| TS-Morph plan for running mods | Shaped |
|Use ThemeProvider to provide css variables instead of scss| Merged |
| Integrate ThemeProvider into v7, ensure backward compatibility with Customizer and loadTheme. | **Merged** |
| Integrate ThemeProvider into v0, ensure backward compatibility with Provider | |
#### Next objectives
* Finish merging scss conversion efforts.
* Base theme package scaffolding and base tokens work.
* Update `classes` support for `compose`, add tests.
* Move `mergeProps` to `react-compose` package, add tests.
* Adjust `scss` pipeline to output stylesheets, add tests.
* Use `compose` to build `Checkbox`.
* Use `compose` to build `Slider`.
* Finalize work to use `compose` to build `Link`.
* Further improvements on `Button` and start work on `MenuButton` and `SplitButton`.
* Ensure v0 compatibility
* Integrate in TMP first, side by side with v0 button before replacing v0
* Need to resolve the 1500+ lines of styling overrides in tmp
#### Learnings
IE11 polyfill investigation progress: Optimistic, but investigating bugs that are confusing
See experiment in IE11: https://github.com/dzearing/token-fun
* Inline variables work (style="--foo: red")
* Inline variable mutations work
* Variables through class work
* Scoping seems to work most of the time
* initial state renders fine
* classname mutations create problems
* react replacing the classnames is fixable, PR out
* new classname defines new variable value, some subelements don't seem to pick it up. Digging into what's unique.
* Classname mutations break styles - PR out
* :before and :after classes with variables do not (due to IE11 bug), fallbacks work, no known workarounds
* Some issues with specificity (Intentional overrides can lose to selectors)
* Some performance concerns with cleanup and mappings
TypeScript 3.9.2 upgrade pain and suffering
* Breaks in merge-styles typings required a lot of time to find 3.7-3.9 compatible fixes
postcss-rtl plugin integrated into Just task, but introduces bundle issue
* Unnecessary prefxing of symmetrical rtl rules adds bulk. Patch in branch. Can use existing sass mixins (e.g. `@left(42px)` ) until this is resolved.
Static styling concerns/risks:
* RTL bundle bloat risks perf improvements (better runtime, worse size... tradeoffs)
* Can csslint rules help steer styling to symmetrical solutions? (better bundle size)
* Static styling specificity wars with dynamic cssinjs styling (user overrides should always be more specific, Xu workaround increasing specificity would work)
* Runtime css transforms go to build time, need to make sure our pipeline is easily reusable by partners and 3rd parties
* Jest snapshots won't have classnames expanded like before
### Base Theme & Shell 2.0 (Levi)
Status: Less Exploded :exploding_head:
- Teams and Office Web designers not using 10X design work this was based on.
- Need to understand design re-org
Update:
- Web, Benedikt, Teams, Angela, in agreement to implement Daisy/Sunmi design.
- Theme needs to be ready for engineering in 3-4 months
Achievements
- SOME Get prototype cascade done for 7-8 themes with a single component (Button)
- Finish controls for tweaking theme (for validating, discovery, and testing)
Objectives
- While waiting for tokens/styles, switch to getting build working v7 + v0 docs
- Find out which tokens and styles specifically we shuld be implementing
Learnings
- Shell2.0 is not based on Spencer's token work. OXO + Teams has a web first token work that is not compatible.
5/12
Status: On Track, slow risks fall behind
- Why/Resolution: Lost couple days to build stuff. Levi will cancel more meetings for focus time.
Achievements
- Pulled in Button tokens from Spencer and design folks
- First round of feedback/iteration on tokens with design
- Collab with WinUI / XAML
- Started branch showing 7-8 themes at various levels
- Plan has been setup with Teams for validating Fluent base theme and Shell 2.0
Objectives
- Get prototype cascade done for 7-8 themes with a single component (Button)
- Finish controls for tweaking theme (for validating, discovery, and testing)
Learnings
- v7 components don't work in v0 doc build. Blocking progress and will block UI Builder.
### Compose(), phase 2 (Shift, Marija)
Status: work in progress.
Menu is merged into master.
This week: toolbar.
We are working on `Toolbar` & `Menu` to use `compose()` for all subcomponents and verify user scenarios.
Achievements:
- Have `Toolbar` & `Menu` powered by `compose()` [in progress]
Objectives:
- Solve circular dependencies issues related to collection components
Learnings:
- minor issues related to types in `compose()` should be just fixed
- circular import dependencies are dangerous and should be avoided
### UI Builder (Miro)
Status: Behind schedule
- Resolution: Be more realistic with estimates
Achievements
- Code to UI Builder
- Improve props editors [in progress]
- extend existing `component.info` to contain necessary type information
Objectives
- [Pushed to Next Cycle] Add v7 components (blocked on build)
### Project Name (Person, Person)
Status:
Achievements
Objectives
Learnings
## More links
[Shared OneNote for eng process][onenote]
[Accessibility Issues](https://dev.azure.com/microsoftdesign/fluent-ui/_queries/query/ab37cec7-fd8f-4828-99ac-d56e65396ada/)
[backlog]: https://dev.azure.com/microsoftdesign/fluent-ui/_backlogs/backlog/fluent-ui%20Team/Epics
[issues]: https://github.com/OfficeDev/office-ui-fabric-react/issues
[onenote]: https://microsoft.sharepoint-df.com/:o:/t/FluentUIInternal/Ev_x5WbQI6tJmn2s87RzRPMBTG3d0gmYJN6QCpQttOFyzw?e=rnbj9H
[sprint49]: https://dev.azure.com/microsoftdesign/fluent-ui/_sprints/backlog/fluent-ui%20Team/fluent-ui/Sprint%2049
[sprint50]: https://dev.azure.com/microsoftdesign/fluent-ui/_sprints/backlog/fluent-ui%20Team/fluent-ui/Sprint%2050
[onelibrary]: https://dev.azure.com/microsoftdesign/fluent-ui/_workitems/edit/4469
[theming]: https://dev.azure.com/microsoftdesign/fluent-ui/_workitems/edit/4464
[performance]: https://dev.azure.com/microsoftdesign/fluent-ui/_workitems/edit/4462
[composition]: https://dev.azure.com/microsoftdesign/fluent-ui/_workitems/edit/4465
[onerepo]: https://dev.azure.com/microsoftdesign/fluent-ui/_workitems/edit/4468
[onelib]: https://dev.azure.com/microsoftdesign/fluent-ui/_workitems/edit/4469