Webflow Visual Developer Certification Guide

Chapter 3: Components (1.C)

Exam topic 1.C: Build and manage reusable components for consistency and scalability.

Lesson 4 of 16 · 13 min read · Updated

Exam topic 1.C: Build and manage reusable components for consistency and scalability.
Key terms: Component instances, component properties, slots, style variants, shared libraries.
Weight: 8% of the exam (about 4 questions)

Webflow Visual Developer Certification: the full study bookEvery chapter and all 144 practice questions with explanations, in one PDF.PDF · 2.4 MB
Free download: unlock it in one step

Share this page

or

Mailchimp opens in a new tab to confirm. Unsubscribe any time.

Components (called Symbols in older Webflow) are how you stop repeating yourself. A developer will recognise the model from React or Vue: a component has a definition, the definition is used through instances, instances are configured with props, children can be injected through slots, and the component can be distributed through a library. Webflow builds the same architecture visually.


3.1 Definition vs. instance

  • The component definition (often called the main component) holds the structure, classes and default content.
  • An instance is a placement of that component on a page.
  • Editing the definition (entering the component, e.g. by double-clicking an instance or choosing Edit component) updates every instance site-wide.
  • Instances can only differ where the definition allows it, through properties, slots and variants. That limit is intentional. It’s what keeps a design system consistent.

Unlinking (detaching)

You can unlink an instance. It turns into ordinary elements that no longer receive updates from the definition. Use this rarely:

  • ✅ When you’re intentionally forking a one-off design that will never match the system again.
  • ❌ To make a small text or image change. That’s what properties are for.
  • ❌ As a habit. Every unlinked copy is a place where future updates silently won’t arrive.

When should something become a component?

Make it a component when it is:

  • repeated (navbar, footer, CTA banner, card, testimonial),
  • meant to stay consistent (a pricing table, a legal disclaimer),
  • or a composition you’ll reuse with different content (section layouts, feature rows).

Don’t turn everything into a component. A layout used once gets nothing from it, and too many near-identical components (Card, Card 2, Card New, Card Final) are a maintenance problem in their own right. Variants and properties exist to avoid that sprawl.


3.2 Component properties

Properties are the component’s public API: the things a page builder or content editor may change per instance.

Common property types

Property type Bound to Example
Text A text element’s content Card title, button label
Rich text A Rich Text element Testimonial body
Image Image source (and alt text) Card thumbnail, avatar
Link A link’s URL/target CTA destination
Visibility Whether an element renders Show/hide a badge, an eyebrow label or an icon
Variant Which style variant the instance uses Primary / secondary / dark
Others (e.g. video, number, alt text…) Depends on element —

Designing good properties (API design thinking)

  • Name properties for the content editor, not the developer: “Button label”, not “Text 3”.
  • Give sensible defaults. A newly dropped instance should look finished.
  • Group related properties so the settings panel stays readable.
  • Use Visibility properties instead of creating separate components for “card with badge” and “card without badge”.
  • One property can drive several elements where the platform allows it (e.g. one image used in two places), which keeps the API small.
  • Image properties should include alt text, so every instance can carry meaningful alternative text, or be marked decorative.

Properties + CMS

When a component instance sits inside a Collection List or on a Collection template page, its properties can be connected to CMS fields. That’s the scalable pattern for things like a blog card: one card component reused on the blog index, the related posts list and the homepage, with each instance’s title, image and link bound to the relevant Collection item. Change the card design once, and every list updates.


3.3 Slots

Properties change values. Slots change contents. A slot is a placeholder region inside a component where whoever uses an instance can drop other elements or components.

Think of React’s children:

<Section title="Features">
  {/* anything can go here */}
  <FeatureGrid />
</Section>

In Webflow, you’d build a Section shell component (padding, container, heading area, background) with a slot for the body. Each page fills the slot with whatever it needs (a feature grid, a testimonial carousel, a form) while the shell stays consistent and centrally editable.

Why slots matter for scalability

Before slots, people had to either:

  • make the whole section a component, which locked its contents (too rigid), or
  • copy and unlink the section on each page (no central updates).

Slots resolve that trade-off: fixed structure, flexible content.

Slot best practices

  • Use slots for layout wrappers: sections, modals, cards with custom bodies, tab panels.
  • Keep the styling of the shell in the component; let the slot contents bring their own styles.
  • Nesting components in slots is normal: a Card slot containing a Button component.
  • Don’t use a slot where a simple property would do. If only text changes, use a Text property.

3.4 Style variants

A variant is a named, predefined styling version of a component: Primary / Secondary / Ghost buttons, Light / Dark sections, Horizontal / Vertical cards. Instances choose a variant from a list instead of being restyled by hand.

Variants vs. combo classes vs. separate components

Need Best tool
Same structure, different styling chosen per instance Component variant
Small styling modifier of a class outside of a component Combo class
Different structure and purpose Separate component
Different values (text, image, link) Properties

