Airbnb design system.
Airbnb design system — Marketplace de viagens. Acento coral quente, focado em fotografia, UI arredondada.
Veja em contexto
Os mesmos design tokens aplicados a diferentes tipos de artefato — um site, um app, um slide, um pôster. Mockups originais retematizados com este sistema, não capturas de tela.
it
real.
Design tokens
56 tokens em conformidade com o contrato de tokens do Open Design — os mesmos valores estruturados de paleta, tipografia, espaçamento e movimento que seu agent lê para tematizar qualquer artefato.
Superfície
-
--bg#ffffff -
--surface#ffffff -
--surface-warm#f7f7f7
Texto
-
--fg#222222 -
--fg-2#3f3f3f -
--muted#6a6a6a -
--meta#929292
Borda
-
--border#dddddd -
--border-soft#ebebeb
Destaque
-
--accent#ff385c -
--accent-on#ffffff -
--accent-hover#e31c5f -
--accent-active#e00b41
Semântico
-
--success#008a05 -
--warn#c47700 -
--danger#c13515
Tipografia
-
--font-display"Airbnb Cereal VF", "Airbnb Cereal App", Circular, -apple-system, system-ui, "Helvetica Neue", Roboto, sans-serif -
--font-body"Airbnb Cereal VF", "Airbnb Cereal App", Circular, -apple-system, system-ui, "Helvetica Neue", Roboto, sans-serif -
--font-monoui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace
Escala tipográfica
-
--text-xs12px -
--text-sm14px -
--text-base16px -
--text-lg20px -
--text-xl22px -
--text-2xl28px -
--text-3xl44px -
--text-4xl56px -
--leading-body1.43 -
--leading-tight1.2 -
--tracking-display-0.02em
Espaçamento
-
--space-14px -
--space-28px -
--space-312px -
--space-416px -
--space-520px -
--space-624px -
--space-832px -
--space-1248px -
--section-y-desktop64px -
--section-y-tablet48px -
--section-y-phone32px
Raio
-
--radius-sm8px -
--radius-md14px -
--radius-lg20px -
--radius-pill9999px
Elevação
-
--elev-flatnone -
--elev-ring0 0 0 1px var(--border) -
--elev-raisedrgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0
Foco
-
--focus-ring0 0 0 2px var(--fg)
Movimento
-
--motion-fast150ms -
--motion-base200ms -
--ease-standardcubic-bezier(0.2, 0, 0, 1)
Layout
-
--container-max1280px -
--container-gutter-desktop40px -
--container-gutter-tablet24px -
--container-gutter-phone16px
Sistema de design inspirado no Airbnb
Category: E-commerce e varejo Marketplace de viagens. Acento coral quente, orientado para fotografia, interface com cantos arredondados.
1. Tema visual e atmosfera
O design do Airbnb em 2026 parece uma revista de viagens que por acaso também é um aplicativo — telas de branco imaculado dão lugar a fotografias em sangria total, e a própria interface desaparece para que os anúncios possam respirar. O característico coral-rosa Rausch (#ff385c) é usado com parcimônia, mas de forma inconfundível: CTA de pesquisa, indicador de aba ativa, botão de ação principal, o preço ou o coração de lista de desejos ocasional. Todo o resto é uma escala de cinza disciplinada, com #222222 carregando quase cada linha de texto.
O que torna o sistema inconfundivelmente Airbnb é a fé que ele deposita no conteúdo. As fotos das propriedades são exibidas em escala heroica, 4:3 com tratamento de borda a borda com raio. A troca de categoria acontece por meio de um seletor de três abas (Casas / Experiências / Serviços) que usa ícones ilustrados renderizados em 3D (uma casa com telhado inclinado, um balão de ar quente, uma campainha de serviço) — físicos, táteis, quase como brinquedos — combinados com etiquetas nítidas de Airbnb Cereal VF. É o raro produto de consumo onde renders 3D e interface puramente tipográfica coexistem sem tensão.
A superfície mais nova é a linha de produtos de Experiências — o mesmo chrome, mas maior densidade de cartões, mais fotografia e um painel de reserva com centralização e preço fixo na coluna direita. As páginas de detalhes de anúncios (tanto quartos quanto experiências) seguem um modelo rígido: grade de imagem hero em sangria total → cartão de reserva arredondado sobreposto (fixo ao rolar) → comodidades → avaliações (os prêmios Guest Favorite usam um grande 4,81 centralizado com um medalhão de coroa de louros) → mapa → perfil do anfitrião → divulgações. O ritmo é consistente, seja reservando um quarto ou um passeio de iate.
Características principais:
- Coral-rosa Rausch (
#ff385c) como cor de marca de acento único, usada apenas para CTAs principais e o botão de pesquisa - Fotografia em sangria total em 4:3 / 16:9 com suave arredondamento de cantos (14–20px) como vocabulário visual principal
- Ícones de categoria renderizados em 3D combinados com abas tipográficas — o único lugar onde o sistema permite ilustração
- Botões de ícone circulares
50%(seta voltar, compartilhar, favorito, setas de carrossel) espalhados por toda a interface Airbnb Cereal VFcarrega cada etiqueta, desde notas legais de 8px até títulos de seção de 28px — um sistema de família única- Codificação de cor por nível de produto: Airbnb Plus (magenta
#92174d), Airbnb Luxe (roxo profundo#460479), Airbnb (coral Rausch) - Medalhão de prêmio Guest Favorite — número de avaliação gigante centralizado entre duas coroas de louros, um dos momentos mais reconhecíveis do sistema
- Painel de reserva fixo com uma pilha preço → datas → hóspedes, ancorado na coluna direita no desktop, transformando-se em uma barra de «Reservar» ancorada na parte inferior no mobile
- Navegação mobile fixada na parte inferior (Explorar / Listas de desejos / Entrar) com um toque Rausch no estado ativo
2. Paleta de cores e papéis
Principal
- Rausch (
#ff385c): O coral-rosa característico da marca. Variável CSS--palette-bg-primary-core. Usado para: botão principal «Reservar», botão de envio de pesquisa, sublinhado de aba ativa, preenchimento do coração de lista de desejos, ênfase de preço. A cor de maior visibilidade em cada página.
Secundárias e de destaque
- Deep Rausch (
#e00b41): Uma variante mais saturada. Variável CSS--palette-bg-tertiary-core. Usado para estados de botão pressionado/ativo e pontos terminais de gradiente. - Plus Magenta (
#92174d): Variável CSS--palette-bg-primary-plus. A cor de marca para o nível de produto Airbnb Plus — uma oferta de anúncios curados de alto padrão. - Luxe Purple (
#460479): Variável CSS--palette-bg-primary-luxe. A cor de marca para o nível de produto Airbnb Luxe — aluguéis de villas e propriedades de luxo. - Info Blue (
#428bff): Variável CSS--palette-text-legal. Usado para links legais/informativos (termos, privacidade, divulgações) — a única cor de link não monocromática no sistema.
Superfície e fundo
- Canvas White (
#ffffff): O fundo de página padrão. Cada cartão, cada container, cada página de detalhe começa aqui. - Soft Cloud (
#f7f7f7): Tinte de subsuperfície sutil usado em fundos de rodapé, wrappers de visualização de mapa e seções de «todo o resto» que desejam recuar do branco principal. - Hairline Gray (
#dddddd): Cor de borda 1px onipresente — separa cartões, linhas de comodidades, painéis de avaliações, colunas de rodapé. O cavalo de batalha do sistema de layout.
Neutros e texto
- Ink Black (
#222222): Variável CSS--palette-text-primary. O quase-preto do sistema. Cada título, cada parágrafo de corpo, cada etiqueta de navegação, cada preço. Usado em ~90% de todo o texto em uma página. - Charcoal (
#3f3f3f): Variável CSS--palette-text-focused. Usado no texto de entrada no estado focused e no texto de ênfase secundária. - Ash Gray (
#6a6a6a): Variável CSS--palette-bg-tertiary-hover. Etiquetas secundárias, texto de estilo de subtítulo «Aluguel de chalés» sob nomes de cidades, links de rodapé silenciados. - Mute Gray (
#929292): Variável CSS--palette-text-link-disabled. Botões desativados e metadados de baixa prioridade. - Stone Gray (
#c1c1c1): Divisores terciários, traços de ícones, avatares de espaço reservado.
Semânticos e de destaque
- Error Red (
#c13515): Variável CSS--palette-text-primary-error. Erros de validação de formulários, avisos de ação destrutiva. - Deep Error (
#b32505): Variável CSS--palette-text-secondary-error-hover. Variantes pressionadas/ativas de estados de erro. - Translucent Black (
rgba(0, 0, 0, 0.24)): Variável CSS--palette-text-material-disabled. Etiquetas de estilo material desativadas.
Sistema de gradientes
O gradiente de marca do Airbnb aparece com parcimônia, normalmente apenas no logotipo e no momento de marca do botão de pesquisa:
linear-gradient(90deg, #ff385c 0%, #e00b41 50%, #92174d 100%)
Essa varredura coral → magenta é o «momento de marca» — nunca usado como superfície completa, apenas como preenchimento de pílula estreita ou tratamento de logo.
3. Regras tipográficas
Família tipográfica
- Airbnb Cereal VF (principal e única): O sans-serif de peso variável proprietário que carrega todo o sistema. Fontes de fallback (em ordem):
Circular, -apple-system, system-ui, Roboto, Helvetica Neue, sans-serif.
Pesos observados nos tokens extraídos: 500, 600, 700. Sem 400-regular — o peso de «corpo» do sistema é 500, o que dá a cada bloco de texto uma densidade ligeiramente maior que se lê como confiante e deliberada.
Funcionalidades OpenType: salt (alternativas estilísticas) é usado nas etiquetas compactas de 11px e 14px 600 — provavelmente para formatação mais compacta de numerais e caracteres especiais. Não foram observadas funcionalidades de ligaduras ou numerais fracionários.
Hierarquia
| Papel | Tamanho | Peso | Altura de linha | Espaçamento de letras | Notas |
|---|---|---|---|---|---|
| Título de seção | 28px / 1,75rem | 700 | 1,43 | 0 | «Inspiração para futuras viagens» — títulos em nível de página |
| Título de subseção | 22px / 1,38rem | 500 | 1,18 | -0,44px | «O que este lugar oferece», «Conheça os anfitriões» — divisores de conteúdo |
| Título de cartão | 21px / 1,31rem | 700 | 1,43 | 0 | Títulos de painel de avaliações, títulos principais de cartão |
| Título de anúncio | 20px / 1,25rem | 600 | 1,20 | -0,18px | «Passeio de iate em grupo pequeno, vinho e frutas ilimitados» — manchetes de anúncios em páginas de detalhes |
| Subtítulo em negrito | 16px / 1,00rem | 600 | 1,25 | 0 | Nome do anfitrião, nome da cidade |
| Corpo médio | 16px / 1,00rem | 500 | 1,25 | 0 | Texto de corpo principal em páginas de detalhes |
| Botão grande | 16px / 1,00rem | 500 | 1,25 | 0 | «Reservar», «Torne-se um anfitrião» |
| Botão padrão | 14px / 0,88rem | 500 | 1,29 | 0 | Etiquetas de botão padrão |
| Link | 14px / 0,88rem | 500 | 1,43 | 0 | Links de navegação, links de rodapé |
| Legenda média | 14px / 0,88rem | 500 | 1,29 | 0 | Metadados, linhas de subtítulo («Aluguel de chalés», «Aluguel de villas») |
| Legenda em negrito | 14px / 0,88rem | 600 | 1,43 | 0 | Funcionalidade salt habilitada — estatísticas numéricas, ênfase em texto pequeno |
| Legenda pequena | 13px / 0,81rem | 400 | 1,23 | 0 | Datas de avaliações, micro-metadados |
| Micro padrão | 12px / 0,75rem | 400 | 1,33 | 0 | Isenções de responsabilidade no rodapé, micro-texto legal |
| Micro em negrito | 12px / 0,75rem | 700 | 1,33 | 0 | Etiquetas de pílula «NOVO» |
| Badge em maiúsculas | 11px / 0,69rem | 600 | 1,18 | 0 | Funcionalidade salt — badges compactos de categoria/status |
| Sobrescrito | 8px / 0,50rem | 700 | 1,25 | 0,32px | Maiúsculas — notas de rodapé de preço, caudas decimais |
Princípios
- Uma família, muitos pesos. Airbnb Cereal VF lida com tudo, do texto legal de 8px aos títulos de página de 28px — a identidade visual vem da própria família, não da mistura de tipografias.
- 500 é o novo 400. O peso «regular» do sistema é 500, dando a cada parágrafo uma textura ligeiramente mais confiante do que o padrão da web.
- Tracking negativo apenas para tipos de display. Títulos de 20px e acima comprimem o tracking em -0,18 a -0,44px para um aspecto cinzelado; tamanhos de corpo permanecem com tracking 0 para legibilidade.
- Alturas de linha ajustadas para manchetes, generosas para corpo. O tipo de display roda a 1,18–1,25 (ajustado); corpo e legendas se abrem para 1,43 para conforto de leitura longa.
- Sem maiúsculas exceto a 8px. A única transformação em maiúsculas no sistema é o sobrescrito de 8px — em qualquer outro lugar, a capitalização de sentença com sutis mudanças de peso faz o trabalho.
Nota sobre substitutos de fontes
Airbnb Cereal VF é proprietária. O substituto open source mais próximo é Circular Std (ainda comercial) ou Inter (gratuito, Google Fonts) com espaçamento de letras reduzido em -0,01em nos tamanhos de display. Para fidelidade estrita de marca, a cadeia de fallback documentada (Circular, -apple-system, system-ui) renderiza aceitavelmente no macOS/iOS onde system-ui se resolve para San Francisco, que tem proporções semelhantes.
4. Estilização de componentes
Botões
CTA principal («Reservar», «Pesquisar», «Adicionar datas»)
- Fundo: Rausch
#ff385c - Texto: Canvas White
#ffffff, Airbnb Cereal 500, 16px - Preenchimento: ~14px vertical, 24px horizontal
- Raio: 8px (retangular) ou 50% (variante de ícone circular)
- Borda: nenhuma
- Ativo/pressionado:
transform: scale(0.92)mais um anel de foco de 2px#222222em0 0 0 2px
Botão secundário («Torne-se um anfitrião», ações terciárias delineadas)
- Fundo:
#ffffff - Texto: Ink Black
#222222, Airbnb Cereal 500, 14–16px - Preenchimento: 10px 16px
- Raio: 20px (pílula) ou 8px (retangular)
- Borda: 1px solid Hairline Gray
#dddddd
Botão circular apenas com ícone (seta voltar, compartilhar, favorito, controles de carrossel)
- Fundo:
#f2f2f2(ligeiramente fora do branco) ou branco com borda preta translúcida de 1px - Ícone: traço de contorno
#222222, 16–20px - Tamanho: diâmetro 32–44px
- Raio: 50%
- Ativo/pressionado:
transform: scale(0.92); anel branco sutil de 4px0 0 0 4px rgb(255,255,255)para separar de fundos fotográficos coloridos
Botão desativado
- Fundo:
#f2f2f2 - Texto: Stone Gray
#c1c1c1 - Opacidade: 0,5
Botão de aba em pílula (seletor de categoria «Casas / Experiências / Serviços»)
- Fundo: transparente
- Texto: Ink Black
#222222, Airbnb Cereal 500, 16px - Preenchimento: 8px 14px
- Estado ativo: sublinhado Ink Black de 2px abaixo da etiqueta
- Combinado com um ícone ilustrado renderizado em 3D de 36–48px acima da etiqueta
Cartões e containers
Cartão de anúncio (grade da página inicial, resultados de pesquisa)
- Fundo:
#ffffff - Raio: 14px na imagem, o texto fica diretamente abaixo em fundo transparente
- Imagem: proporção 4:3, em sangria total, arredondada com o mesmo raio de 14px
- Preenchimento: nenhum no container externo; 12px de espaçamento entre a imagem e as linhas de metadados
- Sombra: nenhuma — a separação vem do espaço em branco e do raio intrínseco da fotografia
- Padrão de metadados: cidade/região na linha 1 (16px 600), distância/duração na linha 2 (14px 500 Ash Gray), intervalo de datas na linha 3, linha de preço com «por noite» na parte inferior
Painel de reserva da página de detalhes (coluna direita fixa em páginas de quarto/experiência)
- Fundo:
#ffffff - Raio: 14–20px
- Borda: 1px solid Hairline Gray
#dddddd - Sombra:
rgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0— uma elevação sutil de três camadas empilhadas - Preenchimento: 24px
- Largura: ~370px, ancorado 120–140px abaixo do topo da viewport
- Conteúdo: título do preço → seletor de datas → dropdown de hóspedes → CTA principal → nota de rodapé «Você não será cobrado ainda»
Cartão de grade de comodidades (em páginas de detalhes de anúncios)
- Fundo:
#ffffff - Borda: 1px solid Hairline Gray
#ddddddno nível da linha (não por item) - Preenchimento: 16px vertical por linha de comodidade
- Padrão ícone + etiqueta: ícone de contorno 24px à esquerda, etiqueta 16px 500 à direita
Cartão de avaliação (avaliação individual em páginas de detalhes)
- Fundo:
#ffffff, sem borda - Preenchimento: 0 (depende dos espaços da grade)
- Conteúdo: avatar circular 40px + nome 16px 600 + data 14px 400 Ash Gray em uma linha, depois parágrafo de corpo 14px 500 abaixo
Entradas e formulários
Barra de pesquisa (página inicial principal)
- Fundo:
#ffffff - Borda: 1px solid Hairline Gray
#ddddddenvolvendo os três segmentos (Onde / Quando / Quem) - Raio: 32px (pílula completa)
- Sombra:
rgba(0, 0, 0, 0.04) 0 2px 6px 0— sensação de flutuação sutil - Estrutura: três segmentos divididos por finos divisores verticais, cada segmento tem uma etiqueta 12px 500 acima de um espaço reservado 14px 500
- Envio: botão de ícone circular Rausch na borda direita, diâmetro 48px
Entrada de texto (formulários genéricos)
- Fundo:
#ffffff - Borda: 1px solid Hairline Gray
#dddddd - Raio: 8px
- Preenchimento: 14px 16px
- Foco: a borda muda para Ink Black, adiciona anel externo preto
0 0 0 2px - Erro: a borda muda para
#c13515(Error Red), o texto de ajuda usa a mesma cor
Seletor de datas
- Grade de calendário: layout de 7 colunas, células de dias circulares
50%com 40–44px de largura - Intervalo selecionado: fundo Ink Black
#222222com numerais brancos - Âncoras de início/fim: círculos preenchidos maiores; datas intermediárias usam o tinte Soft Cloud
#f7f7f7
Navegação
Navegação superior (Desktop)
- Altura: ~80px
- Fundo:
#ffffff - Esquerda: logotipo do Airbnb em Rausch (102×32px)
- Centro: seletor de categoria de três abas (Casas / Experiências / Serviços) com ícones 3D de 36–48px empilhados acima de etiquetas 16px 500; a aba ativa tem sublinhado Ink Black de 2px
- Direita: link de texto «Torne-se um anfitrião», depois globo circular 32px (idioma), depois menu hamburger de avatar 36px
- Border-bottom: 1px solid Hairline Gray
#dddddd
Navegação superior (Mobile)
- Pílula de pesquisa em linha única ocupa toda a largura: espaço reservado «Comece sua pesquisa» com um pequeno ícone de lupa
- Abaixo: o seletor de categoria de três abas persiste (Casas / Experiências / Serviços) — os ícones ilustrados encolhem para ~28px
- Barra de abas fixada na parte inferior: Explorar (estado ativo Rausch) / Listas de desejos / Entrar — ícones 24px acima de etiquetas 12px
Navegação secundária da página de detalhes de anúncio
- Rolagem horizontal fixa de links de âncora (Fotos · Comodidades · Avaliações · Localização · Anfitrião) aparece ao rolar além da imagem hero
- Altura: 56px
- Border-bottom: 1px solid Hairline Gray
Tratamento de imagens
- Proporções principais: 4:3 para grades de anúncios da página inicial, 16:9 para fotografia hero de experiências, 1:1 para avatares
- Raio: 14px em imagens de grade de anúncios, 20px em molduras de fotos hero de páginas de detalhes,
50%em avatares - Grade de imagens em páginas de detalhes: grade de cinco fotos com uma imagem grande à esquerda (50% de largura) e quatro fotos menores em uma grade 2×2 à direita, todas compartilhando o container arredondado externo de 20px
- Carregamento lazy: uso intensivo de
loading="lazy"com prévias de espaço reservado borradas - Carrossel: botões de seta circulares de 32px sobrepostos à imagem, centralizados verticalmente; indicadores de pontos ficam a 12px acima da borda inferior
Componentes assinatura
Medalhão de prêmio Guest Favorite (destacado em páginas de detalhes de anúncios com alta avaliação)
- Número de avaliação centralizado renderizado a 44–56px 700
- Duas ilustrações SVG de coroa de louros desenhadas à mão flanqueando esquerda e direita a ~48px de altura
- Abaixo: etiqueta «Guest Favorite» a 12px 700 em maiúsculas com tracking de
0,32px, e uma sub-etiqueta curta a 14px 500 Ash Gray - Bloco de largura total, sem borda de container — fica diretamente sobre o canvas branco
Seletor de categoria de três abas (aparece no topo de cada superfície de navegação)
- Três abas: Casas / Experiências / Serviços
- Cada aba: ícone ilustrado renderizado em 3D (~48px de altura) acima de uma etiqueta 16px 500
- Experiências e Serviços atualmente carregam uma pequena pílula azul marinho «NOVO» (texto branco 12px 700 sobre fundo azul escuro) flutuando no canto superior direito do ícone
- Aba ativa: sublinhado Ink Black de 2px abaixo da etiqueta
Grade de cidades de inspiração (página inicial «Inspiração para futuras viagens»)
- Grade de 6 colunas de links de destino no desktop, 2 colunas no mobile
- Cada célula: nome de cidade 16px 600 na linha 1, subtítulo de tipo de aluguel 14px 500 Ash Gray na linha 2 («Aluguel de chalés», «Aluguel de villas»)
- Sem imagens — grade somente de texto
- Tabulada acima por categoria (Popular / Artes e cultura / Praia / Montanhas / Ao ar livre / Atividades / Dicas de viagem e inspiração / Apartamentos amigáveis ao Airbnb) — a aba ativa tem sublinhado de 2px e mudança de peso
Cartão fixo de reserva (páginas de detalhes de anúncios)
- Permanece fixo a 120px abaixo do topo da viewport no desktop conforme o usuário rola além do hero
- Colapsa para uma barra de largura total na parte inferior no mobile com uma etiqueta «A partir de R$ X / noite» e uma pílula Rausch «Reservar»
- Sempre exibe: título do preço → exibição de datas → seletor de hóspedes → CTA Rausch → isenção «Você não será cobrado ainda»
Cartão de anfitrião de experiência (páginas de detalhes de experiências)
- Container arredondado de largura total com uma fotografia de capa 3:2 no topo
- Avatar do anfitrião (circular, 56px) sobrepondo a borda inferior da capa em 50%
- Abaixo da sobreposição: nome do anfitrião a 16px 700, tempo de anfitrionagem a 14px 500 Ash Gray, pequeno botão de pílula Rausch «Enviar mensagem ao anfitrião»
- Usado como transição entre avaliações e o bloco de comodidades/localização
Faixa «Coisas importantes» (páginas de detalhes de anúncios)
- Grade de 3 colunas de blocos de regras/políticas (Regras da casa, Segurança e propriedade, Política de cancelamento)
- Cada coluna: ícone no topo, título 16px 600, corpo 14px 500 Ash Gray, link «Mostrar mais» sublinhado em Ink Black
- Separador: bordas superior e inferior Hairline Gray 1px na faixa inteira
5. Princípios de layout
Sistema de espaçamento
- Unidade base: 8px
- Escala extraída: 2, 3, 4, 5,5, 6, 8, 10, 11, 12, 15, 16, 18,5, 22, 24, 32px — finamente granulada com alguns valores fora da grade usados para alinhamento de ícones perfeito ao pixel
- Preenchimento de seção: ~48–64px em cima/baixo no desktop, 24–32px no mobile
- Preenchimento interno do cartão: 24px em painéis de reserva e cartões grandes, 16px em linhas de comodidades, 12px em metadados de cartão de anúncio
- Calha entre cartões de anúncio: 24px desktop, 16px mobile
- Entre linhas de texto empilhadas: 4–8px (muito ajustado — reforça a sensação de «informação densa» dos anúncios de viagem)
Grade e container
- Largura máxima do conteúdo: 1760–1920px em ultra-wide (o Airbnb deixa a grade respirar mais do que a maioria dos sites); 1280px na maioria das páginas de detalhes
- Grade de anúncios da página inicial: 6 colunas em ≥1760px, 5 em ≥1440px, 4 em ≥1128px, 3 em ≥800px, 2 em ≥550px, 1 abaixo
- Página de detalhes: 2 colunas assimétricas — conteúdo principal ~58%, painel de reserva fixo ~36% à direita, ~6% de calha
- Rodapé: 3 colunas Suporte / Hospedagem / Airbnb
Filosofia do espaço em branco
O Airbnb é densamente informativo, mas nunca sufocante. O espaço em branco é usado para agrupar — os cartões de anúncio têm 24px de calha para que cada fotografia seja lida como um objeto distinto, mas os metadados abaixo de cada cartão usam espaços de 4–8px para que o preço/cidade/data se sinta como uma unidade. O painel de reserva da página de detalhes tem 24px de preenchimento interno, mas as linhas dentro (seletor de datas, seletor de hóspedes, CTA) são empilhadas a 12px — o limite entre o cartão e a página faz mais trabalho de separação do que o conteúdo dentro.
Escala de raio de borda
| Raio | Uso |
|---|---|
| 4px | Etiquetas de âncora em linha, chips de tags |
| 8px | Botões de texto, dropdowns, botões utilitários pequenos |
| 14px | Fotografia de cartões de anúncio, containers de conteúdo genérico, badges |
| 20px | Botões arredondados principais (forma de pílula), imagens grandes, painel de reserva |
| 32px | Pílula da barra de pesquisa, containers extra grandes |
| 50% | Todos os botões de ícone circulares, todos os avatares, corações de lista de desejos — a geometria redonda assinatura do sistema |
6. Profundidade e elevação
| Nível | Tratamento | Uso |
|---|---|---|
| 0 | Sem sombra | Cartões de anúncio, conteúdo de corpo, seções somente de texto |
| 1 | rgba(0, 0, 0, 0.08) 0 4px 12px | Botões de ícone ativos/pressionados (ex.: voltar, compartilhar, favorito) — elevação sutil para indicar interação |
| 2 | rgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0 | Cartão fixo do painel de reserva, modais, menus dropdown — a elevação de três camadas assinatura do sistema |
| Anel de foco | 0 0 0 2px #222222 | Botões no estado ativo, entrada de pesquisa com foco |
| Anel separador branco | rgb(255, 255, 255) 0 0 0 4px | Botões circulares sobrepostos em fotografias — um anel branco de 4px separa claramente o botão de fundos de imagem coloridos |
Filosofia de sombras: o Airbnb usa sombras em camadas empilhadas em vez de uma única sombra projetada. A sombra de três camadas do painel de reserva se lê como uma única elevação coesa, mas na verdade são três sombras separadas com diferentes valores de opacidade/desfoque — criando um anti-serrilhamento sutil no perímetro da sombra que parece premium sem ser pesado.
Profundidade decorativa
- Fotografia como profundidade: o sistema depende fortemente de fotografia em sangria total para criar profundidade visual; sombras e gradientes são usados com moderação para que as fotografias façam o trabalho pesado
- Medalhão de coroa de louros: o prêmio Guest Favorite usa duas ilustrações SVG de louros que dão ao número de avaliação de outra forma plano uma presença cerimonial, como um troféu
- Ícones de categoria renderizados em 3D: os ícones Casas/Experiências/Serviços têm sua própria iluminação interna suave e sutis sombras projetadas assadas na arte — o único lugar onde a marca permite ilustração «dimensional»
7. O que fazer e o que não fazer
Fazer
- Reservar Rausch
#ff385cpara ações principais e o indicador de aba ativa — nunca diluí-lo com usos decorativos. - Deixar a fotografia respirar — recortes 4:3 com cantos arredondados 14–20px, sem texto sobreposto, sem véus de gradiente.
- Usar Ink Black
#222222para cada camada de texto abaixo de Rausch — este é o quase-preto do sistema, nunca o verdadeiro#000000. - Combinar os ícones ilustrados 3D do seletor de categoria de três abas com tipografia plana — não misturar estilos de ilustração dentro de uma única superfície.
- Empilhar três sombras de baixa opacidade (~2%, 4%, 10%) para criar a elevação assinatura do painel de reserva.
- Usar bordas Hairline Gray
#ddddddde 1px para cada divisor cartão a cartão e linha a linha. - Tratar o painel de reserva como fixo no desktop, colapsando para uma barra de reserva ancorada na parte inferior no mobile.
- Usar espaçamento de 4–8px dentro de grupos de metadados e 24px entre cartões — a densidade de informação é intencional.
Não fazer
- Não introduzir cores de destaque secundárias fora da paleta de níveis de produto Rausch / Plus Magenta / Luxe Purple.
- Não colocar texto dentro das fotografias — as legendas sempre ficam abaixo da imagem, nunca sobrepostas.
- Não usar etiquetas em maiúsculas exceto o único papel de sobrescrito de 8px.
- Não arredondar botões de ícone para nada além de 50% — o circular é a geometria assinatura do sistema.
- Não adicionar sombras projetadas aos cartões de anúncio — eles ficam sobre canvas branco sem elevação.
- Não usar fundos de gradiente — o único gradiente no sistema é uma varredura estreita Rausch → magenta no logotipo.
- Não usar o peso tipográfico 400-regular — o peso de corpo do Airbnb Cereal é 500.
- Não substituir Airbnb Cereal VF por uma tipografia de display diferente — o sistema é intencionalmente de família única.
8. Comportamento responsivo
Breakpoints
O Airbnb declara ~60 breakpoints (artefato de design de sua biblioteca de componentes), mas as mudanças de layout significativas ocorrem em um conjunto muito menor:
| Nome | Largura | Mudanças principais |
|---|---|---|
| Ultra-wide | ≥1760px | Grade de anúncios de 6 colunas, largura máxima de conteúdo 1760–1920px |
| Desktop XL | 1440–1759px | Grade de 5 colunas, nav completa visível, painel de reserva fixo na coluna direita |
| Desktop | 1128–1439px | Grade de 4 colunas, painel de reserva fixo persiste |
| Laptop | 1024–1127px | Grade de 3–4 colunas, nav de categoria permanece horizontal |
| Tablet | 800–1023px | Grade de 3 colunas, a pesquisa global pode colapsar para uma pílula de linha única |
| Tablet pequeno | 550–799px | Grade de 2 colunas, o painel de reserva cai para bloco em linha de largura total |
| Mobile | 375–549px | Layout empilhado de 1 coluna, aparece a barra de abas fixada na parte inferior (Explorar / Listas de desejos / Entrar) |
| Mobile pequeno | <375px | O preenchimento de borda se ajusta para 16px; os ícones do seletor de categoria encolhem para ~28px |
Alvos de toque
Todos os elementos interativos atendem ou excedem 44×44px. A família de botões de ícone circulares é especificamente dimensionada de 32–44px com 8–12px de preenchimento de área de toque estendido. O botão principal Rausch «Reservar» tem ~48px de altura. A área de toque do seletor de categoria de três abas é o retângulo completo de etiqueta-mais-ícone (tipicamente ~64×80px por aba).
Estratégia de colapso
- Nav: A nav superior mantém o logotipo do Airbnb + seletor de três abas no tablet e acima; no mobile o seletor desliza logo abaixo da pílula de pesquisa, e os controles de globo/avatar se movem para uma barra de abas ancorada na parte inferior.
- Barra de pesquisa: Pílula de três segmentos (Onde / Quando / Quem) com um botão de envio circular Rausch no desktop; colapsa para uma pílula de linha única «Comece sua pesquisa» no mobile, cujo toque abre uma folha de pesquisa em tela cheia.
- Painel de reserva: Coluna direita fixa em ≥1128px; em linha dentro da coluna de conteúdo principal entre 800–1127px; pílula «Reservar» fixada na parte inferior em <800px.
- Grade de anúncios: Reformata 6 → 5 → 4 → 3 → 2 → 1 colunas através dos breakpoints.
- Grade de imagens da página de detalhes: Layout de cinco imagens (1 grande + 4 pequenas) no desktop; torna-se um carrossel em sangria total deslizável no mobile com indicadores de pontos de página.
- Rodapé: O layout de 3 colunas colapsa para coluna única empilhada em <800px.
Comportamento de imagens
loading="lazy"universal, com prévias de espaço reservado borradas com parâmetroim_w=de URL servidas primeiro- Imagens responsivas usam a CDN
muscache.comdo Airbnb com o parâmetro de consultaim_wpara entrega baseada em largura (im_w=240,im_w=720,im_w=1200,im_w=2400) - Sem recortes de direção de arte — a mesma imagem é escalada para cima/baixo pelos breakpoints
- Carrosséis ajustam automaticamente a altura da foto para manter uma proporção 4:3 consistente independentemente do aspecto da fonte
9. Guia de prompts para agentes
Referência rápida de cores
- CTA principal: «Rausch (#ff385c)»
- Fundo de página: «Canvas White (#ffffff)»
- Subsuperfície: «Soft Cloud (#f7f7f7)»
- Texto de título / corpo: «Ink Black (#222222)»
- Texto secundário: «Ash Gray (#6a6a6a)»
- Borda / divisor: «Hairline Gray (#dddddd)»
- Erro: «Error Red (#c13515)»
- Link informativo: «Info Blue (#428bff)»
- Destaque de nível Luxe: «Luxe Purple (#460479)»
- Destaque de nível Plus: «Plus Magenta (#92174d)»
Exemplos de prompts de componentes
- «Crie um botão principal Reservar: fundo Rausch (#ff385c), etiqueta branca Airbnb Cereal 500 a 16px, preenchimento 14px × 24px, raio de borda 8px, sem sombra. Em ativo/pressionado adicione
transform: scale(0.92)com um anel de foco Ink Black de 2px (0 0 0 2px #222222).» - «Construa um cartão de anúncio com uma fotografia 4:3 em sangria total com raio de borda 14px, sem sombra de container; abaixo da imagem empilhe três linhas de texto com espaços de 4px: nome de cidade a 16px 600 Ink Black, tipo de aluguel a 14px 500 Ash Gray (#6a6a6a), e faixa de preço a 16px 500 Ink Black com um sufixo
por noitede 14px.» - «Projete um painel de reserva fixo: fundo branco, raio de borda 14px, borda Hairline Gray (#dddddd) de 1px, sombra de elevação de 3 camadas (
rgba(0,0,0,0.02) 0 0 0 1px, rgba(0,0,0,0.04) 0 2px 6px 0, rgba(0,0,0,0.1) 0 4px 8px 0), preenchimento 24px, largura 370px, ancorado a 120px abaixo do topo da viewport no desktop. Conteúdo: título do preço, seletor de datas, dropdown de hóspedes, CTA principal Rausch e uma isenção Ash Gray de 12pxVocê não será cobrado ainda.» - «Crie um seletor de categoria de três abas: três abas de igual largura com etiquetas Casas, Experiências, Serviços; cada aba tem um ícone ilustrado renderizado em 3D (~48px de altura) (casa, balão, campainha) acima de uma etiqueta 16px 500 Ink Black; a aba ativa recebe sublinhado Ink Black de 2px; adicione uma pequena pílula 12px 700 branca
NOVOsobre fundo azul marinho escuro no canto superior direito dos ícones de Experiências e Serviços.» - «Renderize o medalhão de prêmio Guest Favorite: um número de avaliação centralizado a 52px 700 Ink Black, flanqueado à esquerda e à direita por coroas de louros SVG desenhadas à mão a ~48px de altura; abaixo, uma etiqueta de 12px 700 em maiúsculas
GUEST FAVORITEcom tracking de 0,32px; sub-etiqueta a 14px 500 Ash Gray; bloco de largura total situado diretamente sobre o canvas branco sem borda de container.»
Guia de iteração
Ao refinar telas existentes geradas com este sistema de design:
- Focar em UM componente por vez.
- Referenciar nomes de cores específicos e códigos hexadecimais deste documento (ex.: «Ink Black #222222», não «cinza escuro»).
- Usar descrições em linguagem natural junto com medidas («elevação sutil de três camadas» em vez de uma longa string de sombras).
- Descrever o «sentimento» desejado («estilo de revista, fotografia em primeiro lugar» vs «utilidade densa»).
- Sempre usar por padrão Airbnb Cereal VF 500 para corpo e 600–700 para ênfase — nunca 400.
- Manter o rosa Rausch escasso — se mais de um elemento de cor Rausch aparecer por viewport, considere se um deveria ser neutralizado.
Lacunas conhecidas
- Cartões de grade de anúncios da página inicial: a grade principal de cartões de propriedade (a superfície visual principal do airbnb.com) não foi totalmente capturada nas capturas de tela da página inicial extraídas — o conteúdo carregou apenas parcialmente. As especificações de cartão de anúncio acima são inferidas da estrutura da grade de inspiração e das convenções mais amplas do Airbnb; confirme as proporções exatas e a hierarquia de metadados no site ao vivo antes do uso em produção.
- Ícones de categoria de Experiências: os ícones ilustrados 3D para Casas / Experiências / Serviços são servidos como ativos raster; suas especificações exatas de arquivo fonte (SVG vs PNG, dimensões de pixels renderizados) não estão documentadas aqui.
- Tempos de animação e transição: não capturados — escopo de extração estática.
- Modo escuro: o Airbnb não inclui um modo escuro nativo nas superfícies de produto extraídas; este documento descreve o único tema de modo claro.
Tags
design-systemfirst-partydesigne-commerce-retail