Контрастность и читаемость являются ключевыми аспектами при разработке интерфейсов с использованием Ant Design, так как они напрямую влияют на восприятие информации пользователем и соответствие стандартам доступности (a11y).
Ant Design использует систему предопределённых цветов, где каждый базовый цвет имеет несколько оттенков. Для текста, фона и элементов интерфейса необходимо следовать принципу достаточного контраста:
rgba(0, 0, 0, 0.85) на светлом фоне. Такой цвет
обеспечивает высокую читаемость и соответствует стандарту WCAG AA для
обычного текста.rgba(0, 0, 0, 0.45) используется для подсказок,
вспомогательной информации и менее значимых элементов.token систему.Пример использования токенов цвета в Ant Design:
import { theme } from 'antd';
const { token } = theme.useToken();
const styles = {
color: token.colorText,
backgroundColor: token.colorBgContainer,
};
Здесь colorText и colorBgContainer
автоматически подбираются под текущую тему (light/dark), обеспечивая
оптимальный контраст.
Контраст текста и фона необходимо проверять не только для стандартного текста, но и для:
Ant Design по умолчанию применяет прозрачность для второстепенного
текста (colorTextSecondary), чтобы визуально разграничить
уровни информации. Важно контролировать, чтобы прозрачность не снижала
контраст ниже допустимого уровня.
При использовании dark mode Ant Design автоматически корректирует палитру:
#ffffff или
rgba(255,255,255,0.85))#141414 или близкие
оттенки)Токены темы позволяют динамически менять цвета компонентов, чтобы обеспечить читаемость независимо от выбранной темы:
import { ConfigProvider } from 'antd';
import { theme } from 'antd';
<ConfigProvider
theme={{
token: {
colorBgContainer: '#1f1f1f',
colorText: '#f0f0f0',
},
}}
>
<App />
</ConfigProvider>
Ant Design включает компонент Typography, который упрощает работу с читаемостью:
Title – для заголовков разного уровня, автоматически
применяет размеры и вес шрифтаText – для основного текста, поддерживает
strong, italic и markParagraph – для абзацев с правильным межстрочным
интерваломИспользование этих компонентов гарантирует:
Пример использования Typography с контролем контраста:
import { Typography } from 'antd';
const { Title, Paragraph, Text } = Typography;
<Typography>
<Title level={2}>Контрастный заголовок</Title>
<Paragraph>
<Text strong>Важная информация:</Text> уровень контраста текста с фоном критически важен для читаемости.
</Paragraph>
</Typography>
Кнопки, селекты и ссылки должны быть визуально выделены:
token.colorPrimary)token.colorText)token.colorPrimaryHover и
token.colorPrimaryActive для сохранения контраста при
взаимодействииПример кастомизации кнопки с повышенным контрастом:
<Button
style={{
backgroundColor: token.colorPrimary,
color: token.colorTextLightSolid,
}}
>
Нажми меня
</Button>
Ant Design рекомендует использовать встроенные инструменты для проверки доступности:
aria-* атрибутов и семантики компонентов,
чтобы текст был читаем экранными читалкамиtoken.colorText,
token.colorBgContainer,
token.colorPrimary)Эти правила обеспечивают оптимальную читаемость интерфейсов Ant Design и соответствие стандартам доступности.