Components / core

Button

Spec-Sheet Button - Uppercase Tracked Label, Square Corners

01 Preview

02 Usage

One-line action button - amber primary, hairline secondary, text-only ghost; uppercase mono label with optional trailing glyph.

<Button glyph="→">View projects</Button>
<Button variant="secondary">Download CV</Button>
<Button variant="ghost" glyph="↗">GitHub</Button>

Variants: primary | secondary | ghost. Sizes: xs | sm | md. Never rounded, never shadowed. One primary per view region. xs matches the --text-2xs size of inline reference links, so a ghost xs button (e.g. a Cite action) sits inline beside them.

03 Props

PropTypeDefaultNotes
variant 'primary' | 'secondary' | 'ghost' primary Visual weight.
size 'xs' | 'sm' | 'md' md
glyph string Trailing unicode glyph, e.g. "→" or "↗"
type 'button' | 'submit' | 'reset' button Native button type. Defaults to `"button"`, not the HTML default of `"submit"` — pass `type="submit"` explicitly to submit a form.
children* React.ReactNode

Also accepts every attribute of React.ButtonHTMLAttributes<HTMLButtonElement> — they are spread onto the root element. className is merged, not replaced, and ref is forwarded.

04 Import

import { Button } from '@denizarsan/darsan.design';
import '@denizarsan/darsan.design/styles.css';