Creator
Make a panel or an action here, in the browser. It runs while you build it, it writes the script Clink will run, and it hands you the file your phone opens.
Preview
Typed so far
Click anything in the panel to select it. A new block lands inside whatever is selected.The panel is running. Buttons set state and type into the field above, the way they will on the keyboard.
def initial():
return {"count": 0}
def view(state):
return vstack([
text("Count: " + str(state["count"]), size=22, weight="bold"),
hstack([
button("-", set={"count": state["count"] - 1}),
button("+", set={"count": state["count"] + 1}),
]),
button("Insert", insert=str(state["count"]), style="primary"),
])
Onto your phone
- Download the .clinkpanel file. On an iPhone it lands in Files.
- Open it. Clink stores it with a fresh id, so importing the same one twice never overwrites the first.
- Switch it on in Clink, then open it from the keyboard.
Nothing here leaves the browser. The file is written on this device, and no part of it is sent anywhere.
Panels ›Preview
What gets insertedWhat replaces it
def transform(text):
text = text.strip()
text = text.upper()
text = text + "!"
return text
Onto your phone
- Download the .clinkext file. On an iPhone it lands in Files.
- Open it. Clink stores it with a fresh id, so importing the same one twice never overwrites the first.
- Switch it on in Clink, then open it from the keyboard.
Nothing here leaves the browser. The file is written on this device, and no part of it is sent anywhere.
Actions ›