FormWren
Pre-release docs

Control locator

Find A Control

Change
Start here
Ownership rule
ChangeSize, radius, corner type, fill, border, gradient, texture
Start hereRoundedRectangleGenerator
Ownership ruleBase generated shape and style
ChangeSoft edge, shadow, glow, emboss, SDF mask, cache
Start hereRoundedRectSDFGraphic
Ownership ruleSDF-only Canvas behavior
ChangeCanvas dimensions and layout
Start hereRectTransform
Ownership ruleCanvas size and anchors
ChangeWorld Mesh overlap and draw order
Start hereGenerator World Mesh Draw Order
Ownership ruleMeshRenderer presets; not a Canvas Graphic control
ChangeHover, pressed, disabled, click
Start hereRoundedRectButton
Ownership ruleInteraction states; visual remains SDF or Canvas mesh
ChangeRounded clipping with visible outer effect
Start hereRoundedRectSdfMaskDriver
Ownership ruleSeparate decoration from clipping
ChangeTransparent PNG or raster PSD of one SDF
Start hereRoundedRectSDFGraphic Export
Ownership ruleOne live SDF graphic, not its children

If a control changes nothing visible, verify the drawing component in What Draws What.

Tools Menu

In Unity's main menu, Tools > Rounded Rectangle groups the package commands by task: Create, Arrange, Rendering Path, Export, Runtime, Examples, Setup, and Documentation. GameObject, component-context, and Inspector commands provide contextual aliases for the same workflows.

Paired Canvas SDF ownership

Inspector Roles

A generator-driven Canvas SDF uses both Inspectors. Edit the base shape and appearance on the Generator; edit SDF effects and rendering controls on the SDF graphic. Only the groups relevant to the selected rendering owner are shown.

Rounded Rectangle Generator
Size, corner radius, corner locks, border width, fill, gradients, textures, mesh detail, and rendering-path conversion.
Canvas SDF Graphic
Soft edge, drop shadow, glow, emboss, material ownership, raycast, rounded masking, padding, render cache, and single-SDF export.

Edit A Material Without Changing The Package Default

Keep Automatic material selection for normal package behavior. To edit shader or material properties, open Material > Details and choose Create Editable Copy…. This creates and assigns a project-owned .mat based on the material currently visible on the selected World Mesh, Canvas Mesh UI, or Canvas SDF object.

Use Assign Existing Material… only when World Mesh or Canvas Mesh UI objects should intentionally reuse a shared material asset. Canvas SDF uses Assign Existing SDF Template…. Edits affect every renderer or graphic that uses the assigned asset. Restore Automatic Material returns the selected object to package-managed selection without deleting the custom asset. Canvas SDF chooses the normal or Overlay copy source from the selected Canvas context.

Shape And Corner Controls

Use the Generator Inspector or Scene handles for Width, Height, shared radius, per-corner radii, and Border Width. An unlocked corner keeps an independent radius. Re-locking it joins the retained shared-radius group without overwriting corners that were already locked.

For a Bevel profile, increase Bevel Tip Fillet Radius to round the chamfer tips. Border Width may stay at 0: zero width removes the border band but does not disable the outer silhouette fillet. On Canvas SDF, an effective fillet below half a screen pixel renders sharp by design.

Shape Corners With Bulge

Open Corner Style in the Generator Inspector and choose Circular or Squircle. Use equal values for an evenly inflated silhouette, or vary TL, TR, BR, and BL to emphasize selected corners.

Corner Bulge Amount
Pushes the outer silhouette outward per corner, using the same units as corner radius.
Corner Bulge Border Scale
Uses 1 for nominal border width, values above 1 for thicker corners, and values below 1 for thinner corners.
Corner Bulge Side Blend
Softens the transition from each corner into its adjacent straight sides.
Corner Bulge Join Smoothness
Smooths the handoff between corner and side bulge regions; very short tangent sides limit the usable smoothing range automatically.

World Mesh, Canvas Mesh UI, and generator-driven Canvas SDF take these values from RoundedRectangleGenerator. A standalone RoundedRectSDFGraphic exposes the same controls under Corner Style. Bevel ignores Corner Bulge and uses its chamfer and tip-fillet controls instead.

