Saltar al contenido principal
{"0px":"60px","768px":"80px","1200px":"100px"}
{"0px":"60px","768px":"96px","1200px":"200px"}

Maquetación web y estándares

El presente documento establece los lineamientos técnicos, arquitectónicos y de buenas prácticas de maquetado frontend para todos los portales y aplicaciones del ecosistema YPF S.A.

Fundamentos de la maquetación moderna en YPF

La maquetación web moderna trasciende la mera presentación visual de pantallas. Todo desarrollo digital en YPF debe concebirse como una pieza de ingeniería de software frontend que articule de manera equilibrada seis pilares fundamentales:

  • Accesibilidad universal: Cumplimiento estricto de WCAG 2.1 y 2.2 Nivel AA y Ley Nacional N° 26.653, garantizando que cualquier usuario pueda navegar e interactuar sin barreras.
  • SEO técnico: Estructuración semántica que permita a motores de búsqueda indexar y clasificar el contenido institucional con alta fidelidad.
  • Rendimiento óptimo (Performance): Optimización de tiempos de carga y respuesta alineados con las métricas Core Web Vitals (LCP, CLS, INP).
  • Diseño responsive adaptativo: Experiencia visual fluida desde smartphones y tablets hasta estaciones de trabajo de alta resolución.
  • Mantenibilidad y código limpio: Adopción de convenciones de nomenclatura rigurosas, modularidad y reducción de deuda técnica.
  • Consistencia visual corporativa: Integración armónica con el Design System y los componentes oficiales de YPF.

Estructura de carpetas y organización de assets

Para asegurar la escalabilidad, orden y mantenimiento colaborativo de los proyectos en YPF, se debe respetar la siguiente organización estándar de directorios en el repositorio o paquete de maquetación:

  • css/ : Hojas de estilo del sitio, resets y personalizaciones por componente o vista.
  • js/ : Scripts de inicialización, configuraciones de componentes y utilidades.
  • images/ : Fotografías, composiciones, renders y gráficos rasterizados o vectoriales.
  • documents/ : Manuales, reportes, anexos, normativas y descargables (PDF, ZIP, etc.).
  • videos/ : Contenidos audiovisuales y clips institucionales optimizados.
  • fonts/ : Archivos de fuentes tipográficas homologadas cuando no se sirvan desde CDN centralizado.

Dentro de las carpetas de recursos ( images/ , documents/ , etc.), se crearán subcarpetas por página o módulo temático (ej. images/index/ , images/lineamientos/ ). Los recursos globales utilizados en múltiples páginas (como logotipos corporativos o isotipos de marca) se ubicarán en la raíz de su carpeta correspondiente.

Diagrama de estructura jerárquica de carpetas de un proyecto web YPF mostrando raíz, css, js, images, documents y subdirectorios por página

Reglas de nomenclatura de archivos

La denominación de archivos influye directamente en la portabilidad entre servidores, la resolución de rutas en producción y la optimización SEO:

  • Escribir siempre en minúsculas (lowercase).
  • Separar palabras exclusivamente con guiones medios (kebab-case): - .
  • Prohibición estricta de espacios en blanco, guiones bajos ( _ en nombres de páginas HTML), tildes, signos de puntuación o caracteres especiales del español (ñ, acentos, diéresis).
  • Utilizar nombres concisos pero descriptivos del contenido o función:
    • Recomendado: panel-solar.webp , guia-accesibilidad.pdf , landing-combustibles.html , estacion-servicio-nocturna.webp .
    • Evitar: Imagen Final OK.jpg , ARCHIVO NUEVO.png , doc_12_v2.pdf , pagina.html .

Estructura base del documento HTML5

Todo documento HTML debe iniciar con una cabecera estandarizada y completa. A continuación se detallan los elementos mínimos obligatorios:

  • Declaración del DOCTYPE: <!DOCTYPE html> al inicio sin espacios previos.
  • Declaración del idioma: <html lang="es"> para permitir a lectores de pantalla y navegadores aplicar las reglas de pronunciación y traducción correctas.
  • Codificación de caracteres: <meta charset="UTF-8"> dentro de las primeras líneas del <head> .
  • Viewport adaptativo: <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> para garantizar renderizado responsive. Prohibido restringir zoom con user-scalable=no .
  • Título descriptivo: <title> estructurado según el patrón corporativo [Nombre de página] | YPF .
  • Meta description: Resumen conciso para usuarios y motores de búsqueda (entre 140 y 160 caracteres).
  • Favicon corporativo: Icono de pestaña vinculado con <link rel="shortcut icon" href="favicon.ico"> .
  • Enlace de salto accesible ("Skip link"): Inmediatamente al abrir <body> , enlace <a href="#main" class="sr-only">Saltar al contenido principal</a> .

