node-projects / web-component-designer

A Designer for HTML Components or Pages in a WebComponent
https://node-projects.github.io/web-component-designer-demo/index.html
MIT License
148 stars 16 forks source link
designer typescript web-components wysiwyg wysiwyg-editor wysiwyg-html-editor

web-component-designer

A HTML web component for designing web components and HTML pages based on PolymerLabs wizzywid which can easily be integrated in your own software. Meanwhile polymer is not used anymore.

image

There is also a preview VSCode addon using the designer: https://github.com/node-projects/vs-code-designer-addon

NPM Package

Comparison of Designer Frameworks

Comparison

https://www.npmjs.com/package/@node-projects/web-component-designer

Additional NPM Packages

All Modules which need an external dependency are now extracted to extra NPM packges. So the designer now should work with bundlers.

Name Description
web-component-designer-codeview-ace
web-component-designer-codeview-codemirror
web-component-designer-codeview-codemirror5
web-component-designer-codeview-monaco
web-component-designer-htmlparserservice-base-custom-webcomponent
web-component-designer-htmlparserservice-lit-element
web-component-designer-htmlparserservice-nodehtmlparser
web-component-designer-miniatureview-html2canvas
web-component-designer-stylesheetservice-css-tools
web-component-designer-stylesheetservice-css-tree
web-component-designer-visualization-addons
web-component-designer-texteditextension-stylo deprecated - stylo is deprecated
web-component-designer-widgets-fancytree deprecated - replaced by widgets-wunderbaum
web-component-designer-widgets-wunderbaum

Browser support

Projects using it

A ZPL-Label Designer: (https://github.com/node-projects/web-component-designer-zpl-demo)

image

A material flow layout editor in a comercial application: image

Demo

look at: https://node-projects.github.io/web-component-designer-demo/index.html repository: https://github.com/node-projects/web-component-designer-demo

or a simple one: https://node-projects.github.io/web-component-designer-simple-demo/index.html repository: https://github.com/node-projects/web-component-designer-simple-demo

What is needed

Features we are working on

https://github.com/node-projects/web-component-designer/issues

Developing

  $ npm run develop

Using

At first you have to setup a service container providing services for history, properties, elements, ...

Code Editor

You can select to use one of 3 code editors available (ACE, CodeMirrow, Monaco). If you use one of the widgets, you need to include the JS lib in your index.html and then use the specific widget.

TreeView

We have 2 tree components. One independent and one feature rich which uses FancyTree (and cause of this it needs JQuery and JqueryUI).

DragDrop

If you'd like to use the designer on mobile, you need the mobile-drag-drop npm library. Your index.html should be extended as follows:

<link rel="stylesheet" href="https://github.com/node-projects/web-component-designer/blob/master/node_modules/mobile-drag-drop/default.css">
<script src="https://github.com/node-projects/web-component-designer/raw/master/node_modules/mobile-drag-drop/index.js"></script>

Copyright notice

The Library uses Images from the Chrome Dev Tools, see https://github.com/ChromeDevTools/devtools-frontend/tree/main/front_end/Images/src and https://github.com/ChromeDevTools/devtools-frontend/blob/main/LICENSE