Лучшие практики figma: компоненты, стили и общие библиотеки

Отдельные библиотеки

Многие команды, особенно средние и крупные, часто решают, что лучший подход – разбить компоненты на несколько библиотек. Это обеспечивает лучшее масштабирование.

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

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

Недостатки: прибавится работы для тех, кто отвечает за поддержание и публикацию библиотек.

Группировка слоев

Ранее мы узнали, что для удобства в работе с большим количеством слоев можно давать осмысленные названия каждому слою. Другой путь заключается в группировке слоев. В нижней части панели слоев есть значок папка Create a New Group (Создать новую группу). Но имеются и другие способы создания группы.

При нажатии на этот значок в панели слоев появится группа в виде слоя, но она будет пустая. Нам потребуется перетащить нужные слои в эту папку. Опять повторюсь, что если вы работаете с большим количеством слоев, то это неудобно и отнимет много времени. Конечно, это не страшно, но существует более удобный способ. Допустим, я хочу поместить в эту группу размытый и корректирующий слои, для этого нужно их выделить, удерживая клавишу Shift.

После того, как вы выбрали, какие слои будете группировать, нажмите на значок меню в верхнем правом углу панели слоев (в более ранних версиях Photoshop значок меню выглядит как маленькая стрелочка). В открывшемся меню слоев выберите New Group from Layers (Новая группа из слоев).

После этого на экране появится диалоговое окно New Group from Layers (Новая группа из слоев), в котором вы можете изменить название группы, а также некоторые другие параметры. Затем нажмите на кнопку ОК, чтобы принять настройки по умолчанию или какие-либо изменения, если вы что-то изменили.

Photoshop создает новую группу, дает ей название по умолчанию Group 1 (Группа 1) и перемещает два выбранных слоя в эту группу. Вы можете открыть папку и посмотреть, что находится внутри и снова закрыть, чтобы панель слоев была удобной для работы. Чтобы открыть папку нужно нажать на маленький треугольник слева от значка папки.

Чтобы снова закрыть группу, так же нажмите на значок маленького треугольника.

Очень много интересных и полезных вещей можно проделать с помощью группы слоев в Photoshop. Но в этом уроке я не буду вдаваться в подробности.

Активный слой

Вы, наверно, заметили, что когда у нас был только один фоновый слой, он был выделен синим цветом в палитре слоев. Далее, когда мы добавили слой Layer 1 (Слой 1), он выделился и так далее. Когда слой выделяется, он в настоящее время считается активным. Все, что вы будете делать на рабочем документе, будет относиться к выделенному слою.

Каждый раз, когда вы добавляете слой, Photoshop автоматически делает его активным, но по необходимости вы можете изменить активность слоя, для этого просто сделайте клик на нужном нам слое. На изображении ниже, я сделал активным слой Layer 1 (Слой 1), сделав по нему клик левой кнопкой мыши. В результате вы увидите, что он выделился синим цветом.

Альтернативные решения для управления специфичностью

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

Псевдоклассы и уже хорошо поддерживаются evergreen-браузерами. В скобках им можно передавать несколько селекторов. Разница заключается в том, как они работают со специфичностью.

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

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

Использование :is() и :where() для управления каскадом

Использование каскадных слоев вместе с препроцессорами

Препроцессоры CSS (Sass, Less) позволяют комбинировать стили из нескольких таблиц стилей.

Например, в Sass можно подключать другие файлы с помощью директивы :

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

А если вы создаете фреймворк или какую-то дизайн-систему, пользователи которой могут самостоятельно выбирать, какие части использовать, то можно создать переопределяемый список слоев и загружать только те слои, которые выбраны:

Можно ли использовать каскадные слои прямо сейчас?

Многие свежие фичи CSS мы можем начать использовать почти сразу в качестве прогрессивного улучшения, не дожидаясь полной поддержки в браузерах. Например, для свойств или селекторов вроде мы можем использовать директиву , чтобы проверить, поддерживаются ли они. Или же, наоборот, можно использовать метод graceful degradation, добавляя адекватный фоллбэк на случай, если фича не поддерживается.

