Skip to content
Type something to search...
Kivo Theme Documentation

Animations & Interactions

Files: src/config/config.toml, section content files · Skill level: Beginner

Kivo’s motion is calm by design: content fades in a short distance, and product mockups play once when they scroll into view. Every animation respects the visitor’s reduce motion setting.

Fade-In On Scroll

[settings.animation]
enable = true
respectReducedMotion = true
duration = "600ms" # how long each fade takes
distance = "0.75rem" # how far content rises while fading in
easing = "cubic-bezier(0.215, 0.61, 0.355, 1)"
rootMargin = "0px 0px -8% 0px"
threshold = 0.14 # how much of an element is visible before it starts

Set enable = false to show everything without fading. Keep respectReducedMotion = true: some visitors get dizzy from motion.

Smooth Scrolling

[settings.smoothScroll]
enable = true
respectReducedMotion = true
duration = 1.1 # higher feels slower and smoother
easing = "expo" # expo | linear | easeOutQuad | easeOutCubic

Set enable = false for the browser’s normal scrolling.

Section Animations

These are set in each section’s content file:

WhereOptionWhat it does
Hero (hero-saas.md)rotatingWordsWords typed one after another at the end of the title
Herooptions.rotatingStyle: typewriter or fadeTyped and deleted, or a soft cross-fade
Herooptions.showGridThe grid backdrop with lit cells
Heropreview, preview.terminal, agent, dashboardThe animated product mockup (one at a time)
Steps (steps-section.md)options.autoplay, options.intervalCycles through the steps (interval in milliseconds)
Testimonials (customer-quotes-section.md)options.autoplay, options.intervalRotates the quotes in the default layout
Stack (stack-section.md)marquee.duration, marquee.pauseOnHover, marquee.reverseSpeed and direction of the scrolling logos
Call to action (call-to-action.md)pipelineThe deploy steps that play under the buttons
Footer (config.toml)[settings.layout] footerWordmarkinteractive dots that follow the cursor, or static text

The Demo Layout Switcher

The floating Change layout button is a tool for choosing layouts, not a feature for your visitors. It is off by default ([settings.layoutSwitcher] enable = false). If you turn it on while you choose layouts, turn it off again before launch. See Section Layouts.