explaingit

zhuzichu520/fluentui

4,502C++Audience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A component library that adds Microsoft's Fluent Design visual style to Qt QML desktop applications, buttons, inputs, toggle switches, and more. Active development has moved to the newer FluentUI Pro version.

Mindmap

mindmap
  root((fluentui))
    What it does
      Fluent Design for Qt
      Desktop UI controls
      Cross-platform apps
    Components
      Buttons and toggles
      Text inputs
      Frameless window
      App title bar
    Tech Stack
      C++ and QML
      Qt 6 and Qt 5
      CMake
      PySide6 support
    Setup
      Pre-built binaries
      Build from source
    Audience
      Qt developers
      Desktop app builders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build Windows-style desktop apps with Qt using Fluent Design controls without designing them from scratch.

USE CASE 2

Add toggle switches, frameless windows, and a routing-capable app shell to a QML project.

USE CASE 3

Use FluentUI components from Python apps via the PySide6-FluentUI-QML companion package.

Tech stack

C++QtQMLCMakePySide6

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Qt 6 and CMake, pre-built binaries are available for Windows, Ubuntu, and macOS to skip the build step.

Use freely for any purpose including commercial projects, as long as you keep the copyright notice.

In plain English

FluentUI for QML is a component library that brings Microsoft's Fluent Design look to desktop applications built with Qt QML. Qt is a cross-platform toolkit for building native desktop and embedded apps, and QML is the language used to describe Qt's user interfaces. Fluent Design is the visual style used in modern Windows applications, characterized by clean layouts, consistent controls, and layered depth effects. The README opens with a notice: users are directed to use the newer FluentUI Pro (FluentUI2) instead of this original version. The original repository still receives downloads, and the code remains available, but active development has moved to the successor project. This version supports Qt 6 on its main branch, with a separate branch for Qt 5. A companion package called PySide6-FluentUI-QML extends support to Python projects using PySide6. The required Qt modules are Qt Core, Qt Quick, Qt QML, and Qt ShaderTool, with optional modules for translations, SVG images, and compatibility. The included components cover the standard set of interface controls: buttons (standard, filled, text, and toggle variants), text inputs for single and multiple lines, toggle switches, radio buttons, icons, a frameless window type, an application title bar, and a routing-capable app entry component for single-page applications. The component table in the README links to screenshots of each control. Building from source uses CMake and works with Qt Creator or CLion. Pre-built releases are also available for Windows, Ubuntu, and macOS. The library is MIT licensed.

Copy-paste prompts

Prompt 1
I'm building a Qt QML desktop app and want it to look like a modern Windows app. Show me how to set up zhuzichu520/FluentUI, add a filled button and a toggle switch, and wire up a simple single-page app with routing.
Prompt 2
Using the FluentUI QML library, create a settings page with a text input, a toggle switch, and a frameless window title bar. Show the full QML code.
Prompt 3
How do I build the FluentUI QML library from source on Ubuntu using CMake and Qt 6? Show the full step-by-step build and install commands.
Prompt 4
I'm using PySide6 to build a Python desktop app. How do I add FluentUI QML components to it using PySide6-FluentUI-QML? Show a minimal working example.
Open on GitHub → Explain another repo

← zhuzichu520 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.