Skip to content

ngrok-oss/mantle

Repository files navigation

Mantle

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.

Get Started

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!

Prerequisites

The following prerequisites are required to contribute to @ngrok/mantle. We walk through the tooling installation steps below.

Installation

Install the prerequisites through either the automated or manual installation guides.

Automated Installation

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.

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.

Manual Installation

If you prefer to manually manage and install the tooling yourself, follow these steps:

  1. Install nvm or your node version manager of choice.
  2. Ensure that node 20 is installed. With nvm, run nvm install.
  3. Enable pnpm with corepack: corepack enable pnpm
  4. Install pnpm with corepack: corepack install
  5. Install project dependencies with pnpm: pnpm install