LowkeyUI Styleguide — Component Inventory

Produced by the Task 2 discovery sweep (2026-06-10). Status meanings:

  • source-confirmed — real source file located during the sweep
  • verify-at-build — seeded from the old HTML doc; plausible but source/details confirmed at build time (recipe step 1)
  • suspect — no source found in the sweep; likely hallucinated in the old doc. Verified at build time and dropped if nothing real exists.
  • new — real component the old HTML doc missed

Sweep facts worth keeping:

  • The lowkey: Tailwind variant (tailwind.config.js:268) has zero usages in JSX — all lowkey styling flows through app.css selectors and flag checks (lowKeyUi / lowKeyForms from components/feature-flags).
  • Legacy pre-lowkey classes still exist in app.css (kp-button-brand, kp-button-solid, kp-button-danger, kp-modal, kp-modal-full, kp-button-lg); the styleguide must not present them as lowkey.
  • .lowkey/.lowkey-forms go on <html> via app/src/index.jsx:82-86.

Build queue

#SectionKindSource(s)Status
1Buttons (all variants + modifiers)atomapp.css:234-378source-confirmed (Task 3)
2Text inputatomapp.css:384-386, 429-431 (kp-input)source-confirmed
3Textareaatomapp.css:380-382, 433-435 (kp-textarea)source-confirmed
4Select + select-transparentatomapp.css:388-398, 437-441 (kp-select)source-confirmed
5Input group (icons L/R, button-right, active)atomapp.css:400-426, 521-531 (kp-input-group)source-confirmed
6Checkbox + indeterminateatomapp.css:506-513; ui/checkbox.jsx; ui/indeterminate-checkbox.jsxsource-confirmed
7Radioatomapp.css:516-518; ui/radios.jsxsource-confirmed
8Field label + requiredatomapp.css:501-503 (kp-label), app.css:230-232 (kp-required)source-confirmed
9Field view (read-only)atomapp.css:444-463 (kp-field-view)source-confirmed
10Rich text viewatomapp.css:466-479 (kp-rich-text-view)source-confirmed
11Datepicker (input group + popup)atomcomponents/temporal-pickers.jsx; app.css:534-539source-confirmed
12Toggleatomui/toggle.jsxnew
13Segmented controlatomui/segmented-control.jsxsource-confirmed (old doc called it "button group")
14Linkatomkp-link (app.css)new
15Badgeatomkp-badge (app.css); status pills verify-at-buildsource-confirmed
16Chip (lookup value)atomkp-chip (app.css); ui/lookup.jsxsource-confirmed
17Tableatomkp-table, kp-table-clickable (app.css)source-confirmed
18Avatar / abbreviation iconatomcomponents/abbreviation-icon.jsxsource-confirmed
19Spinneratomcomponents/spinner.jsxsource-confirmed
20Skeletonatomui/shadcn/skeleton.tsxnew
21Separatoratomui/shadcn/separator.tsxnew
22Tooltipatomui/tooltip.tsx; components/tooltip (provider in root-layout)source-confirmed
23Tabsatomui/tabs.jsxsource-confirmed
24Alerts (types 1/2/3: modal-style, inline, toast)moleculeui/alerts.jsx (AlertsProvider, useAlerts)source-confirmed
25Banner (header notice)moleculecomponents/header-layout.jsx, home-layout.jsxverify-at-build
26Info box / config boxmoleculeui/info-box.jsx; ui/config-box.jsxnew
27Popover / dropdown menumoleculeui/popover.jsx; ui/shadcn/popover.tsx; ui/shadcn/dropdown-menu.tsxsource-confirmed
28Pop-up (modal/dialog)moleculeui/pop-up.jsxsource-confirmed
29Side panelmoleculekp-modal-side + kp-slide-right (app.css:569-571); ui/shadcn/sheet.tsxsource-confirmed
30Pulse badgeatomkp-pulse-badge-before/-after (app.css)source-confirmed
31Drag handle / reorderable listmoleculecomponents/reorderable-list.jsxsource-confirmed
32Search barmoleculecomponents/search-bar.jsx; components/data-table/search-bar.jsxsource-confirmed
33Data-table controls (columns button, popover button)moleculecomponents/data-table/columns-button.jsx, popover-button.jsxsource-confirmed
34Section card (odd/even depth, header, collapse)moleculeapp.css:542-566, 617-647 (lkf-section*); formbot section gadgetsource-confirmed
35Workflow tracker / step pillmoleculepages-runner/action/workflow-tracker/source-confirmed
36Document list rowmoleculepages-builder/document-list/verify-at-build
37User menumoleculecomponents/user-menu.jsxsource-confirmed
38Pages navmoleculecomponents/pages-nav/index.jsxsource-confirmed
39Sidebar (dark + light maintenance variant)organismcomponents/sidebar/index.jsx; app.css:574-594 (lowkey-sidebar-light); ui/shadcn/sidebar.tsxsource-confirmed
40Modal with field form + footer actionsmolecule (composition)ui/pop-up.jsx + form atomscomposition — build from confirmed atoms
41Card/section with labeled fields (view + edit)molecule (composition)lkf-section + kp-label/kp-input/kp-field-viewcomposition
42Table with mixed gadget cellsmolecule (composition)kp-table + formbot gadget cell rules (app.css:481-498)composition
43Filter bar (input group + select + button)molecule (composition)confirmed atomscomposition
44Layout: app shell (sidebar + main)layoutcomponents/app-layout.jsxsource-confirmed
45Layout: header layout (dark top bar)layoutcomponents/header-layout.jsxsource-confirmed
46Layout: form builder 3-panellayoutpages-builder/form/index.jsx (config panel lg:w-[350px] + canvas + props)verify-at-build
47Layout: runner 1-panel (formbot container page)layoutcomponents/formbot-container/source-confirmed

Dropped / reclassified from the old HTML doc

Old doc sectionDisposition
Sticky header (31) / Action bar (32)No standalone component found; these are aspects of formbot-container / form pages. Folded into layouts #45-47; verified there.
Compare-changes popup (33)No source found in sweep — suspect. One build-time search (document compare / version diff screens); dropped if nothing real.
Button group (12)Reclassified → segmented control (ui/segmented-control.jsx), #13.
Field spinner (in 34)Verify within #19 spinner section; drop if not a real pattern.
All lkf-btn-* class names & stone-colored primary paletteHallucinated; real names are kp-*, real primary is var(--primary, #0c4a6e) with hover:bg-sky-950.

Checked off as built; statuses updated at each section's build step.