Instructions
[Getting started]
Lately is built so you can make it yours from a few panels, without touching code. Start with your colors and fonts, then edit the content in place or in the CMS.
Brand colors
Open the Variables panel →
Colors. Every class uses these variables, so changingText/PrimaryorBackground/Primaryupdates the whole site at once.Fonts
Upload your font in Site settings → Fonts, then pick it in Variables →
Typography→Body Font. Every text style follows it.Sizes & scale
Everything is sized in em from the
page-wrapper: 16px up to 1440px wide, growing to 21px on 1920px screens. The combois--no-scalekeeps a page at 16px everywhere; remove it to let that page grow. No text goes below 14px.Class names
Client-First naming:
page-row_componentfor parts of a block,text-style-labelfor shared styles,is--lastfor variants. Reuse a class before creating a new one.
[Interactions]
Fade-up reveals
Rows and cards below the fold fade up as they enter the screen. They're native Webflow interactions, named like
about · page-row_component · scroll-fade-up.Project labels
Hovering a project card on Home or Works shows its name in a small pill (
feed_label).Change or remove one
Select the element, open the Interactions panel and click the interaction to change its timing, distance or easing. Delete it there to remove the effect; the element stays visible.
At least one
Webflow only loads GSAP on pages with at least one interaction, and the custom code below needs it. If you strip a page of every reveal, keep one interaction on it.
[Custom code]
One script
All custom code lives in Site settings → Custom code → Footer code: the Lenis script, then
script.js, then a short Webflow helper. No page has code of its own. The field holds 50,000 characters; the script uses about 39,000.Early setup
Site settings → Custom code → Head code holds the Lenis stylesheet, a tiny script that applies dark mode before the page shows and turns on the Welcome screen on the first visit, and one font-smoothing style.
GSAP integration
GSAP comes from Webflow, not from the code fields. In Site settings → GSAP integration, keep ScrollTrigger and CustomEase ticked. Never add a second copy of GSAP.
Smooth scroll
To turn it off, delete the Lenis script and stylesheet lines; the site falls back to normal scrolling. Inner scroll areas opt out with the attribute
data-lenis-prevent.Reduced motion
Visitors who turn on Reduce motion in their system get normal scrolling and instant transitions. Nothing to set up.
[Features]
Each effect is switched on by a custom attribute on an element (select it → Element settings → Custom attributes). Remove the attribute or the element and that effect simply stops; the rest keeps working.
Welcome screen
Name, counter and year slide in once per browser tab. The Welcome screen is hidden in the Designer (display none) so you can edit the page under it; the site script shows it on the first visit in each tab. To edit it, select
welcome_componentin the Navigator and add the combo classis--shown, make your changes, then remove the combo. Hook:data-welcome. Off: delete the Welcome element at the top of each page.Light / Dark toggle
Switches the theme and remembers the choice. Hooks:
data-theme-toggleon the button,data-theme-labelon its two words.Clock
Shows the local time of 11 cities in turn. Hooks:
data-clock-group,data-clock,data-clock-location. Edit the cities in theCITIESline of the script.Avatar cycle
Swaps the portrait every 6 seconds with a pixel effect. Hook:
data-avatar-cycle; list the image URLs, separated by commas, indata-srcs.Cursor brackets
Two brackets follow the mouse on screens 768px and wider. No attribute: to turn it off, delete the line
initCursor();in the script.Hover surprises
Words in the Home bio change style on hover. Hook:
data-eggwithconcept,code,ai,karts,gamingorphoto.Playlist card
A Spotify player pops up over the "playlist" link. Hooks:
data-music-popupon the link,data-music-cardon the card. Change the playlist in the link and the embed'sdata-src.Project videos
Videos play only while they're on screen, which keeps the page light. Each video sits on top of the item's Cover image, which works as its poster. When an item has no video, the script removes the empty video. Hook:
data-feed-video.Project dialog
Home cards open their details in a dialog with arrows, Esc and a shareable link. Hooks:
data-feed-openon each card,data-feed-detailon its hidden detail block.Underline links
The line under email links slides out to the right and back in from the left on hover. Hook:
data-link-lineon the link, plusdata-link-line-baron its line element.Post contents
On a blog post, the contents list is built from the H2 headings of the post body, marks the section you're reading and fills a progress line. Style the one sample link in the Designer. Hooks:
data-tocon the list block,data-toc-sourceon the Rich Text,data-toc-linkon the sample link,data-toc-progresson the progress bar. A post with no H2 hides the list.
[CMS]
Your projects
One item fills a Home card and its dialog, a Works card and a project page. Name, Cover Image or Cover Video and Summary show everywhere; Brief, Outcome, Gallery and Live URL fill the project page. Order sets the sequence.
Image or video
Cover Video and Detail Video take a direct link to an .mp4 file, not a YouTube page. Leave them empty and the Cover Image shows instead; it's also the video's poster. Webflow can't store video files, so any host with a public .mp4 link works. The demo uses Cloudflare R2, free up to 10 GB: create a bucket, allow public access, upload the file and paste its link. Keep videos short, muted and a few MB each.
Made with chips
A short list of tool names. Pick them in each project's Tools field to show the "Made with" chips.
Your writing
Each post fills a card on the Blog page and its own post page. Add a post in the CMS panel and it appears in both, newest first.
[Theme]
Two modes
The
Colorscollection has two modes. Switch the Variables panel to Dark to edit the dark palette; the Light values stay untouched.How it switches
The toggle adds the class
theme-darkto the Body, which applies the Dark mode, and remembers the visitor's choice.Ship one theme
Delete the Light / Dark toggle from each page header. Without it the site always opens in Light.