API ВЕГА
English

Kodza

Компоненты интерфейса, которые может получить ваш AI. Чистые HTML, CSS и JavaScript: без фреймворков, сборки и зависимостей.

kodza.dev · Каталог · Документация · Запросить компонент

Просто попросите

Kodza — это ещё и MCP-сервер, доступный по адресу https://kodza.dev/api/mcp (Streamable HTTP). Бесплатный, без регистрации и API key. Подключите его к своему AI:

claude mcp add -t http kodza https://kodza.dev/api/mcp

Затем попросите своими словами: «Добавь кнопку Fill из Kodza в мой hero-блок». Сервер передаст точные файлы из этого репозитория и подскажет, куда их добавить, а не станет подбирать похожий вариант.

В редакторе

Codex

codex mcp add kodza --url https://kodza.dev/api/mcp

VS Code (GitHub Copilot)

code --add-mcp '{"name":"kodza","type":"http","url":"https://kodza.dev/api/mcp"}'

Cursor (~/.cursor/mcp.json)

{ "mcpServers": { "kodza": { "url": "https://kodza.dev/api/mcp" } } }

Предпочитаете запускать сервер на своём компьютере? Команда npx -y kodza-mcp запускает тот же сервер локально (kodza-mcp). Остальные варианты описаны в документации.

Что он умеет

ИнструментОписание
search_componentsНаходит компоненты по их назначению или внешнему виду («кнопка с заливкой при наведении», «липкая шапка», «выбор даты») либо выводит список компонентов в выбранной категории.
get_componentВозвращает один компонент: его точные HTML, CSS и JS-файлы (или команды для их скачивания), настройки (переменные --kz-…, классы-модификаторы, атрибуты data-), описание ключевых параметров и значения для тёмного режима, а также инструкции по подключению к обычной странице, WordPress, Shopify, React или артефакту Claude.

Сервер работает только на чтение: передаёт код и не вносит изменений в ваш проект. Он учитывает, какие компоненты и каким ассистентом запрашиваются, но не сохраняет введённый вами текст.

Шесть примеров

Выбраны из 154 компонентов. Демонстрация каждого работает на kodza.dev, а по названию можно перейти к файлам.

Trapdoor Menu · Hero Showcase · Topographic Lines · Fill Button · Date Picker · Hover List Preview

Или возьмите файлы

В каждой папке в components/ находится один компонент: HTML, CSS и, если нужно, JS. Подключите CSS, вставьте HTML и загрузите JS. Компонент будет работать на обычной HTML-странице, в WordPress, Shopify или React — это просто код.

Код написан так, будто уже завтра отправится в продакшен. Скорее всего, так и будет.

  • CSS затрагивает только классы kodza-. Сгенерированная защита темы не позволяет CSS вашего сайта влиять на компонент.

  • Настройки задаются через CSS-переменные (--kz-…), варианты — через классы-модификаторы или атрибуты data-.

  • На одной странице можно разместить сколько угодно экземпляров компонента; для всех них достаточно одной копии JS.

  • Каждый компонент поддерживает клавиатурную навигацию, видимый индикатор фокуса и prefers-reduced-motion.

  • События kodza:init и kodza:destroy предназначены для контента, загружаемого позже: тем с AJAX, Swup и React.

Компоненты

Их уже 154, и список продолжает расти. По названию можно перейти в папку компонента, а его демонстрация доступна на kodza.dev.

Кнопки

КомпонентОписание
3D Press ButtonКнопка с настоящим объёмом: лицевая часть утапливается в основание, при нажатии доходит до конца даже от лёгкого касания, а затем отскакивает с небольшим упругим движением. Подойдёт для оформления клавиши, брутального блока или переключателя, который остаётся нажатым.Демонстрация
Add to CartКнопка добавления в корзину подтверждает действие галочкой, пока копия изображения товара перемещается к значку корзины, а счётчик увеличивается на единицу. Если запрос завершается ошибкой, изменения откатываются.Демонстрация
Arrow ButtonПри наведении стрелка прорисовывается, сдвигает подпись в сторону, а при уходе курсора продолжает движение сквозь кнопку.Демонстрация
Call ButtonКруглая кнопка с телефонной иконкой раскрывается в полноценную кнопку «Book a call» с лёгкой анимацией звонка. На сенсорных экранах остаётся раскрытой. Только CSS.Демонстрация
Copy to ClipboardКоманда или фраза для AI с кнопкой копирования: иконка превращается в прорисовывающуюся галочку, а подпись сменяется на «Copied».Демонстрация
Fill ButtonЗаливка кнопки начинается точно в точке, где курсор касается её, и исчезает в направлении, откуда он уходит. Подпись прокручивается, а стрелка движется по кругу.Демонстрация
Hold to ConfirmДля действий, которые нельзя отменить: удерживайте кнопку, пока чернильная заливка не заполнит её. Если отпустить раньше времени, заливка исчезнет; если удерживать до конца, появится галочка. Работает с мышью, касанием, Space и Enter.Демонстрация
Ink LikeКнопка лайка: сердце заполняется чернилами, по поверхности проходит небольшая волна, а при отмене лайка заливка исчезает. Счётчик прокручивает цифры по одной, учитывая переносы (999 → 1,000), и откатывает значение, если запрос завершается ошибкой.Демонстрация
Loading ButtonКнопка показывает ход выполнения: подпись меняется с Deploy на Deploying, появляется кольцо, а затем оно замыкается в галочку с надписью Deployed. Ширина кнопки остаётся неизменной.Демонстрация
Magnetic ButtonКнопка слегка наклоняется к приближающемуся указателю, а её подпись смещается чуть дальше; затем кнопка плавно возвращается на место. Область нажатия движется вместе с ней. На сенсорных экранах эффект не мешает.Демонстрация
Morph ButtonПри наведении кнопка в форме капсулы сжимается до круга, а её подпись сменяется стрелкой. Область нажатия остаётся на месте. Только CSS.Демонстрация
Roll ButtonПри наведении подпись кнопки прокручивается вверх по одной букве; при уходе курсора анимация продолжается в том же направлении. Обычный CSS и несколько строк JS.Демонстрация
Scroll DownПодсказка внизу hero-блока: стрелка в кольце или мышь с колесом прокрутки, которое время от времени движется. Нажатие плавно прокручивает страницу к следующему разделу, при первой прокрутке подсказка исчезает, а при возвращении наверх появляется снова.Демонстрация
Share ButtonПри нажатии на Share варианты публикации выезжают из-за кнопки; последний из них раздвигает её, стрелка взлетает, а крестик прорисовывается. Кнопка Copy link сменяется галочкой; X и LinkedIn открываются в небольшом окне.Демонстрация
Split ButtonОсновное действие расположено слева, остальные варианты скрыты за стрелкой. Цветной акцент перемещается между половинами; при выборе другого действия подпись прокручивается, а ширина кнопки плавно меняется.Демонстрация

