Title: PFT – Widget Spacing Control
Author: piftoworks
Published: <strong>June 9, 2026</strong>
Last modified: June 9, 2026

---

Search plugins

![](https://ps.w.org/pft-widget-spacing-control/assets/banner-772x250.png?rev=3565516)

![](https://ps.w.org/pft-widget-spacing-control/assets/icon-256x256.png?rev=3565516)

# PFT – Widget Spacing Control

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

[Download](https://downloads.wordpress.org/plugin/pft-widget-spacing-control.1.2.3.zip)

 * [Details](https://wordpress.org/plugins/pft-widget-spacing-control/#description)
 * [Reviews](https://wordpress.org/plugins/pft-widget-spacing-control/#reviews)
 *  [Installation](https://wordpress.org/plugins/pft-widget-spacing-control/#installation)
 * [Development](https://wordpress.org/plugins/pft-widget-spacing-control/#developers)

 [Support](https://wordpress.org/support/plugin/pft-widget-spacing-control/)

## Description

PFT – Widget Spacing Control adds margin-top / margin-bottom inputs (desktop and
mobile, separately) to every widget’s settings form. Negative values are supported,
so you can both expand and tighten the space between widgets without adding empty
spacer widgets.

#### Features

 * Per-widget top and bottom margin (px) for desktop and mobile
 * Negative values supported (e.g. `-10` to tighten the gap)
 * Empty value falls back to the theme default
 * No settings page — inputs appear directly inside each widget’s form
 * Works with any theme (sidebar / widget area)
 * No external CSS file. No JavaScript. Single PHP file
 * No tracking. No external requests

#### How priority is guaranteed

To make sure your margin settings always win over theme and other plugin CSS:

 1. A triple-ID selector (`#id#id#id`) raises specificity to 0-3-0-0, beating typical
    theme selectors.
 2. `!important` is added on every declaration as a second line of defense.
 3. Styles are output via `wp_footer` at priority 9999, so they load after all other
    styles.

Media queries are used to switch between desktop and mobile values cleanly (inline
styles are intentionally avoided because inline `!important` would override `@media`
rules).

#### Responsive breakpoints

 * Desktop: 769px and above
 * Mobile: 768px and below

### Privacy

This plugin does not collect, store, or transmit any personal data. It only stores
numeric margin values inside each widget’s settings.

## Installation

 1. Upload the `widget-spacing-control` folder to `/wp-content/plugins/`, or install
    via the Plugins screen in WordPress.
 2. Activate the plugin through the Plugins screen.
 3. Go to **Appearance  Widgets**. Each widget now has a “余白設定 (Spacing)” section
    at the bottom of its form.
 4. Enter values (positive or negative integers) for PC and/or mobile, then save the
    widget.

## FAQ

### Does it work with block-based widgets / Full Site Editing?

It targets the classic widget system that uses `in_widget_form` and `dynamic_sidebar_params`.
Block widgets in FSE themes are not the target use case.

### Will it conflict with my theme’s CSS?

No. The plugin uses inline styles, a high-specificity selector, and late-loaded `
<style>` output, so it overrides theme CSS in all common cases.

### Does it store any personal data?

No. The plugin only saves margin values (integers) in the widget instance options.
No personal data is collected or transmitted.

### Where are the settings saved?

Inside each widget’s instance settings (under WordPress’s standard `widget_*` options),
with keys `wsc_mt_pc`, `wsc_mt_sp`, `wsc_mb_pc`, `wsc_mb_sp`.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“PFT – Widget Spacing Control” is open source software. The following people have
contributed to this plugin.

Contributors

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

[Translate “PFT – Widget Spacing Control” into your language.](https://translate.wordpress.org/projects/wp-plugins/pft-widget-spacing-control)

### Interested in development?

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

## Changelog

#### 1.2.3

 * i18n: all widget form labels are now translatable via the `pft-widget-spacing-
   control` text domain. English source strings; translations welcome at https://
   translate.wordpress.org/projects/wp-plugins/pft-widget-spacing-control/

#### 1.2.2

 * Refactor: CSS is now registered with `wp_register_style()` / `wp_enqueue_style()`
   and attached via `wp_add_inline_style()` (instead of being echoed directly).
 * Refactor: CSS is precomputed during `wp_enqueue_scripts` by iterating widget 
   instances, eliminating the prior `wp_footer` echo and the global variable used
   to accumulate styles.
 * Naming: all plugin functions now use the `pftwsc_` prefix (Pifto Works WSC).
 * The `dynamic_sidebar_params` filter is now used only to inject `id="{widget_id}"`
   into widget HTML when the active theme does not provide one (so the precomputed
   selectors match).

#### 1.2.1

 * Fixed: mobile margin values were ignored because inline `!important` styles overrode`
   @media` rules. Inline style injection has been removed; styles are now applied
   exclusively via the `#id#id#id !important` selector inside `<style>`, so PC and
   mobile values work independently as intended.
 * Security: footer style output is now run through `esc_html()` to satisfy WordPress
   output-escaping standards.
 * Renamed plugin to “PFT – Widget Spacing Control” for clearer ownership.

#### 1.2.0

 * Added GPL license headers
 * Added `Requires at least` / `Tested up to` headers
 * Escaped widget form field IDs and names with `esc_attr()`

#### 1.1.0

 * Triple-ID selector with `!important` for stronger CSS specificity
 * Output styles via `wp_footer` at priority 9999

#### 1.0.0

 * Initial release

## Meta

 *  Version **1.2.3**
 *  Last updated **14 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [margin](https://wordpress.org/plugins/tags/margin/)[responsive](https://wordpress.org/plugins/tags/responsive/)
   [sidebar](https://wordpress.org/plugins/tags/sidebar/)[spacing](https://wordpress.org/plugins/tags/spacing/)
   [widget](https://wordpress.org/plugins/tags/widget/)
 *  [Advanced View](https://wordpress.org/plugins/pft-widget-spacing-control/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/pft-widget-spacing-control/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/pft-widget-spacing-control/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/pft-widget-spacing-control/)