cycles logo dark
brand — Use the appropriate contrast variant and meaningful alt text when the logo conveys identity.
@apiops/design-system/assets/brand/apiops-cycles-logo-dark.svg/design-system/brand/apiops-cycles-logo-dark.svgPackage reference
A living, English-only reference for the visual contracts shared by APIOps applications.
@apiops/design-system owns visual tokens, assets, styles, and method-agnostic components. The canvas application and design-system mapping assigns grid, notes, metadata controls, modes, focus treatments, and print presentation to the package, while the consuming application owns state and domain decisions.
Method catalogs, station IDs, route data, localized method content, and persistence do not belong in this package. Applications supply those concerns to reusable visual primitives.
This inventory is rendered directly from @apiops/design-system/tokens.json; values are not copied into this page. Token names are shown in their CSS custom property form for direct use with var(--token-name); the smaller label preserves the matching DTCG source path. The contract can cover color, typography, spacing, radius, shadow, focus, control, canvas, metro groups as they are published. This release declares color, canvas, font tokens.
| CSS token | Declared value | Usage guidance | Visual sample |
|---|---|---|---|
--color-neutral-graphiteSource: color.neutral.graphite | #0f172a | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-neutral-slateSource: color.neutral.slate | #1e293b | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-neutral-stoneSource: color.neutral.stone | #334155 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-neutral-cloudSource: color.neutral.cloud | #f5f7fa | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-neutral-paperSource: color.neutral.paper | #ffffff | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-line-businessSource: color.line.business | #10b981 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-line-architectureSource: color.line.architecture | #8b5cf6 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-line-deliverySource: color.line.delivery | #f5b30b | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-line-publishingSource: color.line.publishing | #00a6a6 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-line-operating-modelSource: color.line.operatingModel | #1d4ed8 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-line-designSource: color.line.design | #ef4444 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-cycle-capabilitySource: color.cycle.capability | #02a972 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-cycle-apiSource: color.cycle.api | #5b5bd6 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-cycle-integrationSource: color.cycle.integration | #8b5cf6 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-cycle-automationSource: color.cycle.automation | #0a8f98 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-accent-communitySource: color.accent.community | #1656b8 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-note-draftSource: color.note.draft | #fff6bf | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-note-committedSource: color.note.committed | #f7e9ff | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-note-selectedSource: color.note.selected | #e0f4ff | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-note-groupedSource: color.note.grouped | #ebf8d7 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-note-linkedSource: color.note.linked | #fef0d8 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-note-resolvedSource: color.note.resolved | #e9f8ef | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--color-note-archivedSource: color.note.archived | #eef2f7 | Use semantic colors for text, surfaces, routes, cycles, and note intent; never rely on color alone. | Color sample |
--canvas-outer-marginSource: canvas.outerMargin | 32px | Use canvas dimensions through package styles when composing the exported canvas primitives. | Dimension sample |
--canvas-gutterSource: canvas.gutter | 16px | Use canvas dimensions through package styles when composing the exported canvas primitives. | Dimension sample |
--canvas-section-gapSource: canvas.sectionGap | 8px | Use canvas dimensions through package styles when composing the exported canvas primitives. | Dimension sample |
--canvas-section-paddingSource: canvas.sectionPadding | 20px | Use canvas dimensions through package styles when composing the exported canvas primitives. | Dimension sample |
--font-displaySource: font.display | Urbanist, Inter, Segoe UI, Arial, sans-serif | Use display for headings, body for reading, and code for paths or technical examples. | Aa |
--font-bodySource: font.body | Inter, Urbanist, Segoe UI, Arial, sans-serif | Use display for headings, body for reading, and code for paths or technical examples. | Aa |
--font-codeSource: font.code | JetBrains Mono, SFMono-Regular, Consolas, monospace | Use display for headings, body for reading, and code for paths or technical examples. | Aa |
The package asset metadata manifest is the source of this inventory. Download a standalone SVG, copy the supported package import, or use the public path example.
brand — Use the appropriate contrast variant and meaningful alt text when the logo conveys identity.
@apiops/design-system/assets/brand/apiops-cycles-logo-dark.svg/design-system/brand/apiops-cycles-logo-dark.svgbrand — Use the appropriate contrast variant and meaningful alt text when the logo conveys identity.
@apiops/design-system/assets/brand/apiops-cycles-logo-white.svg/design-system/brand/apiops-cycles-logo-white.svgbrand — Use the appropriate contrast variant and meaningful alt text when the logo conveys identity.
@apiops/design-system/assets/brand/apiops-cycles-logo.svg/design-system/brand/apiops-cycles-logo.svgfavicon — Reference from document metadata; its neighboring page title supplies the accessible name.
@apiops/design-system/assets/favicons/favicon.svg/design-system/favicons/favicon.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-check-mark.svg/design-system/glyphs/apiops-check-mark.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-flow-en-text.svg/design-system/glyphs/apiops-flow-en-text.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-flow.svg/design-system/glyphs/apiops-flow.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-iconset.svg/design-system/glyphs/apiops-iconset.svgbrand — Use the appropriate contrast variant and meaningful alt text when the logo conveys identity.
@apiops/design-system/assets/brand/apiops-logo.svg/design-system/brand/apiops-logo.svgbrand — Use the appropriate contrast variant and meaningful alt text when the logo conveys identity.
@apiops/design-system/assets/brand/apiops-mark-white.svg/design-system/brand/apiops-mark-white.svgbrand — Use the appropriate contrast variant and meaningful alt text when the logo conveys identity.
@apiops/design-system/assets/brand/apiops-mark.svg/design-system/brand/apiops-mark.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-metro-icons.svg/design-system/glyphs/apiops-metro-icons.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-station-circle-blue.svg/design-system/glyphs/apiops-station-circle-blue.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-station-circle.svg/design-system/glyphs/apiops-station-circle.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-stick-figures-poses.svg/design-system/glyphs/apiops-stick-figures-poses.svgglyph — Treat decorative glyphs as hidden; label an action when a glyph is its only visible content.
@apiops/design-system/assets/glyphs/apiops-stick-figures-stories.svg/design-system/glyphs/apiops-stick-figures-stories.svgSVG sheets contain individually addressable symbols. Download a symbol as its own SVG, or reference it through an accessible inline SVG: give the SVG a name when it conveys meaning, or add aria-hidden="true" when decorative.
Concept icons for labelled supporting content.
/design-system/icons/apiops-iconset.svg#icon-insight<svg viewBox="0 0 120 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-insight" /></svg>/design-system/icons/apiops-iconset.svg#icon-decision<svg viewBox="0 0 120 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-decision" /></svg>/design-system/icons/apiops-iconset.svg#icon-conversation<svg viewBox="0 0 140 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-conversation" /></svg>/design-system/icons/apiops-iconset.svg#icon-opportunity<svg viewBox="0 0 130 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-opportunity" /></svg>/design-system/icons/apiops-iconset.svg#icon-capability<svg viewBox="0 0 140 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-capability" /></svg>/design-system/icons/apiops-iconset.svg#icon-value<svg viewBox="0 0 130 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-value" /></svg>/design-system/icons/apiops-iconset.svg#icon-people<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-people" /></svg>/design-system/icons/apiops-iconset.svg#icon-alignment<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-alignment" /></svg>/design-system/icons/apiops-iconset.svg#icon-risk<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-risk" /></svg>/design-system/icons/apiops-iconset.svg#icon-quality<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-quality" /></svg>/design-system/icons/apiops-iconset.svg#icon-flow<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-flow" /></svg>/design-system/icons/apiops-iconset.svg#icon-learn<svg viewBox="0 0 140 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-iconset.svg#icon-learn" /></svg>Journey, station, actor, and event symbols for diagrams.
/design-system/icons/apiops-metro-icons.svg#glyph-station<svg viewBox="0 0 120 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-station" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-hub<svg viewBox="0 0 120 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-hub" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-interchange<svg viewBox="0 0 120 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-interchange" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-route-split<svg viewBox="0 0 130 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-route-split" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-arrive<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-arrive" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-join<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-join" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-explore<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-explore" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-decide<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-decide" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-continue<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-continue" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-learn<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-learn" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-iterate<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-iterate" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-publish<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-publish" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-measure<svg viewBox="0 0 150 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-measure" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-shared-momentum<svg viewBox="0 0 180 120" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-shared-momentum" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-passengers<svg viewBox="0 0 200 130" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-passengers" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-waiting<svg viewBox="0 0 180 150" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-waiting" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-workshop<svg viewBox="0 0 220 150" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-workshop" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-meetup<svg viewBox="0 0 240 160" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-meetup" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-conference<svg viewBox="0 0 240 170" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-conference" /></svg>/design-system/icons/apiops-metro-icons.svg#glyph-speaker<svg viewBox="0 0 220 170" role="img" aria-label="…"><use href="/design-system/icons/apiops-metro-icons.svg#glyph-speaker" /></svg>Individual people for method-neutral workshop scenes.
/design-system/humans/apiops-stick-figures-poses.svg#pose-standing<svg viewBox="0 0 170 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-standing" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-walking<svg viewBox="0 0 180 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-walking" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-pointing<svg viewBox="0 0 190 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-pointing" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-presenting<svg viewBox="0 0 190 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-presenting" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-discussing<svg viewBox="0 0 220 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-discussing" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-listening<svg viewBox="0 0 170 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-listening" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-thinking<svg viewBox="0 0 170 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-thinking" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-facilitating<svg viewBox="0 0 210 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-facilitating" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-connecting<svg viewBox="0 0 220 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-connecting" /></svg>/design-system/humans/apiops-stick-figures-poses.svg#pose-observing<svg viewBox="0 0 190 205" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-poses.svg#pose-observing" /></svg>Small, reusable storytelling compositions.
/design-system/humans/apiops-stick-figures-stories.svg#actor-presenting<svg viewBox="0 0 150 190" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-stories.svg#actor-presenting" /></svg>/design-system/humans/apiops-stick-figures-stories.svg#actor-listening<svg viewBox="0 0 150 190" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-stories.svg#actor-listening" /></svg>/design-system/humans/apiops-stick-figures-stories.svg#actor-walking<svg viewBox="0 0 160 190" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-stories.svg#actor-walking" /></svg>/design-system/humans/apiops-stick-figures-stories.svg#actor-standing<svg viewBox="0 0 150 190" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-stories.svg#actor-standing" /></svg>/design-system/humans/apiops-stick-figures-stories.svg#actor-facilitating<svg viewBox="0 0 190 190" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-stories.svg#actor-facilitating" /></svg>/design-system/humans/apiops-stick-figures-stories.svg#actor-observing<svg viewBox="0 0 180 190" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-stories.svg#actor-observing" /></svg>/design-system/humans/apiops-stick-figures-stories.svg#actor-seated<svg viewBox="0 0 175 190" role="img" aria-label="…"><use href="/design-system/humans/apiops-stick-figures-stories.svg#actor-seated" /></svg>These hydrated, method-neutral fixtures demonstrate CompactSection, interactive PillList buttons, ResourceSelector cards, PartnerCard with a logo, AnnouncementToast, StakeholderRoleSelector, buttons, and a drop-down menu.
Confirm the outcome, audience, and next decision.
Selected: clarity
Native controls inherit the package typography and focus treatment; component-specific buttons add selected, pressed, and disabled semantics.
The public React entry point also exposes the lower-level canvas and metro composition primitives:
CompactSectionPillListResourceSelectorJourneyCriteriaPartnerCardAnnouncementToastStakeholderRoleSelectorMetroMapShellMetroLinePathMetroSelectionRingMetroStationButtonMetroStationMarkerMetroLegendCanvasSystemShellCanvasSystemGridCanvasSystemZoneCanvasSystemNoteViewCanvasSystemMetadataEditorCanvasSystemMetadataReadOnlyCanvasSystemFixtureThis example composes MetroMapShell, MetroLinePath, MetroStationButton, MetroStationMarker, MetroSelectionRing, and MetroLegend without importing the generated method catalog. It includes keyboard operation and selected-state behavior; route and station data remain application-owned.
Tab to either station and press Enter or Space. The selected station receives a visible selection ring.
The hydrated CanvasSystemFixture documents interactive, presentation, and print modes together with active-section and focus-only behavior. Its metadata editor and read-only metadata, populated and empty note areas, anchor highlight, and journey treatment exercise the complete visual contract.
Canvas system fixture
Visual states are deliberately colocated for regression review.
An anchor section with a populated note area.
A journey treatment with an intentionally empty note area.
Canvas system fixture
Visual states are deliberately colocated for regression review.
An anchor section with a populated note area.
Populated note
A journey treatment with an intentionally empty note area.
Canvas system fixture
Visual states are deliberately colocated for regression review.
An anchor section with a populated note area.
Populated note
A journey treatment with an intentionally empty note area.
Import the application stylesheet once in the application layout, then import components and data only where needed.
import { CanvasSystemFixture } from "@apiops/design-system";
import { MetroMapShell } from "@apiops/design-system/react";
import "@apiops/design-system/styles.css"; // once, in the application layout
import tokens from "@apiops/design-system/tokens.json";
import { designSystemAssets } from "@apiops/design-system/assets";
import assetManifest from "@apiops/design-system/metadata/assets.json";The supported public boundaries are @apiops/design-system, /react, /styles.css, /tokens.json, /assets, and /metadata/*.