К сожалению, с каскадными слоями так не получится. Это настолько крупное изменение, что будет очень сложно перейти к нему, пока не появится полифилл. Но вы можете уже сейчас начать экспериментировать с ними в «ночных» сборках браузеров, чтобы быть готовыми.

Изменение размера миниатюр

Одной из последней особенностей панели слоев, которая используется нередко, это изменение размера миниатюры изображения. Очень удобно для работы, когда в панели слоев миниатюры большого размера, но они занимают много места. Если вы работаете с большим количеством слоев, то удобнее будет уменьшить размеры миниатюр. Это можно сделать, нажав на значок меню в верхнем правом углу панели слоев, а затем выбрать Panel Options (Параметры панели).

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

После выбора нажмите ОК, чтобы закрыть диалоговое окно. Теперь посмотрите на панель слоев, она стала более компактной. Вы в любое время можете вернуться назад и изменить размер миниатюр на ваше усмотрение.

Специфичность стилей вне слоев

При разработке такой глобальной новой фичи как каскадные слои важно обеспечить надежный путь обновления, который не сломает весь интернет. Было решено, что стили «вне слоев», то есть обычные стили, которые мы используем прямо сейчас, всегда будут иметь наивысший приоритет

Их специфичность выше, чем специфичность слоев

Было решено, что стили «вне слоев», то есть обычные стили, которые мы используем прямо сейчас, всегда будут иметь наивысший приоритет. Их специфичность выше, чем специфичность слоев.

Стили вне слоев имеют приоритет даже если они появляются в коде раньше, чем слои, то есть порядок появления тут не имеет значения.

Стили внутри слоя и вложенные слои

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

Здесь все работает точно так же. Обычные стили («вне слоя») приоритетнее, чем слои, которые находятся на том же уровне. Цвет абзаца останется зеленым.

Место каскадных слоев в каскаде стилей

Чтобы понять, в чем ценность слоев, нам нужно чуть лучше разобраться в самом каскаде и понять, как именно браузер определяет, какие стили применить к элементу.

Источники стилей

Все начинается с источника стилей (origin).

У браузера есть три основных источника:

  • Авторские стили (Author origin). Те, которые вы сами написали для своего сайта в CSS-файлах, включая стили различных библиотек.
  • Пользовательские стили (User origin). Предпочтения пользователя, сохраненные в настройках браузера, например, размер шрифта.
  • Стили браузера (User-Agent origin). Дефолтное оформление, которое браузер применяет к HTML-страницам.

Кроме того, источниками считаются transitions (переходы) и animations (анимации). Во время выполнения они создают «виртуальные» правила стилей, которые имеют самый высокий приоритет. Но сейчас мы не будем их учитывать.

Каждое правило (из любого источника) может быть отмечено флагом !important, что увеличивает его приоритет. При этом important-правила с менее приоритетного источника важнее, чем important-правила с более приоритетного источника (порядок источников меняется).

Вот так выглядит итоговая шкала приоритетов:

  1. стили браузера + ,
  2. стили пользователя + ,
  3. авторские стили + ,
  4. обычные авторские стили,
  5. обычные стили пользователя,
  6. обычные стили браузера.

Если на более высоком уровне конкретный стиль не определен, то браузер движется вниз по уровням, пока не найдет нужное объявление. Если оно так и не нашлось на первых пяти уровнях, то будут использованы стили браузера по умолчанию (уровень 6).

Независимо от того, как вы пишете стили — с помощью препроцессоров или без них, используя BEM или CSS-in-JS — вы всегда работаете внутри «авторского» источника стилей.

Специфичность и порядок появления

При (определении приоритета) учитывается несколько параметров (включая источник). Вот их полный список в порядке убывания значения:

