Purlin template documentation — everything you need to launch.
Purlin template documentation
Template guide

Set up Purlin, step by step.

Everything you need to customize, populate, and launch your roofing site — no code required for the basics, and clearly-labeled knobs when you want to go deeper.

Customize, populate, and launch your roofing site — no code for the basics, clear knobs when you want more.

19 page layouts10 CMS collectionsFully responsiveGSAP-powered motion
Getting started
Images
CMS
Components
Animations
Financing
Forms
Support
01 — GETTING STARTED

Global styles, color & type

Purlin's colors, fonts, type sizes, font weights and spacing are Variables, so you update a value once and every style that uses it follows. In Webflow, open the Variables panel: colors are in the Colors group (Cream, Forest, Forest Deep, Orange, Orange Dark, Ink, Card and more), fonts in the Fonts group, and sizes and spacing in the Type Scale, Spacing, Font Weight, Line Height, Letter Spacing and Radius groups. A few values are typed directly in their styles: the colors inside shadows and gradients (Webflow can't hold a Variable there), the hero headline size (a clamp() value) and a handful of one-off sizes used in only one or two places.

/* Variables panel → Colors */
Cream:        #F4F1EA   /* page background */
Forest:       #283730   /* primary dark */
Orange:       #CE4318   /* CTAs and accents */
Ink:          #1F2823   /* body text */
Card:         #FBFAF6   /* surfaces */
  • Swap the logo: open the Navbar component, double-click the logo image and choose Replace Image. Repeat in the Nav Docs, Mobile Menu and Footer components and for the small logo in the 404 page footer. Keep each logo about the same height: 34px in the Navbar and Nav Docs (class rl-logo-img), 30px in the Mobile Menu and Footer (rl-logo-img-sm) and 18px in the 404 footer (rl-404-foot-logo).
  • Change the fonts: Fonts/Display (Schibsted Grotesk) is used for headings, Fonts/Body (Hanken Grotesk) for text (including headings inside blog posts) and Fonts/Mono (Space Mono) for small labels. Add your fonts in Site settings → Fonts, then change these three font variables in the Variables panel; every style that uses them follows.
  • Reserve orange for CTAs — orange (#CE4318) marks calls to action, the current-page nav underline and the headline caret. Its darker shade (#B4380F) also colours some links, step numbers and small labels, so keep both out of body text.

SWAPPING IMAGES

Swapping images

Most images update the same way: double-click the image on the canvas and choose Replace Image. To change a file everywhere it is used, open the Assets panel, choose ⋯ → Replace on the file. The Home hero photo is an Image element, so it updates the same way. The two crossfade slides behind it are class backgrounds (rl-hero-bg and rl-hero-bg-2) — change them in the Style panel under Backgrounds. Team photos come from the CMS (see below). CMS-driven images (service images, project Before / After and Gallery photos, team photos, and blog post covers) live on the Collection item itself, so update them from the CMS panel rather than the page canvas. The map on the Home, Contact and Service Areas pages is an illustration (a normal image, not an interactive map): replace it with your own map image the same way. The Open Graph preview image for each page is set separately under Page settings → Open Graph and won't update automatically when you change an on-page hero image. Every page currently points to the same Open Graph file (purlin-og-1200x630.jpg, 1200×630). Replace it with your own image once and select it in each page's Open Graph settings.

02 — CMS GUIDE

Adding your content

Ten CMS collections power the dynamic pages and local SEO. Add an item to Services, Projects, Service Areas, or Blog Posts and its detail page builds itself from the matching template; each of those detail pages uses the item’s Meta title and Meta description as its SEO title and description. FAQs and Process Steps appear as lists inside other pages and have no page of their own; Reviews, Team and the two category collections are lists too. A list shows every item (up to 100 per list) unless a limit is named below; the related-items lists on Service, Project and Blog Post pages show at most 3. There is no Load more button. The sort order of each list is written under its collection.

Services
Name, summary, problem, “what’s included” list, testimonial and related services → renders the Service Detail template (the summary also fills the service cards). What’s included: keep an even number of bullets (4 or 6) so the two-column list stays balanced; it shows on the service page and in the large block on the Services page. Display order (number, lowest first): sorts the Home grid, the Services page grid and the footer Services list; the service with the lowest number is also the large block at the top of the Services page, and the “Materials & warranty” band under it shows that same service’s Materials fields. Featured (switch): shows the service on the Home page grid (up to 6); the Services page lists every service. Icon (image): a 24px SVG icon (forest #283730) for the services grid card. Dark card (switch): turns the card into the dark forest style with cream text and a sand link. Show badge (switch): shows the “Most requested” ribbon on the card. Testimonial quote / name / meta / initials: the client quote on the service page. Highlight headline: the heading of the large block on the Services page. Show before-after (switch) with Before image, After image and BA caption: the Before / After section on the service page and in the large block; turn it on only for a service that has both images. Materials heading / body and Materials stat 1 and 2 (value + label): the “Materials & warranty” block on the service page and on the Services page. Show maker badges (switch): shows the manufacturer badge column on the service page; leave it off for services that do not install shingles. Financing heading / body, FAQ heading, FAQ intro before phone / after phone (the phone number between them is the Phone component), CTA heading / body and Process heading: the text of each section on the service page. Home claims link (switch): turn it on for one service (Storm & Hail Damage) and the Home page’s “How claims work” link opens that service’s page.
Projects
Location, service type, project category, Before image and After image (both required), optional Gallery, description, date completed and job specs → feeds the Projects list and the Project Detail template. The Before / After section on the detail page shows that project’s Before and After images (BA headline and BA caption are its text), and the “From every angle” section shows its Gallery photos. Featured (switch): shows the project in the Home gallery (the 4 newest by date completed; any number from 1 to 4 fills the row) and lists it first on the Projects page; the Projects page otherwise sorts by date completed, newest first. Testimonial quote / name / meta / initials: the client quote on that project’s page. CTA heading / body: the text of the closing call-to-action on that project’s page. Project category: decides which filter chip shows the project on the Projects page (project cards carry no category badge).
Service Areas
Name, intro, body copy, hero image, map link, services offered and nearby towns → renders the localized Service Area Detail. Lists of areas (Home, Service Areas, Contact) show every area, sorted by name on the Service Areas and Contact pages. Services offered (multi-reference): pick which services appear in the “Services offered” list on that area’s page; each row links to the service. Map link: the address of the “View on Google Maps” button on that area’s page (no API key needed). Area reviews (multi-reference): pick the reviews shown on that area’s page (3 fills the row) — add real reviews to the Reviews collection, then link them here. Nearby areas (multi-reference): the nearby-town cards shown at the bottom of the area page, in the order you add them to the field (3 fills the row). Hero eyebrow: the small label above the page title (for example “Round Rock · Service area”). Reviews eyebrow and Reviews heading: the label and heading above that area’s reviews. Why heading and Why 1 / 2 / 3 title + body: the three-point trust block on that area’s page. CTA heading / body: the closing call-to-action on that area’s page.
Blog Posts
Category, cover, author, body, read-time → feeds the Blog list and Blog Post template. Author is a Team member: the byline at the top of the article shows that person’s photo, name and role, and the author box at the bottom shows photo, name and bio. Featured (switch): lists the article first on the Blog page and first in the Home page blog row, which always shows 3 posts (featured first, then newest). CTA heading / body: the text of the call-to-action box inside the article.
Reviews
Customer name, location, quote, initials and Source initial (the one-letter badge, for example H) → feed the review cards on the Reviews page, the Home testimonials and the Services page. Date is not shown on the cards. It sorts the Home, Services and Reviews lists (newest first; featured reviews come first on the Reviews page). The reviews on each Service Area page follow the order you pick in the Area reviews field. Source says where the review came from (Homeowner in the demo). It fills the “Verified … review” label on the large quote on the Reviews page (below the review wall), so type it the way you want it to read. Reviews always show a fixed five-star rating, so add five-star reviews only. Featured (switch): shows the review on the Home page and the Services page (3 newest), puts the newest featured review in the Home hero chip (its Short quote is the one-line text), and lists it first on the Reviews page. Spotlight (switch): shows the review as the large quote on the Reviews page, below the review wall (one review; with Spotlight meta as the line under the name). The review wall above it leaves the spotlight review out, so it is never shown twice. Project note is not shown on the site; use it as your own label.
Team
Name, role, photo → feeds the About page team grid (photo, name and role), sorted by Display order (lowest first). Bio is shown in the author box at the bottom of Blog posts written by that person, not on the About page.
Blog Categories
Category name only (no description field) → the category badge on blog cards and articles (the badge is not a link, and this template has no separate category page) and the Blog filter chips, which are built from this collection in name order. Add a category here and its chip appears; the “All posts” chip stays fixed.
Project Categories
Category name, Display order (lowest first) and Show in filter (switch) → the Projects filter chips, which are built from this collection in display order, and the category each project is filed under (there is no category badge and no separate category page). Add a category here and its chip appears when Show in filter is on; turn it off for a category that has no projects yet, so the chip does not lead to an empty list. The “All work” chip stays fixed. There is no description field.
FAQs
Question (the item name), answer, service, show on home and display order → feeds two lists. On each Service page the FAQ section lists only the FAQs whose Service is that service, sorted by display order (lowest first). On the Home page the FAQ section lists FAQs with Show on home switched on, sorted by display order, up to 6. An FAQ with no Service and Show on home off appears nowhere. To add a question to a service, create an FAQ and pick that service.
Process Steps
Step name (the item name), step number (for example 01), body, service and display order → the “How a project runs” steps on each Service page. Each service shows only its own steps, sorted by display order (lowest first), up to 6; the layout is built for 6, so keep six steps per service. The heading above the steps comes from the service’s Process heading field. The small “How a project runs” label above that heading is fixed text.

Typed text: what is still typed on the page, and is not a Fact and not in the CMS. Quote form dropdowns: the “I need” options on the Home quote form and the service dropdown on the Contact form are plain form options (both lists use the same order and values), so when you add or rename a service in the CMS, edit the options in both forms too. Names, places and numbers: the company-wide figures (rating, review count, roofs installed, years in business, material warranty years, workmanship warranty, financing APR and reply time), the company name, the short brand name, the city, region and state, the year, the inspection count and the emergency response are Company Facts, described under Components below. The claims tiles in the Home storm section and the financing example in the Home Financing section (the example roof total and the monthly payment for each term) are typed text; replace them with your own (each service’s own financing wording is a CMS field). Company-wide sections: the Home “How it works” and “The Purlin difference” sections and the About “How we work” section are one text for the whole company, so they are typed on the page and are not CMS fields; rewrite them for your own business. Sentences that name your region (Austin and Central Texas in the demo) are built with Fact City, Fact Region and Fact State: the Home, Services, Projects, Service Areas, Contact, Reviews and Blog sections and intros, the About story, the Footer description (shown on every page except the 404 and the Style Guide) and the Mobile Menu line (shown on every page). Change the Fact default and every sentence that uses it follows; the sentence itself stays as written. The Orange CTA Band texts no longer name a city or your company. Page titles, descriptions and structured data are listed below. Structured data: in Page settings the Home page JSON-LD lists the cities you serve (areaServed) as typed text, so update it when you add or remove a Service Area, and it carries your company name, phone, address and rating. The Contact JSON-LD carries the company name and phone. Every other regular page has a short JSON-LD whose name, description and url are typed text, including the purlin-premium.webflow.io address: Services, Projects, Service Areas, Reviews and Blog use CollectionPage, About uses AboutPage, and the legal, docs and Style Guide pages use WebPage. Replace them with your own. The 404 page and the CMS detail pages (Services, Projects, Service Areas, Blog Posts) have none. Section labels such as “How a project runs”, “FAQ” and the Home page section headings are fixed text on the page.

Updating your phone number, address & license, hours and company name

Your phone numbers, company name, license number, business hours and your address are stored in small Components, so you change each one in a single place and every use of it follows. To change one everywhere, select it on the canvas and click the component icon at the top of the right panel to open it, select the text or link inside, then in the Settings panel click the arrow next to its Property, choose Edit settings and change the default value (press Tab to confirm). The Properties panel shown when one placed copy is selected changes only that copy, and clicking a component in the Components panel adds a new copy to the page instead of opening it. A few related details (such as the phone number in the form placeholders) are plain text; they are listed at the end.

  1. Phone (change once): Open the Phone component, select Phone Link and change both defaults in the Settings panel: Phone Label under Link settings > Text, and Phone Link under Link settings > Link (type Phone). Phone Label is the number people see; Phone Link is the tel: number (digits with country code, for example +15125550142). The mobile menu, sticky call bar, announcement bar and orange CTA band use this one component, and so do the Home page, the Contact call card, the Service Areas page, the Service Detail pages and the 404 page. (The footer does not show the phone number.) Links that read "Call us" keep their own label but use the same number. The 24/7 line is a separate component, Emergency Phone, used in the Home storm section and on the Contact page; change it the same way. Its Phone Label is the number only (for example (512) 555-0199) — the words before it (“Emergency storm line —” on Home, “24/7 line:” on Contact) are plain text on each page; the 24/7 on Contact and in the Home storm section is Fact Emergency Response. By default a Phone only makes its own number tappable. Inside a button or card that has position: relative, select the Phone and choose the Fill Parent variant to make the whole button or card tappable.
  2. Address and license number: Two components: Company Address (its Street Address and ZIP Code Properties; its city and state are built from Fact City and Fact State Code; the Contact address card shows all three, and the Home hero badge uses its City only variant, which shows the city and state) and License Number (footer, mobile menu, Home hero chip and About credentials). To change either everywhere, open the component, select its text and change the Default Text under Edit settings in the Settings panel, as described above. License Number also holds the words in front of the number, as its License Label Property (“Lic. #” in the demo). Change the label and the number the same way.
  3. Business hours (change once): The Hours component has one text property, Hours. Change its default value the same way as the license number: open the component, select the hours text, click the arrow next to Hours in the Settings panel, choose Edit settings, change the Default Text and press Tab. It is one line of text, for example Mon–Fri 7am–6pm · Sat 8am–2pm · Sun closed. The Contact page (the Office hours line beside the form and the Business hours card) and the Mobile Menu all use this one component, so there is nothing else to edit by hand.
  4. CMS content: Some CMS entries mention your company, region or numbers in the text: the Team bios (for example “15 years”), the Home FAQ answers (the liability coverage amount, “1–2 weeks”, “greater Austin metro”) and two Blog posts (“across the Austin metro”). Open the Team, FAQs and Blog Posts items in the CMS, look for the words Purlin and Austin and any number you change, and edit those items by hand.
  5. Company name (change once): the Fact Company Name component in the Company Facts group; open it (for example from the © line in the Footer) and change its default the same way. It sets the company name in the © line of the Footer (desktop and mobile) and in the 404 page footer. The year in the © line is its own Fact, Fact Year, in the desktop Footer, the mobile Footer, the 404 footer and the Style Guide footer; “All rights reserved.” stays plain text. The 404 page footer and the Style Guide footer are separate from the Footer component, but they use the same Fact Year, Fact Company Name (404) and Fact Brand Name (Style Guide), so those values are not typed twice.
  6. Text that cannot be a Property: on the Contact page the form field placeholders (phone, email, address), the Home quote form placeholders (phone, ZIP code) and the structured data (see above) live in the form settings and Page settings. Social links: the Facebook, Instagram and LinkedIn icons are in the Mobile Menu component (the round icons at the bottom of the menu). Each one links to that network's home page; open the Mobile Menu component, select an icon and change its link in the Element settings panel. The company name “Purlin” is typed in the logo images and their alt text, page titles and descriptions, structured data and CMS text. Everywhere else in the page text it is Fact Brand Name (including the Terms and Privacy text, which is placeholder legal copy); the © lines use Fact Company Name. The Terms also name Texas and Travis County as the governing law and venue. That is not a Fact: it is a legal clause, so before you publish replace the Terms and Privacy with your own legal text. The template shows no business email address. Set the address that receives form submissions in the form's element settings (Send to → Email notifications).
  7. Home page title: the Home SEO title is “Purlin - Webflow HTML website template” (the format the Marketplace requires). Replace it and the description in the Home page settings; the Open Graph title and description copy them.
03 — COMPONENTS

Reusable building blocks

The shared pieces are Webflow Components — open one and edit it, and every page that uses it updates. You'll find them in the Components panel (clicking one there adds a new copy to the page):

Navbar           — sticky navigation bar
Nav Docs         — nav for the docs pages and the Style Guide
Footer           — multi-column footer + back-to-top
Mobile Menu      — full-screen mobile nav overlay
Sticky CTA Bar   — fixed bottom call/quote bar (mobile)
Trust Bar        — credentials + rating strip (text Properties)
Announcement Bar         — top bar message + phone
Orange CTA Band  — shared closing CTA band (Home, Services, About, Service Areas, Blog, Projects, Reviews and the Service, Project and Service Area detail pages)
Phone       — the main number's tel: link (change it here once)

Cards reused in more than one place are Components too: Blog Card, Project Card, Review Card, About Card, Maker Badge, Services Grid (and Services Grid Featured for the Home page) and Filter Chips. The other listing cards use shared classes — edit the class to restyle every card at once.

Navigation links (change once): the menu links are seven components in the Navigation group: Nav Services, Nav Projects, Nav Service Areas, Nav Reviews, Nav About, Nav Blog and Nav Contact. Each one is used in the Navbar, the Mobile Menu and the Footer (Blog is not in the Navbar, Services is not in the Footer). To rename a link or change where it goes, open its component: select it in the Navigator, then click the component icon at the top of the right panel. Open the Properties panel in the left sidebar, click Label or Link, and change Default Text or Default Link in Property settings. Press Tab to apply. All three menus follow. Do not change Label or Link in the right panel of a single instance: that changes only that one place, and it no longer follows the default.

Your business details are Components as well: Phone, Emergency Phone, License Number, Company Address, Hours and, in the Company Facts group, Fact Company Name. Change their default values once (see the phone, address, license, hours and company name notes above). Several components also have text Properties: Trust Bar (labels), Orange CTA Band (heading and subtext; their default wording names no city or company), Sticky CTA Bar (quote button) and Nav Docs (last link). The Announcement Bar has none: its two messages are plain text with Fact Inspection Points inside. Text inside a component that is not one of its Properties (for example the Privacy, Terms and Licenses links in the footer) is edited inside the component: double-click the component on the canvas to open it, select the link, then change its text in the Settings panel under Link settings > Text. For text that is not a link, select it and double-click to edit it on the canvas. Keep the two switches on Services Grid on.

Company Facts: the numbers that describe your company are Components in the Company Facts group of the Components panel, so you change each one once. Change a Fact’s default value (open it, select its text, then Edit settings in the Settings panel) and every place that uses it, including the Trust Bar, follows. Some numbers are still typed inside sentences and tiles; the main ones are listed under Typed numbers below, so check any figure that does not match your business. Nine of the Facts are: Fact Company Name (the full company name; the © line in the Footer and the 404 footer), Fact Rating (4.9; Home hero stats, hero review chip and reviews heading, Reviews hero and badge, Trust Bar), Fact Review Count (600+; Home hero stats and reviews heading, Reviews, Trust Bar), Fact Roofs Completed (2,400+; Home hero stats, About stat tiles), Fact Years in Business (17; About stat tiles), Fact Material Warranty Years (25; About stat tiles), Fact APR (3.99%; Home financing tile), Fact Response Time (1 business day; Home hero badge, Contact hero badge) and Fact Workmanship Warranty (Lifetime; Home hero stats). Eight more Facts hold the names and places that sentences are built around, in the same group: Fact Brand Name (Purlin), Fact City (Austin), Fact Region (Central Texas), Fact State (Texas), Fact State Code (TX), Fact Year (2026), Fact Inspection Points (21) and Fact Emergency Response (24/7). Fact Brand Name is the short name inside sentences (the difference heading on Home, About, the Service Area trusts heading, the Terms and Privacy text and the Style Guide); Fact Company Name stays the full name in the © line. Fact City, Fact Region and Fact State are the city, region and state inside the Home, Services, Projects, Service Areas, Contact, Reviews and Blog sentences, the About story, the Footer description and the Mobile Menu line. Fact State Code (TX) is used with Fact City in the Company Address component. Fact Year is the year in the © lines of the Footer, the 404 footer and the Style Guide footer: change its default when the year changes. Fact Inspection Points is the number in the Announcement Bar messages and the About timeline, and Fact Emergency Response is the 24/7 in the Home storm section and on the Contact page. The Trust Bar has no rating Property of its own: its rating line is built from Fact Rating and Fact Review Count. Only Page settings carry some of these numbers as typed text — the Reviews SEO title, the Reviews JSON-LD name and the Home JSON-LD — so update them there when you change a Fact.

Page settings to edit by hand: the SEO and structured data fields are typed in each page's Page settings (Webflow cannot set them globally), so only a few places still carry company numbers as typed text. Home: the JSON-LD ratingValue (4.9) and reviewCount (600, digits only). Reviews: the SEO title and the JSON-LD name (4.9, 600+). The other page descriptions and structured data contain no Fact numbers, but a few descriptions mention “24/7” or the 21-point inspection, so reread them when you rewrite. Open Graph titles and descriptions copy the SEO fields on every page, so you only edit the SEO fields; the Open Graph image is chosen on each page.

Values kept per CMS item: these are not company-wide, so you edit them item by item. The Projects Spec warranty field holds each project’s own warranty. The FAQs answers mention the liability coverage amount and the 21-point inspection. Customer quotes in Reviews (for example “The written warranty sealed it.”) belong to your customers, so reread them if you change your warranty. The Terms page warranty clause (a written workmanship warranty) is typed on the page, so rewrite it to match your own terms.

Typed numbers and where they are: the Home storm tiles, the 40+ in-house crew count on About, the founder’s “15 years” in the Team bio, the Home FAQ figures (the liability coverage amount, “1–2 weeks”), the Home financing table (3, 5 and 10 year terms and the example payments) and the “60 seconds” it takes to fill in the quote form. The 21-point inspection uses Fact Inspection Points in the Announcement Bar and the About timeline. The six cities you serve are typed in the Home JSON-LD (see above). Credential and badge names come from several places: the Trust Bar (Credential 1 and 2), the About Cards in the credentials section, the Maker Badges on the Service Detail template, the Projects Spec Material field (for example “Dimensional shingle · Charcoal”) and the typed “Licensed & insured” badge on the Reviews page. The Home and Services hero paragraphs only say “a written workmanship warranty”, but the Home hero stats also show the Workmanship Warranty Fact (“Lifetime”). Update that Fact if your warranty differs.

04 — ANIMATIONS

How to Edit GSAP Animations

Scripted motion on this template runs on GSAP 3.12.5, loaded from cdnjs, plus a handful of registered site-footer scripts. Scripted scroll and hover motion animates transform and opacity; the exceptions are the FAQ accordion (height), the nav bar shadow (a CSS transition) and two text effects (the count-up and the headline typewriter). Button, link and card hover changes (colour, border and shadow) are plain CSS transitions. Under prefers-reduced-motion: reduce the scripted reveal, count-up, typewriter, hover effects, sticky-bar hide and hero crossfade are switched off, and the mobile menu, FAQ and filter chips change instantly; only the back-to-top button and the filter-chip scroll hint still fade (opacity, about 0.3s). The CSS hover transitions on buttons, links and cards and the nav bar shadow are not switched off.

ELEMENT MAP
Hookdata-reveal attribute
EffectScroll-triggered fade + 22px rise (fires once, at 88% from top)
ScriptrlMotionInit2
RemoveDelete the attribute from the element
Hook.rl-stat-num / .rl-abtp-stat-num
EffectAnimated count-up (1.4s)
ScriptrlMotionInit2
RemoveRemove the class (the number also loses its number styling)
Hook.rl-nav-bar
EffectNav hides on scroll + adds shadow
ScriptrlMotionInit2
RemoveEdit the nav block in rlMotionInit2 (removing the whole script also removes the reveal, count-up and back-to-top click)
Hook.rl-fab
EffectBack-to-top smooth scroll
ScriptrlMotionInit2 and Purlin Back To Top GSAP
RemoveDelete the element
Hook.rl-mtoggle .rl-mclose .rl-menu-wrap .rl-menu-1
EffectMobile menu open/close (with focus trap)
ScriptPurlin Mobile Menu Scroll
Remove—
Hookdata-filter-group data-filter data-tags
EffectBlog/Projects filter chips (GSAP fade)
ScriptPurlin Filter Chips
RemoveDelete the attributes
Hook.rl-nav + current page match
EffectNav current-page underline
ScriptPurlin Nav Active GSAP
RemoveRemove the script to disable

A short excerpt of the reveal animation:

gsap.from(el, {
  opacity: 0,
  y: 22,
  duration: .7,
  ease: "power2.out"
});
HOW TO REMOVE ALL ANIMATIONS
  1. Go to Site Settings → Custom Code and delete the Purlin scripts (GSAP core, ScrollTrigger, Mobile Menu Scroll, Motion Init, Hero Typer, Nav Active GSAP, Filter Chips, FAQ GSAP, UI Micro GSAP, Back To Top GSAP, TOC Spy GSAP, Sticky CTA GSAP, Chips Scroll Hint, Phone Ring GSAP). The list may also show older versions of some of these; only the scripts applied to the site run.
  2. Leftover data-reveal and similar attributes on elements are harmless once the scripts are gone — they do nothing without the script.
  3. If you don't need scripted motion, you can remove the two GSAP scripts (gsapCore and gsapScrollTrigger). The scripts that need GSAP then do nothing, including the current-page nav underline and the back-to-top button; the mobile menu and filter chips still work, without the fade, and the CSS hover transitions stay.
REGISTERED SCRIPTS
  • gsapCore — loads the GSAP 3.12.5 core library
  • gsapScrollTrigger — GSAP plugin that fires animations on scroll position
  • Purlin Mobile Menu Scroll — opens/closes the mobile nav with a focus trap
  • rlMotionInit2 — reveal, count-up, nav-hide, and back-to-top-click behavior
  • Purlin Hero Typer v2 — animated typewriter effect in the Home headline (it types everything after the word “outlast”; if your headline has no such word, it types the whole line)
  • Purlin Nav Active GSAP — underlines the current page in the nav
  • Purlin Back To Top GSAP — shows, hides and positions the .rl-fab back-to-top button as you scroll (the smooth scroll on click is in rlMotionInit2)
  • Purlin UI Micro GSAP — nav link hover underline, CTA arrow micro-motion, phone icon wobble on tel: links, and hero image crossfade
  • Purlin FAQ GSAP — smooth expand/collapse animation for the FAQ accordion items
  • Also registered — Purlin TOC Spy GSAP (highlights the active section in this page's table of contents), Purlin Sticky CTA GSAP (shows/hides the mobile sticky CTA bar as you scroll), Purlin Chips Scroll Hint (fades in an edge gradient on the filter-chip row while more chips are off-screen) and Purlin Phone Ring GSAP (wiggles the phone icon when you hover a phone button; it looks for the data-phone-shell attribute)
  • Purlin Filter Chips — filters the Blog and Projects cards when you click a filter chip, with a GSAP fade (without GSAP the cards switch instantly)
05 — FINANCING EXAMPLE

About the financing example

The Financing section on the Home page shows static example monthly payments for a typical project (one example roof total, paid over 3, 5 and 10 years at 3.99% APR), so there's no calculator script to configure. To change the example, edit the typed amounts in the financing table and the APR Fact.

FORM SUBMISSIONS

Where form submissions go

The quote form on the homepage (named Home Quote, with name, ZIP code, phone and service) and the form on the Contact page (named Contact) both use Webflow's native form handling, so no extra script or third-party service is required; the form names are what you see in Submissions. The Style Guide page also has a demo form (Style Guide Demo) that shows up in Submissions; ignore it or remove it. Set where notifications go: select the form, open its element settings and add the email address that should receive new submissions under Send to → Email notifications; otherwise they only appear under Site settings → Forms. To change the message people see after sending a form, select a field inside the form, open the Settings panel, set State (under Form settings) to Success or Error, then double-click the message on the canvas to edit it, or change the text in the Settings panel. Webflow stores submissions made on the staging (.webflow.io) domain and on a custom domain alike, and you can read them under Site settings → Forms. Add the address that should receive an email for each new submission (see above). You can review or export every submission at any time from Site Settings → Forms → Submissions.

06 — SUPPORT

Support & changelog

Need something this guide doesn't cover? Here's where to look next.

  • Changelog — release notes for the template, newest first.
  • Licenses — full licensing information for fonts, icons, and code.
  • Style Guide — the design system reference: colors, type, components, and more.
Get a free quote