Button
Green is the primary action: orc's "more green" shift, ported.
<orc-button>Primary</orc-button>
<orc-button variant="ghost">Ghost</orc-button>
The interface language of orc, extracted: framework-neutral Web Components, a sixteen-color day/night palette, and native-first accessibility. Zero runtime dependencies.
Sixteen semantic colors per theme, rendered here straight from
tokens.json, so this page can't drift from the source.
Display — restraint is a feature
Headline — quiet parts done properly
Title — Inter carries the interface
Body — fourteen pixels of ordinary text, set for long reading in dense tools.
LABEL — chips, tags, captions
mono — JetBrains for code, logs, and hex
Live instances, not screenshots. Prod them. Each ships as a custom
element registered by defineOrcElements().
Green is the primary action: orc's "more green" shift, ported.
<orc-button>Primary</orc-button>
<orc-button variant="ghost">Ghost</orc-button>
The lockup itself: emblem, the green slash, the product word. The navbar above is this component.
<orc-logomark product="design-system"></orc-logomark>
<orc-logomark size="lg"></orc-logomark>
One glowing surface, two shapes. Focus either one and the border goes moss — no ring, however you got there.
<orc-input label="Run name"></orc-input>
<orc-textarea label="Release notes"></orc-textarea>
A native checkbox under Orc's chrome: checked, indeterminate, and disabled all reflect real DOM state.
<orc-checkbox label="Send me updates"></orc-checkbox>
<orc-checkbox label="Auto-merge on green" checked></orc-checkbox>
<orc-checkbox label="Select all rows" indeterminate></orc-checkbox>
<orc-checkbox label="Requires admin" disabled></orc-checkbox>
A light-DOM option list with a labelled trigger, native value holder, and full keyboard path.
<orc-select label="Release channel">
<option value="stable" selected>Stable</option>
<option value="preview">Preview</option>
<option value="nightly">Nightly</option>
</orc-select>
Icon-only actions stay native: plain and ghost weights render as a button or link, each with its own name.
<orc-icon-button label="More actions">
<svg aria-hidden="true">…</svg>
</orc-icon-button>
<orc-icon-button label="Jump to install" variant="ghost" href="#consume">
<svg aria-hidden="true">…</svg>
</orc-icon-button>
Clipboard success or failure replaces the label briefly and is announced in place.
<orc-copy-button
value="npm install @orc-tools/orc-design-system"
variant="ghost"
>Copy install command</orc-copy-button>
Run states as tinted pills; the dot pulses only when motion is welcome.
<orc-chip variant="green" dot>done</orc-chip>
<orc-status-dot tone="green" pulse label="Build passing"></orc-status-dot>
Chip's colour recipe at panel scale, for the block a reader actually stops on.
<orc-callout variant="orange" heading="Gate">Waiting on an approval before this run can proceed.</orc-callout>
<orc-callout variant="red" heading="Escalated">The last deploy failed and was rolled back.</orc-callout>
<orc-callout variant="neutral">No blockers on this run.</orc-callout>
WAI-ARIA APG behavior hand-rolled: roving tabindex, arrow keys, Home/End.
<orc-tabs selected="0">
<div data-tab="Plan">…</div>
</orc-tabs>
A radiogroup wearing a track: one choice, always visible, arrow keys included.
<orc-segmented value="orc" label="Orc mode">
<button value="orc">/orc</button>
</orc-segmented>
A real checkbox underneath: Space, label click and the switch role come from the platform. The thumb moves, so state is never color alone.
<orc-switch label="Auto-merge when green" checked></orc-switch>
Phase pills with aria-current and a text affix for done. Never color alone.
<orc-stepper steps="plan,build,review,qa,ship" current="review"></orc-stepper>
Native <dialog> underneath: Esc, focus trap, and inert background come from the platform, not a dependency.
Focus is trapped here and returns to the trigger on close. Press Esc or click the backdrop.
dialog.show(); // native showModal() underneath
Opt-in CSS, exported from the package like everything else. This page uses the first two.
typography.css: the six-role type scale above, as
--orc-type-* properties and .orc-type-* classes.
scrollbar.css: orc's bordered scrollbar; add
.orc-scrollbar to any scroll container.
prose.css: Markdown typography for headings, lists,
tables, code, and quotes inside .orc-prose.
npm install @orc-tools/orc-design-system
import "@orc-tools/orc-design-system/tokens.css";
import "@orc-tools/orc-design-system/components.css";
import { defineOrcElements } from "@orc-tools/orc-design-system";
defineOrcElements();
This page is the primary reference. It imports the same source the
package builds from, so it is current by construction. Storybook
(npm run storybook) remains the secondary, per-component
workbench with autodocs and play tests.