Когда дело доходит до CSS, всегда появляются новые инструменты, которые помогают нам быстрее и эффективнее преобразовывать стили. В прошлом году в сообществе разработчиков был ажиотаж по поводу PostCSS. Я использую PostCSS в течение нескольких месяцев и, поверьте мне, это ускорило рабочий процесс разработки интерфейса и улучшило качество CSS с помощью Javascript Плагины.

Но для тех, кто до сих пор не слышал о PostCSS, вот очень быстрая аналогия, написанная Ashleynolan.

Думайте о препроцессоре, таком как Sass, как о покупке полностью построенного дома. Вы знаете его особенности, потому что он уже полностью сформирован - его помещения и функции уже определены. Однако добавить в этот дом новые комнаты и функции может быть сложно.

С другой стороны, PostCSS - это как если бы вы унаследовали участок земли и кучу кирпичей. По сути, вы можете создавать все, что захотите, с любыми функциями, которые вам нужны.

Итак, PostCSS - это инструмент, который позволяет вам добавлять плагины PostCSS, которые позволяют вам различными способами манипулировать вашим CSS.

Но имейте в виду, что PostCSS не обязательно заменяет Sass или LESS.

Что такое PostCSS?

PostCSS - это инструмент для преобразования стилей с помощью плагинов JS. Эти плагины могут анализировать ваш CSS, поддерживать переменные, миксины, преобразовывать будущий синтаксис CSS, встроенные изображения и многое другое. Это означает, что он может действовать как препроцессор, если вы этого хотите, и позволяет вам использовать инструменты, отвечающие вашим потребностям. Поэтому вам просто нужно рассматривать PostCSS как инструмент сборки, позволяющий управлять своим CSS с помощью различных плагинов JavaScript, которые вы можете найти на http://postcss.parts

Зачем использовать PostCSS?

Большинство современных разработчиков редко начинают проект с нуля. Они предпочитают фреймворк или шаблон, содержащий различные миксины, переменные и функции, у которых есть отдельные таблицы стилей для каждого из них. Это дает больше времени на то, чтобы все было организовано. Итак, Поддержание библиотеки фрагментов Sass или LESS может оказаться непосильной задачей и привести к раздутию проекта. Здесь PostCSS позволяет легко устанавливать модули plug-and-play, делая процесс разработки более гибким для уникальных потребностей проекта.

PostCSS перемещает весь код, необходимый для создания функций, утилит и миксинов из наших производственных таблиц стилей, и превращает их в плагины. Теперь для каждого проекта мы можем выбирать необходимые инструменты, включая плагины в нашу программу выполнения задач.

Преимущества

  • Используйте синтаксис CSS завтрашнего дня уже сегодня.
  • Легко внести свой вклад в виде настраиваемых плагинов.
  • Больше контроля над используемыми функциями.
  • Более быстрое время компиляции.

Добавление PostCSS в рабочий процесс

PostCSS можно легко интегрировать в ваш текущий рабочий процесс. PostCSS имеет JavaScript API, который легко интегрируется с программами запуска задач, такими как Gulp, Grunt и Web pack. В приведенном ниже руководстве показано, как включить PostCSS в рабочий процесс с помощью Gulp.

Если вы не знакомы с Gulp, я бы порекомендовал прочитать Рабочий процесс Gulp, чтобы приступить к работе с инструментом.

Для Grunt:

Для Webpack:

Давайте начнем

В gulpfile.js вашего проекта нам нужно потребовать, чтобы наш установленный модуль PostCSS запустил

$ npm install --save-dev gulp-postcss

Базовое использование

var gulp = require('gulp');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer');
var cssnano = require('cssnano');
gulp.task('css', function () {
var processors = [
 autoprefixer({browsers: ['last 1 version']}),
 cssnano(),
];
return gulp.src('./src/*.css')
 .pipe(postcss(processors))
 .pipe(gulp.dest('./dest'));
});

Передача дополнительных опций в PostCSS

Второй необязательный аргумент gulp-postcss передается в PostCSS.

var gulp = require('gulp');
var postcss = require('gulp-postcss');
var nested = require('postcss-nested');
var scss = require('postcss-scss');
gulp.task('default', function () {
 var processors = [nested];
 return gulp.src('in.css')
 .pipe(postcss(processors, {syntax: scss}))
 .pipe(gulp.dest('out'));
});

Чтобы запустить задачу, введите в командной строке gulp. В приведенном выше примере autoprefixer и cssnano - это плагины PostCSS.

Основные особенности нескольких плагинов PostCSS:

  1. Автопрефиксатор

Если вы раньше использовали препроцессор (SASS / LESS), вы уже знаете, что вам больше не нужно писать все префиксы поставщиков.

Для установки документация доступна здесь: https://github.com/postcss/autoprefixer

Например, вместо того, чтобы писать

.example {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex
}

Ты можешь просто написать

.example {
  display: flex
}

2. CSSNext - используйте синтаксис CSS завтрашнего дня

Существует плагин под названием CssNext, который помогает нам использовать некоторые функции следующей версии CSS.

Все эти функции перечислены на официальном сайте CssNext: http://cssnext.io/features/
И вы также можете поиграть с ним здесь: http://cssnext.io/playground/

:root {
  --centered: {
    display: flex;
    align-items: center;
    justify-content: center;
  };
}
.centered {
  @apply --centered;
}

//Output CSS                                                                                
.centered {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

Приведенные выше примеры - лишь основные моменты. Я буду освещать серию из 10 самых популярных плагинов PostCSS с их полной настройкой.

Так что следите за обновлениями !!

Заключение

Я призываю вас исследовать мир PostCSS и попробовать все доступные плагины и проверить их возможности на площадке PostCSS.

Надеюсь, вы нашли этот блог полезным. Не стесняйтесь делиться своими мыслями и мнениями и оставлять мне комментарии, если у вас есть какие-либо проблемы или вопросы. А до тех пор

Продолжайте взламывать !! Ура! и чтобы поддержать меня, вы можете купить мне кофе !!