Типографика
Класс ChatTypography
предоставляет набор предопределённых стилей шрифтов, используемых в интерфейсе чата. Все стили основаны на системном шрифте iOS и оптимизированы под удобство чтения и единый визуальный стиль.
Описание
ChatTypography
— это базовый класс, предоставляющий унифицированный доступ к различным стилям текста, таким как заголовки, подзаголовки, основной текст, подписи и другие. Использует .systemFont
с заданными размерами и весами для обеспечения консистентности по всему приложению.
Все стили шрифтов можно легко переопределить или расширить для поддержки кастомных шрифтов и тем.
Доступные стили шрифтов
🏷️ Заголовки
Переменная | Размер | Вес | Назначение |
---|---|---|---|
title | 17 | Regular | Обычный заголовок |
largeTitle | 28 | Semibold | Крупный заголовок (например, навигация) |
📖 Подзаголовки
Переменная | Размер | Вес | Назначение |
---|---|---|---|
subtitle | 16 | Regular | Подзаголовок |
🧾 Заголовки секций
Переменная | Размер | Вес | Назначение |
---|---|---|---|
heading1 | 17 | Semibold | Заголовок уровня 1 |
heading2 | 16 | Semibold | Заголовок уровня 2 |
📄 Основной текст
Переменная | Размер | Вес | Назначение |
---|---|---|---|
body | 15 | Regular | Основной текст |
bold | 15 | Semibold | Выделенный текст |
message | 14 | Regular | Сообщения в чате |
🔤 Подписи и мелкий текст
Переменная | Размер | Вес | Назначение |
---|---|---|---|
caption | 12 | Medium | Подпись, метаданные |
caption2 | 10 | Regular | Мелкая подпись (например, дата) |
📛 Вспомогательные элементы
Переменная | Размер | Вес | Назначение |
---|---|---|---|
footnote | 13 | Semibold | Примечания, футноты |
Пример использования
Актуальный пример можно найти в демо приложении в MainViewController+Themes
import ChatCenterUI
/// Настройки тем оформления
extension MainViewController {
func makeDarkTheme() -> ChatTheme {
return ChatTheme(typography: typography)
}
private var typography: ChatTypography {
let fonts = ChatTypography()
fonts.title = .systemFont(ofSize: 12, weight: .medium)
fonts.bold = .systemFont(ofSize: 15, weight: .regular)
fonts.message = .systemFont(ofSize: 15, weight: .regular)
return fonts
}
}