Variants beat letting builders add combo classes to each instance, because:

  • the allowed options are explicit and limited, so nobody invents is-blue-ish,
  • they’re discoverable in the instance settings,
  • changes to a variant update every instance using it.

3.5 Nested components

Components can contain other components: a Pricing Card contains a Button, and a Navbar contains Nav Link components. This mirrors real component architecture:

  • Atoms (button, tag, icon) → molecules (card, nav link) → organisms (navbar, pricing section).

Editing the Button definition updates buttons inside every card, navbar and section. To let instance users change a nested component’s content, expose the nested component’s properties through the parent component’s properties.


3.6 Shared libraries

A library lets you share components (and design tokens such as variables) across multiple sites in a Workspace:

  1. Build the system in a source site (the library).
  2. Publish/share it as a library.
  3. Install the library in other sites in the Workspace.
  4. When the source changes, it publishes an update, and consuming sites review and accept updates.

Things to understand:

  • Components from a library are edited in the source site, not in the consuming site. That keeps one source of truth across a whole brand.
  • Consuming sites choose when to accept updates, which gives you a controlled rollout.
  • It’s how agencies and in-house teams keep the brand consistent across a marketing site, a docs site and campaign microsites.
  • Library availability depends on your Workspace plan. Check the current plan details before you design a multi-site strategy around it.

Code components (developer note)

With DevLink, developers can work across both directions: export Webflow components as React code, and bring React code components into Webflow so designers can place them visually and configure their props. For the exam, focus on native components. In practice, DevLink is the bridge between a Webflow design system and a React app.


3.7 Components and accessibility

  • A component’s accessibility is built once and inherited everywhere. Get landmarks (<nav>, <header>, <footer>), heading levels, button semantics and focus states right in the definition.
  • Heading levels inside components are a common trap: a card hard-coded with an H3 might be wrong on a page where it should be an H2. Choose levels deliberately for where the component will be used. Where the platform allows it, make the tag configurable, or design for consistent placement.
  • Expose alt text through image properties, and give link properties meaningful text (avoid “Learn more” ×20 without context).

3.8 Component architecture checklist

  • ☐ Repeated UI is componentised; one-off layouts are not.
  • ☐ Each component has a clear name and a small, well-named property API.
  • ☐ Visibility properties instead of near-duplicate components.
  • ☐ Variants for styling options; no ad-hoc per-instance class edits.
  • ☐ Slots for layout shells with flexible contents.
  • ☐ CMS-bound properties for cards used in Collection Lists.
  • ☐ No unnecessary unlinked instances.
  • ☐ Multi-site brands use a shared library edited in one source site.

Practice questions: Components

Q1 A marketing site has 30 pages with the same CTA banner. Each page needs a different heading, button text and link, but the layout and styling must stay identical and editable in one place. What’s the best approach?

  • a. Copy and paste the banner on each page and edit the text
  • b. Create a component with Text and Link properties for heading, button label and URL
  • c. Create 30 separate components, one per page
  • d. Make the banner a component and unlink each instance to change the text
Show answer

Answer: b. One component keeps layout and styling in one place, and properties expose only what varies: heading, label and link. (a) copies can’t be updated centrally. (c) 30 components defeats the purpose. (d) unlinking breaks the connection, so future design changes won’t reach the banners.

Q2 (Multi-select) Which statements about editing a component definition are true? (Choose two.)

  • a. Changes to the definition’s structure update all linked instances site-wide
  • b. Each instance can freely change its own layout and classes without affecting others, while staying linked
  • c. Unlinked instances no longer receive definition updates
  • d. Editing an instance’s text property changes the default text for all instances
Show answer

Answer: a and c. Definition edits propagate to all linked instances, and unlinked instances are plain elements that no longer receive updates. (b) linked instances can only vary through properties, slots and variants, not free layout or class edits. (d) an instance’s property value is specific to that instance; it doesn’t change the default for the others.

Q3 A Card component sometimes needs a “New” badge and sometimes doesn’t. What’s the most scalable solution?

  • a. Create Card and Card with Badge as separate components
  • b. Add a Visibility property that controls the badge
  • c. Unlink instances that don’t need the badge and delete it
  • d. Set the badge to opacity: 0 on instances that don’t need it
Show answer

Answer: b. A Visibility property toggles the badge per instance while keeping one component. (a) duplicates the component, so future card changes have to be made twice. (c) unlinking loses central updates. (d) opacity: 0 leaves the badge in the layout and exposed to screen readers. It isn’t really removed.

Q4 A team needs a consistent Section wrapper (padding, container, background) whose inner content varies completely from page to page: a feature grid on one, a form on another. Which feature fits best?

  • a. Text properties
  • b. A slot inside the section component
  • c. Unlinking the section on each page
  • d. A combo class per page
Show answer

Answer: b. A slot keeps the shell (padding, container, background) consistent and centrally editable while letting each page put any elements or components inside. (a) text properties only change values, not structure. (c) unlinking loses central control. (d) combo classes alter styles, not content structure.

Q5 Buttons must come in Primary, Secondary and Ghost styles. Builders currently add random combo classes to button instances, and the styles are drifting. What should the developer implement?

  • a. Style variants on the Button component, selectable per instance
  • b. A separate unlinked button for each page
  • c. More combo classes with clearer names
  • d. Inline styles via custom attributes
Show answer

Answer: a. Variants make the allowed styles explicit, discoverable and centrally maintained, which stops the drift. (b) unlinked buttons can’t be updated centrally. (c) more combo classes is the problem itself; nothing limits which ones are used. (d) inline styles bypass the system.

Q6 A blog card component appears on the homepage, the blog index and in a “related posts” list. How should each card get its content?

  • a. Type the content into each instance by hand
  • b. Place the component in Collection Lists and connect its properties to CMS fields
  • c. Unlink each card and bind the inner elements to CMS fields individually
  • d. Build three different card components, one per list
Show answer

Answer: b. Connecting component properties to CMS fields inside Collection Lists means one card design serves every list, each instance filled from its item. (a) manual content doesn’t scale and goes stale. (c) unlinking loses centralised design updates. (d) three components is the duplication components are meant to prevent.

Q7 (Multi-select) An agency maintains a brand across a main site, a docs site and several campaign microsites in the same Workspace. Which practices keep them consistent? (Choose two.)

  • a. Publish the design system as a shared library from one source site
  • b. Install the library in each site and accept updates when the source changes
  • c. Copy-paste components between sites whenever something changes
  • d. Edit library components directly in each consuming site so they can diverge
Show answer

Answer: a and b. A shared library published from one source and installed in each site, with updates reviewed and accepted, gives one source of truth with a controlled rollout. (c) copy-paste drifts quickly. (d) library components are edited in the source; letting them diverge in consumers would undo the point of a library.

Q8 When is unlinking a component instance an appropriate choice?

  • a. Whenever you need to change the text of one instance
  • b. When you intentionally need a one-off fork that should never receive future updates from the definition
  • c. To improve page performance
  • d. To allow content editors to edit text
Show answer

Answer: b. Unlinking is for an intentional, permanent fork. (a) use properties for text. (c) unlinking doesn’t make a page faster in any meaningful way. (d) editors can edit text through component properties, so unlinking isn’t required.

Q9 A Pricing Card component includes a Button component. The brand changes the button’s border radius. What’s the most efficient way to update every pricing card’s button?

  • a. Edit each Pricing Card instance
  • b. Edit the Button component definition; nested instances update automatically
  • c. Unlink all pricing cards and update the buttons
  • d. Add a combo class to each button
Show answer

Answer: b. Nested components are still instances of their definition, so editing the Button definition updates it everywhere, including inside Pricing Cards. (a) and (c) are manual and error-prone. (d) adds per-instance patches instead of fixing the source.

Q10 Which property name is best for a content editor-facing component property?

  • a. Text 4
  • b. txt_hdr_main
  • c. Card heading
  • d. h3-prop-final-v2
Show answer

Answer: c. Property names are labels in the instance settings that content editors and other builders read. “Card heading” is clear. (a), (b) and (d) are cryptic developer shorthand or version noise.

Q11 A testimonial component uses a hard-coded H2 for the person’s name. On the homepage the section already has an H2 heading, and the testimonials sit below it. What’s the accessibility concern, and the best direction?

  • a. None; heading levels only affect visual styling
  • b. The heading hierarchy may be illogical (names at the same level as the section title); use the appropriate level (e.g. H3) or a non-heading element styled as needed
  • c. H2 elements can’t be inside components
  • d. Use an H1 instead so it’s more prominent
Show answer

Answer: b. Heading levels define the document outline used by screen-reader users to navigate (WCAG 1.3.1 Info and Relationships). Names sitting at the same level as the section title create an illogical structure. Use H3, or a non-heading text element styled to match. (a) false; headings carry semantics. (c) false. (d) multiple or incorrect H1s make the problem worse.

Q12 (Multi-select) Which are signs that a project’s component architecture needs refactoring? (Choose two.)

  • a. Components named Card, Card 2, Card copy and Card FINAL with tiny differences
  • b. Many unlinked instances that used to be a navbar component
  • c. A Button component used inside several other components
  • d. A Section component with a slot used on many pages
Show answer

Answer: a and b. Near-duplicate components and lots of unlinked instances both show the system isn’t doing its job. Properties, variants and slots should replace them. (c) nested components are a healthy atomic architecture. (d) a section shell with a slot reused across pages is the intended pattern.

Leave a Reply

Your email address will not be published. Required fields are marked *