chalk-palette
v2.1.0
Published
A secure and lightweight alternative to chalk with 140+ colors and autocomplete support
Maintainers
Readme
chalk-palette
chalk-palette — это ультра-легкая библиотека для Node.js, которая превращает скучный черно-белый текст терминала в яркий интерактивный интерфейс. Поддерживает более 140 цветов, градиенты и полноценные визуальные эффекты (VFX) вроде «Матрицы» или «Огня».
🛠️ Установка
Просто установите пакет через ваш менеджер пакетов:
npm install chalk-palette📖 Подробное описание функций (API Reference)
Библиотека разделена на две части: базовые методы (доступны сразу через chalk) и анимированные (доступны через chalk.animation).
🎨 1. Базовые методы стилизации
chalk.[ИмяЦвета](text) / chalk.[стиль].[ИмяЦвета](text)
- Что делает: Окрашивает текст или применяет к нему стили в пределах одной строки.
- Аргументы:
text(String) — текст, который нужно раскрасить. - Палитра: Доступно более 140 цветов (регистр букв не важен, например:
Red,red,Tomato,tomato). - Пример:
chalk.bold.italic.Tomato("Привет")
chalk.setCustomColor(r, g, b)
- Что делает: Сохраняет ваш собственный цвет в память библиотеки.
- Аргументы:
r,g,b(Numbers) — числа от 0 до 255. - Что возвращает: Ничего. Результат выводится следующим методом.
- Пример:
chalk.setCustomColor(255, 128, 0); // Сохранили оранжевый console.log(chalk.custom("Этот текст станет оранжевым"));
chalk.customise(text)
- Что делает: Ищет ссылки в тексте и превращает их в кликабельные гиперссылки для терминала. Знаки препинания вокруг ссылок не ломаются.
- Аргументы:
text(String) — строка с текстом и ссылками. - Что возвращает: Отформатированную строку (String) и автоматически выводит её в
console.log.
🎬 2. Анимации и элементы интерфейса (chalk.animation.*)
💡 Важно: Большинство анимаций возвращают
Promise. Используйтеawait, чтобы эффекты воспроизводились строго друг за другом.
.gradient(text, colorFrom, colorTo)
- Что делает: Красит текст в плавный TrueColor-градиент. Каждый символ получает свой оттенок.
- Аргументы:
text(String) — исходный текст.colorFrom,colorTo(String) — названия стартового и конечного цвета из палитры (например,'Red','Blue').
- Что возвращает: Строку (String) с ANSI-кодами. Не возвращает Promise, выводить через
console.log.
.typewriter(text, speed)
- Что делает: Посимвольно печатает текст на экране, имитируя ручной ввод.
- Аргументы:
text(String) — текст для вывода.speed(Number) — задержка в миллисекундах между буквами (по умолчанию50).
- Что возвращает:
Promise<void>.
.rainbow(text, speed)
- Что делает: Запускает бесконечный цикл переливания текста всеми цветами радуги прямо на месте.
- Аргументы:
text(String) — текст.speed(Number) — скорость смены цветов в мс (по умолчанию50).
- Что возвращает: Объект с методом управления:
{ stop: () => void }. - Пример:
const fx = chalk.animation.rainbow("Текст"); setTimeout(() => fx.stop(), 3000); // Остановит радугу через 3 секунды
.spinner(text, style)
- Что делает: Создает анимированную крутилку (индикатор загрузки) в начале строки.
- Аргументы:
text(String) — текст рядом с крутилкой.style(String) — стиль анимации ('dots','line','arrows').
- Что возвращает: Объект управления:
{ stop: (finalStatus) => void }. Метод.stop()останавливает анимацию, убирает спиннер, ставит зеленую галочку и выводит финальный статус.
.progressBar(totalSteps)
- Что делает: Отрисовывает шкалу прогресса, которая автоматически меняет цвет от красного (в начале) к зеленому (в конце).
- Аргументы:
totalSteps(Number) — максимальное количество шагов (например,100). - Что возвращает: Объект управления:
{ update: (currentStep) => void }. Метод.update()принимает текущий шаг и перерисовывает шкалу.
.passwordMask(question, maskChar)
- Что делает: Скрывает вводимые пользователем данные с клавиатуры за "звездочками" (или любым другим символом).
- Аргументы:
question(String) — текст вопроса (например,"Введите пароль: ").maskChar(String) — символ маски (по умолчанию*).
- Что возвращает:
Promise<string>— возвращает чистую строку, которую ввел пользователь.
🖥️ 3. Полноэкранные визуальные эффекты (VFX)
⚠️ Особенность экрана: Все функции ниже автоматически разворачивают анимацию на альтернативном экране терминала. По окончании работы они стирают анимацию и возвращают вашу консоль в исходный вид, не засоряя историю логов.
.textAssemble(text, duration)
- Что делает: Разбрасывает буквы по экрану, а затем плавно стягивает их в центр, собирая в итоговое слово.
- Аргументы:
text(String),duration(Number, в мс, по умолчанию4500). - Что возвращает:
Promise<void>.
.textLaser(text, duration)
- Что делает: Рисует бегущий лазерный луч, который оставляет за собой выжженные цветные буквы текста.
- Аргументы:
text(String),duration(Number, в мс, по умолчанию2500). - Что возвращает:
Promise<void>.
.textShimmer(text, duration)
- Что делает: Показывает готовый текст, по которому слева направо пробегает яркая световая волна (блик).
- Аргументы:
text(String),duration(Number, в мс, по умолчанию2000). - Что возвращает:
Promise<void>.
.textMorph(textFrom, textTo, duration)
- Что делает: Берет первое слово, устраивает хаотичный танец букв и плавно превращает его во второе слово.
- Аргументы:
textFrom(String),textTo(String),duration(Number, в мс, по умолчанию3800). - Что возвращает:
Promise<void>.
.matrix(duration, colorName)
- Что делает: Полноэкранная заставка цифрового дождя из символов в стиле к/ф "Матрица".
- Аргументы:
duration(Number, в мс, по умолчанию5000).colorName(String) — цвет дождя ('green','orange','blue','yellow','red').
- Что возвращает:
Promise<void>.
.fire(duration)
- Что делает: Полноэкранный процедурный генератор бушующего пламени на основе физики распределения тепла.
- Аргументы:
duration(Number, в мс, по умолчанию5000). - Что возвращает:
Promise<void>.
.glitch(text, duration)
- Что делает: Размещает текст по центру, заставляя его бешено трястись по горизонтали, подменяя часть символов хакерскими глифами.
- Аргументы:
text(String),duration(Number, в мс, по умолчанию3000). - Что возвращает:
Promise<void>.
.pulse(text, duration)
- Что делает: Текст по центру экрана плавно разгорается и затухает по синусоидальной траектории.
- Аргументы:
text(String),duration(Number, в мс, по умолчанию4000). - Что возвращает:
Promise<void>.
.textExplode(text, config)
- Что делает: Печатает текст, подсвечивает центральный символ ("заряд C4"), пульсирует, а затем взрывает строку с образованием круговой shockwave-волны и разлетом пепла.
- Аргументы:
text(String) — текст.config(Object) — параметры взрыва:{ type: 'c4'|'nuke'|'torpedo', duration: 3000, c4Color: 'red' }.
- Что возвращает:
Promise<void>.
📄 Лицензия
Проект распространяется под свободной лицензией MIT. Вы можете бесплатно использовать его в любых личных и коммерческих целях.
