SIMAI UI Core - статический дистрибутив SIMAI Framework UI для standalone-подключения без серверной сборки.
Репозиторий содержит уже собранные JS/CSS/JSON/font-артефакты в каталоге distr/. Рекомендуемый способ использования в проектах - подключать фиксированную версию по git tag, а не ветку main.
Текущая локальная версия-кандидат: 5.9.0. Она предназначена для проверки до публикации; последняя опубликованная версия — 5.7.0.
См. также:
<script>
window.sfPath = 'https://cdn.jsdelivr.net/gh/simai/ui@<release-tag>/distr';
</script>
<script src="https://cdn.jsdelivr.net/gh/simai/ui@<release-tag>/distr/core/js/core.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/simai/ui@<release-tag>/distr/core/css/core.css">Если используются smart-компоненты из отдельного пути, можно явно указать window.sfSmartPath:
<script>
window.sfPath = 'https://cdn.jsdelivr.net/gh/simai/ui@<ui-release-tag>/distr';
window.sfSmartPath = 'https://cdn.jsdelivr.net/gh/simai/ui-smart@<smart-release-tag>';
</script>- Скопируйте каталог
distr/в публичную директорию проекта. - Укажите базовый путь до дистрибутива.
- Подключите core JS и core CSS.
<script>
window.sfPath = '/distr';
</script>
<script src="/distr/core/js/core.js"></script>
<link rel="stylesheet" href="/distr/core/css/core.css">Основные директории:
distr/core/- базовый runtime, loader, core CSS и smart runtime assets.distr/component/- обычные UI-компоненты и component assets, включая компоненты, используемые smart-слоем.distr/utility/- utility CSS/JS модули.distr/rule/- правила загрузчика.
Smart-компоненты поставляются через distr/smart-component-meta.json, distr/rule/ и core runtime assets.
Core также публикует схемы декларативной композиции в distr/core/contracts/ и браузерный API SF.Composition.
Состав локальной версии-кандидата 5.9.0:
- всего файлов:
5061; - CSS-файлов:
1591; - JS-файлов:
884; - gzip-артефактов:
2508; - JSON-файлов:
26; - общий размер: около
48 MiB.
<nav class="sf-breadcrumbs flex">
<a class="sf-breadcrumbs-item sf-breadcrumbs-item--text flex items-center" href="/">
Главная
</a>
</nav>
<sf-button type="default" scheme="primary" text="Сохранить"></sf-button>Loader автоматически находит используемые компоненты и utility-классы в DOM, загружает нужные JS/CSS-файлы из window.sfPath и инициализирует компоненты.
Стандартный загрузчик использует компактную анимацию, которая следует теме,
не зависит от внешних ресурсов и остаётся статичной при включённом
prefers-reduced-motion.
Проекты со статической или серверной сборкой могут подготовить ресурсы первого
кадра командой scripts/plan-framework-assets.py. Планировщик анализирует
готовый HTML по тем же правилам distr/rule/rule.json, раскрывает зависимости
и возвращает детерминированный JSON со списком точных CSS/JS-файлов и данными
для window.SF_PRELOADED.
Это необязательное build-time улучшение: обычное подключение через sfPath,
sfSmartPath, core.css и core.js не меняется, а Loader продолжает
обслуживать компоненты, добавленные в DOM позднее. Редкий ресурс первого кадра,
который невозможно увидеть в итоговой разметке, можно объявить атрибутом
data-sf-require="utility.<name>|component.<name>|smart.<name>".
Компоненты с серверной оболочкой могут пометить контейнер подсветки
data-sf-highlight-chrome="static". В этом режиме Highlight сохраняет готовый
заголовок и размеры блока, добавляя только подсветку синтаксиса.
python3 scripts/plan-framework-assets.py \
--html build/index.html \
--ui-root . \
--smart-root ../ui-smartFrom release lock v2 on, Smart is published in distr/smart of this
repository; without --smart-root the planner reads Smart from there.
Когда страница передала window.SF_PRELOADED, Loader считает production-план
единственным источником готовности первого кадра и не восстанавливает список
модулей предыдущей страницы из localStorage. Это устраняет межстраничную
гонку ресурсов; динамическое обнаружение нового DOM после старта сохраняется.
В обычном режиме без production-плана прежний кеш Loader продолжает работать.
Utility-стили дистрибутива размещаются в слое sf.utilities. Это нужно, чтобы utility-классы участвовали в общей системе CSS cascade layers SF и не перекрывали компонентные стили вне ожидаемого порядка.
Рекомендуемый порядок слоев для проектов:
@layer sf.reset, sf.tokens, sf.base, sf.utilities, sf.components, sf.states;Если проект добавляет свои слои, их нужно объявлять осознанно относительно слоев SF, чтобы сохранить предсказуемый приоритет utilities, components и states.
- Обновлен собранный SF5-дистрибутив из sf5.webpack.
- Добавлены component assets для
file-previewиlink. - Добавлен новый core runtime chunk
556. - Обновлены core loader/rules/runtime assets, правила загрузчика и metadata.
- Обновлены component assets для
avatars,country-code,dropdown,featured-icon,file-upload,inputs,toggle.
- Добавлена единая promise-карта загрузок JS/CSS в SFLoader.
- Параллельные relation-цепочки smart-компонентов больше не добавляют
одинаковые
scriptиlinkповторно. - Ошибочная загрузка удаляется из карты, поэтому явный повтор после network failure остаётся возможным.
- Обновлен собранный SF5-дистрибутив из sf5.webpack.
- Обновлены core/component/smart/utility assets и правила загрузчика.
- Сохранен фикс cl-table: без relation на несуществующий обычный able, CSS грузится из smart-слоя.
- Исправлено правило загрузки cl-table.
- Убрана relation на несуществующий обычный компонент able.
- CSS для sf-table теперь грузится через smart-правило cl-table.
- Добавлены собранные компоненты
admin-menu,datepicker,tree,tree-item. - Обновлены smart metadata, loader/runtime assets и правила загрузчика.
- Расширены utility-модули
flex,align-content,headers,transform-translate,transform-translate-ext,transition-property.
- Используйте конкретный pinned tag из соответствующего release note.
- Не подключайте
@mainв production, чтобы избежать непредсказуемых обновлений. - При обновлении версии очищайте кеш CDN/браузера, если проект использует долгоживущий cache.
- Для локальной поставки храните структуру
distr/без переименования внутренних директорий.