Statistic

Display statistic number.

When To Use#

  • When want to highlight some data.

  • When want to display statistic data with description.

Examples

Active Users
112,893
Account Balance (CNY)
112,893.00
Active Users

Simplest Usage.

expand codeexpand code
import { Statistic, Row, Col, Button } from 'antd';

ReactDOM.render(
  <Row gutter={16}>
    <Col span={12}>
      <Statistic title="Active Users" value={112893} />
    </Col>
    <Col span={12}>
      <Statistic title="Account Balance (CNY)" value={112893} precision={2} />
      <Button style={{ marginTop: 16 }} type="primary">
        Recharge
      </Button>
    </Col>
    <Col span={12}>
      <Statistic title="Active Users" value={112893} loading />
    </Col>
  </Row>,
  mountNode,
);
Active
11.28%
Idle
9.30%

Display statistic data in Card.

expand codeexpand code
import { Statistic, Card, Row, Col } from 'antd';
import { ArrowUpOutlined, ArrowDownOutlined } from '@ant-design/icons';

ReactDOM.render(
  <div className="site-statistic-demo-card">
    <Row gutter={16}>
      <Col span={12}>
        <Card>
          <Statistic
            title="Active"
            value={11.28}
            precision={2}
            valueStyle={{ color: '#3f8600' }}
            prefix={<ArrowUpOutlined />}
            suffix="%"
          />
        </Card>
      </Col>
      <Col span={12}>
        <Card>
          <Statistic
            title="Idle"
            value={9.3}
            precision={2}
            valueStyle={{ color: '#cf1322' }}
            prefix={<ArrowDownOutlined />}
            suffix="%"
          />
        </Card>
      </Col>
    </Row>
  </div>,
  mountNode,
);
.site-statistic-demo-card {
  padding: 30px;
  background: #ececec;
}
Feedback
1,128
Unmerged
93/ 100

Add unit through prefix and suffix.

expand codeexpand code
import { Statistic, Row, Col } from 'antd';
import { LikeOutlined } from '@ant-design/icons';

ReactDOM.render(
  <Row gutter={16}>
    <Col span={12}>
      <Statistic title="Feedback" value={1128} prefix={<LikeOutlined />} />
    </Col>
    <Col span={12}>
      <Statistic title="Unmerged" value={93} suffix="/ 100" />
    </Col>
  </Row>,
  mountNode,
);
Countdown
48:00:29
Million Seconds
48:00:29:998
Day Level
2 天 0 时 0 分 29 秒
Countdown
00:00:09

Countdown component.

expand codeexpand code
import { Statistic, Row, Col } from 'antd';

const { Countdown } = Statistic;
const deadline = Date.now() + 1000 * 60 * 60 * 24 * 2 + 1000 * 30; // Moment is also OK

function onFinish() {
  console.log('finished!');
}

function onChange(val) {
  if (4.95 * 1000 < val && val < 5 * 1000) {
    console.log('changed!');
  }
}

ReactDOM.render(
  <Row gutter={16}>
    <Col span={12}>
      <Countdown title="Countdown" value={deadline} onFinish={onFinish} />
    </Col>
    <Col span={12}>
      <Countdown title="Million Seconds" value={deadline} format="HH:mm:ss:SSS" />
    </Col>
    <Col span={24} style={{ marginTop: 32 }}>
      <Countdown title="Day Level" value={deadline} format="D 天 H 时 m 分 s 秒" />
    </Col>
    <Col span={12}>
      <Countdown title="Countdown" value={Date.now() + 10 * 1000} onChange={onChange} />
    </Col>
  </Row>,
  mountNode,
);

API#

Statistic#

PropertyDescriptionTypeDefaultVersion
decimalSeparatorThe decimal separatorstring.
formatterCustomize value display logic(value) => ReactNode-
groupSeparatorGroup separatorstring,
loadingLoading status of Statisticbooleanfalse4.8.0
precisionThe precision of input valuenumber-
prefixThe prefix node of valueReactNode-
suffixThe suffix node of valueReactNode-
titleDisplay titleReactNode-
valueDisplay valuestring | number-
valueStyleSet value css styleCSSProperties-

Statistic.Countdown#

PropertyDescriptionTypeDefaultVersion
formatFormat as momentstringHH:mm:ss
prefixThe prefix node of valueReactNode-
suffixThe suffix node of valueReactNode-
titleDisplay titleReactNode-
valueSet target countdown timenumber | moment-
valueStyleSet value css styleCSSProperties-
onFinishTrigger when time's up() => void-
onChangeTrigger when time's changing(value: number) => void-4.16.0