Mantle is ngrok’s UI library and design system. It’s inspired by shadcn/ui and uses Radix with Tailwind for styling. It’s documented using Remix.
To get started, install @ngrok/mantle
with your preferred package manager:
package manager | command |
---|---|
npm | npm install -E @ngrok/mantle |
yarn | yarn add -E @ngrok/mantle |
pnpm | pnpm add -E @ngrok/mantle |
bun | bun add -E @ngrok/mantle |
Then, add the preset and mantle content to your tailwind configuration.
import { createRequire } from "node:module";
import { mantlePreset, resolveMantleContentGlob } from "@ngrok/mantle/tailwind-preset";
import type { Config } from "tailwindcss";
const require = createRequire(import.meta.url);
export default {
presets: [mantlePreset],
content: [resolveMantleContentGlob(require), "./app/**/*.tsx"], // 👈 don't forget to swap out app content glob here!
// ... the rest of your tailwind config!
} satisfies Config;
Next, check out the Overview & Setup and Theme Provider usage docs and start using mantle components in your application!
The following prerequisites are required to contribute to @ngrok/mantle
.
We walk through the tooling installation steps below.
Install the prerequisites through either the automated or manual installation guides.
We use direnv to assist you with setting up all of the required tooling. Prefer to install and manage the tooling yourself? See the manual installation instructions below.
First, install direnv
:
OS | command |
---|---|
macOS | brew install direnv |
ubuntu | sudo apt install direnv |
For all other OSes, see the direnv installation guide.
Note
Don't forget to set up direnv integration with your shell.
Next, clone the repo and move into the directory:
git clone [email protected]:ngrok-oss/mantle.git
cd frontend
Next, run:
direnv allow
Warning
If direnv allow
does nothing for you (you should see things happening!), consider following the guides to integrate direnv with your shell and then try direnv allow
again! As a last resort, you can follow the manual installation instructions up above.
This will install nvm
(if not already installed) as well as set the correct node
and pnpm
versions for you.
It will also run pnpm install
at the end to install all node_modules
.
If you prefer to manually manage and install the tooling yourself, follow these steps:
- Install nvm or your node version manager of choice.
- Ensure that
node 20
is installed. Withnvm
, runnvm install
. - Enable
pnpm
withcorepack
:corepack enable pnpm
- Install
pnpm
withcorepack
:corepack install
- Install project dependencies with
pnpm
:pnpm install