Claude Artisan · Flat, material & plataformas2023–present

Vercel Geist

Referência flat, material & plataformas para Vercel Geist. Vercel Geist design system + Geist typeface.

Vercel GeistGeistVercel designHigh-contrast black/white, precise geometryGeist Sans/Mono, tight gridSubtle gradients and grain accentsDeveloper-premium minimalismflat-platform

Uso: grade modular responsiva; High-contrast black/white, precise geometry; Geist Sans/Mono, tight grid

Vercel Geist

Contexto Histórico

Vercel Geist design system + Geist typeface. Exemplo: Vercel.com; Next.js docs..

Fonte e proveniência

Importado de ara-mkr/claude-artisan · MIT · commit ae6d3ad · 2026-08-30

DESIGN.md

---
version: "alpha"
name: "Vercel Geist"
description: "Sistema visual Vercel Geist, traduzido do catálogo Claude Artisan para uso em produtos digitais. High-contrast black/white, precise geometry; Geist Sans/Mono, tight grid"
colors:
  primary: "#fafafa"
  background: "#0a0a0a"
  surface: "#111111"
  text: "#fafafa"
  accent: "#0072f5"
  on-primary: "#000000"
  on-surface: "#FFFFFF"
  on-accent: "#000000"
typography:
  h1:
    fontFamily: "'Geist', system-ui, sans-serif"
    fontSize: "4rem"
    fontWeight: "700"
    lineHeight: "1.05"
  body-md:
    fontFamily: "'Geist', 'Geist Sans', system-ui, -apple-system, sans-serif"
    fontSize: "1rem"
    fontWeight: "400"
    lineHeight: "1.6"
  label-caps:
    fontFamily: "'Geist', 'Geist Sans', system-ui, -apple-system, sans-serif"
    fontSize: "0.75rem"
    fontWeight: "600"
    letterSpacing: "0.06em"
rounded:
  sm: "6px"
  md: "8px"
  lg: "12px"
spacing:
  sm: "8px"
  md: "16px"
  lg: "32px"
components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-primary}"
    rounded: "{rounded.md}"
    padding: "16px"
  button-secondary:
    backgroundColor: "{colors.accent}"
    textColor: "{colors.on-accent}"
    rounded: "{rounded.md}"
    padding: "16px"
  card:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.on-surface}"
    rounded: "{rounded.lg}"
    padding: "24px"
  page:
    backgroundColor: "{colors.background}"
    textColor: "{colors.text}"
    padding: "16px"
---
## Overview

Sistema visual Vercel Geist, traduzido do catálogo Claude Artisan para uso em produtos digitais. High-contrast black/white, precise geometry; Geist Sans/Mono, tight grid

- **Categoria:** Flat, material & plataformas
- **Era:** 2023–present
- **Origem:** Vercel Geist design system + Geist typeface.
- **Exemplo:** Vercel.com; Next.js docs.
- **Base estrutural:** grade modular responsiva

**Traços definidores:**
- High-contrast black/white, precise geometry
- Geist Sans/Mono, tight grid
- Subtle gradients and grain accents
- Developer-premium minimalism

## Colors

- **bg** — #0a0a0a
- **surface** — #111111
- **surface-strong** — #191919
- **border** — #2a2a2a
- **text** — #fafafa
- **text-muted** — #a1a1a1
- **primary** — #fafafa
- **accent** — #0072f5

## Typography

- Display: 'Geist', system-ui, sans-serif
- Corpo: 'Geist', 'Geist Sans', system-ui, -apple-system, sans-serif
- Mono: 'Geist Mono', ui-monospace, monospace

## Layout

- grade modular responsiva
- Use uma grade responsiva e preserve a hierarquia de conteúdo.
- Colapse colunas abaixo de 768px sem overflow horizontal.

## Elevation & Depth

- High-contrast black/white, precise geometry; Geist Sans/Mono, tight grid; Subtle gradients and grain accents; Developer-premium minimalism; sombras e elevação

## Shapes