Источник и важность (модификатор ).
Область видимости. Например, теневой DOM создает собственный контекст стилизации, поэтому стили внутри него не зависят от стилей самой страницы.
Инлайн-стили, привязанные к конкретному элементу с помощью атрибута .
Специфичность селекторов.
Порядок появления стилей в коде — работает по правилу «последний побеждает».. В рамках «авторского» источника стилей мы можем управлять двумя последними параметрами: специфичностью правил и порядком появления стилей

И это совсем не просто

В рамках «авторского» источника стилей мы можем управлять двумя последними параметрами: специфичностью правил и порядком появления стилей. И это совсем не просто.

Рассмотрим маленький пример. У нас есть абзац с классом :

И вот такая таблица стилей:

Каким в итоге будет цвет текста абзаца?

Селектор по тегу имеет самую низкую специфичность, не учитываем его. Однако специфичность селектора по классу () и псевдокласса () одинакова. В этом случае браузер смотрит на порядок появления правил в коде — и побеждает, так как идет после . В итоге, текст абзаца будет красным.

Если же вы хотите, чтобы применились стили класса , вы можете сделать следующее:

  • добавить к определению модификатор ;
  • переместить правило после ;
  • увеличить специфичность селектор, превратив его, например, в .

Но каждое из этих решений имеет последствия:

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

Чтобы не потерять контроль над стилями, мы используем различные «ненативные» способы управления каскадом. Например, методология BEM или CSS-in-JS-решения управляют специфичностью селекторов, поддерживая ее на уровне селектора по классу.

Каскадные слои после своего появления встанут между 3 и 4 пунктами (между инлайн-стилями и специфичностью селекторов). Другими словами, они дадут нам способ явно указать приоритет стилей, без оглядки на их специфичность и порядок появления.

Специфичность каскадных слоев

Каким же образом каскадные слои влияют на приоритет стилей?

Внутри слоев продолжают действовать все рассмотренные ранее правила (специфичность и порядок появления селекторов). Однако на уровне самих слоев они перестают иметь значение.

Более «поздний» слой перекрывает более «ранний» независимо от специфичности селекторов на нем.

Любые селекторы, определенные в слое , будут иметь приоритет над любыми селекторами из слоев или . А стили из слоя будут самыми приоритетными, даже если это простые селекторы по тегу.

Специфичность слоя важнее, чем специфичность селектора в нем.

В этом примере простой селектор по тегу будет важнее, чем более сложный селектор дочернего элемента . Поэтому все заголовки второго уровня на странице будут синими.

Помним, что порядок слоев можно определить явно, с помощью .

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

Теперь должно быть более понятно, почему слои называются «слоями». Их можно сравнить со слоями в Photoshop, где верхний слой перекрывает нижние, но в тех местах, где верхний слой прозрачен (не устанавливает каких-то правил), нижние все равно «просвечивают».

Блокировка слоев

В панели слоев имеется несколько различных способов блокировки слоев. Например, если часть слоя прозрачная, то мы можем заблокировать прозрачные пиксели. В результате вы можете работать только с пикселями изображения. Мы можем заблокировать пиксели изображения, так же можно заблокировать положение слоя, чтобы случайно его не переместить.

В панели слоев чуть ниже опции Blend mode (Режим наложения) расположено четыре значка блокировки. Слева направо: Lock Transparent Pixels (Сохраняет прозрачность пикселов), Lock Image Pixels (Сохраняет цвета пикселов), Lock Position (Закрепляет положение) и Lock All (Сохраняет все). Если вы выберите один из вариантов блокировки, то на выбранном слое справа появится значок замка.

На изображении ниже видно, что на фоновом слое есть значок замка, он блокируется по умолчанию.

Использование !important в слоях

Как и в случае с обычной каскадной сортировкой стилей без слоев, модификатор повышает приоритет свойства, объявленного внутри слоя. «Важные» стили всегда приоритетнее, чем «неважные» на том же или другом слое.

Обратите внимание: если несколько «важных» стилей конкурируют, то победит тот, который был определен РАНЬШЕ. Такое поведение соответствует механизму работы модификатора для разных источников стилей, который мы рассматривали в начале статьи

Кроме того, «важные» стили в слое приоритетнее, чем «неважные» стили вне слоев.

