Почему мы стали использовать препроцессор Stylus в Яндекс.Почте, а также о библиотеке, помогающей жить с IE

Библиотека if-ie.styl

согласно БЭМ

if-ie.styl

Дополнительные возможности if-ie.styl

  1. В обоих файлах нужно подключать библиотеку до всех остальных стилей, и обязательно оба раза. (Может показаться, что хватило бы только первого — ведь таблица стилей для IE уже содержит основную таблицу стилей — но тогда некоторые последующие возможности не будут работать). В этом файле уже определяется , и поэтому в основной таблице стилей не нужно это явно прописывать.
  2. В таблице стилей для IE пропало условие — это показана работа первой фичи библиотеки: свойство автоматически появится только в таблице стилей для IE. Конечно, и в обычных браузерах можно использовать это свойство, но на практике такая необходимость случается крайне редко, так что можно облегчить основную таблицу стилей хотя бы чуть-чуть.

Похожие товары

    • Acer Aspire Active Stylus V. Стилус для сенсорных устройств

      4 990 ₽

      Купить

    • Adonit Ink Pro. Стилус для Windows

      9 890 ₽

    • Adonit Pixel Pro. Емкостной стилус для iPad с имитацией силы нажатия

      9 690 ₽

      Купить

    • Pencil 53 Holder Slim Soft Case. Чехол для стилуса

      1 690 ₽

      Купить

    • Wacom Bamboo Alpha 2. Емкостной стилус

      2 890 ₽

      Купить

    • Adonit Jot Mini 3. Емкостной стилус

      2 690 ₽

    • Adonit Jot Pro 3. Стилус для сенсорных устройств

      3 990 ₽

    • Adonit Ink. Стилус для Windows

      7 890 ₽

    • Wacom Bamboo Fineline 3. Стилус для емкостных устройств

      4 990 ₽

    • Adonit Dash 3. Стилус для емкостных устройств

      6 990 ₽

    • Adonit Snap. Стилус для емкостных устройств

      4 890 ₽

    • Just Mobile Alupen Digital Ap-898. Стилус-ручка для дисплеев

      3 990 ₽

    • Uniscend Activetouch. Стилус для планшетов и смартфонов с емкостным дисплеем

      2 890 ₽

      Купить

    • Pencil 53. Кожаный чехол для стилуса

      1 090 ₽

    • Adonit Mark. Стилус для емкостных устройств

      от 2 490 ₽

    • Adonit Switch. Стилус для емкостных устройств

      4 990 ₽

    • Wacom Bamboo Smart. Стилус для емкостных устройств

      3 990 ₽

      Купить

    • FitSand. Чехол для Pencil 53 из войлока

      890 ₽

    • Cregle Ink. Стилус для емкостных дисплеев

      6 990 ₽

    • Apple Pencil. Стилус для планшета iPad Pro

      9 890 ₽

      Купить

    • Wacom Bamboo Fineline 2. Стилус для емкостных устройств

      6 990 ₽

    • Adonit Jot Dash. Стилус для емкостных устройств

      6 990 ₽

    • Wacom Bamboo Solo 3. Стилус для планшета

      2 890 ₽

    • Wacom Bamboo Solo 2. Стилус для планшета

      2 790 ₽

    • Bamboo Feel Carbon. Стилус для планшета

      6 990 ₽

    • Wacom Bamboo. Стилус для устройств с емкостным дисплеем

      2 790 ₽

    • Cosmonaut. Стилус для емкостных дисплеев

      3 490 ₽

      Купить

    • Chubby. Стилус для сенсорных устройств

      990 ₽

    • Touch Pen. Стилус-ручка для емкостных дисплеев

      от 990 ₽

    • Pogo Connect 2. Cтилус для сенсорных устройств

      5 990 ₽

    • Bamboo Feel. Стилус для емкостных экранов

      4 790 ₽

    • Wacom Intuos Creative Stylus. Cтилус для устройств на iOS

      4 890 ₽

    • Adonit Jot Flip. Стилус для устройств с емкостным дисплеем

      2 890 ₽

    • Adonit Jot Pro. Стилус для емкостных дисплеев

      3 490 ₽

    • Sensu Solo. Кисть для рисования на сенсорных экранах

      от 1 990 ₽

    • Adonit Jot Script 2. Стилус для емкостных дислпеев

      7 690 ₽

    • Adonit Jot Mini 2. Стилус для емкостных экранов

      от 2 490 ₽

    • Adobe Ink & Slide. Набор для рисования на емкостном дисплее

      2 990 ₽

      Купить

    • Adonit Jot Mini. Стилус для емкостных дисплеев

      1 890 ₽

    • Adonit Jot Pro 2. Стилус для емкостных экранов

      3 390 ₽

    • Adonit Jot Script. Стилус для емкостных дисплеев

      6 990 ₽

      Купить

    • Wacom Bamboo Fineline. Стилус для емкостных устройств

      от 4 990 ₽

    • Adonit Jot Touch 4. Стилус для сенсорных устройств

      4 490 ₽

    • Sensu Brush. Кисть-стилус для рисования на сенсорных экранах

      от 4 990 ₽

Выбор препроцессора

LessSassCompass

  • , применённое для селектора , должно давать — подобные конструкции нужны для упрощения использования БЭМ-наименования и очень удобны, когда нужно сгенерировать в цикле множество модификаторов.
  • , применённое для селектора , должно дать мультикласс , но так в Sass сделать не получится: можно будет дать мультикласс только к , если написать , но не наоборот.
  • , применённое к , должно бы уточнить селектор до , но — увы.

фичаStylus

  • Stylus — очень гибкий препроцессор, и часто он оказывается гораздо гибче того же Sass. Например, parent references Stylus раскрывает идеально.
  • В Stylus есть такая штука как прозрачные миксины — возможность вызвать функцию как обычное CSS-свойство. То есть сначала определить , а потом вызвать её как . Такая запись будет равнозначна вызову . Для обычных функций это не всегда удобно, но зато позволяет переопределить любое имеющееся свойство. Скажем, можно переопределить в . Если серьёзно, то при использовании подобной функциональности можно легко запутаться и усложнить понимание того, что же делает код: ведь не всегда будет ясно, какие функции были определены выше по коду и что произойдёт в результате вызова очередного свойства.
    Однако прозрачные миксины очень сильно упрощают поддержку, например, браузерных префиксов. Не нужно запоминать, какие префиксы имеет то или иное свойство, и заботиться о том, нужно ли для очередного свойства писать специальную конструкцию. Достаточно просто всегда писать без префиксов, а об их добавлении позаботится подключённая библиотека (мы используем для этого свой форк nib).
  • Stylus написан на JS. Это значит, что его проще поддерживать и править в нём баги (все разработчики интерфейса Яндекс.Почты гораздо лучше знают JS, чем Ruby). К тому же это позволяет проще использовать Stylus в цепочке с другими инструментами на node.js (например, CSSO).
Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Adblock
detector