HTML/CSS engine for node.js and deno.
See the codeHTML/CSS engine for node.js and deno.
Currently, it is just my hobby/research project and it's not yet intended for any use.
const Counter = () => {
const [count, setCount] = React.useState(0)
const dec = () => setCount(count - 1)
const inc = () => setCount(count + 1)
return (
<div style={styles.counter}>
<span>{count}</span>
<div style={{ ...styles.bar, width: count * 5 }} />
<div style={styles.buttons}>
<button onClick={dec}>--</button>
<button onClick={inc}>++</button>
</div>
</div>
)
}
const styles = {
counter: {
flex: 1,
padding: 20,
justifyContent: 'space-between'
},
bar: {
backgroundColor: '#ff0000',
height: 20
},
buttons: {
flexDirection: 'row',
justifyContent: 'space-between'
}
}
document), nodejs-only
(N-API)preact-only for now)goober-only for now)<script>, no <link>, ...)nodemon works)npm i github:cztomsik/graffiti)To work on the project, you will need recent Zig (0.11.0-dev.3731+c6e2e1ae4)
and system-installed GLFW3.3 with headers (brew install pkg-config glfw).
git clone ...
cd ...
git submodule init
git submodule update
npm i
zig build
node examples/hello.js
The code in this repository is licensed under the MIT license, except for the
HTML parser in lib/core/htmlparser.js which is based on the work of John Resig
(MIT), Juriy "kangax" Zaytsev (MIT) and Erik Arvidsson (MPL).
You are also bound by the licenses of all the transitive dependencies:
If you are interested in contributing, please join the Discord channel to discuss your ideas before submitting a pull request. Unexpected merge requests are likely to be rejected.
Thank you for your interest :)
(top 24 of 28)
456 followers · starred Dec 2018
575 followers · starred Oct 2018
914 followers · starred Jan 2023
173 followers · starred Apr 2020
HTML/CSS engine for node.js and deno.
See the codeHTML/CSS engine for node.js and deno.
Currently, it is just my hobby/research project and it's not yet intended for any use.
const Counter = () => {
const [count, setCount] = React.useState(0)
const dec = () => setCount(count - 1)
const inc = () => setCount(count + 1)
return (
<div style={styles.counter}>
<span>{count}</span>
<div style={{ ...styles.bar, width: count * 5 }} />
<div style={styles.buttons}>
<button onClick={dec}>--</button>
<button onClick={inc}>++</button>
</div>
</div>
)
}
const styles = {
counter: {
flex: 1,
padding: 20,
justifyContent: 'space-between'
},
bar: {
backgroundColor: '#ff0000',
height: 20
},
buttons: {
flexDirection: 'row',
justifyContent: 'space-between'
}
}
document), nodejs-only
(N-API)preact-only for now)goober-only for now)<script>, no <link>, ...)nodemon works)npm i github:cztomsik/graffiti)To work on the project, you will need recent Zig (0.11.0-dev.3731+c6e2e1ae4)
and system-installed GLFW3.3 with headers (brew install pkg-config glfw).
git clone ...
cd ...
git submodule init
git submodule update
npm i
zig build
node examples/hello.js
The code in this repository is licensed under the MIT license, except for the
HTML parser in lib/core/htmlparser.js which is based on the work of John Resig
(MIT), Juriy "kangax" Zaytsev (MIT) and Erik Arvidsson (MPL).
You are also bound by the licenses of all the transitive dependencies:
If you are interested in contributing, please join the Discord channel to discuss your ideas before submitting a pull request. Unexpected merge requests are likely to be rejected.
Thank you for your interest :)
(top 24 of 28)
456 followers · starred Dec 2018
575 followers · starred Oct 2018
914 followers · starred Jan 2023
173 followers · starred Apr 2020