--- title: Assigning parts to stacks --- The optional `stack` property assigns the part to a specific [Stack](/reference/api/stack). It holds either a string with the stack name or a function which returns the stack name: ```js const part = { name: 'example.front', stack: 'example.combined', } ``` ```js const part = { name: 'example.back', stack: ({options}) => options.stack ? 'example.combined' : 'example.back', } ``` ## Notes If `stack` is present, the part is assigned to the stack with the specified name. If multiple parts are assigned to the same stack, they will overlap in drafting and printing layouts. This is because parts in the stack are drafted within the same stack space. Otherwise, if the `stack` property is not present, the default behavior is to use the part's name as its stack name. - In a draft with only one set, this will result in each part having its own stack. With a default layout, the part will not overlap other parts because it is the only part drafted within its stack and stacks do not overlap. - In a draft with multiple sets, this will result in parts of the same name using the same stack. This is how we achieve the layered look of parts in sample drafts. :::note RELATED Please see [Stacks](/guides/designs/stacks) in the Design Guide for more information about how stacks can be used. :::