Blog Customizer — это интерактивное веб-приложение для настройки и кастомизации блогов. Пользователи могут изменять различные параметры отображения статей, такие как размеры контента, шрифты, цвета и другие стилистические элементы в реальном времени.
- Интерактивная настройка стилей — изменение параметров блога в реальном времени
- Адаптивный дизайн — корректное отображение на всех устройствах
- Предварительный просмотр — мгновенное отображение изменений
- Модульная архитектура — компонентный подход с использованием React
- Storybook — документация и тестирование компонентов
React 18.2.0 — библиотека для создания пользовательских интерфейсов
TypeScript 5.0.4 — типизированный JavaScript
Sass — препроцессор CSS с поддержкой модулей
Webpack 5.81.0 — сборщик модулей
PostCSS — инструмент для трансформации CSS
Autoprefixer — автоматическое добавление вендорных префиксов
Storybook 7.6.10 — среда для разработки и тестирования компонентов
ESLint — линтер для JavaScript/TypeScript
Prettier — форматировщик кода
Stylelint — линтер для CSS/SCSS
Husky — Git hooks
Commitizen — стандартизация коммитов
Lint-staged — линтинг только измененных файлов
- Node.js (версия 16 или выше)
- Yarn или npm
-
Клонируйте репозиторий
git clone https://practicum.gitlab.yandexcloud.net/web-faculty-content/project-drafts/sp10_blogcustomizer.git cd sp10_blogcustomizer -
Установите зависимости
yarn install # или npm install -
Запустите проект в режиме разработки
yarn start # или npm start -
Откройте браузер
http://localhost:8080
| Команда | Описание |
|---|---|
yarn start |
Запуск проекта в режиме разработки |
yarn build |
Сборка проекта для продакшена |
yarn storybook |
Запуск Storybook для разработки компонентов |
yarn build-storybook |
Сборка Storybook |
yarn lint |
Проверка кода с помощью ESLint |
yarn format |
Форматирование кода с помощью Prettier |
yarn test |
Запуск всех проверок качества кода |
yarn commit |
Создание коммита с помощью Commitizen |
src/
├── components/ # React компоненты
│ ├── arrow-button/ # Кнопка со стрелкой
│ ├── article/ # Компонент статьи
│ ├── article-params-form/ # Форма параметров статьи
│ ├── button/ # Базовая кнопка
│ ├── radio-group/ # Группа радио-кнопок
│ ├── select/ # Компонент выбора
│ ├── separator/ # Разделитель
│ ├── spacing/ # Компонент отступов
│ ├── story-decorator/ # Декоратор для Storybook
│ └── text/ # Текстовые компоненты
├── constants/ # Константы приложения
├── fonts/ # Шрифты проекта
├── images/ # Изображения и иконки
├── styles/ # Глобальные стили
└── index.tsx # Точка входа приложения
Проект включает в себя набор переиспользуемых компонентов:
- Article — компонент для отображения статей
- ArticleParamsForm — форма для настройки параметров статьи
- Button — универсальная кнопка с различными вариантами
- Select — выпадающий список с кастомным дизайном
- RadioGroup — группа радио-кнопок
- Text — текстовые компоненты с различными стилями
Каждый компонент имеет:
- TypeScript типизацию
- SCSS модули для стилизации
- Storybook истории для документации
- Адаптивный дизайн
Проект использует кастомную конфигурацию Webpack с поддержкой:
- TypeScript
- SCSS модулей
- SVG как React компонентов
- Hot Module Replacement
- Оптимизация для продакшена
Настроены правила для обеспечения качества кода:
- TypeScript правила
- React правила
- Accessibility правила
- Автоматическое форматирование
Настроены pre-commit хуки для:
- Автоматического линтинга
- Форматирования кода
- Проверки стилей
Для просмотра документации компонентов запустите:
yarn storybookStorybook доступен по адресу: http://localhost:6006
Каждый компонент имеет:
- Описание назначения
- Примеры использования
- Параметры (props)
- Интерактивные примеры