Bird
Raised Fist0
Figmabi_tool

Slots pattern for flexible components in Figma - Cell-by-Cell Formula Trace

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow
Component: Card
  ├─ Slot: Header
  ├─ Slot: Body
  └─ Slot: Footer

Component: Modal
  ├─ Slot: Header
  ├─ Slot: Body
  └─ Slot: Footer
This diagram shows two UI components, Card and Modal, each having three named slots: Header, Body, and Footer. The slots pattern allows placing different content into these named areas flexibly.
Formula
RenderComponent('Card', {Header: 'Title Text', Body: 'Description Text', Footer: 'Action Buttons'})

This command renders the Card component by filling its Header, Body, and Footer slots with the specified content.

Step-by-Step Trace
StepExpressionEvaluates ToExplanation
1Identify component type 'Card'Card component structure with slots Header, Body, FooterSelect the Card component which has three slots.
2Assign content to slots: Header='Title Text', Body='Description Text', Footer='Action Buttons'Slots filled with provided contentEach slot receives the specified content.
3Render Header slot with 'Title Text'Header area shows 'Title Text'Header slot displays the title text.
4Render Body slot with 'Description Text'Body area shows 'Description Text'Body slot displays the description text.
5Render Footer slot with 'Action Buttons'Footer area shows 'Action Buttons'Footer slot displays the action buttons.
6Combine all slots into final Card component renderComplete Card component with Header, Body, Footer contentAll slots combined to produce the final rendered component.
The final output is a Card component with its three slots filled and rendered.
Variable Tracker
VariableValueDescription
ComponentTypeCardThe UI component being rendered
Slots{Header, Body, Footer}Named areas inside the component
HeaderContentTitle TextContent assigned to Header slot
BodyContentDescription TextContent assigned to Body slot
FooterContentAction ButtonsContent assigned to Footer slot
Key Moments
What slots does the Card component have?
What content is assigned to the Body slot in this example?
Why use the slots pattern in components?
Sheet Trace Quiz - 1 Questions
Test your understanding
Which content is rendered in the Card component's Footer slot?
AAction Buttons
BTitle Text
CDescription Text
DModal Title
Key Result
Slots pattern lets components have named areas where different content can be placed dynamically, making UI components flexible and reusable.
Transcript
We start by choosing the Card component which has three slots: Header, Body, and Footer. Then, we assign content to each slot: 'Title Text' to Header, 'Description Text' to Body, and 'Action Buttons' to Footer. Each slot is rendered with its content, and finally, all slots combine to form the complete Card component. This pattern helps build flexible UI components by allowing dynamic content placement.

Practice

(1/5)
1. What is the main purpose of the Slots pattern in Figma components?
easy
A. To create placeholders inside components for flexible content
B. To lock components so they cannot be edited
C. To export components as images
D. To automatically generate color palettes

Solution

  1. Step 1: Understand the Slots pattern concept

    Slots act as placeholders inside components where you can insert different content later.
  2. Step 2: Identify the main purpose

    This allows components to be flexible and reusable by changing only the slot content.
  3. Final Answer:

    To create placeholders inside components for flexible content -> Option A
  4. Quick Check:

    Slots = placeholders for flexible content [OK]
Hint: Slots hold flexible content inside components [OK]
Common Mistakes:
  • Thinking slots lock components
  • Confusing slots with export features
  • Assuming slots generate colors automatically
2. Which of the following is the correct way to define a slot inside a Figma component?
easy
A. Group layers and rename the group to 'Slot'
B. Use the 'Export' option on a layer
C. Add a frame and mark it as a slot placeholder
D. Create a text layer with the word 'Slot'

Solution

  1. Step 1: Recall how slots are defined

    Slots are defined by adding a frame or container inside a component and marking it as a slot placeholder.
  2. Step 2: Evaluate the options

    Only Add a frame and mark it as a slot placeholder correctly describes adding a frame and marking it as a slot placeholder.
  3. Final Answer:

    Add a frame and mark it as a slot placeholder -> Option C
  4. Quick Check:

    Slot definition = frame marked as slot [OK]
Hint: Slots are frames marked as placeholders inside components [OK]
Common Mistakes:
  • Confusing slots with export settings
  • Thinking renaming groups creates slots
  • Assuming text layers define slots
3. Given a component with a slot named IconSlot, what happens when you drag a new icon into this slot instance?
medium
A. The component breaks and shows an error
B. The original component's icon changes everywhere
C. The slot disappears and cannot be reused
D. The new icon replaces the slot content in that instance only

Solution

  1. Step 1: Understand slot instance behavior

    When you drag content into a slot in an instance, it replaces the slot content only for that instance.
  2. Step 2: Check effect on original component

    The original component remains unchanged; only the instance shows the new content.
  3. Final Answer:

    The new icon replaces the slot content in that instance only -> Option D
  4. Quick Check:

    Slot content replaced per instance [OK]
Hint: Slot content changes only in the instance, not original [OK]
Common Mistakes:
  • Thinking original component changes globally
  • Believing slots disappear after use
  • Assuming errors occur on drag
4. You created a slot inside a component but when you drag content into it, the content does not appear. What is the most likely cause?
medium
A. The slot frame was not marked as a slot placeholder
B. The component is locked and cannot be edited
C. The dragged content is not supported by Figma
D. The component has no fill color

Solution

  1. Step 1: Check slot setup

    If content does not appear when dragged, the slot frame might not be properly marked as a slot placeholder.
  2. Step 2: Rule out other causes

    Locking or fill color does not prevent slot content from showing; Figma supports common content types.
  3. Final Answer:

    The slot frame was not marked as a slot placeholder -> Option A
  4. Quick Check:

    Unmarked slot frame blocks content [OK]
Hint: Mark frames as slots to accept content [OK]
Common Mistakes:
  • Assuming locking blocks slot content
  • Blaming unsupported content types
  • Thinking fill color affects slots
5. You want to create a reusable button component with a slot for an icon and a slot for label text. Which approach best uses the Slots pattern to achieve this?
hard
A. Create two separate components: one for icon and one for label, then group them
B. Create a component with two frames marked as slots: one for the icon and one for the label text
C. Use a single text layer and change its content for icon and label
D. Create a component with fixed icon and label layers without slots

Solution

  1. Step 1: Understand the goal

    You want a flexible button where icon and label can be changed independently.
  2. Step 2: Apply Slots pattern

    Defining two frames as slots inside the button component allows replacing icon and label content separately in instances.
  3. Step 3: Evaluate other options

    Grouping separate components or fixed layers does not provide the same flexibility and reusability.
  4. Final Answer:

    Create a component with two frames marked as slots: one for the icon and one for the label text -> Option B
  5. Quick Check:

    Multiple slots = flexible reusable component [OK]
Hint: Use multiple slot frames for flexible parts [OK]
Common Mistakes:
  • Using fixed layers instead of slots
  • Grouping separate components without slots
  • Trying to use one text layer for icon and label