Sistema de ámbitos

Sistema de ámbitos

El sistema de alcance controla dónde son visibles y compartidas las secciones reutilizables de FaceFlow.

Para usuarios técnicos, el alcance es una de las reglas arquitectónicas centrales en FaceFlow. Decide si una sección reutilizable se comporta como un recurso global, un recurso de familia de páginas o un recurso local solo de página.

Three Scope Levels

  • Sitio: compartido en todo el sitio
  • Diseño: compartido entre Páginas que usan el mismo Diseño
  • Página: local a una Página

Technical Mental Model

Piensa en el alcance como un contrato de visibilidad e impacto de cambios adjunto a una instancia de sección reutilizable.

Conceptualmente:

{
  "component": "announcement-strip",
  "scope": "site"
}

El campo importante no es la forma exacta de almacenamiento. La regla importante es que el alcance determina con qué amplitud debe reutilizarse esa instancia y con qué amplitud se propagará una edición posterior.

Why Scope Matters

El alcance evita que la reutilización se convierta en caos.

Sin reglas de alcance, los equipos o bien:

  • duplican el mismo bloque en todas partes
  • comparten en exceso un bloque que debería haberse quedado local
  • pierden la trazabilidad de qué cambios afectan a qué Páginas

El alcance hace explícitos esos límites.

Mental Model

Site scope
  -> affects all relevant Pages across the site

Layout scope
  -> affects Pages that share one Layout

Page scope
  -> affects only one Page

Esto no es una preferencia de contenido. Es una regla sobre el impacto de los cambios.

Example Instance Mapping

Un ensamblaje de Página simplificado podría verse así:

Layout: docs-shell

Site scope:
  announcement-strip

Layout scope:
  docs-sidebar
  docs-subnav

Page scope:
  release-notes-cta
  migration-faq

Ese único diagrama explica dos hechos técnicos importantes:

  • no todas las secciones reutilizables se comparten por igual
  • la revisión de cambios debe tener en cuenta el alcance antes de aprobar la edición

Scope Examples

Alcance del sitio

Úsalo cuando una sección debe comportarse como un recurso de todo el sitio.

Ejemplos:

  • barra de anuncios global
  • franja de soporte para navegación compartida
  • banner de confianza usado en todo el sitio

Alcance del diseño

Úsalo cuando una sección pertenece a una familia de páginas.

Ejemplos:

  • barra lateral de docs usada solo en páginas de documentación
  • subnavegación compartida para una sección de servicio
  • carril de soporte a nivel de sección para una familia de diseños

Alcance de la página

Úsalo cuando la sección es única para una Página.

Ejemplos:

  • un hero de campaña único
  • una franja de CTA local
  • FAQ o bloque de pruebas específico de la página

Change Radius Example

El mismo tipo de sección puede ser válido en diferentes alcances dependiendo de la intención:

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 eso el alcance debe elegirse según el radio de impacto previsto, no por la conveniencia del editor.

Decision Rule

Hazte una pregunta:

If I change this section, which Pages should change with it?

Si la respuesta es:

  • "todas las Páginas relevantes" -> Sitio
  • "Páginas en esta familia" -> Diseño
  • "solo esta Página" -> Página

Example Composition

Site scope:
  global-announcement

Layout scope:
  docs-sidebar

Page scope:
  pricing-faq

Ese modelo mantiene la reutilización intencional y hace predecible el impacto de los cambios.

Architectural Guidance

Usa el alcance para responder estas preguntas técnicas:

  • ¿dónde debe ser descubrible esta instancia?
  • ¿cuántas Páginas deben heredar futuras ediciones?
  • ¿quién debería ser el responsable del cambio?
  • ¿qué nivel de revisión se justifica antes de publicar?

En la práctica:

  • el alcance Sitio generalmente necesita la revisión más estricta porque el impacto es amplio
  • el alcance Diseño requiere conciencia de la familia de páginas
  • el alcance Página es el lugar más seguro para experimentación local

Technical Impact

El alcance afecta:

  • dónde está disponible una sección reutilizable
  • cuántas Páginas puede afectar un cambio
  • cómo los equipos razonan sobre la propiedad
  • cómo se mantiene la estructura compartida con el tiempo

Por eso las decisiones de alcance deben tratarse como decisiones arquitectónicas, no como elecciones por conveniencia del editor.

Review Pattern

Cuando un equipo propone ampliar el alcance, revísalo como un cambio arquitectónico:

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?

Si la respuesta es "no realmente", probablemente se esté ampliando el alcance demasiado pronto.

Technical Review Checklist

  • ¿el alcance elegido coincide con el radio de impacto previsto?
  • ¿la sección es realmente reutilizable a ese nivel?
  • ¿un editor futuro entendería por qué la sección se comparte?
  • ¿la sección contiene contenido que debería haberse quedado local?
  • ¿se está copiando una sección supuestamente local en muchas Páginas?

Antipatrones

Evita:

  • alcance de sitio para contenido que solo necesita una familia de páginas
  • alcance de página para contenido copiado en muchas Páginas
  • alcance de diseño para contenido que pertenece al shell global del sitio
  • ampliar el alcance solo para ahorrar trabajo a corto plazo

Example Rule in Practice

Main navigation utility bar -> Site scope
Developer docs sidebar -> Layout scope
Landing page final CTA -> Page scope

El alcance debe revisarse junto con la responsabilidad del objeto:

  • si el cambio afecta al shell, revisa el Layout
  • si el cambio afecta a un contrato de sección reutilizable, revisa el Component
  • si el cambio afecta solo a una experiencia ensamblada, revisa la Page