Библиотека адаптивных цветов для интерфейсов и дизайн-систем. Вы задаёте цвета, фоны и ограничения, например контраст текста. Lab Colors выбирает подходящие значения с учётом наложения слоёв и пересчитывает результат, когда приложение передаёт изменения фона.
npm install @labpics/colors@^1JavaScript и TypeScript, ESM. Ядро на Rust/WASM включено в пакет. Настройка для браузера и Node.js.
Готовый пример выбирает чёрный или белый текст по требованию контраста WCAG 2.2. На белом фоне получается чёрный текст, на чёрном получается белый. Приложение задаёт варианты цвета и их приоритет.
Если один цвет должен подходить сразу для нескольких фонов, библиотека
проверяет каждый из них. Когда подходящего варианта нет, она возвращает
failed. Пример показывает оба исхода и обработку результата.
Цвета, их связи, слои и ограничения образуют граф. Компилятор проверяет его, а runtime принимает изменения фона и вычисляет результат. Имена токенов, состояния компонентов и применение цветов в DOM или CSS задаёт приложение.
Проверки относятся к переданным цветам и фонам. Отрисовку и читаемость готового интерфейса проверяйте в самом приложении.
JavaScript и WASM · Ядро на Rust · Swift для macOS и iOS · Kotlin для Android · Оценка через CLI · Все руководства.
cargo test --workspace --lockedВерсия Rust указана в Cargo.toml. Команды сборки и проверки npm-пакета находятся в package.json.
У labcolors-core ноль рантайм-зависимостей во всех наборах возможностей.
Инвентаризация исходников и метаданных выполняется отдельно:
инструменты аудита не входят в API цветового ядра.
cargo tree -p labcolors-core --edges=no-devКод: MIT. Встроенные данные: CC-BY-4.0 и CC-BY-SA-4.0. Источники и условия использования перечислены в NOTICE.md.