Plugin Pulse
← Pulse

Blocks CSS: CSS Editor for Gutenberg Blocks

by Hardeep Asrani · Blocks

Also makes 4 other plugins · 100.1K+ installs across the portfolio →

Blocks CSS allows you add custom CSS to your Blocks straight from the Block Editor (Gutenberg).

How scoring works →
89 Health · A
Maintenance 100/100
Rating quality 90/100
Support 70/100

89 health vs 67 average across 1,682 Blocks plugins

Directory ranking optimization

How it's scored →

How well this listing is tuned to rank in WordPress.org search, on the factors an owner controls. Not popularity, optimization.

97 / 100

Excellent listing optimization

Well tuned across the board

Update recency 100/100
WP compatibility 100/100
Rating quality 87/100
Listing tuning 100/100
Support resolution 100/100

Daily downloads

Since 2022-10-05 · 1,424 days · wp.org + Plugin Pulse archive

-15% vs prior 30d
99Downloads · Aug 26

30-day downloads

Rolling 30-day volume · peaks are release surges

4.8K

now · peak 10.6K

4.8K30d downloads · Aug 26

Directory rank vs rivals

wp.org popularity rank over time · higher is better · when a rival's line climbs above yours, they've overtaken you

Blocks CSS: CSS Edit · #3240 you Classic Editor · #4 Advanced Editor Tool · #30 Starter Templates · #32

Rating trend

Star average over time · dips mark rough releases

4.9Stars · Aug 26

Update activity

How busy the existing users are, measured as downloads in the last 30 days for every 1,000 active sites. A spike means a new release everyone's pulling; a long, slow decline means an aging user base that updates less.

963per 1k installs · Aug 26

Release cadence

Actively maintained
from wp.org release tags

How often this plugin actually ships. A steady rhythm is the maintenance signal a single "last updated" date can't show.

11

releases in the last 12 months

2mo ago

latest release · v3.2.0

95

tagged releases on record

Recent releases

3.2.0 · 2mo ago3.1.11 · 3mo ago3.1.10 · 3mo ago3.1.9 · 4mo ago3.1.8 · 5mo ago3.1.7 · 5mo ago3.1.6 · 5mo ago3.1.5 · 6mo ago3.1.4 · 9mo ago3.1.3 · 10mo ago3.1.2 · 12mo ago3.1.1 · 1.0y ago3.1.0 · 1.2y ago3.0.12 · 1.3y ago

What its installed base runs

via wordpress.org

Share of active installs on each version of this plugin · 34% run the current release. Green is the current release; a big slice on older versions is a user base that has stopped updating.

v3.1 42%
v3.2 34%
v3.0 11%
Older / other versions 12%

Estimated active installs

The public count shows “5K+”. Our estimate pins where the real number sits.

tracked estimate
5K–6K ≈5.9K

Refined from the date this plugin crossed into its current band.

Install history · since 2019-08-22 · 1,432 observations

5KInstalls · Aug 26

Estimated value

What this plugin might earn a year, and what it might sell for. Modeled from public signals; we don't see anyone's books.

Est. annual revenue

N/A

Est. acquisition value

N/A

No paid tier is visible, so we don't put a figure on revenue or sale value: that would be guessing. The install base is a real asset to an acquirer, just not one public data lets us price. A small install base leaves thin data to model from. A declining trend compresses what a buyer would pay.

Details

Version
3.2.2
Last updated
16d ago
Added
2019-02-14 · 7 yrs old
Requires WP
6.6
Tested up to
7.0.4
Requires PHP
5.4

Recent reviews

