Одностраничное веб-приложение на React.
- После клонирования репозитория установите зависимости
npm install
. - Запуск проекта
npm start
, портlocalhost/3000
.
Для элементов, стили которых нужно переписать я использую mixin, принимающий максимальную или минимальную ширину экрана. В блоках с текстом и изображением на маленьких экранах меняется направление главной оси flex-контейнера на column, меняются ширины блоков текста и изображения.
Проверила работу сайта на Chrome, Firefox, Edge. Для некоторых элементов прописаны отдельные стили для IE, например для параграфов width: 100% и некоторых блоков div.
Сайт состоит из блоков header, main, footer. Блок main включает в себя 4 меньших блока section: MainBlock, SolarSystem, AboutPlanets, AboutPluto. Названия классов элементов я стараюсь давать по БЭМ-методолгии.
Блок AboutPlanets по нажатию на таб с планетой выводит информацию о ней. Компонент AboutPlanets возвращает компоненты TabsBlock(табы) и PlanetBlock(текст про планету). По нажатию на таб, id планеты передается в родительский компонент, переписывается state и переменная chosenPlanetId передается в PlanetBlock. По id планеты дальше записывается информация о ней из файла Planets.json. Изначально переменная chosenPlanetId=null и блок PlanetBlock не возвращается.
Компонент TextBlock переиспользуется в приложении меняя свое содержимое в блоках SolarSystem и AboutPluto. Компонент PlanetBlock так же переиспользуется для каждой выбранной планеты.