Typography
Basic text writing, including headings, body text, lists, and more.
When To Use#
When need to display a title or paragraph contents in Articles/Blogs/Notes.
When you need copyable/editable/ellipsis texts.
Examples
Introduction
In the process of internal desktop applications development, many different design specs and implementations would be involved, which might cause designers and developers difficulties and duplication and reduce the efficiency of development.
After massive project practice and summaries, Ant Design, a design language for background applications, is refined by Ant UED Team, which aims touniform the user interface specs for internal background projects, lower the unnecessary cost of design differences and implementation and liberate the resources of design and front-end development.
Guidelines and Resources
We supply a series of design principles, practical patterns and high quality design resources (
Sketch
and Axure
), to help people create their product prototypes beautifully and efficiently.Press Esc to exit...
介绍
蚂蚁的企业级产品是一个庞大且复杂的体系。这类产品不仅量级巨大且功能复杂,而且变动和并发频繁,常常需要设计与开发能够快速的做出响应。同时这类产品中有存在很多类似的页面以及组件,可以通过抽象得到一些稳定且高复用性的内容。
随着商业化的趋势,越来越多的企业级产品对更好的用户体验有了进一步的要求。带着这样的一个终极目标,我们(蚂蚁金服体验技术部)经过大量的项目实践和总结,逐步打磨出一个服务于企业级产品的设计体系 Ant Design。基于『确定』和『自然』的设计价值观,通过模块化的解决方案,降低冗余的生产成本,让设计者专注于更好的用户体验。
设计资源
我们提供完善的设计原则、最佳实践和设计资源文件(
Sketch
和Axure
),来帮助业务快速设计出高质量的产品原型。按Esc键退出阅读……
import { Typography, Divider } from 'antd';
const { Title, Paragraph, Text } = Typography;
ReactDOM.render(
<Typography>
<Title>Introduction</Title>
<Paragraph>
In the process of internal desktop applications development, many different design specs and
implementations would be involved, which might cause designers and developers difficulties and
duplication and reduce the efficiency of development.
</Paragraph>
<Paragraph>
After massive project practice and summaries, Ant Design, a design language for background
applications, is refined by Ant UED Team, which aims to
<Text strong>
uniform the user interface specs for internal background projects, lower the unnecessary
cost of design differences and implementation and liberate the resources of design and
front-end development
</Text>.
</Paragraph>
<Title level={2}>Guidelines and Resources</Title>
<Paragraph>
We supply a series of design principles, practical patterns and high quality design resources
(<Text code>Sketch</Text> and <Text code>Axure</Text>), to help people create their product
prototypes beautifully and efficiently.
</Paragraph>
<Paragraph>
<ul>
<li>
<a href="/docs/spec/proximity">Principles</a>
</li>
<li>
<a href="/docs/pattern/navigation">Patterns</a>
</li>
<li>
<a href="/docs/resource/download">Resource Download</a>
</li>
</ul>
</Paragraph>
<Paragraph>
Press <Text keyboard>Esc</Text> to exit...
</Paragraph>
<Divider />
<Title>介绍</Title>
<Paragraph>
蚂蚁的企业级产品是一个庞大且复杂的体系。这类产品不仅量级巨大且功能复杂,而且变动和并发频繁,常常需要设计与开发能够快速的做出响应。同时这类产品中有存在很多类似的页面以及组件,可以通过抽象得到一些稳定且高复用性的内容。
</Paragraph>
<Paragraph>
随着商业化的趋势,越来越多的企业级产品对更好的用户体验有了进一步的要求。带着这样的一个终极目标,我们(蚂蚁金服体验技术部)经过大量的项目实践和总结,逐步打磨出一个服务于企业级产品的设计体系
Ant Design。基于<Text mark>『确定』和『自然』</Text>
的设计价值观,通过模块化的解决方案,降低冗余的生产成本,让设计者专注于
<Text strong>更好的用户体验</Text>。
</Paragraph>
<Title level={2}>设计资源</Title>
<Paragraph>
我们提供完善的设计原则、最佳实践和设计资源文件(<Text code>Sketch</Text> 和
<Text code>Axure</Text>),来帮助业务快速设计出高质量的产品原型。
</Paragraph>
<Paragraph>
<ul>
<li>
<a href="/docs/spec/proximity">设计原则</a>
</li>
<li>
<a href="/docs/pattern/navigation">设计模式</a>
</li>
<li>
<a href="/docs/resource/download">设计资源</a>
</li>
</ul>
</Paragraph>
<Paragraph>
按<Text keyboard>Esc</Text>键退出阅读……
</Paragraph>
</Typography>,
mountNode,
);
h1. Ant Design
h2. Ant Design
h3. Ant Design
h4. Ant Design
h5. Ant Design
import { Typography } from 'antd';
const { Title } = Typography;
ReactDOM.render(
<>
<Title>h1. Ant Design</Title>
<Title level={2}>h2. Ant Design</Title>
<Title level={3}>h3. Ant Design</Title>
<Title level={4}>h4. Ant Design</Title>
<Title level={5}>h5. Ant Design</Title>
</>,
mountNode,
);
Ant Design (default)
Ant Design (secondary)
Ant Design (success)
Ant Design (warning)
Ant Design (danger)
Ant Design (disabled)
Ant Design (mark)
Ant Design (code)
Ant Design (keyboard)
Ant Design (underline)
Ant Design (strong)
import { Typography, Space } from 'antd';
const { Text, Link } = Typography;
ReactDOM.render(
<Space direction="vertical">
<Text>Ant Design (default)</Text>
<Text type="secondary">Ant Design (secondary)</Text>
<Text type="success">Ant Design (success)</Text>
<Text type="warning">Ant Design (warning)</Text>
<Text type="danger">Ant Design (danger)</Text>
<Text disabled>Ant Design (disabled)</Text>
<Text mark>Ant Design (mark)</Text>
<Text code>Ant Design (code)</Text>
<Text keyboard>Ant Design (keyboard)</Text>
<Text underline>Ant Design (underline)</Text>
<Text delete>Ant Design (delete)</Text>
<Text strong>Ant Design (strong)</Text>
<Link href="https://ant.design" target="_blank">
Ant Design (Link)
</Link>
</Space>,
mountNode,
);
This is an editable text.
Custom Edit icon and replace tooltip text.
Hide Edit tooltip.
This is an editable text with limited length.
This is a copyable text.
Replace copy text.
Custom Copy icon and replace tooltips text.
Hide Copy tooltips.
import React, { useState } from 'react';
import { Typography } from 'antd';
import { HighlightOutlined, SmileOutlined, SmileFilled } from '@ant-design/icons';
const { Paragraph } = Typography;
const Demo: React.FC = () => {
const [editableStr, setEditableStr] = useState('This is an editable text.');
const [customIconStr, setCustomIconStr] = useState('Custom Edit icon and replace tooltip text.');
const [hideTooltipStr, setHideTooltipStr] = useState('Hide Edit tooltip.');
const [lengthLimitedStr, setLengthLimitedStr] = useState(
'This is an editable text with limited length.',
);
return (
<>
<Paragraph editable={{ onChange: setEditableStr }}>{editableStr}</Paragraph>
<Paragraph
editable={{
icon: <HighlightOutlined />,
tooltip: 'click to edit text',
onChange: setCustomIconStr,
}}
>
{customIconStr}
</Paragraph>
<Paragraph editable={{ tooltip: false, onChange: setHideTooltipStr }}>
{hideTooltipStr}
</Paragraph>
<Paragraph
editable={{
onChange: setLengthLimitedStr,
maxLength: 50,
autoSize: { maxRows: 5, minRows: 3 },
}}
>
{lengthLimitedStr}
</Paragraph>
<Paragraph copyable>This is a copyable text.</Paragraph>
<Paragraph copyable={{ text: 'Hello, Ant Design!' }}>Replace copy text.</Paragraph>
<Paragraph
copyable={{
icon: [<SmileOutlined key="copy-icon" />, <SmileFilled key="copied-icon" />],
tooltips: ['click here', 'you clicked!!'],
}}
>
Custom Copy icon and replace tooltips text.
</Paragraph>
<Paragraph copyable={{ tooltips: false }}>Hide Copy tooltips.</Paragraph>
</>
);
};
ReactDOM.render(<Demo />, mountNode);
Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team.
Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team. Ant Design, a design language for background applications, is refined by Ant UED Team.
import { Typography } from 'antd';
const { Paragraph } = Typography;
ReactDOM.render(
<>
<Paragraph ellipsis>
Ant Design, a design language for background applications, is refined by Ant UED Team. Ant
Design, a design language for background applications, is refined by Ant UED Team. Ant Design,
a design language for background applications, is refined by Ant UED Team. Ant Design, a
design language for background applications, is refined by Ant UED Team. Ant Design, a design
language for background applications, is refined by Ant UED Team. Ant Design, a design
language for background applications, is refined by Ant UED Team.
</Paragraph>
<Paragraph ellipsis={{ rows: 2, expandable: true, symbol: 'more' }}>
Ant Design, a design language for background applications, is refined by Ant UED Team. Ant
Design, a design language for background applications, is refined by Ant UED Team. Ant Design,
a design language for background applications, is refined by Ant UED Team. Ant Design, a
design language for background applications, is refined by Ant UED Team. Ant Design, a design
language for background applications, is refined by Ant UED Team. Ant Design, a design
language for background applications, is refined by Ant UED Team.
</Paragraph>
</>,
mountNode,
);
To be, or not to be, that is a question: Whether it is nobler in the mind to suffer. The slings and arrows of outrageous fortune Or to take arms against a sea of troubles, And by opposing end them? To die: to sleep; No more; and by a sleep to say we end The heart-ache and the thousand natural shocks That flesh is heir to, 'tis a consummation Devoutly to be wish'd. To die, to sleep To sleep- perchance to dream: ay, there's the rub! For in that sleep of death what dreams may come When we have shuffled off this mortal coil, Must give us pause. There 's the respect That makes calamity of so long life--William Shakespeare
import { Typography, Slider } from 'antd';
const { Paragraph } = Typography;
class Demo extends React.Component {
state = {
rows: 1,
};
onChange = rows => {
this.setState({ rows });
};
render() {
const { rows } = this.state;
const article =
"To be, or not to be, that is a question: Whether it is nobler in the mind to suffer. The slings and arrows of outrageous fortune Or to take arms against a sea of troubles, And by opposing end them? To die: to sleep; No more; and by a sleep to say we end The heart-ache and the thousand natural shocks That flesh is heir to, 'tis a consummation Devoutly to be wish'd. To die, to sleep To sleep- perchance to dream: ay, there's the rub! For in that sleep of death what dreams may come When we have shuffled off this mortal coil, Must give us pause. There 's the respect That makes calamity of so long life";
return (
<>
<Slider value={rows} min={1} max={10} onChange={this.onChange} />
<Paragraph
ellipsis={{
rows,
expandable: true,
suffix: '--William Shakespeare',
onEllipsis: ellipsis => {
console.log('Ellipsis changed:', ellipsis);
},
}}
title={`${article}--William Shakespeare`}
>
{article}
</Paragraph>
</>
);
}
}
ReactDOM.render(<Demo />, mountNode);
API#
Typography.Text#
Property | Description | Type | Default | Version |
---|---|---|---|---|
code | Code style | boolean | false | |
copyable | Whether to be copyable, customize it via setting an object | boolean | copyable | false | copyable |
delete | Deleted line style | boolean | false | |
disabled | Disabled content | boolean | false | |
editable | If editable. Can control edit state when is object | boolean | editable | false | editable |
ellipsis | Display ellipsis when text overflows, can configure rows and expandable by using object | boolean | ellipsis | false | ellipsis |
mark | Marked style | boolean | false | |
keyboard | Keyboard style | boolean | false | 4.3.0 |
underline | Underlined style | boolean | false | |
onChange | Trigger when user edits the content | function(string) | - | |
strong | Bold style | boolean | false | |
type | Content type | secondary | success | warning | danger | - | success: 4.6.0 |
Typography.Title#
Property | Description | Type | Default | Version |
---|---|---|---|---|
code | Code style | boolean | false | |
copyable | Whether to be copyable, customize it via setting an object | boolean | copyable | false | copyable |
delete | Deleted line style | boolean | false | |
disabled | Disabled content | boolean | false | |
editable | If editable. Can control edit state when is object | boolean | editable | false | editable |
ellipsis | Display ellipsis when text overflows, can configure rows and expandable by using object | boolean | ellipsis | false | ellipsis |
level | Set content importance. Match with h1 , h2 , h3 , h4 , h5 | number: 1, 2, 3, 4, 5 | 1 | 5: 4.6.0 |
mark | Marked style | boolean | false | |
underline | Underlined style | boolean | false | |
onChange | Trigger when user edits the content | function(string) | - | |
type | Content type | secondary | success | warning | danger | - | success: 4.6.0 |
Typography.Paragraph#
Property | Description | Type | Default | Version |
---|---|---|---|---|
code | Code style | boolean | false | |
copyable | Whether to be copyable, customize it via setting an object | boolean | copyable | false | copyable |
delete | Deleted line style | boolean | false | |
disabled | Disabled content | boolean | false | |
editable | If editable. Can control edit state when is object | boolean | editable | false | editable |
ellipsis | Display ellipsis when text overflows, can configure rows and expandable by using object | boolean | ellipsis | false | ellipsis |
mark | Marked style | boolean | false | |
underline | Underlined style | boolean | false | |
onChange | Trigger when user edits the content | function(string) | - | |
strong | Bold style | boolean | false | |
type | Content type | secondary | success | warning | danger | - | success: 4.6.0 |
copyable#
{
text: string,
onCopy: function,
icon: ReactNode,
tooltips: false | [ReactNode, ReactNode],
}
Property | Description | Type | Default | Version |
---|---|---|---|---|
text | The text to copy | string | - | |
onCopy | Called when copied text | function | - | |
icon | Custom copy icon: [copyIcon, copiedIcon] | [ReactNode, ReactNode] | - | 4.6.0 |
tooltips | Custom tooltip text, hide when it is false | [ReactNode, ReactNode] | [Copy , Copied ] | 4.4.0 |
editable#
{
icon: ReactNode,
tooltip: boolean | ReactNode,
editing: boolean,
maxLength: number,
autoSize: boolean | { minRows: number, maxRows: number },
onStart: function,
onChange: function(string),
}
Property | Description | Type | Default | Version |
---|---|---|---|---|
icon | Custom editable icon | ReactNode | <EditOutlined /> | 4.6.0 |
tooltip | Custom tooltip text, hide when it is false | boolean | ReactNode | Edit | 4.6.0 |
editing | Whether to be editable | boolean | false | |
maxLength | maxLength attribute of textarea | number | - | 4.4.0 |
autoSize | autoSize attribute of textarea | boolean | { minRows: number, maxRows: number } | - | 4.4.0 |
onStart | Called when enter editable state | function | - | |
onChange | Called when input at textarea | function(event) | - |
ellipsis#
{
rows: number,
expandable: boolean,
suffix: string,
symbol: ReactNode,
onExpand: function(event),
onEllipsis: function(ellipsis),
}
Property | Description | Type | Default | Version |
---|---|---|---|---|
rows | Max rows of content | number | - | |
expandable | Whether to be expandable | boolean | - | |
suffix | Suffix of ellipsis content | ReactNode | - | |
symbol | Custom ... symbol of ellipsis | ReactNode | ... | |
onExpand | Called when expand content | function(event) | - | |
onEllipsis | Called when enter or leave ellipsis state | function(ellipsis) | - | 4.2.0 |
FAQ#
How to use Typography.Link in react-router?#
react-router
support customize render component:
<Link to="/" component={Typography.Link} />