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

Через некоторое время, я понял, что новая функция (group resizing) — действительно очень простая, но очень мощная в плане функционала. Это опция для создания адаптивного дизайна. Должен сказать, что простота этой опции по-настоящему гениальна!

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

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

Основы

Одна картинка стоит тысячи слов.

group resizing sketch

Это действительно просто — установить group resizing в группе. Выберите слои в группе один за другим и выберите необходимую опцию ресайза, готово. Следующие примеры дадут вам больше понимания, если это изображение выглядит сложным.

На данный момент, мы имеем 4 опции ресайза

4 опции ресайза Sketch

Данная опция может использоваться в групповых шейпах. Ура!

ресайз групповых шейпов

Давайте рассмотрим продвинутые возможности опции группового ресайза

Реальные примеры и техника

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

Также, мне следует упомянуть о поддержке вложенности группы. В данный момент, есть один недостаток: в момент ресайза группы, слои в дочерних группах, могут получить плавающие значения при назначении положения, несмотря на то, что дочерние слои не будут иметь плавающих значений. Это возможно только при установке “выравнивания слоев по пикселям”. Иначе, в обоих ситуациях, вы можете получить плавающие позиции. Думаю, было бы здорово иметь возможность настраивать это.

Давайте рассмотрим эту опцию более детально.

Элементы UI чата

Элементы UI чата

Вид текстовых сообщений

Опция “ресайз объекта» может отрабатывать по-разному, в зависимости от того, сколько границ (edges) объекта пересекается с краями группы. В целом, все работает ожидаемо, кроме третьего кейса.

Вид текстовых сообщений

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

1-EZQczM9vNP7T9QRGukxUww

Подсказка для изменения высоты

Вид голосового сообщения

ресайз маски sketch - это лучшее решение

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

Вид фотосообщений

Фото сообщения ресайз

Вид ввода текста

Вид ввода текста

Колориметр Sketch

Колориметр Sketch

Панель и слой заливки

Панель и слой заливки

Слой бекграунда панели является группой шейпов, которые используют фичи группового ресайза. Нам необходимо применить логические операции для того, чтобы сделать его адаптивным. Если вы просто объедините треугольник с закругленным прямоугольником, это не будет работать из-за того же примера с “3мя границами”, как в случае с просмотром текстовых сообщений.

Интерфейс Sketch

Интерфейс Sketch

Основная структура

Основная структура

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

Вывод

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

Я планирую написать серию постов о списке моих пожеланий в Sketch. Покажу свои предложения в ближайшем будущем.