You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Puck provides an experimental plugin API to create sharable extensions to Puck.
3
+
> **⚠️ The plugin API is highly experimental and is likely to experience breaking changes.**
4
+
5
+
The plugin API enables developers to distribute plugins to customize the Puck interface.
4
6
5
7
## Official plugins
6
8
7
9
-[`heading-analyzer`](https://github.com/measuredco/puck/tree/main/packages/plugin-heading-analyzer): Analyze the heading outline of your page and be warned when you're not respecting WCAG 2 accessibility standards.
8
10
11
+
## Community plugins
12
+
13
+
Please see the [awesome-puck repo](https://github.com/measuredco/awesome-puck) for a full list of community plugins.
14
+
9
15
## Developing a plugin
10
16
11
-
Please see the [API reference](/docs/api-reference/plugins) for documentation.
17
+
Plugins implement the same [`overrides`](/docs/api-reference/overrides) API used to build [custom interfaces](custom-interfaces#ui-overrides):
Plugins are rendered in the order they are defined. All overrides are _curried_, meaning that the return node of one plugin will be passed as `children` to the next plugin.
43
+
44
+
This may result in some incompatible plugin combinations. To improve your chance of building a widely compatible plugin, consider:
45
+
46
+
1. Implementing as few override methods as you need
47
+
2. Always rendering `children` if possible
48
+
49
+
## Custom fields
50
+
51
+
Plugins enable full UI overhauls. If you're creating a field for a specific use-case, you might be better off distributing a [custom field](custom-fields).
52
+
53
+
## Further reading
54
+
55
+
-[Plugin API reference](/docs/api-reference/plugin)
0 commit comments