Klarhimmel UI

App dashboard

Template

A signed-in app screen for a hotel back office (Exempelhotellet): a sidebar and top bar around the figures that matter today, a revenue chart and a sortable bookings table with filters and paging. Built only from App UI blocks in a two-column shell. Graphite and blue, compact.

npx shadcn add @klarhimmel/template-app-dashboard
app-dashboard preview

Install

npx shadcn add @klarhimmel/template-app-dashboard

The page

7 sections, in order

Each section is one block with this template's own copy. The anchor is the id in-page links point at.

AnchorBlockContent
#sidebarapp/shell-sidebarExempelhotellet
#topbarapp/shell-topbar
#overviewapp/dashboard-statsToday at Exempelhotellet
#revenueapp/dashboard-chartRoom revenue by week
#filtersapp/data-filtersFilter bookings
#bookingsapp/data-tableUpcoming arrivals
#pagesapp/data-paginationPagination

Install

CLI

npx shadcn add @klarhimmel/template-app-dashboard

pnpm

pnpm dlx shadcn@latest add @klarhimmel/template-app-dashboard
Style
  • Klarhimmel
  • Geist / Geist
  • radius 8
Needs
React 19, Tailwind CSS v4 and the theme import. The page and every block it uses land under components/klarhimmel/.

Before you ship

Wire these before shipping

The template is a finished page with placeholder wiring. These are yours to connect.

Links

`#section` links jump within the screen. Links to https://example.com/app/... are placeholders for your other screens.

Data

Every figure, the chart points and the table rows are fixture data in the page file. Replace them with your own, and pass state="loading", "empty" or "error" while you fetch.

Shell

The sidebar and the main column share one grid that stacks below 64rem of container width. The blocks have no h1: add one (the page title) when you build a real screen.

Style

Uses the default Klarhimmel palette, Geist fonts, radius and spacing. Import theme.css after Tailwind.