yonatangross/orchestkitMIT27 files

UI Components

UI component library patterns for shadcn/ui and Radix Primitives. Use when building accessible component libraries, customizing shadcn components, using Radix unstyled primitives, or creating design system foundations.

Specification
Skill ID
yonatangross/orchestkit/ui-components
Publisher
yonatangross
Repository
orchestkit
Installs
0
Files
27
License
MIT
Requires
Claude Code 2.1.277+.
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

yonatangross/orchestkit/ui-componentsInstalls these files
  • SKILL.md
  • metadata.json
  • references/ork-delta.md
  • rules/_sections.md
  • rules/_template.md
  • rules/color-system.md
  • rules/css-cascade-layers.md
  • rules/design-system-components.md
  • rules/design-system-spacing.md
  • rules/design-system-states.md
  • rules/design-system-tokens.md
  • rules/design-system-typography.md
  • rules/empty-states.md
  • rules/forms-react-hook-form.md
  • rules/forms-validation-zod.md
  • rules/shadcn-v4-styles.md
  • rules/storybook-component-docs.md
  • rules/tailwind-v4-patterns.md
  • rules/typography-thresholds.md
  • rules/visual-hierarchy.md
  • scripts/composed-trigger.tsx
  • scripts/custom-dialog.tsx
  • scripts/custom-dropdown.tsx
  • scripts/custom-theme.css
  • scripts/cva-component.tsx
  • scripts/extended-button.tsx
  • test-cases.json

What this skill tells the agent

UI Components

Patterns for building accessible UI component libraries with shadcn/ui and Radix Primitives, as a thin wrap over the first-party docs: quick-start recipes, key decisions, anti-patterns, and the house delta. Vendor mechanics (CVA variants, cn() utility, component extension, asChild composition, dialog/menu patterns, data-attribute styling) are upstream's job; see Upstream coverage (do not restate). Each remaining category has individual rule files in rules/ loaded on-demand.

Quick Reference

CategoryRulesImpactWhen to Use
shadcn/ui1HIGHv4 styles, preset codes, style detection
Design System4HIGHW3C tokens, OKLCH theming, spacing scales, typography, component states, animation
Design System Components1HIGHAtomic design, CVA variants, accessibility, Storybook
Forms2HIGHReact Hook Form v7, Zod validation, Server Actions
Modern CSS & Tooling3HIGHCSS cascade layers, Tailwind v4, Storybook CSF3
UX Foundations4HIGHVisual hierarchy, typography thresholds, color system, empty states

Total: 15 rules across 6 categories. Radix primitive mechanics and shadcn customization tutorials are first-party documented; see Upstream coverage (do not restate) and references/ork-delta.md for what stays ours.

Quick Start

// CVA variant system with cn() utility
import { cva, type VariantProps } from 'class-variance-authority'
import { cn } from '@/lib/utils'

const buttonVariants = cva(
  'inline-flex items-center justify-center rounded-md font-medium transition-colors',
  {
    variants: {
      variant: {
        default: 'bg-primary text-primary-foreground hover:bg-primary/90',
        destructive: 'bg-destructive text-destructive-foreground',
        outline: 'border border-input bg-background hover:bg-accent',
        ghost: 'hover:bg-accent hover:text-accent-foreground',
      },
      size: {
        default: 'h-10 px-4 py-2',
        sm: 'h-9 px-3',
        lg: 'h-11 px-8',
      },
    },
    defaultVariants: { variant: 'default', size: 'default' },
  }
)
// Radix Dialog with asChild composition
import { Dialog } from 'radix-ui'

<Dialog.Root>
  <Dialog.Trigger asChild>
    <Button>Open</Button>
  </Dialog.Trigger>
  <Dialog.Portal>
    <Dialog.Overlay className="fixed inset-0 bg-black/50" />
    <Dialog.Content className="data-[state=open]:animate-in">
      <Dialog.Title>Title</Dialog.Title>
      <Dialog.Description>Description</Dialog.Description>
      <Dialog.Close>Close</Dialog.Close>
    </Dialog.Content>
  </Dialog.Portal>
</Dialog.Root>

shadcn/ui

Beautifully designed, accessible components built on CVA variants, cn() utility, and OKLCH theming.

RuleFileKey Pattern
v4 Stylesrules/shadcn-v4-styles.md6 styles (Vega→Luma), preset codes, style detection, class mapping

