UI Styling
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
Design or audit UI for Qt/QML, Qt projects, web, or embedded MPU or MCU targets.
$ npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TheQtCompanyRnD/agent-skills qt-ui-design --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TheQtCompanyRnD/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/qt-ui-design .claude/skills/qt-ui-design && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "qt-ui-design" agent skill from https://github.com/TheQtCompanyRnD/agent-skills/tree/main/skills/qt-ui-design into .claude/skills/qt-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-ui-design", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TheQtCompanyRnD/agent-skills/tree/main/skills/qt-ui-designType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TheQtCompanyRnD/agent-skills qt-ui-design --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheQtCompanyRnD/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/qt-ui-design .agents/skills/qt-ui-design && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "qt-ui-design" agent skill from https://github.com/TheQtCompanyRnD/agent-skills/tree/main/skills/qt-ui-design into .agents/skills/qt-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-ui-design", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TheQtCompanyRnD/agent-skills qt-ui-design --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheQtCompanyRnD/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/qt-ui-design .cursor/skills/qt-ui-design && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "qt-ui-design" agent skill from https://github.com/TheQtCompanyRnD/agent-skills/tree/main/skills/qt-ui-design into .cursor/skills/qt-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-ui-design", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TheQtCompanyRnD/agent-skills.git --path skills/qt-ui-design--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TheQtCompanyRnD/agent-skills qt-ui-design --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheQtCompanyRnD/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/qt-ui-design .gemini/skills/qt-ui-design && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "qt-ui-design" agent skill from https://github.com/TheQtCompanyRnD/agent-skills/tree/main/skills/qt-ui-design into .gemini/skills/qt-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-ui-design", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TheQtCompanyRnD/agent-skills qt-ui-designInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TheQtCompanyRnD/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/qt-ui-design .github/skills/qt-ui-design && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "qt-ui-design" agent skill from https://github.com/TheQtCompanyRnD/agent-skills/tree/main/skills/qt-ui-design into .github/skills/qt-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-ui-design", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TheQtCompanyRnD/agent-skills qt-ui-design --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheQtCompanyRnD/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/qt-ui-design .opencode/skills/qt-ui-design && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "qt-ui-design" agent skill from https://github.com/TheQtCompanyRnD/agent-skills/tree/main/skills/qt-ui-design into .opencode/skills/qt-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-ui-design", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
qt-ui-designDesign or audit UI for Qt/QML, Qt projects, web, or embedded MPU or MCU targets.
Qt UI Design is an agent skill from TheQtCompanyRnD/agent-skills. Design or audit UI for Qt/QML, Qt projects, web, or embedded MPU or MCU targets. Use when creating screens, layouts, navigation, or auditing UX.
Its SKILL.md is about 6.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file. Compatibility notes: Designed for Claude Code, GitHub Copilot, and similar agents.
It sits in Frontend & Design, covering UI design. The repository describes itself as: Official Qt AI engineering skills for Claude Code, Codex, Copilot, Gemini,and other AI coding tools. The licence is BSD-3-Clause.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a784c48. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are qml and cmake).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
modularscale.comdoc.qt.ionngroup.comlawsofux.comw3.orgdeveloper.apple.comfluent2.microsoft.designm3.material.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code, GitHub Copilot, and similar agents.
From compatibility in the SKILL.md frontmatter.
Qt UI Design loads about 6.4k tokens when it runs. Until then it costs about 39 tokens; SKILL.md has 3,412 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from TheQtCompanyRnD/agent-skills at commit a784c48, republished under its BSD-3-Clause licence (© TheQtCompanyRnD). 3,412 words, ~6,359 tokens.
.claude/skills/qt-ui-design/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Before producing UI output, confirm you know: target platform, screen geometry, design system, content priority, viewing distance, locale, and input methods. Run the seven items below as a check against the conversation and the project state; ask only the items that are genuinely missing. When the user cannot answer an item, choose a sensible Qt default and name it in your response so the user can correct it.
Small edits to an existing design — for example "move the OK button to the right", "change this label", "make this red" — do not trigger the checklist. Apply section 1 silently and verify section 2 (contrast, hit-target) where relevant.
Use the seven items below to decide what is already known and what to ask. If the conversation or repository has already answered an item, do not re-ask.
If the user is requesting an audit of an existing design, skip to section 5 (Audit).
Apply these while designing. Do not ask about each one — use them to inform decisions silently.
Content and layout:
Motion communicates state, relationship, and causality. Every animation must be functional, not decorative.
transform and opacity in QML/CSS — these are GPU-composited. Animating geometry (width, height, anchors) triggers layout recalculation and causes jank.prefers-reduced-motion CSS media query. Qt 6.x has no built-in equivalent: expose a project-level setting (for example a singleton property bound to QSettings or to a runtime accessibility option) and gate animations on it. When the user opts out, replace animation with instant transitions — do not simply slow them down.For embedded typography, see section 4.4. This subsection governs desktop and web targets only.
Use a modular scale to derive all type sizes. A modular scale is a sequence of numbers related by a fixed ratio — every size is mathematically proportional to every other, producing a scale that feels harmonious rather than arbitrary. The ratios are listed below; see also https://www.modularscale.com/ for an interactive generator.
Choose a base — the size at which your body text looks best at the target viewing distance. For desktop at ~60 cm, 16 px is a reliable starting point. The base is your ms(0).
Choose a ratio — multiply the base by this ratio to get the next step up, divide to get the next step down. Pick based on the character of the product:
| Ratio | Name | Factor | Character |
|---|---|---|---|
| 8:9 | Major second | 1.125 | Compact, dense — good for data-heavy UIs, installer flows |
| 5:6 | Minor third | 1.200 | Moderate — good for general desktop apps |
| 4:5 | Major third | 1.250 | Open, comfortable — good for marketing, onboarding |
| 3:4 | Perfect fourth | 1.333 | Strong contrast — good for dashboards, bold hierarchy |
| 1:1.618 | Golden section | 1.618 | High contrast — use sparingly; large gaps between steps |
Map scale steps to roles — assign a step number to each typographic role. Never add roles not on the scale; if a size is needed, pick the nearest step.
| ms() | Value (px, rounded) | Role |
|---|---|---|
| ms(3) | 37.9 → 38 px | Display / hero text |
| ms(2) | 28.4 → 28 px | Page title / H1 |
| ms(1) | 21.3 → 21 px | Section heading / H2 |
| ms(0) | 16 px | Body — base |
| ms(-1) | 12.0 → 12 px | Caption / label / metadata |
Use a maximum of three to four of these steps per screen. More than four active sizes creates visual noise.
max-width on text containers — do not let prose span the full viewport.font.pointSize (which respects the platform DPI scale) over font.pixelSize for body text, or derive sizes from a singleton driven by Screen.pixelDensity. On the web, use relative units (rem).In QML, define the scale as a singleton (e.g. TypeScale.qml) so sizes are referenced by role name, not hardcoded values:
// TypeScale.qml — generated from modular scale, base 16, ratio 1.333
pragma Singleton
import QtQuick
QtObject {
readonly property real base: 16 // ms(0)
readonly property real h2: 21 // ms(1)
readonly property real h1: 28 // ms(2)
readonly property real display: 38 // ms(3)
readonly property real caption: 12 // ms(-1)
}Reference via TypeScale.h1 in components. Recalculate the whole singleton when the base or ratio changes — never patch individual values.
Register the singleton in your QML module so it can be imported. In a qmldir file:
module MyApp.Theme
singleton TypeScale 1.0 TypeScale.qmlIn CMake with qt_add_qml_module:
qt_add_qml_module(myapp_theme
URI MyApp.Theme
VERSION 1.0
QML_FILES TypeScale.qml
)
set_source_files_properties(TypeScale.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)Every desktop and web interface must support multiple input methods. Do not design for pointer alone.
activeFocus (for example a Rectangle border or scale bound to activeFocus) or use the style-specific focus visuals on Control. On the web, do not remove the focus ring without a styled replacement.Colour should communicate meaning consistently across the entire interface. Avoid arbitrary colour choices.
on + a capital letter (onSurface, onPrimary) collide with QML's signal-handler syntax and fail at load time ("Cannot assign a value to a signal") once the paired base token (surface, primary) is declared in the same object — exactly the pairing Material's on-colours require. Rename the QML property (e.g. textOnSurface, surfaceForeground).Ask question 7 in the intake. Act on the answer here.
DD/MM/YYYY. Use Qt's QLocale or the platform locale API.LayoutMirroring.enabled with LayoutMirroring.childrenInherit: true near the root of your scene; it handles anchors and Qt Quick Layouts. The following items still need explicit attention even when LayoutMirroring is enabled: Text.horizontalAlignment defaults, Image content (use mirror: true on directional icons), custom Canvas painting, and any manual x positions.Check every design against these before delivering:
When designing screens that involve AI features:
This section overrides desktop defaults. Read it fully before designing for any embedded, MCU, or hardware-constrained target.
Hardware facts that drive every decision (collect these during the intake step above if not already answered):
Software rasterisation means every visual effect costs CPU time.
| Allowed | Not allowed |
|---|---|
| Flat solid fills | Gradients |
| 1 px solid strokes | Drop shadows |
| Bitmap (PNG) icons and fonts | Blur or transparency layers |
| Opacity-only transitions | Simultaneous move + fade animations |
| Fixed pixel layout | Flexbox or fluid layout |
Prefer bitmap icons over vector paths — raster cost is paid at compile time, not runtime. Relax these constraints only when a GPU is confirmed. Exceptions. The constraints above apply to runtime software rasterisation. Qt Quick Ultralite supports compile-time-baked gradients via its static rendering pipeline. Some MCUs ship with a 2D blitter or a small GPU that relaxes the no-blur and no-transparency constraints. Verify the hardware data sheet and the Qt toolchain in use before treating the table as a hard prohibition.
Embedded fonts are bitmaps — size is fixed at build time. Get it right from the start.
| Viewing distance | Minimum size |
|---|---|
| ~50 cm (handheld, appliance) | 14 px min, 16 px preferred |
| ~1.0–1.5 m (HMI, instrument cluster) | 20 px min |
| ~2–3 m (wall panel, public display) | 28 px min |
Contrast ≥ 4.5:1 for all text. Embedded screens often have poor viewing angles and bright ambient light — higher contrast is always better.
| Rule | Desktop / web | MCU / embedded |
|---|---|---|
| Responsiveness | Flexbox, fluid | Fixed pixel layout |
| Animation | Easing curves, ≤ 400 ms | Opacity-only, < 200 ms |
| Progressive disclosure | Tooltips, hover | Explicit button only |
| Touch targets | 44 px recommended | 48 px default (relax only with explicit safety review) |
| Font rendering | Vector, OS-scalable | Bitmap, fixed at build time |
| Status communication | Color + token-based | Color + shape + text |
| Error recovery | Undo | Confirm before action |
| State visibility | Status bar / tooltip | Always on screen |
| Navigation depth | Unlimited | Max 2 levels |
| Localisation | QLocale, RTL mirroring | QLocale only (RTL rarely applicable) |
When auditing an existing design, categorize every finding:
Extended audit checklist for desktop/web targets:
© TheQtCompanyRnD, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/qt-ui-design of TheQtCompanyRnD/agent-skills.
Open the folder on GitHubat commit a784c48
Qt UI Design next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Qt UI Design this skillTheQtCompanyRnD/agent-skills | 470 | — | ~6.4k | Automated safety check: Pass | BSD-3-Clause | |
| UI StylingOhh-889/skyroc | 795 | 13 repos | ~2.5k | Automated safety check: Pass | MIT | |
| LobeHub Interactive Prototypelobehub/lobehub | 83k | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| Make Interfaces Feel Bettersamuelclay/NewsBlur | 7.6k | 10 repos | ~1.5k | Automated safety check: Pass | MIT | |
| UI UX Pro MaxZxBing0066/pixel-converter | 181 | 13 repos | ~2.6k | Automated safety check: Notes | BSD-2-Clause | |
| Design Dnazanwei/design-dna | 1.9k | 1 repos | ~2.1k | Automated safety check: Pass | MIT |
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
lobehub/lobehub
Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.
samuelclay/NewsBlur
Design engineering principles for making interfaces feel polished.
ZxBing0066/pixel-converter
UI/UX design intelligence with searchable database. An agent skill from ZxBing0066/pixel-converter.
zanwei/design-dna
Extract, define, and apply design DNA across three dimensions: design system (tokens), design style (qualitative feel), and visual effects (Canvas, WebGL, 3D, particles, shaders, scroll effects…
warpdotdev/warp
Turns a Figma frame or component into production code that matches the design, using the Figma MCP server and the project's own design system.
TheQtCompanyRnD/agent-skills
Extract component metadata from a Figma design system and generate production-ready QML controls.
TheQtCompanyRnD/agent-skills
Applies Qt Canvas2D (QtCanvas2D / Qt Canvas Painter, Qt 6.12+) best practices when producing or working with Canvas2D QML source code.
TheQtCompanyRnD/agent-skills
Builds and runs Qt Quick Test (qmltestrunner / CTest) for a QML project, then writes a Markdown report.
TheQtCompanyRnD/agent-skills
Extract design tokens, text styles, and variables from a Figma design system and produce a design-tokens.json plus ready-to-use QML singletons.
TheQtCompanyRnD/agent-skills
A skill your agent uses to generate or update Qt 6 CMake projects or edit CMakeLists.txt, add sources/resources or define targets (executable, QML module, library).
TheQtCompanyRnD/agent-skills
Generates Qt Quick Test cases (TestCase, SignalSpy, tryCompare) for QML components.
Categories
Design or audit UI for Qt/QML, Qt projects, web, or embedded MPU or MCU targets. Qt UI Design is an agent skill from TheQtCompanyRnD/agent-skills. Design or audit UI for Qt/QML, Qt projects, web, or embedded MPU or MCU targets.
Qt UI Design fits situations like: creating screens; tasks that involve UI design.
Run `npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a claude-code`. Or copy the skill folder (skills/qt-ui-design in TheQtCompanyRnD/agent-skills) into .claude/skills/qt-ui-design in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a codex`. Or copy the skill folder (skills/qt-ui-design in TheQtCompanyRnD/agent-skills) into .agents/skills/qt-ui-design in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TheQtCompanyRnD/agent-skills --skill qt-ui-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qt-ui-design, .gemini/skills/qt-ui-design, .github/skills/qt-ui-design and .opencode/skills/qt-ui-design in your project.
SKILL.md names no scripts, command-line tools or credentials: Qt UI Design is instructions for the agent only. Compatibility (from SKILL.md): Designed for Claude Code, GitHub Copilot, and similar agents..
SKILL.md names 8 domains. As links in the text: modularscale.com, doc.qt.io, nngroup.com, lawsofux.com, w3.org, developer.apple.com, fluent2.microsoft.design and m3.material.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Qt UI Design is published under the BSD-3-Clause licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.4k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Qt UI Design: UI Styling (Ohh-889/skyroc, 795 stars), LobeHub Interactive Prototype (lobehub/lobehub, 83k stars), Make Interfaces Feel Better (samuelclay/NewsBlur, 7.6k stars) and UI UX Pro Max (ZxBing0066/pixel-converter, 181 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TheQtCompanyRnD (a GitHub organization) maintains it in TheQtCompanyRnD/agent-skills, which has 470 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 8, 2026.
Source: TheQtCompanyRnD/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.