By the end of this lesson you’ll finish the team section, wire component properties straight to the CMS, and build an FAQ with dropdowns that open and close with a smooth animation. It’s the lesson where components, the CMS, and motion all come together.
Two moments are worth watching for. The first is a small piece of Webflow magic: turn a CMS-connected block into a component and the properties you’d expect to create are already there, still linked to the CMS. The second is the animation — your first real trip into the interactions panel, kept deliberately simple but fully functional.
We also slow down on the details that trip people up: making a CMS image a clean circle, choosing rich text for structured answers, and fixing the positioning quirk that makes a dropdown overlap everything below it.
How it works
Start with the team cards. A circle is just a square with fully rounded corners, and CMS images arrive in all shapes, so the robust recipe is: set the image’s aspect ratio to square (width and height always match), set object-fit: cover (it fills the frame and crops instead of distorting), then set border-radius: 50%. Three steps, any photo, always a circle.
Then the magic. When you turn the CMS-connected card into a component, Webflow auto-creates a property for every connected element, names each one after its CMS field, and keeps the link live — the properties glow purple to show they’re pulling from the CMS. You built the connections once at the element level; Webflow preserves them as component properties for free.
The FAQ reuses all of it in a new context. Answers need real structure — paragraphs, headings, lists — so the answer field is a rich text field, not plain text (and inside it you fix the heading hierarchy so the nested headings become H4/H5 under the section’s H2/H3). The one true gotcha is positioning: a dropdown list is position: absolute by default, so an open list overlaps the dropdowns beneath it. Switch it to static and it rejoins the page flow, pushing siblings down as it expands — exactly what users expect.
For the animation, the key setup is overflow: hidden on the dropdown list so its content is clipped when the height is zero. Using the “dropdown opens” trigger, you animate the list’s height from an initial state of 0 to auto and rotate the arrow icon 180°. The crucial, often-missed step: switch the trigger’s target from Element to Class so every dropdown that shares the class animates, not just the one you built it on. The close animation is just the open one duplicated and reversed. And because Webflow’s native dropdown already closes the previously open item when you open another, you get that polish without building it.
How to use it
- Style the cards. Give the item content wrapper padding (
1.5em), a background,border-radius, and border; set it to a centered vertical flex column. Turn the image into a circle (square ratio →object-fit: cover→border-radius: 50%) and tidy the name/role spacing and the social-icon gap. - Make the card a component. Select the item content wrapper (not the collection item) and press
⌘/Ctrl + Shift + A. Notice the CMS-linked properties are already created and connected — you’re done. - Set up the FAQ. Build the section structure, add a Section Heading Wrapper instance, then create an “FAQs” collection with a
Question(plain text) field and anAnswer(rich text) field. Generate sample items and fix the answer’s heading hierarchy (H4/H5). - Build the dropdown. Add a collection list bound to FAQs (set it to a vertical flex column with a gap). Inside a list item, add a Dropdown element; give it
width: 100%and rounded borders. Set the toggle text color toinherit, replace the toggle’s text with an H3 bound to the Question field, and replace the dropdown list’s links with a rich text element bound to Answer. - Fix the flow. Change the dropdown list’s
positionfrom absolute to static so it pushes content down instead of overlapping it. - Componentize (optional order). Turn the dropdown into a component with
Question(text) andAnswer(rich text) properties, then link those properties to the CMS fields via the purple icons. - Animate it. On an unlinked instance, set the list’s display to block and
overflow: hidden. In the interactions panel (classic), add a “Dropdown opens” trigger → “start an animation”: animate the list’s height toauto(initial state0) and rotate the arrow180°, with a duration around0.3sand an ease-out curve. Switch the trigger target to Class. Duplicate the animation, rename it “Dropdown closes”, remove the initial states, and reverse the values. - Polish. Cap the dropdown width (~
700px,display: block, auto side margins), and style the H4/H5 only inside this rich text element using the nested selector so you don’t affect the whole site.
Next up we set up the navbar and use grid and Flexbox together to build the footer.