sticky-and-fixed-elements

Featured

Sticky and fixed positioning keeps critical UI persistent as the user scrolls — headers at the top, toolbars at the bottom on mobile. Use deliberately: too many fixed layers create visual noise and reduce content area. Use when designing navigation headers, bottom toolbars, floating action buttons, or table column headers.

AI & Automation 61 stars 10 forks Updated today MIT

Install

View on GitHub

Quality Score: 88/100

Stars 20%
60
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Sticky and Fixed Elements ## position: fixed vs position: sticky | Property | Behaviour | Use for | |---|---|---| | `position: fixed` | Removed from document flow. Always stays at the same viewport position regardless of scroll or parent. | Global navigation header, bottom toolbar, floating action button | | `position: sticky` | Stays in document flow until it hits its scroll threshold, then locks in place. Returns to flow when parent scrolls past. | Table column headers, section headings in a long list, in-page toolbars within a scroll container | **Prefer `sticky` over `fixed`** when the element belongs to a specific section or scroll context. Fixed elements sit above everything and affect the entire viewport — use them only for truly global UI. ## Top — Navigation Header The global navigation header is the most common fixed element. It should: - Remain visible at all times so the user can always navigate away - Be as thin as possible to maximise content area — 48–64px is a common range - Have a background and shadow so content scrolling beneath it does not bleed through - On scroll, a subtle shadow (`--shadow-sm`) signals that content is behind it ```css .site-header { position: fixed; top: 0; left: 0; right: 0; height: var(--header-height); background: var(--color-surface); box-shadow: var(--shadow-sm); z-index: var(--z-header); } ``` Compensate for the fixed header with matching top padding on the page body: ```css body { padding-top: var(--head...

Details

Author
dembrandt
Repository
dembrandt/dembrandt-skills
Created
5 months ago
Last Updated
today
Language
JavaScript
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category

Web & Frontend Listed

web-layout

Use when building page structure, spacing, grids, dashboards, app shells, landing composition, responsive layout, scroll ownership, or visual hierarchy. Decides viewport-locked vs document-scroll frames and loads surface recipes for landing/dashboard/shell. Distilled from ui-craft, impeccable, taste-skill, shadcn-layouts, interface-design.

1 Updated today
bo-516
Web & Frontend Listed

scroll-cinema

Build scroll-driven "scroll-cinema" websites where scrolling scrubs a camera path instead of translating a document — pinned full-viewport stages, aperture/iris opens, continuous dolly moves, 3D card entries, stacked panels that dim as the next slides over, parallax copy, and masked staggered text reveals. Pure vanilla JS + CSS custom properties, no GSAP/ScrollTrigger/Lenis/Locomotive/Framer. Use this whenever someone wants a "premium agency site", a cinematic or immersive landing page, a scroll-triggered or scroll-scrubbed animation, a pinned/sticky section that animates as you scroll, a hero that transforms on scroll, an Awwwards-style or "expensive-looking" site, a scrollytelling piece, or references a site/reel whose scrolling animation they want reproduced. Also use it when someone asks whether a particular scroll animation is buildable, or wants an existing scroll effect debugged (janky scrubbing, sticky not sticking, animation stuck at its start state).

1 Updated 1 months ago
Dhyey2907
Web & Frontend Listed

sub-pixel-inertia-scroll

Give deep-scroll editorial pages and presentation layouts a weighted, "velvety" scroll feel — parallax planes drifting at reduced velocity factors (0.3 background / 1.0 foreground), scroll-cued arrivals with a heavy-tailed rest curve (cubic-bezier(0.1, 0.9, 0.2, 1), 800ms+), lerp-smoothed decorative layers, gentle scroll-snap decks — all on top of native scrolling, never replacing it. Use this whenever the user asks for parallax, "smooth scroll", "scroll animations", "reveal on scroll", "cinematic scrolling", "inertia", "Lenis/Locomotive-style" scrolling, watermark/background type that moves, a scroll-snap presentation, or says the page "feels flat/jerky when scrolling" — and whenever reviewing code that hijacks wheel events or moves the whole page with transforms.

2 Updated 1 weeks ago
fernandokylas