Overview
Palantir Blueprint is a React component library for data-dense desktop interfaces: analyst tools, dashboards, admin consoles. Blueprint 6 (June 2025; 6.21 was current at the end of September 2026) uses the bp6- CSS namespace and supports React 18 and 19. It is not a marketing-site or mobile-first toolkit.
Pick Blueprint for dense internal tools
Choose it for read-heavy virtualized tables, multi-pane workspaces with menus and popovers, and keyboard-driven desktop use. Avoid it for customer-facing marketing sites, mobile-first apps, or designs that restyle every component; use shadcn with tailwind there.
Install only the packages you use
@blueprintjs/core: buttons, dialogs, menus, toasts, form controls.@blueprintjs/icons: icon set.@blueprintjs/table: virtualized table.@blueprintjs/select: select, multi-select, suggest.@blueprintjs/datetime: date and time pickers.@blueprintjs/datetime2is deprecated; Blueprint 6 merged its components intodatetime.
Each package ships its own stylesheet, imported once at the entry point. @blueprintjs/core depends on normalize.css, so import it first.
import "normalize.css";
import "@blueprintjs/core/lib/css/blueprint.css";
import "@blueprintjs/icons/lib/css/blueprint-icons.css";
import "@blueprintjs/select/lib/css/blueprint-select.css";
import "@blueprintjs/datetime/lib/css/blueprint-datetime.css";
import "@blueprintjs/table/lib/css/table.css";A missing stylesheet leaves components unstyled while the JavaScript still works.
Wrap the app in BlueprintProvider
Blueprint 6 expects an OverlaysProvider in any app that uses overlay components, because the overlay stack lives there. BlueprintProvider bundles PortalProvider, OverlaysProvider, and HotkeysProvider, so mount it once at the root.
import { BlueprintProvider } from "@blueprintjs/core";
<BlueprintProvider>
<App />
</BlueprintProvider>;Details and the overlay components are in blueprint-overlays; theming is in blueprint-theming.
Know the core components
Table: virtualized, resizable, with cell renderers and editing; see blueprint-table. Blueprint 6 renamedTable2toTable;Table2remains as a deprecated alias, butColumnHeaderCell2and the other*2header and format aliases were removed.Dialog,Popover,Tooltip,OverlayToaster,ContextMenu: portal-rendered overlays.Menu,MenuItem: keyboard-navigable lists; put aMenuin aPopoverfor dropdowns.FormGroup,InputGroup,NumericInput,TextArea: form controls with labels and helper text.Tabs,Tree,Tag,Callout: layout and information primitives.
Check the docs for a component before adding a third-party one.
Render Blueprint on the client in Next.js
Blueprint components use browser APIs. Put them behind a "use client" boundary in the App Router and keep the server-rendered shell around them.
Keep icon bundles small
A string icon="folder-open" loads the icon through a dynamic import, so only used icons load, at a small runtime cost. For icons you always render, import the component directly for static tree-shaking.
import { FolderOpen } from "@blueprintjs/icons";
<FolderOpen />;