@reinvented/design 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/SKILL.md +214 -0
- package/package.json +4 -3
- package/skills/apps/analytics.md +103 -0
- package/skills/apps/booking-scheduling.md +97 -0
- package/skills/apps/content-management.md +52 -0
- package/skills/apps/crm.md +80 -0
- package/skills/apps/e-commerce.md +109 -0
- package/skills/apps/education.md +79 -0
- package/skills/apps/finance.md +68 -0
- package/skills/apps/health-fitness.md +72 -0
- package/skills/apps/marketplace.md +99 -0
- package/skills/apps/messaging.md +84 -0
- package/skills/apps/portfolio-personal.md +90 -0
- package/skills/apps/project-management.md +95 -0
- package/skills/apps/saas-dashboard.md +104 -0
- package/skills/apps/social-platform.md +50 -0
- package/skills/blocks/auth.md +106 -0
- package/skills/blocks/communication.md +98 -0
- package/skills/blocks/content.md +107 -0
- package/skills/blocks/data-management.md +109 -0
- package/skills/blocks/data-viz.md +92 -0
- package/skills/blocks/ecommerce.md +126 -0
- package/skills/blocks/feedback.md +97 -0
- package/skills/blocks/filtering.md +127 -0
- package/skills/blocks/marketing.md +136 -0
- package/skills/blocks/media.md +102 -0
- package/skills/blocks/navigation.md +136 -0
- package/skills/blocks/onboarding.md +75 -0
- package/skills/blocks/profiles.md +131 -0
- package/skills/blocks/scheduling.md +117 -0
- package/skills/blocks/settings.md +102 -0
- package/skills/components/advanced-components.md +142 -0
- package/skills/components/avatar.md +92 -0
- package/skills/components/badge.md +105 -0
- package/skills/components/button.md +87 -0
- package/skills/components/card.md +144 -0
- package/skills/components/chart.md +88 -0
- package/skills/components/dialog.md +109 -0
- package/skills/components/dropdown-menu.md +117 -0
- package/skills/components/extended-components.md +187 -0
- package/skills/components/feedback.md +165 -0
- package/skills/components/form.md +112 -0
- package/skills/components/input.md +107 -0
- package/skills/components/map.md +53 -0
- package/skills/components/navigation.md +73 -0
- package/skills/components/overlay.md +77 -0
- package/skills/components/page-header.md +51 -0
- package/skills/components/select.md +175 -0
- package/skills/components/table.md +102 -0
- package/skills/components/tabs.md +105 -0
- package/skills/components/utilities.md +138 -0
- package/skills/devices/desktop.md +43 -0
- package/skills/devices/mobile.md +77 -0
- package/skills/foundation/design-principles.md +77 -0
- package/skills/foundation/design-tokens.md +121 -0
- package/skills/foundation/mockup-generation.md +118 -0
- package/skills/foundation/rules.md +54 -0
- package/skills/foundation/tailwind-usage.md +204 -0
- package/skills/layouts/dashboard.md +71 -0
- package/skills/layouts/full-page-form.md +75 -0
- package/skills/layouts/list-detail.md +70 -0
- package/skills/layouts/marketing.md +70 -0
- package/skills/layouts/responsive.md +67 -0
- package/skills/layouts/settings-page.md +106 -0
- package/skills/layouts/sidebar.md +73 -0
- package/skills/layouts/topbar.md +68 -0
- package/skills/patterns/auth.md +131 -0
- package/skills/patterns/content-display.md +164 -0
- package/skills/patterns/dashboards.md +104 -0
- package/skills/patterns/data-tables.md +113 -0
- package/skills/patterns/empty-states.md +71 -0
- package/skills/patterns/error-states.md +73 -0
- package/skills/patterns/forms.md +136 -0
- package/skills/patterns/loading-states.md +92 -0
- package/skills/patterns/navigation.md +113 -0
- package/skills/patterns/notifications.md +91 -0
- package/skills/patterns/onboarding.md +42 -0
- package/skills/patterns/search.md +55 -0
- package/skills/patterns/settings.md +132 -0
- package/skills/patterns/user-profiles.md +67 -0
- package/skills/personas/business-operator.md +114 -0
- package/skills/personas/consumer-casual.md +60 -0
- package/skills/personas/consumer-power-user.md +109 -0
- package/skills/personas/creative-professional.md +109 -0
- package/skills/personas/enterprise-admin.md +134 -0
- package/skills/visual/color-usage.md +62 -0
- package/skills/visual/dark-mode.md +50 -0
- package/skills/visual/polish-techniques.md +101 -0
- package/skills/visual/spacing-composition.md +69 -0
- package/skills/visual/transitions-animations.md +66 -0
- package/skills/visual/typography-hierarchy.md +66 -0
- package/src/components/blocks/auth/auth-card/AuthCard.tsx +2 -2
- package/src/components/blocks/auth/social-login/SocialLoginGroup.tsx +2 -2
- package/src/components/blocks/auth/two-factor/TwoFactorForm.tsx +4 -4
- package/src/components/blocks/communication/activity-item/ActivityItem.tsx +1 -1
- package/src/components/blocks/communication/activity-item/ActivityItemAvatar.tsx +2 -2
- package/src/components/blocks/communication/activity-item/ActivityItemContent.tsx +1 -1
- package/src/components/blocks/communication/chat-bubble/ChatBubble.tsx +1 -1
- package/src/components/blocks/communication/chat-bubble/ChatBubbleAvatar.tsx +2 -2
- package/src/components/blocks/communication/chat-bubble/ChatBubbleMessage.tsx +1 -1
- package/src/components/blocks/communication/chat-bubble/ChatBubbleTimestamp.tsx +1 -1
- package/src/components/blocks/content/article-header/ArticleHeader.tsx +3 -3
- package/src/components/blocks/content/author-card/AuthorCard.tsx +4 -4
- package/src/components/blocks/content/rich-text/RichTextContent.tsx +1 -1
- package/src/components/blocks/data-management/kanban/KanbanBoard.tsx +1 -1
- package/src/components/blocks/data-management/kanban/KanbanCard.tsx +4 -4
- package/src/components/blocks/data-management/kanban/KanbanColumn.tsx +3 -3
- package/src/components/blocks/data-management/tree-view/TreeItem.tsx +2 -2
- package/src/components/blocks/data-management/tree-view/TreeView.tsx +1 -1
- package/src/components/blocks/data-viz/financial-ticker/FinancialTicker.tsx +1 -1
- package/src/components/blocks/data-viz/kpi-card/KpiCard.tsx +2 -2
- package/src/components/blocks/data-viz/stat-grid/StatGrid.tsx +1 -1
- package/src/components/blocks/ecommerce/pricing-tier/PricingFeatureList.tsx +2 -2
- package/src/components/blocks/ecommerce/pricing-tier/PricingHeader.tsx +2 -2
- package/src/components/blocks/ecommerce/pricing-tier/PricingTier.tsx +2 -2
- package/src/components/blocks/ecommerce/product-card/ProductCard.tsx +2 -2
- package/src/components/blocks/ecommerce/product-card/ProductCardContent.tsx +2 -2
- package/src/components/blocks/ecommerce/product-card/ProductCardImage.tsx +1 -1
- package/src/components/blocks/ecommerce/product-card/ProductCardPrice.tsx +1 -1
- package/src/components/blocks/ecommerce/rating-summary/RatingStars.tsx +1 -1
- package/src/components/blocks/feedback/empty-state/EmptyState.tsx +2 -2
- package/src/components/blocks/feedback/error-state/ErrorState.tsx +2 -2
- package/src/components/blocks/feedback/not-found/NotFoundState.tsx +2 -2
- package/src/components/blocks/filtering/faceted-sidebar/FacetedGroup.tsx +2 -2
- package/src/components/blocks/filtering/faceted-sidebar/FacetedSidebar.tsx +2 -2
- package/src/components/blocks/filtering/filter-bar/FilterBar.tsx +4 -4
- package/src/components/blocks/filtering/search-result/SearchResultItem.tsx +2 -2
- package/src/components/blocks/marketing/cta-block/CtaBlock.tsx +2 -2
- package/src/components/blocks/marketing/feature-grid/FeatureGrid.tsx +1 -1
- package/src/components/blocks/marketing/hero-section/HeroSection.tsx +3 -3
- package/src/components/blocks/marketing/testimonial-card/TestimonialCard.tsx +3 -3
- package/src/components/blocks/media/call-controls/CallControlButton.tsx +3 -3
- package/src/components/blocks/media/call-controls/CallControls.tsx +1 -1
- package/src/components/blocks/media/media-player/MediaPlayer.tsx +1 -1
- package/src/components/blocks/media/media-player/MediaPlayerControls.tsx +1 -1
- package/src/components/blocks/media/media-player/MediaPlayerScrubber.tsx +1 -1
- package/src/components/blocks/media/media-player/MediaPlayerVideo.tsx +1 -1
- package/src/components/blocks/navigation/app-sidebar/AppSidebar.tsx +2 -2
- package/src/components/blocks/navigation/app-sidebar/NavItem.tsx +1 -1
- package/src/components/blocks/navigation/context-switcher/ContextSwitcher.tsx +3 -3
- package/src/components/blocks/navigation/top-navbar/TopNavbar.tsx +2 -2
- package/src/components/blocks/onboarding/onboarding-welcome/OnboardingWelcome.tsx +3 -3
- package/src/components/blocks/onboarding/step-wizard/StepWizard.tsx +1 -1
- package/src/components/blocks/profiles/connection-list/ConnectionItem.tsx +3 -3
- package/src/components/blocks/profiles/connection-list/ConnectionList.tsx +1 -1
- package/src/components/blocks/profiles/profile-header/ProfileHeader.tsx +3 -3
- package/src/components/blocks/profiles/profile-stats/ProfileStats.tsx +1 -1
- package/src/components/blocks/scheduling/booking-slot/BookingSlot.tsx +1 -1
- package/src/components/blocks/scheduling/event-card/EventCard.tsx +3 -3
- package/src/components/blocks/scheduling/timeline-row/TimelineRow.tsx +2 -2
- package/src/components/blocks/settings/billing-usage/BillingUsage.tsx +3 -3
- package/src/components/blocks/settings/integration-card/IntegrationCard.tsx +5 -5
- package/src/components/blocks/settings/settings-section/SettingsSection.tsx +1 -1
- package/src/components/ui/accordion.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +2 -2
- package/src/components/ui/alert.tsx +1 -1
- package/src/components/ui/avatar.tsx +1 -1
- package/src/components/ui/badge.tsx +7 -1
- package/src/components/ui/breadcrumb.tsx +1 -1
- package/src/components/ui/button.tsx +8 -1
- package/src/components/ui/calendar.tsx +2 -2
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/carousel.tsx +2 -2
- package/src/components/ui/chart.tsx +1 -1
- package/src/components/ui/checkbox.tsx +1 -1
- package/src/components/ui/command.tsx +2 -2
- package/src/components/ui/component-placeholder.tsx +1 -1
- package/src/components/ui/context-menu.tsx +1 -1
- package/src/components/ui/dialog.tsx +1 -1
- package/src/components/ui/drawer.tsx +1 -1
- package/src/components/ui/dropdown-menu.tsx +1 -1
- package/src/components/ui/form.tsx +2 -2
- package/src/components/ui/hover-card.tsx +1 -1
- package/src/components/ui/input-otp.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/menubar.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +1 -1
- package/src/components/ui/pagination.tsx +2 -2
- package/src/components/ui/popover.tsx +1 -1
- package/src/components/ui/progress.tsx +1 -1
- package/src/components/ui/radio-group.tsx +1 -1
- package/src/components/ui/resizable.tsx +1 -1
- package/src/components/ui/scroll-area.tsx +1 -1
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/separator.tsx +1 -1
- package/src/components/ui/sheet.tsx +1 -1
- package/src/components/ui/skeleton.tsx +1 -1
- package/src/components/ui/slider.tsx +1 -1
- package/src/components/ui/sonner.tsx +13 -6
- package/src/components/ui/switch.tsx +1 -1
- package/src/components/ui/table.tsx +1 -1
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toast.tsx +1 -1
- package/src/components/ui/toaster.tsx +1 -1
- package/src/components/ui/toggle-group.tsx +2 -2
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/hooks/use-toast.ts +1 -1
- package/src/styles/tokens.css +1 -1
- package/DESIGN_GUIDE.md +0 -148
|
@@ -3,7 +3,7 @@ import * as ToastPrimitives from "@radix-ui/react-toast"
|
|
|
3
3
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
4
4
|
import { X } from "lucide-react"
|
|
5
5
|
|
|
6
|
-
import { cn } from
|
|
6
|
+
import { cn } from '../../lib/utils'
|
|
7
7
|
|
|
8
8
|
const ToastProvider = ToastPrimitives.Provider
|
|
9
9
|
|
|
@@ -4,8 +4,8 @@ import * as React from "react"
|
|
|
4
4
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group"
|
|
5
5
|
import { type VariantProps } from "class-variance-authority"
|
|
6
6
|
|
|
7
|
-
import { cn } from
|
|
8
|
-
import { toggleVariants } from
|
|
7
|
+
import { cn } from '../../lib/utils'
|
|
8
|
+
import { toggleVariants } from './toggle"
|
|
9
9
|
|
|
10
10
|
const ToggleGroupContext = React.createContext<
|
|
11
11
|
VariantProps<typeof toggleVariants>
|
|
@@ -4,7 +4,7 @@ import * as React from "react"
|
|
|
4
4
|
import * as TogglePrimitive from "@radix-ui/react-toggle"
|
|
5
5
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
6
6
|
|
|
7
|
-
import { cn } from
|
|
7
|
+
import { cn } from '../../lib/utils'
|
|
8
8
|
|
|
9
9
|
const toggleVariants = cva(
|
|
10
10
|
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",
|
package/src/hooks/use-toast.ts
CHANGED
package/src/styles/tokens.css
CHANGED
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
.dark {
|
|
107
107
|
--background: 240 10% 3.9%;
|
|
108
108
|
--foreground: 0 0% 98%;
|
|
109
|
-
--card: 240 10%
|
|
109
|
+
--card: 240 10% 6.5%; /* elevated surface — distinctly lighter than bg */
|
|
110
110
|
--card-foreground: 0 0% 98%;
|
|
111
111
|
--popover: 240 10% 3.9%;
|
|
112
112
|
--popover-foreground: 0 0% 98%;
|
package/DESIGN_GUIDE.md
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
# Reinvented Design Guide
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
The Reinvented design system uses **Shadcn-vue** components with custom **Radix-vue** primitives,
|
|
5
|
-
**Tailwind CSS** for styling, and **Lucide** icons. All UI surfaces share this consistent foundation.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Typography
|
|
10
|
-
|
|
11
|
-
| Token | Size | Weight | Use |
|
|
12
|
-
|---------------|--------|----------|------------------------|
|
|
13
|
-
| `text-xs` | 12px | 400 | Timestamps, captions |
|
|
14
|
-
| `text-sm` | 14px | 400–500 | Body text, labels |
|
|
15
|
-
| `text-base` | 16px | 400 | Default body |
|
|
16
|
-
| `text-lg` | 18px | 600 | Section headings |
|
|
17
|
-
| `text-xl` | 20px | 600 | Page subtitles |
|
|
18
|
-
| `text-2xl` | 24px | 700 | Page titles |
|
|
19
|
-
| `text-3xl` | 30px | 700 | Hero text |
|
|
20
|
-
|
|
21
|
-
**Font:** Inter (loaded via Google Fonts).
|
|
22
|
-
**Line height:** Use `leading-tight` (1.25) for headings, `leading-normal` (1.5) for body.
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Colors
|
|
27
|
-
|
|
28
|
-
Our brand color is **purple** (`hsl(252 100% 63%)`).
|
|
29
|
-
|
|
30
|
-
| Token | Light | Dark | Use |
|
|
31
|
-
|-----------------|-------------------|-------------------|------------------------|
|
|
32
|
-
| `primary` | Purple 63% | Purple 69% | Buttons, links, focus |
|
|
33
|
-
| `secondary` | Zinc 96% | Zinc 16% | Secondary actions |
|
|
34
|
-
| `muted` | Zinc 96% | Zinc 16% | Backgrounds, disabled |
|
|
35
|
-
| `destructive` | Red 60% | Red 31% | Delete, errors |
|
|
36
|
-
| `success` | Green 36% | Green 45% | Confirmations |
|
|
37
|
-
| `warning` | Amber 50% | Amber 55% | Alerts |
|
|
38
|
-
| `info` | Blue 60% | Blue 65% | Information |
|
|
39
|
-
|
|
40
|
-
**Usage rules:**
|
|
41
|
-
- Never hardcode colors — always use `hsl(var(--token))`
|
|
42
|
-
- Use `text-muted-foreground` for secondary text (not arbitrary gray)
|
|
43
|
-
- Apply `bg-card` for card surfaces, `bg-background` for page backgrounds
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Spacing
|
|
48
|
-
|
|
49
|
-
Based on **4px increments**. Use Tailwind utilities:
|
|
50
|
-
|
|
51
|
-
| Class | Value | Use |
|
|
52
|
-
|----------|-------|----------------------------|
|
|
53
|
-
| `gap-1` | 4px | Icon-to-text gap |
|
|
54
|
-
| `gap-2` | 8px | Between small elements |
|
|
55
|
-
| `gap-3` | 12px | Between form fields |
|
|
56
|
-
| `gap-4` | 16px | Section spacing |
|
|
57
|
-
| `gap-6` | 24px | Between major sections |
|
|
58
|
-
| `p-4` | 16px | Standard padding |
|
|
59
|
-
| `p-6` | 24px | Card padding |
|
|
60
|
-
| `px-4` | 16px | Page horizontal padding |
|
|
61
|
-
|
|
62
|
-
**Rules:**
|
|
63
|
-
- Always use spacing tokens, never arbitrary values
|
|
64
|
-
- Vertical rhythm: Use `gap-4` or `gap-6` for stacking sections
|
|
65
|
-
- Horizontal rhythm: Use `gap-2` or `gap-3` for inline elements
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Icons
|
|
70
|
-
|
|
71
|
-
- **Library:** Lucide Vue Next (`lucide-vue-next`)
|
|
72
|
-
- **NO emojis** anywhere in the UI
|
|
73
|
-
- Default icon size: `16px` (`w-4 h-4`)
|
|
74
|
-
- In buttons/nav: `w-4 h-4`
|
|
75
|
-
- In empty states: `w-12 h-12` with `text-muted-foreground`
|
|
76
|
-
- Always use `stroke-width="2"` (Lucide default)
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Shadows & Borders
|
|
81
|
-
|
|
82
|
-
| Token | CSS | Use |
|
|
83
|
-
|-------------|-------------------------------|----------------------------|
|
|
84
|
-
| `shadow-sm` | Subtle 1px shadow | Cards, buttons |
|
|
85
|
-
| `shadow-md` | Medium depth | Dropdowns, popovers |
|
|
86
|
-
| `shadow-lg` | Strong depth | Modals, dialogs |
|
|
87
|
-
| `rounded-md`| `calc(var(--radius) - 2px)` | Inputs, small elements |
|
|
88
|
-
| `rounded-lg`| `var(--radius)` (10px) | Cards, containers |
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Component Guidelines
|
|
93
|
-
|
|
94
|
-
### When to use existing components
|
|
95
|
-
Always check `@reinvented/design` first:
|
|
96
|
-
```ts
|
|
97
|
-
import { Button, Card, Input, Avatar, Badge } from '@reinvented/design'
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### Using Radix primitives
|
|
101
|
-
For Dialog, DropdownMenu, Tabs, Tooltip, PopoverSelect, etc.:
|
|
102
|
-
```ts
|
|
103
|
-
import { Dialog, DialogTrigger, DialogContent, DialogTitle } from '@reinvented/design'
|
|
104
|
-
```
|
|
105
|
-
Style them using `cn()` and Tailwind:
|
|
106
|
-
```vue
|
|
107
|
-
<DialogContent :class="cn('fixed inset-0 z-50 flex items-center justify-center')">
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Building new components
|
|
111
|
-
1. Create in `packages/ds/src/components/ui/<name>/`
|
|
112
|
-
2. Use `cn()` for class merging
|
|
113
|
-
3. Accept `class` prop for customization
|
|
114
|
-
4. Use design tokens (never hardcode colors)
|
|
115
|
-
5. Export from barrel (`src/index.ts`)
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Page Patterns
|
|
120
|
-
|
|
121
|
-
Import from `@reinvented/design/patterns/*`:
|
|
122
|
-
|
|
123
|
-
| Pattern | Use |
|
|
124
|
-
|--------------|----------------------------------------------|
|
|
125
|
-
| `ListView` | Lists with search, filters, items |
|
|
126
|
-
| `DetailView` | Detail pages with hero, tabs, content |
|
|
127
|
-
| `FormView` | Forms with validation and submit |
|
|
128
|
-
| `EmptyState` | Centered empty state with icon and CTA |
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Dark Mode
|
|
133
|
-
|
|
134
|
-
- Controlled via `.dark` class on `<html>` or `<body>`
|
|
135
|
-
- All tokens automatically switch in dark mode
|
|
136
|
-
- Test both modes when building surfaces
|
|
137
|
-
- Use `dark:` prefix sparingly — prefer CSS variable-driven theming
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Do NOT
|
|
142
|
-
|
|
143
|
-
- Use `alert()`, `confirm()`, or `prompt()` — use Dialog/AlertDialog
|
|
144
|
-
- Use emojis — use Lucide icons
|
|
145
|
-
- Hardcode colors — use CSS variables
|
|
146
|
-
- Use arbitrary Tailwind values (e.g., `text-[#333]`) — use tokens
|
|
147
|
-
- Create split-screen layouts — use single-column responsive design
|
|
148
|
-
- Use `@apply` excessively — prefer utility classes in templates
|