# Lógica de Constraints y Auto Layout en Figma

> Domine la lógica avanzada de Constraints y Auto Layout en Figma para crear componentes y layouts responsivos que se adapten perfectamente a cualquier tamaño de pantalla.

*Tags: ux, tecnica, diseño-ui, figma, product-design*

---


> [!info] Definición Rápida
> Las **Constraints** definen cómo se posicionan y escalan los elementos dentro de un contenedor estático. El **Auto Layout** es un sistema de diseño flexible que crea contenedores que se expanden o contraen automáticamente según su contenido. Juntos, forman la base de cualquier diseño responsivo moderno en Figma.


## ¿Por qué son Vitales estas Herramientas?

En el diseño de productos digitales moderno, no diseñamos para una única pantalla estática. Diseñamos para una infinidad de dispositivos y contextos. El uso correcto de Constraints y Auto Layout te permite:
- **Reducir el Tiempo de Diseño:** No tienes que mover cada elemento a mano cuando cambies el tamaño de un frame.
- **Previsualizar la Responsividad:** Probar cómo se verá tu diseño en un iPhone Pro Max vs un iPhone Mini en segundos.
- **Handoff sin Ambigüedades:** Comunicar fielmente al desarrollador cómo debe comportarse el layout con el código (usando Flexbox o Grid).

## El Corazón del Sistema: Auto Layout

Auto Layout es, probablemente, la herramienta más potente de Figma. Funciona de forma muy similar a Flexbox en CSS:

### 1. Dirección y Orientación
Puedes definir si los elementos hijos se apilan en horizontal (fila) o en vertical (columna). También puedes usar "Wrap" para que los elementos salten a la siguiente línea si no caben.

### 2. Espaciado y Relleno (Spacing & Padding)
Controla con precisión el "Gap" entre cada elemento y el "Padding" (relleno) interno del contenedor hacia sus bordes.

### 3. Alineación Inteligente
Figma te permite alinear el contenido de un componente de forma visual (arriba a la izquierda, centro, etc.) sin tener que calcular manualmente las coordenadas X/Y.

### 4. Lógica de Redimensionamiento (Resizing)
Este es el punto donde la mayoría de los diseñadores se confunden. Tienes tres opciones:
- **Fixed Width/Height:** El contenedor tiene un tamaño fijo y no cambia.
- **Hug Contents:** El contenedor se "abraza" a su contenido; si el texto crece, el botón crece.
- **Fill Container:** El contenedor se expande para llenar todo el espacio disponible que le deje su padre.

## La Fuerza de las Constraints (Restricciones)

Mientras que el Auto Layout controla la relación de los elementos "entre sí", las **Constraints** controlan la relación de un elemento con el contenedor "padre" que lo rodea:

- **Top / Bottom / Left / Right:** El elemento se mantiene a una distancia fija de ese borde.
- **Center:** El elemento permanece en el centro horizontal o vertical del frame.
- **Scale:** El elemento se escala de forma proporcional al tamaño del frame padre.
- **Left & Right (Stretch):** El elemento se estira para mantener su distancia respecto a ambos bordes laterales simultáneamente.

## Sinergia Ganadora: Combinar Ambas

El flujo de trabajo profesional consiste en usar contenedores de Auto Layout anidados y aplicarles la lógica de redimensionamiento (`Fill Container` o `Hug Contents`) de forma estratégica. Por ejemplo:
1.  **Botón (Auto Layout):** Hug Contents para crecer con el texto.
2.  **Barra de Navegación (Auto Layout):** Fill Container para estirarse en toda la pantalla.
3.  **Logo dentro de la Barra (Constraints):** Centrado para que siempre esté en el eje medio.

## Consejos de Mentor

- **No uses Frames estáticos:** Si puedes construir algo con Auto Layout, hazlo. Es mucho más resiliente a los cambios futuros.
- **Domina el "Fill Container":** Es el secreto para que los diseños se sientan verdaderamente responsivos. Si algo no se estira como quieres, comprueba si su padre y sus abuelos también tienen `Fill Container`.
- **Cuidado con el escalado de imágenes:** Usa la propiedad `Fill` en el relleno de los frames de imagen dentro de Auto Layout para que no se deformen al redimensionar.
- **Nombra tus capas:** Un layout complejo con muchos Auto Layouts anidados se vuelve indescifrable si todas las capas se llaman "Frame 1234".

## Recursos y Herramientas

- **Figma Learn:** [Deep dive into Auto Layout](https://help.figma.com/hc/en-us/articles/360040451373-Create-dynamic-layouts-with-auto-layout)
- **Figma Learn:** [Apply Constraints to layers](https://help.figma.com/hc/en-us/articles/360039957734-Apply-constraints-to-define-how-layers-resize)
- **CSS Tricks:** [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) (Para entender la lógica técnica detrás de Figma).
- **Libros:** *Refactoring UI* de Adam Wathan.
---
[[layout-grid-vs-intrinsic]]
[[intrinsic-sizing]]


---

Source: https://www.fernandoux.com/es/wiki/tecnicas/constraints-auto-layout/
