Encore: como é um design system em 45 plataformas

A maioria dos conselhos sobre design systems assume um único produto em uma ou duas superfícies. O Encore do Spotify precisou funcionar em televisões, carros, relógios e caixas de som, e a equipe publicou o que deu errado no processo. A resposta não foi uma biblioteca de componentes maior — foram camadas e a admissão explícita de que eles já haviam exagerado na correção anteriormente.

Atualizado 2026-07-27

Análise independente baseada nos textos publicados pela equipe de design do Spotify e em sua documentação pública para desenvolvedores, escrita para pessoas que estão construindo seus próprios sistemas. O Identity Forge não é afiliado nem endossado pelo Spotify. O Spotify e seu logotipo são marcas registradas de seu proprietário.

A restrição que gerou a estrutura

Em 2019, a liderança do Spotify decidiu tornar o áudio disponível e consistente em qualquer dispositivo. O número publicado pela equipe de design é impressionante: 45 plataformas únicas e mais de 2.000 tipos de dispositivos em 200 marcas. Alguém inicia uma playlist em uma televisão na sala, continua no carro e a retoma em um laptop na manhã seguinte.

Isso não é apenas uma versão maior do problema comum de design systems. É um problema diferente. Uma televisão é vista a três metros de distância, um relógio precisa condensar tudo, um desktop tem espaço de sobra e um carro possui restrições legais de interação. Nenhuma biblioteca de componentes isolada consegue atender a tudo isso, e nenhuma quantidade de documentação fará com que isso aconteça.

Camadas concêntricas, não uma biblioteca plana

O Encore foi lançado com dois segmentos. O Encore Consumer Mobile foi descrito como incrivelmente flexível, um vasto catálogo de componentes em constante crescimento para experiências focadas em mobile. O Encore Web atendia a uma gama mais ampla de produtos web. Abaixo de ambos, ficavam os design tokens cobrindo decisões fundamentais, como esquemas de cores e estilos tipográficos.

O modelo publicado é concêntrico. A fundação está no centro. Web e Mobile ficam acima dela como subsistemas equivalentes com paridade de plataforma. Mais externamente, ficam os subsistemas mais especializados — Content Web Platform, Advertising Web, Consumer Mobile — cada um cada vez mais divergente do núcleo.

DetémConsumidor
FundaçãoDesign tokens: cor, tipografia, as decisões que não devem variarTodos os subsistemas, transitivamente
Web / MobileComponentes multiplataforma projetados em pares, com paridadeEquipes de produto daquela plataforma
Subsistemas especializadosComponentes específicos de um domínio de produtoUma área de produto — publicidade, ferramentas de conteúdo, app do consumidor
O que cada anel detém e a quem ele serve.

O valor desse formato é que a divergência é limitada e localizada. Um componente que apenas a publicidade necessita vive no anel de publicidade, onde não pode vazar para o app do consumidor. Uma decisão de cor vive na fundação, onde não pode ser sobrescrita localmente. A alternativa — uma única biblioteca plana servindo a todos — força cada necessidade especializada a ser absorvida pelo núcleo, inchando-o, ou a ser construída fora do sistema, que é onde os design systems morrem.

O pêndulo

Aqui está a parte que é rara em textos publicados sobre design systems, porque é uma admissão. Em 2022, a equipe julgou que o pêndulo havia oscilado demais para a flexibilidade e que uma recalibragem era necessária.

O que aconteceu é algo reconhecível. O Consumer Mobile era deliberadamente flexível, então as equipes de produto solicitavam componentes cada vez mais refinados, e ele continuava aceitando. A flexibilidade que começa como um recurso torna-se uma obrigação: a necessidade específica de cada equipe vira mais um componente de responsabilidade do sistema, e o catálogo cresce mais rápido do que qualquer pessoa consegue manter coerente.

Este é o modo de falha sobre o qual a maioria dos conselhos de design system não alerta, porque as recomendações geralmente são escritas por pessoas que enfrentam o problema oposto — um sistema rígido que ninguém adota. Ambas as falhas são reais. Um sistema que diz não com frequência demais acaba sendo ignorado; um sistema que diz sim com frequência demais deixa de ser um sistema e se torna uma pasta compartilhada.

A correção do Spotify é a jogada interessante. Eles não restringiram o Consumer Mobile nem começaram a rejeitar solicitações. Eles montaram uma equipe para construir componentes reutilizáveis para o Encore Mobile — inserindo uma nova camada entre o Consumer Mobile e a fundação. A descrição publicada de seu propósito é precisa: ele atua como uma primeira linha de defesa, reduzindo a demanda para que o Consumer Mobile forneça cada componente individualmente, ao mesmo tempo em que cria maior paridade de plataforma em todo o restante do sistema.