Ссылки

КомпонентОписание
Ссылка со стрелкойСсылка, которая указывает направление: в обычном состоянии отображается шеврон, а при наведении его линия выдвигается, и стрелка превращается из › в →. Вариант для перехода назад указывает в противоположную сторону. Только CSS.Демо
Ссылка для скачиванияРядом с текстом ссылки отображаются тип и размер файла — они считываются непосредственно из файла. При наведении стрелка опускается в лоток, а при нажатии вылетает из него и возвращается сверху.Демо
Внешняя ссылкаСсылка показывает, что ведёт за пределы сайта: линия проходит под текстом к символу ↗, который затем вылетает к углу, вытягивая за собой линию. Только CSS.Демо
Ссылка на сноскуСноски остаются на одной строке с текстом. На широком экране примечание располагается на полях на уровне строки и появляется одновременно с номером; на узком — раскрывается под строкой. Подхватывает сноски WordPress без изменений.Демо
Якорь заголовкаСимвол # рядом с каждым заголовком. При наведении указателя на заголовок он выдвигается с поля, а на сенсорном экране появляется после последнего слова. Нажмите на символ или заголовок, чтобы добавить раздел в адресную строку и скопировать ссылку.Демо
Ссылка с подсветкойШтрих маркера проходит за текстом ссылки или сплошной блок меняет цвет текста на белый точно под своей границей.Демо
Предпросмотр ссылкиНаведите указатель на ссылку — над ней раскроется карточка страницы, на которую она ведёт. На каждый абзац приходится одна карточка: она плавно перемещается от ссылки к ссылке, изображение растворяется, а текст прокручивается.Демо
Ссылка на цитатуВыделите слова в статье — появится кнопка-ссылка на них: адрес страницы с текстовым фрагментом, который открывает нужное место и подсвечивает цитату. После нажатия текст кнопки меняется на «Ссылка скопирована» и появляется галочка.Демо
Ссылка с перемешиванием текстаПри наведении текст ссылки перемешивается, а затем восстанавливается слева направо: символы расшифровываются, буквы перемешиваются или срабатывает эффект табло с перекидными символами.Демо
Ссылка с подчёркиваниемПодчёркивание появляется слева и исчезает справа или движется в обратном направлении. Оно следует за текстом при переносе строк, словно линия, нарисованная ручкой.Демо

Формы

