Перейти к содержимому

@lh-ui/share

Единственный общий слой семейства lh-ui, не зависящий от фреймворков —— 56 чистых функций компонентов core, 12 модулей общего ядра, система тем в китайском стиле, чистый emitter для интернационализации, 58 наборов исходников компонентных стилей. Одна логика, питающая UI-библиотеки Vue3 / Vue2 / React / uniapp на всех платформах.

Чистые функции core

Вычисление классов, конечные автоматы и наборы атрибутов доступности для 56 компонентов — всё это чистые функции без единой зависимости. Слой фреймворка занимается только разводкой: логика в единственном источнике, unit-тесты в единственной копии.

Общее ядро

Движок позиционирования popper, виртуальная прокрутка, trap фокуса, клавиатурная навигация, sx style-props, очистка чисел — 12 модулей, которые напрямую переиспользуются на всех платформах.

Темы в китайском стиле

Пять встроенных пресетов (青花瓷 (сине-белый фарфор) / 松花绿 (зелёный сосны) / 朱砂 (киноварь) / 水墨 (тушь) / 藤黄 (gamboge)), CSS-переменные + тёмная тема + система узоров; за соблюдение контрастности AA отвечает скрипт-гейт.

Интернационализация на чистом emitter

LhLocale — чистый генератор событий, не несущий никакой реактивности фреймворка; каждая платформа подписывается на version через свой сигнальный механизм.

Единый источник стилей

styles/ — единственный источник BEM-стиилей компонентов для всего семейства; три mixin-а переходных классов собирают различия Vue2 / Vue3 / React.

Нулевая зависимость от фреймворков

Полная сборка без зависимостей через external: []; гейт verify:dts следит за тем, чтобы в артефактах не появилось ни одного импорта фреймворка.

  • Разработчики UI-библиотек платформ (lh-ui-plus / lh-ui-vue2 / lh-ui-react / lh-ui-uniapp): разобраться в сигнатуре, возвращаемом значении и граничных условиях каждой чистой функции, а также в том, как переопределяются стилевые токены.
  • Самостоятельные разработчики, использующие share напрямую: проекту нужен только baseline доступности и токены тем в китайском стиле, без подключения UI-библиотек.
  • Контрибьюторы: разобраться в назначении каталогов, красных линиях, процессах проверки и выпуска релизов.
- `src/core/<компонент>/` —— логика чистых функций (logic.ts / types.ts), без импорта фреймворков
- `src/core/shared/` —— общее ядро компонентов (popper / virtual / sx / keyboard …)
- `src/theme/` —— TS-сторона темы: типы + 5 пресетов + runtime-примитивы
- `styles/` —— единственный источник BEM-стиилей компонентов + токены theme/common/*.scss
- `src/{constants,locales,types,utils}/` —— константы / языковые пакеты / типы / утилиты

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

Copyright © 2024-2026 FengMo WenXue