squig.sh
An infinite canvas of real UI components that all render like you sketched them on a napkin. Argue about structure, not corner radius.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 4 · Act 10 · Transact 0 · Score: Not yet scored
Tool inspector
squig_add_nodes
Add a batch of complete .squig.json nodes in one undo step. All nodes are validated before insertion. Use the individual creation tools for default sizes and generated IDs.
Page: /
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
documentId |
string | yes | Current documentId returned by squig_read_canvas; protects against editing a different file |
nodes |
array | yes | — |
Raw JSON schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"documentId": {
"type": "string",
"minLength": 1,
"description": "Current documentId returned by squig_read_canvas; protects against editing a different file"
},
"nodes": {
"minItems": 1,
"maxItems": 1000,
"type": "array",
"items": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"y": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"w": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"h": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"seed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"groupIds": {
"maxItems": 32,
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
"locked": {
"type": "boolean"
},
"flipX": {
"type": "boolean"
},
"flipY": {
"type": "boolean"
},
"rotation": {
"type": "number"
},
"fill": {
"type": "string",
"enum": [
"none",
"paper",
"light",
"strong"
]
},
"stroke": {
"type": "string",
"enum": [
"light",
"regular",
"heavy"
]
},
"ink": {
"type": "string",
"enum": [
"ink",
"muted",
"faint"
]
},
"dashed": {
"type": "boolean"
},
"fontSize": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"text": {
"type": "string",
"maxLength": 100000
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right"
]
},
"verticalAlign": {
"type": "string",
"enum": [
"top",
"center",
"bottom"
]
},
"fixedW": {
"type": "boolean"
},
"fixedH": {
"type": "boolean"
},
"bold": {
"type": "boolean"
},
"italic": {
"type": "boolean"
},
"underline": {
"type": "boolean"
},
"boxed": {
"type": "boolean"
},
"boxBorder": {
"type": "boolean"
},
"boxDashed": {
"type": "boolean"
},
"boxFill": {
"type": "string",
"enum": [
"none",
"paper",
"light",
"strong"
]
},
"boxStroke": {
"type": "string",
"enum": [
"light",
"regular",
"heavy"
]
},
"boxInk": {
"type": "string",
"enum": [
"ink",
"muted",
"faint"
]
},
"points": {
"maxItems": 10000,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
{
"type": "number",
"minimum": -1000000,
"maximum": 1000000
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"head": {
"type": "boolean"
},
"bind": {
"type": "array",
"items": [
{
"type": [
"string",
"null"
]
},
{
"type": [
"string",
"null"
]
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"anchors": {
"type": "array",
"items": [
{
"anyOf": [
{
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left",
"center"
]
},
{
"type": "null"
}
]
},
{
"anyOf": [
{
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left",
"center"
]
},
{
"type": "null"
}
]
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"lineStyle": {
"type": "string",
"enum": [
"straight",
"elbow",
"curved"
]
},
"elbowAxis": {
"type": "string",
"enum": [
"x",
"y"
]
},
"elbowOffset": {
"type": "array",
"items": [
{
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
{
"type": "number",
"minimum": -1000000,
"maximum": 1000000
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"curveBend": {
"type": "array",
"items": [
{
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
{
"type": "number",
"minimum": -1000000,
"maximum": 1000000
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"snap": {
"type": "boolean",
"const": false
},
"crop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"w": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
},
"h": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"w",
"h"
],
"additionalProperties": false
},
"link": {
"type": "string",
"maxLength": 2000
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]{1,80}$"
},
"type": {
"type": "string",
"enum": [
"component",
"shape",
"text",
"arrow",
"draw",
"image"
]
},
"kind": {
"type": "string"
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"shape": {
"type": "string",
"enum": [
"rect",
"ellipse"
]
},
"src": {
"type": "string"
},
"naturalW": {
"type": "number",
"exclusiveMinimum": 0
},
"naturalH": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"x",
"y",
"w",
"h",
"seed",
"id",
"type"
],
"additionalProperties": {}
}
}
},
"required": [
"documentId",
"nodes"
],
"additionalProperties": false
}
Similar websites
morphus.myles4miles.chatgpt.site
Morphus is an AI-native workspace for designing worlds and generating playable game experiences.
damnpdfs.com
Install the DamnPDFs Codex plugin, pair a browser workspace and use PDF, image and file tools from your coding agent. Includes setup and privacy limits.
insignifi4nt.github.io
broCAD/M: local-first CAD and CAM for parametric design, wire EDM planning, simulation and controller export.
cabinet.varera.studio
The Cartographer's Cabinet