# webtreemap A simple treemap implementation using web technologies (DOM nodes, CSS styling and transitions) rather than a big canvas/svg/plugin. Play with a [demo][]. [demo]: http://martine.github.com/webtreemap/demo/demo.html ## Creating your own 1. Create a page with a DOM node (i.e. a `<div>`) that will contain your treemap. 2. Add the treemap to the node via something like appendTreemap(document.getElementById('mynode'), mydata); 3. Style the treemap using CSS. ### Input format The input data (`mydata` in the overview snippet) is a tree of nodes, likely imported via a separate JSON file. Each node (including the root) should contain data in the following format. { name: (HTML that is displayed via .innerHTML on the caption), data: { "$area": (a number, in arbitrary units) }, children: (list of child tree nodes) } (This strange format for data comes from the the [JavaScript InfoVis Toolkit][thejit]. I might change it in the future.) The `$area` of a node should be the sum of the `$area` of all of its `children`. (At runtime, tree nodes will dynamically will gain two extra attributes, `parent` and `dom`; this is only worth pointing out so that you don't accidentally conflict with them.) ### CSS styling The treemap is constructed with one `div` per region with a separate `div` for the caption. Each div is styleable via the `webtreemap-node` CSS class. The captions are stylable as `webtreemap-caption`. Each level of the tree also gets a per-level CSS class, `webtreemap-level0` through `webtreemap-level4`. These can be adjusted to e.g. made different levels different colors. To control the caption on a per-level basis, use a CSS selector like `.webtreemap-level2 > .webtreemap-caption`. Your best bet is to modify the included `webtreemap.css`, which contains comments about required and optional CSS attributes. ## Related projects * [JavaScript InfoVis Toolkit][thejit] [thejit]: http://thejit.org/