Типографика

На странице представлены основные компоненты для работы с текстом.

  • Используется для крупных заголовков.
    DisplayTitle 1DisplayTitle 2DisplayTitle 3DisplayTitle 4
  • Используется для заголовков.
    Title 1Title 2Title 3
  • Используется для подзаголовков.
    Headline 1Headline 2
  • Используется для основного наборного текста.
    Text
  • Используется для основного текста.
    Paragraph
  • Используется для подзаголовков второго уровня.
    Subhead
  • Используется для основных подписей.
    FootnoteFootnote caps
  • Используется для мелких подписей.
    Caption 1Caption 1 caps Caption 2Caption 2 caps Caption 3Caption 3 caps
  • Определяет насыщенность шрифта со значениями '1' | '2' | '3', где '3' - обычное начертание, а '1' - самое жирное (используются токены семейства --vkui--font_weight_base[1,2,3]).

    <Text weight="3">Жирный текст</Text>

    Позволяет использовать акцентную насыщенность (токены семейства --vkui--font_weight_accent[1,2,3]). Использование возможно только при явном указании свойства weight.

    <Text weight="1" useAccentWeight>
      Акцентная жирная насыщенность для текста
    </Text>

    Позволяет “нормализовать” компонент, делая его блочным и отключая браузерные отступы. По умолчанию true для всех типографических компонентов, кроме Paragraph.

    <Paragraph Component="p" normalize>
      Текст в теге <p>
    </Paragraph>

    Позволяет переопределить тег, в котором рендерится контент. По умолчанию значение span. Обратите внимание на использование свойства normalize для отключения браузерных стилей тега p.

    <Paragraph Component="p" normalize>
      Текст в теге <p>
    </Paragraph>

    Задает display: inline-block, для возможности строчного отображения компонента. Полезно, когда необходимо расположить разные типографические компоненты в строку.

    <Text inline>Основной текст</Text> <Caption inline>(мелкая подпись)</Caption>

    Ряд компонентов (DisplayTitle, Title, Headline и Caption) обладают свойством level. Оно позволяет определить иерархию типографики, схожую со стандартными тегами <h1>...<h6>, где level="1" самый крупный вариант шрифта и далее по нисходящей. Для того, чтобы узнать, сколько уровней поддерживает тот или иной компонент, обратитесь к документации компонентов выше.

    Компоненты Footnote и Caption поддерживают свойство caps, которое трансформирует все буквы в заглавные.

    Каждый компонент типографики задаёт параметры шрифта (font-family, font-size, font-weight, line-height), которые будут применяться ко всему вложенному текстовому контенту, полагаясь на значения собственных токенов.

    Например, для Headline существует следующий набор токенов:

    --vkui--font_headline1--font_family--regular
    --vkui--font_headline1--font_family--compact
     
    --vkui--font_headline1--font_size--regular
    --vkui--font_headline1--font_size--compact
     
    --vkui--font_headline1--font_weight--regular
    --vkui--font_headline1--font_weight--compact
     
    --vkui--font_headline1--line_height--regular
    --vkui--font_headline1--line_height--compact
     
     
    --vkui--font_headline2--font_family--regular
    --vkui--font_headline2--font_family--compact
     
    --vkui--font_headline2--font_size--regular
    --vkui--font_headline2--font_size--compact
     
    --vkui--font_headline2--font_weight--regular
    --vkui--font_headline2--font_weight--compact
     
    --vkui--font_headline2--line_height--regular
    --vkui--font_headline2--line_height--compact

    В сумме 16 токенов для regular/compact представлений. В разных темах могут быть свои значения токенов.

    При стандартном использовании вам не нужно задумываться о применении regular/compact-токенов, потому что этим управляет VKUI, однако, если вы хотите “зафиксировать” параметры шрифта, можно любой компонент типографики обернуть в AdaptivityProvider с нужным значением:

    <AdaptivityProvider sizeY="regular">
      <Text>Всегда regular-значения токенов</Text>
    </AdaptivityProvider>

    Если вам не подходит значение font-family по-умолчанию или в выбранной теме, то вы можете переопределить значение токенов на своё значение, но сделать это будет нужно для всех токенов типографики. В качестве примера можно обратиться к нашей настройке окружения ↗ для e2e-тестирования.

    Непосредственно подключить свой шрифт необходимо самостоятельно, руководствуясь выбранными фреймворками и системой сборки.

    Оберните текст или другие элементы, к которым вы хотите применить нужные параметры шрифта, выбранным тегом:

    <Title>Мой заголовок</Title>
     
    <Text Component="div">
      {/* Параметры шрифта применятся для любого вложенного контента. */}
      {children}
    </Text>

    Если вы используете готовые компоненты VKUI (например, Header или SimpleCell) вам не нужно задумываться о выборе конкретного компонента типографики, потому что подходящие уже применяются внутри компонентов библиотеки. Если вы делаете свои компоненты на базе VKUI, то при выборе компонентов типографики ориентируйтесь на назначение каждого компонента.

    СвойствоОписание
    ComponentElementType<any, keyof IntrinsicElements>
    По умолчанию: span
    getRootRefRef<HTMLElement>
    По умолчанию: -
    inlineboolean

    Делает блок инлайновым.

    По умолчанию: false
    level"1" | "2" | "3" | "4"

    Уровень заголовка (от 1 до 4).

    По умолчанию: 1
    normalizeboolean

    Убирает внешние отступы.

    По умолчанию: true
    useAccentWeightboolean

    Включает акцентный тип начертания шрифта. Используются токены fontWeightAccent[1, 2, 3] Используется только вместе с weight.

    По умолчанию: -
    weight"1" | "2" | "3"

    Задаёт начертание шрифта, отличное от стандартного.

    По умолчанию: -
    СвойствоОписание
    ComponentElementType<any, keyof IntrinsicElements>
    По умолчанию: span
    getRootRefRef<HTMLElement>
    По умолчанию: -
    inlineboolean

    Делает блок инлайновым.

    По умолчанию: false
    level"1" | "2" | "3"

    Уровень заголовка (от 1 до 3).

    По умолчанию: 1
    normalizeboolean

    Убирает внешние отступы.

    По умолчанию: true
    useAccentWeightboolean

    Включает акцентный тип начертания шрифта. Используются токены fontWeightAccent[1, 2, 3] Используется только вместе с weight.

    По умолчанию: -
    weight"1" | "2" | "3"

    Задаёт начертание шрифта, отличное от стандартного.

    По умолчанию: -
    СвойствоОписание
    ComponentElementType<any, keyof IntrinsicElements>
    По умолчанию: span
    getRootRefRef<HTMLElement>
    По умолчанию: -
    inlineboolean

    Делает блок инлайновым.

    По умолчанию: false
    level"1" | "2"

    Уровень заголовка (от 1 до 2).

    По умолчанию: 1
    normalizeboolean

    Убирает внешние отступы.

    По умолчанию: true
    useAccentWeightboolean

    Включает акцентный тип начертания шрифта. Используются токены fontWeightAccent[1, 2, 3] Используется только вместе с weight.

    По умолчанию: -
    weight"1" | "2" | "3"

    Задаёт начертание шрифта, отличное от стандартного.

    По умолчанию: -
    СвойствоОписание
    ComponentElementType<any, keyof IntrinsicElements>
    По умолчанию: span
    getRootRefRef<HTMLElement>
    По умолчанию: -
    inlineboolean

    Делает блок инлайновым.

    По умолчанию: false
    normalizeboolean

    Убирает внешние отступы.

    По умолчанию: true
    useAccentWeightboolean

    Включает акцентный тип начертания шрифта. Используются токены fontWeightAccent[1, 2, 3] Используется только вместе с weight.

    По умолчанию: -
    weight"1" | "2" | "3"

    Задаёт начертание шрифта, отличное от стандартного.

    По умолчанию: -
    СвойствоОписание
    ComponentElementType<any, keyof IntrinsicElements>
    По умолчанию: span
    getRootRefRef<HTMLElement>
    По умолчанию: -
    inlineboolean

    Делает блок инлайновым.

    По умолчанию: false
    normalizeboolean

    Убирает внешние отступы.

    По умолчанию: false
    useAccentWeightboolean

    Включает акцентный тип начертания шрифта. Используются токены fontWeightAccent[1, 2, 3] Используется только вместе с weight.

    По умолчанию: -
    weight"1" | "2" | "3"

    Задаёт начертание шрифта, отличное от стандартного.

    По умолчанию: -
    СвойствоОписание
    ComponentElementType<any, keyof IntrinsicElements>
    По умолчанию: span
    getRootRefRef<HTMLElement>
    По умолчанию: -
    inlineboolean

    Делает блок инлайновым.

    По умолчанию: false
    normalizeboolean

    Убирает внешние отступы.

    По умолчанию: true
    useAccentWeightboolean

    Включает акцентный тип начертания шрифта. Используются токены fontWeightAccent[1, 2, 3] Используется только вместе с weight.

    По умолчанию: -
    weight"1" | "2" | "3"

    Задаёт начертание шрифта, отличное от стандартного.

    По умолчанию: -
    СвойствоОписание
    capsboolean

    Отображение текста в верхнем регистре.

    По умолчанию: -
    ComponentElementType<any, keyof IntrinsicElements>
    По умолчанию: span
    getRootRefRef<HTMLElement>
    По умолчанию: -
    inlineboolean

    Делает блок инлайновым.

    По умолчанию: false
    normalizeboolean

    Убирает внешние отступы.

    По умолчанию: true
    useAccentWeightboolean

    Включает акцентный тип начертания шрифта. Используются токены fontWeightAccent[1, 2, 3] Используется только вместе с weight.

    По умолчанию: -
    weight"1" | "2" | "3"

    Задаёт начертание шрифта, отличное от стандартного.

    По умолчанию: -
    СвойствоОписание
    capsboolean

    Отображение текста в верхнем регистре.

    По умолчанию: -
    ComponentElementType<any, keyof IntrinsicElements>
    По умолчанию: span
    getRootRefRef<HTMLElement>
    По умолчанию: -
    inlineboolean

    Делает блок инлайновым.

    По умолчанию: false
    level"1" | "2" | "3"

    Уровень заголовка (от 1 до 3).

    По умолчанию: 1
    normalizeboolean

    Убирает внешние отступы.

    По умолчанию: true
    useAccentWeightboolean

    Включает акцентный тип начертания шрифта. Используются токены fontWeightAccent[1, 2, 3] Используется только вместе с weight.

    По умолчанию: -
    weight"1" | "2" | "3"

    Задаёт начертание шрифта, отличное от стандартного.

    По умолчанию: -