DWilliames / paddy-sketch-plugin
- среда, 14 февраля 2018 г. в 03:17:13
Automated padding, spacing and alignment for your Sketch layers
Double click the downloaded file (Paddy.sketchplugin) to install it.
If you are using this plugin, please 'star' this project. It's a simple way for me to be able to see how many people are using this, and how much effort I need to put into improving it further.
If you love this plugin, why not shout me a coffee
Follow @davidwilliames on Twitter
There are some similar plugins out there that do some of the features of this plugin, but none of them do all of it in the simple way I wanted them to.
Padding can be applied to one 'Background' layer (either a shape layer or a Symbol) of a group. The 'Background' layer will automatically resize itself so that it surrounds all other layers within that group by a specified amount.
Specify the padding amount within the background layer's name between '[' and ']'. e.g. Background [10 20]
. The format of the padding values should be in the same order as CSS.
Examples:
[20]
20
[10 5]
10
5
[10 5 15]
10
5
15
[10 5 15 20]
10
5
15
20
Run the plugin command 'Apply padding to selection' or Control + Alt + p
to bring up an input field, to save padding to all your selected layers easier.
To ignore specific layers when the Background layer is calculating it's size based on the padding. Simply prefix the name of the layer you want to ignore with a '-'. e.g. -new badge
would be ignored.
If you don't want to apply padding to the top, bottom, left or right; simply use an 'x' instead of a number.
E.g to set padding of 60 to the top and bottom, but ignore applying any padding on the left and right, the background layer's name would include [60 x]
You can also specific maximum and minimum sizes alongside padding values, separated by a semi colon – ';'. e.g. [20 10; width <= 50]
would apply a max width of '50'.
width
or w
height
or h
>=
, >
, <
, <=
, =
Example: [20;h>=250]
would apply padding of '20' in all directions, with a minimum height of '250'.
In order to resize the background layer to the specified padding, simply deselect all layers – or press esc
on your keyboard to deselect layers automatically.
This will automatically update all paddings and spacing for the previously selected layers.
A lot of time and effort has gone into making sure Paddy works with symbols as well. If a symbol contains a background layer with padding; the symbol instance will automatically resize so that the background layer has enough padding around its sibling layers.
This works great for creating dynamically resizing buttons.
This should work with Sketch Libraries too! (At least it seems to in my limited testing – fingers-crossed
This does not manipulate elements within a symbol, it simply resizes the symbol to the best size to fit. Because of this, each symbol cannot contain more than one 'Background layer' with padding.
For best results, avoid applying padding in deeply nested groups within the symbol.
Similar to Anima's Stacked layers or the Distributer plugin, you can also apply 'spacing' to any group, for it to automatically distribute all its children.
To set the spacing / distribution of the layers in a group, add the spacing properties within a [
and ]
; similar to applying padding to a group.
Properties: [{Spacing}{direction}]
[10v]
– spacing the elements vertically, with a spacing of 10[5h]
– spacing the elements horizontally, with a spacing of 5Run the plugin command 'Apply spacing to selection' or Control + Alt + Command + p
to bring up an input field, to save spacing to all your selected groups easier.
You can also set the alignment for all the layers within a group — all of which will be automatically applied. 'Alignment' can be applied on a group by itself, or in conjunction with 'spacing'.
Similar to spacing / padding, it is by naming the group something specific, within [
and ]
.
Properties: [{alignment}] or [{Spacing}{direction} {alignment}]
Alignment
Examples
[left]
– align all layers left[10v c]
– space all layers vertically with a spacing of 10, all centered horizontally[5h b]
– space all layers horizontally with a spacing of 5, all aligned at the bottomThis plugin is in active development.
Pull requests are welcome and please submit bugs
Check out my other Sketch Plugins: