Get Started
Components
- Accordion
- Alert Dialog
- Alert
- Aspect Ratio
- Avatar
- Badge
- Breadcrumb
- Button Group
- Button
- Card
- Carousel
- Checkbox
- Collapsible
- Combobox
- Command
- Container
- Context Menu
- Data Table
- Dialog
- Drawer
- Dropdown Menu
- Empty
- Field
- Flex
- Form
- Grid
- Hero Button
- Hover Card
- Input Group
- Input OTP
- Input
- Item
- Kbd
- Label
- Menubar
- Native Select
- Navigation Menu
- Pagination
- Popover
- Progress
- Radio Group
- Resizable
- Responsive
- Scroll Area
- Segmented Control
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spacer
- Spinner
- Squircle
- Switch
- Table
- Tabs
- Textarea
- Theme Toggle
- Toggle Group
- Toggle
- Tooltip
- Typography
- Unicorn Wrapper
Animations
- Background Image Parallax
- Card Swipe Carousel
- Cards Parallax
- Parallax Scroll
- Perspective Carousel
- Perspective Section Transition
- Scroll Expand
- Scroll Fade
- Scroll Scale
- Slide Down
- Slide Up
- Smooth Parallax Scroll
- Smooth Scroll
- Sticky Footer
- Text Along Path
- Text Gradient Opacity
- Text Parallax
- Transforms 3d
- Zoom Parallax
"use client"
import { StickyRevealFooter } from "@/components/animations/sticky-footer/sticky-footer"
const Nav = () => {
return (
<div className="flex shrink-0 gap-20">
<div className="flex flex-col gap-2">
<h3 className="text-foreground/50 mb-2 uppercase">About</h3>
<p>Home</p>
<p>Projects</p>
<p>Our Mission</p>
<p>Contact Us</p>
</div>
<div className="flex flex-col gap-2">
<h3 className="text-foreground/50 mb-2 uppercase">Education</h3>
<p>News</p>
<p>Learn</p>
<p>Certification</p>
<p>Publications</p>
</div>
</div>
)
}
const FooterContent = () => {
return (
<div className="bg-muted text-foreground flex h-full w-full flex-col justify-between px-12 py-8">
<div>
<Nav />
</div>
<div className="flex items-end justify-between">
<h1 className="mt-10 text-[14vw] leading-[0.8]">Sticky Footer</h1>
<p>©copyright</p>
</div>
</div>
)
}
const Intro = () => {
return (
<div className="flex h-screen items-center justify-center text-[2vw]">
<h2 className="text-foreground max-w-[45%] text-center leading-none">
This is an example of a sticky footer made with CSS. Scroll down to see
the footer reveal effect.
</h2>
</div>
)
}
export function StickyFooterDemo() {
return (
<main>
<Intro />
<StickyRevealFooter height={800}>
<FooterContent />
</StickyRevealFooter>
</main>
)
}
Installation
pnpm dlx pitsi@latest add sticky-footer
Usage
import { StickyFooter } from "@/components/animations/sticky-footer"