Title: Varsby
Author: Steven
Published: <strong>July 19, 2026</strong>
Last modified: July 19, 2026

---

Search plugins

![](https://ps.w.org/varsby/assets/banner-772x250.png?rev=3613565)

![](https://ps.w.org/varsby/assets/icon-256x256.png?rev=3613565)

# Varsby

 By [Steven](https://profiles.wordpress.org/mxaxm/)

[Download](https://downloads.wordpress.org/plugin/varsby.1.1.8.zip)

 * [Details](https://wordpress.org/plugins/varsby/#description)
 * [Reviews](https://wordpress.org/plugins/varsby/#reviews)
 *  [Installation](https://wordpress.org/plugins/varsby/#installation)
 * [Development](https://wordpress.org/plugins/varsby/#developers)

 [Support](https://wordpress.org/support/plugin/varsby/)

## Description

Varsby lets you display a fully customizable notification bar at the top of your
site—ideal for announcements, promotions or urgent alerts. Features include:

 * Message text with basic HTML support (`<strong>`, `<em>`, `<a>`).
 * Optional call-to-action button with its own text, link, colours and “open in 
   new tab” option.
 * Background, text and button color pickers, plus an adjustable font size.
 * Position the bar at the top or bottom, sticky (stays visible) or static (scrolls
   away).
 * Show site-wide, on the front page only, or everywhere except the front page.
 * Show on desktop, mobile, or both.
 * Toggle visibility for logged-in users.
 * Visitors can dismiss the bar — it then stays hidden for a duration you choose(
   1 to 365 days, 1 day by default).
 * Lightweight: only enqueues assets when needed.

Whether you need a sticky notification bar, a promo or sale banner, a floating call-
to-action bar, or a simple header announcement bar, Varsby stays lightweight and
only loads its assets when the bar is actually shown.

## Screenshots

[⌊Admin settings – configure your message, button, link and live preview.⌉⌊Admin
settings – configure your message, button, link and live preview.⌉[

**Admin settings** – configure your message, button, link and live preview.

[⌊Colour presets and display options – one-click colour presets with a built-in 
WCAG AA contrast checker, plus position, behaviour and device toggles.⌉⌊Colour presets
and display options – one-click colour presets with a built-in WCAG AA contrast 
checker, plus position, behaviour and device toggles.⌉[

**Colour presets and display options** – one-click colour presets with a built-in
WCAG AA contrast checker, plus position, behaviour and device toggles.

[⌊Frontend example – a blue alert bar with a call-to-action button at the top of
your site.⌉⌊Frontend example – a blue alert bar with a call-to-action button at 
the top of your site.⌉[

**Frontend example** – a blue alert bar with a call-to-action button at the top 
of your site.

## Installation

 1. In your WordPress dashboard, go to **Plugins**  **Add New**.
 2. Search for **Varsby**.
 3. Click **Install Now**, then **Activate**.
 4. Go to **Settings**  **Varsby** to configure your message, button, colours and display
    options.

## FAQ

### Can I include HTML in my alert message?

Yes, you can use basic HTML tags like `<strong>`, `<em>`, and `<a>`.

### How do I add a button?

On the settings page, fill in **Button text** and **Button link** in the Content
card. Leave the button text blank to hide the button. You can style it with the 
button colour pickers in the Appearance card.

### Can I show the bar at the bottom of the page?

Yes. In the Display card, set **Position** to _Bottom_. You can also choose **Behaviour**:
_Sticky_ keeps the bar visible while scrolling, while _Static_ lets it scroll away
with the page.

### How do I show the bar only on the homepage?

In the Display card, set **Show on pages** to _Front page only_.

### How do I disable the bar for logged-in users?

On the settings page, turn off the **Show the bar to users who are logged in** toggle
and save.

### How long does the bar stay hidden after a visitor dismisses it?

As long as you like. In the Display card, set **Stay dismissed for (days)** to any
value from 1 to 365 (1 day by default). Dismissal is remembered in the visitor’s
browser, so it works with full-page caches and CDNs.

### Will it slow down my site?

No—scripts and styles are only loaded on the front end when the bar is enabled.

### Does it work with the block editor / Gutenberg?

Yes. Varsby is independent of the block editor—it doesn’t add any blocks, and displays
the bar site-wide via a separate settings page, so it works the same whether your
site uses Gutenberg, the Classic Editor, or a page builder.

### Is there a Pro version?

Not yet. Varsby is free and fully usable as-is—one bar, done well. A Pro version
with extra features is being considered for those who need more.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Varsby” is open source software. The following people have contributed to this 
plugin.

Contributors

 *   [ Steven ](https://profiles.wordpress.org/mxaxm/)

[Translate “Varsby” into your language.](https://translate.wordpress.org/projects/wp-plugins/varsby)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/varsby/), check out
the [SVN repository](https://plugins.svn.wordpress.org/varsby/), or subscribe to
the [development log](https://plugins.trac.wordpress.org/log/varsby/) by [RSS](https://plugins.trac.wordpress.org/log/varsby/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.8

 * Added a configurable dismissal duration: choose how many days a dismissed bar
   stays hidden (1 to 365, 1 day by default) under **Settings**  **Varsby**. Previously
   this was fixed at 24 hours.
 * Hardened the dismiss button’s keyboard focus ring so it stays visible on themes
   that remove focus outlines globally.

#### 1.1.7

 * Fixed a fixed top bar being hidden behind a theme’s own fixed or sticky header(
   such as Divi’s). The bar shared the same position at the top of the page, and
   the header — sitting at a higher stacking order — painted over it. The bar now
   pushes such a header down by its own height so it sits above it, and layers itself
   above the header as a safeguard. Themes with a normal-flow header are unaffected.

#### 1.1.6

 * Removed the manual `load_plugin_textdomain()` call. WordPress automatically loads
   translations for plugins hosted on WordPress.org since version 4.6, so the call
   was redundant and is flagged as discouraged by Plugin Check. No effect on translations.

#### 1.1.5

 * Fixed a fixed bottom bar still overlapping the footer on some full-height “sticky
   footer” themes (such as Neve) where the page wrapper has `overflow: hidden` and
   a `border-box` `min-height`, which absorbs the padding added in 1.1.4. The bar
   now checks whether padding the wrapper actually freed space below the footer 
   and, if not, spaces the scroll container itself instead.
 * Admin: choosing a static bottom bar now shows a short heads-up that, because 
   it renders after the page content, it can sit below the fold on short pages —
   with a nudge to use “Sticky” for an always-visible bar.

#### 1.1.4

 * Fixed a fixed bottom bar overlapping the footer on themes with a full-height “
   sticky footer” layout (such as Astra). These themes pin the footer to the viewport
   bottom, so the bar is now cleared by padding that wrapper directly rather than
   by a page margin, which those layouts ignore.

#### 1.1.3

 * Fixed a doubled gap that appeared above (or below) the page content on themes
   that set `overflow` other than `visible` on the `body` element, such as Astra.
   The offset that pushes content clear of a fixed bar is now applied only to the
   root `html` element, so it no longer stacks.

#### 1.1.2

 * Added a non-intrusive admin notice inviting a WordPress.org review, shown after
   the settings have been saved a few times over a few days — with “Maybe later”(
   snoozes for 60 days) and “No thanks” options.
 * CSS selectors for the bar and its device-targeting rules are now attribute-based
   instead of ID-based, so multiple bar instances can render correctly on the same
   page.
 * Improved accessibility of the bar landmark: the wrapper now carries a named region
   role and a live region so screen readers can navigate to it and catch dynamic
   changes.
 * Replaced the dismiss span with a real `<button>` element so it is keyboard-accessible
   without extra scripting, and added a visible focus ring.
 * Focus now moves to the main content area after the bar is dismissed, so keyboard
   users are not left without a clear position on the page.
 * CTA button: screen readers are now told when the button opens in a new tab.
 * Admin: colour pickers are now grouped into labelled “Bar colours” and “Button
   colours” pairs, each with an inline contrast indicator showing a live sample,
   ratio, and WCAG AA pass/fail rating.
 * Admin: help text below the message field and behaviour option is now programmatically
   linked to its input, so screen readers read it when the field is focused.
 * Admin: the “Open in new tab” and “Show to logged-in users” toggles are now properly
   labelled for screen readers.
 * Added a `prefers-reduced-motion` guard so any future bar transitions are automatically
   suppressed for users who have requested reduced motion in their OS.
 * Admin: added a `prefers-contrast: more` stylesheet so labels, borders, and help
   text are easier to read for users who have enabled high contrast in their OS.
 * Admin: fixed the message field help hint displaying raw HTML tag names instead
   of the intended formatted example.

#### 1.1.1

 * Added a live status strip below the settings preview that shows whether the bar
   is currently enabled or disabled.
 * Added a “Saves every setting on this page” note below the Save button.
 * Internal: refactored bar data into a dedicated storage layer and modelled the
   bar as a proper object, laying the groundwork for multiple bars and Pro features.

#### 1.1.0

 * Added an optional call-to-action button with its own text, link, colours and “
   open in new tab” option.
 * Added top or bottom positioning and a sticky-or-static behaviour choice.
 * Added an adjustable message font size.
 * Added simple page targeting: all pages, front page only, or all pages except 
   the front page.
 * Redesigned the settings screen with a full-width live preview and a more robust
   two-column layout.
 * Fixed the desktop/mobile “Show on” option, which previously had no effect on 
   the front end.
 * Improved accessibility: the dismiss button is now keyboard-operable.
 * Added the `varsby3u5c49_should_display` filter so add-ons can extend the visibility
   logic.

#### 1.0.3

 * Redesigned the admin settings page: grouped Content, Appearance and Display options
   into cards with a sticky live preview.
 * Added one-click colour presets (Info, Success, Warning, Urgent).
 * Replaced the “Show on” dropdown with an accessible segmented control.
 * Added a live character counter to the message field.
 * Fixed admin toggle styling that was not being loaded on the settings page.
 * Removed the redundant “Show Admin Preview?” option; the preview is always shown.

#### 1.0.2

 * Added default color picker values (#1e73be background, #fff text) on first load.
 * Improved admin preview: centered text, removed preview close button, matched 
   preview text size and weight.
 * Enhanced preview script to apply styles on load and target link color correctly.
 * Fixed front-end positioning to support older WP versions, ensuring the notification
   bar stacks correctly with the admin bar across themes.
 * Fixed invisible close button (× now visible via CSS).
 * Added missing admin preview toggle field to settings page.
 * Added ARIA label to close button for accessibility.
 * Added SameSite=Lax attribute to dismissal cookie.
 * Removed redundant setTimeout in frontend script.
 * Fixed duplicate event bindings in admin preview script.

#### 1.0.1

 * Changed `plugins_loaded` hook for textdomain loading.
 * Added placeholders on input fields.
 * JS console messages now localizable via `wp.i18n`.

#### 1.0.0

 * Initial release of Varsby.

## Meta

 *  Version **1.1.8**
 *  Last updated **3 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [alert bar](https://wordpress.org/plugins/tags/alert-bar/)[announcement bar](https://wordpress.org/plugins/tags/announcement-bar/)
   [cta bar](https://wordpress.org/plugins/tags/cta-bar/)[notification bar](https://wordpress.org/plugins/tags/notification-bar/)
   [sticky bar](https://wordpress.org/plugins/tags/sticky-bar/)
 *  [Advanced View](https://wordpress.org/plugins/varsby/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/varsby/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/varsby/reviews/)

## Contributors

 *   [ Steven ](https://profiles.wordpress.org/mxaxm/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/varsby/)