Estructura semántica HTML mostrando DOCTYPE, head con metadatos y body con header, main y footer

Buenas prácticas de maquetado en la plataforma YLITE

Para asegurar que las páginas sean gestionadas y versionadas de manera transparente en YLITE y SharePoint corporativo, se deben acatar las siguientes pautas de codificación:

  • Maquetas en HTML plano: Evitar la generación dinámica de la estructura de maquetado base mediante JavaScript invasivo. El marcado debe ser estático e interpretarse directamente por el motor de renderizado.
  • Uso consistente de minúsculas: Todos los nombres de etiquetas, atributos y valores deben escribirse en minúsculas.
  • Cierre riguroso de etiquetas: Todas las etiquetas deben cerrarse en el orden inverso al que fueron abiertas (LIFO: Last In, First Out).
  • Indentación y legibilidad: Mantener una indentación prolija de 2 espacios o tabulaciones consistentes a lo largo de todo el archivo.
  • No usar estilos en línea: Queda terminantemente prohibido el atributo style="..." para maquetación o apariencia. Todos los estilos deben aplicarse mediante clases CSS centralizadas.
{"0px":"60px","768px":"96px","1200px":"200px"}

HTML semántico y estructura

Uso riguroso de elementos semánticos nativos de HTML5 para estructurar la información, guiar a las tecnologías de asistencia y eliminar la sobrecarga de divs.

El principio fundamental: Div no reemplaza la semántica

"La etiqueta <div> es un contenedor genérico sin significado semántico. Nunca debe utilizarse para reemplazar elementos nativos de HTML5 que ya poseen roles, estados y comportamientos estandarizados."

El uso indiscriminado de divs ("Div-Soup") destruye la accesibilidad del portal, desorienta a los usuarios de lectores de pantalla e impide que los motores de búsqueda identifiquen la relevancia de los distintos bloques de contenido.

Elementos semánticos estructurales (Landmarks)

  • <header>: Cabecera de la página o de una sección temática, habitualmente con el logotipo, buscador o títulos destacados.
  • <nav>: Bloque destinado a la navegación. Si hay múltiples elementos <nav> en la página (menú principal, migas de pan, paginador), deben diferenciarse con aria-label .
  • <main>: Contenedor exclusivo del contenido principal. Solo debe existir uno por página, con id="main" y tabindex="-1" para el salto de navegación.
  • <section>: Agrupación temática de contenido funcional. Se recomienda iniciar siempre cada sección con un encabezado descriptivo (h2-h6).
  • <article>: Composición independiente que tiene sentido pleno por sí misma (noticias, tarjetas de producto, comunicados).
  • <aside>: Contenido complementario o secundario relacionado tangencialmente con el contenido principal.
  • <footer>: Pie de página con información legal, enlaces a políticas, mapa del sitio y contactos corporativos.

Nomenclatura corporativa para clases e identificadores

Para el desarrollo de componentes y páginas se debe aplicar la convención kebab-case descriptiva:

  • Clases (CSS): Usar minúsculas separadas por guiones medios: hero-banner , card-producto , form-contacto , btn-primario .
  • Identificadores (IDs): Únicos en todo el documento HTML, también en kebab-case: id="campo-email" , id="menu-usuario" .
  • Prohibiciones: Prohibido usar PascalCase ( SeccionBanner ), camelCase ( cardProducto ), guiones bajos ( card_producto ) o caracteres con acento.
{"0px":"60px","768px":"96px","1200px":"200px"}

SEO técnico para maquetadores

Optimización técnica en el marcado HTML para mejorar el rastreo, indexación y visibilidad en buscadores sin recurrir a técnicas de marketing invasivas.

Titles (Título de página) y patrón corporativo

