=== Theme.json Design Manager === Contributors: sulaimandauda Tags: theme-json, design-tokens, global-styles, css-variables, block-editor Requires at least: 6.1 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Manage design tokens — colors, spacing, typography, border radius, and shadows — that integrate with WordPress Global Styles via theme.json. == Description == **Theme.json Design Manager** provides a user-friendly admin interface for managing design tokens that are automatically merged into your theme's `theme.json` Global Styles pipeline. No code editing required. = Features = * **Color Palette** — Define semantic color tokens with live contrast previews. Generates `--wp--preset--color--{slug}` CSS custom properties. * **Spacing Scale** — Create spacing tokens with drag-to-reorder support. Generates `--wp--preset--spacing--{slug}` CSS custom properties. * **Typography Scale** — Set font size tokens with optional fluid `clamp()` support. Generates `--wp--preset--font-size--{slug}` CSS custom properties. * **Border Radius** — Define radius presets. Generates `--wp--custom--border-radius--{slug}` CSS custom properties. * **Shadow Presets** — Create box-shadow tokens with live previews. Generates `--wp--preset--shadow--{slug}` CSS custom properties. * **Hide Defaults** — Optionally hide theme/core default presets from the editor for a clean, curated design system. CSS custom properties are preserved. * **Reserved Slug Protection** — Automatically detects and renames color slugs (e.g. "text", "link") that conflict with WordPress core CSS marker classes, preventing color override issues in the editor. * **Diagnostics Tab** — View runtime data including stored tokens, merged palette by origin, generated CSS variables, preset classes, and settings at a glance. = How It Works = The plugin stores design tokens in the WordPress database and merges them into the theme's Global Styles via the `wp_theme_json_data_theme` filter. Tokens use WordPress's native slug-based merge system — matching slugs are replaced, new slugs are appended. All changes are **fully reversible**. Deactivating the plugin restores original theme styles. = Developer-Friendly = * **Filter hooks** for extending tokens before merge (`gdtm_tokens_before_merge`) * **Action hooks** after save (`gdtm_after_save`) and for custom tab content (`gdtm_after_tab_content`) * **Admin tab filter** (`gdtm_admin_tabs`) for registering additional tabs == Installation == 1. Upload the `theme-json-design-manager` folder to `/wp-content/plugins/`. 2. Activate the plugin through the **Plugins** screen in WordPress. 3. Go to **Appearance → Design Manager** to start managing your design tokens. == Frequently Asked Questions == = Does this plugin require a specific theme? = No. It works with any block theme or classic theme that supports `theme.json`. WordPress 6.1 or later is required. = Will my tokens override the theme's existing colors/spacing? = Yes, tokens with matching slugs replace the theme's values. New slugs are appended alongside existing ones. This is WordPress's native slug-based merge behavior. = What happens when I deactivate the plugin? = All plugin-managed tokens are removed from the Global Styles pipeline and your theme's original `theme.json` values are restored. Your token data is preserved in the database so nothing is lost. When you delete (uninstall) the plugin, the data is removed for a clean uninstall. = Can I use fluid typography? = Yes. On the Typography tab, check the "Fluid" toggle and enter min/max values. WordPress will generate a responsive `clamp()` function automatically. = How do I reference these tokens in CSS? = Each token generates a CSS custom property. For example, a color with slug "primary" becomes `var(--wp--preset--color--primary)`. The CSS variable name is displayed next to each token row in the admin. == Screenshots == 1. Color palette management with live contrast previews. 2. Spacing scale with drag-to-reorder functionality. 3. Typography scale with fluid clamp() support. 4. Border radius presets with live corner previews. 5. Shadow presets with live box-shadow previews. == Changelog == = 1.0.0 = * Initial release. * Color palette, spacing scale, typography scale, border radius, and shadow preset management. * Live previews for colors, radius, and shadows. * Fluid typography with clamp() support. * Drag-to-reorder for spacing tokens. * Settings tab with toggles to hide default presets from the editor. * Reserved slug protection — auto-renames color slugs that collide with WordPress core marker classes. * Diagnostics tab — runtime view of stored tokens, merged palette, CSS variables, and preset classes. * Base color fallback — ensures `--wp--preset--color--base` stays defined when replacing the theme palette. * Full theme.json integration via `wp_theme_json_data_theme` filter. * Extensibility hooks for developers. == Upgrade Notice == = 1.0.0 = Initial release.