Features
Everything in the box
Ten areas, one package. Each links to the part of the guide that covers it in detail.
- One file per componentA
.dcuefile: a C# script, markup and a scoped style. - No virtual DOMThe compiler writes the exact update for each binding. Nothing is diffed.
- Reactive state
[State],[Derived],[Effect], and[Tick]for values the game owns. - Props and two-way bindings
[Prop],[Bindable],bind:value,bind:checked,bind:this. - Blocks
{#if}, keyed{#each},{#key},{@const},{@html}. - Virtual lists
{#virtual}keeps elements only for the rows on screen: 10,000 rows cost 0.55 ms. - Slots and contextNamed slots, CSS variables passed into children, context for descendants.
- Reactive plain classesA source generator gives any
partialclass reactive[State]properties. - Batched updatesHowever many values change, the page updates once per frame.
- Reach from game code
query:apinames andQ<T>/Query<T>, indexed and allocation-free.
- Every common layout modeBlock, inline, flexbox, grid, tables, floats, positioned and sticky.
- Browser cascadeUser-agent sheet,
<link>,<style>,@import, inline styles,!important, custom properties. - Modern selectors
:has(),:is(),:where(),:not(),:nth-child(of S),:focus-visible, attribute operators. - Values and units
calc(),clamp(), viewport units,oklch()and the other color spaces,var(),env(). - Media and feature queries
@media(size, orientation, pointer, color scheme, reduced motion),@supports. - Transforms and motion2D and 3D transforms, transitions, keyframe animations,
steps(),cubic-bezier(). - ScrollingOverflow, sticky, smooth scrolling, overlay or custom scrollbars,
line-clamp,text-overflow. - Styled controlsScrollbar parts, customizable
<select>, range parts, checkbox and radio, in Chrome's syntax.
- One draw call per pageGPU instance records and one shader for boxes, text, images and gradients.
- Browser-exact blendingColors are blended in sRGB as a browser does, also in Linear projects.
- BackgroundsMultiple layers, linear, radial and conic gradients,
background-clip: text, box and text shadows. - Filters
filterandbackdrop-filter: blur, brightness, contrast, drop-shadow, grayscale, hue-rotate and more. - Clipping, masking, blending
clip-pathshapes,maskimages and gradients, everymix-blend-mode,isolation. - Partial repaintOnly what changed is painted and uploaded; an idle page costs about a microsecond.
- GPU transitionsTransform, opacity and color transitions can run in the shader with no CPU work per frame.
- Burst kernelsThe heaviest loops are Burst jobs when Burst is present, with a plain C# fallback.
- Complex scriptsArabic, Hebrew, nine Indic scripts, Khmer, Myanmar, Thai, Lao, Hangul, Tibetan and more.
- HarfBuzz-identical shapingA C# shaper checked against HarfBuzz on 20,000 texts in 38 scripts.
- Font fallback per characterGame font packs first, then what the browser would pick, then any font that has the glyph.
- Bidirectional text
direction,dir="auto",<bdi>, right-to-left editing. - Browser line breakingUAX #14 with Chromium's CJK rules, and dictionaries for Thai, Lao, Khmer and Burmese.
- Color emojiCOLR v0, CBDT and sbix color fonts.
- Sharp at any sizeBitmap glyphs for static text, distance fields for transformed or animated text.
- Per-frame text without garbage
{time:F1}writes digits straight into the page: no string is made.
- Pointer eventsMouse, touch and pen, hover and active states, pointer capture, wheel.
- Accurate hit testingFollows what is painted: transforms, rounded corners, clips,
clip-path,pointer-events. - Keyboard and focus
Taborder withtabindex,:focus-visible, Enter and Space activation. - Gamepad navigationD-pad and stick move focus to the nearest element; confirm, cancel and scroll are mapped.
- TouchTaps, drag scrolling with momentum,
touch-action. - Text editingCaret, selection, undo and redo, clipboard, word deletion, IME composition, on-screen keyboards.
- Form controlsInputs, textareas, checkboxes, radios, ranges and selects that look and size like Chrome's.
ElementFromPointThe browser's own hit query, for drag and drop and custom interactions.
- Inline SVGShapes are DOM elements: page CSS,
:hoverand color transitions apply to them. - SVG filesAs
<img>sources and background images. - Paths, gradients, groupsAll path commands, linear and radial gradients,
use,symbol, transforms, group opacity. - Clip paths and masks
clip-pathandmaskattributes, so icon sets and design-tool exports draw correctly. - Iconify by name
<Icon id="mdi:home" />for any of 200,000+ icons, sized byfont-sizeand colored bycolor. - Only what you useOne command downloads the icons your components name, and nothing else.
- License checksOnly icon sets that allow commercial use without attribution are accepted; the rest are refused.
- Recolor without redrawingSingle-color drawings are coverage masks, so hover colors cost nothing.
- AppsA folder with
App.dcueandApp.cssis your game's UI; aDevCoreAppcomponent shows it. - Four render modesScreen overlay, in the camera before post-processing, world panel, render texture.
- World panelsSized in meters, mipmapped, redrawn only when changed, clicked by rays.
- Pages on meshesA render texture with an input collider maps hits through UVs.
- Unity content elements
<unity-camera>,<unity-model>,<video>and-unity-material. - Scale modesConstant pixel size, scale with screen size, constant physical size, like Canvas Scaler.
- Shared resourcesFonts, images and files are loaded once and shared by every view.
- Licences in buildsEvery player build gets a
Licensesfolder with the notices it needs.
- YAML filesOne file per language; nested keys become dotted names.
T("key")In templates and in code. Reading a text allocates nothing.- Reactive switchingSet
Locale.Currentand every text updates in the same frame. - Plural formsCLDR rules for 216 languages, matching the browser's
Intl.PluralRules. - FormatsNumbers and dates follow the locale's culture.
- Right-to-leftThe page's
langanddirfollow the locale.
- Live PreviewDevice presets, dark mode, touch, language, direction, and a picker with box-model, grid and flex overlays.
- Hot reloadMarkup, CSS and component C#, keeping state, in and out of Play mode.
- InspectorStyles with their source lines, computed values, box model, component state, listeners, layers, performance.
- VS Code extensionCompletion, hover, go to definition, signature help, problems, quick fixes, formatting, snippets.
- Errors at the sourceCompiler errors point at the
.dcueline and column. - Locale editorKeys by languages, with filters for missing and unused texts.
- Stats overlayEngine timings on screen, and markers in the Unity Profiler.
- SamplesCounter, settings, forms, shop, notes, icons, gamepad menu, leaderboard, inventory, tables, effects, languages.
Read how each part works
The guide has a chapter for every area above, and the API reference lists the types you call from game code.