Pular para o conteúdo

Aparência da modelagem

Tudo o que diz respeito à aparência de uma modelagem mora num arquivo só: model/workspace.yaml. Ele é opcional — sem ele, o leitor desenha um diagrama C4 completo e convencional.

O que estiver ali é somado chave a chave sobre os padrões do motor. Você sobrepõe o que quiser e herda o resto, então o arquivo pode ser tão curto quanto um título.

model/workspace.yaml
version: 2
title: Reserva de Salas

title é o nome que aparece no alto da barra lateral.

model/workspace.yaml
metadata:
dominio:
label: Dominio
color: true
time:
label: Time
criticidade:
label: Criticidade
color: true

Este bloco faz duas coisas, e só duas:

  • label dá um nome legível ao filtro daquela chave;
  • color: true libera a chave na opção “colorir por” do leitor.

Não é preciso declarar uma chave para ela virar filtro. Toda chave de metadado escrita no modelo já vira filtro sozinha, com a chave crua como rótulo. Este bloco só melhora o rótulo e libera a coloração.

model/workspace.yaml
relationKinds:
webhook:
label: Webhook
markerEnd: arrow-open
dash: "4 3"
color: "#0f766e"

Escrever isso faz kind: webhook passar a valer, sem nenhuma mudança de código.

CampoO que faz
labelo nome legível, exibido na legenda
dasho tracejado, no formato stroke-dasharray do SVG. Ausente: linha cheia
colora cor da linha, em hexadecimal
widtha espessura
markerStart, markerEnda ponta de cada lado: none, arrow-open, arrow-closed, arrow-half, circle, diamond
animatedanima a linha

Sobrepor um tipo que já existe é escrever a mesma chave — sync: com outra cor troca a cor de toda seta síncrona da modelagem.

model/workspace.yaml
shapes:
lambda:
primitive: box
stereotype: Function
palette: container
CampoO que faz
primitiveo desenho base: box, person, robot, browser, cylinder, queue, topic, component, class
stereotypeo texto entre guilemetes na caixa. É apresentação, e não carrega semântica
palettequal entrada da paleta a forma usa
outlinesolid ou dashed
sizestandard, narrow, compact ou wide
model/workspace.yaml
palette:
container:
fill: "#438dd5"
stroke: "#2f6ba3"
text: "#ffffff"

A cor é uma vaga, e não um estereótipo: trocar a entrada container recolore todas as formas que apontam para ela, sem você saber quais são. As vagas de fábrica são person, system, container, component, code, external e neutral.

model/workspace.yaml
noteKinds:
decisao:
label: Decisao
color: "#0f766e"
char: D

Escrever isso faz kind: decisao passar a valer. char é um caractere único desenhado no distintivo; icon é uma marca desenhada, por nome, e vence char quando os dois existem.

model/workspace.yaml
flowOutcomes:
degradado:
label: Degradado
color: "#a16207"

Faz outcome: degradado passar a valer num caminho de fluxo.

Você não precisa editar o arquivo à mão:

Terminal window
cfour config show # a configuração efetiva
cfour config title "Reserva de Salas"
cfour config set noteKinds decisao --label Decisao --color "#0f766e" --char D
cfour config set relationKinds webhook --label Webhook --dash "4 3"
cfour config rm noteKinds decisao

cfour config show mostra os padrões do motor com o seu workspace.yaml por cima — ou seja, os valores que de fato valem naquela modelagem.

Todos os campos, com tipo e padrão, estão em Configuração da aparência.

Várias modelagens, e federação.