# Known differences

> Where Envy's Godot and web runtimes draw or behave slightly differently - fonts, clipping, shadows, blur, group opacity, focus search and lists.

Source: https://envyui.com/docs/differences

Both runtimes read the same document and share their layout, component, animation and geometry rules. A few things are drawn by each engine's own tools, and differ slightly.

| Area | Web | Godot |
|---|---|---|
| Fonts not embedded | Google Fonts by family name | `EnvyUI.fonts` mapping, else a SystemFont with that name |
| Rounded clipping | Always clips to the rounded corners | `clip_children` when the frame has a visible fill, otherwise a rectangle |
| Drop shadows | CSS blur | StyleBoxFlat `shadow_size`, about blur × 0.6; shapes have no shadow yet |
| Inner shadow | `box-shadow: inset`, border on top | A shader, border underneath |
| Extra fills and strokes | A layer stack inside the node | Two canvas items under the children; a button's hover border color doesn't apply while it has extra fills or strokes |
| Layer blur | `filter: blur()` on the layer | Blurs a screen copy of the layer's area, so content behind a translucent layer is blurred too |
| Background blur | `backdrop-filter` | A screen-texture shader, a little softer at large radii; only blurs what was drawn earlier on the same canvas layer |
| Group opacity | The group is flattened | `modulate` multiplies each child, visible where children overlap |
| Large corner radii | Smooth | Slightly faceted (StyleBoxFlat corner detail tops out at 20) |
| Focus search | Nearest button by position | Godot's own search; unusual layouts can pick a different neighbour |
| Escape and overlays | Escape doesn't close overlays (gamepad B does) | `ui_cancel` (Escape, B) closes the top overlay |
| Lists | Re-expanded on every data change, elements reused by id | Rebuilt only when item keys or order change; other changes update in place |

Embedded fonts, layout, anchors, auto layout, components, properties, bindings, events, transitions, overlays, translations and easing behave the same in both.
