Install Enma
Enma is public on npm under the MIT license. Nothing to set up first: no token, no registry settings.
pnpm add enma@npm:enma-design
That writes "enma": "npm:enma-design@^0.1.1" to package.json. The name enma was taken on npm, so the package is called enma-design and the alias brings the short name back for imports:
import 'enma/css'; // tokens, theme maps, every component style
import 'enma/fonts/ember'; // only your theme's fonts
import { EnmaRoot, Button } from 'enma/react';
import { EnmaProvider } from 'enma/native';
import { themes } from 'enma/tokens';
npm and Yarn work the same way: npm install enma@npm:enma-design.
Or start from a starter
Each starter already has the theme on the root, fonts loaded, one sample screen, and lint and typecheck passing:
pnpm dlx tiged --mode=git manishMandal02/enma-design/starters/next my-app
Swap next for react-vite, expo, chrome-extension or html. --mode=git clones over SSH with your own GitHub access, which a private repository needs. tiged is the maintained fork of degit; it supports a subdirectory in git mode, which classic degit does not.
Only one part of Enma
Install a focused package instead of the umbrella when a project needs only that part:
| You need | Install |
|---|---|
| Values only (a Tailwind setup, a script, Figma) | pnpm add @enma/tokens@npm:@enma-design/tokens |
| CSS only (plain HTML, Vue, Svelte, extensions) | pnpm add @enma/css@npm:@enma-design/css |
| React components | pnpm add @enma/react@npm:@enma-design/react |
| React Native | pnpm add @enma/native@npm:@enma-design/native |
On npm they are @enma-design/* (the @enma scope is taken); the alias keeps imports as @enma/css, the name every guide uses.
All Enma packages share one version, so mixing them is always safe. How Enma is packaged explains when to pick which.
Next
- Start a project: the steps every new project follows.
- React (web) or React Native: from install to a finished screen.