UIX Design Academy Framer Site Builder
Build a fully animated, responsive, multi-section landing page in Framer from a blank canvas — with a structured design system, reusable components, and professional scroll and appear effects — without writing a single line of code.
// TL;DR
The UIX Design Academy Framer Site Builder is a repeatable, no-code workflow for building a fully animated, responsive, multi-section landing page in Framer from a blank canvas. Use it when you need to design and publish a modern landing page — starting with a proper design system (color and text styles), reusable components, a Section → Container → Content layout hierarchy, and professional Appear, Scroll, and Loop animations. It's ideal for founders, freelancers, and designers who want a professional result without writing code, following a design-first process that keeps the entire site refactorable from a single panel.
// When should you use the UIX Design Academy Framer Site Builder?
Use this skill when you need to design and publish a modern landing page in Framer, starting from scratch, and want a repeatable, professional workflow covering design tokens, component architecture, layout structure, and animation — from first frame to final preview.
// What do you need before you start building your Framer landing page?
- Brand color hex code(s)required
At minimum a primary brand color, a light background color, a dark text color, white, and black. - Typeface namerequired
The Google Font or system font to use for all headings and body text (e.g. Manrope). - Page copyrequired
All text content: headline, subheadline, body paragraphs, nav links, button labels, testimonial quote, footer links, and legal text. - Visual assetsrequired
Hero image(s), illustration(s), brand logos (SVGs preferred), and any decorative PNGs, exported at 2x. - Section listrequired
Ordered list of sections to build, e.g. Navbar, Hero, Trusted Logos, Cards, Feature, Testimonial, Footer.
// What core principles guide this Framer building workflow?
Design-First, Then Pages
Before building any page, establish the full design system — color palette, typography scale, and imported assets — inside Framer's Design canvas. Only then switch to Pages to build. This eliminates back-and-forth with external tools.
Styles Before Styling
Every color and every text size must be saved as a named Style before it is applied anywhere. Apply the style token, never a raw hex or raw size. This keeps the entire site refactorable from a single panel.
Component-First Components
Convert any repeating element (button, icon card, nav link, footer column) into a Component using Option+Command+K immediately after creating it. Define Variables for every property that will differ across instances (label, icon, color, visibility) so instances can be controlled from the main panel without entering the component.
Stack Everything
Every group of related elements — from a button's label and icon to an entire section's columns — is wrapped in a Stack (Option+Command+Return). Stacks control direction, distribution, alignment, and gap, making spacing systematic and responsive-ready.
Section → Container → Content
Every page section follows a three-layer hierarchy: a full-width Section frame (holds background color, padding, scroll-section identity), a fixed-width Container frame (1000px, holds layout distribution), and the Content frames inside it. Duplicate a previous section's shell to get this structure instantly.
Duplicate, Then Modify
Never build a new section from scratch if an existing section already has the correct Section → Container structure. Duplicate the nearest structural match, delete its inner content, and adapt. This preserves padding, background, and spacing consistency.
Appear Effects with Spring Physics
All on-load animations use the Appear effect category. Spring is preferred over Ease for elements that benefit from a natural, slightly bouncy feel (bounce ~0.4). Ease Out is preferred for large elements like images and text blocks where a clean deceleration reads better. Add staggered delays (0.2 → 0.4 → 0.6 → 0.8s) to sequence elements from background to foreground.
Scroll Section Anchoring
Before adding any scroll-triggered animation to a section's children, first assign the Section frame a unique Scroll Section name. All child scroll animations then reference this named section as their trigger, so every animation is tied to its spatial context on the page.
Subtle Over Complex
Prefer small, quick animations (0.4–0.8s duration, low offset values, opacity fades) over dramatic ones. The goal is to make the design feel alive and professional, not to showcase the animation tool.
// How do you build a Framer landing page step by step?
- 1
Create a new blank Framer project and name it immediately
Do not start with a template. Name the project before doing anything else to avoid losing work under an untitled file.
- 2
Switch to the Design canvas and rename the auto-created page 'Assets'
All design system work lives here, not on the pages canvas. This is your single source of truth for colors and type.
- 3
Build the color palette: draw 100×100 rectangles, apply each brand hex, then save each as a named Color Style
Required styles at minimum: White, Light, Brand (primary), Dark, Black. Apply a stroke to the white swatch so it is visible on canvas. Name styles exactly as you will reference them in conversation with teammates (e.g. 'brand', 'dark', 'light').
- 4
Build the typography scale using the Text tool and save each variant as a named Text Style
Create H1–H6 using the chosen font in Bold. Recommended sizes: H1=64, H2=48, H3=32, H4=24, H5=20, H6=16. Letter spacing: H1 = -4, tapering toward 0 at smaller sizes. Line height: 1.1 for all headings. Body sizes: 18, 16, 14 — each in Regular and Bold. Line height 1.5 for body. Caption: 12pt, Uppercase transform, letter spacing +4, line height 1. Use slash-delimited naming for Text Styles to create folders: 'P/18/Regular', 'P/16/Bold', 'Caption/12/Regular'. Heading styles: 'H1' through 'H6'.
- 5
Import all visual assets: drag in PNGs and SVGs; accept Framer's prompt to create a Vector Set for SVG icon files
Export images at 2x before importing. Organize imported assets on the Assets canvas. SVG icon sets (logos, illustration elements) become a single selectable asset accessible from the Assets panel on any page.
- 6
Navigate to Pages, select the Home page, and set up the desktop breakpoint as your working frame
Framer creates the Desktop breakpoint by default. Build desktop layout first; mobile/tablet breakpoints are addressed after desktop is complete.
- 7
Build the Button component with Primary and Secondary variants, label Variable, and optional icon Variable
Draw the button frame, add a text label, set radius to 99 (full pill). Convert to Component (Option+Command+K). Create a 'label' plain-text Variable so the button text is editable from the parent page. Create a 'show icon' visibility Variable defaulting to hidden. Add Small variants (Primary SM, Secondary SM) with reduced padding (12px top/bottom, 32px left/right) for navbar use. Add a Ghost variant with no border and no fill. Set up Hover states: Primary hover → black fill, white text, drop shadow; Secondary hover → 10% white fill overlay, drop shadow; Ghost hover → bold weight, black text.
- 8
Build the Icon Card component with icon, background color, and icon color Variables
Frame: 80×80px, radius 20, white fill, drop shadow (Y=16, Blur=32, brand color at 50% opacity). Place a Material icon inside at 40×40. Convert to Component. Create Variables: 'icon' (icon picker), 'icon color' (fill), 'background' (fill). This lets you swap icon and colors per instance without entering the component.
- 9
Build the Nav Link component with a content Variable and a Bold/Black Hover state
Single text element set to Fit Content in both dimensions. Convert to Component. Create a 'title' text Variable. Add Hover state: Bold weight, Black color. Use for all navigation links.
- 10
Build the Card component with icon, title, and description Variables
Card frame: white fill, dark stroke (2px), radius 20, drop shadow (Y=4–8, Blur=0, dark color). Inside: icon badge (64×64, brand color, radius 12) + H4 title text + 16 Regular body text, all in a vertical Stack with 20px gap. Convert to Component. Create Variables: 'icon', 'title', 'description'. Set card width to Fill so it stretches within its parent container.
- 11
Build the Footer Column component with category title, up to five link rows, and a show-icon Variable per row
Each row is a horizontal Stack: icon (Material, 20px, light color) + link text (14 Regular, light color). Stack all rows vertically with 20px gap. Title text: 14 Bold, white. Convert to Component. Create Variables: 'title', 'link 1'–'link 5', 'icon 1'–'icon 5', 'show icon 1'–'show icon 5' (visibility, default hidden). This allows social/contact columns to show icons while product columns hide them.
- 12
Build the Navbar section using the Section → Container → Content hierarchy
Section: white fill, 20px top and bottom padding. Container: 1000px fixed width, horizontal Stack, Space Between distribution. Left: Logo SVG at 32px height. Center: Nav Links Stack (horizontal, 40px gap). Right: Actions Stack (horizontal, 12px gap) with Secondary SM and Primary SM button instances. Nav Links should use the Nav Link component so Hover states work.
- 13
Build the Hero section using the Section → Container → Content hierarchy
Section: radial gradient fill (brand color → white, positioned top-left), 80px top and bottom padding. Container: 1000px, horizontal Stack, Space Between. Left content Stack (vertical, 40px gap): eyebrow text (Caption Bold, brand color) → Title Stack (eyebrow + H1, 8px gap) → H1 headline (fixed width ~450px) → paragraph subtext (P/16/Regular, fixed width ~400px) → Actions Stack (buttons, horizontal, 20px gap). Right: Image frame (550×550), containing the hero PNG, two white stroke rings (450px and 400px diameter at 50% and 25% opacity), and three floating Icon Card component instances positioned decoratively over the image. Set image frame overflow to visible so ring shadows are not clipped.
- 14
Build the Trusted Logos section
Duplicate the Hero section shell. Remove inner content. White background, 80px top and bottom padding. Container: vertical Stack, Center distribution. Add an H4 title in brand color, centered. Add a Ticker component (press I, search 'ticker') containing all brand logo SVGs from the Vector Set at a consistent height (e.g. 40px), horizontal layout, 40–80px gap. Set logos to 90% opacity. Set ticker speed to ~25%, hover speed to ~10%. The Ticker sits outside the Container so logos scroll full-width. Assign this section a Scroll Section name: 'logos'.
- 15
Build the Cards (Capabilities) section
Duplicate a section shell. Light color background, 80px padding. Container: vertical Stack, 40px gap. Top row: horizontal Stack, Space Between — left side has H2 headline + caption eyebrow; right side has paragraph subtext. Bottom row: horizontal Stack, Fill, containing three Card component instances with distinct icons, titles, and descriptions. Set card widths to Fill. Add a decorative bottom-curve PNG (exported 2x, width set to Fill) at the bottom of the section to create a rounded transition to the next section. Assign Scroll Section name: 'cards'.
- 16
Build the Feature section
Duplicate the Hero section shell. White background, 80px padding. Container: horizontal Stack, Space Between. Left: vertical Stack with icon badge, H2 headline (fixed width), paragraph, Secondary button + Ghost button in an Actions Stack. Right: feature illustration image with a ring and decorative color blob. Set overflow visible on all parent frames so drop shadows on the icon card are not clipped. Assign Scroll Section name: 'feature'.
- 17
Build the Testimonial section
Duplicate a section shell. Add the flipped bottom-curve PNG at the top (use the Flip plugin: Command+K → 'flip' → flip on Y axis) to create a mirrored wave. Container: horizontal Stack. Left: testimonial image. Right: vertical Stack containing rating stars (Star SVGs in a horizontal Stack, converted to a Rating component, duplicated ×5), H3–H4 quote text (line height 1.4, fixed width), and a horizontal Stack with a small logo + vertical separator (1px wide, 1FR height, 25% opacity) + author name and company text. Assign Scroll Section name: 'testimonial'.
- 18
Build the Footer section
Duplicate a section shell. Dark background color, no top padding (curve image sits flush). Container: vertical Stack, 40px gap. Top row (horizontal Stack, Space Between): Left sub-stack (logo + tagline paragraph + email form component) and Right sub-stack (3–4 Footer Column component instances in a horizontal Stack, 80px gap). Bottom row: 1px horizontal separator frame (Fill width, dark/light color at 25% opacity), then a horizontal Stack (Space Between) with copyright text on left and legal links (Terms, Cookie Settings) on right — links underlined, 50% opacity, +3px underline offset. Legal link text: 14 Regular, light color.
- 19
Add Appear animations to Navbar elements with staggered Spring delays
Logo: Appear → Slide In Left, Spring, duration 0.8, bounce 0.2, delay 0. Nav links stack: Appear → Slide In Bottom, Spring, duration 0.8, bounce 0.4, delay 0.2. CTA actions stack: Appear → Slide In Right, Spring, duration 0.8, bounce 0.4, delay 0.4.
- 20
Add Appear animations to Hero section elements with staggered delays
Eyebrow text: Appear → Slide In Left, Spring, duration 0.8, bounce 0.2, delay 0.4. H1 headline: Appear → Text → Stagger (by Word), Spring, duration 0.4, bounce 0.4, delay 0.2. Subtext paragraph: Appear → Fade In, Ease Out, duration 1.0, delay 0.8. Actions Stack (buttons): Appear → Slide In Bottom, Spring, bounce 0.6, delay 0.4. Hero image: Appear → Scale In (start scale 1.4, opacity 0), Ease Out, duration 0.6, delay 0.6. Rings: Appear → Scale In (start scale 0, opacity 0), Physics spring (stiffness ~500, damping 25), delays 0.2 and 0.4. Icon Cards: Appear → Slide In (from card's directional offset), Ease Out, duration 0.6, opacity starts at 1 (visible on arrival), delays 0.6–0.8.
- 21
Add Loop animations to the floating Icon Cards in the Hero
Each Icon Card gets a Loop effect on top of its Appear effect. Loop mode: Mirror. Y offset values should differ per card to create organic, non-synchronized vertical floating (e.g. card 1: Y=−10, card 2: Y=+20, card 3: Y=+6). Duration: 4 seconds. Easing: Linear. This creates a continuous, slow floating effect.
- 22
Add Scroll Section-triggered animations to all remaining sections
For each section (logos, cards, feature, testimonial, footer): (1) Assign the Section frame a unique Scroll Section name. (2) For child elements, add Appear effects with trigger set to 'Section In View', referencing their parent section name, replay OFF, exit OFF. Use Slide In Top or Slide In Bottom for structural text and CTAs. Use Physics spring (damping 50, mass 5) for cards entering from left/right/bottom. Use Ease Out for text blocks and images. Set trigger position to 'center of viewport' as the default. Cards section: heading Ease Out 0.4s, individual cards from left/right/bottom with Physics spring. Feature section: icon Slide In Top, image Scroll Transform (scale 1.4→1, opacity 0→1, triggers when section bottom hits viewport). Logos section: title Slide In Top, ticker Slide In Bottom.
- 23
Preview at every major milestone using Command+P and Command+R to reload
Check: (1) all animations fire in correct order, (2) no drop shadows are clipped — if they are, set overflow to Visible on the clipping parent frame, (3) spacing between sections is consistent, (4) hover states on all buttons and nav links work correctly.
// What does this Framer workflow look like in real projects?
A SaaS product landing page for a project management tool, with a dark brand color, three feature cards, a pricing teaser section, customer logos, and a testimonial.
Step 3: create Color Styles for the dark brand blue, a light blue tint, white, dark text, and black. Step 4: use Inter or DM Sans, build H1–H6 (64→16px) and P/18, P/16, P/14 in Regular and Bold. Step 7: build Button component with Primary (dark blue fill), Secondary (border only), and Ghost variants plus Small variants for the navbar. Steps 12–18: build Navbar → Hero (headline + subtext + two buttons + product screenshot image + two floating Icon Cards showing key metrics) → Trusted Logos (ticker with customer logos at 90% opacity) → Cards section (three capability cards: 'Plan', 'Track', 'Ship') → Feature section (pricing teaser with illustration) → Testimonial (customer quote with star rating) → Footer (four Footer Column components: Product, Company, Resources, Get In Touch with social icons visible). Steps 19–22: add Spring Appear animations with 0.2s staggered delays across navbar; Word-stagger on H1; Loop floating on metric Icon Cards; Physics spring on the three cards entering from left, center-bottom, and right; Scroll Transform scale-in on the product screenshot.
A design agency portfolio landing page with a bold hero, a 'Work' grid section replacing the cards, and a contact form in the footer.
Color palette: white, off-white light, a vivid orange brand color, near-black dark. Typography: Manrope Bold H1 at 64px with −4 letter spacing. Hero: eyebrow text reads the agency's discipline; H1 is two lines with a fixed 450px width; right side contains a large portfolio image with two stroke rings and one floating Icon Card showing an award stat. Work section: replace the three-card row with a 2×2 image grid inside the Container, each image converted to a Component with title and category Variables and a scale-up Hover state. Testimonial section: quote from a past client. Footer: Left column has logo + one-line agency description + a contact email form component; Right has three Footer Columns (Services, Studio, Social) with social column showing icons via show-icon Variables.
// What common mistakes should you avoid when building in Framer?
- Skipping the Assets canvas design system phase and applying raw hex colors or font sizes directly — this makes global updates impossible and breaks style consistency.
- Forgetting to save Color Styles and Text Styles before using them — raw values applied directly to elements cannot be bulk-updated later.
- Not converting repeating elements to Components before duplicating them — you end up with disconnected instances that must be edited one-by-one.
- Not creating Variables for every property that will differ across component instances — without Variables you must double-click into each component to make changes, losing the efficiency of component-driven design.
- Setting parent frame overflow to Clip (default) when child elements have drop shadows or extend beyond their bounds — shadows get cut off; set overflow to Visible on the immediate clipping parent.
- Using Fill width on headline and body text in the hero section — this causes text to reflow unexpectedly at different container widths; set critical text blocks to Fixed width after the layout is established.
- Adding scroll-triggered animations to child elements without first assigning a named Scroll Section to their parent Section frame — the animation has no spatial anchor and fires at unpredictable scroll positions.
- Making all animations the same speed and direction — identical timing reads as mechanical; stagger delays and vary slide directions (left/right/top/bottom) to make the sequence feel designed.
- Setting bounce too high (above 0.6) on text or image animations — overshooting looks cartoonish; reserve high bounce (0.6–0.8) for small, lightweight UI elements like icon cards or buttons.
- Placing the Ticker component inside the 1000px Container — logos will be constrained to the container width and won't scroll full-width; the Ticker must be a direct child of the Section frame.
// What key Framer terms should you know?
- Design Canvas
- Framer's dedicated design-mode page (separate from Pages) where the color palette, typography scale, and imported assets are created before any page is built.
- Assets Page
- The renamed Design canvas page that stores all color swatches, typography samples, and imported images/SVGs as the project's single source of truth.
- Color Style
- A named, reusable color token saved in Framer's Styles panel. Applied via the style name (e.g. 'brand', 'dark') rather than a raw hex value.
- Text Style
- A named, reusable typography token combining font family, weight, size, letter spacing, line height, and color. Organized in slash-delimited folders: 'P/16/Regular', 'H1', 'Caption/12/Regular'.
- Typography Scale
- The complete set of heading (H1–H6) and body (18/16/14 Regular+Bold, Caption) text sizes defined and saved as Text Styles before page building begins.
- Vector Set
- Framer's optimized SVG asset container, created automatically when importing SVG files. Stores multiple SVG icons or logos as a single addressable asset.
- Component
- A reusable, self-contained UI element in Framer created with Option+Command+K. Has Variants and Variables that allow per-instance customization from the parent panel.
- Variable
- A named, editable property on a Component (text content, color, icon, visibility) that can be changed per instance without entering the component.
- Variant
- An alternative visual state of a Component (e.g. Primary, Secondary, Ghost, Small, Hover) defined inside the component editor.
- Stack
- Framer's auto-layout container, created with Option+Command+Return. Controls direction (horizontal/vertical), distribution (start/center/space-between), alignment, and gap between children.
- Section → Container → Content
- The three-layer page hierarchy: Section (full-width, holds background and padding), Container (fixed 1000px width, holds distribution logic), Content (the actual design elements). Duplicating a Section shell gives the correct structure instantly.
- Appear Effect
- Framer's on-load animation system. Triggered when the element enters the viewport or when a named Scroll Section enters the viewport. Configured with presets (Slide In Left/Right/Top/Bottom, Fade In, Scale In, Text Stagger), easing (Spring/Ease Out/Physics), duration, bounce, and delay.
- Scroll Section
- A named anchor assigned to a Section frame via the Scroll Section panel. Child elements reference this name in their Scroll Animation triggers so animations fire when that specific section reaches the viewport.
- Spring
- Framer's physics-based easing type for Appear animations. Produces a natural overshoot and return. Key parameters: duration, bounce (0=none, 1=max), and optionally Physics mode (stiffness, damping, mass).
- Physics Spring
- A sub-mode of Spring animation using stiffness (~500), damping (~25–50), and mass (~1–5) instead of duration/bounce. Used for more organic, weight-sensitive motion like rings expanding or cards sliding in.
- Loop Effect
- A continuous, repeating animation applied on top of an Appear effect. Used for floating icon cards in the hero. Mirror mode makes the element oscillate back and forth. Each element should have a unique Y offset and duration to avoid synchronized motion.
- Scroll Transform
- An animation tied to the user's scroll position rather than a trigger event. Used for the feature image to scale from 1.4× down to 1× and fade in as the section scrolls into view.
- Ticker
- Framer's built-in scrolling marquee component (found by pressing I and searching 'ticker'). Used for the logo strip. Speed and hover-pause speed are configurable. Must be placed outside the fixed-width Container to scroll full-width.
- Eyebrow Text
- The small label above a headline, typically in Caption Bold style with brand color. Sets context before the main H1 (e.g. 'Agency', 'New', 'Features').
- Ghost Button
- A button variant with no fill and no border — text only. Created as a Variant inside the Button component alongside Primary and Secondary.
- Show Icon Variable
- A visibility Variable on the Button component's icon element, defaulting to hidden. Enables icons to be shown only on specific button instances (e.g. a chevron on a 'See Plans' ghost button) without affecting the default state.
// FREQUENTLY ASKED QUESTIONS
What is the UIX Design Academy Framer Site Builder?
It's a structured, no-code workflow for building a fully animated, responsive, multi-section landing page in Framer from a blank canvas. It covers building a design system (color and text styles), reusable components, a three-layer layout hierarchy, and professional scroll and appear animations — all without writing a single line of code.
What is the Section → Container → Content hierarchy in Framer?
It's a three-layer page structure where a full-width Section frame holds the background color, padding, and scroll identity; a fixed-width Container frame (typically 1000px) holds layout distribution; and Content frames inside hold the actual design elements. Duplicating an existing section's shell gives you this correct structure instantly, preserving padding and spacing consistency.
How do I build a landing page in Framer without coding?
Start by building your design system on a dedicated Design canvas — save color styles and text styles first. Then create reusable components (buttons, cards, nav links) with Variables, and build each page section using the Section → Container → Content hierarchy. Finish by layering in Appear, Scroll, and Loop animations. Every step uses Framer's visual tools, no code required.
How do I add scroll animations to a Framer page?
First assign each Section frame a unique Scroll Section name. Then add Appear effects to child elements with the trigger set to 'Section In View', referencing that section name. Use Slide In or Physics spring for cards and Ease Out for text and images. Keep animations subtle (0.4–0.8s), and set the trigger position to the center of the viewport.
How does building in Framer compare to using a website template?
Templates give you a fast start but lock you into someone else's structure and make custom animation and refactoring hard. This workflow builds from a blank canvas with your own design system and components, so every color and text size is refactorable from one panel and every repeating element is a reusable component. You get full control and a professional result rather than a generic look.
When should I use this Framer workflow instead of hiring a developer?
Use it when you need a modern, animated landing page and want a repeatable process you control yourself. It's ideal for founders, marketers, and freelancers who want to ship a professional page without code or dev timelines. If your project needs complex backend logic, custom app functionality, or heavy integrations, a developer is still the better route.
What are Color Styles and Text Styles in Framer?
Color Styles and Text Styles are named, reusable tokens saved in Framer's Styles panel. A Color Style stores a color under a name like 'brand' or 'dark'; a Text Style bundles font, weight, size, letter spacing, line height, and color under names like 'H1' or 'P/16/Regular'. Applying styles instead of raw values keeps the whole site editable from one place.
What results can I expect from following this Framer workflow?
You'll produce a fully animated, responsive, multi-section landing page — navbar, hero, logo ticker, cards, feature, testimonial, and footer — with a consistent design system, reusable components, and subtle professional animations. Because everything uses styles and components, the entire site stays refactorable from single panels, so global color, typography, and content changes take seconds rather than manual element-by-element edits.
What is an Appear effect in Framer?
An Appear effect is Framer's on-load animation system that triggers when an element enters the viewport or when a named Scroll Section becomes visible. You configure it with presets like Slide In, Fade In, Scale In, or Text Stagger, plus easing (Spring, Ease Out, or Physics), duration, bounce, and delay. Staggered delays let you sequence elements from background to foreground.
Why should I convert elements to Components in Framer?
Converting repeating elements — buttons, cards, nav links, footer columns — into Components with Option+Command+K lets you control every instance from the main panel using Variables, without entering the component. Update the master once and all instances update. If you duplicate raw elements instead, you get disconnected copies you must edit one by one, losing all the efficiency of component-driven design.