GrapeJS

Free and Open source Web Builder Framework. Next generation tool for buildi...

README

GrapesJS


Build Status
Chat
CDNJS
npm


GrapesJS



GrapesJS is a free and open source Web Builder Framework which helps building HTML templates, faster and easily, to be delivered in sites, newsletters or mobile apps. Mainly, GrapesJS was designed to be used inside a [CMS] to speed up the creation of dynamic templates. To better understand this concept check the image below


GrapesJS - Style Manager



Generally any 'template system', that you'd find in various applications like CMS, is composed by the structure (HTML), style (CSS) and variables, which are then replaced with other templates and contents on server-side and rendered on client.

This demos show examples of what is possible to achieve:
Webpage Demo - http://grapesjs.com/demo.html
Newsletter Demo - http://grapesjs.com/demo-newsletter-editor.html





Table of contents






Features


BlocksStyleLayer
|--|--|--|
|||

CodeAsset
|--|--|
||

Local and remote storage

Default built-in commands (basically for creating and managing different components)





Download


CDNs
  UNPKG (resolves to the latest version)
    https://unpkg.com/grapesjs
    https://unpkg.com/grapesjs/dist/css/grapes.min.css
  CDNJS (replace X.X.X with the current version)
    https://cdnjs.cloudflare.com/ajax/libs/grapesjs/X.X.X/grapes.min.js
    https://cdnjs.cloudflare.com/ajax/libs/grapesjs/X.X.X/css/grapes.min.css
NPM
  npm i grapesjs
GIT
  git clone https://github.com/artf/grapesjs.git

For the development purpose you should follow instructions below.





Usage


  1. ```html
  2. <link rel="stylesheet" href="path/to/grapes.min.css">
  3. <script src="path/to/grapes.min.js"></script>
  4. <div id="gjs"></div>
  5. <script type="text/javascript">
  6.   var editor = grapesjs.init({
  7.       container : '#gjs',
  8.       components: '<div class="txt-red">Hello world!</div>',
  9.       style: '.txt-red{color: red}',
  10.   });
  11. </script>
  12. ```

For a more practical example I'd suggest looking up the code inside this demo: http://grapesjs.com/demo.html


Development


Clone the repository and install all the necessary dependencies (yarn is highly recommended)

  1. ```sh
  2. $ git clone https://github.com/artf/grapesjs.git
  3. $ cd grapesjs
  4. $ yarn
  5. ```

Start the dev server

  1. ```sh
  2. $ yarn start
  3. ```

Once the development server is started you should be able to reach the demo page (eg. http://localhost:8080)





Documentation


Check the getting started guide here: [Documentation]





API


API References could be found here: [API-Reference]





Testing


  1. ```sh
  2. $ yarn test
  3. ```





Plugins


Extensions

grapesjs-plugin-export - Export GrapesJS templates in a zip archive
grapesjs-plugin-filestack - Add Filestack uploader in Asset Manager
grapesjs-plugin-ckeditor - Replaces the built-in RTE with CKEditor
grapesjs-aviary - Add the Aviary Image Editor (dismissed, use the plugin below instead)
grapesjs-tui-image-editor - GrapesJS TOAST UI Image Editor
grapesjs-blocks-basic - Basic set of blocks
grapesjs-plugin-forms - Set of form components and blocks
grapesjs-navbar - Simple navbar component
grapesjs-component-countdown - Simple countdown component
grapesjs-style-gradient - Addgradient type input to the Style Manager
grapesjs-style-filter - Addfilter type input to the Style Manager
grapesjs-style-bg - Full-stack background style property type, with the possibility to add images, colors, and gradients
grapesjs-blocks-flexbox - Add the flexbox block
grapesjs-lory-slider - Slider component by using lory
grapesjs-tabs - Simple tabs component
grapesjs-tooltip - Simple, CSS only, tooltip component for GrapesJS
grapesjs-custom-code - Embed custom code
grapesjs-touch - Enable touch support
grapesjs-indexeddb - Storage wrapper for IndexedDB
grapesjs-firestore - Storage wrapper for Cloud Firestore
grapesjs-parser-postcss - Custom CSS parser for GrapesJS by using PostCSS
grapesjs-typed - Typed component made by wrapping Typed.js library
grapesjs-ui-suggest-classes - Enable auto-complete of classes in the SelectorManager UI
grapesjs-fonts - Custom Fonts plugin, adds a UI to manage fonts in websites
grapesjs-symbols - Symbols plugin to reuse elements in a website and accross pages

Presets

grapesjs-preset-webpage - Webpage Builder
grapesjs-preset-newsletter - Newsletter Builder
grapesjs-mjml - Newsletter Builder with MJML components


Find out more about plugins here: Creating plugins





Support


If you like the project and you wish to see it grow, please consider supporting us with a donation of your choice or become a backer/sponsor via Open Collective

PayPalMe
Bitcoin




[![BrowserStack](https://user-images.githubusercontent.com/11614725/39406324-4ef89c40-4bb5-11e8-809a-113d9432e5a5.png)](https://www.browserstack.com)
Thanks to BrowserStack for providing us browser testing services


License


BSD 3-clause


[Documentation]: [API-Reference]: [CMS]: