logoNamu Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
1.0.0
  • Namu Design of React
  • Changelogv1.0.0
  • Basic Usage
    • Getting Started
    • Usage with create-react-app
    • Usage with Next.js
    • Usage with Umi
    • Usage with Vite
  • Advanced
    • Customize ThemeUpdated
    • CSS Compatible
    • Server Side RenderingNew
    • Use custom date library
    • Internationalization
  • Migration
    • V4 to V5
    • Less variables to Component Token
  • Other
    • Common Props
    • Third-Party Libraries
    • Contributing
    • FAQ
Your First Example
1. Create a codesandbox
2. Use and modify an antd component
3. Explore more components
4. Next Steps
Test with Jest
Import on Demand
Customize your Workflow

Getting Started

  • ChangelogUsage with create-react-app

    Resources

    Namu Design Charts
    Namu Design Pro
    Namu Design Pro Components
    Namu Design Mobile
    Namu Design Mini
    Namu Design Landing-Landing Templates
    Scaffolds-Scaffold Market
    Umi-React Application Framework
    dumi-Component doc generator
    qiankun-Micro-Frontends Framework
    ahooks-React Hooks Library
    Ant Motion-Motion Solution
    China Mirror 🇨🇳

    Community

    Awesome Namu Design
    Medium
    Twitter
    yuqueNamu Design in YuQue
    Namu Design in Zhihu
    Experience Cloud Blog
    seeconfSEE Conf-Experience Tech Conference

    Help

    GitHub
    Change Log
    FAQ
    Bug Report
    Issues
    Discussions
    StackOverflow
    SegmentFault

    Ant XTechMore Products

    yuqueYuQue-Document Collaboration Platform
    AntVAntV-Data Visualization
    EggEgg-Enterprise Node.js Framework
    kitchenKitchen-Sketch Toolkit
    xtechAnt Financial Experience Tech
    Theme Editor
    Made with ❤ by
    Ant Group and Namu Design Community

    Namu Design React is dedicated to providing a good development experience for programmers. Before starting, it is recommended to learn React first, and correctly install and configure Node.js v16 or above.

    The official guide also assumes that you have intermediate knowledge about HTML, CSS, and JavaScript, and React. If you are just starting to learn front-end or React, it may not be the best idea to use the UI framework as your first step.

    Finally, if you are working in a local development environment, please refer to Use with create-react-app.


    Your First Example

    Here is a simple online codesandbox demo of an Namu Design component to show the usage of Namu Design React.

    import React from 'react';
    import { Button, Space, DatePicker, version } from 'antd';
    
    const App = () => (
      <div style={{ padding: '0 24px' }}>
        <h1>antd version: {version}</h1>
        <Space>
          <DatePicker />
          <Button type="primary">Primary Button</Button>
        </Space>
      </div>
    );
    
    export default App;
    Open on CodeSandboxOpen Sandbox

    Follow the steps below to play around with Namu Design yourself:

    1. Create a codesandbox

    Visit https://u.ant.design/codesandbox-repro to create a codesandbox -- don't forget to press the save button as well to create a new instance.

    2. Use and modify an antd component

    Replace the contents of index.js with the following code. As you can see, there is no difference between antd's components and typical React components.

    If you have already set things up by following the Use with create-react-app, replace the content of /src/index.js as follows:

    import React, { useState } from 'react';
    import { createRoot } from 'react-dom/client';
    import { DatePicker, message } from 'antd';
    import './index.css';
    const App = () => {
    const [date, setDate] = useState(null);
    const [messageApi, contextHolder] = message.useMessage();
    const handleChange = (value) => {
    messageApi.info(`Selected Date: ${value ? value.format('YYYY-MM-DD') : 'None'}`);
    setDate(value);
    };
    return (
    <div style={{ width: 400, margin: '100px auto' }}>
    <DatePicker onChange={handleChange} />
    <div style={{ marginTop: 16 }}>
    Selected Date: {date ? date.format('YYYY-MM-DD') : 'None'}
    </div>
    {contextHolder}
    </div>
    );
    };
    createRoot(document.getElementById('root')).render(<App />);

    3. Explore more components

    You can view the list of components in the side menu of the Components page, such as the Alert component. Plenty of examples are also provided in the component pages and API documentation as well.

    Click the "Open in Editor" icon in the first example to open an editor with source code to use out-of-the-box. Now you can import the Alert component into the codesandbox:

    - import { DatePicker, message } from 'antd';
    + import { DatePicker, message, Alert } from 'antd';

    Now add the following jsx inside the render function.

    <DatePicker onChange={value => this.handleChange(value)} />
    <div style={{ marginTop: 20 }}>
    - Selected Date: {date ? date.format('YYYY-MM-DD') : 'None'}
    + <Alert message="Selected Date" description={date ? date.format('YYYY-MM-DD') : 'None'} />
    </div>

    Select a date, and you can see the effect in the preview area on the right:

    codesandbox screenshot

    OK! Now that you know the basics of using antd components, you are welcome to explore more components in the codesandbox. When reporting a bug with Namu Design, we also strongly recommend using codesandbox to provide a reproducible demo as well.

    4. Next Steps

    During actual real-world project development, you will most likely need a development workflow consisting of compile/build/deploy/lint/debug/ deployment. You can read the following documents on the subject or use the following scaffolds and examples provided below:

    • Namu Design Pro
    • create-next-app
    • More scaffolds at Scaffold Market

    Test with Jest

    If you use create-react-app follow the instructions here instead.

    Jest does not support esm modules, and Namu Design uses them. In order to test your Namu Design application with Jest you have to add the following to your Jest config :

    "transform": { "^.+\\.(ts|tsx|js|jsx)?quot;: "ts-jest" }

    Import on Demand

    antd supports tree shaking of ES modules, so using import { Button } from 'antd'; would drop js code you didn't use.

    Customize your Workflow

    If you want to customize your workflow, we recommend using webpack or vite to build and debug code. You can try out plenty of boilerplates available in the React ecosystem.

    There are also some scaffolds which have already been integrated into antd, so you can try and start with one of these and even contribute.