pixelplay 1.0.15 → 1.1.3
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/CHANGELOG.md +200 -61
- package/README.md +91 -91
- package/dist/index.js +116 -68
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +138 -90
- package/dist/index.mjs.map +1 -1
- package/dist/server.js.map +1 -1
- package/dist/server.mjs.map +1 -1
- package/package.json +75 -80
package/CHANGELOG.md
CHANGED
|
@@ -1,61 +1,200 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to **PixelPlay UI** are documented here.
|
|
4
|
-
|
|
5
|
-
This project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## [1.
|
|
10
|
-
|
|
11
|
-
### Added
|
|
12
|
-
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
- **`
|
|
16
|
-
- **`
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- **
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- **
|
|
29
|
-
- **
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- **
|
|
42
|
-
- **
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to **PixelPlay UI** are documented here.
|
|
4
|
+
|
|
5
|
+
This project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## [1.1.3] — 2026-04-06
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **`SectionHeader` chat variant** (`widgets/section-header`): New `variant="chat"` - sticky header for chat detail panels with large avatar, name, status badge, action buttons, and trailing menu
|
|
14
|
+
- **`InfoCard` chat-list variant** (`widgets/info-card`): New `variant="chat-list"` - scrollable conversation list panel with search input, unread indicators, avatar with online status, message preview, and timestamp
|
|
15
|
+
- **`InfoCard` showcase variant** (`widgets/info-card`): New `variant="showcase"` - case-study card with image, stats grid, and link overlay (replaces `WebsiteCaseStudyCard`)
|
|
16
|
+
- **`HeroSection` showcase variant** (`widgets/hero-section`): New `variant="showcase"` - case-study hero with large title, subtitle, description, stat chips, and full-bleed background image (replaces `WebsiteCaseStudyHero`)
|
|
17
|
+
- **New generic widgets**: `content-section`, `text-block`, `media-section` (exports `MediaFullImage`, `MediaDualImage`, `MediaVideo`), `diagram-section`, `showcase-grid` - generic reusable widgets extracted from case-study-specific components
|
|
18
|
+
- **Messaging example page** (`messaging-01`): Full chat application layout with sidebar nav, chat list (`InfoCard variant="chat-list"`), chat detail panel (`SectionHeader variant="chat"`), `ChatMessage` bubbles, typing indicator, file attachments, reactions, and day dividers
|
|
19
|
+
- **Listing example pages** (`listing-03`, `listing-04`, `listing-05`): Three new listing layouts - listing-03 (team member directory table with avatar, role, and status columns), listing-04 (blog/article grid with category filters and featured post), listing-05 (team directory with search, role filters, and detailed member cards)
|
|
20
|
+
- **Messaging examples docs page** (`/ui-kit/examples/messaging`): Docs page listing and previewing the messaging example
|
|
21
|
+
- **Messaging nav entry**: "Email & Messaging" link added to the Examples section in the docs sidebar (`DocsLayoutShell`)
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **Deprecated widget consolidation**: Removed 9 standalone widget folders (`website-case-study-hero`, `website-case-study-card`, `website-case-study-content`, `website-case-study-text-block`, `website-case-study-images`, `website-case-study-diagram`, `website-case-studies-grid`, `chat-header`, `chat-list`) - functionality merged into generic widgets and variant-based components
|
|
26
|
+
- **Case study pages**: All 3 case-study pages (`digital-diagramming`, `no-code-app-builder`, `personal-finance-webapp`) updated to use new generic widgets (`HeroSection`, `ContentSection`, `TextBlock`, `MediaFullImage`, `MediaDualImage`, `MediaVideo`, `DiagramSection`)
|
|
27
|
+
- **Work pages**: All 4 work pages (`core-fitness-app`, `brainstorming-app`, `gelato-glam-delivery-app`, `kish-coach`) updated to use new generic widget names
|
|
28
|
+
- **Homepage**: `WebsiteCaseStudiesGrid` replaced with `ShowcaseGrid`
|
|
29
|
+
- **Docs demo pages**: All case-study component docs updated to import from new widget paths
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## [1.1.2] — 2026-04-06
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **`CompanyLogo` component** (`shared/ui/company-logo`): New shared component for company/brand marks — renders a logo image with a coloured initials fallback. Supports 5 sizes (`xs`–`xl`), two shapes (`square`/`rectangle`), 4 radius options, and 12 colour variants (including `--graphic-1` through `--graphic-8` categorical tokens). Exported from `shared/ui/index.ts`
|
|
38
|
+
- **`InfoCard` widget** (`widgets/info-card`): New multi-variant card widget. Variants: `default` (section card with header/body/footer slots and optional menu button), `horizontal` (property listing card with image, star rating, amenities, and price — vertical on mobile, row at xl), `post` (blog/article card with gradient/image banner, author, tags, and social action buttons), `action` (compact pressable card with icon button and description), `stat` (icon + label + value stat card with optional footer slot)
|
|
39
|
+
- **`MapEmbed` widget** (`widgets/map`): New `MapEmbed` component that wraps an `<iframe>` map embed with dark-mode support — auto-applies a CSS invert filter when no `darkSrc` is provided
|
|
40
|
+
- **Listing example pages**: Two new full-page listing layouts — `listing-01` (property search results with sticky sidebar nav, filter bar, horizontal `InfoCard` listing cards, sticky map panel, and pagination) and `listing-02` (remote job board with slim icon sidebar, search/filter controls, scrollable job card list with `CompanyLogo` and `Badge`, and a sticky job detail panel)
|
|
41
|
+
- **Listing examples docs page** (`/ui-kit/examples/listing`): Docs page listing and previewing both listing examples with descriptions
|
|
42
|
+
- **Listing nav entry**: "Listing" link added to the Examples section in the docs sidebar (`DocsLayoutShell`)
|
|
43
|
+
- **`CompanyLogo` docs page** (`/ui-kit/components/company-logo`): Full component documentation — real logos, initials fallback, sizes, shapes, and radius options; also added "Company logo" nav entry in docs sidebar
|
|
44
|
+
- **`Card` docs page expanded**: New sections for Horizontal layout (`InfoCard variant="horizontal"`), Action card, Post card, Gradient header, Card grid, and Compact card patterns; also added "Card" nav entry in docs sidebar
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
|
|
48
|
+
- **`Tag` lg size**: Updated typography — `text-base font-medium leading-6` (was `text-sm`), `rounded-lg` (was `rounded-md`), `px-3.5` (was `px-3`), dot `h-2.5 w-2.5` (was `h-2 w-2`)
|
|
49
|
+
- **`Card` default shadow**: Changed default `shadow` prop from `"md"` to `"xs"` for a subtler card elevation
|
|
50
|
+
- **`Checkbox` hit area**: Input element repositioned from `inset-0` to `top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2` with `min-h-10 min-w-10` (sm) / `min-h-12 min-w-12` for reliable 44px+ touch targets
|
|
51
|
+
- **`Toggle` hit area**: Added `before:` pseudo-element inset (`-inset-[10px]` for sm, `-inset-3` for default) to expand the tap/click area to minimum touch target size
|
|
52
|
+
- **`dashboards-01`**: Replaced inline `<Card>` + raw action/post markup with `InfoCard variant="action"` and `InfoCard variant="post"` widget
|
|
53
|
+
- **`dashboards-04`**: Replaced manual chart card header markup with `InfoCard variant="default"` widget for all four chart sections
|
|
54
|
+
- **`dashboards-05`**: Replaced manual card markup for "Active users", "How do you acquire users?", and "Channel breakdown" sections with `InfoCard variant="default"`
|
|
55
|
+
- **`dashboards-06`**: Replaced local `SavingsGoalCard` sub-component and inline chart card markup with `InfoCard variant="stat"` and `InfoCard variant="default"`; `SavingsGoalCard` function removed
|
|
56
|
+
- **Surface container tokens** (`build-custom-theme.ts`): Adjusted container level step sizes for both light and dark modes — `low/mid/high/highest` now each step one shade further from the base surface, giving better visual layering across container elevation levels
|
|
57
|
+
- **`calendar-01` / `calendar-03` sticky header**: Removed `border-b border-[var(--outline-variant)]` from the sticky `<header>` element
|
|
58
|
+
- **`calendar-02` profile page header**: Wrapped `PageHeader` in `px-2 pt-2` container; updated tab row to add `lg:pb-4` bottom padding
|
|
59
|
+
- **`next.config.ts`**: Added `i.pravatar.cc` to allowed Next.js image hostnames
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## [1.1.1] — 2026-04-04
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
|
|
67
|
+
- **Calendar example pages**: Three new full-page calendar layouts — `calendar-01` (monthly view with collapsible sidebar and colour-coded event chips), `calendar-02` (weekly time-grid with rich event detail slideout), and `calendar-03` (daily time-grid for focused day planning)
|
|
68
|
+
- **Calendar examples docs page**: `/ui-kit/examples/calendar/` — docs page listing and previewing all three calendar examples with descriptions
|
|
69
|
+
- **Calendar nav entry**: "Calendar" link added to the Examples section in the docs sidebar (`DocsLayoutShell`)
|
|
70
|
+
- **Calendar examples index**: Calendar added to the examples overview page alongside Dashboards, Settings, and Auth
|
|
71
|
+
- **Rich event detail slideout** (calendar-02): Clicking any event opens a `SlideoutMenu` with colour-gradient header, tags, organiser avatar, time/location/reminder/description rows, guest list with RSVP counts and `Badge` status per guest, file attachments with type-coloured icons, and Edit/Join footer actions
|
|
72
|
+
- **Dynamic event dates** (calendar-02): Events always appear in the current week (Mon–Fri) using `getMondayOfWeek()` and `weekDay(offset)` helpers — no stale hardcoded dates
|
|
73
|
+
- **Compact event cards**: Week/day view renders short events (≤30 min) in a single-line compact layout (`py-0.5`, title · time) to prevent content overflow at small card heights
|
|
74
|
+
|
|
75
|
+
### Changed
|
|
76
|
+
|
|
77
|
+
- **Calendar event colors — dark mode**: Replaced all hardcoded `--utility-*` color tokens in `colorMap` and `cardColorMap` with theme-adaptive graphic tokens (`--graphic-N-container`, `--on-graphic-N-container`, `--graphic-N`). Event colors now correctly adapt to dark mode and custom brand themes
|
|
78
|
+
- **ViewDropdown positioning**: Changed from `absolute` to `position: fixed` with `getBoundingClientRect()` on open — escapes `overflow: hidden` on the calendar root so the dropdown is never clipped by sticky headers
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
|
|
82
|
+
- **Breadcrumb whitespace**: Removed extra space in `<div >` opening tag on docs page
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## [1.1.0] — 2026-04-03
|
|
87
|
+
|
|
88
|
+
### Added
|
|
89
|
+
|
|
90
|
+
- **Theme generator**: Full-featured live theme generator page with accent picker, harmony selector, font selector, roundness presets, and surface tint controls — changes apply site-wide in real time
|
|
91
|
+
- **Color harmony engine** (`color-harmony.ts`): Six standard color harmonies — monochromatic, complementary, split-complementary, analogous, triadic, and tetradic — with gap-bisection algorithm for 10-slot graphic palette distribution
|
|
92
|
+
- **Custom theme builder** (`build-custom-theme.ts`): Generates full token sets (primary, secondary, tertiary, surfaces, graphics) from accent + harmony + options; shade-level differentiation for triadic vs other harmonies
|
|
93
|
+
- **Toolbar component**: Reusable `Toolbar` with `floating`/`fixed` variants, `showLabels` prop (`"above"` | `"side"`), `ToolbarDivider`, and `useToolbarLabels()` context hook
|
|
94
|
+
- **Toolbar docs page**: Component documentation with interactive demos for variant, size, and label placement
|
|
95
|
+
- **Export panel**: TypeScript and CSS export formats for generated themes with one-click copy
|
|
96
|
+
- **Split-complementary harmony**: ±30° from complement (150° and 210° from primary hue)
|
|
97
|
+
- **Getting started page**: Expanded documentation with setup instructions
|
|
98
|
+
|
|
99
|
+
### Changed
|
|
100
|
+
|
|
101
|
+
- **Harmony naming**: Renamed to standard color theory terms — single-tone → monochromatic, contrast → complementary, neighbors → analogous, balanced → triadic, vibrant → tetradic
|
|
102
|
+
- **Default theme**: Changed from Inkwell to Rosewood
|
|
103
|
+
- **Graphic palette algorithm**: Replaced fixed 30° hue stepping with gap-bisection algorithm so chart colors adapt to each harmony's unique hue distribution
|
|
104
|
+
- **Triadic shade differentiation**: Triadic harmony uses softer shades (500 vs 600 light, 300 vs 400 dark) to visually distinguish from tetradic
|
|
105
|
+
- **Toolbar positioning**: Removed built-in `fixed` positioning from Toolbar component — positioning is now consumer-controlled via `className`, making the component composable in any layout context
|
|
106
|
+
- **Select dropdown positioning**: Replaced `useEffect` + `setState` with `useCallback`-based toggle to fix React `setState` in effect warning
|
|
107
|
+
- **DocsLayoutShell padding**: Reduced mobile padding (`px-3 py-6 sm:px-6 sm:py-10`) to prevent compounding with page-level padding
|
|
108
|
+
- **npm package**: Restructured with `tsup` bundler, added license validation, server utilities, and CSS generation script
|
|
109
|
+
|
|
110
|
+
### Fixed
|
|
111
|
+
|
|
112
|
+
- **Build error**: Added missing `"use client"` directive to Toolbar component
|
|
113
|
+
- **Select dropdown clipping**: Added `pb-72` to dropdown preview containers for overflow room
|
|
114
|
+
- **Toolbar swatch clipping**: Added `overflow-visible` to prevent border-radius from clipping ring/scale effects on accent swatches
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## [1.0.5–1.0.15] — 2026-04-01 to 2026-04-03
|
|
119
|
+
|
|
120
|
+
> These versions were published directly to npm and are not individually documented in the changelog. No git tags exist for this range.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## [1.0.4] — 2026-04-01
|
|
125
|
+
|
|
126
|
+
### Added
|
|
127
|
+
|
|
128
|
+
- **Settings examples**: Added `settings-02` (Password & Sessions), `settings-03` (Appearance), and `settings-04` (Billing) to the examples index
|
|
129
|
+
- **Settings — Billing (`settings-04`)**: Plan selector radio cards (Basic/Business/Enterprise) and invoice history DataTable with selectable rows, status badges, and per-row download actions
|
|
130
|
+
- **Auth examples**: Added `auth-05` (Verification — check your email), `auth-06` (Verification — enter OTP code), `auth-07` (Verification — email verified), `auth-08` (Forgot password — email entry), `auth-09` (Forgot password — set new password), and `auth-10` (Forgot password — password reset)
|
|
131
|
+
- **Avatar**: New `3xl` size (96 px) added to `AvatarSize` type and `SIZE_MAP`
|
|
132
|
+
- **OptionCard widget**: New widget and docs page added to component library navigation
|
|
133
|
+
|
|
134
|
+
### Changed
|
|
135
|
+
|
|
136
|
+
- **Avatar**: `AvatarSize` type expanded with `3xl`; docs updated from 7 to 8 sizes
|
|
137
|
+
- **PageHeader** (cover + left avatar variant): Removed bottom border, upgraded avatar from `2xl` to `3xl`, tightened overlap offset, and added responsive horizontal padding to the info row
|
|
138
|
+
- **SidebarNavFeatureCard**: Removed `flex-col` from container so children control their own layout independently of the close button; action buttons updated from `ghost` to `bordered` variant
|
|
139
|
+
|
|
140
|
+
### Fixed
|
|
141
|
+
|
|
142
|
+
- **SidebarNavFeatureCard**: Close button is now absolutely positioned so it never overlaps child content
|
|
143
|
+
- **SidebarNavFeatureCard**: Replaced hand-drawn SVG close icon with `X` from `react-feather`
|
|
144
|
+
- **SidebarNavFooter**: Removed stale `padding-right` workaround that was shifting all content rightward
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## [1.0.3] — 2026-04-01
|
|
149
|
+
|
|
150
|
+
### Added
|
|
151
|
+
|
|
152
|
+
- **Auth examples**: `auth-03` (split-screen sign-in with testimonial carousel) and `auth-04` (split-screen sign-in with image only)
|
|
153
|
+
- **Sign-up examples**: `signup-01` (centered email + social), `signup-02` (header + tabs), `signup-03` (split-screen + testimonial carousel), `signup-04` (split-screen + image only)
|
|
154
|
+
- **`SplitImagePanel` widget**: New generic widget accepting any overlay content as `children`. Replaces the testimonial-specific panel. Supports image-only mode or any custom JSX overlay
|
|
155
|
+
- **`SplitImagePanel` docs page**: Component documentation with three demo sections — image only, with overlay content, and with navigation carousel
|
|
156
|
+
|
|
157
|
+
### Changed
|
|
158
|
+
|
|
159
|
+
- **Sidebar nav**: Renamed "Auth testimonial panel" entry to "Split image panel" with updated href
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## [1.0.2] — 2026-04-01
|
|
164
|
+
|
|
165
|
+
### Changed
|
|
166
|
+
|
|
167
|
+
- **Feature section grid**: Updated to 4-column layout on large screens
|
|
168
|
+
- **Feature section images**: Full-width responsive images replacing aspect-ratio crop — no content is clipped
|
|
169
|
+
- **Feature section images**: Added primary-colored overlay with `mix-blend-color` tint for grayscale thumbnails
|
|
170
|
+
- **Dark mode image previews**: Boosted brightness and reduced overlay opacity for better visibility in dark mode
|
|
171
|
+
- **Example preview containers**: Replaced raw Tailwind color scales with theme tokens for dark mode consistency
|
|
172
|
+
- **Dark mode scrim token**: Changed from opaque black to subtle white tint across all themes (default, Rosewood, Botanica, Inkwell)
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## [1.0.1] — 2026-04-01
|
|
177
|
+
|
|
178
|
+
### Added
|
|
179
|
+
|
|
180
|
+
- **Dashboard examples**: New dashboard variants (`dashboards-05`, `dashboards-06`) — analytics/map dashboard and personal finance dashboard
|
|
181
|
+
- **Country icon set**: Added `CountryFlag` component for displaying country flag icons
|
|
182
|
+
|
|
183
|
+
### Fixed
|
|
184
|
+
|
|
185
|
+
- **Button `isIconOnly`**: Icon-only buttons now correctly render `children` — previously only `startContent`/`endContent` were visible, leaving icon-only buttons empty
|
|
186
|
+
- **Button hover visibility**: Improved hover background tokens for `ghost`, `bordered`, and `light` variants (default color) — hover state is now clearly visible against surface backgrounds
|
|
187
|
+
- Removed stale `import { start } from "repl"` in Button component
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## [1.0.0] — 2026-03-30
|
|
192
|
+
|
|
193
|
+
### Added
|
|
194
|
+
|
|
195
|
+
- Initial public release of PixelPlay UI
|
|
196
|
+
- Base components: `Button`, `ButtonGroup`, `Input`, `Textarea`, `Badge`, `BadgeGroup`, `Tag`, `Card`, `Spinner`, `Avatar`, `SocialButton`, `StoreButton`, `DropdownMenu`, `Select`, `Toggle`, `Checkbox`, `CheckboxGroup`, `Progress`, `CircularProgress`, `Slider`, `Tooltip`
|
|
197
|
+
- Application components: `Modal`, `Chart`, `Pagination`, `Messaging`, `DataTable`, `Tabs`, `Breadcrumb`, `Alert`, `Toast`, `DatePicker`, `Calendar`, `FileTypeIcon`, `FileUpload`
|
|
198
|
+
- Full TypeScript type definitions
|
|
199
|
+
- Tailwind CSS 4 theme token system with light/dark mode support
|
|
200
|
+
- Three built-in themes: Rosewood, Botanica, Inkwell
|
package/README.md
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
# PixelPlay UI
|
|
2
|
-
|
|
3
|
-
> A scalable React component library with production-ready components, layouts, and themes for SaaS products.
|
|
4
|
-
|
|
5
|
-
Built by [Dennis Isaac](https://dennisisaac.com) · [Live Docs](https://dennisisaac.com/ui-kit)
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install pixelplay
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
yarn add pixelplay
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
pnpm add pixelplay
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Requirements
|
|
24
|
-
|
|
25
|
-
- React 18+
|
|
26
|
-
- Tailwind CSS 4+
|
|
27
|
-
- TypeScript 5+ (recommended)
|
|
28
|
-
|
|
29
|
-
## Quick Start
|
|
30
|
-
|
|
31
|
-
```tsx
|
|
32
|
-
import { Button, Badge, Avatar, Input } from "pixelplay";
|
|
33
|
-
|
|
34
|
-
export function MyComponent() {
|
|
35
|
-
return (
|
|
36
|
-
<div>
|
|
37
|
-
<Avatar name="Dennis Isaac" size="md" />
|
|
38
|
-
<Badge color="purple">New</Badge>
|
|
39
|
-
<Button color="primary" variant="solid">Get Started</Button>
|
|
40
|
-
</div>
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Theme Setup
|
|
46
|
-
|
|
47
|
-
Add the PixelPlay theme tokens to your global CSS:
|
|
48
|
-
|
|
49
|
-
```css
|
|
50
|
-
@import "pixelplay/styles";
|
|
51
|
-
|
|
52
|
-
:root {
|
|
53
|
-
/* Override theme tokens as needed */
|
|
54
|
-
--primary: oklch(55% 0.22 264);
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Components
|
|
59
|
-
|
|
60
|
-
| Component | Description |
|
|
61
|
-
|-----------|-------------|
|
|
62
|
-
| `Button` | Versatile button with variants, sizes, and states |
|
|
63
|
-
| `Input` | Text input with labels, validation, and add-ons |
|
|
64
|
-
| `Badge` | Status and label badges with colors |
|
|
65
|
-
| `Avatar` | User avatars with initials, images, and status |
|
|
66
|
-
| `Card` | Content container with header, body, and footer |
|
|
67
|
-
| `Toggle` | Boolean toggle switch |
|
|
68
|
-
| `Checkbox` | Checkbox with variants and groups |
|
|
69
|
-
| `Select` | Dropdown select with search |
|
|
70
|
-
| `Slider` | Range slider with dual handles |
|
|
71
|
-
| `Tooltip` | Contextual tooltips |
|
|
72
|
-
| `Modal` | Dialog modals |
|
|
73
|
-
| `Spinner` | Loading indicators |
|
|
74
|
-
| `Tag` | Dismissable tags |
|
|
75
|
-
| `Progress` | Progress bars and circular indicators |
|
|
76
|
-
|
|
77
|
-
[View all components →](https://dennisisaac.com/ui-kit)
|
|
78
|
-
|
|
79
|
-
## Versioning
|
|
80
|
-
|
|
81
|
-
PixelPlay UI follows [Semantic Versioning](https://semver.org/):
|
|
82
|
-
|
|
83
|
-
- **Patch** (`x.x.1`) — bug fixes and minor adjustments
|
|
84
|
-
- **Minor** (`x.1.0`) — new components, non-breaking additions
|
|
85
|
-
- **Major** (`1.0.0`) — breaking API changes
|
|
86
|
-
|
|
87
|
-
See [CHANGELOG.md](./CHANGELOG.md) for the full release history.
|
|
88
|
-
|
|
89
|
-
## License
|
|
90
|
-
|
|
91
|
-
MIT © [Dennis Isaac](https://dennisisaac.com)
|
|
1
|
+
# PixelPlay UI
|
|
2
|
+
|
|
3
|
+
> A scalable React component library with production-ready components, layouts, and themes for SaaS products.
|
|
4
|
+
|
|
5
|
+
Built by [Dennis Isaac](https://dennisisaac.com) · [Live Docs](https://dennisisaac.com/ui-kit)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install pixelplay
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
yarn add pixelplay
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add pixelplay
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Requirements
|
|
24
|
+
|
|
25
|
+
- React 18+
|
|
26
|
+
- Tailwind CSS 4+
|
|
27
|
+
- TypeScript 5+ (recommended)
|
|
28
|
+
|
|
29
|
+
## Quick Start
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
import { Button, Badge, Avatar, Input } from "pixelplay";
|
|
33
|
+
|
|
34
|
+
export function MyComponent() {
|
|
35
|
+
return (
|
|
36
|
+
<div>
|
|
37
|
+
<Avatar name="Dennis Isaac" size="md" />
|
|
38
|
+
<Badge color="purple">New</Badge>
|
|
39
|
+
<Button color="primary" variant="solid">Get Started</Button>
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Theme Setup
|
|
46
|
+
|
|
47
|
+
Add the PixelPlay theme tokens to your global CSS:
|
|
48
|
+
|
|
49
|
+
```css
|
|
50
|
+
@import "pixelplay/styles";
|
|
51
|
+
|
|
52
|
+
:root {
|
|
53
|
+
/* Override theme tokens as needed */
|
|
54
|
+
--primary: oklch(55% 0.22 264);
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Components
|
|
59
|
+
|
|
60
|
+
| Component | Description |
|
|
61
|
+
|-----------|-------------|
|
|
62
|
+
| `Button` | Versatile button with variants, sizes, and states |
|
|
63
|
+
| `Input` | Text input with labels, validation, and add-ons |
|
|
64
|
+
| `Badge` | Status and label badges with colors |
|
|
65
|
+
| `Avatar` | User avatars with initials, images, and status |
|
|
66
|
+
| `Card` | Content container with header, body, and footer |
|
|
67
|
+
| `Toggle` | Boolean toggle switch |
|
|
68
|
+
| `Checkbox` | Checkbox with variants and groups |
|
|
69
|
+
| `Select` | Dropdown select with search |
|
|
70
|
+
| `Slider` | Range slider with dual handles |
|
|
71
|
+
| `Tooltip` | Contextual tooltips |
|
|
72
|
+
| `Modal` | Dialog modals |
|
|
73
|
+
| `Spinner` | Loading indicators |
|
|
74
|
+
| `Tag` | Dismissable tags |
|
|
75
|
+
| `Progress` | Progress bars and circular indicators |
|
|
76
|
+
|
|
77
|
+
[View all components →](https://dennisisaac.com/ui-kit)
|
|
78
|
+
|
|
79
|
+
## Versioning
|
|
80
|
+
|
|
81
|
+
PixelPlay UI follows [Semantic Versioning](https://semver.org/):
|
|
82
|
+
|
|
83
|
+
- **Patch** (`x.x.1`) — bug fixes and minor adjustments
|
|
84
|
+
- **Minor** (`x.1.0`) — new components, non-breaking additions
|
|
85
|
+
- **Major** (`1.0.0`) — breaking API changes
|
|
86
|
+
|
|
87
|
+
See [CHANGELOG.md](./CHANGELOG.md) for the full release history.
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
MIT © [Dennis Isaac](https://dennisisaac.com)
|