🧱 UI Kit для Devtokiory https://ui.devtokiory.ru
This repository has been archived on 2026-06-30. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • HTML 40.8%
  • TypeScript 37.3%
  • CSS 21.4%
  • Dockerfile 0.5%
Find a file
2026-06-30 01:42:10 +00:00
.readme/assets docs: add proper readme 2026-06-25 17:15:48 +03:00
.zed feat: init 2026-06-25 04:34:26 +03:00
src docs: remove missing docs 2026-06-28 04:10:16 +03:00
.dockerignore feat: init 2026-06-25 04:34:26 +03:00
.editorconfig feat: init 2026-06-25 04:34:26 +03:00
.gitignore chore: add npmrc to gitignore 2026-06-25 16:53:21 +03:00
.prettierrc.json feat: init 2026-06-25 04:34:26 +03:00
docker-compose.yml feat: init 2026-06-25 04:34:26 +03:00
Dockerfile feat: init 2026-06-25 04:34:26 +03:00
LICENSE feat: init 2026-06-25 04:34:26 +03:00
package.json 0.1.1 2026-06-28 04:10:22 +03:00
pnpm-lock.yaml feat: init 2026-06-25 04:34:26 +03:00
readme.md Обновить readme.md 2026-06-30 01:42:10 +00:00
stencil.config.ts feat: init 2026-06-25 04:34:26 +03:00
tsconfig.json feat: init 2026-06-25 04:34:26 +03:00
vitest-setup.ts feat: init 2026-06-25 04:34:26 +03:00
vitest.config.ts feat: init 2026-06-25 04:34:26 +03:00

Note

Я отказался от Stencil компонентов в пользу готовой библиотеки Franken UI.

Данный репозиторий находится в архиве

@devtokiory/uikit - библиотека UI-компонентов на Stencil.

Компоненты собираются как Web Components, поэтому их можно подключать в обычный HTML, React, Vue, Angular и другие приложения без привязки к конкретному фреймворку.

Соглашения

  • Все компоненты начинаются с префиксом dt-;
  • Глобальные стили (шрифт) можно подтянуть из src/styles/main.css;
  • Сборка в dist/, кастомные элементы и loader для подключения в приложениях.
  • Автогенерируемая документация компонентов через Stencil docs-readme.

Установка

pnpm add @devtokiory/uikit

Также можно использовать npm или yarn, если проект не использует pnpm.

npm install @devtokiory/uikit

Быстрый старт

Подключите loader один раз в точке входа приложения:

import { defineCustomElements } from '@devtokiory/uikit/loader';

defineCustomElements();

После этого компоненты можно использовать как обычные HTML-теги:

<dt-container>
  <dt-title level="1">Панель управления</dt-title>
  <dt-text>Базовый пример интерфейса на @devtokiory/uikit.</dt-text>

  <dt-card>
    <dt-input name="email" type="email" placeholder="Email"></dt-input>
    <dt-button type="submit">Отправить</dt-button>
  </dt-card>
</dt-container>

Подключение отдельных компонентов

Пакет экспортирует отдельные custom elements. Это удобно, если нужно подключить только часть библиотеки.

import '@devtokiory/uikit/dt-button';
import '@devtokiory/uikit/dt-input';
<dt-input placeholder="Поиск"></dt-input>
<dt-button variant="secondary">Найти</dt-button>

События форм

Некоторые компоненты форм отправляют CustomEvent с текущим значением.

const input = document.querySelector('dt-input');

input?.addEventListener('valueInput', event => {
  console.log((event as CustomEvent<string>).detail);
});

Для dt-input доступны valueInput и valueChange, для dt-select - valueChange, для dt-tabs - valueChange.

Разработка

Установите зависимости:

pnpm install

Запустите локальную разработку с dev-сервером Stencil:

pnpm start

Соберите пакет:

pnpm build

Запустите тесты:

pnpm test

Запустите тесты в watch-режиме:

pnpm test:watch

Сгенерируйте новый компонент через Stencil:

pnpm generate

Структура проекта

src/
  components/      Компоненты UI kit и их документация
  styles/main.css  Глобальные стили библиотеки
  index.ts         Публичные типы пакета
loader/            Loader для регистрации custom elements
stencil.config.ts  Конфигурация сборки Stencil

Документация компонентов

Каждый компонент содержит собственный readme.md в src/components/<component>/readme.md.

Таблицы props и events обновляются автоматически при сборке документации Stencil.