Getting started
Playground
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.
| Job | Where it happens | Blast radius |
|---|---|---|
| Rebrand the whole system | src/tokens/* | Every component, page and preset |
| Add a selectable theme | src/tokens/presets.ts | Anything inside the preset scope |
| Try a new button or CTA | src/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.
<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.
<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.
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
Advanced analytics dashboard transforms raw numbers into actionable insights, giving you clarity on win rates and risk-to-reward ratios
Net P&L
Integrated backtesting tool refines strategies before risking capital.
Daily journal and notebook tracks insights, emotions, and lessons learned.
Action items
Fully custom trade filtering isolates the exact setups you want to review.
Asset class
| Divergence | Value | Why |
|---|---|---|
--xbento-shadow | none | Opts out of Elevation — the reference separates cards from the canvas with fill alone |
| Icon slot | removed | Opts out of Icons — the illustrations are geometry, so nothing reads --control-icon-size-* |
| Caption model | lead + rest | One 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
Deleted Files
+99
Deleted files remain temporarily for 40 days before they are permanently removed.
designSystem.pdf
components.pdf
Storage
97 GB / 128 GB
- Photos
- 48 GB
- Documents
- 13 GB
- Videos
- 26 GB
- Sounds
- 10 GB
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.
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.
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.
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.
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.
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
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
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.
Upgrade to Flowbase
Access a full component library, with fresh additions every week.Craft products that inspire.
- Over 3500+ componentsThe worlds largest component library
- Illustrations, Icons, Boosters & moreUnlock everything with one subscription
- Copy & paste to all your toolsNative apps and plugins for all your tools
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.
Total Income
$12,450
Total Expenses
$3,120
Net Profit
$9,330
Next Payout
Aug 10, 2025
Transactions
| Source | Type | Description | Category | Amount | Status | |
|---|---|---|---|---|---|---|
| 01 Aug | Stripe | Product | Course Sale – UI Basics | Digital Products | $79 | |
| 30 Jul | Upwork | Service | Design Sprint Session | Client Services | $450 | |
| 28 Jul | Gumroad | Product | E-book: Web Design Kit | Digital Products | $25 | |
| 27 Jul | Bank Transfer | Expense | Annual Hosting Fee | Operating Costs | -$120 | |
| 26 Jul | Affiliate | Commission | Figma Plugin Promo | Affiliate Income | $145 |
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.
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.
Name the component boundary and what the agent must ignore.
For screenshot exploration: visual character wins when a token is visibly too far away.
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.
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.
| Source | The agent's first move | Failure mode |
|---|---|---|
| Image / screenshot | Read its hierarchy and relationships, then map measurements to tokens | Copying decoration while losing the source's hierarchy and rhythm |
| Existing code | Extract the visual result, drop the implementation | Carrying over a dependency or a competing theming layer |
| Website kit (21st.dev, etc.) | Check the licence, then rebuild in this codebase's idiom | Pasting kit markup that assumes another Tailwind config |
| Description only | Form two task-level hypotheses, compare trade-offs, then choose one | Producing 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.
- 1Review the --x* list. Every variable is either a system token in disguise, or a deliberate divergence with a comment explaining it.
- 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.
- 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.
- 4Add the docs page, anatomy, API table and accessibility notes the other components carry — a promoted component is documented like the rest.
- 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.
| File | Role |
|---|---|
src/components/playground/README.md | The edit boundary — what an agent may and may not touch |
src/components/playground/experimental-button.tsx | Seed experiment showing the local-contract shape. Copy it |
src/components/playground/bento-flat.tsx | A whole experiment in one file — card, grid, demo and measurements |
src/components/playground/index.ts | Barrel used only by this page |