КомпонентОписание
ФлажокНастоящие флажки с новым оформлением: заливка появляется из центра, а галочка рисуется сама. В флажке «Выбрать всё» вместо галочки отображается тире, если выбрана только часть пунктов. Поддерживаются и карточки.Демо
Выбор цветаПолноценное поле выбора цвета с удобной панелью: квадрат насыщенности, ползунок оттенка, поле для ввода HEX-кода, предустановленные цвета, пипетка и копирование. При выборе предустановленного цвета маркеры плавно перемещаются к нему.Демо
Выбор датыПоле ввода даты с календарём: месяцы плавно перемещаются в нужном направлении, название месяца прокручивается, а отметка перемещается на выбранный день. Полная поддержка клавиатуры.Демо
Загрузка файловОбласть для перетаскивания поверх настоящего поля выбора файла: при наведении файлов граница движется, для каждого файла появляется строка с миниатюрой и анимированным индикатором загрузки. Слишком большие файлы отмечаются отдельно.Демо
Множественный выборНастоящий список с множественным выбором, оформленный в виде набора тегов: вводите текст, чтобы отфильтровать варианты, и выбирайте их, чтобы добавить тег. Удалённые теги сжимаются и исчезают, а остальные плавно занимают освободившееся место.Демо
Поле OTPПоле для одноразового кода: одно настоящее поле ввода отображается в виде отдельных ячеек. Цифры плавно встают на место, вставка кода и автозаполнение из SMS работают без дополнительной настройки, а после ввода всех цифр ячейки заполняются цветом.Демо
ПарольПоле пароля с зачёркивающим себя значком глаза, индикатором надёжности, который заполняется по мере усиления пароля, анимированной оценкой и правилами, которые отмечаются по мере выполнения.Демо
Переключатель вариантовНастоящие переключатели вариантов с одной общей точкой для всей группы: при выборе другого пункта точка перемещается к нему и растягивается по пути, словно капля чернил.Демо
Ползунок диапазонаНастоящие поля выбора диапазона на стилизованной дорожке: рядом с маркером появляется облачко со значением, деления темнеют по мере заполнения дорожки, а два маркера отталкивают друг друга вместо того, чтобы пересекаться.Демо
Поиск с автодополнениемПоле поиска на основе настоящего списка datalist: сгруппированные подсказки раскрываются под полем, а введённые буквы в них подчёркиваются. Нажмите /, чтобы перейти к поиску; для управления используйте стрелки и Enter.Демо
Список выбораНастоящий список выбора с обновлённым оформлением: список раскрывается из поля, подсветка перемещается между вариантами, а значение прокручивается до выбранного. Также доступен компактный вариант для панелей инструментов.Демо
Оценка звёздамиНастоящие переключатели вариантов, оформленные в виде звёзд: при наведении указателя они загораются одна за другой, подпись меняется от «Так себе» до «Отлично», а статическая оценка заполняется при появлении на экране.Демо
ПереключательНастоящий флажок с оформлением в виде переключателя: заливка заполняет дорожку за ползунком, ползунок растягивается при нажатии и упруго возвращается на место. Поддерживаются подписи и панели инструментов.Демо
Текстовое полеТекстовое поле, в котором подпись складывается вверх по мере ввода. Кнопка очищает поле, при корректном значении появляется галочка, а подсказка сменяется сообщением об ошибке.Демо
Многострочное полеМногострочное поле, в котором подпись складывается вверх, высота плавно подстраивается под текст, а рамка заполняется по мере приближения к лимиту. В последней пятой части лимита отображается число оставшихся символов.Демо

Навигация

КомпонентОписание
Хлебные крошкиЕсли цепочка не помещается в одну строку, её середина сворачивается за кнопкой «…». Нажимайте на неё, чтобы постепенно раскрывать элементы.Демо
Кнопка-бургерКнопка меню: линии сходятся, а затем пересекаются; надпись «Меню» превращается в «Закрыть» при фиксированной ширине. Компонент учитывает состояние aria-expanded и вызывает событие kodza:burger, поэтому управляет уже существующим меню.Демо
Палитра командПалитра команд, открываемая сочетанием ⌘K, отображается в настоящем диалоговом окне. Результаты фильтруются по мере ввода, совпавшие буквы подчёркиваются, а подсветка плавно перемещается между ними.Демо
Контекстное менюМеню по правому щелчку раскрывается точно в месте нажатия, остаётся в пределах экрана и поддерживает управление с клавиатуры сочетанием Shift + F10.Демо
Выпадающее менюМеню раскрывается из кнопки, а подсветка плавно перемещается между пунктами. Подходит для действий и выбора; поддерживает клавиши со стрелками и переход к пунктам по первой букве.Демо
Раскрывающееся меню-капсулаКнопка «Меню» превращается в окружающее её меню: карточка расширяется, затем раскрывается, а кнопка «Закрыть» остаётся на месте. Ссылки появляются по мере того, как край карточки открывает их. В нижней части экрана меню раскрывается вверх.Демо
Полноэкранное менюПолноэкранное меню раскрывается сверху, словно занавес: его край изгибается при движении, страница отступает под ним, а ссылки появляются одна за другой вслед за краем. При закрытии анимация проигрывается в обратном направлении.Демо
Навигация при наведенииСсылки сгруппированы в капсулу. Подсветка скользит вслед за указателем и возвращается к текущей странице. В версии ink текст становится белым точно по краям подсветки.Демо
Многоуровневое менюБоковое меню-бургер для навигации с несколькими уровнями: каждый вложенный список выезжает поверх предыдущего, верхняя строка меняется на название текущего уровня и позволяет вернуться назад. Компонент считывает список, сформированный функцией wp_nav_menu().Демо
ПагинацияСемь элементов остаются на месте: контрастная плашка перемещается к выбранной странице, а изменившиеся номера прокручиваются на новые позиции. В комплекте есть компактный вариант.Демо
Шапка при прокруткеПлавающая полупрозрачная капсула не закрывает верх страницы, становится матовой при прокрутке, сдвигается, пока вы читаете, и превращается в тёмное стекло над тёмными разделами.Демо
Меню-жалюзиМеню раскрывается под шапкой, словно жалюзи: ссылки появляются одна за другой по мере движения края, а надпись «Меню» сменяется на «Закрыть». Панель реализована как встроенный popover, поэтому поддержка Escape, закрытия по щелчку снаружи и возврата фокуса доступна сразу.Демо
Меню с боковым раскрытиемМеню находится под страницей: страница сдвигается влево и уменьшается, превращаясь в карточку, а под ней открывается меню. Ссылки появляются одна за другой вслед за краем страницы. Щелчок по карточке закрывает меню.Демо
Боковое менюБоковая панель выезжает поверх страницы, после чего крупные ссылки появляются одна за другой. Это настоящее диалоговое окно: фокус остаётся внутри, а клавиша Escape закрывает панель. Без GSAP.Демо
Горизонтальное меню с последовательным раскрытиемКнопка последовательно открывает ссылки, начиная с ближайшей, а при закрытии возвращает их в обратном порядке. Надпись на кнопке меняется на «Закрыть». Без GSAP.Демо
Пошаговая формаПроцесс из четырёх шагов: линия заполняется, на каждом завершённом шаге рисуется галочка, а содержимое появляется со стороны следующего шага.Демо
Содержание страницыКарточка содержания формируется на основе заголовков страницы. Маркер следует за читаемым разделом, кольцо заполняется, а оставшееся время отсчитывается. На телефонах отображается полоска.Демо
ВкладкиВкладки с плашкой или линией, которая перемещается к выбранному пункту. Панель появляется со своей стороны. Поддерживаются все стандартные способы управления с клавиатуры.Демо
Меню-люкНажмите «Меню», и страница откинется вниз на петле, словно люк, открывая меню под ней. Ссылки появляются одна за другой вслед за краем страницы, а изображение движется за указателем. При закрытии анимация проигрывается в обратном порядке. Без GSAP.Демо