- Raios: 6px, 8px, 12px.

## Components

- Botões mantêm foco visível e estados hover/pressed previsíveis.
- Cartões usam a superfície e a escala de raios definidas nos tokens.
- Formulários exibem labels persistentes, erro textual e foco por teclado.

## Do's and Don'ts

- Faça: respeite os tokens e a composição estrutural indicada.
- Faça: mantenha contraste WCAG AA e `prefers-reduced-motion`.
- Evite: usar o estilo como decoração sem hierarquia funcional.
Baixar DESIGN.md

Especificações Técnicas

CSS

/* Vercel Geist — design tokens */
/* 2023–present | Vercel Geist design system + Geist typeface, condensed */
:root {
  /* color */
  --color-bg: #0a0a0a;
  --color-surface: #111111;
  --color-surface-strong: #191919;
  --color-border: #2a2a2a;
  --color-text: #fafafa;
  --color-text-muted: #a1a1a1;
  --color-primary: #fafafa;
  --color-accent: #0072f5;
  /* radius */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;
  /* shadow */
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.5);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.55);
  --shadow-lg: 0 12px 32px rgba(0,0,0,0.6);
  /* font */
  --font-sans: 'Geist', 'Geist Sans', system-ui, -apple-system, sans-serif;
  --font-display: 'Geist', system-ui, sans-serif;
  --font-mono: 'Geist Mono', ui-monospace, monospace;
  /* text */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.75rem;
  --text-3xl: 2.25rem;
  --text-4xl: 3rem;
  --text-5xl: 4rem;
  /* space */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;
  /* ease */
  --ease-standard: cubic-bezier(0.16, 1, 0.3, 1);
  /* extra: a razor-thin 1px hairline grid plus a faint radial grain — the
     signature "precise geometry + grain accent" combination, repeated on
     nav, card and btn borders so the whole page reads as one tight system */
  --hairline: 1px solid var(--color-border);
  --grain-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='90' height='90'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/></svg>");
}

/* ============================================================
   Base component classes — geist
   Signature move: a precise 1px hairline border (--hairline) on every
   surface edge, plus a faint grain texture overlay — repeated on nav,
   card and btn for the "developer-premium minimalism" read.
   ============================================================ */