La etiqueta <title> es el elemento de metadatos más influyente para motores de búsqueda y lectores de pantalla:

  • Cada página debe poseer un <title> único y distintivo dentro de todo el portal.
  • Evitar títulos genéricos ("Inicio", "Página", "Documento").
  • Patrón corporativo YPF: [Nombre de página] | YPF .
  • Ejemplos oficiales:  
    • Lineamientos de Maquetación | YPF
    • Accesibilidad Web | YPF
    • Sistema de Diseño | YPF

Meta Description

  • Debe existir una única etiqueta <meta name="description"> por página.
  • Redactada en lenguaje claro y comprensible, orientada a personas reales y no a listados de palabras clave.
  • Extensión recomendada: Entre 140 y 160 caracteres para evitar truncamientos en pantallas móviles y de escritorio.

Jerarquía lógica de encabezados (Headings)

  • Un único <h1>: Debe sintetizar el tema o propósito central de la página.
  • Secuencia sin saltos: Estructurar el contenido en niveles ordenados (h1 → h2 → h3). Jamás saltar de un h2 a un h4.
  • No usar encabezados con fines estéticos: Los tamaños tipográficos se asignan con clases CSS, nunca forzando etiquetas de encabezado.

URLs y enlaces descriptivos

  • URLs amigables y legibles: Priorizar rutas semánticas como /lineamientos/maquetacion o /estaciones-servicio frente a URLs con parámetros opacos como /pagina.aspx?id=1028 .
  • Eliminación de textos ambiguos: Prohibido usar textos genéricos como "Click aquí" o "Leer más". Los enlaces deben describir con claridad el destino o la acción: 
    • Incorrecto: <a href="norma.pdf">Click aquí</a>
    • Correcto: <a href="norma.pdf">Descargar Especificación Técnica YPF (PDF, 1.8 MB)</a>
  • Documentos descargables: Indicar siempre el formato del documento (PDF, ZIP, DOCX) y su tamaño aproximado en megabytes (MB) para informar a usuarios con planes móviles reducidos.

Datos estructurados (Introducción a Schema.org)

Los sitios públicos de YPF pueden incorporar fragmentos de datos estructurados en formato JSON-LD para brindar información explícita a buscadores:

  • Organization: Describe la entidad corporativa de YPF, logotipos oficiales, redes sociales y canales de atención.
  • BreadcrumbList: Refleja la jerarquía de navegación de la página en los resultados de búsqueda.
  • Article / NewsArticle: Especifica titulares, fecha de publicación y autoría en noticias institucionales.
  • FAQPage: Habilita preguntas y respuestas desplegables directamente en la página de resultados de Google.
{"0px":"60px","768px":"96px","1200px":"200px"}

Responsive design e imágenes

Estrategia Mobile First, puntos de corte del Design System YPF, layouts modernos con Flexbox y Grid, y formatos gráficos de nueva generación.

Estrategia Mobile First y Breakpoints corporativos

El maquetado debe desarrollarse bajo la filosofía Mobile First : los estilos base se escriben para pantallas móviles compactas y se enriquecen progresivamente hacia pantallas mayores mediante media queries con min-width .

Los puntos de quiebre (breakpoints) estándar del ecosistema YPF son:

  • Mobile (0px - 767px): Layout lineal a una columna, menús colapsables (hamburguesa) y zonas de toque generosas.
  • Tablet (768px - 991px): Reorganización en columnas dobles, cabeceras compactas.
  • Desktop (992px - 1199px): Menús horizontales completos, grillas multicolumna y barras laterales secundarias.
  • Desktop amplio (1200px o superior): Ancho máximo de lectura restringido mediante el contenedor .yl-container para preservar la legibilidad.

Layouts fluidos: Flexbox y CSS Grid

El posicionamiento moderno en YPF se apoya en Flexbox (ideal para componentes unidimensionales como barras de navegación, botones con iconos y tarjetas) y CSS Grid (ideal para matrices bidimensionales complejas de grillas de noticias o galerías). Queda terminantemente prohibido el uso de tablas para maquetación o floats para estructura de columnas.

Imágenes responsive: <picture>, srcset y sizes

