[![Run tests](https://github.com/silexlabs/grapesjs-symbols/actions/workflows/test.yml/badge.svg)](https://github.com/silexlabs/grapesjs-symbols/actions/workflows/test.yml) # Symbols plugin for GrapesJS This plugin enables users to create symbols, which are reusable elements, in a page and accross pages > This code is part of a bigger project: [Silex v3](https://www.silex.me/) which aims to be a free/libre alternative to webflow A symbol can be created from an element, and then instances of this symbol can be created. When one instance is modified, all other instances are updated as well. This is useful for creating reusable components like headers, footers, or any other element that needs to be consistent across a website. This plugin is a UI for the [GrapesJS Symbols module](https://grapesjs.com/docs/guides/Symbols.html) Links * [DEMO on Codepen](https://codepen.io/lexoyo/full/xxJGEwo) * [Npm package](https://www.npmjs.com/package/@silexlabs/grapesjs-symbols) * [Discussion about ongoing developments](https://github.com/silexlabs/grapesjs-symbols/issues/1) ![illustration: 2 symbols on 1 page](https://github.com/silexlabs/grapesjs-symbols/assets/715377/98bb9843-7fa6-4c75-b009-d03d3bca3d99) Features * Create a symbol from an element * Create symbol instances * Sync instances: when one instance is modified, update all other instances * Temporary pause sync * Unlink an instance so that is stops syncing * Symbol have a name and an optional icon * View symbol icon for all instances in the layer manager * Optional list of symbols which support draging symbols to the stage * Support for symbols in symbols * Support sync accross grapesjs pages * **Automatic unique ID generation** - When creating symbol instances, elements with `id` attributes automatically get unique IDs to avoid DOM conflicts. References like `