Sticky Block for Gutenberg is a container block that sticks to the top or bottom of the page once the visitor scrolls past it. Drop any blocks inside — a navigation menu, a call-to-action, a contact button, a sidebar widget — and they will follow the reader down the page.
Unlike CSS position: sticky (which only works within its parent scroll container), Sticky Block for Gutenberg uses position: fixed with intelligent scroll detection, so it works reliably in any layout.
Key Features
- Multiple sticky blocks per page — place as many sticky blocks as you need, each with its own settings.
- Container block — nest any Gutenberg blocks inside: navigation, buttons, headings, images, widgets.
- Top or bottom sticky — choose whether the block locks to the top or bottom of the viewport. Cookie bars, chat widgets, and floating CTAs belong at the bottom.
- Show only after scrolling — hide the block entirely at page load and reveal it only after the visitor scrolls past the trigger point. Pairs naturally with an entry transition for a smooth appear effect.
- Top offset — set how many pixels of space to leave between the sticky block and the top of the viewport.
- Admin toolbar aware — automatically shifts down for logged-in users who have the WordPress admin bar visible.
- Z-index control — fine-tune stacking order so the sticky block always sits above (or below) other elements.
- Scroll direction mode — choose “Always sticky” or “Only while scrolling up” (the pattern used by modern sticky headers that appear on the way back up).
- Stop before an element — un-stick the block before it overlaps a footer or another landmark, using a CSS selector (e.g.
#footer).
- Disable on mobile — turn off sticky behaviour below a configurable viewport breakpoint (default 768 px).
- Disable on desktop — turn off sticky behaviour above a configurable viewport breakpoint. Useful for elements that should only float on smaller screens.
- Sticky-state background color — set a background color that only appears while the block is stuck, e.g. a solid white behind a transparent nav.
- Sticky-state text color — change the text color when sticky, so a transparent header with light text can switch to dark text on a white background.
- Sticky-state shadow — add a drop shadow (Small / Medium / Large) that appears only when the block is in sticky position.
- Sticky-state padding (all sides) — control top, bottom, left, and right padding independently, applied only while the block is stuck.
- Sticky-state border — add a Solid or Dashed border with custom width and color that appears only in the sticky state.
- Full width when sticky — instantly expand the block to span the full viewport width the moment it becomes sticky, ideal for navigation bars.
- Entry & exit transition — animate the block smoothly in and out of the sticky state with Fade, Slide down, or Fade + Slide, with a configurable duration.
- Custom class when sticky — add your own CSS classes to the block when it becomes sticky, for advanced theme integration.
- Block transforms — convert any Group block into a Sticky Block (and back) directly in the editor, without rebuilding.
- Accessibility — set an
aria-label on the sticky wrapper to give screen reader users useful context.
- Zero dependencies — no jQuery. The frontend script is plain JavaScript, under 4 KB minified.
How to use
- In the block editor, search for Sticky Block and insert it anywhere on your page.
- Add blocks inside it — a Navigation block, a Button, a Group, anything you like.
- Open the block settings panel on the right and adjust offset, z-index, scroll behaviour, and sticky-state styles.
- Preview your page and scroll — the block will stick to the top (or bottom) of the viewport.