antd-mobile: React UI blocks for mobile web apps
Essential UI blocks for building mobile web apps.
At a glance
- What is it?
- antd-mobile is a TypeScript React component library for mobile web apps, published on npm as antd-mobile under the MIT license. It installs in one command and ships CSS-variable theming, but it is not a React Native or Vue library, and the README does not document rollback.
- Who is it for?
- Adopt antd-mobile if you are building a React mobile web app and want a component library that installs with npm install antd-mobile, themes through CSS variables, and ships both CommonJS (cjs) and ES module (es) builds. Do not adopt it if you need React Native primitives or Vue components; the repository layout and package metadata point to a browser React target only.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 16 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What antd-mobile solves, and who it is for
Building a mobile web app in React usually means writing the same pieces over and over: a touch-friendly picker, a popup that respects safe areas, a list that scrolls without jank on a mid-range Android phone. antd-mobile packages those pieces as components. The README describes the project as "essential UI blocks for building mobile web apps," and the repository is written in TypeScript with React as the peer framework.
The intended reader is a frontend engineer shipping a browser-based mobile interface, not a native app. The topics list on the repository includes react, react-components, mobile and typescript, and the npm package name is antd-mobile. If your target is a native binary or a Vue application, this is the wrong library, and the related searches for React Native and Vue versions point at a gap the project itself does not fill.
The design stance is stated in four adjectives in the README: fast, customizable, atomic, fluent. Atomic is the one worth reading closely. The README says each component's function is "neither more nor less" than needed, which is a claim about scope rather than quality. In practice that means you assemble screens from small parts instead of adopting a page-level template.
How the package is built and what you import
The package.json tells you most of the architecture. The main field points to ./cjs/index.js, the module field to ./es/index.js, and types to ./es/index.d.ts. So the published artifact contains a CommonJS build and an ES module build with type declarations alongside. Bundlers that understand the module field will pick the ES build and tree-shake unused components; older tooling falls back to CommonJS.
There is also a UMD build at ./umd/antd-mobile.js, referenced by the unpkg field and by umd.html at the repository root. That is the path for dropping the library into a page with a script tag, which the README's browser play link implies is a supported way to try it.
The sideEffects array is the detail that makes tree-shaking work. It lists CSS and Less files plus the top-level index entries, which tells the bundler that component modules can be dropped when unused but style files cannot. If you import a component and its stylesheet separately, that distinction is what keeps your bundle from carrying the whole library.
Styling runs on CSS variables. The README states that customization is "based on CSS variables," so a theme is a set of variable overrides rather than a Less rebuild. The repository still ships babel-transform-less-to-css.js and Less and stylelint configs, which suggests Less is used somewhere in the build, but the documented theming surface for consumers is the variables.
Installing antd-mobile and rendering a first component
The README gives four equivalent install commands. Pick the one that matches your package manager; they all resolve to the same npm package.
npm install antd-mobile
# or
yarn add antd-mobile
# or
pnpm add antd-mobile
# or
bun add antd-mobileAfter install, the package resolves through ./cjs/index.js or ./es/index.js depending on your bundler. If your bundler reports a missing module, check that it is reading the module or main field rather than looking for a browser field, which package.json does not define.
The README points to a Codesandbox link with the note that you can "play with antd-mobile just in browser" with no development environment. That is the fastest way to see a component render before wiring anything into your own app.
For a local check, the repository's own dev server is dumi, exposed as the start script. Running it serves the documentation site, which is where the component examples live.
npm run startThe test script is jest. The repository also carries a ci-install-react-19 script that installs react@19 and react-dom@19, which tells you the maintainers test against React 19 in CI. If you are on an older React major, verify compatibility yourself rather than assuming it.
Where antd-mobile is the wrong choice
The library targets the browser. Nothing in the repository layout, package metadata or README describes React Native primitives, and the related searches around React Native and "rn" reflect demand the project does not serve. For a native app you need a different component set.
The same applies to Vue. The topics and package.json name a React package; there is no Vue entry point in the files list.
A second limitation is documentation depth outside the component API. The README covers install, four design claims, a Codesandbox link and contribution instructions. It does not document a migration path between major versions, and it does not document rollback. The releases list shows v5.42.2 and v5.42.3 in January 2026 and then v5.43.0 in September 2026, a gap of roughly eight months between patch releases and the next minor. If you pin to a version and hit a bug, the release cadence is not something you can plan around from the README alone.
A third constraint is scope. Atomic components mean you own the page composition, routing, data fetching and state. If you want a project scaffold with those decisions made for you, antd-mobile is a component source, not a framework, and you will be assembling more yourself than the four-adjective summary suggests.
antd-mobile compared with Ant Design for desktop
The obvious alternative is Ant Design itself, the desktop library from the same organization. The difference is the target surface, not the philosophy. Ant Design for desktop assumes a pointer, hover states and wide viewports. antd-mobile assumes touch targets, gestures and narrow screens, and the README's fluent claim is specifically about "smooth gestures and delicate animation."
That distinction matters in practice. A desktop table component does not translate to a phone screen, and a mobile picker with momentum scrolling is not what you want in an admin console. The two libraries are not substitutes; picking the wrong one means fighting the input model.
A second comparison point is the theming mechanism. antd-mobile documents CSS variables as the customization path, which means a theme can change at runtime by setting variables on a root element. That is a different workflow from rebuilding styles at compile time, and it is why the package can be consumed from a UMD script tag without a build step.
What the README does not do is compare antd-mobile with any other mobile library by name. There is no benchmark table, no bundle-size comparison against alternatives, and no migration guide from a competing library. You will have to evaluate that yourself.
Maintenance, releases and the MIT license
The repository is not archived, and the last push was on 2026-09-14. The most recent release is v5.43.0, dated 2026-09-14, which lines up with that push. Before it, v5.42.3 landed on 2026-01-09 and v5.42.2 on 2026-01-08. So the project has a recent release and a recent push, but the interval between the January patches and the September minor is long enough that you should read the release notes rather than assume a steady monthly cadence.
Upgrade cost depends on how you consume the package. If you rely on the ES module build and tree-shaking, a version bump means re-resolving imports and checking that your bundler still reads the module field. If you use the UMD build from unpkg, you are pinning a script URL and the upgrade is a URL change. The package.json defines pub, pub:alpha and pub:dev scripts that publish from ./lib, and a package-diff script that runs antd-tools against that path, so the maintainers do check the published artifact before release. That is process, not a guarantee.
The license is MIT, stated in package.json and in LICENSE.txt at the repository root. MIT permits commercial use and modification with the copyright notice retained. This is a description of the license text, not legal advice; if your organization has specific obligations around attribution, have someone check the LICENSE.txt file directly.
One practical note: the package.json defines a postinstall script that runs husky install. That runs in the published package's context, and if your environment blocks install scripts, you may need to allow or skip it.
Editorial conclusion
Adopt antd-mobile if you are building a React mobile web app and want a component library that installs with npm install antd-mobile, themes through CSS variables, and ships both CommonJS (cjs) and ES module (es) builds. Do not adopt it if you need React Native primitives or Vue components; the repository layout and package metadata point to a browser React target only. Before committing, open the Codesandbox linked in the README to see the components render without a local build, confirm your React version against the test script that installs react@19 and react-dom@19, and read the release notes for v5.43.0 to see what changed since v5.42.3.
Frequently asked questions
Is Ant Design free?
The antd-mobile repository is licensed under MIT, stated in package.json and LICENSE.txt. MIT allows commercial use and modification as long as the copyright notice is kept.
Which companies use Ant Design?
The README does not list adopting companies. It shows a contributor leaderboard and a contributors image, and points to Discord and DingTalk channels, but no user or company list.
Is Ant Design good?
The README makes four claims about antd-mobile: fast, customizable, atomic and fluent, with customization based on CSS variables. Whether that fits your app depends on your target platform, since the package is a React library for mobile web.
Which is better material, UI or Ant Design?
The README does not compare antd-mobile with Material UI or any other library by name. There is no benchmark or bundle-size comparison in the repository README.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ant-design-ant-design-mobile)