Giter Club home page Giter Club logo

bem-react-smarthome's Introduction

git clone https://github.com/haritonasty/bem-react-smarthome
cd bem-react-smarthome 
npm i
npm run start
  • У меня node.js v10.13.0
  • Тестирую в Chrome (вторую домашку тестировать нужно было только там)

HW bem-react-smarthome

Задание:
  1. Необходимо переверстать интерфейс проекта Умный дом на React с использованием пакетов classname, core и di библиотеки bem-react. Достаточно сверстать одну любую страницу, но необходимо осмысленно применить все три пакета.

  2. На что обратить внимание:

  • Логичность разделения интерфейса на блоки/элементы/модификаторы
  • Универсальность компонентов: базовые контролы должны быть готовы к повторному использования (например, стили про позиционирование применяются с помощью миксов с элементами родителя, а не захардкоджены в самих блоках)
  • Оптимальность разделения интерфейса по платформам (весь общий код вынесен на common, частный — разбит по платформам)
  1. На более высокую оценку: Использование дополнительных инструментов из мира БЭМ (например, bem-tools-create)

Что сделано:

  • сверстана страница Видеонаблюдение
  • Все className сгенерированы с помощью @bem-react/classname
  • Переключение активного пункта меню в блоке Header сделано с помощью динамического добавления микса функцией withBemMod() из пакета @bem-react/core
  • @bem-react/di используется для определения mobile or desktop (изменения в блоке Header - в мобильной версии вместо открытой навигации - бургер(без реализации, просто бургер, внутри пусто))
  • Стили написаны с помощью scss, т.к. все домашка была до этого написана на них (поначалу использовала глобальные стили, например для fluid typography, но убрала, т.к. решила, что таким образом немного нарушается БЕМ)
  • Использовала bem-tools-create для генерации блоков, стилей для них, и некоторых сопутсвующих файлов. Команда в консоли, которой я пользовалась bem create src/components/Name.{scss,tsx}

bem-react-smarthome's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.