Turnip Ui logo

Turnip Ui

Community
aaronjmars
turnip-ui

Build product UI in Turnip UI, the DeFi Summer farm language: cool-gray canvas, Nunito extra-bold, 3D mascot heroes, magenta pill CTAs, cream selection cards, whisper borders, centered 920px column. The look of SushiSwap dishes and Yam.finance. Use when the user says turnip-ui, /turnip-ui, DeFi Summer UI, Yam.finance, SushiSwap dishes, or "in the style of" this farm / turnip UI.

Overview

Publisheraaronjmars
Repositoryturnip-ui
Skill nameturnip-ui
Stars
4
Forks
1
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by aaronjmars on GitHub. Read the source before you install it.

Installation

Install the Turnip Ui AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/aaronjmars/turnip-ui/tree/main/skill
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/aaronjmars/turnip-ui.git /tmp/turnip-ui
mkdir -p .claude/skills
cp -r /tmp/turnip-ui/skill .claude/skills/turnip-ui
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Turnip Ui in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Turnip Ui on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Turnip Ui is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Turnip UI: DeFi Summer farm chrome from SushiSwap and Yam.finance

Self-contained. Do not look up DESIGN.md or any other spec. Everything needed to build is in this file.

DeFi Summer chrome, as seen on SushiSwap's dish picker and Yam.finance's farm and user pages. Centered mascot, extra-bold round sans, one magenta CTA, lots of air. Product screens, not marketing landers. Swap the mascot and the word, keep the chrome. Do not rebuild the Turnip farm unless the user asked for that product.

Density 5. Variance 3. Motion 4.

Run

  1. Restate the page in one line (what the user does on it).
  2. Pick a recipe below (picker / work / account / list / form) or compose two.
  3. One 3D mascot PNG per primary screen, knocked-out, never an emoji glyph.
  4. Same --bg on every route.
  5. Empty values render --. Loading is in-place copy, not a spinner.
  6. Verify in the browser if the work is visual.

Do not invent a second accent, put cream on the page background, use Inter, crop mascots, ship emoji in the DOM, or write DeFi nouns unless the page is actually that.

Canvas

Cool light gray. Never cream, never pure white, never pure black.

TokenLightDarkRole
--bg#f4f2f3#171417Page and shell
--surface#ffffff#221e22Cards, header pills, modals
--dish#f0e9e0#2c241cSelection cards only
--dish-btn#e7ddd2#3a3128In-card secondary button
--text#1c1c1c#f4f1eeTitles, values, primary labels
--muted#8d8d8d#9a9490Nav, lede, captions, footer
--soft#b7a99c#a89888Card body copy
--brown#5c3a2a#f0d2b8Script display titles
--accent#d4416asamePrimary fill, big metrics, live pills
--accent-hover#c0365esamePrimary hover
--orange#e07022sameSelect labels on cream cards
--nav#9a9a9a#9a9490Inactive nav
--nav-active#4c6ef5sameActive nav outline
--line#eceaea#332e321px borders
--shadow0 10px 28px rgba(40, 24, 32, 0.05)0 10px 28px rgba(0, 0, 0, 0.28)Cards, sheets, toasts
--easecubic-bezier(0.32, 0.72, 0, 1)sameAll motion

Magenta is the only filled color. Blue is outline-only for nav. Orange is cream-card actions only. No teal, no purple fills, no gradient type.

Dark: swap tokens only. Do not invert a single section. Accent, orange, and nav-active stay put.

Type

  • UI: Nunito 400 / 600 / 700 / 800. ui-rounded fallback. Never Inter.
  • Optional playful display, at most one per page: Pacifico 400, brown, clamp(28px, 4vw, 42px), centered.
  • Page titles: Nunito 800, clamp(36px, 5vw, 52px), tracking -0.035em, centered.
  • Lede: 16-18px, weight 600, muted or soft, one line.
  • Card titles: 20px, weight 800.
  • Card body: 13.5px, weight 600, soft, line-height 1.45.
  • Values: 34px, weight 800, tracking -0.03em. Empty is --, never 0 or 0.00.
  • Hero metric: 36-56px, weight 800, accent.
  • Buttons: 15-16px, weight 800.
  • Footer / meta: 13-15px, weight 700, muted.
  • No serif. Mono only for id strings.

Layout

  • Shell column: header, main, footer. Same --bg on every route.
  • Main: width: min(920px, calc(100% - 32px)), centered. No wider.
  • Content is centered, not a left-rail dashboard.
  • Header: 3-column grid, brand left, nav center, utilities right, max ~72px.
  • Footer: centered muted text links, 22px gaps, no icons.
  • Stack: mascot, title, lede, then 28px before the first block.
  • Below 860px: one column, nav scrolls horizontally, brand stays one line.

