11.01 · Diagrams / cn-hex

<cn-hex>

The pointy-top hex primitive. Every diagram in the kit composes from this one element. Label, icon, both at once, nine brand colours, four sizes, solid or outline, optional interactive state with keyboard activation.

Label only
Connect Build Catalog
<cn-hex size="md">Connect</cn-hex>
<cn-hex size="lg" color="orange">Build</cn-hex>
<cn-hex size="xl" color="mint">Catalog</cn-hex>
Icon only
<cn-hex size="md">
  <svg slot="icon" viewBox="0 0 24 24" ...>...</svg>
</cn-hex>
Label + icon · vertical (default)
Catalog Connect Apps
<cn-hex size="lg">
  <svg slot="icon" ...>...</svg>
  Catalog
</cn-hex>
Label + icon · horizontal
Catalog Cloud
<cn-hex size="xl" layout="horizontal">
  <svg slot="icon" ...>...</svg>
  Catalog
</cn-hex>
All nine colours · brand-strict palette
Cobalt Orange Mint Lavender Terra Forest Cloud CG Red
Sizes · sm · md · lg · xl
sm md lg xl
Outline variant
Cobalt Orange Mint CG
Interactive · hover, click, keyboard
Click Tab + Enter
API · slots
SlotPurpose
(default)Label text. Optional. Plain text or any inline content.
iconIcon SVG or <img>. Optional. Sits above the label by default; left of it with layout="horizontal". Inherits currentColor.
API · attributes
AttributeValuesDefaultPurpose
colorcobalt · orange · mint · lavender · terracotta · forest · nextcloud · commonground · redcobaltBrand colour. Names only, no hex codes. Use nextcloud for Nextcloud refs and commonground for Common Ground refs (parallel to how their own brands use them).
sizesm (40px) · md (64px) · lg (96px) · xl (128px), or any CSS lengthmdWidth of the hex. Height = width × 1.155.
variantsolid · outlinesolidOutline draws a stroke at the brand colour with a transparent body.
layoutvertical · horizontalverticalIcon-above-label vs icon-left-of-label.
interactiveboolean (presence)absentAdds cursor: pointer, hover scale, focus ring, tabindex="0", role="button", Enter/Space activation.
Why we built it this way
Atom · the brand carrier

The atom carries the brand

Every hex on every Conduction surface goes through this one element. If the rules live here, they hold everywhere automatically.