В этом фрагменте кода у нас два каскадных слоя и одно правило «вне слоев». Все стили имеют модификатор

Победит «важное» правило с самого первого слоя

На картинке обозначен приоритет применения стилей:

Все очень непросто, поэтому лучше вообще не использовать в ваших стилях модификатор .

Вот небольшой пример, иллюстрирующий все, что мы только что рассмотрели:

See the Pen
@layer specificity and !important by Smashing Magazine (@smashingmag)
on CodePen.

К сожалению, в настоящее время инструменты разработчика в браузере не отображают, какому слою принадлежит тот или иной стиль, но это, вероятно, скоро изменится.

Блокирование, разблокирование слоя в Автокад

На блокированном слое Автокад нельзя вносить какие-либо изменения.

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

Как заблокировать слой в Автокад

За блокировку слоя в Автокад отвечает иконка в виде замка напротив слоя Автокад, который нужно заблокировать или разблокировать. Чтобы заблокировать слой в Автокад нужно щелкнуть по иконке открытого замка напротив слоя Автокад. Если вы заблокировали слой Автокад, то иконка будет иметь вид закрытого замка.

Как в Автокад разблокировать слой

Чтобы разблокировать слой в Автокад нужно щелкнуть по иконке закрытого замка напротив слоя Автокад. Если вы разблокировали слой Автокад, то иконка будет иметь вид открытого замка.

Выводимые на печать объекты слоя в Автокад и невыводимые

Чтобы запретить выводить объекты слоя Автокад на печать щелкните по иконке принтера. Если иконка принтера не перечеркнута, то объекты слоя Автокад выводятся на печать, в противном случае — невыводятся.

Прозрачность слоя Автокад

Автокад позволяет управлять видимостью объектов на слое — прозрачностью слоев (объектов на слое) Автокад. Параметр слоя Автокад «Прозрачность» лежит в пределах от 0 до 90 % (нулевое значение слоя — слой Автокад полностью непрозрачный).

Слои в Автокад: свойства и параметры слоя

Слои в Автокад имеют 4 параметра (свойства) состояния (видимости, регенерации, внесения изменения):

  • Вкл./Выкл слой Автокад
  • Размороженный/Замороженный слой в Автокад
  • Разблокированный/Блокированный слой Автокад
  • Выводимый на плоттер/Не выводимый на плоттер слой в Автокад

а также для каждого слоя в Автокад можно задать следующие параметры (свойства):

  • Цвет линии слоя Автокад.
  • Тип линии слоя.
  • Вес линии слоя в Автокад. 
  • Прозрачность слоя.
  • Стиль печати слоя в Автокад.
  • Замороженный на новых ВЭ.

Включение, отключение слоев в Автокад

На выключенном слое Автокад объекты не отображаются на экране, не выводятся на печать, но участвуют в регенерации.

Другими словами отключение слоев в Автокад приводит к тому, что объекты принадлежащие этому слою исчезают с экрана, но перерассчитываются системой Автокад при обновлении чертежа (регенерации). 

Как отключить слой Автокад

Откройте диспетчер свойств слоев либо в выпадающем списке слоев щелкните по иконке лампочки напротив слоя Автокад, который нужно отключить. Иконка лампочки изменит цвет на синий (выключена).

Как включить слой в Автокад

Чтобы включить слой в Автокад нужно  щелкнуть по иконке лампочки напротив слоя Автокад. Иконка лампочки изменит цвет на желтый (состояние включенного слоя Автокад).

Как заморозить слой Автокад

Чтобы заморозить слой в Автокад нужно щелкнуть по иконке солнца напротив слоя. Иконка солнца изменится на иконку снежинки (состояние замороженного слоя Автокад).

Как в Автокад разморозить слой

Чтобы разморозить слой в Автокад нужно щелкнуть по иконке снежинки напротив слоя Автокад. Иконка снежинки изменится на иконку солнца (состояние размороженного слоя Автокад).

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Вернисаж фотографий
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: