| 开发者 | blicks |
|---|---|
| 更新时间 | 2026年9月17日 03:20 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPL-2.0-or-later |
| 版权网址: | 版权信息 |
theme.json and uses those settings in the block controls and in the front-end CSS. Change a value once and it applies everywhere.
Works with your theme
Blicks tokens (--blicks-*) map to WordPress preset variables (--wp--preset--*, --wp--custom--*). Colours, type scale, and spacing come from whatever theme is active, not a separate default set. Built for block themes and full site editing.
Output
Token values become utility classes. Custom values become CSS custom properties on the element, and per-instance rules — pseudo-elements, container queries, keyframes — are collected into one stylesheet rather than repeated on every block.
What's included
/wp-content/plugins/blicks/, or install it through the WordPress Plugins screen.It's built for block themes and full site editing, where it reads your theme.json directly. It also runs on classic themes, but falls back to its own default token values since there's no theme.json to read.
By default, nothing is removed — your tokens, themes, animations, and settings survive a delete and reinstall. If you want Blicks to clean up after itself, set On uninstall to "Delete all Blicks data" in Blicks → Settings before deleting the plugin.
No. There is no stylesheet field, no script field, and no snippet runner. Blicks never evaluates anything you type, and you cannot write a CSS rule, a selector, or an at-rule anywhere in it.
Two places do accept typed input, and both are described below.
Some controls take a typed value rather than offering a picker — a length like 800px, a transform like translateX(10px), a shape like polygon(0 0, 100% 0, 100% 100%). Each of those is the value of one named property that the control itself chooses; you cannot write the property, a selector, or a rule. Every value is validated whole against a closed list of permitted characters and CSS functions before it is used, so a value cannot end its own declaration or start another one. Anything that does not validate is dropped.
The custom animation editor (Blicks → Design System → Animations, administrators only) works the same way. Each keyframe step is a form row: you pick a property from a fixed list of animatable properties (opacity, transform, color and similar), and type its value, which is validated exactly as above. You cannot name any other property, write a selector, or add an at-rule; Blicks generates the @keyframes rule and its name itself.
Yes. Import HTML in the editor's options (⋮) menu opens a one-way importer: you paste a block of markup, Blicks maps each element to the closest Blicks block, and inserts the result into the post.
It reads each element's inline style attribute only — not <style> blocks, not stylesheets, not <script>. A declaration is kept only where its property matches an existing Blicks control that takes a plain value; it then becomes an ordinary block attribute, validated exactly like any value you would have typed into that control yourself. Everything else — every property with no matching control, and every structured control that would need reshaping — is dropped, and the import report names each one so nothing is silently discarded.
The pasted text itself is never stored and never rendered. No pasted CSS reaches the front end unvalidated, and pasted <script> is parsed as text, never executed.
Yes, via the media library. Background image URLs are restricted to your own site's uploads or an ordinary http(s) address; javascript: and data: URLs are rejected.