All reviews on wp.org ↗
  1. maltmann
    9mo ago

    Works like a charm on any of my recent WP projects. [EDIT]I need to change my review.On some setups, I get two CSS editors shown in the “Custom CSS” attribute panel, and only contents of the second instance are getting saved.Problem:Two CodeMirror editors are displayed in the Custom CSS panel of the Blocks CSS plugin instead of one. Both editors are located in the same container. Assumed Root Cause:WordPress enables React StrictMode by default in the Block Editor. React StrictMode runs useEffect hooks twice to detect potential side effects. Analysis:The Blocks CSS plugin initializes CodeMirror in a useEffect hook.Since this useEffect doesn’t have a cleanup function that checks whether CodeMirror is already initialized, wp.CodeMirror() is called again on every mount cycle. With StrictMode enabled, this means: twice on the same DOM element. Probable Solution:The useEffect hook should implement a cleanup function that prevents CodeMirror from being initialized multiple times on the same element.Side Notes:This only happens in some of my setups. I couldn’t figure out any possibly conflicting theme, plugin or code snippet. So I assume it might be something like a timing issue. Conclusion:I won’t change the 5-star rating, because despite of this problem the plugin does its job. And I know how to handle this issue by a simple CSS rule to hide all Block CSS CodeMirrors except the last one:#o-css-editor .CodeMirror:not(:last-child) { display: none;} This topic was modified 5 months, 1 week ago by maltmann. Reason: Revision after issues in some setups

    Read on wp.org ↗
  2. Сергей
    9mo ago

    Отличный плагин

    Read on wp.org ↗
  3. shooter604
    10mo ago

    Очень классные возможности! Пользуюсь постоянно!

    Read on wp.org ↗
  4. someguy42
    2.1y ago

    “Essential, Useful Tool, Completes the Block Editor, Should be part of the core,” The one thing they don’t mention is how quick and genuinely concerned the support is.

    Read on wp.org ↗
  5. Andreslav
    2.9y ago

    Does exactly what I need it to do.

    Read on wp.org ↗
  6. Masud Rana
    2.9y ago

    Can’t think of Block Editor without this. Tiny powerful thing. Only thing I hate in this plugin is the following line: $render_css = empty( $file_name ) || strpos( $file_name, 'post-v2' ) === false; This means if you deactivate Otter, your content might just break 🙁

    Read on wp.org ↗
  7. Ronald Huereca
    2.9y ago

    This is a great tool for what it does. The only confusing thing for me is that it says on .org that you have 11 blocks. I couldn’t spot any new ones after installing this plugin, nor found any settings.

    Read on wp.org ↗
  8. Sunny
    3.2y ago

    Essential for one off css. Simple and works.

    Read on wp.org ↗

Behavioral tests

via WP Hive

Automated install-time checks, tested on PHP 8.1.12 · WP 7.0

Low memory footprint
Low page-speed impact
Runs on latest PHP + WP
No PHP errors
No JS errors
Activates cleanly
No resource errors
No external HTTP errors
Optimized database use
Frequently updated

Languages

via translate.wordpress.org

Translated into 12 languages, 7 at 90% or more

Chinese (Taiwan) 100%
Dutch 100%
Dutch (Belgium) 100%
German 100%
German (Formal) 100%
German (Switzerland) 100%
German (Switzerland) Informal 100%
Russian 76%
Swedish 70%
Spanish (Spain) 64%
Hebrew 23%
French (Canada) 17%

Growth timeline

Install-tier crossings we have observed, and how long each tier took to outgrow

  1. 2025-04-01 4K+ → 5K+ up after 1 days in tier
  2. 2025-03-31 5K+ → 4K+ down after 5 days in tier
  3. 2025-03-26 4K+ → 5K+ up after 1 days in tier
  4. 2025-03-25 5K+ → 4K+ down after 3 days in tier
  5. 2025-03-22 4K+ → 5K+ up after 1 days in tier
  6. 2025-03-21 5K+ → 4K+ down after 1 days in tier
  7. 2025-03-20 4K+ → 5K+ up after 2 days in tier
  8. 2025-03-18 5K+ → 4K+ down after 2 days in tier

Competes with

The plugins that solve the same job, ranked by shared tags then reach, closest match first. The letter on the right is each plugin's health grade (A best, F worst).

Compare head to head →

Embed this report card

Drop a live Pulse card for Blocks CSS: CSS Editor for Gutenberg Blocks into a readme, a review or a deck. It updates itself.

<iframe src="https://plugins.wpmayor.com/embed/blocks-css" width="480" height="300" style="border:0" loading="lazy" title="Blocks CSS: CSS Editor for Gutenberg Blocks — Plugin Pulse"></iframe>
Preview card ↗

Blocks CSS: CSS Editor for Gutenberg Blocks: 5K+ active installs, 4.9★ (25 reviews). Plugin Pulse (WP Mayor), as of 2026-08-28. https://plugins.wpmayor.com/plugin/blocks-css