Skip to content

Getting started

Playground

Sandbox

A sandbox for trying a new button, a new CTA or any other control against the token system — without touching the components, patterns or tokens that are already shipping. When an experiment works, it gets promoted deliberately.

Why this page existsPermalink to this section

Customizing the system means changing tokens for everything at once. Experimenting means changing one thing, in one place, reversibly. Those are different jobs and this is the second one.

JobWhere it happensBlast radius
Rebrand the whole systemsrc/tokens/*Every component, page and preset
Add a selectable themesrc/tokens/presets.tsAnything inside the preset scope
Try a new button or CTAsrc/components/playground/*This page only — nothing imports it

Delete-safe by construction

Nothing in src/components/ui, src/tokens or any docs route imports from the playground folder. An experiment can be deleted at any point and the build stays green — which is what makes it safe to let an agent work fast in there.

The local contractPermalink to this section

An experiment declares its own --x* variables and defaults them from system tokens. It inherits theme, preset, light and dark for free, and every value you deliberately diverged on is already named — which is exactly what the promotion step needs.

src/components/playground/experimental-button.tsx
<button
  style={{
    // Local names, system defaults — theme and preset still apply.
    "--xbutton-height": "var(--control-height-md)",
    "--xbutton-background": "var(--brand-primary)",
    // Opts out of: Radius. The reference uses a corner the scale has no step for.
    "--xbutton-radius": "3px",
  } as React.CSSProperties}
  className="h-[var(--xbutton-height)] rounded-[var(--xbutton-radius)]
             bg-[var(--xbutton-background)]"
/>

Live sandboxPermalink to this section

The seed experiment that ships with the folder. It is not the Button — it is a copy target: fork the file, rename the variables, and change whatever the brief asks for.

Tone
Radius (local override)
Height (local override)
src/components/playground/experimental-button.tsx
<ExperimentalButton
  tone="brand"
  overrides={{
    "--xbutton-radius": "var(--button-radius)",
    "--xbutton-height": "var(--control-height-md)",
  }}
>
  Start free trial
</ExperimentalButton>

Experiment: Cal button variantPermalink to this section

A compact Cal.com-style button with a 12px corner, restrained inset highlight and a layered chevron indicator that responds on hover. The preview is scoped to the existing Cal preset and does not modify production button tokens.

Variant
State
src/components/playground/cal-button.tsx
<CalButton
  variant="primary"
  disabled={false}
>
  Download
</CalButton>

Experiment: Resend send-test widgetPermalink to this section

A reference-preserving reconstruction of the send-test bar on resend.com: a hairline pill floating on a soft emerald bloom, pairing a status-badge combobox for Resend's real test inboxes (delivered / bounced / complained) with a single monochrome send action that lifts on hover. Scoped to the new Resend preset in dark mode; it changes no production tokens.

Experiment: Resend metrics cardsPermalink to this section

The three-card verdict cluster from the Resend Metrics dashboard: an uppercase category eyebrow, a large regular-weight verdict word, and dense rows aligned on a status dot with tabular figures. Structure comes from a single hairline border rather than a shadow. Scoped to the Resend preset; no production tokens change.

Deliverability

Good

Sent
29,486
100%
Delivered
29,486
100%

Reputation

Good

Bounced
546
1.85%
Complained
2
0.01%

Engagement

Poor

Opened
0
0%
Unsubscribed
137
0.46%

Experiment: Raycast community cardsPermalink to this section

A reference-preserving reconstruction of the supplied Raycast community link card: a dark, hairline-stroked surface with a brand-icon header, a muted supporting label, a quiet description and a Join affordance that lights up on hover. Only the Slack copy is transcribed verbatim; the other channels carry true product language and no invented metrics.

Experiment: flat bentoPermalink to this section

A second experiment, sliced from a reference screenshot: a bento grid whose cards are separated by fill alone — no border, no shadow, no icon chip — and whose caption is one two-tone sentence instead of an eyebrow, title and description stack.

Automated trade imports seamlessly capture every trade across your connected accounts, eliminating manual errors

Importing trades

Advanced analytics dashboard transforms raw numbers into actionable insights, giving you clarity on win rates and risk-to-reward ratios

Analytics

Net P&L

Integrated backtesting tool refines strategies before risking capital.

1m
1y

Daily journal and notebook tracks insights, emotions, and lessons learned.

Action items

BUI

Fully custom trade filtering isolates the exact setups you want to review.

Apply filters

Asset class

IndicesCryptoForex
$500 – $1000
65%
DivergenceValueWhy
--xbento-shadownoneOpts out of Elevation — the reference separates cards from the canvas with fill alone
Icon slotremovedOpts out of Icons — the illustrations are geometry, so nothing reads --control-icon-size-*
Caption modellead + restOne sentence, two tones. The prop that would cost the most to promote

One file, measurements included

The grid, the card, the demo composition and the measurement table all live in a single src/components/playground/bento-flat.tsx. An experiment earns a second file by surviving, not by starting out organised — and a header comment is a promotion review that cannot drift away from the code it describes.

Experiment: file-manager bentoPermalink to this section

A brighter, cleaner reconstruction of the six-card file-management cluster in the supplied reference. The layout, type, border, icon, elevation and spacing measurements are isolated behind one local contract.

Downloads

No downloads

Nothing to download yet.

Images

248 images

Last edited 19 May, 2024

Deleted Files

+99

Deleted files remain temporarily for 40 days before they are permanently removed.

designSystem.pdf

3 MB Upload failed

components.pdf

1.2 MB Uploaded

Storage

97 GB / 128 GB

Photos
48 GB
Documents
13 GB
Videos
26 GB
Sounds
10 GB

UPGRADE

Need more room?

Delete file?

Are you sure you want to delete “designLastVersion.pdf”?

Experiment: Create New Project FormPermalink to this section

A token-mapped reconstruction of the supplied project creation form, including file upload, project details, removable tags, access settings, and responsive actions.

Create New Project

Set up a new project to start organizing your team's work.

Enter a due date.
  • UI/UX Design
  • Marketing
  • Documentation
Members with access

Experiment: cards formPermalink to this section

A compact, single-select subscription booster form reconstructed from the supplied reference. Outlined rows, dense three-part alignment and perimeter-plus-radio selection remain isolated behind one local contract.

Get more from your subscription

Choose one content booster to add to your monthly plan.

Content booster

Experiment: trial upgrade cardPermalink to this section

A compact, single-style reconstruction of the supplied seven-day trial and upgrade card. Its progress, benefits, plan choice, dominant action and supporting offer are mapped to the existing token system.

7-Day Free Trial

7 days remaining

Active

Trial Progress

0 of 7 days used

Trial Benefits

  • Unlimited trades
  • All premium features
  • 10GB storage
  • Priority support
Choose your Plan

Upgrade to continue after your trial ends

Experiment: marketplace brand kit uploaderPermalink to this section

A dense, single-style brand-kit administration form reconstructed from the supplied reference. It preserves the two-column upload and colour-code grids, lightweight surfaces and primary-secondary action hierarchy.

Marketplace Brand Kit Uploader

Brand Kit Requirements

  • Upload SVG/PNG/JPG for the logo and app icon (SVG preferred).
  • Provide HEX codes for digital and Pantone codes for print.
  • Add a short brand story and usage guidance.
Uploaded brand assets

Logo upload

brandkit-logo.svg

Logo upload

brandkit-icon.svg

Pantone colour codes
  • Pantone 186 C
  • Pantone White C
  • Pantone White C
HEX colour codes
  • #C8102E
  • #FFC72C
  • #006B3F

Experiment: out for delivery tracking cardPermalink to this section

A reference-preserving reconstruction of the supplied delivery card, with a pale isometric conveyor illustration, tactile tracking control, quiet package metadata and a lower-right QR anchor.

Poland

Out for Delivery

Package Number:

49029880150810129411

Poland - 01/06/25

Experiment: schedule trackerPermalink to this section

A reference-structured, system-rendered schedule-management panel. Its month and date navigation, expanded and collapsed schedule groups, repeated events and action hierarchy use existing tokens and UI primitives exclusively.

Schedule Tracker

September 2025

Ongoing
04:30:40

Meeting Client

02:20 PM - 03:30 PM

Collaborate with Miguel, Jhon, Hane

Team Standup

09:00 AM - 09:30 AM

Collaborate with Miguel, Jhon, Hane

Design Review

10:00 AM - 11:00 AM

Feedback session with stakeholders

Agustus 2025

Done
04:30:40

Experiment: upgrade modalPermalink to this section

A reference-structured, system-rendered conversion modal. Its decorative product illustration, access toggle, confidence-building feature list, pricing, dominant purchase action and quiet promotion create one continuous vertical funnel.

Experiment: payout and revenue tablePermalink to this section

A reference-preserving financial operations panel with compact filters, four supporting metrics, CSV export, sortable dates and a dense semantic transaction table.

Payout & Revenue

Track earnings, expenses, and upcoming payouts.

Date range
Balance type

Total Income

$12,450

Total Expenses

$3,120

Net Profit

$9,330

Next Payout

Aug 10, 2025

Transactions

Recent payout and revenue transactions
SourceTypeDescriptionCategoryAmountStatus
01 AugStripeProductCourse Sale – UI BasicsDigital Products$79Paid
30 JulUpworkServiceDesign Sprint SessionClient Services$450Paid
28 JulGumroadProductE-book: Web Design KitDigital Products$25Pending
27 JulBank TransferExpenseAnnual Hosting FeeOperating Costs-$120Completed
26 JulAffiliateCommissionFigma Plugin PromoAffiliate Income$145Paid

Experiment: features mega menuPermalink to this section

A reference-preserving B2B mega-menu dropdown: a centered navigation pill opens a wide, low-elevation panel that splits into a two-column feature grid and a softly tinted Explore article rail, closed by a full-width product-tour footer.

Features

Explore

View all articles

Universal prompt builderPermalink to this section

Supply the product context and the exact slice. The builder adds the inspection, visual analysis, implementation rules, review loop and validation automatically.

Name the actual UI artifact, not a broad page or visual style.

Say who uses it, where it appears and what decision it supports.

Source

Name the component boundary and what the agent must ignore.

Implementation mode

For screenshot exploration: visual character wins when a token is visibly too far away.

Fidelity

Default for screenshots: retain silhouette, proportions and visual character closely.

Describe the character and emphasis. The agent will derive the detailed visual analysis.

List the traits that make the source recognisable, not every incidental pixel.

Name unwanted patterns so the agent does not fall back to a generic modern-SaaS template.

Include all visible labels, headings, metadata and action copy.

List only interactions visible or implied by the reference.

Playground — reference first · Reference-preserving. Visual DNA, anatomy, hierarchy, density and token strategy are generated automatically.

Playground prompt
Build a playground experiment from the supplied source: [Component name]

Usage context
[Who uses it, where it appears and what decision it supports.]

Source: attached image or screenshot.

- Recreate only the exact slice named below and ignore the rest of the frame.
- Treat the image as the source of composition, hierarchy, density, spacing
  relationships and visual intent.
- Estimate measurements from the reference at normal browser zoom.
- Preserve relationships between values rather than chasing isolated pixels.
- Do not introduce visual elements that are absent from the named slice.

Exact slice
[Name only the element to recreate and what to ignore.]

Implementation mode: Playground — reference first

Priority:
1. visual similarity
2. layout and proportions
3. hierarchy and density
4. token alignment

Decision order:
1. Reuse an existing UI primitive when it fits the semantic role and at least
   80% of the required structure or behaviour.
2. Prefer an existing semantic token when it preserves the reference.
3. Use an existing foundation token when it is the closest suitable value.
4. Use a local custom Tailwind value only when the available tokens visibly
   damage a defining trait of the reference.

- Local values such as rounded-[29px], w-[720px] or a local arbitrary shadow
  are allowed when justified by the visual analysis.
- Keep every custom value inside the experiment file and list it in the final
  report with the token considered and why it failed.
- Do not create or change tokens, add global CSS or modify production
  primitives.

Fidelity: Reference-preserving

- Preserve silhouette, proportions, anatomy, hierarchy, density, alignment and
  distinguishing visual character.
- Adapt only where required by the selected implementation mode,
  accessibility or responsive behaviour.
- Do not reinterpret the source as a different pattern.

Visual intent
- Derive the intended character, dominant element and supporting emphasis from
  the source and usage context.

Must preserve
- Identify and preserve the traits that make the source recognisable.

Must avoid
- Do not add patterns or decoration that are absent from the source or product
  context.
- Do not fall back to a generic SaaS composition.

Copywriting
- Transcribe visible source text exactly. If the source has no supplied copy,
  use concise product-specific language and never use lorem ipsum, Acme or
  placeholder metrics.

Interactions
- Infer only interactions that are visible or strongly implied by the source.
- Implement local behaviour without a backend.

Scope

- Read src/components/playground/README.md first and follow it.
- Keep the experiment implementation inside src/components/playground/.
- Create one component file, export it from
  src/components/playground/index.ts, and render it once in one DocSection in
  src/app/docs/playground/content.tsx.
- Do NOT edit src/tokens/**, src/components/ui/**, src/app/** routes,
  src/config/navigation.ts, global stylesheets, existing experiments or
  existing documentation outside that single preview integration.
- Do NOT add dependencies, routes, navigation items, global CSS or a second
  theming runtime.
- Design system mode changes the implementation strategy, not the edit scope:
  it does not author or modify production components.
- If the brief genuinely requires a change outside the allowed files, stop and
  explain the required change instead of making it.

Workflow — follow in order

Phase 1 — Inspect

- Read src/components/playground/README.md.
- Read the relevant Next.js guide in node_modules/next/dist/docs/ before
  writing code.
- Inspect src/tokens/** for available semantic, foundation and component
  values.
- Inspect src/components/ui/** before implementation.
- Inspect existing playground examples that solve a similar layout or
  interaction problem.
- Inspect the current playground barrel and preview integration.
- Do not write implementation code during this phase.

Primitive reuse rule

- Reuse an existing primitive when it satisfies the semantic role and at least
  80% of the required structure or behaviour.
- Compose existing primitives before creating a new control.
- Do not modify production primitives from the playground.
- In Playground mode, style locally when a primitive cannot preserve the
  defining reference traits.
- In Design system mode, keep the system primitive and adapt the composition
  around its authored contract.

Phase 2 — Analyse and plan

Analyse the source yourself. Do not ask the user to supply technical visual
analysis. Cover:
- Visual DNA
- component anatomy
- reading flow
- optical hierarchy
- density and layout
- surface, border and radius hierarchy
- typography hierarchy
- spacing rhythm
- interaction hierarchy
- token and primitive strategy

Keep the pre-code report compact and use exactly this structure:

Visual DNA
1. [defining trait]
2. [defining trait]
3. [defining trait]

Anatomy
[compact component tree]

Hierarchy
Primary:
Secondary:
Supporting:
Decorative:

Layout and rhythm
Silhouette:
Density:
Spacing:
Surface / border / radius:
Typography:

Implementation strategy
Reuse:
Compose:
Create locally:
Token:
Custom:

Plan
1. [implementation step]
2. [implementation step]
3. [review step]

Do not turn this analysis into a long essay. Estimate only measurements that
materially affect silhouette, hierarchy or interaction.

Phase 3 — Implement

- Create src/components/playground/<name>.tsx and keep the experiment in that
  one file. Do not create a folder, stylesheet, story or notes file.
- Use the supplied copy exactly and implement the listed interactions locally.
- Preserve intentional asymmetry, uneven whitespace and differences in
  emphasis. Do not automatically normalise the source into a centred grid.
- Establish hierarchy through typography, spacing, alignment and contrast
  before adding borders, shadows, icons or surfaces.
- Use the fewest visual containers necessary. Do not wrap every section in a
  card.
- Do not add gradients, glow, glass, decorative pills, badges, illustrations
  or icon chips unless the source or product context requires them.
- Follow project conventions: use client only when interaction requires it,
  compose classes with cn(), use semantic markup, preserve visible focus,
  handle disabled states and respect reduced motion.
- Export the experiment from src/components/playground/index.ts.
- Render it once in a focused preview section in
  src/app/docs/playground/content.tsx.

Phase 4 — Review, validate and report

Visual QA

- Compare the implementation to the reference at normal browser zoom.
- Review in this exact order:
  1. silhouette
  2. proportions
  3. hierarchy
  4. layout
  5. density
  6. spacing rhythm
  7. typography
  8. alignment
  9. surface hierarchy
  10. decoration
- Fix the three largest visible mismatches before reporting completion.
- Do not keep an implementation choice merely because it compiles. Change it
  when it visibly weakens the reference.
- Verify light and dark themes, narrow and wide layouts, keyboard focus, hover,
  pressed, disabled and reduced-motion behaviour where relevant.
- Confirm that the component introduces no accidental horizontal overflow.

Validation

- Run npx tsc --noEmit.
- Run npm run lint.

Final report

- List created and modified files.
- Report the three defining visual traits.
- Report the three largest mismatches fixed during visual QA.
- Summarise primitive reuse, token choices, snapped measurements and any
  mode-allowed custom values.
- Report TypeScript and lint results.
- Confirm that token files, production UI primitives, navigation and unrelated
  routes were not modified.
- Classify each meaningful part using only:
  - Reusable as-is
  - Needs adaptation
  - Experiment-only
- Do not calculate a promotion score or confidence number.

Working from a sourcePermalink to this section

Three of the four source types bring someone else's code or pixels into the repository. Each has a failure mode worth naming in the brief.

SourceThe agent's first moveFailure mode
Image / screenshotRead its hierarchy and relationships, then map measurements to tokensCopying decoration while losing the source's hierarchy and rhythm
Existing codeExtract the visual result, drop the implementationCarrying over a dependency or a competing theming layer
Website kit (21st.dev, etc.)Check the licence, then rebuild in this codebase's idiomPasting kit markup that assumes another Tailwind config
Description onlyForm two task-level hypotheses, compare trade-offs, then choose oneProducing two cosmetic skins or a generic SaaS composition

Licences and typefaces travel with the copy

A kit component may be MIT, source-available or paid-only, and a reference screenshot almost certainly uses a proprietary typeface. Copying the effect is usually fine; copying the files or pointing a font token at an unlicensed face is not. When in doubt, rebuild from a description and record the substitution in a comment.

Promote an experimentPermalink to this section

Promotion is a separate, explicit request. It is the moment the local contract becomes a public one.

  1. 1Review the --x* list. Every variable is either a system token in disguise, or a deliberate divergence with a comment explaining it.
  2. 2Decide each divergence: adopt it as a new scale step in src/tokens, express it as a preset override, or drop it and take the nearest existing token.
  3. 3Move the file into src/components/ui, rename --x* to real component tokens declared in src/tokens/components.ts, and give it the system's prop conventions.
  4. 4Add the docs page, anatomy, API table and accessibility notes the other components carry — a promoted component is documented like the rest.
  5. 5Delete the playground file. The experiment has a permanent home now.

The folderPermalink to this section

Every rule the generated prompt carries is also written down next to the code, so an agent that opens the folder without the prompt still finds the boundary.

FileRole
src/components/playground/README.mdThe edit boundary — what an agent may and may not touch
src/components/playground/experimental-button.tsxSeed experiment showing the local-contract shape. Copy it
src/components/playground/bento-flat.tsxA whole experiment in one file — card, grid, demo and measurements
src/components/playground/index.tsBarrel used only by this page