body {
  margin: 0; color: var(--color-text); font-family: var(--font-sans);
  background-color: var(--color-bg); background-image: var(--grain-image);
  background-size: 90px 90px;
}
.nav {
  display: flex; gap: var(--space-4); align-items: center;
  padding: var(--space-3) var(--space-6); background: var(--color-bg);
  border-bottom: var(--hairline);
}
.btn {
  font: 500 var(--text-base)/1 var(--font-sans); color: var(--color-text);
  padding: var(--space-3) var(--space-6); border-radius: var(--radius-md);
  background: var(--color-surface); border: var(--hairline);
  cursor: pointer; transition: background .16s var(--ease-standard), border-color .16s var(--ease-standard);
}
.btn:hover { background: var(--color-surface-strong); border-color: #3a3a3a; }
.btn:active { background: var(--color-surface); }
.btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.btn--primary { background: var(--color-primary); color: #0a0a0a; border-color: var(--color-primary); }
.card {
  background: var(--color-surface); border: var(--hairline);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: var(--space-6);
}
.input {
  width: 100%; box-sizing: border-box; color: var(--color-text);
  font: var(--text-base) var(--font-mono);
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  background: var(--color-surface); border: var(--hairline);
}
.input::placeholder { color: var(--color-text-muted); }
.input:focus { outline: none; border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(0,114,245,0.28); }
.badge { display: inline-flex; align-items: center; gap: .4em; font-size: var(--text-xs);
  padding: .3em .8em; border-radius: var(--radius-pill); background: var(--color-surface-strong);
  border: var(--hairline); color: var(--color-text-muted); }
@media (prefers-reduced-motion: reduce) { .btn { transition: none; } }


/* Especificação de referência: references/00-flagship-implementation-specs/geist.md */

Variáveis

--bg: #0a0a0a, --fg: #fafafa, --accent: #fafafa, --surface: #111111, --radius: 8px, --spacing: 16px, --font-display: 'Geist', system-ui, sans-serif, --font-body: 'Geist', 'Geist Sans', system-ui, -apple-system, sans-serif

Checklist

Contraste WCAG AA; foco visível; navegação por teclado; estados hover/pressed; responsividade; prefers-reduced-motion; Tailwind v4 via @theme.

Cores

Primárias

#0a0a0a
#111111
#191919
#2a2a2a

Secundárias

#fafafa
#a1a1a1
#0072f5

Efeitos

High-contrast black/white, precise geometry, Geist Sans/Mono, tight grid, Subtle gradients and grain accents, Developer-premium minimalism, shadow

Light/Dark

Fonte não declara modos; validar em light e dark antes de publicar

Prompt para AI

Atue como um Engenheiro Frontend Sênior e UI Designer Especialista.
Sua tarefa é codificar uma Landing Page completa na primeira tentativa.
- Tema da Landing Page: <INSIRA O TEMA>
- Seções a adicionar: <INSIRA AS SEÇÕES>

Gere o código final imediatamente seguindo estas definições:

## Estilo

- **Nome:** Vercel Geist
- **Tipo:** claude-artisan/flat-platform
- **Keywords:** Vercel Geist, Geist, Vercel design, High-contrast black/white, precise geometry, Geist Sans/Mono, tight grid, Subtle gradients and grain accents, Developer-premium minimalism, flat-platform
- **Era:** 2023–present
- **Light/Dark:** Fonte não declara modos; validar em light e dark antes de publicar

## Paleta de Cores

- **Primárias:** bg: #0a0a0a, surface: #111111, surface-strong: #191919, border: #2a2a2a
- **Secundárias:** text: #fafafa, text-muted: #a1a1a1, primary: #fafafa, accent: #0072f5

## Efeitos Visuais

High-contrast black/white, precise geometry, Geist Sans/Mono, tight grid, Subtle gradients and grain accents, Developer-premium minimalism, shadow

## Direção Visual para IA

Vercel Geist, High-contrast black/white, precise geometry, Geist Sans/Mono, tight grid, Subtle gradients and grain accents, Developer-premium minimalism, Vercel.com; Next.js docs.

## CSS Technical

```css
/* Vercel Geist — design tokens */
/* 2023–present | Vercel Geist design system + Geist typeface, condensed */
:root {
  /* color */
  --color-bg: #0a0a0a;
  --color-surface: #111111;
  --color-surface-strong: #191919;
  --color-border: #2a2a2a;
  --color-text: #fafafa;
  --color-text-muted: #a1a1a1;
  --color-primary: #fafafa;
  --color-accent: #0072f5;
  /* radius */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;
  /* shadow */
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.5);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.55);
  --shadow-lg: 0 12px 32px rgba(0,0,0,0.6);
  /* font */
  --font-sans: 'Geist', 'Geist Sans', system-ui, -apple-system, sans-serif;
  --font-display: 'Geist', system-ui, sans-serif;
  --font-mono: 'Geist Mono', ui-monospace, monospace;
  /* text */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.75rem;
  --text-3xl: 2.25rem;
  --text-4xl: 3rem;
  --text-5xl: 4rem;
  /* space */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;
  /* ease */
  --ease-standard: cubic-bezier(0.16, 1, 0.3, 1);
  /* extra: a razor-thin 1px hairline grid plus a faint radial grain — the
     signature "precise geometry + grain accent" combination, repeated on
     nav, card and btn borders so the whole page reads as one tight system */
  --hairline: 1px solid var(--color-border);
  --grain-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='90' height='90'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/></svg>");
}

/* ============================================================
   Base component classes — geist
   Signature move: a precise 1px hairline border (--hairline) on every
   surface edge, plus a faint grain texture overlay — repeated on nav,
   card and btn for the "developer-premium minimalism" read.
   ============================================================ */
body {
  margin: 0; color: var(--color-text); font-family: var(--font-sans);
  background-color: var(--color-bg); background-image: var(--grain-image);
  background-size: 90px 90px;
}
.nav {
  display: flex; gap: var(--space-4); align-items: center;
  padding: var(--space-3) var(--space-6); background: var(--color-bg);
  border-bottom: var(--hairline);
}
.btn {
  font: 500 var(--text-base)/1 var(--font-sans); color: var(--color-text);
  padding: var(--space-3) var(--space-6); border-radius: var(--radius-md);
  background: var(--color-surface); border: var(--hairline);
  cursor: pointer; transition: background .16s var(--ease-standard), border-color .16s var(--ease-standard);
}
.btn:hover { background: var(--color-surface-strong); border-color: #3a3a3a; }
.btn:active { background: var(--color-surface); }
.btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.btn--primary { background: var(--color-primary); color: #0a0a0a; border-color: var(--color-primary); }
.card {
  background: var(--color-surface); border: var(--hairline);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: var(--space-6);
}
.input {
  width: 100%; box-sizing: border-box; color: var(--color-text);
  font: var(--text-base) var(--font-mono);
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  background: var(--color-surface); border: var(--hairline);
}
.input::placeholder { color: var(--color-text-muted); }
.input:focus { outline: none; border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(0,114,245,0.28); }
.badge { display: inline-flex; align-items: center; gap: .4em; font-size: var(--text-xs);
  padding: .3em .8em; border-radius: var(--radius-pill); background: var(--color-surface-strong);
  border: var(--hairline); color: var(--color-text-muted); }
@media (prefers-reduced-motion: reduce) { .btn { transition: none; } }


/* Especificação de referência: references/00-flagship-implementation-specs/geist.md */
```

## Design System Variables

```css
--bg: #0a0a0a, --fg: #fafafa, --accent: #fafafa, --surface: #111111, --radius: 8px, --spacing: 16px, --font-display: 'Geist', system-ui, sans-serif, --font-body: 'Geist', 'Geist Sans', system-ui, -apple-system, sans-serif
```

## Checklist de Implementação

- Contraste WCAG AA; foco visível; navegação por teclado; estados hover/pressed; responsividade; prefers-reduced-motion; Tailwind v4 via @theme.

## Regras de Execução

1. Siga fielmente o estilo visual determinado.
2. Use ícones SVG inline de alta qualidade (estilo Heroicons ou Lucide) — PROIBIDO usar emojis como ícones.
3. Adicione `cursor-pointer` e estados de `hover` suaves (transition-all) em todos os elementos interativos.
4. Estrutura Obrigatória da Página:
   - Navbar (Logo + Links + CTA)
   - Hero Section (Headline impactante + Subtitle + 2 botões + Elemento visual 3D/Abstrato via CSS)
   - Features (3 cards com ícones)
   - Testimonials (3 cards)
   - Pricing (3 tiers, destaque no central)
   - CTA Final
   - Footer completo com redes sociais, política de privacidade, termos de uso, contato e links SEO.
5. Todo o conteúdo textual deve ser em Português Brasileiro (PT-BR).
6. O visual deve ser CLARAMENTE distinto — não crie um design "padrão Bootstrap". Force o uso das variáveis de design system fornecidas.
7. Use tags `<style>` no head para classes personalizadas (especialmente para os efeitos complexos de backdrop-filter e animações) que o Tailwind via CDN não cobrir.
8. Responsividade Total: O layout deve se adaptar perfeitamente a Mobile, Tablet e Desktop (Stack vertical no mobile).
9. Inclua meta tags básicas de SEO, Viewport e Open Graph no `<head>`.
10. Footer deve conter: Copyright 2026, Links de navegação secundária e Ícones de redes sociais.
11. Assuma as decisões criativas necessárias para entregar o resultado completo e funcional agora.

Relacionados

Última sincronização: 30/08/2026