As you know, being able to add negative padding is a must when creating design systems. However Figma only allow negative values in the inner-spacing between elements in auto-layout.
We found a workaround and thought it would be useful to share it with the community.
If you define a local variable, type number, and add a negative value (e.g. -4px), you can then apply this variable to the auto-layout padding and it will work.
In summary: use local variables to define negative values and apply such variable to the padding.
Assuming negative margin is already available but developers just didn’t put the feature out for some reason
Thanks for the feedback and for providing the workaround @Rafael-Atlanttico!
We’ll pass this onto our team for consideration.
As you know, being able to add negative padding is a must when creating design systems.
Curious to know what you mean by this, as negative padding is not possible in CSS?
well an example i’m needing it for is trying to create a prototype of a scrollable list that, when you complete something on the list and return, focuses on the next thing on the list - scrolling the completed items out of view. i don’t know any way to do this in Figma other than setting negative padding on the container
I would do that by creating a frame without auto layout, turn on vertical scroll behaviour, and then position the scrollable list inside that with a negative Y (vertical) position:
In CSS, ’padding’ refers specifically to the space between an element’s border and it’s content: CSS Box Model