Contents

Frontend Development › UI Frameworks & Components

Component Library

Ready-made components like MUI, shadcn/ui or Radix.

Also known as: UI library, MUI, shadcn/ui, Radix, Material UI

A component library is a collection of ready-made user interface components (buttons, modals, dropdowns, tables, date pickers) that you use instead of building each yourself.

import { Button, Dialog } from "@mui/material";

<Button variant="contained" onClick={save}>Save</Button>

Types

KindExamplesIdea
Styled librariesMUI, Ant Design, Chakra UI, Bootstrapcomplete look and components, customized with themes
Headless / unstyledRadix UI, Headless UI, React Ariabehavior and accessibility only; you bring the styles
Copy-in collectionsshadcn/uicomponents are copied into your project, built on headless parts and utility CSS, so you own and edit the code

Why use one

  • Speed: standard components are done.
  • Accessibility and edge cases already handled: keyboard navigation, focus traps, ARIA (accessibility). A custom dropdown or modal is surprisingly hard to get right.
  • Consistency across a product.

Trade-offs

  • Bundle size: check what you import, and use tree shaking.
  • Look-alike apps if you don’t customize.
  • Fighting the library when your design differs from its assumptions.
  • Lock-in and upgrades: major versions can mean large migrations.
  • Styling approach may clash with yours.

Choosing

  • Prototype or internal tool: a styled library is fastest.
  • A strong, custom brand: a headless library plus your own styles, or shadcn-style copying.
  • Check: accessibility quality, maintenance activity, TypeScript support, theming, documentation.

Larger teams build their own on top as a design system, wrapping the library so the rest of the code doesn’t depend on it directly.