Всплывающие элементы

КомпонентОписание
Согласие на использование cookieКарточка с прозрачными условиями: кнопки «Отклонить» и «Принять» имеют одинаковый вес, кнопка «Настроить» раскрывает категории, выбор сохраняется, а ссылка позволяет снова открыть карточку.Демо
Диалоговое окноНастоящее диалоговое окно вырастает из открывшей его кнопки, а при закрытии возвращается в неё. В варианте с подтверждением перед удалением данных требуется ввести имя.Демо
Всплывающая панельПанель раскрывается от элемента-триггера, а стрелка указывает на него. Если места недостаточно, панель меняет положение. Её можно открыть щелчком или при наведении; во втором случае она работает как карточка и остаётся на месте.Демо
Интерактивный турПошаговое знакомство с интерфейсом: страница затемняется, вокруг каждого элемента появляется подсветка, которая перемещается к следующему и меняет форму. За ней следует карточка с пояснением. Туром можно управлять с клавиатуры.Демо
Выдвижная панельПанель выезжает справа, а на телефонах поднимается снизу. Её можно перетаскивать; предусмотрены положения на половине и на всю высоту, а быстрый жест закрывает панель.Демо
Всплывающее уведомлениеУведомления складываются стопкой и расходятся при наведении. Время до закрытия отображается тонкой линией, уведомление можно убрать свайпом, а уведомление о загрузке сменяется сообщением об успехе.Демо
ПодсказкаДля всей группы используется одна подсказка: при первом наведении она появляется с задержкой, а затем перемещается между кнопками, подстраивая размер под текст. Внутри также отображается сочетание клавиш.Демо

Обратная связь и загрузка

КомпонентОписание
УведомлениеСообщение на странице: примечание, подтверждение, предупреждение или ошибка. Тип сообщения обозначается значком, а не цветом. Значок рисуется самостоятельно; закрытое уведомление сворачивается, а сообщение об ошибке раскрывает журнал.Демо
Пустое состояниеСостояние списка, в котором нет элементов: CSS-иллюстрация реагирует на приближение курсора, рядом появляется короткое пояснение и следующий шаг. Предусмотрен отдельный вариант для поиска без результатов.Демо
Индикатор выполненияПолоса или кольцо, управляемые значением data-value: проценты прокручиваются, как показания одометра, сегмент движется, пока значение неизвестно, а при достижении 100 % появляется галочка.Демо
СкелетонЗаготовки элементов повторяют форму контента и покрыты общим бликом. При загрузке мягкая граница проходит сверху вниз, превращая каждую заготовку в строку содержимого; для изображений, загружающихся с задержкой, эффект сохраняется.Демо
Индикатор загрузкиИндикатор загрузки подстраивается под размер текста: это может быть пульсирующее кольцо, двенадцать полос, три точки или ячейка Брайля в стиле терминала. Добавьте .is-done — и вместо индикатора появится галочка, а текст плавно сменится.Демо
Верхняя полоса загрузкиТонкая полоса вверху экрана, которая отображается во время загрузки страницы: она постепенно продвигается короткими шагами, доходит до конца и исчезает вправо. На ссылках сайта запускается автоматически.Демо

Отображение данных

