D2 to nowoczesne narzędzie oparte na tekście do tworzenia jasnych, czytelnych schematów. Oznacza to „Deklaratywne rysowanie schematów”. W VPasCode D2 pozwala programistom i architektom rozwiązań przekształcać prosty kod tekstowy w czyste modele wizualne, nie musząc ręcznie rysować kształtów.
1. Podstawowe kształty i połączenia
Aby stworzyć kształty, po prostu wpisz ich nazwy. Aby połączyć kształty, użyj strzałki (-> dla jednokierunkowego lub <-> dla dwukierunkowego).
# Proste połączenie
Użytkownik -> Serwer WWW: Zapytanie HTTP
Serwer WWW -> Baza danych: Pobierz dane
Baza danych -> Serwer WWW: Zwróć wyniki
Serwer WWW <-> Cache: Synchronizacja odczytu/zapisu 
2. Typy kształtów i niestandardowe etykiety
Domyślnie kształty pojawiają się jako standardowe prostokąty. Możesz łatwo zmienić typ ikony kształtu lub ustawić niestandardową etykietę, używając właściwości shape właściwości.
# Definiowanie typów kształtów
Klient: {
shape: osoba
}
Usługi chmurowe: {
shape: chmura
}
Główna baza danych: {
shape: cylindryczny
label: "Główna baza danych (PostgreSQL)"
}
Klient -> Usługi chmurowe -> Główna baza danych 
3. Definicje klas
D2 domyślnie obsługuje projektowanie struktur opartych na obiektach przy użyciu kształtu class kształt.
KontoKlienta: {
shape: klasa
accountId: String
emailAddress: String
isActive(): Boolean
} 
4. Zagnieżdżone kontenery (grupowanie)
D2 ułatwia grupowanie elementów wewnątrz kontenerów przy użyciu standardowych nawiasów klamrowych (“{}). Możesz również łączyć elementy między różnymi grupami przy użyciu notacji kropkowej.
# Grupowanie za pomocą kontenerów
Aplikacja frontendowa: {
Interfejs UI React -> Menedżer stanu
}
Infrastruktura backendowa: {
Brama API -> Mikroserwis uwierzytelniania
Brama API -> Mikroserwis zamówień
}
# Połączenie między grupami
Aplikacja frontendowa.Menedżer stanu -> Infrastruktura backendowa.Brama API: Wywołanie REST 
5. Stylizacja i kolory
Niestandardowe kolory tła, kolory obramowania i style czcionek można dostosować bezpośrednio w bloku przy użyciu słowa kluczowegostylesłowa kluczowego.
Usługa A: {
style: {
wypełnienie: "#e0e7ff"
obramowanie: "#4338ca"
promień_narożnika: 8
}
}
Usługa B: {
style: {
wypełnienie: "#fef3c7"
obramowanie: "#d97706"
}
}
Usługa A -> Usługa B: Wyślij wiadomość 
6. Szybki arkusz składni
| Koncepcja | Przykład kodu | Co robi |
|---|---|---|
| Kierowane połączenie | A -> B |
Rysuje strzałkę wskazującą od A do B. |
| Etykieta linii | A -> B: Wyślij dane |
Dodaje tekst na połączeniu strzałki. |
| Strzałka dwukierunkowa | A <-> B |
Rysuje strzałkę wskazującą w obu kierunkach. |
| Kontenery / Grupy | Serwer: { ... } |
Grupuje wiele kształtów w jednym polu. |
| Wybór kształtu | kształt: walec |
Zmienia standardowe pole na ikonę bazy danych, osobę, chmurę, klasę itp. |
| Komentarze | # Mój komentarz |
Komentarze jednolinijkowe są ignorowane podczas renderowania. |