Emmet (ранее Zen Coding) - набор плагинов для текстовых редакторов, которые в некоторой степени ускоряют написание кода HTML, CSS.

Посмотрим правде в глаза: написание HTML-кода требует времени, со всеми тегами, атрибутами, кавычками, скобками и так далее. Конечно, в большинстве текстовых редакторов есть подсказки, которые сильно помогают, но все равно придется много печатать. Emmet мгновенно преобразовывает простые аббревиатуры в полноценные блоки кода.

HTML аббревиатуры

- Инициализаторы

Подготовка к работе с новым HTML документом занимает менее чем секунду. Просто введите ! или html:5, нажмите «Tab», и вы увидите HTML5 doctype с несколькими тегами и отправной точкой для вашего приложения.

- Легко добавить классы, IDы, текст и атрибуты

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

p#desc
<p id="desc"></p>

Кроме того, вы можете комбинировать классы и идентификаторы:

p.bar#foo
<p class="bar" id="foo"></p>

Теперь давайте посмотрим, как указать содержимое и атрибуты для HTML элементов. Фигурные скобки используются для содержания:

h1{My title}
<h1>My title</h1>

Квадратные скобки используются для атрибутов:

a[href="#"]
<a href="#"></a>

- Вложенность элементов

Используя вложенные сокращения, вы можете построить целую страницу, используя всего одну строку кода. Во-первых, дочерний селектор, в лице >, позволяет вкладывать элементы. Селектор соседних элементов, в лице +, позволяет размещать элементы рядом друг с другом, на том же уровне. Наконец, новый оператор перехода на уровень выше, в лице ^, позволяет перейти по дереву элементов вверх на один уровень.

p>span
<p><span></span></p>

h1+h2
<h1></h1>
<h2></h2>

p>span.title^p#desc
<p><span class="title"></span></p>
<p id="desc"></p>

- Группировка

Чтобы эффективно использовать вложения не превращая их в запутанный беспорядок операторов, вам нужно сгруппировать несколько кусков кода. Это как математика - нужно просто использовать скобки вокруг определенных частей:

(.foo>h1)+(.bar>h2)
<div class="foo">
    <h1></h1>
</div>
<div class="bar">
    <h2></h2>
</div>

- Умножение

Вы можете определить, сколько раз элемент должен быть выведен с помощью оператора *.

ul>li*3
<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>

- Нумерация

Как на счёт комбинации оператора умножения и нумерации? Просто поставьте оператор $ в конце названия атрибута или элемента и будет вам счастье!

ul>li.item$*3
<ul>
    <li class="item1"></li>
    <li class="item2"></li>
    <li class="item3"></li>
</ul>

CSS аббревиатуры

- Значения

Emmet предназначен для упрощения написания не только HTML, но и CSS кода. Допустим, вы хотите задать ширину:

w100
width: 100px;

Значение px ставится по умолчанию. Другие единицы измерения используют свои символы:

h10p+m5e
height: 10%;
margin: 5em;

- Дополнительные опции

@f
@font-face {
    font-family: ;
    src: url();
}
@f+
@font-face {
    font-family: 'FontName';
    src: url('FileName.eot');
    src: url('FileName.eot?#iefix') format('embedded-opentype'), 
           url('FileName.woff') format('woff'),
           url('FileName.ttf') format('truetype'), 
           url('FileName.svg#FontName') format('svg');
    font-style: normal;
    font-weight: normal;
}

- Приставки браузеров

CSS3 крут, но вендорные префиксы - реальная боль для всех нас. Теперь уже нет, Emmet нам поможет. Например, trs будет преобразовано в:

trs
-webkit-transition: prop time;
-moz-transition: prop time;
-ms-transition: prop time;
-o-transition: prop time;
transition: prop time;

Lorem ipsum

Забудьте о сторонних сервисах, которые производят текст "Lorem ipsum". Теперь вы можете сделать это быстро в своем редакторе. Просто используйте lorem или lipsum для сокращения. Вы можете определить сколько слов требуется вывести. Например, lorem10 выведет:

lorem10
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Id, quas?
p*3>lorem3
<p>Lorem ipsum dolor.</p>
<p>Corporis facere, quod?</p>
<p>Consectetur, consequatur, maxime?</p>