Skip to content

Shape Reference

Runiq provides 57 shapes across 10 categories for building professional diagrams.

Quick Reference

ShapeSyntaxUse Case
Rectangle@rectProcess steps, general purpose
Rounded Rectangle@roundedTerminal points (start/end)
Diamond@rhombusDecisions, branching
Hexagon@hexPreparation, success states
Circle@circleSimple state, connector
Ellipse@ellipseElongated state
Cylinder@cylDatabases, storage
Document@docDocuments, outputs
Parallelogram@paraInput/output
Trapezoid@trapManual operation
Cloud@cloudCloud services, external systems
Pentagon@pentProcess container
Triangle@triangleFlow direction
Octagon@octagonStop, halt
Star@starSpecial events

See all 57 shapes below ↓

Categories

1. Actors (8 shapes)

User representations for use case diagrams:

ShapeSyntaxDescription
Actor@actorClassic stick figure actor
Box Actor@box-actorSimplified box actor
Circle Actor@circle-actorCircle head with body
Rounded Actor@rounded-actorRounded box actor
Square Actor@square-actorSquare body actor
Tall Actor@tall-actorTall proportions
Wide Actor@wide-actorWide proportions
Custom Actor@custom-actorConfigurable actor

Example:

runiq
shape User as @actor label: "Customer"
shape Admin as @box-actor label: "Administrator"

2. Circles (10 shapes)

Various circle styles and sizes:

ShapeSyntaxDescription
Circle@circleStandard circle
Small Circle@circle-smSmall circle
Large Circle@circle-lgLarge circle
XL Circle@circle-xlExtra large circle
Double Circle@double-circleConcentric circles
Filled Circle@filled-circleSolid filled
Dashed Circle@dashed-circleDashed border
Dotted Circle@dotted-circleDotted border
Thick Circle@thick-circleThick border
Thin Circle@thin-circleThin border

Example:

runiq
shape Start as @circle label: "A"
shape End as @double-circle label: "Z"

3. UML (2 shapes)

UML-specific shapes:

ShapeSyntaxDescription
Use Case Oval@usecaseUML use case
System Boundary@system-boundarySystem container

Example:

runiq
container "Banking System" as @system-boundary {
  shape Login as @usecase label: "User Login"
}

4. Data & Documents (7 shapes)

Documents and data representations:

ShapeSyntaxDescription
Document@docSingle document
Multi-Document@multi-docStack of documents
Tape@tapeMagnetic tape
Stored Data@stored-dataData at rest
Display@displayScreen/monitor
Note@noteAnnotation
Card@cardPunch card

Example:

runiq
shape Report as @doc label: "Monthly Report"
shape Archive as @tape label: "Backup"

5. Data I/O (6 shapes)

Input and output operations:

ShapeSyntaxDescription
Parallelogram@paraGeneral I/O
Input@inputData input
Output@outputData output
Manual Input@manual-inputKeyboard entry
Manual Operation@manual-opManual step
Prep@prepPreparation

Example:

runiq
shape UserInput as @manual-input label: "Enter Data"
shape Process as @rect label: "Validate"
shape Result as @output label: "Display"

6. Storage (6 shapes)

Database and storage systems:

ShapeSyntaxDescription
Cylinder@cylDatabase
Drum@drumDirect access storage
Disk@diskMagnetic disk
Stored Data@stored-dataData at rest
Internal Storage@internal-storageRAM, registers
Sequential Data@seq-dataSequential access

Example:

runiq
shape MainDB as @cyl label: "PostgreSQL"
shape Cache as @internal-storage label: "Redis"

7. Process (9 shapes)

Process and operation steps:

ShapeSyntaxDescription
Rectangle@rectProcess step
Rounded Rectangle@roundedTerminal (start/end)
Subroutine@subroutinePredefined process
Subprocess@subprocessComplex subprocess
Loop Limit@loop-limitLoop bounds
Collate@collateSorting, ordering
Sort@sortSort operation
Merge@mergeMerge operation
Extract@extractExtract data

Example:

runiq
shape Start as @rounded label: "Start"
shape Process as @rect label: "Process"
shape Sub as @subroutine label: "Validate"
shape End as @rounded label: "End"

8. Specialized (3 shapes)

Special-purpose shapes:

ShapeSyntaxDescription
Cloud@cloudCloud service, external system
Delay@delayTime delay
Off-page@off-pageOff-page connector

Example:

runiq
shape AWS as @cloud label: "AWS S3"
shape Wait as @delay label: "Wait 5 seconds"

9. Annotations (3 shapes)

Comments and notes:

ShapeSyntaxDescription
Note@noteAnnotation
Comment@commentComment block
Callout@calloutCallout bubble

Example:

runiq
shape Step as @rect label: "Process"
shape Info as @note label: "Runs nightly"