Customization, form, and data-table walkthroughs are upstream's job now; see Upstream coverage (do not restate). Our conventions on top of them live in references/ork-delta.md.

v4 Style System

shadcn CLI v4 ships 6 visual styles. Each rewrites component class names — not just CSS variables.

StyleCharacterBest For
VegaBalanced radius, clean linesGeneral purpose (successor to New York)
NovaCompact padding, reduced marginsDense dashboards, admin panels
MaiaSoft, rounded, generous spacingConsumer-facing, friendly apps
LyraSharp, zero radius, monospace pairsEditorial, developer tools
MiraUltra-compact, minimal chromeSpreadsheets, data-heavy interfaces
LumaExtreme rounding (rounded-4xl), soft elevation (shadow-md + ring), breathable layoutsPolished native-app feel, macOS Tahoe-inspired

Configure visually at ui.shadcn.com/create → pick style, theme, fonts, icons, then copy the generated command. Do not hardcode preset codes in docs — they're tied to a specific style snapshot and can drift.

shadcn CLI v4 (Apr 2026) — new commands

CommandPurpose
npx shadcn@latest apply <style>Apply a published style (e.g. luma, nova, lyra) to the current project — re-skins existing components without re-adding them
npx shadcn@latest infoShow resolved config: registry, style, tokens, components present, Tailwind version
npx shadcn@latest skillsList the shadcn/skills registry — Claude Code- and Cursor-ready skill packs that bundle CLI commands with agent guidance
npx shadcn@latest buildBuild a custom registry (already-documented) — pair with apply to ship a private style

Detection: Read components.json → "style" field (e.g., "radix-luma", "base-nova"). Old "new-york" and "default" styles are superseded by Vega.

Key Decisions

DecisionRecommendation
Color formatOKLCH for perceptually uniform theming
Class mergingAlways use cn() for Tailwind conflicts
Extending componentsWrap, don't modify source files
VariantsUse CVA for type-safe multi-axis variants
Styling approachData attributes + Tailwind arbitrary variants
CompositionUse asChild to avoid wrapper divs
AnimationCSS-only with data-state selectors
Form componentsCombine with react-hook-form
Destructive confirmationsAlertDialog, never plain Dialog (see references/ork-delta.md)

Anti-Patterns (FORBIDDEN)

  • Modifying shadcn source: Wrap and extend instead of editing generated files
  • Skipping cn(): Direct string concatenation causes Tailwind class conflicts
  • Inline styles over CVA: Use CVA for type-safe, reusable variants
  • Wrapper divs: Use asChild to avoid extra DOM elements
  • Missing Dialog.Title: Every dialog must have an accessible title
  • Positive tabindex: Using tabindex > 0 disrupts natural tab order
  • Color-only states: Use data attributes + multiple indicators
  • Manual focus management: Use Radix built-in focus trapping

Upstream coverage (do not restate)

These topics were removed from this skill on 2026-07-31 because a first-party source owns them. Point sessions at the source; keep only floors, scars, and house decisions here (they live in references/ork-delta.md).

TopicFirst-party source
shadcn setup, init checklist, adding componentsvercel:shadcn (marketplace skill), https://ui.shadcn.com/docs/installation
shadcn customization, CVA variants, cn() utility, component extensionvercel:shadcn (marketplace skill), https://ui.shadcn.com/docs and https://cva.style/docs
OKLCH theming variables, light/dark CSS variable setshttps://ui.shadcn.com/docs/theming
Dark mode toggle with next-themeshttps://ui.shadcn.com/docs/dark-mode and https://github.com/pacocoursey/next-themes
Data table with TanStack Tablehttps://ui.shadcn.com/docs/components/data-table and https://tanstack.com/table
Form field wrappers and validation stateshttps://ui.shadcn.com/docs/components/form
Radix Dialog and AlertDialog patternshttps://www.radix-ui.com/primitives/docs/components/dialog and .../components/alert-dialog
Radix asChild / Slot compositionhttps://www.radix-ui.com/primitives/docs/guides/composition
Radix data-attribute styling and focus managementhttps://www.radix-ui.com/primitives/docs/guides/styling

Use this skill in a project

Open any RiverX project, search the Skills panel for yonatangross/orchestkit/ui-components, and install it in one click.

Use this skill