The pixel-perfect police force that catches UI crimes! 👮♂️
Chrome extension for automatic validation of web interfaces against design systems. Catches spacing violations, sizing crimes, color offenses, and responsive design infractions.
Расширение решает ключевые боли UI/UX разработчиков и QA-инженеров при проверке интерфейсов:
- Время на ручную инспекцию: автоматическое выявление несоответствий отступам, размерам, цветам
- Сложность выявления несоответствий: встроенные правила дизайн-системы
- Отсутствие стандартизации: системный подход к проверке UI
Проект построен по принципу чистой архитектуры с разделением на слои:
Чистая бизнес-логика, независимая от Chrome API:
ElementInspector- анализ отдельных элементовResponsiveChecker- проверка адаптивностиElementComparator- сравнение элементовDesignRules- правила дизайн-системы
Use cases - оркестрация домена и инфраструктуры:
InspectElementUseCase- инспекция элементаCheckResponsiveUseCase- проверка responsiveCompareElementsUseCase- сравнение элементовGenerateReportUseCase- генерация отчетов
Адаптеры для внешних зависимостей:
TabAdapter- работа с вкладками ChromeStorageAdapter- хранение настроекScriptingAdapter- выполнение скриптовElementInspector- DOM манипуляции
UI компоненты:
Popup- главное окно расширенияOverlay- визуальные накладки на элементыOptions- страница настроек
{
"permissions": [
"activeTab", // Доступ к текущей вкладке
"storage", // Сохранение настроек
"scripting" // Выполнение скриптов (Manifest V3)
],
"host_permissions": [
"<all_urls>" // Чтение DOM (минимально необходимо)
]
}- ✅ Наименьшие привилегии: только необходимые permissions
- ✅ Read-only режим: расширение не изменяет контент страниц
- ✅ Изоляция: content scripts работают в изолированном мире
- ✅ Валидация данных: все входные данные проверяются
- ✅ CSP compliance: код соответствует Content Security Policy
- Наведение курсора на элемент → показ overlay с box-model
- Отображение числовых значений margin/padding/size
- Предупреждения о несоответствиях дизайн-системе
- Настраиваемая сетка отступов (4px/8px/16px...)
- Минимальные размеры кликабельных элементов (44px)
- Палитра цветов
- Брейкпоинты responsive
- Симуляция разных размеров экрана
- Автоматическое выявление проблем overflow
- Проверка доступности на мобильных
- Консистентность отступов между кнопками
- Одинаковые размеры однотипных компонентов
- Групповой анализ
- JSON/HTML/Markdown экспорт
- Скриншоты проблемных зон
- Интеграция с Jira/Linear
# Клонирование
git clone <repository>
cd ui-inspector
# Установка зависимостей
npm install
# Сборка
npm run build
# Загрузка в Chrome
# 1. Открыть chrome://extensions/
# 2. Включить "Developer mode"
# 3. "Load unpacked" → выбрать dist/- Пользователь открывает страницу
- Кликает иконку расширения
- Включает "Inspect mode"
- Наводит курсор на элемент
- Видит overlay + предупреждения
- Выбор breakpoint "Mobile 375px"
- Расширение симулирует размер
- Подсвечивает проблемы
- Генерирует отчет
- QA находит проблемы
- Генерирует отчет с багом
- Копирует описание для Jira
- Дизайнер/разработчик получает четкое ТЗ
// Явные контракты сообщений
interface Message<T> {
type: MessageType;
payload: T;
source: 'popup' | 'content' | 'background';
target: 'popup' | 'content' | 'background';
}- Background скрипт как service worker
- Обработка пробуждения/засыпания
- State хранится в chrome.storage
- Минимальный размер (только DOM операции)
- Бизнес-логика в отдельных слоях
- Read-only доступ к странице
- Минималистичный интерфейс: toggle on/off, режимы, горячие клавиши
- Производительность: не замедляет страницу
- Доступность: работает на всех сайтах
- Локализация: поддержка i18n
- Интеграция с Figma
- Кастомные правила дизайн-систем
- Автоматизированное тестирование
- CI/CD pipeline
- Performance monitoring
- Полная типизация
- Unit/integration тесты
- E2E тесты
- Documentation
- Performance optimization
MIT License - см. LICENSE файл.
- Fork проект
- Создать feature branch
- Commit изменения
- Push и создать PR
- Code review и merge
Подробные инструкции в CONTRIBUTING.md