Header

  • Brand: 32px 3D mark + 17px extra-bold word. No "Finance" suffix unless asked.
  • Nav: 16px, weight 700, muted, padding 8px 14px, radius 10px.
  • Active nav: --nav-active text, inset 1.5px outline of the same blue. No fill.
  • Theme: 46px white circle, 1px line, 3D sun/moon mark. Not a glyph font.
  • Status / wallet: 46px-tall white pill, 1px line, 18px identicon, extra-bold truncated id.
  • Dropdowns: 14px radius surface, 1px line, whisper shadow, 6px pad, 10px item radius.

Buttons

Three shapes only. Press: scale(0.98). No button shadows. No arrows in CTAs.

  1. Primary pill. Height 44px, radius 999px, accent fill, white 800. Disabled opacity 0.45.
  2. Ghost pill. Same size, surface fill, 1px line, ink text. Default secondary.
  3. Card select. Full width of a cream card, height 44px, radius 12px, dish-btn fill, orange 800.

Cards

Two families. Do not mix on the same row.

Selection card. Cream --dish, radius 18px, padding 22px 18px 14px, min-height ~292px, no shadow. 72px circular icon well. Title, two-line body, select button, white meta bar (radius 10px). Selected: 2px gradient border #7a5cff / #4aa8ff / #5ee7c2 plus a soft violet-cyan glow. Hover may preview selection. 3-up grid, 18px gap.

Surface card. --surface, 1px line, whisper shadow, radius 24-28px. Notices, metrics, stat pairs, lists, forms.

Stat pair. Two surface cards. Centered 72px mascot, -- or a big value, muted caption, pills at the bottom. Left: ghost + primary. Right: one wide ghost.

Notice strip. Surface, radius 22px, 14-16px pad. 32px icon, muted 15px 700 copy, accent text action, quiet X.

Hero metric. Surface, radius 24px, centered. Giant accent number or loading copy, muted subtitle.

Numbers, loading, sheets

  • Missing or zero: --
  • Loading replaces copy in place. No spinners. Same type as the final value.
  • Toasts: bottom-center, full-pill, ink fill / surface text, 13px 800.
  • Modal: overlay rgba(20, 12, 16, 0.32). Sheet max 420px, radius 24px, 24px pad. Title 22px 800. Ghost + primary right-aligned. Amount field 48px, radius 14px, bg --bg, Max is a tiny accent pill.

Mascots

Mascot-led. Every primary screen gets one 3D Apple-emoji-style object or character above the title.

  • Generate a 3D still on a flat studio fill, generous padding, no crop. Knock out the fill to PNG alpha.
  • Size ~96-220px, object-fit: contain. No rounded clip on heroes.
  • Header mark is the same object at 32px.
  • Never emoji glyphs. They render as empty boxes.
  • 72px circular wells are for picker icons only.
  • Dark mode keeps the PNG. Do not recolor it.

Motion

Page enter: 700ms --ease, fade + translateY(18px). Honor prefers-reduced-motion. Transform and opacity only. No marquees, scroll hijack, or custom cursors. No button glow except the selection-card rainbow.

Recipes

Swap nouns. Any domain.

  • Picker. Mascot, optional script title, one-line lede, 3-up selection cards.
  • Work. Smaller mascot, page title, lede, optional notice, optional hero metric, 2-up stat pair with pills.
  • Account. Mascot, "Your Page"-style title, two-column value rows (icon + big number + caption), hairline, another pair, ghost pills (left cluster + one right).
  • List. Title, lede, stacked surface cards with a status pill, short heading, thin accent bar, meta row, optional primary.
  • Form. One surface card, label above input, from/to rows with 40px marks, one wide primary.

Never

Inter or Roboto as the face. Emoji in the DOM. Cream page background. Pure #000 / #fff as page fill. Neon glows on buttons. AI purple fills. Three equal marketing feature cards. Eyebrow chips (01 / FARM, BETA). Em dashes. Fake 99.9% stats. Content wider than 920px. Sidebars, sticky docks, command palettes. Serif display mixed into UI type.

Done when

Tokens, radii, and type match this file. Shell chrome matches if the page is in an app. Dark tokens exist. One column below 860px. No emoji glyphs, no Inter, no cream canvas.

Frequently asked questions

What does the Turnip Ui AI skill do?

Build product UI in Turnip UI, the DeFi Summer farm language: cool-gray canvas, Nunito extra-bold, 3D mascot heroes, magenta pill CTAs, cream selection cards, whisper borders, centered 920px column. The look of SushiSwap dishes and Yam.finance. Use when the user says turnip-ui, /turnip-ui, DeFi Summer UI, Yam.finance, SushiSwap dishes, or "in the style of" this farm / turnip UI.

Why use Turnip Ui on TypingMind?

Because you install it once and use it with any model. Turnip Ui is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Turnip Ui in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/aaronjmars/turnip-ui/tree/main/skill. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Turnip Ui?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Turnip Ui?

As many as you like. As long as a model supports skills, you can use Turnip Ui with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Turnip Ui AI skill free?

It is published on GitHub by aaronjmars. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