PROMPT DE DESIGN PARA CRIAÇÃO DE PÁGINAS WEB
📋 Visão Geral
Este documento contém um prompt completo e estruturado para criação de páginas web modernas, seguindo os princípios de Editorial Brutalist Design, Atomic Design, e as melhores práticas de desenvolvimento frontend. Use este prompt como referência para ferramentas de IA ou como guia de implementação.
🎯 PROMPT PRINCIPAL
Crie uma página web única (one-pager) que combine clareza editorial com impacto visual brutalist, seguindo os princípios e especificações detalhadas abaixo.
🎨 FILOSOFIA DE DESIGN
Conceito: Editorial Brutalist
Definição: Combinar a clareza editorial de publicações técnicas com a honestidade brutal e impacto visual do design brutalist.
Princípios Fundamentais:
- Bold Aesthetic Direction: Estética claramente definida e memorável
- Distinctive Typography: Evitar fontes genéricas (Inter, Roboto) - escolher tipografias com personalidade
- Cohesive Color System: Sistema de cores semântico e consistente
- Intentional Motion: Animações bem orquestradas, não micro-interações dispersas
- Unexpected Layouts: Composições assimétricas que quebram padrões esperados
- Atmosphere & Depth: Uso de grids, overlays e transparências para criar profundidade
📐 ESPECIFICAÇÕES TÉCNICAS
Stack Tecnológico
Requisitos Obrigatórios:
- HTML5: Markup semântico, acessível e SEO-friendly
- CSS3: Custom Properties, Flexbox, Grid, Animations
- Vanilla JavaScript: Zero dependências externas
- Performance: Lighthouse Score 95+ em todas as métricas
- Acessibilidade: WCAG 2.1 AA compliant mínimo
Não Usar:
- Frameworks CSS pesados (Bootstrap, Foundation) - apenas se absolutamente necessário
- Bibliotecas JavaScript desnecessárias
- Imagens não otimizadas
- Fontes não otimizadas
🎨 SISTEMA DE DESIGN
Tipografia
Hierarquia de Fontes:
- Display Font (Títulos principais)
- Características: Peso dramático, presença forte, impacto visual
- Exemplos: Archivo Black, Bebas Neue, Bungee
- Uso: Hero titles, section headers principais
- Tamanho:
clamp(3rem, 12vw, 10rem)para hero,clamp(3rem, 8vw, 6rem)para seções
- Body Font (Texto corrido)
- Características: Legibilidade excepcional, moderna, versátil
- Exemplos: Work Sans, Inter, System UI
- Uso: Parágrafos, descrições, conteúdo geral
- Tamanho: Base 1rem, line-height 1.6-1.8
- Monospace Font (Código e dados)
- Características: Legibilidade técnica, espaçamento consistente
- Exemplos: JetBrains Mono, Fira Code, Source Code Pro
- Uso: Trechos de código, metadados, informações técnicas
Otimização de Fontes:
<!-- Preconnect para performance -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<!-- Font-display: swap para evitar FOIT -->
<link href="..." rel="stylesheet" media="print" onload="this.media='all'">
Sistema de Cores
Estrutura de Cores com CSS Custom Properties:
:root {
/* Cores Base */
--color-bg: #0a0a0a; /* Fundo principal (preto profundo) */
--color-text: #f5f5f5; /* Texto principal (branco quente) */
--color-accent: #ff6b6b; /* Cor de destaque principal */
/* Cores Semânticas (categorias) */
--color-category-1: #ff6b6b; /* Ex: HTML, Seção 1 */
--color-category-2: #4ecdc4; /* Ex: CSS, Seção 2 */
--color-category-3: #ffe66d; /* Ex: JavaScript, Seção 3 */
--color-category-4: #a8e6cf; /* Ex: Media, Seção 4 */
--color-category-5: #ff8b94; /* Ex: Performance, Seção 5 */
--color-category-6: #c7ceea; /* Ex: Acessibilidade, Seção 6 */
/* Cores de Estado */
--color-hover: rgba(255, 255, 255, 0.1);
--color-border: rgba(255, 255, 255, 0.1);
--color-overlay: rgba(0, 0, 0, 0.5);
}
Princípios de Uso de Cores:
- Cada categoria/seção tem sua cor identificadora
- Sistema semântico facilita navegação visual
- Cores vibrantes sobre fundo escuro criam contraste
- Manter contraste mínimo 4.5:1 para acessibilidade
Layout e Composição
Grid System:
- Container máximo:
1400px(desktop) - Padding lateral:
2rem(desktop),1rem(mobile) - Grid de fundo sutil:
50px × 50px(opcional, para estrutura visual)
Princípios de Layout:
- Grid Assimétrico: Títulos com indentação progressiva criam ritmo visual
- Negative Space: Uso generoso de espaço em branco (mínimo 2rem entre seções)
- Overlapping Elements: Barras de cor sobre fundo escuro criam profundidade
- Mobile-First: Design responsivo com breakpoint principal em
768px
Estrutura de Seções:
<section class="section" id="section-name">
<div class="container">
<div class="section-header">
<span class="section-number">01</span>
<h2 class="section-title">Título da Seção</h2>
<p class="section-description">Descrição contextual</p>
</div>
<!-- Conteúdo da seção -->
</div>
</section>
🧩 COMPONENTES (ATOMIC DESIGN)
Átomos (Elementos Básicos)
Botões:
.button {
padding: 1rem 2rem;
border: 1px solid var(--color-border);
background: transparent;
color: var(--color-text);
font-family: var(--font-mono);
text-transform: uppercase;
letter-spacing: 0.1em;
transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.button:hover {
background: var(--color-hover);
border-color: var(--color-accent);
transform: translateY(-2px);
}
Links:
.link {
color: var(--color-accent);
text-decoration: none;
position: relative;
}
.link::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
width: 0;
height: 2px;
background: var(--color-accent);
transition: width 0.3s ease;
}
.link:hover::after {
width: 100%;
}
Moléculas (Grupos de Átomos)
Card Component:
<div class="card" style="--card-color: var(--color-category-1);">
<h3 class="card-title">Título do Card</h3>
<div class="card-content">
<p>Conteúdo do card</p>
<ul class="card-list">
<li>Item da lista</li>
</ul>
</div>
</div>
.card {
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
padding: 2.5rem;
transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
position: relative;
overflow: hidden;
}
.card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 4px;
background: var(--card-color, var(--color-accent));
transform: scaleX(0);
transform-origin: left;
transition: transform 0.3s ease;
}
.card:hover {
transform: translateY(-5px);
border-color: var(--card-color, var(--color-accent));
background: rgba(255, 255, 255, 0.08);
}
.card:hover::before {
transform: scaleX(1);
}
Organismos (Componentes Complexos)
Hero Section:
<section class="hero">
<div class="container">
<h1 class="hero-title">
<span>TÍTULO</span>
<span>PRINCIPAL</span>
<span>EM LINHAS</span>
</h1>
<p class="hero-subtitle">Descrição impactante do conteúdo</p>
<div class="hero-meta">
<div class="hero-meta-item">
<span class="hero-meta-label">Categoria</span>
<span>Valor</span>
</div>
</div>
</div>
</section>
Navigation (Sticky):
<nav class="nav" id="nav">
<div class="nav-container">
<div class="nav-logo">LOGO</div>
<ul class="nav-links">
<li><a href="#section" class="nav-link">Link</a></li>
</ul>
</div>
</nav>
🎬 ANIMAÇÕES E INTERAÇÕES
Princípios de Animação
Filosofia: “One well-orchestrated page load creates more delight than scattered micro-interactions”
Regras:
- Animações devem ter propósito (não decorativas)
- Duração: 0.3s - 1s (dependendo da importância)
- Easing:
cubic-bezier(0.16, 1, 0.3, 1)para suavidade - Performance: Usar
transformeopacity(GPU-accelerated)
Animações Essenciais
1. Hero Title Staggered Reveal:
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(100px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.hero-title span {
display: block;
animation: slideUp 1s cubic-bezier(0.16, 1, 0.3, 1) backwards;
}
.hero-title span:nth-child(1) { animation-delay: 0.1s; }
.hero-title span:nth-child(2) { animation-delay: 0.2s; }
.hero-title span:nth-child(3) { animation-delay: 0.3s; }
2. Fade-in on Scroll:
.fade-in {
opacity: 0;
transform: translateY(30px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.visible {
opacity: 1;
transform: translateY(0);
}
// Intersection Observer para fade-in
const fadeElements = document.querySelectorAll('.fade-in');
const fadeInOnScroll = () => {
fadeElements.forEach(element => {
const elementTop = element.getBoundingClientRect().top;
if (elementTop < window.innerHeight * 0.85) {
element.classList.add('visible');
}
});
};
window.addEventListener('scroll', fadeInOnScroll);
fadeInOnScroll(); // Initial check
3. Scroll Progress Indicator:
<div class="scroll-indicator">
<div class="scroll-progress" id="scrollProgress"></div>
</div>
.scroll-indicator {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 3px;
background: rgba(255, 255, 255, 0.1);
z-index: 101;
}
.scroll-progress {
height: 100%;
background: linear-gradient(90deg, var(--color-category-1), var(--color-category-2));
width: 0%;
transition: width 0.1s ease;
}
window.addEventListener('scroll', () => {
const scrollProgress = document.getElementById('scrollProgress');
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
const scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;
const progress = (scrollTop / scrollHeight) * 100;
scrollProgress.style.width = progress + '%';
});
4. Smooth Scroll Navigation:
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({
behavior: 'smooth',
block: 'start'
});
}
});
});
📱 RESPONSIVIDADE
Breakpoints
/* Mobile First - Base */
/* Estilos base para mobile */
/* Tablet */
@media (min-width: 768px) {
/* Ajustes para tablet */
}
/* Desktop */
@media (min-width: 1400px) {
/* Ajustes para desktop */
}
Estratégia Mobile
Problemas a Resolver:
- Títulos muito grandes → Usar
clamp()para escalabilidade - Indentação confusa → Remover indents em mobile
- Grid complexo → Single column em mobile
- Navegação horizontal → Ocultar ou usar hamburger menu
Exemplo de Ajustes Mobile:
@media (max-width: 768px) {
.hero-title span {
text-indent: 0 !important;
}
.nav-links {
display: none; /* ou hamburger menu */
}
.cards-grid,
.atomic-grid,
.resources-grid {
grid-template-columns: 1fr;
}
.section {
padding: 4rem 0; /* Reduzir padding */
}
}
♿ ACESSIBILIDADE
Requisitos Obrigatórios
- Semantic HTML5:
- Usar elementos semânticos (
<nav>,<section>,<article>,<header>,<footer>) - Estrutura de headings hierárquica (H1 → H2 → H3)
- Usar elementos semânticos (
- ARIA Labels:
<nav aria-label="Navegação principal"> <button aria-label="Fechar menu"> - Keyboard Navigation:
- Todos os elementos interativos devem ser acessíveis via teclado
- Indicadores de foco visíveis
*:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
- Color Contrast:
- Mínimo 4.5:1 para texto normal
- Mínimo 3:1 para texto grande (18px+)
- Testar com ferramentas (WebAIM Contrast Checker)
- Screen Reader Support:
- Textos alternativos para imagens
- Labels descritivos para formulários
- Anúncios de mudanças dinâmicas (aria-live)
⚡ PERFORMANCE
Otimizações Obrigatórias
- Fontes:
- Preconnect para Google Fonts
font-display: swappara evitar FOIT- Limitar a 3 famílias de fontes
- Carregar apenas pesos necessários
- CSS:
- Single file (sem imports desnecessários)
- Minificação em produção
- CSS crítico inline (opcional, para above-the-fold)
- JavaScript:
- Vanilla JS (zero dependências)
- Event delegation
- Passive scroll listeners
requestAnimationFramepara animações
- Imagens:
- Zero imagens desnecessárias
- SVG para ícones
- Lazy loading se necessário
- WebP/AVIF com fallback
- Métricas Alvo:
- First Contentful Paint: < 1s
- Time to Interactive: < 2s
- Lighthouse Score: 95+ em todas as categorias
📐 ESTRUTURA DE CONTEÚDO
Arquitetura da Informação
Padrão de Seção:
1. CONTEXTUALIZAÇÃO
└── Número da seção + título dramático + descrição
2. EXPLORAÇÃO
└── 3 cards com aspectos principais (número mágico 3-5)
3. APROFUNDAMENTO
└── Listas com 5 itens cada (chunking: 5±2)
4. AÇÃO
└── Links, questionários ou CTAs para aplicação
Princípios de UX:
- Chunking: Conteúdo em blocos de 3-5 itens
- Visual Hierarchy: Tamanhos, cores e espaços estabelecem ordem
- Feedback Imediato: Hover effects, scroll progress
- Consistency: Padrões repetidos criam familiaridade
- Recognition over Recall: Navegação sempre visível
🎯 CHECKLIST DE IMPLEMENTAÇÃO
Pré-Desenvolvimento
- Definir paleta de cores semântica
- Escolher 3 fontes (display, body, mono)
- Criar estrutura de componentes (Atomic Design)
- Definir breakpoints e estratégia mobile
Durante Desenvolvimento
- Implementar HTML semântico
- Criar sistema de cores com CSS Custom Properties
- Implementar componentes reutilizáveis
- Adicionar animações essenciais
- Testar responsividade em múltiplos dispositivos
- Validar acessibilidade (WCAG 2.1 AA)
- Otimizar performance (Lighthouse)
Pós-Desenvolvimento
- Testar em navegadores (Chrome, Firefox, Safari, Edge)
- Validar HTML/CSS (W3C Validator)
- Testar com leitores de tela
- Verificar Core Web Vitals
- Documentar componentes e decisões
📝 EXEMPLO DE ESTRUTURA HTML COMPLETA
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Título da Página</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="..." rel="stylesheet">
<style>
/* CSS Custom Properties */
:root {
--color-bg: #0a0a0a;
--color-text: #f5f5f5;
--color-accent: #ff6b6b;
/* ... */
}
/* Reset e Base */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: var(--color-bg);
color: var(--color-text);
font-family: var(--font-body);
line-height: 1.6;
}
/* Grid Background (opcional) */
.grid-bg {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image:
linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
background-size: 50px 50px;
pointer-events: none;
z-index: 0;
}
/* Container */
.container {
max-width: 1400px;
margin: 0 auto;
padding: 0 2rem;
position: relative;
z-index: 1;
}
/* Hero Section */
.hero {
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
padding: 4rem 0;
}
/* Animações */
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(100px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Responsive */
@media (max-width: 768px) {
.container {
padding: 0 1rem;
}
}
</style>
</head>
<body>
<!-- Grid Background -->
<div class="grid-bg"></div>
<!-- Scroll Progress -->
<div class="scroll-indicator">
<div class="scroll-progress" id="scrollProgress"></div>
</div>
<!-- Navigation -->
<nav class="nav" id="nav" aria-label="Navegação principal">
<div class="nav-container">
<div class="nav-logo">LOGO</div>
<ul class="nav-links">
<li><a href="#section1" class="nav-link">Seção 1</a></li>
</ul>
</div>
</nav>
<!-- Hero Section -->
<section class="hero">
<div class="container">
<h1 class="hero-title">
<span>TÍTULO</span>
<span>PRINCIPAL</span>
</h1>
<p class="hero-subtitle">Descrição impactante</p>
</div>
</section>
<!-- Main Content Sections -->
<section class="section" id="section1">
<div class="container">
<div class="section-header fade-in">
<span class="section-number">01</span>
<h2 class="section-title">Título da Seção</h2>
<p class="section-description">Descrição contextual</p>
</div>
<!-- Conteúdo -->
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="container">
<p>Créditos e informações</p>
</div>
</footer>
<script>
// JavaScript para interatividade
// Scroll progress, fade-in, smooth scroll, etc.
</script>
</body>
</html>
🎓 PRINCÍPIOS FINAIS
Design
- Bold Aesthetic Direction: Estética claramente definida
- Distinctive Typography: Fontes com personalidade
- Cohesive Color System: Sistema semântico consistente
- Intentional Motion: Animações com propósito
- Unexpected Layouts: Composições que quebram padrões
- Atmosphere & Depth: Profundidade visual
Desenvolvimento
- Semantic HTML: Estrutura acessível e SEO-friendly
- CSS Custom Properties: Sistema de design escalável
- Vanilla JavaScript: Zero dependências desnecessárias
- Performance First: Otimizações desde o início
- Mobile-First: Design responsivo por padrão
- Accessibility: WCAG 2.1 AA mínimo
UX
- Chunking: Conteúdo em blocos gerenciáveis (3-5 itens)
- Visual Hierarchy: Tamanhos, cores e espaços claros
- Feedback Imediato: Interações responsivas
- Consistency: Padrões repetidos
- Recognition over Recall: Navegação sempre visível
📚 REFERÊNCIAS
- Atomic Design: atomicdesign.bradfrost.com
- WCAG Guidelines: w3.org/WAI/WCAG21
- Web.dev Performance: web.dev
- MDN Web Docs: developer.mozilla.org
- CSS Guidelines: cssguidelin.es
Última atualização: Novembro 2025
Versão: 1.0
Uso: Este prompt pode ser usado como referência para criação de páginas web modernas, adaptável a diferentes contextos e necessidades.