Title: Add Admin CSS
Author: Scott Reilly
Published: <strong>December 5, 2011</strong>
Last modified: December 8, 2025

---

Search plugins

![](https://ps.w.org/add-admin-css/assets/banner-772x250.png?rev=832111)

![](https://ps.w.org/add-admin-css/assets/icon-128x128.png?rev=972877)

# Add Admin CSS

 By [Scott Reilly](https://profiles.wordpress.org/coffee2code/)

[Download](https://downloads.wordpress.org/plugin/add-admin-css.2.5.1.zip)

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

 [Support](https://wordpress.org/support/plugin/add-admin-css/)

## Description

Ever want to tweak the appearance of the WordPress admin pages by hiding stuff, 
moving stuff around, changing fonts, colors, sizes, etc? Any modification you may
want to do with CSS can easily be done via this plugin.

Using this plugin you’ll easily be able to define additional CSS (inline and/or 
files by URL) to be added to all administration pages. Hooks are provided to customize
the output of the CSS, the CSS files, and if/when the CSS should even be output (
see Hooks section).

Links: [Plugin Homepage](https://coffee2code.com/wp-plugins/add-admin-css/) | [Plugin Directory Page](https://wordpress.org/plugins/add-admin-css/)
| [GitHub](https://github.com/coffee2code/add-admin-css/) | [Author Homepage](https://coffee2code.com)

### Developer Documentation

Developer documentation can be found in [DEVELOPER-DOCS.md](https://github.com/coffee2code/add-admin-css/blob/master/DEVELOPER-DOCS.md).
That documentation covers the hooks provided by the plugin.

As an overview, these are the hooks provided by the plugin:

 * `c2c_add_admin_css` : Filter to customize the CSS that should be added directly
   to the admin page head.
 * `c2c_add_admin_css_files` : Filter to customize the list of CSS files to enqueue
   in the admin.
 * `c2c_add_admin_css_disable_css` : Filter to customize if the CSS defined via 
   this plugin should be output or not.

## Screenshots

 * [[
 * A screenshot of the plugin’s admin settings page.

## Installation

 1. Install via the built-in WordPress plugin installer. Or install the plugin code
    inside the plugins directory for your site (typically `/wp-content/plugins/`).
 2. Activate the plugin through the ‘Plugins’ admin menu in WordPress
 3. Go to “Appearance” -> “Admin CSS” and specify some CSS to be added into all admin
    pages. (You can also use the “Settings” link in the plugin’s entry on the admin“
    Plugins” page).

## FAQ

### Can I add CSS I defined via a file, or one that is hosted elsewhere?

Yes, via the “Admin CSS Files” input field on the plugin’s settings page.

### Can I limit what admin pages the CSS gets output on?

By default, the CSS is added for every admin page on the site and for every user.

One option, if you wish to only use CSS and you want to limit use of CSS to certain
admin pages, is to preface your selectors with admin page specific class(es) on 
the ‘body’ tag to ensure CSS only applies on certain admin pages. (e.g. `body.edit-
php h1 { color: purple; }`).

Otherwise, programmatically you have full control over that behavior via the `'c2c_add_admin_css_disable_css'`
filter (see Hooks section). You’d hook that filter, determine the context, and decide
if the CSS should be output or not. You could check what page is being loaded and/
or who is the current user.

### Can I limit what users the CSS applies to?

By default, the CSS is added for every admin page on the site and for every user.

Programmatically you have full control over that behavior via the `'c2c_add_admin_css_disable_css'`
filter (see Hooks section). You’d hook that filter, determine the context, and decide
if the CSS should be output or not. You could check who is the current user and/
or what page is being loaded.

There is currently no way to do this purely with CSS or through any other setting
provided by the plugin.

### How can I edit the plugin’s settings in the event I supplied CSS that prevents the admin pages from properly functioning or being seen?

It is certainly possible that you can put yourself in an unfortunate position by
supplying CSS that could hide critical parts of admin pages, making it seemingly
impossible to fix or revert your changes. Fortunately, there are a number of approaches
you can take to correct the problem.

The recommended approach is to visit the URL for the plugin’s settings page, but
appended with a special query parameter to disable the output of its CSS. The plugin’s
settings page would typically be at a URL like `https://example.com/wp-admin/themes.
php?page=add-admin-css%2Fadd-admin-css.php`. Append `&c2c-no-css=1` to that, so 
that the URL is `https://example.com/wp-admin/themes.php?page=add-admin-css%2Fadd-
admin-css.php&c2c-no-css=1` (obviously change example.com with the domain name for
your site).

There are other approaches you can use, though they require direct database or server
filesystem access:

 * Some browsers (such as Firefox, via View -> Page Style -> No Style) allow you
   to disable styles for sites loaded in that tab. Other browsers may also support
   such functionality natively or through an extension. Chrome has an extension 
   called [Web Developer](https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm?hl=en-US)
   that adds the functionality.
 * If you’re familiar with doing so and have an idea of what CSS style you added
   that is causing problems, you can use your browser’s developer tools to inspect
   the page, find the element in question, and disable the offending style.
 * In the site’s `wp-config.php` file, define a constant to disable output of the
   plugin-defined CSS: `define( 'C2C_ADD_ADMIN_CSS_DISABLED', true );`. You can 
   then visit the site’s admin. Just remember to remove that line after you’ve fixed
   the CSS (or at least change “true” to “false”). This is an alternative to the
   query parameter approach described above, though it persists while the constant
   remains defined. There will be an admin notice on the plugin’s setting page to
   alert you to the fact that the constant is defined and effectively disabling 
   the plugin from adding any CSS.
 * Presuming you know how to directly access the database: within the site’s database,
   find the row with the option_name field value of `c2c_add_admin_css` and delete
   that row. The settings you saved for the plugin will be deleted and it will be
   like you’ve installed the plugin for the first time.
 * If your server has WP-CLI installed, you can delete the plugin’s setting from
   the commandline: `wp option delete c2c_add_admin_css`

The initial reaction by some might be to remove the plugin from the server’s filesystem.
This will certainly disable the plugin and prevent the CSS you configured through
it from taking effect, restoring the access and functionality to the backend. However,
reinstalling the plugin will put you back into the original predicament because 
the plugin will use the previously-configured settings, which wouldn’t have changed.

### How do I disable syntax highlighting?

The plugin’s syntax highlighting of CSS (available as of WP 4.9) honors the built-
in setting for whether syntax highlighting should be enabled or not.

To disable syntax highlighting, go to your profile page. Next to “Syntax Highlighting”,
click the checkbox labeled “Disable syntax highlighting when editing code”. Note
that this checkbox disables syntax highlighting throughout the admin interface and
not just specifically for the plugin’s settings page.

### Does this plugin have unit tests?

Yes. The tests are not packaged in the release .zip file or included in plugins.
svn.wordpress.org, but can be found in the [plugin’s GitHub repository](https://github.com/coffee2code/add-admin-css/).

## Reviews

![](https://secure.gravatar.com/avatar/cd125a678353b5f0f632ab90417cc558f57ca360e175f45286ce794063f2a3f5?
s=60&d=retro&r=g)

### 󠀁[Very Nice Perk](https://wordpress.org/support/topic/very-nice-perk/)󠁿

 [ellencarnahan](https://profiles.wordpress.org/emcarnahan756/) September 14, 2025

I really like to customize my admin experience, and installed this plugin to distinguish
the icons when other plugin developers default to things like “post icon.” Seems
to lack support but that is how it goes with open source plugins. Many thanks when
it works 🙂

![](https://secure.gravatar.com/avatar/1e07f6208938a7e36c6d6b833b4a9cb70867c48f44201d40079a493cdc1485d8?
s=60&d=retro&r=g)

### 󠀁[AWESOME](https://wordpress.org/support/topic/awesome-9372/)󠁿

 [mikeecho](https://profiles.wordpress.org/mikeecho/) April 9, 2022

Awesome plugin, works fantastic Well done!

![](https://secure.gravatar.com/avatar/2bfbaf3cbd033ca1278b945bffdafa1cbe9af7c9bfe1a16b5e9e0c683cef0d1a?
s=60&d=retro&r=g)

### 󠀁[Working great !!!](https://wordpress.org/support/topic/working-great-307/)󠁿

 [ipchania](https://profiles.wordpress.org/ipchania/) April 8, 2022

Working great !!!

![](https://secure.gravatar.com/avatar/e2a4936dd231f2f25ebd92a17ef61a7daa90117a3d342b53deeff0d6912602e6?
s=60&d=retro&r=g)

### 󠀁[footer CSS code](https://wordpress.org/support/topic/footer-css-code/)󠁿

 [Jak](https://profiles.wordpress.org/123456jk/) November 7, 2021

Hi, I am a beginner and have no idea about CSS coding and wondered if someone can
help with providing the CSS code to replace the footer color of the website with
an image, thanks.

![](https://secure.gravatar.com/avatar/9f8f099065ceffe62bc40ed22f624d99fcc084ef2b9dc9b656923fe2f0899a11?
s=60&d=retro&r=g)

### 󠀁[Worked perfectly](https://wordpress.org/support/topic/worked-perfectly-285/)󠁿

 [Topher](https://profiles.wordpress.org/topher1kenobe/) June 12, 2021

This plugin did *exactly* what I wanted. A plugin had dropped some ad stuff into
the Publish box, but it had a good CSS class, so I just hid it. I really like that
the text field for holding the CSS is intelligent and does things like auto include
closing brackets, code coloring, etc.

![](https://secure.gravatar.com/avatar/055cd52f79c29f6696ca22def8e18ae353e826808127aa687781778d2f9b5775?
s=60&d=retro&r=g)

### 󠀁[This is a great plug-in.](https://wordpress.org/support/topic/this-is-a-great-plug-in-4/)󠁿

 [strettonbull](https://profiles.wordpress.org/strettonbull/) April 29, 2021

If you get fed up of all the nag screens from themes and plugins nagging you to “
Go Pro” etc, then this is a great plugin for adding css to hide them all. Really
easy to use.

 [ Read all 35 reviews ](https://wordpress.org/support/plugin/add-admin-css/reviews/)

## Contributors & Developers

“Add Admin CSS” is open source software. The following people have contributed to
this plugin.

Contributors

 *   [ Scott Reilly ](https://profiles.wordpress.org/coffee2code/)

“Add Admin CSS” has been translated into 3 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/add-admin-css/contributors)
for their contributions.

[Translate “Add Admin CSS” into your language.](https://translate.wordpress.org/projects/wp-plugins/add-admin-css)

### Interested in development?

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

## Changelog

#### 2.5.1 (2025-12-02)

Highlights:

A bugfix release to address the overzealous encoding of some valid CSS characters
introduced in v2.5.

Details:

 * Fix: Escape only the minimum of characters so that valid CSS characters don’t
   get escaped. Props kevinvanrijn.
 * Change: Note compatibility through WP 6.9+

#### 2.5 (2025-03-29)

Highlights:

This recommended long overdue release adds a new filter for fine-grained control
of whether CSS should be output or not, updates the plugin framework to the most
current version (for hardening and miscellaneous improvements), prevents translations
from containing unintended markup, notes compatibility through WP 6.8+ and PHP 8.3
+, drops compatibility with versions of WP older than 5.5, adds DEVELOPER-DOCS.md,
and removes unit tests from release packaging, and more.

Details:

 * New: Add `c2c_add_admin_css_disable_css` filter to override if CSS defined via
   this plugin should be output or not
 * New: Add `is_recovery_mode_enabled()` to determine is recovery mode is enabled
 * Change: Only support query parameter method of enabling recovery mode if current
   user can configure plugin settings
 * Change: Display the files setting help text as a list rather than a paragraph
 * Change: Check specifically if recovery mode is enabled before displaying admin
   notice that recovery mode is enabled
 * Change: Explicitly state the plugin name in the recovery mode admin notice to
   avoid ambiguity
 * Change: Switch use of `parse_url()` to `wp_parse_url()`
 * Change: Escape output of all translated strings
 * Change: Use instance method invocation instead of a deprecated static method 
   invocation
 * Change: Convert ‘input_attributes’ value of config items from a string to an 
   array
 * Change: Add translator comments for a pair of strings with placeholders that 
   didn’t have one
 * New: Add DEVELOPER-DOCS.md and move hooks documentation into it
 * Change: Update plugin framework to 068
    - 068:
    - Change: Discontinue unnecessary explicit loading of textdomain
    - Change: Ignore a PHPCS warning that doesn’t apply
    - Change: Minor code reformatting
    - Change: Note compatibility through WP 6.8+
    - Change: Update copyright date (2025)
    - Unit tests:
       * Change: Generify unit tests to centralize per-plugin configuration to the
         top of the test class
       * Change: Define method return types for PHP 8+ compatibility
       * New: Add some header documentation
    - 067:
    - Breaking: Require config attribute ‘input_attributes’ to be an array
    - Hardening: Treat input attributes as array and escape each element before 
      output
    - Change: Ensure config attribute values are of the same datatype as their defaults
    - Change: Simplify `form_action_url()` to avoid using a server global
    - Change: Use `form_action_url()` in `plugin_action_links()` rather than duplicating
      its functionality
    - Change: Escape output of all translated strings
    - Change: Make `get_hook()` public rather than protected
    - Change: Explicitly declare object variables rather than doing so dynamically
    - Change: Convert `register_filters()` to an abstract declaration
    - Change: Use double quotes for attribute of paragraph for setting description
    - Change: Prevent unwarranted PHPCS complaints about nonces
    - Change: Improve function documentation
    - Change: Adjust function documentation formatting to align with WP core
    - Change: Note compatibility through WP 6.5+
    - Change: Drop compatibility with version of WP older than 5.5
    - Change: Update copyright date (2024)
    - 066:
    - New: Add customization of capability needed to manage plugin settings (via
      new filter {plugin_prefix}_manage_options_capability)
    - Change: Add styles for nested lists within settings descriptions
    - Change: Note compatibility through WP 6.3+
    - 065:
    - New: Add support for ‘inline_help’ setting configuration option
    - New: Add support for ‘raw_help’ setting configuration option
    - New: Add support for use of lists within settings descriptions
    - Change: Add an ‘id’ attribute to settings form
    - Change: Add styles for disabled input text fields and inline setting help 
      notices
    - Change: Support ‘number’ input by assigning ‘small-text’ class
    - Change: Tweak styling for settings page footer
    - Change: Note compatibility through WP 6.2+
    - Change: Update copyright date (2023)
    - 064:
    - New: For checkbox settings, support a ‘more_help’ config option for defining
      help text to appear below checkbox and its label
    - Fix: Fix URL for plugin listing donate link
    - Change: Store donation URL as object variable
    - Change: Update strings used for settings page donation link
 * Change: Ignore some PHPCS checks that don’t apply
 * Change: Update and improve long description and numerous FAQ entries
 * Change: Note compatibility through WP 6.8+
 * Change: Note compatibility through PHP 8.3+
 * Change: Drop compatibility with version of WP older than 5.5
 * Change: Tweak installation instruction
 * Change: Update copyright date (2025)
 * Change: Reduce number of tags defined in readme.txt
 * Change: Remove development and testing related files from release packaging

#### 2.0.1 (2021-05-30)

Highlights:

This recommended bugfix release addresses a potential conflict with other plugins
that prevented the plugin settings page main content from being displayed.

Details:

 * Change: Update plugin framework to 063
    - Fix: Simplify settings initialization to prevent conflicts with other plugins
    - Change: Remove ability to detect plugin settings page before current screen
      is set, as it is no longer needed
    - Change: Enqueue thickbox during `'admin_enqueue_scripts'` action instead of
      during `'init'`
    - Change: Use `is_plugin_admin_page()` in `help_tabs()` instead of reproducing
      its functionality
    - Change: Trigger a debugging warning if `is_plugin_admin_page()` is used before`'
      admin_init'` action is fired
 * New: Add new string (from plugin framework) for translation

_Full changelog is available in [CHANGELOG.md](https://github.com/coffee2code/add-admin-css/blob/master/CHANGELOG.md)._

## Meta

 *  Version **2.5.1**
 *  Last updated **4 months ago**
 *  Active installations **10,000+**
 *  WordPress version ** 5.5 or higher **
 *  Tested up to **6.9.4**
 *  Languages
 * [Chinese (Taiwan)](https://tw.wordpress.org/plugins/add-admin-css/), [Dutch (Belgium)](https://nl-be.wordpress.org/plugins/add-admin-css/),
   [English (US)](https://wordpress.org/plugins/add-admin-css/), and [Russian](https://ru.wordpress.org/plugins/add-admin-css/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/add-admin-css)
 * Tags
 * [admin](https://wordpress.org/plugins/tags/admin/)[admin theme](https://wordpress.org/plugins/tags/admin-theme/)
   [css](https://wordpress.org/plugins/tags/css/)[style](https://wordpress.org/plugins/tags/style/)
   [stylesheets](https://wordpress.org/plugins/tags/stylesheets/)
 *  [Advanced View](https://wordpress.org/plugins/add-admin-css/advanced/)

## Ratings

 4.9 out of 5 stars.

 *  [  34 5-star reviews     ](https://wordpress.org/support/plugin/add-admin-css/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/add-admin-css/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/add-admin-css/reviews/?filter=3)
 *  [  1 2-star review     ](https://wordpress.org/support/plugin/add-admin-css/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/add-admin-css/reviews/?filter=1)

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

[See all reviews](https://wordpress.org/support/plugin/add-admin-css/reviews/)

## Contributors

 *   [ Scott Reilly ](https://profiles.wordpress.org/coffee2code/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/add-admin-css/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=6ARCFJ9TX3522)