Block diagrams
Two parts: BlockDiagram is the canvas and Block is a node on it. A block
holds blocks, so the diagram nests as deep as the thing it describes without a
second component per level. Layout is CSS grid, the page ships no script, and
containment is the default relationship. Use flow="sequence" for a short
ordered process; its connectors turn downward when the stages stack on mobile.
Branches and loops belong in Diagrams.
A flat row
Section titled “A flat row”Five peers on one line. flow="row" is the default, and a row stacks to one
column below 42rem, which is where five labels stop fitting on a phone.
- Probe
- Sampler
- Decoder
- Aligner
- Report
<BlockDiagram title="Capture path" caption="Five stages, each one a peer of the others."> <Block label="Probe" /> <Block label="Sampler" /> <Block label="Decoder" /> <Block label="Aligner" /> <Block label="Report" /></BlockDiagram>Nesting
Section titled “Nesting”A Block with children draws them in a set of its own. The children are more
Blocks, so the whole diagram is one <figure> holding nested lists and a
screen reader walks the hierarchy the page draws. The ground steps at each
level, and the step is read off the markup rather than declared, so a subtree
moved a level in or out takes the ground of where it lands.
- IngestTwo sources
- Reader
- Validator
- TransformPure functions
- Normalize
- Resample
- Window
- PublishOne writer
- Encoder
- Store
<BlockDiagram title="Pipeline with substeps" flow="row"> <Block label="Ingest" sublabel="Two sources"> <Block label="Reader" emphasis="filled" /> <Block label="Validator" emphasis="filled" /> </Block></BlockDiagram>Plain ladder
Section titled “Plain ladder”Three levels with no tone and no emphasis. The ground steps with depth and the second line keeps its contrast at the bottom of the ladder.
- SystemLevel one
- SubsystemLevel two
- ComponentLevel three
- ComponentLevel three
- SubsystemLevel two
- SystemLevel one
A filled parent
Section titled “A filled parent”A filled block can hold blocks. The children start the ladder again with their own edge, so the filled ground is the parent’s alone.
- Runtime
- Scheduler
- Allocatorarena
- Host
Three levels, with links
Section titled “Three levels, with links”The same part three deep. The labels here are this package, so every link goes
to the page that documents the block it names. tone="accent" takes the
product color of whatever subtree it sits in, which is the
data-helia-accent attribute a product site already sets.
The variants
Section titled “The variants”Each block below is labeled with the prop that draws it.
- Neutraltone default
- Mutedtone="muted"
- Accenttone="accent"
- Outlineemphasis default
- Filledemphasis="filled"
- Dashedemphasis="dashed"
- Widespan={2}
- Plain
- Plain
- One
- Inner
- Two
- Inner
- Three
- Inner
What belongs in a label
Section titled “What belongs in a label”One to three words. The box was drawn to be taken in at a glance, and a block
carrying a sentence is a card that has lost its frame. A qualifier that will
not fit in the name goes in sublabel, on its own line and in the muted ink,
where it stays out of the way of the shape.
Ordered stages
Section titled “Ordered stages”flow="sequence" uses an ordered list and connects only its top-level stages.
Keep labels short; nested blocks still describe what each stage contains.
- InputModel and configuration
- CompilePlan and generate
- OutputIntegrate generated code
Diagrams within a section
Section titled “Diagrams within a section”Build stages
- Input
- Compile
- Output
Choose an integration format.
- CMake
- CMSIS-Pack
A plain landing section keeps the same prose spacing.
- Source files
- Build files