Para evitar que un dispositivo móvil descargue imágenes de alta resolución pensadas para monitores 4K, se debe implementar la etiqueta <picture> combinada con srcset y sizes :

  • Permite a los navegadores seleccionar de forma automática la versión con la resolución más eficiente.
  • Permite realizar recortes artísticos (art direction) ajustando la composición visual para pantallas verticales angostas.
  • Evita el desperdicio de ancho de banda y mejora sustancialmente el puntaje Core Web Vitals.

Formatos gráficos modernos: WebP, SVG y AVIF

  • AVIF: Formato de última generación con la tasa de compresión más alta de la industria. Recomendado para fotografías pesadas y banners hero con fallback a WebP.
  • WebP: Estándar de facto moderno para fotografías e imágenes de producto. Ofrece reducciones de peso de entre 30% y 50% frente a JPEG y PNG con idéntica calidad visual.
  • SVG: Formato vectorial obligatorio para logotipos, iconos, diagramas e ilustraciones planas. Es liviano, nítido en cualquier densidad de píxeles (Retina/HiDPI) y permite estilarse mediante CSS.
  • Animaciones: Desalentar el uso de GIF pesados; priorizar formatos modernos como WebM, video MP4 sin audio o animaciones Lottie vectoriales.
{"0px":"60px","768px":"96px","1200px":"200px"}

Rendimiento web y Core Web Vitals

Optimización de la velocidad de carga, estabilidad visual de la interfaz y capacidad de respuesta inmediata para garantizar experiencias de usuario fluidas.

Métricas Core Web Vitals

Google y los estándares de la industria evalúan la experiencia de navegación a través de tres métricas fundamentales que deben monitorearse en todo desarrollo YPF:

  • LCP (Largest Contentful Paint): Mide el tiempo de renderizado del bloque visual más grande visible en pantalla (generalmente el banner hero o el titular principal). Debe ser inferior a 2.5 segundos .
  • CLS (Cumulative Layout Shift): Mide la estabilidad visual y previene saltos inesperados de contenido mientras la página se carga. Debe mantenerse en un valor menor a 0.1 .
    Solución de maquetado: Declarar siempre los atributos width y height (o la propiedad CSS aspect-ratio ) en todas las imágenes y contenedores para reservar su espacio antes de que finalice la descarga.
  • INP (Interaction to Next Paint): Mide la latencia de respuesta tras la interacción del usuario (clics, toques o pulsaciones de teclado). Debe ser menor a 200 milisegundos .

Carga diferida (Lazy Loading) y decodificación asíncrona

  • Aplicar loading="lazy" en todas las imágenes y recursos multimedia que se encuentren debajo del primer scroll (below the fold).
  • Incorporar el atributo decoding="async" para que la decodificación de imágenes pesadas no bloquee el hilo principal de renderizado del navegador.
  • Excepción importante: NUNCA aplicar loading="lazy" a la imagen del banner principal o hero que se visualiza al cargar la página, ya que perjudicaría directamente el puntaje de LCP.

Minimización y Presupuesto de Rendimiento (Performance Budget)

  • Minimización de código: Todas las hojas CSS y scripts JS en ambientes de producción deben servirse minificados (sin comentarios, saltos de línea ni espacios innecesarios).
  • Presupuesto de rendimiento: Ninguna página de maquetación estática debería superar los 1.5 MB a 2.0 MB de peso total acumulado en su carga inicial, asegurando fluidez incluso en dispositivos conectados a redes móviles 3G/4G en áreas operativas remotas.
  • Librerías de terceros: Deben alojarse localmente dentro de los directorios del proyecto y estar estrictamente homologadas. Queda prohibida la carga de scripts o estilos desde CDNs externos no autorizados por seguridad y para prevenir puntos únicos de fallo (SPOF).
{"0px":"60px","768px":"96px","1200px":"200px"}

CSS moderno y Design System

Convenciones de código en hojas de estilo, adopción de variables CSS (:root), modularidad y alineación con los componentes y tokens del Design System YPF.

Variables CSS (Custom Properties) y Tokens de Diseño

Para facilitar el mantenimiento y la consistencia de marca, se deben utilizar variables declaradas en el bloque :root para los valores recurrentes de color, tipografía, espaciado y sombras.

