Top Related Projects
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Bootstrap components built with React
A utility-first CSS framework for rapid UI development.
⚡️ Simple, Modular & Accessible UI Components for your React Applications
Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation
🐉 Vue Component Framework
Quick Overview
Ant Design Pro Components is a collection of high-quality React components and hooks designed to work seamlessly with Ant Design. It provides a set of enterprise-level UI components and solutions for building complex, data-intensive applications with a focus on efficiency and user experience.
Pros
- Extensive set of pre-built components tailored for enterprise applications
- Seamless integration with Ant Design, leveraging its design system and principles
- Highly customizable and flexible, allowing for easy adaptation to specific project needs
- Regular updates and active community support
Cons
- Steep learning curve for developers new to Ant Design ecosystem
- Large bundle size when using multiple components, which may impact initial load times
- Some components may have limited documentation or examples
- Occasional breaking changes between major versions
Code Examples
- Using ProTable component:
import { ProTable } from '@ant-design/pro-components';
const columns = [
{ title: 'Name', dataIndex: 'name' },
{ title: 'Age', dataIndex: 'age' },
];
const MyTable = () => (
<ProTable
columns={columns}
request={async (params) => {
// Fetch data from API
const response = await fetchData(params);
return {
data: response.data,
success: true,
total: response.total,
};
}}
rowKey="id"
pagination={{
showQuickJumper: true,
}}
search={{
layout: 'vertical',
defaultCollapsed: false,
}}
/>
);
- Using ProForm component:
import { ProForm, ProFormText, ProFormDatePicker } from '@ant-design/pro-components';
const MyForm = () => (
<ProForm
onFinish={async (values) => {
console.log(values);
}}
>
<ProFormText
name="name"
label="Name"
rules={[{ required: true, message: 'Please enter your name' }]}
/>
<ProFormDatePicker name="birthday" label="Birthday" />
</ProForm>
);
- Using ProLayout component:
import { ProLayout } from '@ant-design/pro-components';
const MyLayout = () => (
<ProLayout
title="My App"
logo="https://example.com/logo.png"
menu={{
request: async () => {
// Fetch menu items from API
return [
{ path: '/', name: 'Home' },
{ path: '/about', name: 'About' },
];
},
}}
>
{/* Your app content goes here */}
</ProLayout>
);
Getting Started
To start using Ant Design Pro Components in your project:
- Install the package:
npm install @ant-design/pro-components
- Import and use components in your React application:
import { ProTable, ProForm, ProLayout } from '@ant-design/pro-components';
// Use components in your app
- Customize theme (optional):
import { ConfigProvider } from 'antd';
const App = () => (
<ConfigProvider
theme={{
token: {
colorPrimary: '#00b96b',
},
}}
>
{/* Your app components */}
</ConfigProvider>
);
For more detailed usage and configuration options, refer to the official documentation.
Competitor Comparisons
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Pros of Material-UI
- More extensive component library with a wider range of UI elements
- Better documentation and community support
- Stronger focus on accessibility and customization options
Cons of Material-UI
- Steeper learning curve, especially for complex components
- Larger bundle size, which may impact performance in some applications
- Less opinionated design, requiring more effort to achieve a cohesive look
Code Comparison
Material-UI:
import { Button, TextField } from '@mui/material';
<Button variant="contained" color="primary">
Submit
</Button>
<TextField label="Name" variant="outlined" />
Pro Components:
import { ProForm, ProFormText } from '@ant-design/pro-components';
<ProForm>
<ProFormText name="name" label="Name" />
<Button type="primary" htmlType="submit">Submit</Button>
</ProForm>
Both libraries offer similar functionality, but Material-UI provides more granular control over individual components, while Pro Components focuses on pre-built, opinionated solutions for common use cases. Material-UI's approach may require more code for complex forms, but offers greater flexibility. Pro Components simplifies form creation with its specialized components, potentially reducing development time for standard scenarios.
Bootstrap components built with React
Pros of React Bootstrap
- Simpler and more lightweight, making it easier to get started
- Closer to vanilla Bootstrap, familiar to developers who've used Bootstrap before
- More extensive documentation and community support
Cons of React Bootstrap
- Less comprehensive set of components compared to Pro Components
- Fewer advanced features and customization options
- May require more custom styling and development for complex interfaces
Code Comparison
React Bootstrap:
import { Button, Card } from 'react-bootstrap';
<Card>
<Card.Body>
<Card.Title>Hello World</Card.Title>
<Button variant="primary">Click me</Button>
</Card.Body>
</Card>
Pro Components:
import { ProCard, Button } from '@ant-design/pro-components';
<ProCard title="Hello World">
<Button type="primary">Click me</Button>
</ProCard>
Both libraries provide React components for building user interfaces, but Pro Components offers more advanced and feature-rich components out of the box. React Bootstrap stays closer to the original Bootstrap design and functionality, while Pro Components provides a more opinionated and comprehensive set of components tailored for building complex admin interfaces.
The code comparison shows that both libraries offer similar basic components, but Pro Components tends to have more built-in features and props for advanced use cases.
A utility-first CSS framework for rapid UI development.
Pros of Tailwind CSS
- Highly customizable and flexible utility-first CSS framework
- Smaller file sizes and better performance due to purging unused styles
- Rapid prototyping and development with pre-built utility classes
Cons of Tailwind CSS
- Steeper learning curve for developers used to traditional CSS frameworks
- Can lead to cluttered HTML with many utility classes
- Less opinionated, requiring more design decisions from developers
Code Comparison
Tailwind CSS:
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
Button
</button>
Pro Components:
import { Button } from '@ant-design/pro-components';
<Button type="primary">Button</Button>
Summary
Tailwind CSS offers a utility-first approach with high customization and performance benefits, while Pro Components provides pre-built React components with a consistent design system. Tailwind CSS requires more manual styling but offers greater flexibility, whereas Pro Components provides a quicker development process with less customization options. The choice between the two depends on project requirements, team preferences, and the desired level of control over the UI.
⚡️ Simple, Modular & Accessible UI Components for your React Applications
Pros of Chakra UI
- More flexible and customizable design system
- Better accessibility features out of the box
- Smaller bundle size and better performance
Cons of Chakra UI
- Less comprehensive set of pre-built components
- Steeper learning curve for developers new to utility-first CSS
Code Comparison
Chakra UI:
import { Box, Text } from "@chakra-ui/react"
<Box bg="tomato" w="100%" p={4} color="white">
<Text fontSize="xl">This is a box</Text>
</Box>
Pro Components:
import { Card } from "@ant-design/pro-components"
<Card
style={{ width: "100%", backgroundColor: "tomato", color: "white" }}
>
<Typography.Text style={{ fontSize: 20 }}>This is a card</Typography.Text>
</Card>
Both libraries offer component-based approaches, but Chakra UI uses a more utility-first style with props for styling, while Pro Components relies more on traditional CSS properties and separate style objects. Chakra UI's approach often leads to more concise and readable code, especially for simpler components. However, Pro Components may be more familiar to developers used to traditional CSS styling methods.
Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation
Pros of Storybook
- Broader ecosystem support, works with multiple frameworks (React, Vue, Angular, etc.)
- Powerful addon system for extending functionality
- Comprehensive documentation and active community
Cons of Storybook
- Steeper learning curve for beginners
- Can be overkill for smaller projects
- Requires additional setup and configuration
Code Comparison
Storybook component story:
import { Button } from './Button';
export default {
title: 'Example/Button',
component: Button,
};
const Template = (args) => <Button {...args} />;
export const Primary = Template.bind({});
Primary.args = {
primary: true,
label: 'Button',
};
Pro Components usage:
import { ProForm, ProFormText } from '@ant-design/pro-components';
const MyForm = () => (
<ProForm>
<ProFormText name="name" label="Name" />
<ProFormText name="email" label="Email" />
</ProForm>
);
While Storybook focuses on component development and documentation, Pro Components provides ready-to-use, advanced components built on top of Ant Design. Storybook offers more flexibility and framework support, whereas Pro Components is tailored specifically for React and Ant Design ecosystems.
🐉 Vue Component Framework
Pros of Vuetify
- Extensive component library with Material Design aesthetics
- Strong community support and regular updates
- Comprehensive documentation and examples
Cons of Vuetify
- Larger bundle size compared to Pro Components
- Steeper learning curve for customization
- Less flexibility in design choices due to Material Design focus
Code Comparison
Pro Components (React):
import { ProForm, ProFormText } from '@ant-design/pro-components';
<ProForm>
<ProFormText name="name" label="Name" />
</ProForm>
Vuetify (Vue):
<template>
<v-form>
<v-text-field v-model="name" label="Name"></v-text-field>
</v-form>
</template>
Both libraries offer component-based form creation, but Pro Components provides more specialized form components out of the box. Vuetify's approach is more generic, relying on Vue's v-model for data binding.
Pro Components is tailored for React and Ant Design, offering a cohesive ecosystem for rapid development of admin interfaces. Vuetify, on the other hand, is a comprehensive UI framework for Vue.js applications, providing a wide range of components beyond just admin interfaces.
While Vuetify offers a polished Material Design look, Pro Components allows for more customization and integration with the Ant Design system. The choice between the two often depends on the specific project requirements and the preferred JavaScript framework.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
ProComponents
Designed for Enterprise-Level Application, Use Ant Design like a Pro!
English · ç®ä½ä¸æ · Report Bug · Request Feature
Table of contents
TOC
ð¦ Installation
To install @ant-design/pro-components
, run the following command:
$ pnpm install @ant-design/pro-components
⨠Features
Pro Series components are meticulously engineered to bolster the robust architecture of enterprise-grade applications.
Empowering Features of ProComponents
[!NOTE]
ProComponents stands as a beacon for React-based enterprise application development. Hereâs what makes it exceptional:
- ð¡ Extensive Component Suite: ProComponents boasts a comprehensive array of UI elementsâranging from tables and forms to charts and tree views. It caters to the diverse needs of enterprise applications with finesse.
- ð Advanced Functionality: Beyond basic UI elements, ProComponents is equipped with sophisticated data handling and business logic capabilities, enabling developers to swiftly construct powerful enterprise solutions.
- ð¯ Intuitive Usage: With its straightforward API and detailed documentation, ProComponents ensures a smooth onboarding experience for developers, fostering quick adoption and deployment.
- ð¨ Visual Configuration Tools: Certain components within ProComponents benefit from visual configuration aids, streamlining the design process for developers by simplifying component setup.
- ð ï¸ Unmatched Customizability: The library accommodates a plethora of configurations and styling options, ensuring that ProComponents can be tailored to the unique demands of any project.
In essence, ProComponents is a robust, user-friendly, and versatile UI component library, architected to empower applications across various scales and domains.
Considerations and Limitations
[!WARNING]
While ProComponents offers a wealth of benefits, itâs important to weigh certain considerations:
- Limited customization: Despite its rich component repository, ProComponents may pose challenges when it comes to deeply personalized customizations, potentially hindering the realization of certain project visions.
- Learning curve: The libraryâs comprehensive API and extensive documentation, while thorough, may initially overwhelm newcomers. Mastery of ProComponents might require a dedicated learning investment.
- Browser compatibility: ProComponents leverages cutting-edge browser technologies, which may not be supported by older browsers, potentially restricting application accessibility and necessitating additional development efforts for broader compatibility.
- Codebase size: The substantial size of ProComponentsâ codebase could impact the agility of the development process and complicate long-term maintenance.
[!TIP]
To summarize, ProComponents is a formidable contender in the realm of enterprise application UI libraries, yet it comes with its own set of trade-offs, including customization constraints, a considerable learning curve, browser compatibility considerations, and a sizable codebase. Developers are advised to thoroughly assess their project needs and limitations prior to integrating ProComponents into their workflow.
ð¥ Browser compatibility
[!NOTE]
Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
â¨ï¸ Local Development
You can use Github Codespaces for online development:
Or clone it for local development:
$ git clone https://github.com/ant-design/pro-components.git
$ cd pro-components
$ pnpm install
$ pnpm dev
ð¤ Contributing
[!IMPORTANT]
Join our collaborative ecosystem. Your contributions are the heartbeat of our project. Here's how you can be an integral part of our vibrant community:
- Integrate and Innovate: Incorporate Ant Design Pro, umi, and ProComponents into your projects. Your real-world usage and feedback are invaluable to us.
- Voice Your Insights: Encounter a glitch? Have a query? Your perspectives matter. Share them by submitting issues and help us enhance the user experience.
- Shape the Future: Have code enhancements or feature ideas? We invite you to propose pull requests and contribute directly to the evolution of our codebase.
Every contribution, big or small, is celebrated. Join us in our mission to refine and elevate the world of open-source enterprise UI components. ð
|
|
---|---|
ð£ï¸ Ecosystem
- ProComponents - Designed for Enterprise-Level Application, Use Ant Design like a Pro!.
- ProEditor - The Ultimate Editor UI Framework and Components.
- ProFlow - A Flow Editor Framework base on React-Flow.
- ProChat - Components Library for Quickly Building LLM Chat Interfaces.
ð License
Copyright © 2023 - present AFX & Ant Digital.
This project is MIT licensed.
Star History
Top Related Projects
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Bootstrap components built with React
A utility-first CSS framework for rapid UI development.
⚡️ Simple, Modular & Accessible UI Components for your React Applications
Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation
🐉 Vue Component Framework
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot