Overview
9AM UI is the internal component kit every 9AM script builds its interface from. It is distributed as a private shadcn registry: you install components withshadcn add, and the files are copied into your script rather than imported from a package.
It was extracted from the vehicle shop, which is now its first consumer.
This kit is internal to the studio. The registry lives in a private repository and needs a GitHub token to install from — these pages are for 9AM developers, not for customers.
What is in it
That is 76 items in total.
Why copy-in and not a package
A package would give you one version and no way out of it. A registry copies source files into your script, which means:- A script can diverge when it genuinely needs to, without forking anything.
- There is no runtime dependency between scripts — each ships its own built
dist. - Escrow builds stay clean, because the kit is a build-time concern and only
web/distreaches customers.
9am-ui check is for: it fails the build when the design tokens have been edited locally, and warns when a component has.
The two pieces that matter most
Viewport
The house scroll container. Drag-able custom scrollbar, layered glass edges, and a header that blur-swaps to a sticky copy as you scroll.
CEF workarounds
FiveM runs Chromium 103. The kit carries the fixes for everything that breaks there but works in your browser.
Where to go next
Setup
Get a token, wire up
components.json, scaffold a new script.Theme
Tokens, palettes, fonts, and the styling conventions.
Components
The full catalog with props and examples.
NUI bridge
Talking to Lua, visibility, and translations.