Releases: charming-art/api
0.0.19 (AUG 19, 2025)
What's Changed
Brand new start! https://charmingjs.org/
Full Changelog: charming-art/charming@v0.0.18...v0.0.19
0.0.18 (JUN 13, 2025)
What's Changed
Optimize and simplify APIs:
import * as cm from "charmingjs";
function circles(x, y, r, data = []) {
if (r < 16) return;
data.push({x, y, r});
circles(x - r / 2, y, r * 0.5, data);
circles(x + r / 2, y, r * 0.5, data);
circles(x, y - r / 2, r * 0.5, data);
circles(x, y + r / 2, r * 0.5, data);
return data;
}
const svg = cm.render({
width: 480,
height: 480,
marks: [
cm.svg("circle", circles(240, 240, 200), {
cx: (d) => d.x,
cy: (d) => d.y,
r: (d) => d.r,
stroke: "black",
fill: "transparent",
}),
],
});
document.body.appendChild(svg);Full Changelog: charming-art/charming@v0.0.17...v0.0.18
0.0.17 (APR 24, 2025)
What's Changed
- Animated and interactive mark by @pearmini in https://github.com/charming-art/charming/pull/375
- Fix non-array children callback by @pearmini in https://github.com/charming-art/charming/pull/376
- Postprocess parent by @pearmini in https://github.com/charming-art/charming/pull/378
- Fix callback children by @pearmini in https://github.com/charming-art/charming/pull/379
- Incremental update attribute by @pearmini in https://github.com/charming-art/charming/pull/381
- Fix nested update by @pearmini in https://github.com/charming-art/charming/pull/382
- Fix state update by @pearmini in https://github.com/charming-art/charming/pull/383
Full Changelog: charming-art/charming@v0.0.16...v0.0.17
0.0.16 (MAR 30, 2025)
What's Changed
- Add root to context by @pearmini in https://github.com/charming-art/charming/pull/356
- Export cm.html by @pearmini in https://github.com/charming-art/charming/pull/358
- Children as callback by @pearmini in https://github.com/charming-art/charming/pull/364
- Export renderer for rough by @pearmini in https://github.com/charming-art/charming/pull/360
Full Changelog: charming-art/charming@v0.0.15...v0.0.16
0.0.15 (MAR 20, 2025)
What's Changed
Let's create a zoomable "universe" with 50 lines of code!
madelbrot-set.mp4
- Fix undefined draw by @pearmini in https://github.com/charming-art/charming/pull/334
- Support attrs by @pearmini in https://github.com/charming-art/charming/pull/336
- Fix non data-driven children by @pearmini in https://github.com/charming-art/charming/pull/337
- Refactor update attributes by @pearmini in https://github.com/charming-art/charming/pull/339
- Remove ref and fix group children by @pearmini in https://github.com/charming-art/charming/pull/340
- Fix dispose by @pearmini in https://github.com/charming-art/charming/pull/343
- Fix time and framecount by @pearmini in https://github.com/charming-art/charming/pull/344
- Exports mark by @pearmini in https://github.com/charming-art/charming/pull/345
- Refactor Mark by @pearmini in https://github.com/charming-art/charming/pull/346
- Wrap html element by @pearmini in https://github.com/charming-art/charming/pull/348
- Support context for render by @pearmini in https://github.com/charming-art/charming/pull/349
- Add use by @pearmini in https://github.com/charming-art/charming/pull/350
- Fix nested group by @pearmini in https://github.com/charming-art/charming/pull/351
- Release v0.0.15 by @pearmini in https://github.com/charming-art/charming/pull/352
Full Changelog: charming-art/charming@v0.0.14...v0.0.15
0.0.14 (MAR 13, 2025)
What's Changed
Implemented basic diff algorithms in https://github.com/charming-art/charming/pull/330. And let's procedurally draw a Infinite Landscape with Charming! (Code)
- Add snapshot tests by @pearmini in https://github.com/charming-art/charming/pull/322
- Move container to render by @pearmini in https://github.com/charming-art/charming/pull/328
- Wrap svg element by @pearmini in https://github.com/charming-art/charming/pull/329
Full Changelog: charming-art/charming@v0.0.13...v0.0.14
0.0.13 (MAR 10, 2025)
What's Changed
- Fix textContent by @pearmini in https://github.com/charming-art/charming/pull/310
- Update docs by @pearmini in https://github.com/charming-art/charming/pull/311
- Remove proxy by @pearmini in https://github.com/charming-art/charming/pull/312
- Add container option by @pearmini in https://github.com/charming-art/charming/pull/313
- Refactor collection to graphic by @pearmini in https://github.com/charming-art/charming/pull/314
- Rename graphics to mark by @pearmini in https://github.com/charming-art/charming/pull/319
Full Changelog: charming-art/charming@v0.0.12...v0.0.13
0.0.12 (MAR 3, 2025)
What's Changed
- Support array draw by @pearmini in https://github.com/charming-art/charming/pull/306
- Add tests for collection by @pearmini in https://github.com/charming-art/charming/pull/307
Full Changelog: charming-art/charming@v0.0.11...v0.0.12
0.0.11 (FEB 24, 2025)
What's Changed
Optimize API based on the following examples:
const app = cm.render({
width: 200,
height: 50,
loop: true,
draw: () => [
SVG.circle({
cx: Math.abs(Math.sin(Date.now() / 1000) * 200),
cy: 25,
r: 20,
stroke: "red",
strokeWidth: 4,
}),
],
});
document.body.append(app.node());PRs
- Remove reactivity by @pearmini in https://github.com/charming-art/charming/pull/293
- Remove echox by @pearmini in https://github.com/charming-art/charming/pull/294
- Add constrain by @ChloeYanYan in https://github.com/charming-art/charming/pull/295
- Support camelCase of kebabCase attributes by @pearmini in https://github.com/charming-art/charming/pull/296
- Add collection by @pearmini in https://github.com/charming-art/charming/pull/297
- Remove d3-transition by @pearmini in https://github.com/charming-art/charming/pull/298
- Return app for cm.render by @pearmini in https://github.com/charming-art/charming/pull/299
- Add event and style by @pearmini in https://github.com/charming-art/charming/pull/300
- Add option loop by @pearmini in https://github.com/charming-art/charming/pull/301
- Add state by @pearmini in https://github.com/charming-art/charming/pull/302
- Add docs folder by @pearmini in https://github.com/charming-art/charming/pull/303
New Contributors
- @ChloeYanYan made their first contribution in https://github.com/charming-art/charming/pull/295
Full Changelog: charming-art/charming@v0.0.10...v0.0.11
0.0.10 (FEB 18, 2025)
What's Changed
Simplify API:
- Split cm.flow into cm.state and cm.ticker.
- Change cm.SVG from a function to cm.svg, a tagged template literal for readability.
import * as cm from "charmingjs";
const state = cm.state({x: 0});
const ticker = cm.ticker().on("animate", animate);
function animate() {
state.x = Math.abs(Math.sin(Date.now() / 1000) * 200);
}
const node = cm.svg`<svg ${{width: 200, height: 50}}>
<circle ${{cx: () => state.x, cy: 25, r: 20}}></circle>
</svg>`;
document.body.append(node);- Simplify API by @pearmini in https://github.com/charming-art/charming/pull/290
- Add svg and html by @pearmini in https://github.com/charming-art/charming/pull/291
Full Changelog: charming-art/charming@v0.0.9...v0.0.10
