{"version":"v1.0","client_state":{"Studio.default":{"fields":{"primary":"#682747","secondary":"#3a52b0","success":"#2f9e64","warning":"#f0a91b","error":"#e5484d","info":"#0e9bc4","background":"#fafafa","surface":"#ffffff","interface":"#f0f0f1","text":"#171717","muted":"#6b6b6e","d_primary":"#682747","d_secondary":"#3a52b0","d_success":"#2f9e64","d_warning":"#f0a91b","d_error":"#e5484d","d_info":"#0e9bc4","d_background":"#0a0a0a","d_surface":"#151515","d_interface":"#212121","d_text":"#f5f5f5","d_muted":"#a0a0a3","spacing":0.1875,"box":0.75,"field_":0.75,"selector":0.375,"stroke":1.0,"font":"ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'"},"persist":"local","send_to_server":true},"ColorScheme.default":{"fields":{"mode":"system"},"persist":"local","send_to_server":true}},"endpoints":{"action":"/_bretzel/action","sse":"/_bretzel/sse","refetch":"/_bretzel/refetch"},"csrf":"670bba5aad6dc2ac1f3e97fa1a2929ef","page_id":"af60379235294e27a90a04b846314125","address":""}
ui.title · ui.meta_tag · ui.outlet · ui.fragment · ui.pending

Page utilities

The tab title, the share preview, where a page lands in its layout, wrapper-free groups and an in-flight indicator.

A tab title from your data

ui.title replaces the route's title with one computed while the page renders — this very tab starts with the unread count.
Inbox3 unread
Lena NovakSafari date bug — fixed in #418
StripePayout of €4,280.00 is on its way
Idris OkaforStandup notes, Monday
Maya ChenNew pricing page draft

The link preview

ui.meta_tag adds a <meta> to the page's head: Open Graph for LinkedIn and Slack, twitter:card for X.
Share image for this page
showcase.bretzel-py.devPage utilities — Bretzel UIHow the link looks when pasted in Slack or on LinkedIn.

Where a page lands

ui.outlet marks the spot in a layout where each page renders. This site's own shell, in the code tab, puts it inside the pane next to the sidebar.
ui.sidebar
ui.outlet()Every page renders here.

A group without a wrapper

ui.fragment gathers components into one value that renders with no element around it — here, a table cell made of a name and a badge.
CustomerPlan
Northwind TradersBusiness
Lumen StudioTeamTrial
Atlas FreightStarter

An action in flight

ui.pending() is true while an action runs, after a 200 ms grace so fast actions never flicker. Give it a handler to follow that action from anywhere on the page.
Pricing page3 unpublished changes