Diamond Diamond

ui · 6 variants · 1 categories

Split Pane

Resizable-style pane compositions for editors, consoles, previews, navigation and decorative splits.

npx "@rueda.dev/gems-diamond" add split-pane
§01

Split Pane

6 variants
Files
  • src/
  • components/
  • split-pane.tsx
  • manifest.json
  • README.md
Editor
sidebar
Workspace
Console
$ npm run docs
ready in 420ms
local: http://localhost:4321
console
Nav
  • Home
  • Docs
  • API
  • Team
Document
Inspector
Width320
Gap12
ThemeDefault
StateReady
triple
Markdown
# Diamond
A compact split pane for docs.
- Sidebar
- Preview
Preview
Quiet craft.
preview
Menu
Overview
Activity
Billing
Settings
Content
Quiet craft.
nav-content
Draft
Quiet craft.
Notes
Width320
Gap12
ThemeDefault
StateReady
decorative

Usage Guide

How to wire up this component in your app — props, callbacks, customization, and the conventions Diamond shares across the library.

Universal patterns

Every Diamond component shares the same prop conventions, so once you learn one you can predict the others.

  • variant — discriminated union of every visual option. Categories shown above are docs-only metadata; the prop is a flat string union.
  • accent — any CSS color string. Overrides --diamond-accent just for that instance via inline style. Cascades into hover, ring, and selection states.
  • asChild (when present) — renders the underlying primitive via @radix-ui/react-slot, letting you compose with <Link>, motion.button, etc.
  • className — merged with internal Tailwind classes via cn(). Use it to override layout, spacing, or colors.
  • Native HTML attributes (onClick, aria-*, data-*, ref, etc.) flow through to the root element without any whitelist.
  • Diamond is the skin: zero domain state, zero fetch, zero providers. You wire data and reactions in your app code; the components just render and emit events.