# @momo-webplatform/mobase

> Mobase is the UI framework upon we build product experiences at MoMo.vn, base on Radix primitives, and Tailwind CSS.

Latest version **0.2.114** (published 2026-09-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install @momo-webplatform/mobase
pnpm add @momo-webplatform/mobase
yarn add @momo-webplatform/mobase
bun add @momo-webplatform/mobase
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.2.114 |
| Published | 2026-09-24 |
| First published | 2024-03-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 42 |
| Unpacked size | 2.5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | MoMo - Front-end dev |
| Maintainers | gattadesmond, locle4 |

## Links

- npm: https://www.npmjs.com/package/@momo-webplatform/mobase
- Homepage: https://www.momo.vn/
- npm.io page: https://npm.io/package/@momo-webplatform/mobase

## Dependencies (42)

- [clsx](https://npm.io/package/clsx.md) ^2.1.0
- [cmdk](https://npm.io/package/cmdk.md) ^0.2.1
- [flat](https://npm.io/package/flat.md) 6.0.1
- [vaul](https://npm.io/package/vaul.md) ^1.1.2
- [color](https://npm.io/package/color.md) ^4.2.3
- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [motion](https://npm.io/package/motion.md) ^12.6.3
- [date-fns](https://npm.io/package/date-fns.md) ^3.6.0
- [input-otp](https://npm.io/package/input-otp.md) ^1.4.2
- [lunisolar](https://npm.io/package/lunisolar.md) ^2.5.0
- [react-use](https://npm.io/package/react-use.md) ^17.5.0
- [tailwindcss](https://npm.io/package/tailwindcss.md) *
- [lucide-react](https://npm.io/package/lucide-react.md) ^0.307.0
- [qrcode.react](https://npm.io/package/qrcode.react.md) 4.2.0
- [ua-parser-js](https://npm.io/package/ua-parser-js.md) ^1.0.38
- [html-to-image](https://npm.io/package/html-to-image.md) ^1.11.13
- [@artsy/fresnel](https://npm.io/package/@artsy/fresnel.md) ^8.0.1
- [tailwind-merge](https://npm.io/package/tailwind-merge.md) 2.4.0
- [@heroicons/react](https://npm.io/package/@heroicons/react.md) ^2.1.1
- [html-react-parser](https://npm.io/package/html-react-parser.md) ^5.1.10
- [react-use-measure](https://npm.io/package/react-use-measure.md) ^2.1.7
- [@radix-ui/react-slot](https://npm.io/package/@radix-ui/react-slot.md) ^1.1.0
- [@radix-ui/react-tabs](https://npm.io/package/@radix-ui/react-tabs.md) ^1.0.4
- [@radix-ui/react-icons](https://npm.io/package/@radix-ui/react-icons.md) ^1.3.0
- [@radix-ui/react-label](https://npm.io/package/@radix-ui/react-label.md) ^2.1.0
- [@radix-ui/react-toast](https://npm.io/package/@radix-ui/react-toast.md) ^1.1.5
- [@radix-ui/react-dialog](https://npm.io/package/@radix-ui/react-dialog.md) ^1.0.5
- [@radix-ui/react-select](https://npm.io/package/@radix-ui/react-select.md) ~2.1.0
- [@radix-ui/react-slider](https://npm.io/package/@radix-ui/react-slider.md) ^1.1.2
- [@radix-ui/react-switch](https://npm.io/package/@radix-ui/react-switch.md) ^1.0.3
- [@radix-ui/react-popover](https://npm.io/package/@radix-ui/react-popover.md) ^1.0.7
- [@radix-ui/react-tooltip](https://npm.io/package/@radix-ui/react-tooltip.md) ^1.0.7
- [@radix-ui/react-checkbox](https://npm.io/package/@radix-ui/react-checkbox.md) ^1.0.4
- [@radix-ui/react-progress](https://npm.io/package/@radix-ui/react-progress.md) ^1.0.3
- [class-variance-authority](https://npm.io/package/class-variance-authority.md) ^0.7.0
- [@radix-ui/react-accordion](https://npm.io/package/@radix-ui/react-accordion.md) ^1.1.2
- [@radix-ui/react-primitive](https://npm.io/package/@radix-ui/react-primitive.md) ^1.0.3
- [@radix-ui/react-radio-group](https://npm.io/package/@radix-ui/react-radio-group.md) ^1.1.3
- [@radix-ui/react-alert-dialog](https://npm.io/package/@radix-ui/react-alert-dialog.md) ^1.0.5
- [@radix-ui/react-aspect-ratio](https://npm.io/package/@radix-ui/react-aspect-ratio.md) ^1.0.3
- [@radix-ui/react-dropdown-menu](https://npm.io/package/@radix-ui/react-dropdown-menu.md) ^2.1.2
- [@radix-ui/react-navigation-menu](https://npm.io/package/@radix-ui/react-navigation-menu.md) ^1.1.4

## Recent versions

- 0.2.114 (latest) — 2026-09-24
- 0.2.107-link (link) — 2026-03-10
- 1.0.5 (lite) — 2025-12-25
- 1.0.10 — 2026-09-24
- 1.0.9 — 2026-09-24
- 0.2.113 — 2026-09-24
- 0.2.112 — 2026-06-25
- 1.0.8 — 2026-06-19
- 0.2.111 — 2026-06-19
- 0.2.110 — 2026-05-13
- 0.2.109 — 2026-05-13
- 0.2.108 — 2026-05-06
- 1.0.7 — 2026-04-06
- 1.0.6 — 2026-04-06
- 0.2.106 — 2026-04-03
- … 155 more at https://npm.io/package/@momo-webplatform/mobase/versions

## README

<p align="center">
  <a href="https://www.momo.vn/">
      <img width="100%" src="https://homepage.momocdn.net/img/momo-upload-api-240509152105-638508648658180278.jpg" alt="Mobase UI library" />
  </a>
</p>

# Mobase

[![](https://img.shields.io/npm/v/@momo-webplatform/mobase?style=plastic)](https://www.npmjs.com/package/@momo-webplatform/mobase)
[![](https://img.shields.io/npm/dw/@momo-webplatform/mobase?style=plastic)](https://www.npmjs.com/package/@momo-webplatform/mobase)

Mobase is MoMo website design system, a collection of guidelines, components and tools for creating intuitive, user-first experiences.

With Mobase, you get a range of pre-built, customizable components that are easy to use and integrate into your React projects. It also comes with full TypeScript support, ensuring type safety and developer-friendly experience.

<a href="https://dev1.momo.vn:3000/"><strong>Get Started with Mobase &rarr;</strong></a>

## Getting Started

Visit <a href="https://dev1.momo.vn:3000/" target="_blank">Mobase Docs</a> to get started.

### Setup Tailwind CSS

Install Tailwind CSS:

```bash
pnpm i autoprefixer postcss tailwindcss
pnpm tailwindcss init -p
```

Point Tailwind CSS to files you have `className=".."` in:

```javascript
import { mobaseTW } from "@momo-webplatform/mobase";

const config = {
  content: [
    // ...
    "node_modules/@momo-webplatform/mobase/dist/esm/**/*.js",
  ],
  darkMode: ["class"],
  plugins: [mobaseTW()],
};

export default config;
```

Add Tailwind CSS to a CSS file:

```css
@tailwind base;
@tailwind components;
@tailwind utilities;
```

Automatically transpile and bundle dependencies, update your `next.config.js` file to add the necessary configuration for Mobase:

```js filename="next.config.js"
/** @type {import('next').NextConfig} */
const nextConfig = {
  transpilePackages: ["@momo-webplatform/mobase"],
  ...
}
export default nextConfig;
```

### Install Mobase React

1. Run the following command to install `@momo-webplatform/mobase`:

```bash
npm i @momo-webplatform/mobase
```

2. Add the Mobase plugin to `tailwind.config.js`, and include content from `@momo-webplatform/mobase`:

```js
/** @type {import('tailwindcss').Config} */
export default {
  content: [
    // ...
    "node_modules/@momo-webplatform/mobase/lib/esm/**/*.js",
  ],
  plugins: [
    // ...
  ],
};
```

### Try it out

How you use Mobase React depends on your project setup. In general, you can just import the components you want to use from `@momo-webplatform/mobase` and use them in a React `.jsx` file:

```tsx
import { Button } from "@momo-webplatform/mobase";

export default function MyPage() {
  return (
    <div>
      <Button>Click me</Button>
    </div>
  );
}
```

## Figma

If you need the Figma files for the components you can check out our website for more information:

🎨 [Get access to the Figma design files](https://dev1.momo.vn:3000/figma/)

## Dependencies

### `peerDependencies`

`peerDependencies` are dependencies which must be installed and have their versions controlled by the user of `mobase` in order for them to work correctly.

There are three types of `peerDependencies` in `mobase`:

#### 1. Framework

These dependencies are the environment in which `mobase` runs. The list of dependencies of this type are:

- `react`
- `next`

#### 2. User-Configurable Libraries

These dependencies require configuration or data directly from the user.
To prevent issues from breaking changes, it is essential that the versions used by `mobase` and the user are identical.
This is particularly important for internal changes not covered by official documentation (e.g., `react-hook-form`).

- `embla-carousel`: the base package for `embla-carousel-react`.

- `embla-carousel-react`:

  Check the implementation of [`Carousel` component](./src/components/Carousel/Carousel.tsx). The user may pass their `opts` or `plugins` into this component for customizing.

- `react-hook-form`:

  Check the implementation of [form-related components](./src/components/Form/Form.tsx). The user need to pass properties created by `useForm` on their side to make use of these components (`Form` component of `mobase` is `FormProvider` of `react-hook-form`).

- `react-day-picker`:

  Check the implementation of [`Calendar` component](./src/components/Calendar/Calendar.tsx). The user can customize this component by passing props of `DayPicker` component from `react-day-picker`.

#### 3. Related Libraries

These dependencies are required by the user-configurable libraries listed above.

- `@hookform/resolvers`: A dependency of `react-hook-form`.

- `zod`: A dependency of `@hookform/resolvers`.

- `embla-carousel-autoplay`: A dependency of `embla-carousel`.

Please refer to this [JIRA ticket](https://atlassiansuite.mservice.com.vn:8443/browse/WP-1303) for additional context.

### `overrides` (`npm`, `pnpm`)/`resolutions` (`yarn`)

> **Important:** Use the following instructions with caution.
> Installing package versions not specified in `mobase`'s `package.json` may lead to unexpected errors, crashes, or other malfunctions.
> The `mobase` development team cannot guarantee support for issues resulting from such modifications.

To override a package version, you can utilize the `overrides`/`resolutions` feature of your package manager. This is useful in situations where the `mobase` team may have missed a peer dependency that conflicts with your project's version of the same package.

Consult the official documentation for more information:

- **`npm`/`pnpm`**: [doc](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#overrides).

- **`yarn` (legacy)**: [doc](https://classic.yarnpkg.com/lang/en/docs/selective-version-resolutions/).

- **`yarn` (modern)**: [doc](https://yarnpkg.com/configuration/manifest#resolutions).

---
_Source: https://npm.io/package/@momo-webplatform/mobase · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
