github.com-microsoft-fluentui
all · 22 devs · built 2026-06-13
Repository snapshot
Monthly reports
Highlights
- Introduced several new *headless React components* including *TeachingPopover* [35720ad3 · Victor Genaev], *Tag family* [ecb629c1 · Victor Genaev], *InfoLabel* [commit/4c758a46], *Nav* [b7214c31 · Dmytro Kirpa], and a comprehensive *Menu* component suite [9204ee11 · Victor Genaev], significantly expanding the UI primitive library.
- Achieved *Server-Side Rendering (SSR) support* for the entire *@fluentui/web-components* library [8ee8c7e1 · John Kreitlow], leveraging Declarative Shadow DOM for improved performance and SEO.
- Implemented a new *headless Toast notification system* [da3b7a4f · Dmytro Kirpa] and enhanced its composition capabilities with base hooks [1d155574 · Dmytro Kirpa], focusing on accessibility.
- Significantly improved *overflow component reliability* with a refactoring for strict-mode compatibility [d7cec2ee · Bernardo Sunderhus] and the addition of an *OverflowReorderObserver* [cbdc2111 · Oleksandr Fediashov].
- Enhanced *tooling and development experience* by adding a new *base-hook-signature ESLint rule* [99f2b569 · Martin Hochel], migrating *web-components* e2e testing to *@microsoft/fast-test-harness* [5171b107 · John Kreitlow], and introducing experimental *React Compiler support* in Storybook [196bac47 · Martin Hochel].
- Improved *accessibility and focus management* for *Popover* components with a new `trapFocus` prop [c2f4e86d · Victor Genaev].
- Centralized the `isSafeUrl` utility function within the *charting ecosystem* [8531d26a · Dmytro Kirpa] for consistent URL safety checks.
- Addressed critical bugs including *text-input* double form submission [afcbd6d6 · Zacky Ma] and *Dropdown* text overflow [eaabe416 · Michael Barakat].
Observations
- Development activity saw a substantial increase across all metrics compared to the 2-month average: Total output surged by 182% (42 current vs 15 average), Grow score increased by 148% (14 current vs 6 average), Maintenance score dramatically rose by 357% (27 current vs 6 average), and Commits increased by 43% (110 current vs 77 average).
- The *Waste score* significantly decreased by 49% (2 current vs 4 average) compared to the 2-month average, indicating a highly efficient development cycle with minimal rework.
- A notable pattern of *headless component development* was observed, with multiple new components like *TeachingPopover*, *Tag family*, *InfoLabel*, *Nav*, and *Menu* being introduced or significantly enhanced within the `react-headless-components-preview` package.
- The *web-components* package was a hotspot for significant feature development, including *SSR support* [8ee8c7e1 · John Kreitlow] and major *e2e testing infrastructure* updates [5171b107 · John Kreitlow].
- Several commits were dedicated to *release preparation* and *changelog updates* across various packages, including `web-components` [commit/fa64f01e, commit/5e0f8160, commit/149069a4], `react-headless-components-preview` [commit/833fd4c5, commit/25b3fcca], `react-components` [commit/277f63a0, commit/9317e517], and `react v8` related packages [commit/980c56fb, commit/4f203214].
- Minor waste was observed in specific bug fixes, such as an *accessibility fix* for *tooltip* [cedbb692 · Zacky Ma], a *Dialog* refactoring [6cdfd519 · Dmytro Kirpa], a *Dialog* descendant click fix [1321fff3 · Victor Genaev], and a *TreeItem* indentation fix [68e978d6 · Copilot].
- Two revert commits were identified: one for *Griffel dependency* in `react-portal` [b4c9c451 · Dmytro Kirpa] and another for *Popover base hooks* [82fb4245 · Victor Genaev], indicating minor architectural adjustments or corrections during the development process.
Performance over time
ETV stacked by Growth, Maintenance and Fixes — 90-day moving average, normalized to ETV / month.
Average performance per developer
ETV per active developer per month — 30-day moving average.
Active developers over time
Unique developers committing each day — 90-day moving average.
Knowledge concentration
How dependent is this repo on a small number of contributors? Higher top-1 share = higher key-person risk.
Dmytro Kirpa owns 14.8 % of commits.
Top contributors
Most impactful commits
Top 20 by ETV in the all-time window.
- 11.9ETVfeat(web-components): generate SSR templates and stylesheets into src/ (#36259) ## Previous Behavior SSR template HTML and stylesheet CSS were generated at build time and written only to `dist/`. The output had no presence in `src/`, was never committed, and contributors had no way to inspect the DSD output without running a build. ## New Behavior SSR templates and stylesheets are now generated next to their `*.template.ts` / `*.styles.ts` siblings in `src/` and committed to the repo. This makes the DSD output visible during the WC v3 alpha. `yarn compile` no longer regenerates them; it copies `src/**/*.template.html` and `src/**/*.styles.css` into `dist/esm/`. `yarn generate:ssr` runs the harness's `generateFTemplates` and `generateStylesheets` with `outDir: 'src'` and formats the result with Prettier. `yarn check:ssr` runs the generators against a staging directory and compares the result to `src/` and the working tree. It reports `unchanged`, `created`, `updated`, `stale`, `handEdited`, and `conflicts`, and exits non-zero when stale, hand-edited, or conflicting files appear. `yarn compile` is extended to copy `src/**/*.template.html` and `src/**/*.styles.css` into `dist/esm/` after `tsc`, preserving subdirectory structure. The old `build:ssr`, `build:ssr:styles`, and `build:ssr:templates` scripts were removed.John Kreitlow · 3fc293f0 · 2026-06-11
- 4.5ETVtest(react-menu): add hook-level regression tests for react-menu components (#36080)Victor Genaev · cb0574cc · 2026-05-15
- 3.8ETVfix(web-components): harden component lifecycle for SSR/DSD hydration scenarios (#35838)John Kreitlow · da4bf9e4 · 2026-04-06
- 2.7ETVfeat(web-components): add Dropdown, Listbox, and Option components (#32116)John Kreitlow · f706fe1a · 2025-02-03
- 2.4ETVchore: migrate v9 packages to use eslint flat configs (#35418)Victor Genaev · e3c76a57 · 2025-11-12
- 2.4ETVfeat(react-toast): headless toast implementation (#36059) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>Dmytro Kirpa · da3b7a4f · 2026-05-28
- 2.3ETVfix(react-components,react-charts): migrate to R19 compatible JSX.* namespace types (#34923)Martin Hochel · bbaeb73e · 2025-07-31
- 2.2ETVfeat(motion): Add Stagger choreography component (#34705)Robert Penner · ead2f273 · 2025-11-06
- 2.1ETVfeat(react-headless-components-preview): add Popover & positioning (#36006)Victor Genaev · d44cd64b · 2026-05-01
- 2.1ETVfeat(react-headless-components-preview): add Tag family (#36230)Victor Genaev · ecb629c1 · 2026-05-27
- 2.0ETVfeat(react-headless-components-preview): add Menu component and stories (#36110)Victor Genaev · 9204ee11 · 2026-05-19
- 1.9ETVfeat(web-components): add SSR support via Declarative Shadow DOM modules (#36247) ## Previous Behavior `@fluentui/web-components` had no server-side rendering path. Components were defined and rendered only on the client, so SSR frameworks could not pre-render Fluent web components into HTML and hydrate them on load. The e2e tests ran against a custom harness that only covered client-side rendering. ## New Behavior `@fluentui/web-components` now supports SSR via Declarative Shadow DOM, built on `@microsoft/fast-element` and `@microsoft/fast-html`. Every component in the package ships a paired `define-async.ts` / `*.definition-async.ts` module so its template can render on the server and hydrate on the client. The build also emits two new asset types alongside the JS modules, one pair per component (42 of each), exposed through new package subpath exports: - `@fluentui/web-components/<component>/template.html`: declarative HTML template wrapped in `<f-template>`, consumed by `@microsoft/fast-html` to render Declarative Shadow DOM on the server. - `@fluentui/web-components/<component>/styles.css`: plain CSS extracted from the component's styles, importable as a raw stylesheet without pulling in the component's JS. Currently, the SSR templates and styles are generated at build time and placed in the `dist` output, but we may want to provide them as src assets in the future for easier consumption and customization. New test harness modules (`test/src/entry-client.ts`, `test/src/entry-server.ts`) and a `test/ssr.html` entry point template exercise the DSD output end-to-end. The e2e pipeline runs SSR tests after CSR tests. Several components needed template or base adjustments to render correctly under SSR: tooltip (anchor positioning polyfill handling), text-input, textarea, tree, and tree-item. The `theme/set-theme` tests are skipped under SSR. ## Next Steps This PR lays the groundwork for SSR support in `@fluentui/web-components`, but there are still some follow-up tasks to complete: - Update to the latest `@microsoft/fast-element` and remove the `@microsoft/fast-html` dependency, as DSD rendering will be directly supported in FAST in the next major release. - Provide more detailed documentation and examples for using the SSR templates and styles. - Add more comprehensive SSR tests covering edge cases and hydration scenarios.John Kreitlow · 8ee8c7e1 · 2026-05-27
- 1.9ETVfeat(chart-web-components): Create chart web components - Donut and Horizontal Bar Chart (#33084) Co-authored-by: Anush Gupta <74965306+Anush2303@users.noreply.github.com> Co-authored-by: krkshitij <110246001+krkshitij@users.noreply.github.com> Co-authored-by: v-baambati <132879294+v-baambati@users.noreply.github.com> Co-authored-by: Kumar Kshitij <kumarkshitij@microsoft.com>Atishay Jain (atisjai) · 5964b11d · 2025-01-14
- 1.8ETVtest(react-teaching-popover): add hook regression tests (#36201)Victor Genaev · a316c33f · 2026-05-14
- 1.5ETVfeat(react-headless-components-preview): add Dialog component (#35996) Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Dmytro Kirpa <dmytrokirpa@users.noreply.github.com> Co-authored-by: Copilot <copilot@github.com>Dmytro Kirpa · 4756919f · 2026-04-23
- 1.5ETVfeat(react-integration-tester): implement `rit` CLI (#35172)Martin Hochel · 3caf684a · 2025-09-11
- 1.5ETVdocs(web-components): match storybook argTypes to custom element manifest (#36271)Dave Rupert · d88afcef · 2026-06-10
- 1.5ETVfeat(react-headless-components-preview): add Nav component and stories (#36213)Dmytro Kirpa · b7214c31 · 2026-05-21
- 1.5ETVchore: upgrade storybook to v8 (#35279)Dmytro Kirpa · ab765533 · 2025-11-05
- 1.4ETVfeat(react-headless-components-preview): add TeachingPopover (#36205)Victor Genaev · 35720ad3 · 2026-05-28