Sistema de Escopo
Sistema de Escopo
O sistema de escopo controla onde seções reutilizáveis do FaceFlow ficam visíveis e são compartilhadas.
Para usuários técnicos, escopo é uma das regras arquiteturais centrais no FaceFlow. Ele decide se uma seção reutilizável se comporta como um ativo global, um ativo de família de páginas ou um ativo local apenas da página.
Três níveis de escopo
- Site: compartilhado por todo o site
- Layout: compartilhado entre Páginas que usam o mesmo Layout
- Página: local a uma única Página
Modelo mental técnico
Pense no escopo como um contrato de visibilidade e impacto de mudança anexado a uma instância de seção reutilizável.
Conceitualmente:
{
"component": "announcement-strip",
"scope": "site"
}O campo importante não é o formato exato de armazenamento. A regra importante é que o escopo determina com que amplitude essa instância deve ser reutilizada e quão amplamente uma edição posterior irá se propagar.
Por que o escopo importa
O escopo evita que o reuso se torne caos.
Sem regras de escopo, equipes ou:
- duplicam o mesmo bloco em todos os lugares
- compartilham demais um bloco que deveria ter permanecido local
- perdem o controle de quais mudanças afetam quais Páginas
O escopo torna essas fronteiras explícitas.
Modelo mental
Site scope
-> affects all relevant Pages across the site
Layout scope
-> affects Pages that share one Layout
Page scope
-> affects only one PageIsto não é uma preferência de conteúdo. É uma regra de impacto de mudança.
Mapeamento de instâncias — exemplo
Uma montagem simplificada de Página pode parecer com isto:
Layout: docs-shell
Site scope:
announcement-strip
Layout scope:
docs-sidebar
docs-subnav
Page scope:
release-notes-cta
migration-faqEsse único diagrama explica dois fatos técnicos importantes:
- nem toda seção reutilizável é compartilhada da mesma forma
- a revisão de mudanças deve levar o escopo em conta antes de aprovar a edição
Exemplos de escopo
Escopo do Site
Use quando uma seção deve se comportar como um ativo de todo o site.
Exemplos:
- barra de anúncio global
- faixa de suporte à navegação compartilhada
- banner de confiança usado em todo o site
Escopo de Layout
Use quando uma seção pertence a uma família de páginas.
Exemplos:
- barra lateral de documentação usada apenas em páginas de documentação
- subnavegação compartilhada para uma seção de serviço
- trilho de suporte em toda a seção para uma família de Layouts
Escopo de Página
Use quando a seção é única para uma Página.
Exemplos:
- um hero de campanha pontual
- uma faixa de CTA local
- FAQ específico da página ou bloco de prova
Exemplo de raio de mudança
O mesmo tipo de seção pode ser válido em diferentes escopos dependendo da intenção:
announcement-strip at Site scope
-> change affects all relevant Pages
announcement-strip at Layout scope
-> change affects one page family
announcement-strip at Page scope
-> change affects only one PageÉ por isso que o escopo deve ser escolhido pelo raio de impacto pretendido, não pela conveniência do editor.
Regra de decisão
Faça uma pergunta:
If I change this section, which Pages should change with it?Se a resposta for:
- "todas as Páginas relevantes" -> Site
- "Páginas desta família" -> Layout
- "apenas esta Página" -> Página
Composição — exemplo
Site scope:
global-announcement
Layout scope:
docs-sidebar
Page scope:
pricing-faqEsse modelo mantém o reuso intencional e torna o impacto da mudança previsível.
Orientação arquitetural
Use o escopo para responder a estas perguntas técnicas:
- onde essa instância deve ser descobrível?
- quantas Páginas devem herdar edições futuras?
- quem deve ser o dono da mudança?
- qual nível de revisão é justificado antes da publicação?
Na prática:
- o escopo Site normalmente precisa da revisão mais rigorosa porque o impacto é amplo
- o escopo Layout precisa de consciência da família de páginas
- o escopo Página é o lugar mais seguro para experimentação local
Impacto técnico
O escopo afeta:
- onde uma seção reutilizável está disponível
- quantas Páginas uma mudança pode afetar
- como as equipes raciocinam sobre propriedade
- como a estrutura compartilhada é mantida ao longo do tempo
É por isso que decisões de escopo devem ser tratadas como decisões arquiteturais, não escolhas de conveniência do editor.
Padrão de revisão
Quando uma equipe propõe alargar o escopo, revise como uma mudança arquitetural:
page -> layout
question: is this section now shared by a durable page family?
layout -> site
question: does this section now belong to the broader site, not one section?Se a resposta for "não realmente", o escopo provavelmente está sendo alargado cedo demais.
Lista de verificação para revisão técnica
- o escopo escolhido corresponde ao raio de mudança pretendido?
- a seção é realmente reutilizável nesse nível?
- um editor futuro entenderia por que a seção é compartilhada?
- a seção está carregando conteúdo que deveria ter permanecido local?
- uma seção supostamente local está sendo copiada em muitas Páginas?
Anti-padrões
Evite:
- escopo Site para conteúdo que só uma família de páginas precisa
- escopo Página para conteúdo copiado em muitas Páginas
- escopo Layout para conteúdo que pertence ao shell global do site
- alargar o escopo apenas para economizar esforço a curto prazo
Regra de exemplo em prática
Main navigation utility bar -> Site scope
Developer docs sidebar -> Layout scope
Landing page final CTA -> Page scopeRegra de design relacionada
O escopo deve ser revisado junto com a responsabilidade do objeto:
- se a mudança afeta o shell, revise o Layout
- se a mudança afeta um contrato de seção reutilizável, revise o Componente
- se a mudança afeta apenas uma experiência montada, revise a Página