Skip to content

Appendix B — Built-in catalogues

Contents of DISL 0.1

B.1 Default notation

Element Default
Node rect, 120 × 60, fill token color.surface (#FFFFFF), stroke token color.border (#5F5E5A) width 1, one centered label bound to labelAttribute, word wrap, font 14 px system-ui
View-only node as node, with dashed stroke
Container node as node, with a 24 px header band holding the label; children laid out freely
Relation (directed) straight line, width 1, color token color.border, targetMarker: "arrowFilled", no labels, unless the relation has a name attribute, which is shown middle/above
Relation (undirected) as directed, without markers
Port 8 × 8 rect, fill color.surface, sides by direction
Selection 1.5 px outline in token color.accent (#534AB7), 8 screen-px square handles
invalid state stroke token color.danger (#E24B4A), problem badge top-right
warning state stroke token color.warning (#BA7517), warning badge top-right
dropTarget / dropReject fill token color.accent.soft / stroke color.danger dashed

Standard theme tokens. Runtimes provide these tokens with light and dark values, and specifications may override them: color.canvas, color.surface, color.surface.alt, color.text, color.text.muted, color.border, color.border.strong, color.accent, color.accent.soft, color.danger, color.warning, color.success, color.info, font.body, font.mono, size.stroke, size.corner, size.font.

B.2 Shape parameter defaults

Shape Parameter defaults
roundedRect radius: 8
triangle apex: 0.5, direction: up
parallelogram skew: 0.2, direction: right
trapezoid inset: 0.2, direction: up (narrow side at the top)
hexagon inset: 0.25, orientation: flat
octagon inset: 0.29
polygon sides: 5, rotation: 0
star points: 5, innerRadius: 0.5, rotation: 0
cross thickness: 0.33
cylinder cap: 0.15 × height, orientation: vertical
document wave: 0.1
multiDocument wave: 0.1, offset: 6, count: 3
note fold: 12
folder tabWidth: 0.4, tabHeight: 12, tabPosition: left
frame tabWidth: 0.35, tabHeight: 20
cloud bumps: 8
process inset: 10
manualInput slope: 0.25
offPage pointer: 0.25
callout pointerX: 0.2, pointerY: 1.3, pointerWidth: 0.15, radius: 6
blockArrow direction: right, headLength: 0.35, shaftThickness: 0.5, doubleHeaded: false
chevron depth: 0.25, direction: right
bracket side: left, curl: 0.15
image fit: contain

Fractions refer to the bounds' width (horizontal parameters) or height (vertical parameters).

B.3 Marker catalogue

Sizes are for a line width of 1 and scale with the stroke unless scaleWithStroke is false. "Hollow" markers are filled with background by default, and "filled" markers with stroke.

Marker Default length × width Geometry
arrow 10 × 8 Open V, 2 strokes, angle 30°
arrowFilled 10 × 8 Filled triangle
arrowHollow 12 × 10 Hollow triangle (generalisation)
arrowConcave 12 × 10 Filled, swept-back base
arrowThin 8 × 6 Open V, angle 20°
arrowDouble 16 × 8 Two filled triangles in sequence
halfArrowTop, halfArrowBottom 10 × 5 One barb only
arrowCircle 14 × 8 Filled triangle followed by a hollow circle
diamond / diamondFilled 14 × 8 Rhombus
circle / circleFilled 8 × 8 Circle, tangent to the end point
square / squareFilled 8 × 8 Square
dot 4 × 4 Filled circle centered on the end point
triangle / triangleFilled 10 × 10 Equilateral
bar 0 × 10 Perpendicular line
doubleBar 4 × 10 Two perpendicular lines
cross 8 × 8 ×
slash 6 × 10 Oblique line
erOne 8 × 12 One perpendicular bar
erOnlyOne 12 × 12 Two perpendicular bars
erMany 12 × 12 Crow's foot
erZeroOrOne 18 × 12 Bar and hollow circle
erOneOrMany 16 × 12 Crow's foot and bar
erZeroOrMany 20 × 12 Crow's foot and hollow circle
ballSocketBall 10 × 10 Hollow circle on a short stem
socket 10 × 12 Half circle open towards the end
containment 10 × 10 Circle with a plus
ground 6 × 14 Three bars of decreasing length
fork 10 × 10 Two short diverging lines

B.4 Snap rule summary

Rule Numeric Time Ordinal Angular Sizes
grid ✓ – – ✓ ✓
values ✓ ✓ – ✓ ✓
calendar – ✓ – – ✓ (durations)
ticks ✓ ✓ ✓ ✓ –
bands – – ✓ – ✓ (number of bands)
divisions ✓ – – ✓ ✓
ratio – – – – ✓
cel ✓ ✓ ✓ ✓ ✓
byZoom ✓ ✓ ✓ ✓ ✓
plugin ✓ ✓ ✓ ✓ ✓

B.5 Time units and formats

Units: millisecond, second, minute, hour, day, week (starts on firstDayOfWeek), month, quarter, year. Date format patterns follow Unicode LDML (yyyy, MM, MMM, MMMM, d, EEE, w, HH:mm). Number patterns follow ICU (#,##0.00, #0%).

B.6 Standard icons

Runtimes provide these monochrome icons under std.: add, remove, delete, edit, copy, link, unlink, lock, unlock, eye, eye-off, info, warning, error, check, x, plus, minus, arrow-right, arrow-left, arrow-up, arrow-down, flag, key, database, table, user, users, clock, calendar, message, note, folder, file, image, code, play, pause, stop, settings, search, filter, star, bolt, circle, circle-dot, square, square-rounded, diamond, triangle, hexagon. Specifications may also reference icon sets by prefix (tabler:database, material:table_chart) when the runtime supports them.

B.7 Default widgets by attribute type

Attribute type Widget
string text (combobox if extensible enum)
text textarea (markdown if markup: "markdown")
int, number number (slider if both min and max are set and the range is at most 100 steps)
bool checkbox
date, datetime, time, duration date, datetime, time, duration
color color
uri link
expression code with language: "cel"
json code with language: "json"
binary file
enum (≤ 4 values) segmented
enum (> 4 values) select
data type (struct) struct
reference reference
many primitive tags for strings, list otherwise
many struct table
many reference references

B.8 Feature identifiers

language.requires.features uses these identifiers: axis.log, axis.time, axis.time.collapse, axis.ordinal, axis.angular, system.polar, system.nested, placement.bound, placement.computed, placement.stack, snap.calendar, snap.byZoom, snap.objects, shape.custom, shape.composite, shape.handles, shape.nineSlice, stroke.effect, stroke.sketch, stroke.flow, edge.jumps, edge.bezier, edge.metro, marker.custom, marker.stack, label.rich, label.parse, node.variants, node.lod, form.embedded, layout.elk, collab.crdt, persist.yaml, persist.split, persist.perElement, export.pdf.

Referenced from