Расширенные возможности стилизации средствами CSS.
Пререквизиты — node.js 8.x или nvm.
git clone https://github.com/turboext/css.git
cd css
npm install
npm start
Локальный запуск тестов — npm test.
- автоматическое применение стилей без необходимости перезагружать страницу
 - возможность открыть локальную бету на мобильном телефоне
 - написание стилей в синтаксисе CSS или SCSS с использованием препроцессора postcss.
 
Допустим, вы хотите поменя стили для сайта https://rozhdestvenskiy.ru. Порядок действий следующий:
- создать директорию 
hosts/rozhdestvenskiy.ru(дальше все действия будут происходить внутри этой директории); - внутри этой директории создать файл 
HOSTS.yaml - указать там название домен сайта, который используется в турбо-страницах:
 
- https://rozhdestvenskiy.ru- создать файл 
style.cssилиstyle.scss - запустить dev-server
 - открыть http://localhost:3000 и выбрать адрес вашей турбо-страницы, например: 
https://rozhdestvenskiy.ru/, илиhttps://yandex.ru/turbo?text=https://rozhdestvenskiy.ru/; - внести изменения в файл стилей;
 - изменения стилей будут применены автоматически.
 
TURBO_HOST=https://some-host.yandex.ru npm start— возможность ходить за данными на отличный отhttps://yandex.ruсервер;&hostname=https://example.com— форсировать применение стилей для выбранного хоста, даже если url турбо-страницы отличается от него;&disable=1— отключить подмену CSS (может быть удобно для тестирования страницы в iframe).
По-умолчанию включён livereload режим, в котором изменения применяются автоматически без обновления страницы. Если с ним возникают сложности, нужно запустить сервер с переменной окружения LIVERELOAD=false:
- mac os x / linux — 
LIVERELOAD=false npm start - windows — 
set LIVERELOAD=false && npm start 
Существует два варианта:
- дождаться сборки автоматической беты в PR и использовать ссылки из описания PR
 - для доступа к локальной бете с мобильного телефона можно использовать встроенное тунеллирование на базе ngrok:
- mac os x / linux — 
PUBLIC=true npm startилиnpm run public - windows — 
set PUBLIC=true && npm startилиnpm run public 
 - mac os x / linux — 
 
Турбо-страницы могут отображаться внутри iframe, например в Поиске, поэтому рекомендуется смотреть на результат изменения стилей в iframe. В случае изменения каркаса страницы, могут возникнуть проблемы наличием горизонтального скролла. Убрать его можно следующим образом:
.ua_frame_yes .page__container {
    overflow-x: hidden;
}Для тестирования страницы внутри iframe — нужно использовать адрес /frame, /frame-morda, вместо /turbo. Ссылки на iframe будут доступны в PR.
- Установить расширенение live editor for CSS (или любое другое с похожими возможностями);
 - Зайти в браузере на турбо-страницу;
 - Написать CSS для нужных компонентов.
 
Ограничения указаны в конфиге stylelint:
- нельзя использовать пользовательские шрифты;
 - нельзя использовать низкопроизводительную анимацию;
 - нельзя использовать селекторы по имени тэга;
 - нельзя использовать любые внешние ресурсы;
 - размер CSS в gzip ограничен 21KB.
 
- Селекторы на 
.markupи его производные в скором времени перестанут работать 
На code review могут быть указаны дополнительные требования к коду.
Важно: список ограничений может меняться со временем.
- CSS код будет обработан с помощью postcss. Настройки можно посмотреть в конфигурационном файле.
 - Минимальные версии поддерживаемых браузеров
- android 4
 - iOS 9
 - IE 11
 
 - Векторные изображения предпочтительнее растровых. Размер всех изображений должен быть оптимизирован до приемлемого уровня качества.
 
Для оптимизации SVG рекомендуется использовать  svgo со следующими опциями: svgo -p 2 --multipass --enable=removeDesc --enable=removeTitle --enable=sortAttrs --enable=removeViewBox --enable=removeStyleElement -i [PATH_TO_SVG].
- Сделать fork репозитория;
 - Создать директорию 
hosts/example.com; - В директории должно быть несколько обязательных файлов — 
HOSTS.yaml, OWNERS.yaml, style.css. Возможен вариантstyle.scssдля использования синтаксиса SCSS.HOSTS.yamlдолжен быть указан домен для которых будут применяться текущие стили, например:- https://rozhdestvenskiy.ru
OWNERS.yamlдолжен содержать список логинов на https://github.com кому разрешено править стили для текущего домена, например:
- sbmaxx - Закоммитить изменения и создать PR в основной репозиторий. Желательно в тексте коммита указывать адрес сайта;
 - В описании PR добавьте несколько ссылок на ваши турбо-страницы;
 - Дождитесь создания автоматической беты. Ссылка на неё появится в описании PR через некоторое время после создания PR, проверьте на ней свои изменения;
 - Дождитесь прохождения линтеров;
 - Дождитесь прохождения ревью;
 
Изменения будут доступны в production в течение 30 минут после вливания PR в master ветку. В случае возникновения каких-либо проблем, пишите в slack, мы сможем помочь оперативно откатить изменения или внести правки.
- Создать issue с описанием сути изменений;
 - Сделать branch в формате 
issues/<номер_issue>; - Закоммитить изменения и создать PR в основной репозиторий;
 - Связать PR и issue (например, c помощью комментария).
 
https://turbosupport.slack.com, доступ по приглашениям.
