c6fc76f532
React Aria's `CollectionBuilder` renders `TabList`'s children into both a hidden collection-building tree and the real DOM. The hidden instance of `TabsIndicators` sits outside the `TabListStateContext` provider, so its `state` is `null` — causing its `updateCSSVariables` effect to hit the `else` branch and write `--active-tab-opacity: 0` to the `tabsRef` DOM element that the real instance also writes to. Under the right render ordering, this hidden write lands after the real instance's `opacity: 1` and makes the active indicator disappear on uncontrolled Tabs. Guard `updateCSSVariables` with an early return when `state == null` so the hidden instance never writes to the shared DOM element. Signed-off-by: Johan Persson <johanopersson@gmail.com>
@backstage/ui
Backstage UI is a component library for Backstage.
Installation
Install the package via Yarn:
cd <package-dir> # if within a monorepo
yarn add @backstage/ui
Documentation
Writing Changesets for Components
When creating changesets for component-specific changes, add component metadata to help maintain documentation:
---
'@backstage/ui': patch
---
Fixed size prop handling for Avatar component.
Affected components: Avatar
Guidelines:
- Component names: Use PascalCase as they appear in imports (Avatar, ButtonIcon, SearchField)
- Multiple components:
Affected components: Button, ButtonLink, ButtonIcon - General changes: Omit the metadata line (build changes, package-level updates)
- Placement: The line can appear anywhere in the description
The changelog sync tool will parse these tags and update the documentation site automatically.