# web-artifacts-builder
> Build and prototype RawDrive UI components with bundling support. Use for creating standalone component demos, prototyping new features, or building shareable HTML previews.
- Author: EvoClinic Dev
- Repository: veerababumanyam/RawDrive
- Version: 20260122215640
- Stars: 0
- Forks: 0
- Last Updated: 2026-02-06
- Source: https://github.com/veerababumanyam/RawDrive
- Web: https://mule.run/skillshub/@@veerababumanyam/RawDrive~web-artifacts-builder:20260122215640
---
---
name: web-artifacts-builder
aliases: [prototype, bundle, demo, standalone-html, component-demo]
description: Build and prototype RawDrive UI components with bundling support. Use for creating standalone component demos, prototyping new features, or building shareable HTML previews.
---
# RawDrive Component Builder
Tools for building and prototyping RawDrive UI components with standalone bundling.
> **For design patterns**: See the `frontend-design` skill.
> **For design tokens**: See the `design-system` skill.
## Use Cases
| Scenario | Approach |
|----------|----------|
| New component in app | Add to `frontend/src/components/` |
| Prototype/demo | Use this skill to create standalone bundle |
| Quick iteration | Initialize isolated project, bundle when ready |
## Quick Start
### Step 1: Initialize Project
```bash
bash .claude/skills/web-artifacts-builder/scripts/init-artifact.sh my-prototype
cd my-prototype
```
Creates a project with:
- React 18 + TypeScript + Vite
- Tailwind CSS with RawDrive theming
- shadcn/ui components (40+ pre-installed)
- Path aliases (`@/`)
- Parcel bundling configured
### Step 2: Develop Component
Edit files in the project. Use RawDrive patterns:
```typescript
// src/App.tsx
import { AppButton, AppCard } from '@/components/ui';
export default function App() {
return (
New Feature Prototype
Demo content here
Action
);
}
```
### Step 3: Bundle to Single HTML
```bash
bash .claude/skills/web-artifacts-builder/scripts/bundle-artifact.sh
```
Creates `bundle.html` - self-contained HTML with all dependencies inlined.
## RawDrive Design Integration
### Import Design Tokens
```typescript
// Use RawDrive color tokens
// Use brand colors
```
### Use RawDrive Components
The bundled shadcn/ui components match RawDrive's design system:
```typescript
import { Button } from '@/components/ui/button';
import { Card, CardHeader, CardContent } from '@/components/ui/card';
import { Input } from '@/components/ui/input';
import { Badge } from '@/components/ui/badge';
```
### Add Premium Effects
```typescript
// Aurora background (from frontend-design skill)
// Glassmorphism
// Dramatic shadows
```
## Scripts
| Script | Purpose |
|--------|---------|
| `scripts/init-artifact.sh ` | Create new prototype project |
| `scripts/bundle-artifact.sh` | Bundle to single HTML file |
## When to Use This Skill
**Use this skill when:**
- Prototyping a new feature before integrating into RawDrive
- Creating standalone demos for stakeholder review
- Building quick UI experiments
- Need shareable HTML without running dev server
**Don't use when:**
- Building production features (add to `frontend/` directly)
- Need backend integration (use full dev environment)
- Simple component (just create in `frontend/src/components/`)
## Project Structure
After initialization:
```
my-prototype/
├── src/
│ ├── App.tsx # Main component
│ ├── main.tsx # Entry point
│ └── components/
│ └── ui/ # shadcn/ui components
├── index.html
├── tailwind.config.js # RawDrive-compatible config
├── vite.config.ts
└── package.json
```
## Integration Path
When prototype is ready for production:
1. Copy component logic to `frontend/src/components/`
2. Update imports to use RawDrive's actual components
3. Add tests in `frontend/src/test/`
4. Integrate into appropriate page/route
## Design Guidelines
Follow RawDrive design principles:
- Use semantic color tokens (`bg-surface`, not `bg-white`)
- Use `AppButton`, `AppCard` patterns
- Support dark mode (`[data-theme="dark"]`)
- Include hover/focus states
- Follow WCAG 2.1 AA accessibility
See `frontend-design` and `design-system` skills for details.