// Suite of tools for creating Practice Hub UI components and artifacts using the project's design system (React, Tailwind CSS, shadcn/ui, glass-card patterns). Use for building UI components that match Practice Hub's established design patterns and conventions.
| name | artifacts-builder |
| description | Suite of tools for creating Practice Hub UI components and artifacts using the project's design system (React, Tailwind CSS, shadcn/ui, glass-card patterns). Use for building UI components that match Practice Hub's established design patterns and conventions. |
| license | Complete terms in LICENSE.txt |
To build powerful frontend components for Practice Hub, follow these steps:
scripts/init-artifact.shscripts/bundle-artifact.shStack: React 18 + TypeScript + Vite + Parcel (bundling) + Tailwind CSS v4 + shadcn/ui
CRITICAL: ALL components MUST follow these design standards:
glass-card class for all cardsbg-card border stylesrgb(255, 255, 255) light / rgb(30, 41, 59) dark<div className="glass-table"><div className="glass-table">
<Table>...</Table>
</div>
className="min-h-screen bg-gradient-to-b from-slate-200 to-slate-100 dark:from-slate-900 dark:to-slate-800"
#3b82f6 (blue)#f97316 (orange)rgb(255, 255, 255) or rgb(30, 41, 59)Reference these predefined classes from globals.css:
.glass-card - Primary content cards (solid white/dark slate with shadows).glass-subtle - Headers and sidebars.glass-table - Table containersAll checklist-type UI must follow this pattern:
Completed items:
<div className="bg-muted/50 border-green-200 dark:border-green-900 border rounded-lg p-4">
<CheckCircle2 className="h-6 w-6 text-green-600 flex-shrink-0" />
<span className="line-through text-muted-foreground">Task name</span>
</div>
Uncompleted items:
<div className="border-border border rounded-lg p-4">
<Circle className="h-6 w-6 text-muted-foreground hover:text-primary flex-shrink-0 transition-colors" />
<span>Task name</span>
</div>
Always use GlobalHeader and GlobalSidebar components:
<GlobalHeader
title="Module Name"
headerColor="#3b82f6" // Module-specific color
showBackToHome={true} // For non-practice-hub modules
/>
<GlobalSidebar moduleColor="#3b82f6" />
Run the initialization script to create a new React project:
bash scripts/init-artifact.sh <project-name>
cd <project-name>
This creates a fully configured project with:
@/) configuredTo build the artifact, edit the generated files. See Common Development Tasks below for guidance.
To bundle the React app into a single HTML artifact:
bash scripts/bundle-artifact.sh
This creates bundle.html - a self-contained artifact with all JavaScript, CSS, and dependencies inlined. This file can be directly shared in Claude conversations as an artifact.
Requirements: Your project must have an index.html in the root directory.
What the script does:
.parcelrc config with path alias supportFinally, share the bundled HTML file in conversation with the user so they can view it as an artifact.
Note: This is a completely optional step. Only perform if necessary or requested.
To test/visualize the artifact, use available tools (including other Skills or built-in tools like Playwright or Puppeteer). In general, avoid testing the artifact upfront as it adds latency between the request and when the finished artifact can be seen. Test later, after presenting the artifact, if requested or if issues arise.