Методология Cube CSS и другие основы

Динамическая позиция элемента

Не буду много расписывать о "Кубе", потому что вы можете сами прочитать о нем здесь и здесь, а скажу в двух словах: никаких rem'ов, никаких GRID, никаких калькуляций в значениях CSS-свойств, меньше CSS-переменных и ни в коем случае никаких больших вложенностей в HTML.

Причем, некоторые правила компании невелирует сами понятия Cube CSS, отчего сложится впечатление, что это гибридный формат интерпритации самой методологии. Основные правила, которых стоит придерживаться, изложены в предыдущем абзаце. Наглядный пример можно посмотреть в одном из проектов:

С чем придется смириться:

  • Методология БЭМ может являться признаком множества споров
  • Методология mobile-first (по мнению владельца бизнеса) является ошибкой. Просто смиритесь и пишите код от большего к меньшему (desktop-first), даже если проект имеет дизайн-структуру mobile-first.
  • Использование единиц измерения REM - является фатальной ошибкой и плохо тестируется (по мнению компании)
  • Использование вычислений (калькуляции) в CSS - является ошибкой (по мнению компании), которую необходимо избегать
  • Использование GRID контейнеров в CSS - является ошибкой и плохо тестируется (по мнению владельца бизнеса), которую необходимо избегать
  • Использование большого количества вложенности в HTML - является фатальной ошибкой: старайтесь избегать, а в некоторых случаях включать смекалку и использовать минимальное количество вложенности в HTML
  • Использование CSS-переменных типа var(--color) возможно, но только для служебных стилей. Например, использовать для белого цвета (#ffffff) переменную нельзя, потому что это является фатальной ошибкой (по мнению владельца бизнеса)
  • Написание такого класса для шапки сайта, как: < header class="header" > < / header > - лучше так не делать, но все же возможно
  • Узкая система брейкпоинтов: 360 ➡️ 720 ➡️ 1000 ➡️ 1500. На самом деле, можно сделать так: 0 ➡️ 576 ➡️ 720 ➡️ 992 ➡️ 1024 ➡️ 1200 ➡️ 1360 ➡️ 1440 ➡️ 1500 (не для всех случаев), чаще будете использовать: 0 ➡️ 720 ➡️ 992 ➡️ 1200 ➡️ 1500
  • Нет возможности создавать отдельные повторяющиейся элементы, например бургер-меню, не должно быть отдельным элементом. Если навигация есть в шапке, то при схлопывании на брейкпоинте она же становится схлопнутым бургер-меню
  • Во FLEXBOX-контейнерах обращение к дочерним элементам лучше писать так: .flex > * {};
  • Придется дорабатывать или иногда додумывать дизайн-структуру в макете Figma, собирать свой icon-pack для работы (советую использовать сервис Glyther)