10. Pedigree (3 shapes)

Medical/genetic family tree symbols following standard pedigree notation:

ShapeSyntaxDescription
Pedigree Male@pedigree-maleMale individual (square)
Pedigree Female@pedigree-femaleFemale individual (circle)
Pedigree Unknown@pedigree-unknownUnknown sex individual (diamond)

Properties:

  • affected:true - Black fill (has genetic condition)
  • carrier:true - Half-fill pattern (carries one copy)
  • deceased:true - Diagonal line overlay

Example:

runiq
diagram "Family History" {
  direction:TB

  # Parents (both carriers)
  shape father as @pedigree-male label:"Father" carrier:true
  shape mother as @pedigree-female label:"Mother" carrier:true

  # Children
  shape son as @pedigree-male label:"Son" affected:true
  shape daughter as @pedigree-female label:"Daughter"

  # Marriage (no arrow)
  father -> mother arrowType:none

  # Parent-child relationships
  father -> son
  father -> daughter
  mother -> son
  mother -> daughter
}

Pedigree Charts

See the Pedigree Charts Guide for comprehensive documentation on creating medical family trees with inheritance patterns.

All Shapes

Complete table of all 57 shapes:

ShapeSyntaxCategoryUse Case
Actor@actorActorsUser, role in use case
Box Actor@box-actorActorsSimplified actor
Circle Actor@circle-actorActorsAlternative actor
Rounded Actor@rounded-actorActorsRounded actor
Square Actor@square-actorActorsSquare actor
Tall Actor@tall-actorActorsTall proportions
Wide Actor@wide-actorActorsWide proportions
Custom Actor@custom-actorActorsConfigurable
Circle@circleCirclesState, connector
Small Circle@circle-smCirclesSmall state
Large Circle@circle-lgCirclesLarge state
XL Circle@circle-xlCirclesExtra large state
Double Circle@double-circleCirclesFinal state, accept
Filled Circle@filled-circleCirclesInitial state
Dashed Circle@dashed-circleCirclesOptional state
Dotted Circle@dotted-circleCirclesTentative state
Thick Circle@thick-circleCirclesEmphasized state
Thin Circle@thin-circleCirclesDe-emphasized state
Use Case@usecaseUMLUML use case
System Boundary@system-boundaryUMLSystem container
Document@docData & DocsReport, output
Multi-Document@multi-docData & DocsMultiple documents
Tape@tapeData & DocsBackup, archive
Stored Data@stored-dataData & DocsData at rest
Display@displayData & DocsScreen, monitor
Note@noteData & DocsAnnotation
Card@cardData & DocsPunch card
Parallelogram@paraData I/OGeneral I/O
Input@inputData I/OData input
Output@outputData I/OData output
Manual Input@manual-inputData I/OKeyboard entry
Manual Operation@manual-opData I/OManual step
Prep@prepData I/OPreparation
Cylinder@cylStorageDatabase
Drum@drumStorageDirect access
Disk@diskStorageMagnetic disk
Internal Storage@internal-storageStorageRAM, cache
Sequential Data@seq-dataStorageSequential access
Rectangle@rectProcessProcess step
Rounded Rectangle@roundedProcessStart, end
Subroutine@subroutineProcessPredefined process
Subprocess@subprocessProcessComplex subprocess
Loop Limit@loop-limitProcessLoop bounds
Collate@collateProcessSort, order
Sort@sortProcessSort operation
Merge@mergeProcessMerge data
Extract@extractProcessExtract data
Cloud@cloudSpecializedCloud service
Delay@delaySpecializedTime delay
Off-page@off-pageSpecializedOff-page connector
Note@noteAnnotationsNote, comment
Comment@commentAnnotationsComment block
Callout@calloutAnnotationsCallout bubble
Pedigree Male@pedigree-malePedigreeMale individual (square)
Pedigree Female@pedigree-femalePedigreeFemale individual (circle)
Pedigree Unknown@pedigree-unknownPedigreeUnknown sex (diamond)

Shape Properties

All shapes support these properties:

runiq
shape MyShape as @rect
  label: "Display Text"
  fillColor: "#4caf50"
  textColor: "#ffffff"
  strokeColor: "#333333"
  strokeWidth: 2
  opacity: 0.9

Color Properties

  • fillColor - Background color (hex or CSS color)
  • textColor - Label text color
  • strokeColor - Border color
  • strokeWidth - Border width in pixels
  • opacity - Transparency (0.0 to 1.0)

Layout Properties

  • width - Override shape width
  • height - Override shape height
  • padding - Internal padding

Next Steps


Choosing Shapes

When in doubt:

  • @rounded for start/end
  • @rect for processes
  • @rhombus for decisions
  • @cyl for databases
  • @doc for documents

Released under the MIT License.