Large bulge values can extend beyond the nominal Width and Height. Recheck nearby layout and clipping clearance after increasing them.

When a World Mesh has non-uniform Transform scale, use Bake XY Scale Into Size before judging circular corners or bevel fillets. Canvas destinations take dimensions from their RectTransform.

Surface, Gradient, And Texture Controls

Inner Surface Details controls the fill colour, fill gradient, and fill texture. Border Details controls border alignment, thickness gradient, border colour profile, spatial tint, and border texture. Single Colour, Three Samples, and Gradient are alternative border-colour profiles; Across Border Thickness and Spatial Tint modify different axes.

Whole Shape applies an Inner Surface gradient to the border only while Fill Inner Surface is enabled. Turning Fill off keeps that setup for later but returns the visible border to Border Details.

Texture Strength controls how strongly the sampled texture contributes. Its alpha behavior depends on the selected texture mode, so use the mode description in the Inspector when the texture also acts as a cutout or opacity mask.

World Rendering Controls

The Generator Inspector follows the active drawing path. World Mesh shows World Mesh Draw Order and world-surface controls while hiding Canvas sizing and sorting. Canvas Mesh UI and Canvas SDF show Canvas Size Ownership; their Canvas and Graphic components own draw order. Canvas-Linked MeshRenderer appears only when a MeshRenderer intentionally remains under a Canvas.

For package-managed World Mesh materials, Cast Scene Shadows configures the supported material and renderer state. With a Custom material, the renderer's shadow mode remains under user control because the package cannot infer the custom shader's shadow support.

What Draws What?

Result
Drawn by
Base edits
ResultWorld mesh
Drawn byMeshRenderer
Base editsRoundedRectangleGenerator
ResultCanvas Mesh UI
Drawn byRoundedRectCanvasGraphic
Base editsRoundedRectangleGenerator
ResultCanvas SDF
Drawn byRoundedRectSDFGraphic
Base editsGenerator when paired; SDF graphic when standalone
ResultCached Canvas SDF
Drawn byRoundedRectSDFGraphic
Base editsDisable cache to inspect the same graphic live
ResultCached world mesh
Drawn byMeshRenderer
Base editsDisable cache to restore the same renderer's live mesh materials

Component Map

Core drawing
RoundedRectangleGenerator
RoundedRectCanvasGraphic
RoundedRectSDFGraphic
Interaction and layout
RoundedRectButton
layout helpers
RoundedRectUIRaycast
Cache and masking
RoundedRectCachedRenderController
WorldRoundedRectCacheAdapter
RoundedRectSdfMaskDriver
Advanced runtime
RRAnimate
Runtime Shape Handles
Add from Tools; configure or remove on the visible root.

For two-draw rounded masking, use separate sibling driver and stencil SDF graphics under the same parent. Keep the Generator on the driver only; put Unity Mask, RoundedRectSdfMaskDriver, and clipped descendants on the stencil. With Configure Mask On Enable on, layout, generator shape, and runtime radius/border overrides stay synchronized while driver alpha, textures, gradients, dash, partial fill, and outer effects cannot cut the hidden stencil.

Canvas cache remains visible through the same RoundedRectSDFGraphic; world cache remains visible through the same MeshRenderer. Use Rendering Paths for drawing destinations, Performance for cache decisions, and Examples for locatable scenes.

C# Namespace

All shipped C# types use the asset-named namespace:

using RoundedRectangle;

Inspector and menu workflows do not require a using directive.

Export One SDF Or Selected Canvas Visuals

One SDF: select one RoundedRectSDFGraphic, then use Tools > Rounded Rectangle > Export > Current SDF as PNG... or Current SDF as PSD.... Equivalent commands remain in the SDF Inspector and under GameObject > Rounded Rectangle. Cache is not required; PSD contains one raster layer and a composite preview.

Selected Canvas PNG: select one Canvas GameObject containing the intended RoundedRectSDFGraphic and/or RoundedRectCanvasGraphic descendants, then choose Tools > Rounded Rectangle > Export > Selected Canvas Visuals as PNG.... The result is one flattened transparent PNG in Canvas order. Active text/icons, masks or clipping, cache-on state, nested Canvas, world objects, and additive, multiply, or mismatched custom blends are refused. Selection PSD and editable layer export are not public workflows.