Компонент Color Picker библиотеки Naive UI представляет собой мощный инструмент для выбора цветов с поддержкой различных форматов (HEX, RGB, HSL) и богатым набором опций настройки. Он идеально подходит для построения пользовательских интерфейсов, где требуется интерактивный выбор цвета.
import { NColorPicker } from 'naive-ui'
Базовое использование:
<n-color-picker v-model:value="color" />
Здесь color — реактивная переменная, которая хранит
выбранное значение цвета.
#ff0000) или RGB (rgb(255, 0, 0)), а
также объектом HSL."hex", "rgb", "hsl". Позволяет
ограничить выбор только одним форматом.Пример использования с предустановленными цветами и поддержкой прозрачности:
<n-color-picker
v-model:value="color"
:show-alpha="true"
format="rgb"
:preset-colors="['#ff0000', '#00ff00', '#0000ff']"
/>
Компонент предоставляет несколько событий для отслеживания действий пользователя:
Пример:
<n-color-picker
v-model:value="color"
@update:value="handleUpdate"
@change="handleChange"
/>
<script setup>
import { ref } from 'vue'
const color = ref('#00ff00')
function handleUpdate(newColor) {
console.log('Цвет обновлен:', newColor)
}
function handleChange(newColor) {
console.log('Цвет окончательно выбран:', newColor)
}
</script>
Color Picker в Naive UI поддерживает несколько визуальных режимов:
"small", "medium",
"large" для изменения размера поля.Пример с встроенной панелью и кастомным размером:
<n-color-picker
v-model:value="color"
inline
size="large"
/>
Цвет может быть связан с другими компонентами интерфейса через реактивные переменные. Это позволяет создавать динамическое взаимодействие, например, изменение цвета фона элемента в реальном времени.
<div :style="{ backgroundColor: color }" class="color-box"></div>
<n-color-picker v-model:value="color" />
{ r, g, b, a } или
{ h, s, l, a }.v-model.<n-color-picker
v-model:value="color"
:preset-colors="[
{ label: 'Основные', colors: ['#f5222d', '#faad14', '#52c41a'] },
{ label: 'Дополнительно', colors: ['#13c2c2', '#722ed1'] }
]"
/>
NFormItem и NColorPicker легко интегрируются для работы с валидацией:
<n-form :model="form" :rules="rules">
<n-form-item label="Выбор цвета" path="color">
<n-color-picker v-model:value="form.color" />
</n-form-item>
</n-form>
<script setup>
import { reactive } from 'vue'
const form = reactive({ color: '#1890ff' })
const rules = {
color: [
{ required: true, message: 'Цвет обязателен', trigger: 'blur' }
]
}
</script>
Color Picker Naive UI — гибкий инструмент, полностью адаптируемый под интерфейс любого уровня сложности, от простых форм до сложных дизайнерских панелей.