КомпонентОписание
АккордеонВопросы раскрываются вместе с ответами на основе встроенного элемента Details: панель открывается на фактическую высоту, ответ плавно появляется, а плюс превращается в минус. При необходимости можно настроить так, чтобы одновременно был открыт только один пункт.Демо
АватарИнициалы или изображение в одном из четырёх размеров; статус обозначается формой — сплошной заливкой, кольцом, полосой или приглушённым оттенком. Группа аватаров раздвигается при наведении, а указывая на аватар, можно увидеть его имя.Демо
МеткаКомпактные метки: мягкие, сплошные, активные, монохромные и со счётчиком, который прокручивает значение. При удалении метка сжимается, а соседние плавно занимают освободившееся место, в том числе при переносе на другие строки.Демо
Блок кодаУдобный для чтения и копирования код: с именем файла, номерами строк, подсветкой отдельных строк и монохромной подсветкой синтаксиса с разной насыщенностью. После копирования надпись меняется на «Скопировано»; в терминальном блоке копируются только команды.Демо
Обратный отсчётОбратный отсчёт до заданной даты в реальном времени: каждая изменившаяся цифра выпадает из окна, а на её место опускается следующая. Когда отсчёт достигает нуля, цифры уступают место вашему сообщению. Доступны крупный и встроенный варианты.Демо
СчётчикЗначение прокручивается, словно показания одометра, когда попадает в область видимости: цифры справа вращаются активнее и останавливаются последними, а ноль делает полный оборот. Значение остаётся доступным для чтения и без скрипта.Демо
Переходы при фильтрацииСетка с фильтрами: цветная плашка плавно перемещается к выбранному фильтру, скрываемые карточки отступают, остальные занимают новые места, а подходящие карточки появляются по очереди.Демо
КлавишиКлавиши с лёгким эффектом объёма: по отдельности, в сочетании или в списке сочетаний клавиш. При нажатии на реальную клавишу её изображение утапливается; если нажать всё сочетание, подсвечивается соответствующая строка.Демо
РазделительЛинии прорисовываются от центра, когда появляются в области видимости. Можно выбрать обычную линию, линию с меткой или заголовком раздела, линию с точкой на CSS, а также вертикальные разделители между элементами.Демо
Показать большеДлинное содержимое свёрнуто до тех пор, пока пользователь не попросит показать его целиком: текст обрезается с плавным затуханием, а список сообщает, сколько элементов осталось. Содержимое раскрывается на фактическую высоту, а надпись на кнопке плавно меняется.Демо
Карточка статистикиКлючевой показатель, его изменение и фоновый график: значение прокручивается, график прорисовывается, а за указателем следует направляющая со значением за выбранный день. Направление тренда обозначается стрелками.Демо
ТаблицаТаблица данных, в которой строки сортируются по нажатию на заголовок столбца. Они плавно занимают новые места, отсортированный столбец получает лёгкую подсветку, заголовок остаётся закреплённым сверху, а края плавно затеняются при прокрутке.Демо
ХронологияЭтапы с датами расположены вдоль линии, которая заполняется при прокрутке. Точки закрашиваются, когда линия доходит до них, каждый этап при первом появлении плавно занимает своё место, а последний достигнутый этап остаётся отмеченным.Демо

Карточки

КомпонентОписание
Карточка с прорисовкой границыПри наведении граница карточки прорисовывается одной линией, начиная точно с точки, в которой курсор коснулся карточки. Линия может идти в одну или обе стороны либо охватывать только углы.Демо
КарточкаРедакционная карточка целиком открывается по одной ссылке: изображение слегка приближается, граница становится чётче, а стрелка плавно появляется.Демо
Раскрывающаяся карточкаРяд карточек, в котором одна всегда раскрыта: при выборе другой она расширяется, а остальные отступают. На небольших экранах карточки располагаются вертикальным списком.Демо
Тарифные планыТри плана в одном блоке; рекомендуемый план выделен заливкой и приподнят. При переключении на годовую оплату прокручиваются только изменившиеся цифры.Демо
Закреплённые карточкиПри прокрутке карточки складываются стопкой: каждая перекрытая карточка отступает и темнеет. Реализовано с помощью обычного position: sticky и нескольких строк JS. GSAP не используется.Демо

Медиа

КомпонентОписание
До / ПослеДва изображения в одной рамке и разделитель между ними: перетаскивайте его, щёлкните по нему — и он плавно переместится, или используйте клавиши со стрелками. При первом появлении разделитель слегка сдвигается, а подписи отступают в сторону.Демо
КарусельКарусель с нативной прокруткой и привязкой к слайдам работает ещё до загрузки скрипта. После загрузки появляются кнопки навигации по страницам, счётчик, полоса прогресса или точки, а также перетаскивание мышью с инерцией. Колесо прокрутки остаётся под контролем пользователя.Демо
Полноэкранный слайдерПолноэкранные слайды сменяются эффектом занавеса, а заголовок появляется из-за маски. Горизонтальная или вертикальная ориентация, кнопки, клавиши со стрелками и свайпы. Без GSAP.Демо
Галерея изображенийРедакционная сетка изображений: каждое изображение плавно раскрывается на весь экран, а при переходе между изображениями используется эффект занавеса. Поддерживаются клавиатура и свайпы.Демо
ЛайтбоксОберните статью этим компонентом — и каждое изображение в ней будет открываться в увеличенном виде. Оно плавно увеличивается на своём месте до размеров экрана. Переключайтесь между изображениями стрелками или свайпом, а клавиша Escape вернёт изображение на место.Демо
ЛупаПозволяет рассмотреть детали под указателем: круглая линза с небольшим запаздыванием следует за ним и показывает фрагмент из более чёткого файла. Другой вариант — изображение увеличивается по направлению к указателю.Демо

