Введение
lh-ui-core — центр направления native семейства lh-ui на этапе сборки.
Что представляет собой этот репозиторий
Заголовок раздела «Что представляет собой этот репозиторий»@lh-ui/core — единый источник истины для токенов дизайна, а также место хранения контрактов компонентов и золотых сценариев; помимо этого, здесь находится инструментарий codegen, который генерирует из нейтральных токенов языковые каркасы для четырёх нативных платформ.
Это не зависимость времени выполнения. Репозиторий работает только на этапе сборки: платформенно-нейтральные JSON-токены и контракты компонентов превращаются в артефакты для Android (Kotlin) / iOS (Swift) / HarmonyOS (ArkTS) / C, а реализацию UI каждая нативная библиотека пишет вручную. На нативных платформах во время выполнения нет ни одного JavaScript.
Архитектура двух направлений
Заголовок раздела «Архитектура двух направлений»В семействе есть два направления, полностью независимых и не связанных друг с другом:
Семейство lh-ui├── Направление web: lh-ui-share (TS core + единственный источник стилей SCSS) → plus / vue2 / react / uniapp└── Направление native: этот репозиторий (JSON-токены + спецификации + codegen) → android / ios / harmony / windowsМежду этим репозиторием и lh-ui-share нет ни одной кодовой зависимости — каждый репозиторий замкнут сам на себе и выпускается самостоятельно. Единство бренда и визуального ряда поддерживается механизмом ручного выравнивания в репозитории семейной документации (docs/设计语言基线.md), а не автоматической синхронизацией.
Три уровня контрактов
Заголовок раздела «Три уровня контрактов»Содержимое репозитория состоит из тр уровней JSON-контрактов, независимых, но ссылающихся друг на друга:
| Уровень | Расположение | Какой вопрос отвечает |
|---|---|---|
| Токены | tokens/*.json |
«Как выглядит интерфейс» — цвета, отступы, размеры шрифта, скругления, тени, анимация, z-уровни, компонентные размеры |
| Контракты | specs/*.json |
«Какими возможностями обладает компонент» — props / перечисления / значения по умолчанию / события / слоты / поведение |
| Сценарии | cases/*.json |
«Как тестировать компонент» — переводимые между платформами поведенческие утверждения given/when/then |
codegen потребляет только токены, генерируя каркасы для четырёх платформ; контракты и сценарии сейчас используются нативными платформами вручную (в будущем они могут лечь в основу автоматической генерации каркасов типов и шаблонов тестов).
Начальные значения токенов
Заголовок раздела «Начальные значения токенов»Начальные значения в tokens/*.json этого репозитория были единожды извлечены вручную как выравнивающее семя из lh-ui-share/styles/theme/common/variables.scss и var-dark.scss (2026-10-10, см. семейный документ docs/设计语言基线.md). После этого оба репозитория развиваются независимо и больше не синхронизируются. Изменения брендовых токенов (палитра, шкала отступов) обязательно регистрируются в этом базовом документе.
Кому следует читать эту документацию
Заголовок раздела «Кому следует читать эту документацию»- Разработчики нативных платформ (android / ios / harmony / windows): чтобы понимать соглашения об именовании артефактов
dist/, преобразование единиц и механизм тёмной темы, знать, откуда берутся токены и как вычисляются их значения. - Мейнтейнеры репозитория: чтобы понимать зону ответственности каждого модуля и функции конвейера codegen и уметь менять шаблоны, добавлять токены и компоненты.
- Быстрый старт — клонирование, установка, первый запуск codegen
- Структура каталогов — назначение каждого каталога
- Формат токенов — ограничения на поля JSON-токенов
- Обзор конвейера — полный поток данных codegen
Copyright © 2024-2026 FengMo WenXue