Skip to content
Agentmart
Submit a tool

spencer-approved-frontends

Spencer's house style for UIs.

Skill by schneidenbach

IndexedMIT★ 20
Write a review

Chalk Labs

Need help deploying spencer-approved-frontends?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/schneidenbach-spencer-approved-frontends

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Spencer's house style for UIs. DO NOT INVOKE THIS SKILL UNLESS SPECIFICALLY ASKED. Use whenever Spencer asks for a frontend, page, screen, component, dashboard, app shell, modal, form, table, or any kind of web visual — including phrasings like "build a UI for X", "throw together a screen", "make a dashboard", "I need a quick app". Also use when starting a brand-new React project from scratch on this machine. Overrides any general "frontend-design" skill: Spencer dislikes the default shiny-AI aesthetic and wants tight, neutral, dense, system-font UIs that look like the due-diligence and security-review apps. If Spencer is editing an existing repo with a clearly different stack (e.g. Next.js with shadcn already wired up), follow that repo's conventions, but still apply Spencer's typography, density, and tone preferences from this skill.

Use cases: design, frontend, data, security

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/spencer-approved-frontends

What's inside

Skill name
spencer-approved-frontends
Description
Spencer's house style for UIs. DO NOT INVOKE THIS SKILL UNLESS SPECIFICALLY ASKED. Use whenever Spencer asks for a frontend, page, screen, component, dashboard, app shell, modal, form, table, or any kind of web visual — including phrasings like "build a UI for X", "throw together a screen", "make a dashboard", "I need a quick app". Also use when starting a brand-new React project from scratch on this machine. Overrides any general "frontend-design" skill: Spencer dislikes the default shiny-AI aesthetic and wants tight, neutral, dense, system-font UIs that look like the due-diligence and security-review apps. If Spencer is editing an existing repo with a clearly different stack (e.g. Next.js with shadcn already wired up), follow that repo's conventions, but still apply Spencer's typography, density, and tone preferences from this skill.
License
MIT
Instructions
375 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (7)

  • SKILL.md
  • openai.yaml · agents/
  • anti-patterns.md · references/
  • full-index-css.md · references/
  • full-tailwind-config.md · references/
  • starter-app.md · references/
  • textarea-autoresize.md · references/

SKILL.md (first lines)

# Spencer-Approved Frontends

The default "AI-generated frontend" look is wrong for Spencer. Glassy gradients, oversized hero text, generous padding, drop shadows on every card, blue-to-purple linear gradients, rounded-2xl everything, lucide icons everywhere — none of that. Spencer ships dense, neutral, system-font UIs that read like serious internal tooling. Think Linear, Notion's admin views, the macOS settings panel — not a SaaS landing page.

When in doubt, fewer pixels of decoration, smaller text, tighter spacing, and one neutral color ramp.

## When this overrides other skills

If `frontend-design` (or anything similar) is also active, this skill wins on style decisions. The other skill's process is fine; the visual defaults are not. Spencer's frontends look like the `due-diligence` and `security-review` repos in `~/Repos/`. If you have access to those repos and the user is starting something new, you may peek at them as ground truth. Otherwise, follow the patterns in this file.

## Stack defaults for new projects

For a new project from scratch, start here unless Spencer says otherwise:

- **React 18** with **Vite 5+** (not Next.js, not CRA)
- **TypeScript** strict mode + `noUncheckedIndexedAccess` + `noImplicitOverride`
- **Tailwind CSS 3.4** (NOT Tailwind 4 by default — Spencer's repos pin to 3.4)
- **npm** (not pnpm/yarn/bun)
- **No component library.** No shadcn, no Radix, no MUI, no Mantine, no Chakra, no Headless UI. Build the few primitives you need by hand (Modal, Badge, Button, InlinePicker).
- **No icon library** by default. Use small SVG inline or text glyphs (`::` for a drag handle, `×` for close). If Spencer asks for icons, ask which library before adding one.
- **No form library.** `useState` + a plain `<form onSubmit>` is enough.
- **No state library.** `useState` / `useReducer` / `useContext` is enough until proven otherwise. No Redux, Zustand, Jotai, Recoil.
- **No data fetching library.** Plain `fetch` wrapped in a small `lib/api.ts` module. No React Query, SWR, axios.
- **No animation library.** No framer-motion, no react-spring. CSS `transition` on hover/focus is the whole animation budget.
- **No router library** for small apps — manual `window.location.pathname` parsing in `App.tsx`. If the app grows past ~3 routes, ask Spencer if it's time for a router.

If Spencer asks for a different stack, follow Spencer. But propose this stack first.

## Project layout

```
src/
  App.tsx               root, manual routing
  main.tsx              entry
  index.css             global tokens + utilities
  components/           one .tsx per component, PascalCase
  lib/                  cx.ts, format.ts, api.ts, hooks
shared/                 types shared with backend, aliased as @shared/*
```

No barrel exports. No `pages/` directory for small apps. No co-located CSS files — Tailwind utilities only.

## The visual contract

Every Spencer UI obeys these defaults. Memorize them.

### Color tokens

Define these in `tailwind.config.ts` and `index.css` as CSS variables. Do not skip this step — Tailwind's default neutral palette is too cool and too saturated.

```ts
// tailwind.config.ts (excerpt)
colors: {
  surface: {
    DEFAULT: "#ffffff",
    soft:    "#fafafa",
    deep:    "#f5f5f4",
    hover:   "#f4f4f4",
  },
  ink: {
    DEFAULT: "#0a0a0a",
    soft:    "#404040",
    muted:   "#737373",
    faint:   "#a3a3a3",
  },
  line: {
    DEFAULT: "#eaeaea",
    strong:  "#d4d4d4",
  },
  // domain-specific severity ramp — rename per project
  // e.g. "risk" for due-diligence, "sev" for security-review,
  // "status" or "tier" for whatever the app is about
  risk: {
    critical: "#7f1d1d",
    high:     "#b91c1c",
    medium:   "#b45309",
    low:      "#1d4ed8",
  },
},
```

Pair each semantic color with a *soft background variant* via CSS variable, e.g. `--risk-high-soft`, used as `bg-[var(--risk-high-soft)]`. Soft backgrounds + saturated text = the badge look.

### Typography

```ts
fontFamily: {
  sans: ["-apple-system", "BlinkMacSystemFont", "'SF Pro Text'", "'Segoe UI'", "Roboto", "Helvetica", "Arial", "sans-serif"],
  mono: ["'SFMono-Regular'", "'SF Mono'", "Menlo", "Consolas", "monospace"],
},
```

System fonts only. No Google Fonts, no Inter, no Geist, no font imports.

**Allowed sizes** (use `text-[Npx]` arbitrary values where Tailwind defaults don't fit):

- `11px` — tracked labels, badges, dense buttons
- `12px` — primary buttons, dense controls
- `12.5px` — secondary buttons
- `13px` — body text (this is the base — the `<body>` itself is `font-size: 14px` with `line-height: 1.5`, but most app chrome is 13px)
- `15px` — modal titles, section headings

That is the whole scale. No `text-base`, no `text-lg`, no `text-2xl`, no hero text. If you need emphasis, use `font-semibold tracking-tight` at 15px, not bigger type.

For form/section labels, use this utility (defined in `index.css`):

```css
.tracked-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
```

### Spacing & density

Spencer's UIs are *dense*. Allowed spacing values, in order of frequency:

From schneidenbach/skills, MIT.

More from schneidenbach/skills

Signals

Stars
20
Forks
2
Open issues
0
Last commit (this folder)
Aug 26, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from schneidenbach

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get spencer-approved-frontends running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying spencer-approved-frontends?

CallGet help
Cite this page

spencer-approved-frontends skill. Agent Mart. https://agentmart.dev/skills/schneidenbach-spencer-approved-frontends (last updated 2026-10-24)