Текстовые эффекты

КомпонентОписание
Аннотация текстаРисованные от руки пометки появляются на ключевых словах, когда абзац входит в область видимости: подчёркивание, зачёркивание, обводка или выделение маркером.Демо
Глаз-букваЛюбая буква с отверстием превращается в глаз: зрачок следит за указателем, сверху вырастают ресницы, а при моргании глаз закрывают настоящие веки. Нажмите на глаз — и он подмигнёт.Демо
Бегущая строкаБесконечная бегущая строка без резких скачков: под указателем она плавно останавливается, а по краям постепенно исчезает. Может двигаться в обоих направлениях.Демо
Появление текста при прокруткеСлова по очереди подсвечиваются, пока абзац прокручивается на экране, и снова тускнеют при прокрутке назад. Эффект можно настроить: проявление, размытие или подъём. Без GSAP.Демо
Мерцающий текстПолоса света скользит по тексту — так интерфейс даёт понять, что операция ещё выполняется. Эффект может повторяться, запускаться при наведении или следовать за указателем.Демо
Появление текстаТекст постепенно проявляется при появлении на экране: строки поднимаются из-за маски, слова становятся чёткими или поочерёдно появляются буквы. Анимация проигрывается один раз.Демо
Эффект печатной машинкиФразы печатаются в естественном ритме, с реалистичным курсором. Компонент набирает заново только изменившуюся часть или сначала выделяет её, как в редакторе, а затем заменяет новым текстом.Демо
Смена словОдно слово в предложении постоянно меняется: буквы следующего поднимаются, пока исчезают предыдущие, или слово переворачивается. Пробел подстраивается под ширину слова, а предложение плавно сдвигается.Демо

Эффекты для изображений

КомпонентОписание
Предпросмотр при наведении на списокПри наведении на строку рядом появляется изображение в отдельной рамке, которая следует за указателем. По мере перемещения вниз по списку одно изображение сменяется другим с эффектом стирания. Предусмотрены режим панели, управление с клавиатуры и миниатюры для сенсорных экранов.Демо
Изображение при наведенииЧетыре способа отклика изображения на движение указателя в собственной рамке: медленное увеличение, проявление резкости, скругление углов или смещение вслед за курсором.Демо
Появление изображенияИзображение постепенно открывается при появлении в области видимости: занавес поднимается снизу, сдвигается сбоку или раскрывается, как диафрагма. Одновременно изображение слегка уменьшается и занимает нужное положение.Демо

Фоны и текстуры

КомпонентОписание
КаустикиГлавный экран с видом на дно бассейна, залитое солнцем: сетка ярких линий, рассчитанная средствами нативного WebGL 2 на основе двух десятков волн, и спокойная вода под текстом.Демо
КиматикаГлавный экран с динамиком, нарисованным на песке: рамка и винты сохраняют чёткие очертания, пока мембрана вибрирует под меняющийся тон, а песок складывается в один — пять неподвижных кругов. Можно показать только низкочастотный динамик или всю колонку.Демо
Размерные линииГлавный экран размечен как технический чертёж: линии со стрелками показывают реальные отступы, колонки, размеры заголовка и высоту и пересчитываются при изменении размеров. При появлении линии раскрываются по очереди.Демо
Карта из точекГлавный экран поверх карты мира, составленной из мелких точек и сфокусированной на указанных вами местах. Для каждого места отображается местное время, а по карте движется кольцо, подсвечивая участки суши на своём пути. Без скрипта отображается обычный список.Демо
ЗернистостьПлёночная зернистость создаётся с помощью встроенного SVG-фильтра шума и меняется десять раз в секунду, словно кадры киноплёнки. Эффект располагается под текстом секции и поверх её изображения. Точки используют два выбранных вами цвета. Ничего скачивать не нужно.Демо
Интерактивные точкиГлавный экран поверх поля из мелких точек. Указатель раздвигает их, словно рука песок, а затем они возвращаются на место. Щелчок запускает волну по всему полю. Один canvas, который не работает, когда на него никто не смотрит.Демо
Фоновый узорГлавный экран обрамлён собственным узором: сетка выравнивается по содержимому, четыре тонкие линии проходят по краям, а в углах расположены метки обрезки. Остальная часть узора постепенно исчезает. На выбор доступны сетка, точки, кресты или диагонали. Без изображений.Демо
Разлинованная бумагаСекция оформлена как страница блокнота с вертикальной линией на полях. Линии подстраиваются под межстрочный интервал текста, поэтому каждая строка текста располагается на своей линии при любом размере.Демо
Топографические линииГлавный экран поверх карты с линиями рельефа, созданной нативным шейдером WebGL. Линии движутся очень медленно, указатель приподнимает участок под собой, а под текстом линии становятся тоньше. Без WebGL используются обычные кольца CSS.Демо

Прокрутка

