logoNamu Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
1.0.0
  • Components Overview
  • General
    • Button
    • FloatButtonNew
    • Icon
    • Typography
  • Layout
    • Divider
    • Grid
    • Layout
    • Space
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPickerNew
    • DatePicker
    • Form
    • Input
    • InputNumber
    • Mentions
    • Radio
    • Rate
    • Select
    • Slider
    • Switch
    • TimePicker
    • Transfer
    • TreeSelect
    • Upload
  • Data Display
    • Avatar
    • Badge
    • Calendar
    • Card
    • Carousel
    • Collapse
    • Descriptions
    • Empty
    • Image
    • List
    • Popover
    • QRCodeNew
    • Segmented
    • Statistic
    • Table
    • Tabs
    • Tag
    • Timeline
    • Tooltip
    • TourNew
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
  • Other
    • Affix
    • AppNew
    • ConfigProvider
Design concept
Outline
Examples
Basic Grid
Grid Gutter
Column offset
Grid sort
Typesetting
Alignment
Order
Flex Stretch
Responsive
More responsive
Playground
useBreakpoint Hook
API
Row
Col
Design Token

Grid

  • DividerLayout

    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

    24 Grids System.

    Design concept

    grid design

    In most business situations, Namu Design needs to solve a lot of information storage problems within the design area, so based on 12 Grids System, we divided the design area into 24 sections.

    We name the divided area 'box'. We suggest four boxes for horizontal arrangement at most, one at least. Boxes are proportional to the entire screen as shown in the picture above. To ensure a high level of visual comfort, we customize the typography inside of the box based on the box unit.

    Outline

    In the grid system, we define the frame outside the information area based on row and column, to ensure that every area can have stable arrangement.

    Following is a brief look at how it works:

    • Establish a set of column in the horizontal space defined by row (abbreviated col).
    • Your content elements should be placed directly in the col, and only col should be placed directly in row.
    • The column grid system is a value of 1-24 to represent its range spans. For example, three columns of equal width can be created by <Col span={8} />.
    • If the sum of col spans in a row are more than 24, then the overflowing col as a whole will start a new line arrangement.

    Our grid systems base on Flex layout to allow the elements within the parent to be aligned horizontally - left, center, right, wide arrangement, and decentralized arrangement. The Grid system also supports vertical alignment - top aligned, vertically centered, bottom-aligned. You can also define the order of elements by using order.

    Layout uses a 24 grid layout to define the width of each "box", but does not rigidly adhere to the grid layout.

    Examples

    Basic Grid

    From the stack to the horizontal arrangement.

    You can create a basic grid system by using a single set of Row and Col grid assembly, all of the columns (Col) must be placed in Row.

    expand codeexpand code
    Grid Gutter

    You can use the gutter property of Row as grid spacing, we recommend set it to (16 + 8n) px (n stands for natural number).

    You can set it to a object like { xs: 8, sm: 16, md: 24, lg: 32 } for responsive design.

    You can use an array to set vertical spacing, [horizontal, vertical] [16, { xs: 8, sm: 16, md: 24, lg: 32 }].

    vertical gutter was supported after 3.24.0.

    expand codeexpand code
    Column offset

    offset can set the column to the right side. For example, using offset = {4} can set the element shifted to the right four columns width.

    expand codeexpand code
    Grid sort

    By using push and pull class you can easily change column order.

    expand codeexpand code
    Typesetting

    Child elements depending on the value of the start, center, end, space-between, space-around and space-evenly, which are defined in its parent node typesetting mode.

    expand codeexpand code
    Alignment

    Child elements vertically aligned.

    expand codeexpand code
    Order

    To change the element sort by order.

    expand codeexpand code
    Flex Stretch

    Col provides flex prop to support fill rest.

    expand codeexpand code
    Responsive

    Referring to the Bootstrap responsive design, here preset six dimensions: xs sm md lg xl xxl.

    expand codeexpand code
    More responsive

    span pull push offset order property can be embedded into xs sm md lg xl xxl properties to use, where xs={6} is equivalent to xs={{span: 6}}.

    expand codeexpand code
    Playground

    A simple playground for column count and gutter.

    expand codeexpand code
    useBreakpoint Hook

    Use useBreakpoint Hook provide personalized layout.

    expand codeexpand code

    API

    Common props ref:Common props

    If the Namu Design grid layout component does not meet your needs, you can use the excellent layout components of the community:

    • react-flexbox-grid
    • react-blocks

    Row

    PropertyDescriptionTypeDefaultVersion
    alignVertical alignmenttop | middle | bottom | stretch | {[key in 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl']: 'top' | 'middle' | 'bottom' | 'stretch'}topobject: 4.24.0
    gutterSpacing between grids, could be a number or a object like { xs: 8, sm: 16, md: 24}. Or you can use array to make horizontal and vertical spacing work at the same time [horizontal, vertical]number | object | array0
    justifyHorizontal arrangementstart | end | center | space-around | space-between | space-evenly | {[key in 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl']: 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly'}startobject: 4.24.0
    wrapAuto wrap linebooleantrue4.8.0

    Col

    PropertyDescriptionTypeDefaultVersion
    flexFlex layout stylestring | number-
    offsetThe number of cells to offset Col from the leftnumber0
    orderRaster ordernumber0
    pullThe number of cells that raster is moved to the leftnumber0
    pushThe number of cells that raster is moved to the rightnumber0
    spanRaster number of cells to occupy, 0 corresponds to display: nonenumbernone
    xsscreen < 576px and also default setting, could be a span value or an object containing above propsnumber | object-
    smscreen ≥ 576px, could be a span value or an object containing above propsnumber | object-
    mdscreen ≥ 768px, could be a span value or an object containing above propsnumber | object-
    lgscreen ≥ 992px, could be a span value or an object containing above propsnumber | object-
    xlscreen ≥ 1200px, could be a span value or an object containing above propsnumber | object-
    xxlscreen ≥ 1600px, could be a span value or an object containing above propsnumber | object-

    You can modify the breakpoints values using by modifying screen[XS|SM|MD|LG|XL|XXL] with theme customization (since 5.1.0, sandbox demo).

    The breakpoints of responsive grid follow BootStrap 4 media queries rules (not including occasionally part).

    Design Token

    col
    col-12
    col-12
    col-8
    col-8
    col-8
    col-6
    col-6
    col-6
    col-6
    Horizontal
    col-6
    col-6
    col-6
    col-6
    Responsive
    col-6
    col-6
    col-6
    col-6
    Vertical
    col-6
    col-6
    col-6
    col-6
    col-6
    col-6
    col-6
    col-6
    col-8
    col-8
    col-6 col-offset-6
    col-6 col-offset-6
    col-12 col-offset-6
    col-18 col-push-6
    col-6 col-pull-18
    sub-element align left
    col-4
    col-4
    col-4
    col-4
    sub-element align center
    col-4
    col-4
    col-4
    col-4
    sub-element align right
    col-4
    col-4
    col-4
    col-4
    sub-element monospaced arrangement
    col-4
    col-4
    col-4
    col-4
    sub-element align full
    col-4
    col-4
    col-4
    col-4
    sub-element align evenly
    col-4
    col-4
    col-4
    col-4
    Align Top

    col-4

    col-4

    col-4

    col-4

    Align Middle

    col-4

    col-4

    col-4

    col-4

    Align Bottom

    col-4

    col-4

    col-4

    col-4

    Normal
    1 col-order-4
    2 col-order-3
    3 col-order-2
    4 col-order-1
    Responsive
    1 col-order-responsive
    2 col-order-responsive
    3 col-order-responsive
    4 col-order-responsive
    Percentage columns
    2 / 5
    3 / 5
    Fill rest
    100px
    Fill Rest
    Raw flex style
    1 1 200px
    0 1 300px
    none
    auto with no-wrap
    Col
    Col
    Col
    Col
    Col
    Col
    Horizontal Gutter (px):
    81624324048
    Vertical Gutter (px):
    81624324048
    Column Count:
    2346812
    Column
    Column
    Column
    Column
    Column
    Column
    Column
    Column
    Another Row:
    Column
    Column
    Column
    Column
    <Row gutter={[16, 16]}>
      <Col span={6} />
      <Col span={6} />
      <Col span={6} />
      <Col span={6} />
    
      <Col span={6} />
      <Col span={6} />
      <Col span={6} />
      <Col span={6} />
    </Row>
    <Row gutter={[16, 16]}>
      <Col span={6} />
      <Col span={6} />
      <Col span={6} />
      <Col span={6} />
    </Row>
    Current break point: