D2 es una herramienta moderna basada en texto para crear diagramas claros y legibles. Significa “Diagramación declarativa”. En VPasCode, D2 permite a los desarrolladores de software y arquitectos de soluciones convertir texto de código simple en modelos visuales limpios sin tener que dibujar formas manualmente.
1. Formas básicas y conexiones
Para crear formas, simplemente escriba sus nombres. Para vincular formas, use una flecha (-> para una sola dirección o <-> para dos direcciones).
# Conexión simple
Usuario -> Servidor web: Solicitud HTTP
Servidor web -> Base de datos: Obtener datos
Base de datos -> Servidor web: Devolver resultados
Servidor web <-> Caché: Sincronización de lectura/escritura 
2. Tipos de formas y etiquetas personalizadas
Por defecto, las formas aparecen como cuadros estándar. Puede cambiar fácilmente el tipo de icono de una forma o establecer una etiqueta personalizada usando la propiedad forma propiedad.
# Definición de tipos de formas
Cliente: {
forma: persona
}
Servicios en la nube: {
forma: nube
}
Base de datos principal: {
forma: cilindro
etiqueta: "Base de datos principal (PostgreSQL)"
}
Cliente -> Servicios en la nube -> Base de datos principal 
3. Definiciones de clases
D2 admite de forma nativa el diseño de estructuras orientadas a objetos usando la forma clase forma.
CuentaCliente: {
forma: clase
idCuenta: String
correoElectrónico: String
estaActivo(): Boolean
} 
4. Contenedores anidados (Agrupación)
D2 facilita agrupar elementos dentro de contenedores utilizando corchetes estándar (“{}). También puedes vincular elementos entre grupos diferentes utilizando la notación de puntos.
# Agrupación con contenedores
Aplicación Frontend: {
Interfaz React -> Gestor de Estado
}
Infraestructura Backend: {
Puerta de enlace de API -> Microservicio de Autenticación
Puerta de enlace de API -> Microservicio de Pedidos
}
# Conexión entre grupos
Gestor de Estado de la Aplicación Frontend -> Puerta de enlace de API de la Infraestructura Backend: Llamada REST 
5. Estilos y Colores
Los colores de fondo personalizados, los colores de trazo y los estilos de fuente se pueden personalizar directamente dentro del bloque utilizando la palabra clavestylepalabra clave.
Servicio A: {
style: {
fill: "#e0e7ff"
stroke: "#4338ca"
border-radius: 8
}
}
Servicio B: {
style: {
fill: "#fef3c7"
stroke: "#d97706"
}
}
Servicio A -> Servicio B: Enviar Mensaje 
6. Hoja de referencia rápida de sintaxis
| Concepto | Ejemplo de código | Qué hace |
|---|---|---|
| Conexión dirigida | A -> B |
Dibuja una flecha que apunta desde A hasta B. |
| Etiqueta de línea | A -> B: Enviar Datos |
Agrega texto encima de la flecha de conexión. |
| Flecha bidireccional | A <-> B |
Dibuja una flecha que apunta en ambos sentidos. |
| Contenedores / Grupos | Servidor: { ... } |
Agrupa múltiples formas en una sola caja. |
| Selección de forma | forma: cilindro |
Cambia la caja estándar en un icono de base de datos, persona, nube, clase, etc. |
| Comentarios | # Mi comentario |
Los comentarios de una sola línea se ignoran durante la representación. |