КомпонентОписание
НаверхКруглая кнопка появляется, когда вы прокручиваете страницу вниз. По мере чтения заполняется кольцо вокруг неё. При наведении раскрывается подпись, а при нажатии стрелка взлетает.Демо
Горизонтальная прокруткаСекция закрепляется на месте, а её карточки перемещаются по горизонтали во время прокрутки вниз. Изображения плавно движутся в рамках, счётчик перелистывается. На сенсорных экранах можно провести пальцем.Демо
Бесконечная прокруткаСначала появляются мерцающие заглушки размером с публикацию, которые затем сменяются публикациями без скачка страницы. Две загрузки происходят автоматически, после чего появляется кнопка, чтобы нижний колонтитул оставался доступным.Демо
Появление при прокруткеБлоки появляются по мере прокрутки: растворяются, поднимаются строками из-под маски или открываются с помощью clip-path. Если несколько блоков появляются одновременно, они выходят по очереди.Демо
Появление при закреплённой прокруткеБлок закрепляется на месте, а крупные фразы сменяют друг друга во время прокрутки: каждая строка уходит через собственную маску, пока следующая поднимается на её место.Демо
Закреплённые шагиИзображение закреплено с одной стороны, а шаги прокручиваются с другой. Каждый следующий шаг словно занавесом накрывает изображение предыдущего, а счётчик перелистывается.Демо

Курсор

КомпонентОписание
Пользовательский курсорВнутри заданной области указатель превращается в точку с плавным запаздыванием и плашку с подсказкой о том, что произойдёт при нажатии на каждый элемент. Без GSAP.Демо

Прелоадеры и переходы

КомпонентОписание
Появление главного экранаПрелоадер считает файлы, необходимые главному экрану, пока изображения собираются в стопку. При достижении 100% последним появляется изображение главного экрана и увеличивается до нужного размера, затем поднимается заголовок. Нажатие или любая клавиша пропускает анимацию. Без GSAP.Демо
Подъём страницыПри переходе между двумя полноценными страницами текущая отдаляется, а следующая появляется поверх неё с закруглённого края. Шапка остаётся на месте, а при возврате анимация проигрывается в обратном порядке. Chrome, Edge и Safari; в Firefox пока выполняется обычная загрузка. Без GSAP.Демо

Главный экран

КомпонентОписание
Главный экран с выравниванием по центруГлавный экран с выравниванием по центру: плашка с объявлением, заголовок, строки которого поднимаются из-под масок, короткий текст и две кнопки-плашки. Только CSS; анимация появления запускается при загрузке.Демо
Главный экран-коллажГлавный экран с выравниванием по центру и изображениями, разбросанными вокруг заголовка. Они открываются одно за другим, а затем слегка следуют за движением мыши, каждое — на своей глубине.Демо
Главный экран-обложкаГлавный экран с обложкой: изображение на всю ширину под монохромным слоем, заголовок расположен внизу слева. Изображение открывается от верхнего края и плавно встаёт на место, строки заголовка поднимаются. Только CSS.Демо
Главный экран событияГлавный экран события с обратным отсчётом до даты начала, заданной в разметке. Каждая цифра выпадает из своего окна. В момент начала отсчёт сменяется надписью «Уже в эфире», а после завершения — ссылкой на запись.Демо
Выход из главного экранаЗаголовок по центру, разбитый на две крупные строки. При прокрутке сцена задерживается, строки расходятся, между ними открывается изображение и сжимается до размера карточки, затем следующий раздел накрывает её.Демо
Раскрывающийся главный экранКрупный заголовок с небольшим изображением между двумя словами. При прокрутке сцена закрепляется, изображение раскрывается на весь экран и отодвигает слова, затем поднимаются подпись и кнопка. При прокрутке вверх анимация воспроизводится в обратном направлении.Демо
Главный экран с фокусомЧёткий заголовок поверх размытого изображения. При прокрутке фокус смещается на изображение, заголовок размывается и исчезает, индикатор показывает расстояние, а затем примечания указывают на детали. Анимация воспроизводится в обратном направлении.Демо
Главный экран с графиком работыГлавный экран для места с графиком работы. Строка статуса определяет по местному времени, открыто ли заведение («Открыто сейчас · закрывается в 23:00», «Закроется через 25 мин»), и перелистывает текст при смене минуты.Демо
Главный экран с выбором направленияГлавный экран помогает посетителям выбрать один из двух путей: заголовок и два высоких изображения-ссылки. Изображение под указателем расширяется, а призыв к действию поднимается.Демо
Главный экран с чередованием заголовковГлавный экран студии, где заголовок меняется по одному слову: следующее слово поднимается на место предыдущего, а соответствующее изображение открывается поверх него в том же ритме. Кольцо вокруг кнопки паузы показывает оставшееся время.Демо
Главный экран со скриншотомЗаголовок по центру и кнопки поверх скриншота продукта, наклонённого в перспективе. При прокрутке экран выпрямляется, поворачивается к пользователю и увеличивается, а заголовок отступает назад.Демо
Главный экран с поискомГлавный экран с полноценной карточкой поиска: переключатели «Купить» и «Снять» меняют список бюджета под скользящей плашкой, поле местоположения перелистывает примеры, раскрывающиеся списки работают как Kodza Select, а число результатов появляется в кнопке с эффектом перелистывания.Демо
Главный экран с портфолиоЗаголовок над стеной миниатюр проектов, разложенных под наклоном, словно отпечатки на столе. При прокрутке ряды скользят в противоположных направлениях и выстраиваются в линию, пока стена поднимается. Каждая миниатюра — ссылка.Демо
Главный экран с видеоподборкойГлавный экран с видеоподборкой: зацикленное видео без звука расположено под заголовком, а плашка «Воспроизвести ролик» следует за указателем. При нажатии плашка расширяется до видеоплеера с управлением звуком, паузой и перемоткой.Демо
Разделённый главный экранГлавный экран разделён на две части: текст слева, изображение с соотношением сторон 4:5 справа. Строки заголовка поднимаются из-под масок, а изображение открывается сверху вниз.Демо
Главный экран с заявлениемКрупное заявление студии расположено над строкой с названием города, текущим местным временем и периодом бронирования. При загрузке слова одно за другим поднимаются из-под масок.Демо
Главный экран с названиемНазвание занимает всю ширину главного экрана от края до края: буквы поднимаются по одной, а широкое изображение открывается прямо под ними.Демо