A solução para um subsistema afogado em solicitações não foi recusá-las. Foi construir a camada inferior que deveria ter respondido a elas.

Isso reformula um problema de governança como um problema estrutural. Quando um subsistema recebe solicitações que não são realmente específicas para ele, as solicitações não são o problema — a camada compartilhada ausente é. Dizer não teria empurrado essas equipes a construir fora do sistema. Adicionar a camada capturou esse trabalho.

Como um componente multiplataforma é realmente projetado

O relato da equipe sobre o processo de trabalho é concreto o suficiente para ser copiado, e a mudança crucial que eles mencionam é que os componentes multiplataforma agora são projetados como multiplataforma desde o início, em vez de serem tratados como um detalhe posterior.

  1. 1

    Reúna todas as plataformas na sala

    Representantes de iOS, Android e Web juntos, antes de qualquer coisa ser projetada. O argumento deles sobre por que isso é necessário é convincente: é raro encontrar alguém especialista tanto em web quanto em mobile, portanto, a expertise deve ser reunida, e não presumida.

  2. 2

    Cada plataforma audita e diagrama o que é único em sua superfície

    O Desktop tem mais espaço disponível. A televisão é diferente devido à distância de visualização. Um relógio exige que todas as informações sejam condensadas. Isso é estabelecido como fatos sobre a superfície antes que qualquer pessoa discuta sobre o componente.

  3. 3

    Alinhe termos, estados e interação de propriedades

    O grupo de trabalho define como as coisas são chamadas, quais estados existem e como as propriedades se combinam. Este é o passo que costuma ser ignorado, e ignorá-lo é a razão pela qual duas plataformas acabam com um componente que compartilha o nome e nada mais.

  4. 4

    Projete o componente considerando tudo isso simultaneamente

    Não a versão de uma plataforma com adaptações. Um único componente cujas variantes já eram conhecidas antes de ser desenhado.

O passo três é aquele que vale a pena copiar, independentemente de quantas plataformas você tenha. A maior parte do desvio de componentes começa como um desvio de vocabulário: o "secundário" de uma equipe é o "ghost" de outra, o estado desativado de uma equipe é o somente leitura de outra e, quando alguém percebe, ambos já foram implementados.

O outro documento de design do Spotify

Ao pesquisar pelo design system do Spotify, uma das primeiras coisas que você encontra são as Diretrizes de Design e Branding públicas do Spotify no site para desenvolvedores. Vale ressaltar que isso não é o Encore e não é um design system no sentido usual. É um documento de conformidade.

Sua estrutura o denuncia: atribuição, uso de conteúdo do Spotify, navegação de conteúdo, links para o Spotify, visualizações de reprodução, exibição de entidades, uso do logotipo, uso das cores, restrições de logotipo e nomenclatura, fontes. A razão declarada para as regras de atribuição é que o conteúdo disponível através do Spotify pertence a muitos detentores de direitos diferentes, portanto, qualquer uso de metadados do Spotify — nomes de artistas, álbuns e faixas, artes, reprodução de áudio — deve ser acompanhado pela marca Spotify. A página afirma que o uso dos recursos implica a aceitação dos Termos de Serviço do Desenvolvedor.

EncorePartner Design Guidelines
PropósitoCoerência entre as próprias superfícies do SpotifyConformidade de licenciamento por terceiros
PúblicoDesigners e engenheiros do SpotifyDesenvolvedores externos
Imposto porAdoção, revisão, ferramentasTermos de serviço
DizAqui está como construir o SpotifyAqui está o que você deve e não deve fazer com a nossa marca
PúblicoNãoSim
Dois documentos da mesma empresa, com funções inteiramente diferentes.

A distinção é importante se você estiver construindo algo que integre o conteúdo ou a marca de terceiros. Essas regras são contratuais, e "ficou melhor sem o logotipo" não é uma justificativa. Também importa como categoria: se o seu produto é consumido por produtos de outras pessoas, você pode precisar deste documento além de um design system, e eles não são o mesmo tipo de trabalho de redação.

Camadas aplicadas a um sistema que um agente lê

O modelo concêntrico transfere-se diretamente para a orientação de design escrita para agentes de código de IA, e resolve um problema que surge assim que um projeto possui mais de um tipo de superfície.

