FRONTEND GUIDELINES & DESIGN SYSTEMS

Um guia completo para estabelecer diretrizes eficazes de frontend, criar design systems robustos e escrever código consistente e coeso em equipe.

Baseado em Atomic Design Methodology
Por Brad Frost & Community
Atualizado 2025
01

HTML

Princípios, ferramentas e estilos para escrever marcação semântica, acessível e de alto desempenho.

Princípios

Estabeleça princípios fundamentais para sua equipe:

  • Marcação HTML5 semântica
  • Acessibilidade (WCAG 2.1)
  • Performance otimizada
  • SEO-friendly markup
  • Progressive enhancement

Ferramentas

Considere estas tecnologias:

  • Preprocessadores (Pug, HAML)
  • Template engines (Mustache, Handlebars)
  • Backend influence (WordPress, Drupal)
  • Component libraries
  • Static site generators

Estilo de Código

Defina convenções consistentes:

  • Indentação (spaces vs tabs)
  • Padrões de comentários
  • Naming conventions
  • Atributos order
  • Formatação de código
02

CSS

Metodologias, ferramentas e frameworks para criar estilos escaláveis, manuteníveis e performáticos.

Metodologias

Escolha uma metodologia CSS:

  • BEM (Block Element Modifier)
  • SMACSS (Scalable CSS)
  • OOCSS (Object-Oriented CSS)
  • Atomic CSS
  • CSS Modules

Ferramentas

Stack de ferramentas moderno:

  • Preprocessadores (Sass, Less)
  • PostCSS & Autoprefixer
  • CSS Reset/Normalize
  • Critical CSS
  • CSS-in-JS (styled-components)

Frameworks

Frameworks populares:

  • Tailwind CSS
  • Bootstrap 5
  • Foundation
  • Bulma
  • Custom design systems
03

JavaScript

Frameworks, patterns e ferramentas para criar aplicações interativas, testáveis e de alta qualidade.

Frameworks

Escolha seu framework:

  • React (+ Next.js)
  • Vue.js (+ Nuxt)
  • Angular
  • Svelte/SvelteKit
  • Vanilla JavaScript

Testes

Testing stack essencial:

  • Jest / Vitest
  • React Testing Library
  • Cypress / Playwright
  • ESLint / Prettier
  • TypeScript

Design Patterns

Padrões recomendados:

  • Module Pattern
  • Observer Pattern
  • Singleton Pattern
  • Factory Pattern
  • Composição vs Herança
04

Media & Assets

Otimização de imagens, ícones, fontes e outros recursos para máxima performance e experiência do usuário.

Imagens

  • Responsive images (srcset)
  • WebP & AVIF formats
  • Lazy loading
  • Image optimization tools
  • CDN delivery

Ícones

  • SVG sprites
  • Icon fonts (Font Awesome)
  • Inline SVG
  • Icon components
  • Acessibilidade (aria-labels)

Fontes

  • Web font loading strategies
  • Google Fonts / Adobe Fonts
  • Font Squirrel
  • Variable fonts
  • FOUT/FOIT prevention
05

Performance & Accessibility

Métricas, ferramentas e melhores práticas para garantir sites rápidos e acessíveis para todos.

Performance

  • Core Web Vitals (LCP, FID, CLS)
  • Lighthouse audits
  • Bundle size optimization
  • Code splitting
  • Caching strategies

Ferramentas

  • WebPageTest
  • Google PageSpeed Insights
  • Pingdom
  • Chrome DevTools
  • webpack Bundle Analyzer

Acessibilidade

  • WCAG 2.1 AA compliance
  • Keyboard navigation
  • Screen reader testing
  • Color contrast (4.5:1)
  • ARIA attributes
06

Atomic Design

Metodologia para criar design systems robustos baseada em componentes atômicos que escalam do menor elemento até páginas completas.

⚛️

Átomos

Elementos básicos HTML: botões, inputs, labels, ícones

🧬

Moléculas

Grupos de átomos: form fields, cards simples, search bars

🦠

Organismos

Componentes complexos: headers, footers, forms completos

📄

Templates

Estruturas de página com placeholder content

🌐

Páginas

Templates com conteúdo real e específico

Design System Principles

1. Sistemic Design

Design systems são produtos que servem produtos. Eles requerem equipes dedicadas, governança clara e evolução contínua baseada em feedback dos usuários (desenvolvedores e designers).

2. Component Lifecycle

Componentes devem ter versionamento, documentação clara, deprecation warnings e migration paths. Use ferramentas como Sass Deprecate para gerenciar mudanças.

3. Integration First

Integre o design system com o workflow de produção desde o início. Pattern Lab, Storybook e outras ferramentas ajudam a sincronizar design e código.

4. AI Era Adaptation

Design systems na era da IA precisam ser: interativos (não apenas estáticos), inteligentes (com automação e sugestões) e integrados (com ferramentas como Figma MCP Server).

07

Recursos

Links essenciais, ferramentas e referências para aprofundar seus conhecimentos em frontend e design systems.

08

Questionário

Perguntas essenciais para ajudar sua equipe a estabelecer guidelines efetivas e consistentes de frontend.

Princípios Gerais

Quais são os princípios fundamentais que sua equipe deve seguir ao escrever HTML, CSS e JavaScript? Considere aspectos como semântica, acessibilidade, performance, modularidade e manutenibilidade.

Tooling & Workflow

Quais ferramentas fazem parte do seu workflow? Preprocessadores, task runners, bundlers, linters, formatters? Como eles se integram no processo de desenvolvimento?

Metodologia CSS

Sua equipe utiliza uma metodologia CSS (BEM, SMACSS, OOCSS)? Como você documenta e garante a adoção dessas convenções? Existem desvios da metodologia padrão?

Component Strategy

Como sua equipe pensa em componentes? Você utiliza Atomic Design ou outra metodologia? Como os componentes são documentados e compartilhados?

Testing & Quality

Qual é sua estratégia de testes? Unit tests, integration tests, e2e tests? Quais ferramentas você usa? Qual é a cobertura de código esperada?

Performance Budget

Vocês utilizam performance budgets? Quais métricas são consideradas (bundle size, LCP, FID, CLS)? Como vocês monitoram e garantem que os budgets sejam respeitados?

Accessibility Standards

Quais são os padrões de acessibilidade que sua equipe segue? WCAG 2.1 AA? Quais ferramentas você usa para testar acessibilidade?

Documentation

Como a documentação do frontend é mantida? Vocês utilizam um pattern library tool (Storybook, Pattern Lab)? Quem é responsável por manter a documentação atualizada?

Version Control

Qual sistema de controle de versão vocês usam? Qual workflow (gitflow, trunk-based)? Como são gerenciados branches, PRs e releases?

Browser Support

Quais browsers e dispositivos vocês otimizam? Vocês utilizam graded browser support? Como vocês testam em diferentes ambientes?