Clidey UXDocs

Quick Start

This guide walks you from a fresh React project to a working UI with Clidey Design.

Build with Claude or Codex#

Describe your app and give your coding agent the complete UX context. The prompt below includes the URL for the site you are viewing.

YOUR IDEA → YOUR APP

One prompt. The whole design system.

Copy this into Claude Code or Codex, then describe what you want to build.

Read the complete build context
Read https://clidey.github.io/ux/llms.txt and build the following app using Clidey UX:

[Describe your app.]

Use a local coding agent for this localhost preview. For remote agents, use the published site URL once the documentation is deployed. See MCP and AI workflows for the complete workflow and optional MCP connection.

Or set it up yourself#

Adding dark mode toggle#

Add a theme toggle button to let users switch between light and dark mode:

TSX

import { ModeToggle, Toaster, toast } from '@clidey/ux';

export default function App() {
  return (
    <div className="min-h-screen p-8">
      <div className="flex justify-end mb-4">
        <ModeToggle />
      </div>

      {/* your content */}

      <Toaster />
    </div>
  );
}

Common patterns#

Form with validation feedback

TSX

import { Input, Label, Button, Alert, AlertTitle, AlertDescription } from '@clidey/ux';
import { useState } from 'react';

function LoginForm() {
  const [error, setError] = useState('');

  function handleSubmit(e: React.FormEvent) {
    e.preventDefault();
    setError('Invalid credentials. Please try again.');
  }

  return (
    <form onSubmit={handleSubmit} className="space-y-4 max-w-sm">
      {error && (
        <Alert variant="destructive">
          <AlertTitle>Authentication failed</AlertTitle>
          <AlertDescription>{error}</AlertDescription>
        </Alert>
      )}
      <div className="space-y-1">
        <Label htmlFor="email">Email</Label>
        <Input id="email" type="email" placeholder="you@example.com" />
      </div>
      <div className="space-y-1">
        <Label htmlFor="password">Password</Label>
        <Input id="password" type="password" showPasswordToggle />
      </div>
      <Button type="submit" className="w-full">Sign in</Button>
    </form>
  );
}

Toast notifications

TSX

import { Button, Toaster, toast } from '@clidey/ux';

function Demo() {
  return (
    <>
      <Button onClick={() => toast.success('Saved successfully!')}>
        Save changes
      </Button>
      <Toaster />
    </>
  );
}

Confirmation dialog

TSX

import {
  AlertDialog,
  AlertDialogTrigger,
  AlertDialogContent,
  AlertDialogHeader,
  AlertDialogTitle,
  AlertDialogDescription,
  AlertDialogFooter,
  AlertDialogCancel,
  AlertDialogAction,
  Button,
} from '@clidey/ux';

function DeleteConfirm() {
  return (
    <AlertDialog>
      <AlertDialogTrigger>
        <Button variant="destructive">Delete account</Button>
      </AlertDialogTrigger>
      <AlertDialogContent>
        <AlertDialogHeader>
          <AlertDialogTitle>Delete your account?</AlertDialogTitle>
          <AlertDialogDescription>
            Your account and all associated data will be permanently deleted.
            This cannot be undone.
          </AlertDialogDescription>
        </AlertDialogHeader>
        <AlertDialogFooter>
          <AlertDialogCancel>Keep account</AlertDialogCancel>
          <AlertDialogAction>Delete account</AlertDialogAction>
        </AlertDialogFooter>
      </AlertDialogContent>
    </AlertDialog>
  );
}

Next steps#

Browse components

Explore the full component library with usage examples and prop references.

Theming

Customize colors and dark mode behavior for your brand.

Was this page helpful?