A falha comum é ter um único DESIGN.md que tenta cobrir um site de marketing, o shell de um aplicativo e uma tabela de dados densa. Suas regras acabam sendo ambíguas — "espaçamento generoso, embora tabelas possam ser mais densas" — e uma regra ambígua não é uma regra. O modelo precisa decidir, e ele decide de forma diferente a cada vez.

A estruturação em camadas funciona da mesma forma que o Encore:

# DESIGN.md          <- foundation: tokens, roles, prohibitions
                        applies everywhere, never overridden

# app/marketing/DESIGN.md
   Extends the root. Spacing scale shifted up one step.
   Hero type may use the display scale (48px+).
   Cards may use shadow elevation.

# app/dashboard/DESIGN.md
   Extends the root. Compact spacing (8-12px controls).
   Elevation is surface steps + hairline, never shadow.
   Table rows: 32px, no vertical padding above 8px.

Cada arquivo é objetivo dentro de seu escopo. A raiz contém apenas o que genuinamente não deve variar — papéis de cores, família tipográfica, proibições — e as folhas contêm as decisões que legitimamente diferem. Um agente trabalhando em app/dashboard/ lê dois arquivos e obtém uma resposta única e inequívoca, em vez de um arquivo com ressalvas.

Amostramos 299 arquivos DESIGN.md publicados para leitura de agentes. 44% não continham nenhum valor de tamanho concreto e 54% dependiam de pelo menos um adjetivo vago — "clean" em 39%, "moderno" em 36%. Esse é o problema da ambiguidade em seu extremo: um arquivo que nunca se compromete com um número não pode entrar em conflito consigo mesmo, mas também não consegue produzir uma interface consistente.

Os kits de design do Identity Forge são camadas de fundação exatamente nesse sentido: papéis de cores semânticas para temas claro e escuro, uma escala de tipografia e espaçamento, motivos e uma lista explícita de "o que fazer e o que não fazer", serializados em um DESIGN.md que o agente lê. Explore os kits ou leia o que é um arquivo DESIGN.md.

O que aprender com o Encore

Você provavelmente não tem 45 plataformas. Pode ser que tenha três superfícies, duas das quais divergiram silenciosamente, e uma equipe que continua pedindo um componente que ninguém mais quer. Esse é o mesmo problema em uma amplitude menor, e as respostas do Encore se aplicam a esse tamanho.

Coloque o que não deve variar em uma fundação e torne isso genuinamente imutável. Deixe que necessidades especializadas vivam em camadas especializadas, em vez de forçá-las para o núcleo ou para fora do sistema completamente. Quando uma camada estiver sobrecarregada de solicitações, procure a camada ausente abaixo dela antes de começar a recusar. E projete para todas as superfícies ao mesmo tempo, porque um componente adaptado posteriormente é um componente que irá divergir.

Posso usar o design system Encore do Spotify?

Não. O Encore é interno e não é publicado como um pacote instalável ou site de documentação pública. O que é público são os textos da equipe de design do Spotify sobre como ele é estruturado e como evoluiu, que é de onde vem tudo nesta análise.

Qual a diferença entre o Encore e as Design Guidelines do Spotify?

O Encore é o design system interno usado para construir os próprios produtos do Spotify. As Design & Branding Guidelines em developer.spotify.com são regras para desenvolvedores terceiros que integram conteúdo do Spotify — atribuição, uso de logotipo, restrições de cores e nomenclatura — e são impostas através dos Termos de Serviço do Desenvolvedor, e não através de adoção.

Por que o Spotify adicionou uma camada em vez de adicionar componentes?

Porque as solicitações que chegavam ao Encore Consumer Mobile não eram, na verdade, específicas para o mobile do consumidor. Uma nova camada entre ele e a fundação capturou esse trabalho compartilhado, reduziu a demanda no subsistema especializado e aumentou a paridade entre plataformas ao mesmo tempo. Recusar as solicitações teria levado as equipes a construir fora do sistema.

Preciso de camadas se tenho apenas um produto?

Apenas se esse produto tiver superfícies com necessidades genuinamente diferentes — um site de marketing e um dashboard denso, por exemplo. O teste é verificar se suas regras possuem ressalvas. Uma regra que diz "espaçamento generoso, embora tabelas possam ser mais densas" são duas regras fingindo ser uma, e ela pertence a dois arquivos.

O que é o pêndulo da flexibilidade?

Um design system construído para ser flexível atrai solicitações de componentes cada vez mais específicos, e concedê-las expande o catálogo além do ponto de coerência. Já um sistema construído para ser rígido acaba sendo ignorado. Ambas são falhas reais; o Spotify publicou o fato de que atingiu a primeira e teve que recalibrar, algo que a maioria das equipes não faz.