C++ library, PySide6 bindings, desktop Galleries, and WebAssembly delivery. It
also gives focused multi-line text input a smoother, policy-aware auto-height
transition while keeping programmatic sizing synchronous.
Accessible appearance and motion
- Applications can select a complete `HighContrast` semantic palette without
replacing the Fluent design contract. Existing Light and Dark palettes keep
their previous values, and apps that do not opt in retain their current
theme.
- The application-wide `MotionPolicy` offers `Full`, `Reduced`, and `Disabled`
modes. Reduced mode keeps short finite transitions while suppressing
continuous motion; Disabled mode settles animations immediately. Full
remains the default, so existing applications keep their prior timings.
- C++ and PySide6 expose the same theme and motion choices. The Gallery settings
page makes both preferences directly testable, and changing a local animation
switch while a transition is running now settles that component immediately.
- The legacy boolean `ThemeRegistry` palette overloads remain available but are
deprecated in favor of the theme enum, which cannot silently collapse High
Contrast into Light.
Gallery and browser parity
- The C++ and Python Galleries present matching theme and motion settings and
use the public library APIs rather than Gallery-only styling.
- The Python Gallery keeps accepted local activation sockets alive through the
disconnect drain window, preventing missed single-instance reactivation on
Windows ARM64.
- The WebAssembly Gallery accepts Light, Dark, and High Contrast through its URL
and message bridge, honors browser forced-colors, and restores the user's
selected theme when forced-colors ends.
- The bilingual project website cycles through all three themes, follows the
browser's reduced-motion preference for site effects, and keeps its embedded
C++ Gallery synchronized.
Text input polish and fixes
- A visible, focused `TextEdit` now animates content-driven growth and collapse
between its configurable minimum and maximum visible-line bounds. Continued
editing retargets the active transition; Reduced and Disabled modes resolve
it through the same global policy.
- Programmatic text and layout-metric setters still reach their final geometry
synchronously. IME preedit leaves the wrapper stable until composition
commits, and crossing the scrolling threshold no longer interrupts an active
height transition.
- `AutoSuggestBox` refreshes filtered results after its model resets, so callers
no longer need to re-enter the query to see replaced data.
There are no breaking runtime API changes in this release.
[Compare v1.7.6...v1.8.0](https://github.com/calvinhxx/Fluent-Qt/compare/v1.7.6...v1.8.0)
<!-- docs-nav:bottom:start -->
---
[Contents](../SUMMARY.md) · [Releases index](README.md)
<!-- docs-nav:bottom:end -->