@tiny-design/react@1.9.0
·
50 commits
to master
since this release
Minor Changes
-
Upgrade the global configuration infrastructure around
ConfigProviderand align popup, scroll, and static layer behavior across the component library. - #9049b4bfcHighlights:
- Reworked
ConfigProviderto use provider-scoped theme containers instead of mutating global HTML styles. - Added
ConfigProvider.useConfig()andConfigProvider.config({ holderRender })support for a wider set of static APIs. - Added static
Modal.open()andModal.confirm()APIs that participate in the shared static host pipeline. - Unified popup container resolution across
Portal,Popup, andCascader. - Unified target container resolution across
Anchor,Sticky,BackTop,Overlay, andTour. - Improved
Stickycontainer observation withResizeObserver. - Improved
useTheme()to sync with DOM state, localStorage, system preference changes, and cross-tab storage events. - Added
onCopytoCopyToClipboardso copy results can be observed by consumers.
Notes for consumers:
AnchorandBackTopnow accept and resolveWindowas a first-class target container shape.BackTopnow defaults toConfigProvider.getTargetContainer()when present.ConfigProvideronly renders an internal scope node when scoped theme behavior is required.- Static APIs such as
Message.*,Notification.*,LoadingBar.*, andModal.open()can now be wrapped consistently throughConfigProvider.config({ holderRender }).
- Reworked
-
Migrate component styles from SCSS variables to CSS custom properties (
--ty-*) for better runtime theming support. - #9049b4bfc- Migrate ~80 structural SCSS constants (padding, sizing, transitions) to runtime-customizable CSS custom properties
- Tokenize hardcoded values in Button, Input, Card, Select, and Notification components
- Add component-scoped CSS variable fallback chains (e.g.,
--ty-btn-border-radiusfalls back to--ty-border-radius) - Add
ThemeConfigAPI toConfigProviderfor programmatic token and component-level overrides - Three-level customization: global tokens, component tokens, and scoped instance overrides via CSS