Header

КомпонентОписание
Header AnnouncementШапка сайта с новостной строкой сверху: сообщения сменяют друг друга и приостанавливаются при наведении или фокусе. Кнопка закрытия сворачивает строку, а шапка плавно поднимается без рывка и остаётся скрытой. При ширине экрана менее 900 px открывается меню-шторка.Демо
Header CenteredШапка по центру для ресторана или магазина: название расположено посередине, ссылки — по обе стороны, а над ними указано, открыто ли заведение сейчас. При прокрутке панель становится компактнее. При ширине экрана менее 900 px открывается полноэкранное меню.Демо
Header ClassicШапка сайта с логотипом, ссылками и кнопкой: линия скользит под ссылками, начиная с переднего края, и возвращается к текущей странице. При ширине экрана менее 900 px ссылки сменяются меню-шторкой.Демо
Header MegaПолноценная шапка сайта с общим меню для всех пунктов: при переходе от одной ссылки к другой панель меняет форму и скользит, не закрываясь; за указателем следует мягкая плашка. При ширине экрана менее 900 px ссылки превращаются в выдвижное меню с уровнями.Демо
Header OverlayПрозрачная шапка поверх главного изображения: когда оно прокручивается под шапку, сверху опускается сплошная панель, а текст на её краю становится тёмным. При ширине экрана менее 900 px открывается полноэкранное меню.Демо
Header ShopШапка магазина: название, категории, поиск, который открывается поверх них, учётная запись и корзина, счётчик в которой прокручивается при добавлении товара. При ширине экрана менее 900 px открывается меню, для которого страница отодвигается в сторону.Демо

Footer

КомпонентОписание
Footer ColumnsПодвал сайта: логотип и разделительная линия, до пяти колонок ссылок с заголовками моноширинным шрифтом, а внизу — год, юридические страницы и ссылка для перехода наверх. Под ссылками линия появляется слева.Демо
Footer ContactПодвал для фрилансера или студии: адрес электронной почты занимает всю ширину и копируется по нажатию, а линия под ним прокручивается до надписи «Скопировано». Здесь также отображается местное время с точностью до минуты и крупные строки со ссылками на соцсети.Демо
Footer MinimalОднострочный подвал сайта: логотип, знак ©, три ссылки и ссылка для перехода наверх. При наведении стрелка прокручивается вверх, а сама страница плавно перемещается к началу. На телефонах элементы расположены в двух строках по центру.Демо
Footer ShopПодвал магазина: четыре преимущества с иконками, поле подписки на рассылку, кнопка которого прокручивается до надписи «Подписка оформлена», сворачивающиеся на телефонах колонки, меню выбора страны и валюты, а также способы оплаты.Демо
Footer VenueПодвал заведения с графиком работы: адрес и ссылка «Маршрут», дни недели, где текущий день выделен тёмной плашкой, и статус, рассчитанный по местному времени заведения. При изменении статуса он прокручивается; также отображаются телефон и кнопка «Забронировать».Демо
Footer WordmarkПодвал сайта, который остаётся под страницей: его содержимое поднимается медленнее, чем прокручивается страница, а затемнение постепенно исчезает. Название бренда растянуто на всю ширину — от края до края; буквы поднимаются из своих масок.Демо

Об этом репозитории

Репозиторий повторяет kodza.dev: когда там появляется новый компонент или меняется существующий, обновление попадает сюда. Все файлы генерируются автоматически и не редактируются вручную, поэтому pull request не принимаются.

Нашли ошибку или не обнаружили нужный компонент? Перейдите в kodza-dev/requests: сообщайте об ошибках в разделе issues, а предложения оставляйте в обсуждениях и голосуйте за них.

Лицензия

Лицензия Kodza. Используйте компоненты в любых проектах — личных, коммерческих или клиентских. Указывать авторство не требуется. Запрещено перепродавать или распространять компоненты, а также предлагать их через другой каталог, реестр или MCP-сервер.

Используйте где угодно. Не перепродавайте.