-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fluent UI v8 #19
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Summary
The next release of Fluent UI React is going to be a little different than previous releases of this project and we wanted to help set expectations, detail some of its nuances, and set the stage for subsequent releases.
We view this next release as a incremental release that will setup up customers, partners, and contributors for the team's collective vision of improving the baseline components used in all Microsoft 365 experiences. Going forward we will be making smaller, easy to consume, incremental releases of Fluent UI
The Version 8 (v8) release will focus on:
IN PREVIEW
Composition utilitiesAll content in this issue is a work in progress and will not be final until we approach release.
Note: "v8" here refers to "version 8," not the v8 JavaScript engine.
Timeline
Note: These dates are our best estimations.
*v8 snap:
7.0
branch is created. Fixes for v7 will need to go in7.0
branch until beta release. After beta release, all fixes should go into master first then cherry-pick into7.0
branch.What's in v8?
We are currently tracking the related work here.
Below is a more detailed overview of upcoming changes in v8. Please note, these are still subject to change before official release. Comprehensive release notes will be provided when release happens.
# Packaging restructuring - pave the way for future updates
Breaking
Package renamingoffice-ui-fabric-react
to@fluentui/react
Starting in v8, you will need to install
@fluentui/react@8
instead ofoffice-ui-fabric-react@8
. More details and migration tips here.Breaking
@uifabric
to@fluentui
package renamesIf time allows, we plan to move our
@uifabric
packages to the@fluentui
scope. For packages used by the suite (@fluentui/react
), we'll continue to publish aliases under the old@uifabric
names (until their major version bumps) to prevent consumers from needing duplicate dependency versions. See this issue for details.Major version policy change for sub-packages
Starting with this release, sub-packages such as
@uifabric/utilities
or@uifabric/merge-styles
will no longer move in major-lockstep with the suite: for each sub-package, unless it also has breaking changes, it will not major bump when the suite does.The main benefit is that this will reduce duplicate dependencies for consumers who need a longer timeline to fully upgrade to the latest suite package version, and may have multiple versions of the suite in the same app bundle in the meantime.
(This change is pending final investigations of technical feasibility.)
# ReactJS Strict Mode Support
Full strict mode support for all components
UNSAFE_*
)findDOMNode
Breaking
Function component conversionMost components are being converted from class components to function components (and the remaining components may be converted in a minor version). This work is being tracked here.
In general this change will not result in a signifcant change to the component surface. However, there are a few important implications, outlined in detail here.
Main points:
ref
prop works.ReactDOM.findDOMNode
is not supported for function components (a React limitation).state
is no longer supportedPivot
has been renamed toTabs
, and has been updated with responsive collapsing behavior.# Button Component
Our button components have a long history and debt. In order to truly improve them, we are essentially re-writing them. We're doing so with a lense of formalizing a styling API that we plan to adopt to more and more components over time. This comes with a set of breaking changes.
Improved Button
Button variants have been replaced with an entirely new button which is faster, smaller, and more customizable. It can be found in the
@fluentui/react-button
package.Introduction of design tokens and slots
The Button component and variants leverage a new set of styling APIs that allow more predictibility, flexibility, and toolability. More details here.
Compat Button
More coming soon...
#
IN PREVIEW
Composition UtilitiesThese "In Preview" utilties are meant for component authors to try out and give us feedback on creating new components like we did with the new Button component. Note that these APIs are subject to change as we learn and iterate with component authors.
Customizability and component authoring
Customizer
andFabric
).List of breaking changes
Please see the draft release notes for a detailed list of breaking changes to individual components, including removal of certain props previously marked as deprecated.
Testing v8
Once beta is released (8.0.0-beta.*), we encourage you to try it out and provide us with any feedback.
More details coming soon!
Open questions v8 will answer before release
Question: How will customers upgrade from v7 to v8?
We will provide an
upgrade-source
script which will apply renames to your code. Symbols, imports, and prop renames will be adjusted automatically, and references to deprecated things which have no automated alternative will add comments and links to explanations.Question: What is the right way to theme Fluent UI?
More details coming soon...
Question: If we're using css variables, what guidance do we provide for developers who still need to support IE11?
We're currently working on adding a polyfill for this. More detailed guidance will be provided when we release the beta.
The text was updated successfully, but these errors were encountered: