Render responsive navigation as a honeycomb

This reusable DCE accepts ordinary links containing images and turns them into a semantic list. Both the link href and image src may be relative to this demo file or full URLs. CSS gives every link the logo-centered hexagon appearance of the legacy demo, then changes between 5–4, 4–3, 3–2, and 2–1 staggered rows as the component narrows.

A cem-hex-image-link occupies 95% of its responsive .hex cell. Change every cell and link together with the size parameter on cem-hex-grid. It sets the whole honeycomb's maximum width and defaults to 72rem. Percentages are relative to the available grid area; CSS lengths such as 35rem are also accepted and capped at 100%. Because the cells scale as a group, their staggered honeycomb edges stay together.

Background alternation is disabled by default, giving every cell the same gradient. Add alternate="true" to cem-hex-grid to cycle the three backgrounds. The white image plate is only a loading/error fallback; it disappears as soon as the image loads successfully. Keyboard focus uses an inset, hex-shaped zebra ring driven by cem-theme tokens, avoiding a rectangular outline cropped by the hexagon.

A wrapper DCE can theme a nested grid without reaching into its private structure. Set the inherited --cem-hex-background-* and --cem-hex-label-* custom properties in the wrapper's style, then project the grid through the wrapper. Per-cell hover colors use --cem-hex-hover-background-*. A button-like presentation can keep the label raised with --cem-hex-label-shift: 0% and supply normal and hover filters through --cem-hex-link-filter and --cem-hex-link-hover-filter.

Use layout="row" for a single horizontal strip. Its --cem-hex-row-cell-width defaults to 6rem; narrow cards scroll inside the row instead of staggering the cells. Put aria-current="page" on the payload link for this page: it keeps a visible ✓ label and its own colors through --cem-hex-current-background-* and --cem-hex-current-label-*. Tab moves focus without moving the current-page marker; Enter follows the focused link. These are navigation links, not selectable buttons or tabs.

The layout adapts the responsive list sizing and alternate-row indentation from Web Tiki's hexagon grid. Modern aspect-ratio and clip-path replace the original rotated masking elements.

See also

Render payload records with cem:for-each

Resolve relative and full resource URLs

Keep component CSS local