Компонент P в библиотеке Naive UI используется для
отображения абзацев текста с расширенной типографикой. Он предоставляет
гибкий способ форматирования текста, позволяя управлять стилями,
размерами, выравниванием и интервалами, сохраняя при этом единый
визуальный язык интерфейса.
Psize – задаёт размер текста.
Поддерживаются следующие значения:
"tiny" – очень маленький текст"small" – малый текст"medium" – стандартный текст (по умолчанию)"large" – крупный текст<n-p size="large">Это крупный абзац текста.</n-p>depth – управляет визуальной
«тяжестью» текста, аналогичной насыщенности. Возможные значения:
1, 2, 3. Чем выше значение, тем
более выраженный акцент на тексте.
<n-p depth="2">Абзац со средней визуальной важностью.</n-p>strong – делает текст полужирным.
Используется для выделения ключевых фраз или важных элементов
интерфейса.
<n-p strong>Важная информация.</n-p>ellipsis – управляет обрезкой
текста с многоточием при переполнении контейнера. Может принимать
булевое значение или объект с параметрами:
rows – количество строк перед обрезкойexpandText – текст кнопки для разворачивания<n-p :ellipsis="{ rows: 2, expandText: 'Подробнее' }">
Длинный текст, который будет обрезан после двух строк с возможностью развернуть.
</n-p>tag – задаёт HTML-тег, который
будет использован для рендеринга абзаца. По умолчанию используется
<p>, но можно указать <div>,
<span> или другой тег для семантической или
стилистической задачи.
<n-p tag="div">Абзац, отрендеренный как div.</n-p>Компонент поддерживает стандартные CSS-свойства через проп
style, а также классы через class.
<n-p class="custom-paragraph" style="color: #333; line-height: 1.8;">
Текст с кастомными стилями.
</n-p>
Также доступна интеграция с SCSS или CSS-модулями для более сложной типографики, включая отступы, интервалы между строками и адаптивные размеры.
P можно использовать внутри других компонентов Naive UI,
таких как Card, Collapse или
Modal, для правильного форматирования текста внутри
контейнеров.
<n-card title="Пример с P">
<n-p>
Этот абзац находится внутри карточки и наследует стили контекста.
</n-p>
</n-card>
При этом можно комбинировать strong, depth
и ellipsis для создания акцентированных текстовых блоков,
которые остаются читабельными и визуально гармоничными.
Компонент P полностью поддерживает локализацию,
поскольку отображает стандартный текст, который может быть заменён через
любые механизмы i18n.
<n-p>{{ $t('welcome_message') }}</n-p>
Использование перевода позволяет автоматически подстраивать размер шрифта и перенос строк в зависимости от длины текста на разных языках.
С помощью Vue reactive можно динамически изменять свойства
P:
<template>
<n-p :size="textSize" :strong="isImportant">{{ message }}</n-p>
</template>
<script setup>
import { ref } from 'vue'
const message = ref('Динамический текст')
const textSize = ref('medium')
const isImportant = ref(false)
</script>
Это позволяет реализовывать адаптивные интерфейсы, где абзацы могут менять визуальный акцент в зависимости от состояния приложения.
ellipsis для предотвращения переполнения
контейнеров, особенно на мобильных устройствах.depth и strong применяются для визуальной
иерархии текста: важные блоки должны быть заметными, второстепенные —
менее выраженными.P в сложную
семантическую структуру страницы без нарушения HTML-валидности.Компонент P в Naive UI сочетает простоту использования с
гибкой типографикой, обеспечивая удобный инструмент для построения
читаемых, структурированных и визуально согласованных текстовых блоков в
современных веб-приложениях на Vue.js.