Base Shapes

Базовые и вспомогательные фигуры.

AbstractShape

Базовый абстрактный класс для фигуры. Содержит общие для всех данные.

Параметры

id

Уникальное имя фигуры. Нельзя в одном шаблоне создавать две фигуры с одинаковым именем. Это имя используется для ссылки на конкретную фигуру и её параметры.

parent

Ссылка на родительский объект. Если parent не указан то им является исходная картинка. При парентинге начало координат объекта находятся в верхнем левом углу парента, поэтому объект изменит своё расположение и будет следовать за родительским объектом.

Нет парентинга

No Parenting

Есть парентинг

With Parenting
z_index

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

With Parenting
enabled

Параметр, определяющий рендерится ли фигура. Если enabled=false то элемент будет отсутствовать, но при этом ячейка сетки всё равно будет занята и эта фигура может быть парентом для других фигур.

skip

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

"variables": {
    "show_alt": true
},
"shapes": [
    {"type": "label", "text": "Main Text", "skip": "$show_alt"},
    {"type": "label", "text": "Alt Text",  "skip": "=not $show_alt"}
]

BaseShape

inherited (AbstractShape)

Базовая фигура представляет объект, участвующий в рендере. Он либо видим на рендере, либо используется как невидимый родительский объект.

local_resource_paths

Пути для поиска файлов ресурсов.

get_resource_func

Функция для поиска файла ресурса.

Параметры

x

Координата X относительно родительского объекта

y

Координата Y относительно родительского объекта

width

Ширина фигуры

height

Высота фигуры

align_v

Выравнивание по вертикали относительно родителя

align_h

Выравнивание по горизонтали относительно родителя

color

Основной цвет. Можно указать в следующих форматах:

  • RGB (0-255): [100, 100, 0]

  • RGBA (0-255): [255, 0, 0, 100]

  • HEX: #fff444

  • COLOR NAME: "red"

Список имён цветов можно посмотреть в исходниках Pillow, например здесь

rotate

Угол поворота в градусах

rotation_pivot

Центр поворота. Этот параметр всегда должен быть списком из двух элементов. Если не указать центр поворота то по умолчанию центром будет являться геометрический центр объекта.

rotation_offset

Смещение фигуры относительно края парента при включенном выравнивании по горизонтали или вертикали.

gradient (EXPERIMENTAL)

Заливка градиентом. Поддерживается линейный и радиальный градиенты

debug

Отображение рамок объектов. Должен быть словарём.

Доступные параметры для debug

debug.enabled

Включить или выключить обводку

debug.color

Цвет обводки

debug.width

Толщина обводки

debug.offset

Смещение обводки от основной фигуры

debug.rotation_pivot

Отобразить пивот вращения

debug.rotation_pivot_color

Цвет пивота вращения

debug.rotation_pivot_size

Размер пивота вращения

debug.parent

Отобразить обводку родительского объекта

debug.parent_color

Цвет обводки родительского объекта

debug.parent_width

Толщина обводки родительского объекта

debug.parent_offset

Смещение обводки от основной фигуры для родительского объекта

debug.canvas

Отобразить границы исходного канваса текущего объекта

debug.canvas_color

Цвет обводки границ канваса

debug.canvas_width

Толщина обводки границ канваса

Пример:

{
  "type": "label", "text": "example",
  "parent": "rect1",
  "align_h": "center",  "align_v": "center",
  "debug": {
    "enabled": true,
    "color": "red",
    "width": 3,
    "parent_width": 2,
    "parent_color": "orange",
    "parent_offset": 0,
    "parent": true,
    "canvas": true,
    "canvas_color": "yellow",
    "canvas_width": 3,
    "rotation_pivot": true,
    "rotation_pivot_size": "5p",
    "rotation_pivot_color": "blue"
  }
}
With Parenting

Поля

top

Верхняя граница в глобальных координатах

bottom

Нижняя граница в глобальных координатах

left

Левая граница в глобальных координатах

right

Правая граница в глобальных координатах

EmptyShape

inherited (BaseShape)

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

RootParent

inherited (BaseShape)

Обёртка для исходной картинки, чтобы она работала как родительский объект.

Глобальный контекст

В процессе ресолва экспрешенов доступны все built-in функции python, а также несколько объектов импортированных из библиотек.

random

Функция random.random

uniform

Функция random.uniform

randint

Функция random.randint

random_seed

Функция random.seed

math

Модуль math

Пример

{
  "type": "label", "text": "`=math.sin($frame)`"
}