Layout Best Practices
This topic provides design guidance regarding the positioning of Components in your app layouts and the setting of resizing rules that ensure good responsive app design. By sticking to the recommendations below, you will be able to generate an Angular app effortlessly with the responsive behavior specified in Figma.
Layout
In Figma you can either use absolute positioned frames/groups, in which case layout generation will follow the Absolute Layout rules, or you can take advantage of the Auto-Layout options:
Auto-Layout
Auto-layout is an unique Figma feature that allows structuring containers (such as Frames, Components, Groups) so that they have a more responsive layout that adapts according to the screen size. It allows setting rules on how the content should flow, how it should be positioned, sized and how it should spread within its container. As such it is very similar in concept as flexbox in web.
Auto-layout option can be set by the designer via Figma's UI:
![](images/figma-auto-layout.png)
Below you'll find more information on each specific setting.
Layout Direction
Can be either Vertical or Horizontal. Determined the direction in which elements will flow in the container.
Will generate generate flex-direction: row
for a horizontal layout and flex-direction: column` for a vertical layout.
Alignment
Determines how items will be aligned within this container.
Correlates with the justify-content
and align-items
css options. Note that justify-content determines
the alignment along the main direction axis( vertical for column, horizontal for row), while align-items determines the alignment along the counter axis (horizontal for column, vertical for row). So these depend also on the Layout Direction as well.
Others
You can also set spacing between items and padding via the related Space Between Items and Padding options in Figma. These will parse as gap
and padding
in css.
Sizing
Figma has Horizontal and Vertical Resizing options that determine how items should resize relative to its their parent or content.
Options are Fixed, Hug or Fill. Below you'll find what each one will generate.
Fixed - Size is fixed in pixels.
Hug - Size is based on the child content. No size is applied in this case.
Fill - Size is based on parent. It should stretch to fill parent. Relates to flex: 1 1 0px;
or self-align: stretch
.
Additional Resources
Related topics:
Our community is active and always welcoming to new ideas.