@arco-design/web-react, antd, bootstrap, and material-ui are prominent UI toolkits used to build consistent user interfaces in web applications.
@arco-design/web-react is a comprehensive React UI library developed by ByteDance, focusing on enterprise-level scenarios with a distinct design language and high performance.
antd (Ant Design) is a widely adopted enterprise-class UI design language and React UI library, known for its extensive component set and strong presence in admin dashboards.
bootstrap is a foundational CSS framework that provides pre-built styles and utilities. While not React-specific, it is commonly integrated into React projects via class names or wrapper libraries.
material-ui (now @mui/material) implements Google's Material Design system. It offers a robust theming engine and a wide range of customizable components tailored for React.
Building scalable React applications requires a solid foundation for user interface components. @arco-design/web-react, antd, bootstrap, and material-ui represent four distinct approaches to solving UI consistency, theming, and component architecture. While they all aim to speed up development, their underlying mechanics differ significantly.
How you bring these libraries into your project sets the tone for your build configuration and styling pipeline.
@arco-design/web-react requires standard React installation and imports styles automatically via JS.
// @arco-design/web-react
import { Button } from '@arco-design/web-react';
import '@arco-design/web-react/dist/css/arco.min.css';
antd in version 5 uses CSS-in-JS by default, reducing CSS bundle size but requiring runtime processing.
// antd v5
import { Button } from 'antd';
// No global CSS import needed for v5
bootstrap is a CSS framework first. You must import the stylesheet globally in your entry point.
// bootstrap
import 'bootstrap/dist/css/bootstrap.min.css';
// Components are standard HTML with classes
material-ui (legacy package) or @mui/material relies on a theme provider wrapping your application root.
// @mui/material (modern equivalent)
import { ThemeProvider, createTheme } from '@mui/material/styles';
import Button from '@mui/material/Button';
The way you declare components affects readability and refactoring speed. Some libraries use prop-based configuration, while others rely on CSS classes.
@arco-design/web-react uses clear props for state and sizing, similar to Ant Design.
// @arco-design/web-react
<Button type="primary" size="large" loading>
Submit
</Button>
antd offers a highly consistent API across all components, making it easy to guess props.
// antd
<Button type="primary" size="large" loading>
Submit
</Button>
bootstrap does not have React components in the core package. You apply classes to standard HTML elements.
// bootstrap
<button className="btn btn-primary btn-lg" disabled>
Submit
</button>
material-ui uses a variant prop to define styles, adhering strictly to Material Design tokens.
// @mui/material
<Button variant="contained" size="large" disabled>
Submit
</Button>
Customizing the look and feel is critical for branding. Libraries handle this via CSS variables, CSS-in-JS, or utility classes.
@arco-design/web-react supports CSS variables for global theming, allowing dynamic switches without recompilation.
// @arco-design/web-react
// global.css
:root {
--primary-color: #165dff;
}
antd v5 moved to CSS variables for theming, improving performance over the v4 Less-based system.
// antd
import { ConfigProvider } from 'antd';
<ConfigProvider theme={{ token: { colorPrimary: '#00b96b' } }}>
<App />
</ConfigProvider>
bootstrap uses Sass variables for customization before build, or CSS variables for runtime tweaks.
// bootstrap (SCSS)
$primary: #0d6efd;
@import "bootstrap/scss/bootstrap";
material-ui provides a powerful theme object that cascades down the component tree.
// @mui/material
const theme = createTheme({
palette: { primary: { main: '#1976d2' } }
});
Forms are the backbone of enterprise apps. Some libraries include form logic, while others leave it to external tools.
@arco-design/web-react includes a robust Form component with built-in validation rules.
// @arco-design/web-react
<Form model={formData} rules={rules}>
<Form.Item field="username" label="Name">
<Input />
</Form.Item>
</Form>
antd is famous for its Form component, which integrates tightly with validation logic.
// antd
<Form name="basic" onFinish={onFinish}>
<Form.Item name="username" rules={[{ required: true }]}>
<Input />
</Form.Item>
</Form>
bootstrap provides visual styles for form states but no logic. You must use React state or libraries like Formik.
// bootstrap
<input type="text" className="form-control is-invalid" />
<div className="invalid-feedback">Error message</div>
material-ui offers styled inputs but relies on external libraries like react-hook-form for complex logic.
// @mui/material
<TextField label="Name" error helperText="Required" />
Admin dashboards rely heavily on data grids. Performance and feature sets vary widely here.
@arco-design/web-react features a high-performance Table with virtual scrolling built-in for large datasets.
// @arco-design/web-react
<Table columns={cols} data={data} virtualListProps={{ height: 600 }} />
antd provides a feature-rich Table with sorting, filtering, and pagination out of the box.
// antd
<Table columns={cols} dataSource={data} pagination={{ pageSize: 20 }} />
bootstrap has no table component. You style standard HTML tables using utility classes.
// bootstrap
<table className="table table-striped table-hover">
<thead>...</thead>
<tbody>...</tbody>
</table>
material-ui offers a DataGrid in the premium or community version for advanced features.
// @mui/x-data-grid
<DataGrid rows={rows} columns={columns} initialState={{ pagination: { pageSize: 20 } }} />
Choosing a library is a long-term commitment. You must consider the maintenance status of the package.
@arco-design/web-react is actively maintained by ByteDance and updated frequently for performance.
antd has a massive community and is stable. Version 5 introduced breaking changes but improved theming.
bootstrap is stable but updates slowly. It is a mature project with low risk of sudden deprecation.
material-ui The specific package material-ui is deprecated. You must migrate to @mui/material for security and feature updates.
// ❌ Deprecated
import Button from 'material-ui/Button';
// ✅ Current Standard
import Button from '@mui/material/Button';
| Feature | @arco-design/web-react | antd | bootstrap | material-ui (MUI) |
|---|---|---|---|---|
| React Native | ❌ No | ❌ No | ❌ No | ✅ Yes (via MUI) |
| Theming | CSS Variables | CSS Variables | Sass/CSS Vars | CSS-in-JS |
| Form Logic | ✅ Built-in | ✅ Built-in | ❌ CSS Only | ⚠️ Basic/External |
| Data Grid | ✅ Advanced | ✅ Advanced | ❌ HTML Only | ✅ (Add-on) |
| Status | ✅ Active | ✅ Active | ✅ Stable | ⚠️ Package Deprecated |
@arco-design/web-react and antd are the top contenders for serious enterprise React applications. They provide the necessary logic for forms and tables that bootstrap lacks. antd has a larger ecosystem, but @arco-design/web-react offers excellent performance optimizations for data-heavy views.
bootstrap remains useful for marketing sites or internal tools where speed matters more than component logic. However, relying on it for complex state-driven interfaces requires significant custom code.
material-ui is a strong choice for design-led products, but you must use the new @mui/material package. The old material-ui package should not be used in new projects due to deprecation.
Final Thought: For most modern React enterprise apps, antd or @arco-design/web-react provide the best balance of features and maintenance. Use bootstrap for simple layouts, and migrate to @mui/material if you need the MUI ecosystem.
Choose @arco-design/web-react if you are working within the ByteDance ecosystem or prefer a design system optimized for complex enterprise tables and forms. It is a strong candidate for teams seeking high performance and a modern aesthetic without the heaviness of older libraries. Ensure your team is comfortable with its specific documentation and community size compared to larger alternatives.
Choose antd if you need a battle-tested library with an enormous component ecosystem, ideal for data-heavy admin panels and enterprise tools. It is the standard choice for many Asian markets and offers deep customization in version 5. Select this if long-term stability and extensive third-party plugin support are your top priorities.
Choose bootstrap if you prioritize rapid prototyping, need a CSS-first approach, or are maintaining legacy systems. It is suitable for projects where design consistency is less critical than speed and familiarity. Avoid relying solely on the core package for complex React state management; consider wrapper libraries for better integration.
Note that the material-ui package is deprecated; use @mui/material for new projects. Choose this ecosystem if you want strict adherence to Material Design guidelines or need a powerful styling engine based on CSS-in-JS. It is best for teams that value design consistency and deep theming capabilities over raw performance.
A comprehensive React UI components library based on the Arco Design system.
English | 简体中文
With more than 60 crafted components that you can use out of the box.
Extensive design tokens can be customized to build your own theme. Two ways of customization are supported:
Material market provides a one-stop solution for materials management. Reuse customized modules to make a breakthrough in efficiency.
All components are written in TypeScript so it's type friendly.
Available as an npm package
// with npm
npm install @arco-design/web-react
// with yarn
yarn add @arco-design/web-react
import React from 'react';
import ReactDOM from 'react-dom';
import { Button } from '@arco-design/web-react';
import '@arco-design/web-react/dist/css/arco.css';
function App() {
return (
<Button type='secondary'>
Hello World
</Button>
);
}
ReactDOM.render(<App />, document.getElementById('app'));
| Project | Description |
|---|---|
| Vue Component Library | A comprehensive Vue UI components library based on the Arco Design system |
| Design Lab | A platform to create and manage your themes with ease. |
| Material Market | A platform that provides massive high-quality customized materials to greatly boost development efficiency. |
| Icon Box | One-stop platform to manage your icons. |
| Arco Pro | A solution to quickly building applications from scratch. |
![]() IE / Edge | ![]() Firefox | ![]() Chrome | ![]() Safari | ![]() Opera | ![]() Electron |
|---|---|---|---|---|---|
| Edge 16 | 31 | 49 | 31 | 36 | last 2 versions |
Developers interested in contributing should read the Code of Conduct and the Contributing Guide.
Thank you to all the people who already contributed to ArcoDesign!
This project is MIT licensed.