Б1. Выполнена HTML-разметка всех страниц и всех элементов на страницах.
Б2. К страницам подключён один стилевой файл (с учётом normalize.css или reset.css к каждой странице могут быть подключены два файла).
Б3. Стилевой файл подключён внутри <head>.
Б4. Грубые ошибки в разметке отсутствуют. Например: ссылки сделаны не тегом <a>, а другими тегами; использование строчных элементов для создания крупных (сеточных) блоков; абзацы сделаны не тегами <p>, а <br> <br>.
Б5. Документ проходит проверку на валидность http://validator.w3.org/nu/.
Стилизация
Б6. Вся собственная стилизация выполнена в одном стилевом файле.
Б7. Раскладка блоков на странице сделана не с помощью таблиц или позиционирования.
Б8. В CSS отсутствует !important. Допускается использование !important при обосновании его необходимости в комментарии.
Б9. Подключены правильные шрифты, их размеры и толщина соответствуют размерам в макетах и ТЗ.
Б10. Указаны альтернативные варианты шрифта и тип семейства в конце перечисления font-family.
Б11. При наполнении контентом (как в макете) элементы каждой страницы соответствуют макету, но допускаются: различия в 5 пикселей по высоте (при расстояниях более 30 пикселей) и 2 пикселя по ширине; отсутствие стилизации кастомных элементов форм; различия в отображении шрифтов, связанные со сглаживанием на различных платформах.
Тестирование
Б12. Вёрстка идентично отображается в последних версиях браузеров Chrome, Opera, Firefox, Safari, а также в Internet Explorer 10+.
Б13. Сайт нормально смотрится на минимальном для макета разрешении. padding по краям контейнера указывается для того, чтобы контент не прижимался к краям экрана на минимальном разрешении. При большем размере экрана макет должен оставаться по центру и не иметь горизонтального скролла. На разрешениях экрана меньше ширины контейнера вёрстка не должна менять свою структуру.
Разное
Б14. В корне документа имеются папки css, img, js или аналогичные. Главная страница имеет название index.html. В названиях и расширениях файлов нет заглавных букв и пробелов, использованы только латинские символы.
Б15. Единообразное написание и форматирование кода в HTML, CSS и JavaScript.
Б16. Выбран подходящий формат изображений. Например: JPEG для фотографий; PNG или SVG для всех прочих.
Дополнительные критерии
Разметка
Д1. У всех изображений в теге <img> прописан размер.
Д3. Все скрипты подключены непосредственно перед </body>.
Д4. Названия полей форм привязаны к своим полям с помощью <label>.
Стилизация
Д5. Использованы normalize.css или reset.css (но не оба сразу).
Д6. Для стилизации не использованы #id.
Д7. Нет вложенности селекторов больше двух.
Д8. Явно указано подходящее vertical-align для потоковых блоков с display: inline-block.
Д9. Для CSS-свойств с префиксом указан его вариант без префикса и это указание идёт последним.
Д10. Для блока у которого есть фоновое изображение прописан фоновый цвет, который соответствует преобладающему цвету изображения (пока изображение не загружено, страница выглядит похоже на макет).
Д11. Все состояния элементов (смотрите styleguide.psd) прописаны в стилевом файле.
Д12. Файл стилей представлен в двух вариантах: с форматированием и минимизированный, к странице подключён минимизированный.
JavaScript
Д13. JavaScript-файл представлен в двух вариантах: с форматированием и минимизированный, к странице подключён минимизированный.
Д14. С помощью JavaScript реализовано открытие/закрытие окна с формой (без вспомогательных библиотек).
Д15. С помощью JavaScript добавлена анимация формы (без вспомогательных библиотек).
Д16. Добавлена интерактивная карта (допускается подключение с помощью iframe).
Тестирование
Д17. Вёрстка проходит тест на переполнение контентом: не ломается при добавлении в элементы большего количества текста; не ломается при использовании картинок с неподходящими размерами; не ломается при изменении количества потоковых блоков. Текст не выпадает из блоков, нижерасположенные блоки не скрываются, смещение блоков в потоке сохраняет логику потока (не приводит к нарушению сетки).
Д18. Критический функционал сайта работоспособен без JavaScript (использовано прогрессивное улучшение). Например: все формы являются работоспособными без JavaScript; элементы, вызывающие появление попапов, являются ссылками, ведущими на отдельные страницы; интерактивная карта без JavaScript показывает статичную картинку с картой.
Разное
Д19. Отсутствует транслит в названиях классов, атрибутах и так далее.
Д20. При взаимодействии с элементами (наведение, нажатие) ни сам элемент, ни окружающие его блоки не меняют своего положения (если иное не прописано в ТЗ или slyleguide.psd).
Д21. Проведена базовая оптимизация: минифицированы стили и скрипты, использован спрайт или иконочный шрифт (можно оба).
Продвинутый HTML и CSS
Базовые критерии
Разметка
Б1. Выполнена HTML-разметка всех страниц проекта и всех элементов на этих страницах.
Б2. Грубые ошибки в разметке отсутствуют.
Б3. Документ проходит проверку на валидность http://validator.w3.org/nu/.
Б4. В разметке отсутствует дублирование кода для одного и того же элемента, с помощью которых элемент отображается в разных местах страницы на разных версиях: мобильной, десктопной, планшетной. Этот критерий не касается элементов, которые скрываются или показываются в разных версиях.
Б5. Отсутствуют типовые ошибки в разметке по методологии БЭМ.
Стилизация
Б6. Раскладка блоков на странице сделана не с помощью таблиц или позиционирования.
Б7. В CSS отсутствует !important.
Б8. Подключены правильные шрифты, их размеры, цвета и жирность соответствуют размерам, цветам и жирности в макетах и техническом задании.
Б9. Нестандартные шрифты подключены локально. Формат шрифтов должен быть woff и woff2.
Б10. Указаны альтернативные варианты шрифта и тип семейства в конце перечисления font-family.
Б11. При наполнении контентом (как в макете) элементы каждой версии страницы (мобильной, планшетной и десктопной) соответствуют макету.
CSS-препроцессор
Б12. Использован CSS-препроцессор.
Б13. Код стилей должен быть разбит на несколько частей.
Адаптивность
Б14. Выполнена вёрстка трёх состояний каждой страницы: мобильной, планшетной и десктопной.
Б15. Адаптивность должна работать на планшетах и мобильных устройствах.
Б22. Процесс сборки личного проекта должен быть настроен с помощью инструментов Грант или Галп.
Б23. Все зависимости проекта должны быть указаны в файле package.json. Команда npm i должна установить всё необходимое для того, чтобы сборка проекта работала.
Б24. Сборка проекта должна запускаться командой npm run build.
Б25. В результате сборки должна получаться папка build со всеми необходимыми файлами.
Б26. Папка build со всем её содержимым не должна попадать в Гитхаб.
Разное
Б27. Вёрстка идентично отображается в последних версиях браузеров Chrome, Opera, Firefox, Safari, Edge, а также в Internet Explorer 11.
Б28. Единообразное написание и форматирование кода в HTML, файлах CSS-препроцессора и JavaScript (включая файлы автоматизации).
Б29. Отсутствует транслит в названиях классов, атрибутах, переменных CSS-препроцессора, названиях примесей и так далее.
Б30. Мобильное меню должно быть работоспособным на мобильной версии при отключенном JavaScript.
Дополнительные критерии
Разметка
Д1. У всех векторных изображений размер прописан в теге <img>, у встроенных SVG-изображений размер прописан в теге <svg>.
Д3. Названия полей форм привязаны к своим полям с помощью <label>.
Стилизация
Д4. Для стилизации не использованы #id.
Д5. Явно указано подходящее vertical-align для потоковых блоков с display: inline-block.
Д6. Для блока, у которого есть фоновое изображение, прописан фоновый цвет, который соответствует преобладающему цвету изображения (пока изображение не загружено, страница выглядит похоже на макет).
Д7. Все состояния элементов (смотрите styleguide.psd) прописаны в стилевом файле.
CSS-препроцессор
Д8. Цветовые функции могут использоваться только для изменения альфа-канала цвета.
Д9. Примеси не используются для генерации правил с вендорными префиксами.
Д10. Нет вложенности больше двух уровней.
Д11. Верное использование & в стилевых файлах.
Д12. Не используются расширения (extend).
Тестирование
Д13. Вёрстка проходит тест на переполнение контентом.
Д14. Критическая функциональность сайта работоспособна без JavaScript (использовано прогрессивное улучшение).
Разное
Д15. При взаимодействии с элементами (наведение, нажатие) ни сам элемент, ни окружающие его блоки не меняют своего положения (если иное не прописано в техническом задании или slyleguide.psd).