Zen CSS

Что может быть важнее для верстальщика, чем комфортная и быстрая работа с HTML-кодом? Правильно — только комфортная и быстрая работа с CSS-кодом. Ведь основная часть работы современного разработчика происходит именно с CSS.

Поэтому, вслед за рассказом о редакторе TextMate и пакете настроек Zen HTML, следует обзор пакета Zen CSS. Для начала, предлагаю вам небольшой скринкаст, демонстрирующий его основные возможности:

Подобно принципам работы предыдущего пакета, принципы этого основаны на использовании псевдонимов для CSS-свойств. Например:

bg → background:|;
bgc → background-color:#|FFF|;

Таким образом, развёрнутое свойство готово к введению значения на месте появления курсора |. В случае, когда значение свойства предсказуемо, как в нашем примере с цветом фона, псевдоним разворачивается со значением по умолчанию, которое выделено и готово к редактированию |…|.

Но помимо длинных свойств, существует некоторое количество достаточно сложных для написания значений, к примеру — list-style-type:decimal-leading-zero. В этой ситуации нам на помощь приходит второй тип псевдонимов — с заданным значением:

lst:n → list-style-type:none;
lst:declz → list-style-type:decimal-leading-zero;

Другая сложность кроется в сокращённом написании свойств — зачастую, нам приходится писать длинные однотипные конструкции вроде font:1em Arial,sans-serif или padding:10px 0 2px 0. Для таких случаев предусмотрены специальные псевдонимы с предустановленными комбинациями значений:

f+ → font:1em Arial,sans-serif;
bg+ → background:#FFF url(../i/) 0 0 no-repeat;

Плюс в данном случае символизирует разворачивание псевдонима в сложное правило. Если нам нужно описать сокращённое свойство блока при помощи двух, трёх или четырёх значений — top|bottom + right|left, top + right|left + bottom, top + right + bottom + left — то мы используем следующий тип псевдонимов:

p:2 → padding:|0| 0;
p:3 → padding:|0| 0 0;
p:4 → padding:|0| 0 0 0;

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

Такой тип псевдонимов предусмотрен только для самых часто употребимых случаев использования двойных, тройных и четверных сокращений — для свойств padding и margin. В дальнейшем, если это окажется востребованным, методика заполнения комбинаций свойств может быть использована для свойств border, outline, а также для значений rgb, rect и подобных им.

Пакет включает в себя все свойства CSS 2.1, а также некоторую экзотику из CSS 3, но пока только в самом простом виде, без широкого круга предустановленных значений:

bsz → box-sizing:|;
bsh → box-shadow:|;
bi → border-image:|;
brs → border-radius:|;

Доступны также типовые варианты решений проблем с IE:

bg:ie → filter:[…]AlphaImageLoader(src='i/|',sizingMethod='crop');
op:ie → filter:alpha(opacity=|);
exp → expression(|)
fr → filter:|;
z → zoom:1;

Ну и конечно некоторые полезные мелочи, повешенные на горячие клавиши — фигурные скобки:

Cmd + Enter →
{
    |
    }

…и заголовки структурных элементов вашего CSS-файла:

Cmd + Alt + / →
/* |
---------------------------------------- */

Следующая публикация из серии Zen Coding, запланированная на ближайшие дни, будет содержать оба пакета настроек — Zen HTML и Zen CSS, а также некоторые планы по их развитию и поддержке.

Энергичный инструментал для скринкаста — группа Skafandr с композицией «Тяжёлый шар земной».

Комментарии

21

Я так понял, это все реализовано в виде отдельно программы? А где ее можно скачать?

Zodios, это пакеты настроек для редактора TextMate, который доступен на платформе Mac OS X. Однако и на Windows есть программы, которые объявили об их поддержке, в частности — E Text Editor.

Павел, наверное всё-таки из-за более частой употребимости. Для z-index у меня есть псевдоним «zi». Хотя это не принципиальная позиция, мнения заинтересованных в развитии бандла людей с удовольствием приму ;)

Супер бандл! Думаю если запомнить все, то можно будет также шустро кодить. А где бандл брать то? :-)

На мой взгляд, зря переопределили cmd+enter, по-умолчанию на него повешена очень удобная штука (перевод каретки на новую строку с любого места)

А скобки и так можно довольно быстро ставить (поставил открывающую TM автоматически ставит закрывающую, а потом просто нажимаешь enter), единственное отличие от вашего сниппета в том, что закрывающая скобка будет в начале строки а не после таба

Товарищи, желающие попробовать бандл, внимательнее читаем предпоследний абзац ;) Идут последние приготовления…

Panya, мне оказалась важна именна такая комбинация скобок/табов. Если придумаю каким образом только для CSS выставлять скобки именно так, то, возможно, откажусь от этого варианта. А пока одно движение гораздо удобнее, чем: пробел + скобка + enter.

Вадим, у меня скобки автоматически дописываются. То есть, ставишь одну, появляется вторая, между ними курсор. Это очень удобно, но когда нажимаю enter, то нижняя скобка прижимается к левому краю (то есть не как у тебя). Не знаешь где и как это поправить? Я бы бы очень благодарен.

fetis, чертовски верно. Нынешние бандлы выросли именно из моих экспериментов с автоподстановкой в TopStyle. Но, к сожалению, механизмы подстановки в TopStyle довольно примитивны — хотя в своё время мне их хватало с головой. Так что воспринимайте эти бандлы как некий шаг вперёд в развитии моих идей быстрого кодинга )

Максим, честно говоря, я не готов определить какая именно часть дефолтного бандла CSS отвечает за это, но факт есть факт — он так умеет. Довольного большую часть функциональности я позаимствовал их него.

Хорошо вам на маках))) Я вот всё мечтаю систему сниппетов в Komodo до похожего состояния довести.

Кстати, чем обоснована запись имён тегов в верхнем регистре?

Имена элементов в верхнем регистре — один из способов отделить селектор .body от body, без пристального всматривания, сходу. Подробности — в скором переиздании доклада «CSS-менеджмент» ;)

@pepelsbey | один из способов отделить селектор .body от body
Грамотная подсветка рулит.

@Михаил | Хорошо вам на маках))) Я вот всё мечтаю систему сниппетов в Komodo до похожего состояния довести.

Можно юзать, e-texteditor или intype

Грамотная подсветка рулит

Я пользуюсь в TextMate темой minimal Theme, там, к сжл, такого нет. Мне бы сил и возможностей написать свою расцветку… но это дело почище бандлов.

Можно юзать, e-texteditor или intype

Я работаю под win и под linux, поэтому нужен были кроссплатформенный редактор. А e и intype - знаю давно, но они оба только под win. Ну да всё это разговоры в пользу бедных, что называется. Здесь важнее идея именования бандлов, за что отдельное спасибо Вадиму.

Там различаются по цвету класс, id и селектор

А ведь точно. Сглупил.
Думаю, нужно будет пересмотреть кое-какие привычные представления.

А будет ли поддержка для Линукс для Gedit в частности... Или для Aptana&