Interactive Playground
Back to HomeReact-WIP-UI
Production-ready components for marking features as work in progress.
Server Components
Ribbon
ServerA diagonal corner ribbon for any positioned container.
PositionVariant
Card content
WIP
| Prop | Type | Default | Description |
|---|---|---|---|
| position | "top-left" | "top-right" | "top-right" | Which corner the ribbon appears in |
| text | string | "WIP" | Label text on the ribbon |
| variant | "solid" | "outline" | "solid" | Filled or outlined ribbon style |
| disabled | boolean | false | When true, renders nothing |
Badge
ServerInline label that attaches to any child element.
Text
WIP
Analytics DashboardWIP
Side nav link
WIP| Prop | Type | Default | Description |
|---|---|---|---|
| text | string | "WIP" | Label shown in the pill |
| disabled | boolean | false | When true, hides the badge |
| children | ReactNode | - | Element to badge |
Overlay
ServerFrosted glass overlay that blurs child content.
Message
| Prop | Type | Default | Description |
|---|---|---|---|
| message | string | "Coming Soon" | Text in the overlay pill |
| disabled | boolean | false | When true, removes the overlay |
| children | ReactNode | - | Content underneath the overlay |
Block
ServerDisables pointer events and text selection on children.
Subscribe
Skip
Pointer events are blocked. Try clicking the form.
| Prop | Type | Default | Description |
|---|---|---|---|
| disabled | boolean | false | When true, removes the block |
| children | ReactNode | - | Content to be blocked |
Client Components
Modal
ClientAccessible dialog with backdrop blur and slide-up animation.
Title
Description
| Prop | Type | Default | Description |
|---|---|---|---|
| isOpen | boolean | - | Controls modal visibility |
| onClose | () => void | - | Called on close |
| title | string | - | Modal heading |
| description | string | - | Supporting body text |
WIP Wrapper
ClientComposable wrapper with conditional WIP treatment.
WIP active
New Dashboard
| Prop | Type | Default | Description |
|---|---|---|---|
| when | boolean | true | Activates WIP styling when true |
| children | ReactNode | - | Feature being marked as WIP |
WIPProvider
ClientGlobal context to disable all WIP components at once. It is used with useWIP() hook inside WIP children.
Theme
useWIP() output
theme: light
globalDisabled: false
Premium feature content lives here
WIP<WIPProvider theme="light" globalDisabled={false}>
| Prop | Type | Default | Description |
|---|---|---|---|
| theme | "light" | "dark" | "light" | Sets CSS custom props for all WIP children |
| globalDisabled | boolean | false | When true, strips WIP from all children |
| defaultVariant | "overlay" | "block" | "ribbon" | "badge" | - | Default WIP variant for <WIP /> wrappers |
© 2026 React-WIP-UI v1.0.0Back to Home