1.3.2 • Published 2 months ago

editor-gui v1.3.2

Weekly downloads
116
License
MIT
Repository
github
Last release
2 months ago

editor-gui.js

npm install editor-gui


View Examples & Documentation


editor-gui is a react javascript framework for dynamic editor type guis. It was inspired by other similar libraries such as imgui for c++, dat.gui for javascript, or ofxDatgui for open-frameworks.

Use this library to help you build editor panels for your HTML5 canvas or WEBGL projects. Menus, Boxes, and Inputs are easy to create and will work well in any position of the screen!


Simply import the library and use the components

import {Layout,Anchor,In,Box} from 'editor-gui' 

render => {
	{is_visible,toggleVisible} = useState(no)
	{position,setPosition} = useState([200,200])
	{val,setVal} = useState(0)

	onBarClick = function(){
		toggleVisible(!is_visible)
	}

	<Layout fontFamily="my-custom-font-family" fontSize="16">
		<Anchor position={position} visibe={is_visible} onBarClick={onBarClick} >
			<Box title="settings" stickyTitle={true}>
				<In type="range" min={-10} max={10} value={val} set={setVal}>

				</In>
			</Box>
		</Anchor>
	</Layout>
}

Personally, I like to use coffeescript for smaller projects, it also works well with react because it's cleaner and easier to read and write than xml, you can set it up using webpack.

import {Layout,Anchor,In,Box} from 'editor-gui' 
import {renderComponent as h} from 'react'

render = ->
	{is_visible,toggleVisible} = useState(no)
	{position,setPosition} = useState([200,200])
	{val,setVal} = useState(0)
	h Layout,
		fontFamily: 'my-custom-font-family'
		fontSize: 16
		h Anchor,
			position: position #position in pixels
			visible: is_visible
			onBarClick: ->
				toggleVisible(!is_visible)
			h Box,
				title: 'settings'
				stickyTitle:true
				h In,
					type: 'range'
					min: -10
					max: 10
					value: val
					set: setVal

This library is designed to be used as a viewport overlay, hence all menus in are inherently position:fixed to the viewport. This means that you can't nest it inside a scrolling container or relative to other components in the DOM Tree. All of the examples are rendered inside an iframe container.

Components

Support

Buymeacoffee

BTC: bc1qqft7dazwh2mvp4c5p49pakjs6apdac24ny7rs3

my other stuff

1.3.2

2 months ago

1.3.0

12 months ago

1.2.9

2 years ago

1.2.10

2 years ago

1.2.8

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.1.1

3 years ago