Free Open source under Apache 2.0

Build WordPress plugins
that feel native — and ship secure.

Real WP admin markup. Security patterns built in. CSS, React, and PHP runtimes — plus a plugin scaffold and skill files so AI agents build the same way.

Browse components Read the docs Star on GitHub
https://example.com/wp-admin/admin.php?page=my-plugin

Plugin Settings

Last sync: 4 minutes ago

Settings saved. Your changes have been applied.

Total events
1,284
↑ 12% this week
Active users
82
↑ 4 new
Errors
3
↓ 2 vs last week
API Key
Notifications

Recent Activity

JD
Jane published "Hello"
2h ago
AS
Alex updated config
Yesterday

The three pillars

Native design. Security by default. AI agent-ready.

The patterns the WordPress plugin ecosystem needs in 2026, in one framework.

Native design

Real WP admin class names — .button, .notice, .wp-list-table. Your plugin inherits the user's color scheme automatically (Default, Midnight, Coffee, Ocean, …). It looks like part of WordPress because it is.

🛡

Security by default

The boilerplate uses capability checks, nonces, sanitize on input, escape on output, and prepared SQL — the patterns plugin reviewers expect. Your AI agent gets the same via skills/security.md.

AI agent-ready

One URL — cdn.wp-admincss.com/AGENTS.md — feeds your coding agent the framework, the skill files, and a working scaffold. No more guessing how WordPress plugins should be structured.

Three runtimes

Pick your level. Same markup. Same output.

Drop-in CSS to start. React components for sophisticated UIs. PHP helpers for server-rendered admin pages. Every package emits identical WordPress-native HTML and inherits the user's color scheme.

CSS @wp-admincss/core-css
<!-- One link, no build step -->
<link rel="stylesheet"
      href="https://cdn.wp-admincss.com/css/latest.css">

<button class="button button-primary">
  Save Changes
</button>

Ideal for static admin pages and existing plugins.

React @wp-admincss/react
// Typed components, real WP class names
import { Button, Notice }
  from '@wp-admincss/react';

<Button variant="primary">
  Save Changes
</Button>

For modern admin UIs. Pairs with the same CSS bundle.

PHP wp-admincss/composer
// Composer-installable render helpers
use WPAdminCSS\Components;

echo Components::button(
  'Save Changes',
  ['variant' => 'primary']
);

For server-rendered admin pages in your plugin.

Security by default

Capability check. Nonce. Sanitize. Escape.

Every code example in the framework ships with the security patterns WordPress plugin reviewers expect. AI agents loading skills/security.md get them too.

boilerplate/src/Admin/SettingsPage.php
// 1. Capability check — server-side gate.
if (!current_user_can('manage_options')) {
    wp_die(esc_html__('No permission.', 'my-plugin'));
}

// 2. Nonce verification — defense against CSRF.
check_admin_referer('my_save_settings');

// 3. Sanitize each field. Never trust $_POST.
$sanitized = [
    'api_key' => sanitize_text_field($_POST['api_key'] ?? ''),
    'mode'    => in_array($_POST['mode'], ['production', 'sandbox'], true)
                  ? $_POST['mode'] : 'production',
];

// 4. Escape every output.
echo '<input value="' . esc_attr($sanitized['api_key']) . '">';
1
Capability check

Server-side gate before any read or write.

2
Nonce verification

check_admin_referer() defends against CSRF.

3
Sanitize input

sanitize_text_field, in_array, type coercion — never trust $_POST.

4
Escape output

esc_html / esc_attr / esc_url at the moment of render.

Database queries follow the same discipline — every $wpdb call uses prepare(). Full pattern walkthrough in skills/security.md.

Component library

25+ components. Pure CSS.

Every primitive you need for a polished plugin admin page. Click any tile to see the live preview and copy the code.

Built for AI workflows

HTML for humans. Prompts for agents.

Every component has two copy buttons. Grab the raw HTML for yourself, or grab a ready-to-paste prompt for your coding agent.

Copy HTML For humans
<div class="notice notice-success is-dismissible">
  <p><strong>Settings saved.</strong></p>
  <button type="button" class="notice-dismiss">
    <span class="screen-reader-text">Dismiss</span>
  </button>
</div>
Copy AI Prompt For agents
Add a dismissible WordPress admin notice to my
plugin page using WP AdminCSS.

Import the library:
<link rel="stylesheet" href="https://wp-
admincss.com/dist/wp-admin.css">

HTML:
<div class="notice notice-success
           is-dismissible">
  <p><strong>Saved.</strong></p>
  <button class="notice-dismiss">…
</div>

Customize

Match your brand — change a few tokens.

Every primitive uses CSS custom properties. Override them in your plugin's stylesheet to fit your brand. No build step, no preprocessor, no fork.

Default
Settings saved.
Stripe-ish purple
Settings saved.
Linear-ish teal
Settings saved.
--wpadmin-primary #2271b1
--wpadmin-primary-dark #135e96
--wpadmin-text #3c434a
--wpadmin-text-subtle #646970
--wpadmin-border #c3c4c7
--wpadmin-surface #fff
--wpadmin-radius 4px
--wpadmin-success / error / warning
+ 40 more spacing · typography · menu colors
Override in your plugin CSS
/* your-plugin/admin.css */ :root { --wpadmin-primary: #7c3aed; --wpadmin-primary-dark: #6d28d9; --wpadmin-radius: 8px; --wpadmin-text: #1a1a2e; } /* Scope to just your plugin page if you want */ .my-plugin-page { --wpadmin-primary: #0d9488; }
Or theme via the wrapper class
<div class="my-plugin-page"> <!-- everything inside picks up your tokens --> </div>

Get started

One line. Drop it in.

Add to your plugin admin page
<link rel="stylesheet" href="https://cdn.wp-admincss.com/css/latest.css">
Use real WordPress admin classes
<div class="wrap"> <h1>My Plugin</h1> <button class="button button-primary">Save</button> </div>

Built for AI-driven development

An AGENTS.md, a skills library, and a working scaffold.

Point your coding agent at one URL. It gets the framework instructions, the security patterns, the database conventions, and a working WP plugin to copy from — all in one shot.

📄

AGENTS.md

The master entry point. The framework, the anti-patterns, the security checklist. Hosted at cdn.wp-admincss.com/AGENTS.md — load it once, the agent has everything.

6 skill files

Security, database, data-modeling, enqueue, plugin-structure, i18n. Each focuses on the patterns AI agents commonly get wrong in WordPress. Load on demand.

Plugin boilerplate

A working plugin scaffold — settings page, REST endpoint, custom table, lifecycle hooks. Clone, find-replace the names, ship.

Drop into Cursor / Claude Code / Aider
# Tell your agent to use the framework @docs https://cdn.wp-admincss.com/AGENTS.md # Or read into the conversation directly curl https://cdn.wp-admincss.com/AGENTS.md curl https://cdn.wp-admincss.com/skills/security.md # Then ask: "Build a WP plugin settings page following WP AdminCSS" # The agent already knows the security boundary, the markup, the conventions.
Or clone the boilerplate
gh repo clone artificialpoets/wp-admincss cp -r wp-admincss/boilerplate ~/my-plugin cd ~/my-plugin && composer install

Build your next WordPress plugin with WP AdminCSS.

Native admin design. Security by default. CSS, React, or PHP — your call. Apache 2.0.

Browse components Read the docs