El Design System de YPF ya provee variables globales (ej. --font-din-regular , --Grey-Scale-900 ) que deben consumirse directamente en lugar de ingresar valores hexadecimales o tipografías cableadas en duro.

Convenciones de formato y estandarización en CSS

  • Indentación y estructura: Utilizar 2 espacios o tabulaciones coherentes. Escribir cada declaración de propiedad en su propia línea.
  • Espaciados: Dejar un espacio antes de abrir la llave { y un espacio tras los dos puntos en cada propiedad ( propiedad: valor; ).
  • Punto y coma: Finalizar toda línea de propiedad con punto y coma ; .
  • Selectores múltiples: Cuando varios selectores compartan estilos, colocarlos en líneas separadas para agilizar la lectura y el control de versiones.
  • Comillas: Emplear comillas dobles tanto en HTML como en CSS (ej. url("imagen.svg") ).

Comentarios y modularización corporativa

Cuando una hoja de estilo administre múltiples componentes o vistas, se debe individualizar cada bloque temático mediante el encabezado corporativo estándar:

Los comentarios explicativos específicos deben ubicarse siempre en la línea inmediatamente superior a la regla que aclaran, nunca al final de la línea.

El Design System corporativo: Reutilización antes que recreación

"Queda estrictamente desaconsejado recrear o reprogramar desde cero componentes que ya se encuentran resueltos en el ecosistema YLITE y el Design System corporativo (yl-components)."

Priorizar la reutilización garantiza que cualquier actualización de accesibilidad, seguridad o imagen de marca impacte inmediatamente en todos los sitios de YPF sin requerir refactorizaciones costosas.

{"0px":"60px","768px":"96px","1200px":"200px"}

Accesibilidad web integrada

Síntesis ejecutiva de criterios obligatorios de inclusión digital bajo estándares WCAG 2.1 y 2.2 Nivel AA y Ley Nacional N° 26.653.

Requisitos esenciales de accesibilidad para maquetadores

La accesibilidad web no es una capa decorativa posterior, sino un requisito estructural de la maquetación. En cada desarrollo se deben asegurar los siguientes puntos mínimos:

  • Textos alternativos en imágenes (alt): Descriptivos en imágenes con aporte informativo; vacíos alt="" en imágenes puramente decorativas. Nunca dejar una imagen sin atributo alt .
  • Navegación 100% por teclado: Todos los elementos interactivos (botones, enlaces, modales) deben ser operables con Tab, Enter, Espacio y Escape sin trampas de teclado.
  • Foco visible destacado: Prohibido declarar outline: none sin brindar un sustituto visual mediante :focus-visible que cuente con al menos 3:1 de contraste.
  • Contraste cromático: Mínimo 4.5:1 para texto normal y 3.0:1 para textos grandes e indicadores de interfaz gráfica no textuales (bordes de campos, iconos, botones).
  • Formularios rotulados: Todo campo debe tener un <label for="..."> explícito y mensajes de error asociados con aria-describedby y aria-invalid="true" .
  • Enlaces contextuales: Textos claros que informen acción y destino, evitando términos vagos.

Para profundizar en los 54 criterios de conformidad de WCAG 2.2, patrones WAI-ARIA avanzados y metodología de testing con lectores de pantalla, consultá el documento oficial:

Ver guía completa de accesibilidad web (WCAG 2.1 / 2.2)

{"0px":"60px","768px":"96px","1200px":"200px"}

Componentes corporativos YPF

Integración, consumo de datos vía GraphQL y estándares de uso de los componentes web oficiales ypf-header y ypf-footer.

Header corporativo: ypf-header

El componente web ypf-header es el encabezado oficial y unificado de navegación para todas las plataformas digitales de YPF:

  • Obligatoriedad: Su inclusión es obligatoria en todos los sitios públicos, aplicaciones de clientes e intranets para garantizar identidad de marca consistente.
  • Beneficios: Mantenimiento centralizado del árbol de navegación, adaptabilidad responsive integrada, accesibilidad certificada de fábrica y persistencia de sesión corporativa.
  • Modo de uso: Se incluye el archivo JavaScript del web component y se declara la etiqueta personalizada en el HTML:

Ejemplo de implementación del componente ypf-header mostrando la importación del archivo JavaScript y el resultado visual del encabezado en una página web.

Integración GraphQL para ypf-header

El componente consulta la estructura dinámica del menú mediante una solicitud a la API GraphQL corporativa utilizando la función fetch nativa:

Ejemplo de implementación donde una consulta GraphQL obtiene los datos del encabezado de navegación y retorna una estructura JSON jerárquica con secciones, grupos y enlaces.

La estructura JSON del menú responde a un esquema jerárquico basado en colecciones de elementos:

  • Array principal items donde cada objeto representa una sección del encabezado con su title y colección data .
  • Elementos de grupo con atributos text , type ("seccion", "grupo" o "link"), propiedades de enlace en props (url, target, cssClass) y posibles submenús en children .

Footer corporativo: ypf-footer

El componente web ypf-footer representa el pie de página institucional estandarizado para todo el ecosistema web de YPF:

  • Mantenimiento centralizado: Actualización automática de leyendas legales, derechos de autor, normativas de privacidad y enlaces a redes sociales oficiales sin requerir despliegues en cada sitio individual.
  • Modo de uso: Se importa el script oficial en el documento y se invoca la etiqueta <ypf-footer> antes del cierre de <body> :

Ejemplo de uso del componente web ypf-footer con la inclusión del script, la configuración del atributo stage y el resultado visual del pie de página de YPF.

Integración GraphQL para ypf-footer

De forma homóloga al encabezado, el pie de página recupera sus datos institucionales a través de una consulta GraphQL que retorna la estructura estructurada en JSON:

Ejemplo de implementación donde una consulta GraphQL obtiene los datos del pie de página de navegación y del logo de YPF, retornando una estructura JSON jerárquica con secciones, grupos y enlaces.


{"0px":"120px","768px":"96px","1200px":"200px"}

Testing, validación y QA

Estrategia de aseguramiento de calidad frontend combinando matriz de navegadores modernos, validadores automáticos y protocolo de pruebas manuales.

Matriz de compatibilidad en navegadores modernos

Todo desarrollo maquetado debe ser verificado en los navegadores web de mayor adopción actual, eliminando dependencias de plataformas obsoletas:

  • Escritorio (Desktop):  
    • Google Chrome (últimas dos versiones estables).
    • Microsoft Edge (versión Chromium actualizada).
    • Mozilla Firefox (versión estable y ESR).
    • Apple Safari (versiones 16 o superior en macOS).
  • Dispositivos Móviles (Smartphones y Tablets):  
    • Android: Google Chrome y Samsung Internet.
    • iOS: Safari Mobile en iPhone y iPad.

Herramientas de evaluación y auditoría automatizada

  • Google Lighthouse: Medición en Chrome DevTools de métricas Core Web Vitals, SEO técnico, mejores prácticas y accesibilidad (meta de puntaje ≥ 90 en todos los ejes).
  • W3C Markup Validation Service: Validación técnica del código HTML5 mediante validator.w3.org para certificar la ausencia de errores de marcado.
  • Axe DevTools y WAVE: Auditorías integradas de accesibilidad web para detectar problemas de contraste cromático, roles ARIA y etiquetado de formularios.

Checklist de QA Manual imprescindible

Las auditorías automáticas deben complementarse obligatoriamente con las siguientes comprobaciones manuales antes del pase a producción:

  • 1. Navegación por teclado: Recorrer la totalidad de la página utilizando solo Tab , Shift + Tab , Enter y Escape , verificando el foco visible en todo momento.
  • 2. Adaptabilidad responsive en dispositivos físicos: Validar el comportamiento de menús, espaciados y tamaños de toque en teléfonos móviles reales con diferentes densidades de pantalla.
  • 3. Prueba de zoom y reflow: Ampliar la interfaz al 200% y al 400% verificando que ningún texto se desborde ni aparezca scroll horizontal no deseado.
  • 4. Verificación de SEO técnico: Corroborar la presencia y fidelidad del <title> corporativo, la meta descripción, la jerarquía de títulos y los enlaces descriptivos.
  • 5. Rendimiento en red móvil: Simular conexiones 4G/3G en las herramientas de desarrollo para asegurar una experiencia fluida bajo condiciones de conectividad moderada.
{"0px":"60px","768px":"96px","1200px":"200px"}