
Goo Ui
- Updated July 26, 2026
- obselate/Goo
goo-ui is a Claude Code skill in the AI & Agent Building category. Goo UI authoring skill: rules, surface map, canonical patterns, and engine facts so output is idiomatic Goo on the first try.
Key points
- goo-ui
- AI & Agent Building
- AI-coding skill
Goo Ui by the numbers
- Data as of Aug 4, 2026 (Skillselion catalog sync)
/plugin marketplace add obselate/Goo/plugin install goo-ui@gooAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Last updated | July 26, 2026 |
|---|---|
| Repository | obselate/Goo ↗ |
What it does
Goo UI authoring skill: rules, surface map, canonical patterns, and engine facts so output is idiomatic Goo on the first try.
README.md
Goo
goo is a full-featured s&box UI framework in C#. structure, style, and behavior in one language.
think about it like this: if markup and stylesheets did the whole job, there'd be no JavaScript. goo exists to consolidate layout, behavior, and styling into one language with a simplified syntax.
Docs: https://obselate.github.io/Goo/docs/ itch.io: https://obselate.itch.io
Claude Code skill
goo provides a skill for creating goo UI in s&box. install it then next time you mention goo or creating UI, the skill will be invoked. Install in claude code with:
/plugin marketplace add obselate/Goo
/plugin install goo-ui@goo
If you're using another agent, copy .claude-plugin/goo-ui/skills/goo-ui/ into your agent's skills directory.
Quick example
using Goo;
using Sandbox.UI;
namespace Sandbox;
public class CounterUI : GooPanel<Container>
{
private int _count;
protected override Container Build() => new Container
{
Padding = 16,
Gap = 12,
FlexDirection = FlexDirection.Row,
AlignItems = Align.Center,
BackgroundColor = Color.White,
BorderRadius = 12,
Children =
{
new Text( _count.ToString() ),
new Container
{
Padding = 8,
BorderRadius = 6,
BackgroundColor = Color.Orange,
HoverBackgroundColor = Color.Cyan,
TransitionMs = 150,
OnClick = e => _count++,
Children = { new Text( "+" ) },
},
},
};
}
Build() is a pure function of your state. Event handlers trigger a rebuild automatically, so OnClick = e => _count++ is the whole wiring; the reconciler applies only what changed. Hover and focus variants like HoverBackgroundColor resolve engine-side with no rebuild at all.
Mount it
GooPanel<TRoot> is a Sandbox.PanelComponent, so CounterUI is a Component. In the s&box editor:
- Create a GameObject.
- Add Component ->
ScreenPanel(fullscreen overlay) orWorldPanel(3D worldspace). - Add Component ->
CounterUIon the same GameObject. - Press play.
What is in the box
- Layout: a nested tree of
Container/Textnodes with flexbox positioning, plus blobs for images, shapes (Sector,Arc,Polygon), text entry, SVG, web, and 3D scene panels. - Styling: typed style properties on every node, no stylesheet and no class strings; styles are values you can compute inline, with built-in
Hover/Active/Focusvariants and transitions. - Reactive state: ordinary C# fields are the source of truth; handlers rebuild automatically, and
Cellgives reusable widgets their own private state. - Animation: springs, smooths, decays, tweens, and timelines advanced in
Tick, sampled inBuild; transforms and colors are the cheap per-frame channels. - HUD scaffolding:
Hud.Overlay,Hud.Anchored,Hud.Fill,Hud.Scrimfor full-screen layers and corner pinning, andGoo.Controlsfor ready-made buttons and sliders. - Effects and input: custom shaders per panel via
ShaderEffectwith live uniforms, keyboard tracking withKeyTracker, and drag and drop withDragSource/DropZone.
Start with your first panel, or jump to the overview.