test-npm-kapustin v0.2.3
Kapustin Dev Library
Данная библиотека предназначена для быстрой сборки Next.js проектов из готовых блоков с возможностью полной кастомизации.
Начало работы
Введение
Понятия
Используемые решения
Основные инструменты:
reactnextsasseslint
Дополнительные пакеты:
axiosдля работы с REST APIflickity+react-flickity-componentдля реализации слайдеровformikдля создания формframer-motionдля анимацииreact-rangeдля реализации компонента слайдераreact-scrollдля контроля скроллаreact-yandex-mapsдля использования API YaMapsyupдля валидации форм
Список пакетов будет дополняться с развитием библиотеки
Правила именования
При создании новых компонентов необходимо пользоваться следующими принципами:
- Название компонента должно максимально точно передавать сущность компонента для новых разработчиков
- Название компонента и название его SASS модуля должно совпадать. Например -
MyComponent.jsxиMyComponent.module.sass
Структура файлов
Данная структура файлов должна сохраняться для каждого проекта ввиду наличия общей документации. В случае если в рамках проекта необходимо расширить имеющуюся структуру - все изменения должны быть зафиксированы в документации.
- :file_folder: src
- :file_folder: components
- :file_folder: atoms
- :card_file_box:
*.jsxфайлы атомов
- :card_file_box:
- :file_folder: animations
- :card_file_box:
*.jsxфайлы анимаций
- :card_file_box:
- :file_folder: hooks
- :card_file_box:
*.jsxфайлы хуков
- :card_file_box:
- :card_file_box:
*.jsxфайлы компонентов
- :file_folder: atoms
- pages
- :page_with_curl:
_app.js - :page_with_curl:
index.js - Прочие файлы и папки - :page_with_curl:
[DynamicRouting].jsx, :file_folder: folder, :page_with_curl:page.jsxand etc
- :page_with_curl:
- styles
- :file_folder: components
- :file_folder: atoms
- :card_file_box:
*.module.sassфайлы для стилизации атомов
- :card_file_box:
- :card_file_box:
*.module.sassфайлы для стилизации компонентов
- :file_folder: atoms
- :page_with_curl:
Classes.sass - :page_with_curl:
Defaults.sass
- :file_folder: components
- :file_folder: components
SASS файлы стилей
Файлы стилей делятся на 3 типа:
- Общие стили.
Classes.sass- для типовых классов, является сокращенным аналогом Tailwind с необходимыми нам компонентамиDefault.sass- для дефолтных настроек и ввода переменных
- Модули. Используются для стилизации атомов и компонентов, находятся в
src/styles/components. Создаются и импортируются отдельно для каждого атома и компонента. - Контроллеры. Необходимы для общего и единоразового контроля следующих параметров: (импортируются глобально в
_app.js)- Скругление краев (
BorderRadius.sass) - Цвета (
Colors.sass) - Тёмная тема (
DarkMode.sass) - Шрифты (Fonts.sass)
- Графические вставки (
Graphik.sass) - Сетка (
Grid.sass) - Размеры шрифтов (
TextSizes.sass) - Отступы (
WhiteSpace.sass)
- Скругление краев (
Адаптивные стили компонентов при необходимости прописываются в файлы модулей строго после основных стилей для ПК.
Атомы
Атом - базовый повторяющийся элемент который чаще всего используется в составе компонентов. Расположение атомов src/components/atoms, стили подключаются с использованием *.module.sass, которые расположены в src/styles/components/atoms.
Компоненты
Компонент - отдельный блок, являющийся отдельной и самостоятельной частью сайта, готовой к применению на разных страницах. Блок принимает props.url в API для вставки контента. Также помимо url блок омжет принимать параметры дизайна, которые зависят от самого блока.