Prood
Packages

@prood/ui

Shared React component library — shadcn/Radix primitives and 33+ commerce-specific components.

@prood/ui provides the shared UI layer for all Prood applications. It combines shadcn/ui primitives (Radix + Tailwind) with commerce-specific components for catalog, cart, checkout, and account flows.

Installation

Already a workspace dependency. Import directly:

import { Button } from '@prood/ui/components/button'
import { ProductGrid } from '@prood/ui/components/product-grid'
import { CartDrawer } from '@prood/ui/components/cart-drawer'

Import global styles in your app's root layout:

import '@prood/ui/globals.css'

Component categories

Product

ComponentImportDescription
ProductCard@prood/ui/components/product-cardProduct thumbnail with price and add-to-cart
ProductGrid@prood/ui/components/product-gridResponsive product grid layout
ProductGallery@prood/ui/components/product-galleryImage gallery with zoom
ProductOptions@prood/ui/components/product-optionsVariant option selector
ProductPrice@prood/ui/components/product-priceFormatted price with compare-at

Cart

ComponentImportDescription
CartDrawer@prood/ui/components/cart-drawerSlide-out cart panel
CartItem@prood/ui/components/cart-itemSingle cart line item
CartSummary@prood/ui/components/cart-summaryTotals breakdown
QuantitySelector@prood/ui/components/quantity-selector+/- quantity control
CouponInput@prood/ui/components/coupon-inputCoupon code input

Checkout

ComponentImportDescription
CheckoutStepper@prood/ui/components/checkout-stepperMulti-step progress indicator
AddressForm@prood/ui/components/address-formShipping/billing address form

Order

ComponentImportDescription
OrderCard@prood/ui/components/order-cardOrder summary card
OrderTimeline@prood/ui/components/order-timelineStatus timeline
ComponentImportDescription
SearchPalette@prood/ui/components/search-paletteCommand-k style search
SearchBar@prood/ui/components/search-barInline search input

Marketing

ComponentImportDescription
HeroBanner@prood/ui/components/hero-bannerFull-width hero section
PromoBanner@prood/ui/components/promo-bannerPromotional banner

Reviews

ComponentImportDescription
ReviewCard@prood/ui/components/review-cardSingle review display
ReviewStars@prood/ui/components/review-starsStar rating display

Specialized

ComponentImportDescription
WishlistGrid@prood/ui/components/wishlist-gridWishlist product grid
AuctionCard@prood/ui/components/auction-cardAuction listing card
RentalCard@prood/ui/components/rental-cardRental product card
SubscriptionCard@prood/ui/components/subscription-cardSubscription plan card
GiftCardForm@prood/ui/components/gift-card-formGift card purchase form
PriceTierTable@prood/ui/components/price-tier-tableWholesale pricing tiers

Common

ComponentImportDescription
EmptyState@prood/ui/components/empty-stateEmpty list placeholder
ProductTypeBadge@prood/ui/components/product-type-badgeProduct type indicator

shadcn primitives

Standard shadcn/ui components in @prood/ui/components/:

button, input, label, card, dialog, dropdown-menu, sheet, table, tabs, badge, skeleton, sonner, sidebar, etc.

Utility functions

import { formatPrice, localized } from '@prood/ui/lib/commerce'

formatPrice(9999, 'EUR')           // → "€99.99"
localized(product.name, 'en')      // → "T-Shirt"

Adding new components

Install shadcn primitives:

pnpm dlx shadcn@latest add dialog -c packages/ui

Commerce components are hand-authored in packages/ui/src/components/.

Theming

Uses CSS variables with Tailwind v4. Dark mode via next-themes:

import { ThemeProvider } from 'next-themes'

<ThemeProvider attribute="class" defaultTheme="system">
  {children}
</ThemeProvider>

Color tokens defined in packages/ui/src/globals.css with @theme inline.

On this page