DEV Community

Abhay Singh Kathayat
Abhay Singh Kathayat

Posted on

A Comprehensive Guide to Using Ant Design with React

Ant Design (AntD) is a popular design system and React UI component library. It provides a set of high-quality, pre-designed, and customizable UI components to build elegant and user-friendly interfaces in React applications. Ant Design follows the principles of Material Design and provides a consistent and cohesive design language for modern web applications.

Key Features of Ant Design:

  1. Comprehensive Component Library: Ant Design offers a wide range of components, such as buttons, inputs, forms, modals, tables, date pickers, and more. These components are designed with an emphasis on ease of use and consistent styling.

  2. Customizable: Ant Design provides customization options through themes, allowing you to adjust styles like colors, fonts, spacing, and more. You can use the built-in theme or customize it to fit your project’s branding.

  3. Responsive Design: The components in Ant Design are responsive by default, making it easy to create mobile-friendly layouts. Ant Design provides utilities like the Grid system to help you organize layouts across different screen sizes.

  4. Internationalization (i18n): Ant Design supports internationalization and provides components with built-in support for multiple languages, including date formats, number formatting, and more.

  5. Accessibility: Ant Design components are designed with accessibility in mind, providing keyboard navigability and screen reader support for users with disabilities.

  6. Rich Ecosystem: Ant Design also includes a set of tools and libraries, such as Ant Design Pro (a scaffold for enterprise applications) and Ant Design Charts for visual data representation.

  7. TypeScript Support: Ant Design provides excellent TypeScript support, ensuring better type safety and enhanced developer experience.

  8. Design Guidelines: Ant Design follows a clear set of design principles and patterns to create a unified and consistent user experience. It’s ideal for developers who want to maintain a cohesive look across their applications.

How to Get Started with Ant Design in React:

1. Installing Ant Design in React

To install Ant Design, use npm or yarn to add it to your React project.

npm install antd
Enter fullscreen mode Exit fullscreen mode

Then, import the CSS file in your index.js or App.js to apply Ant Design's global styles:

import 'antd/dist/antd.css';
Enter fullscreen mode Exit fullscreen mode

2. Using Ant Design Components in React

Once Ant Design is installed, you can start using its components. Here are some examples:

Example 1: Ant Design Button
import React from 'react';
import { Button } from 'antd';

function App() {
  return (
    <div style={{ padding: '20px' }}>
      <Button type="primary">Primary Button</Button>
    </div>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

In this example, we import the Button component from antd and use it in our React component. You can easily change the button type (primary, danger, default, etc.) and apply additional styling or functionality.

Example 2: Ant Design Grid System

Ant Design comes with a flexible grid system that makes it easy to create responsive layouts. Here's an example of a responsive layout using Ant Design’s Row and Col components:

import React from 'react';
import { Row, Col } from 'antd';

function App() {
  return (
    <div style={{ padding: '20px' }}>
      <Row gutter={[16, 16]}>
        <Col xs={24} sm={12} md={8}>
          <div style={{ backgroundColor: '#f0f0f0', padding: '20px' }}>Column 1</div>
        </Col>
        <Col xs={24} sm={12} md={8}>
          <div style={{ backgroundColor: '#e6e6e6', padding: '20px' }}>Column 2</div>
        </Col>
        <Col xs={24} sm={12} md={8}>
          <div style={{ backgroundColor: '#cccccc', padding: '20px' }}>Column 3</div>
        </Col>
      </Row>
    </div>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

In this example:

  • Row is used to define a flex container for the columns.
  • Col is used to define individual columns.
  • The gutter prop adds space between the columns.
  • The xs, sm, and md props make the layout responsive across different screen sizes.
Example 3: Ant Design Modal

Ant Design's Modal component allows you to easily create modal dialogs.

import React, { useState } from 'react';
import { Button, Modal } from 'antd';

function App() {
  const [visible, setVisible] = useState(false);

  const showModal = () => setVisible(true);
  const hideModal = () => setVisible(false);

  return (
    <div style={{ padding: '20px' }}>
      <Button type="primary" onClick={showModal}>
        Open Modal
      </Button>
      <Modal title="Ant Design Modal" visible={visible} onOk={hideModal} onCancel={hideModal}>
        <p>This is a simple modal example using Ant Design.</p>
      </Modal>
    </div>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

In this example, we use useState to control the visibility of the modal. The Button triggers the modal, and Modal displays the dialog with an OK and Cancel button.

3. Customizing the Ant Design Theme

Ant Design allows you to customize its default theme to fit your project’s branding by modifying variables.

Example: Customizing Button Color

You can use a Less file to modify Ant Design’s default theme. To do this, you'll need to configure your webpack or use tools like Create React App with craco or customize-cra.

  1. Install craco:
   npm install @craco/craco
Enter fullscreen mode Exit fullscreen mode
  1. Create a craco.config.js file:
   module.exports = {
     style: {
       less: {
         modifyVars: {
           '@primary-color': '#1DA57A',
         },
         javascriptEnabled: true,
       },
     },
   };
Enter fullscreen mode Exit fullscreen mode

This will change the primary color of the Ant Design components (e.g., buttons) to #1DA57A.

4. Using Ant Design Icons

Ant Design provides a large set of SVG icons to enhance your app’s UI. You can use them directly in your components.

npm install @ant-design/icons
Enter fullscreen mode Exit fullscreen mode

Then, import and use the icons:

import React from 'react';
import { Button } from 'antd';
import { SmileOutlined } from '@ant-design/icons';

function App() {
  return (
    <div style={{ padding: '20px' }}>
      <Button type="primary" icon={<SmileOutlined />}>
        Smile
      </Button>
    </div>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

In this example, we use the SmileOutlined icon from the @ant-design/icons package and add it to the Button component.

Conclusion

Ant Design is a powerful and comprehensive design system that offers an extensive set of UI components for building modern, responsive React applications. Its customizability, accessibility features, and consistent design principles make it a great choice for developers who want to create polished, user-friendly interfaces without spending too much time on design.

With built-in support for internationalization, a responsive grid system, and easy customization, Ant Design is an excellent tool for creating enterprise-level applications or smaller projects alike.

Top comments (0)