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

Changelog

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