BACK TO DIRECTORY

Pattern CSS – The CSS Editor For Blocks

by Kevin Batdorf

5.0
(8 ratings)

The missing inline block CSS editor for the Gutenberg editor. Very powerful with synced patterns as well. And it pairs well with global styles.

This plugin is perfect for users looking to add CSS for blocks without needing to create a child theme, or use a bloated plugin. Client safe too. CSS won’t leak outside of the block, and only valid block CSS is persisted.

Star it on GitHub
Follow me on Twitter @kevinbatdorf

How to

  • Every block will have a new “Pattern CSS” settings panel
  • Open it and add any CSS. It will be scoped to the block
  • To target the block directly, you must use the [block] selector
  • To target any element inside the block, use the normal CSS selector
  • Use !important to override your theme styles (use sparingly)

Global Editor

  • Access global styles under the options menu (three dots) in the top right corner of the editor
  • Additionaly, you can open from the Pattern CSS block editor controls

Features

  • Powered by WebAssembly for fast and secure CSS parsing
  • Smart loading. Only loads the CSS when the block is present
  • Styles persist when changing themes
  • Scopes styles to the block so that parent/sibling blocks are not affected
  • It’s fast
  • CSS is minified and optimized
  • It’s safe. Invalid, non-spec CSS is never persisted
  • Supports reusable (synced or not-synced) patterns
  • See changes on the page as you make them
  • Combines adjacent rules (to decrease size)
  • Minifies colors and math functions to simplify according to spec
  • Supports CSS nesting

Basic Example

/* Target the block directly */
[block] {
  background: antiquewhite;
  padding: 2rem;
}
/* Target any inner elements */
a {
  text-decoration-color: burlywood;
  text-decoration-thickness: 2px;
  text-decoration-style: solid !important;
}
a:hover {
  text-decoration-color: darkgoldenrod;
}

/* Output: */
.pcss-a1b7b016{background:#faebd7;padding:2rem}.pcss-a1b7b016 a{text-decoration-color:#deb887;text-decoration-thickness:2px;text-decoration-style:solid!important}.pcss-a1b7b016 a:hover{text-decoration-color:#b8860b}

Supports Media Queries

@media (prefers-color-scheme: dark) {
  [block] {
    border-color: blue;
  }
}

/* Output: */
@media (prefers-color-scheme:dark){.pcss-cddaa023{border-color:#00f}}

Combines Rules

[block] {
  color: red;
}
.bar {
  color: red;
}

/* Output: */
.pcss-3aa0f0fc,.pcss-3aa0f0fc .bar{color:red}

Fixes redundant properties

[block] {
  padding-top: 5px;
  padding-left: 50px;
  padding-bottom: 15px;
  padding-right: 5px;
}

/* Output: */
.pcss-3aa0f0fc{padding:5px 5px 15px 50px}

Supports CSS nesting

[block] {
  padding: 1rem;
  a {
    color: red;
  }
  background: white;
  /* Including media queries */
  @media (prefers-color-scheme: dark) {
    background: black;
    color:white;
  }
}

/* Output: */
.pcss-f526bb2d{background:#fff;padding:1rem;& a{color:red}@media (prefers-color-scheme:dark){&{color:#fff;background:#000}}}

Check browser support for CSS nesting

Screenshots

Add styles not available in the editor (supoprts nesting)

Add styles not available in the editor (supoprts nesting)

Add animation using the global editor

Add animation using the global editor

Will warn you if your CSS is invalid

Will warn you if your CSS is invalid

Works with reusable and synced patterns

Works with reusable and synced patterns

Plugin Details

Active Installs
100
Total Downloads
5,413
Version
1.5.7
Requires WP
6.7
Requires PHP
7.0
Tested Up To
7.1
Added
2023-11-04
Last Updated
2026-08-15 12:16pm GMT

Ratings

5
8
4
0
3
0
2
0
1
0