All notable changes to Fude are documented in this file.
The format follows Keep a Changelog, and Fude follows Semantic Versioning.
[Unreleased]
[0.1.0] - Unreleased
Added
- Charts from one line of Elixir, in
Fude:bar/2(andhorizontal: true),line/2,area/2,scatter/2,bubble/2,pie/2,donut/2,histogram/2,heatmap/2,waterfall/2,funnel/2,sparkline/2,choropleth/2,bubble_map/2,rule/2,text/2, and the single numbersnumber/2,trend/2,gauge/2andprogress/2;layers/3for several over each other. - Channels as a field, an aggregate (
{:sum, :revenue}), a unit of time ({:month, :created_at}) or bins ({:bin, :total}), or the full form with a type, a sort, a format, a title, a scale and a stack. <.chart>inFude.Components: the marks on a canvas and the words as SVG; a crosshair and one tooltip for every series; a legend that highlights and hides; keyboard navigation with announcements; a table of the data.- Charts that move: marks go from where they were to where they are when the data changes.
- Words as a graphics desk sets them (
Fude.title/3): titles, subtitles, captions and sources; labels at line ends; value labels; category names that wrap or stagger before they thin. - Notes on the data (
Fude.annotate/3): labels with a connector, bands and lines. - Small multiples (
Fude.facet/3): a panel for each value, on shared scales, with one legend. - Maps of the world's countries (Equal Earth) and the US states (Albers
USA), by code or name, registered by the pages that draw them
(
registerMap). - Data as lists of maps, as a query result (
%{columns, rows}), or as an Ecto query grouped and aggregated in PostgreSQL, MySQL or SQLite (Fude.query/3). Fude.Spec.dump/1andload/1: a chart as JSON with a version, migrated forward, with errors at their path and a suggestion.Fude.Live.append/5to stream rows into a chart, andFude.Live.export/3and<.chart export>for SVG and PNG files.- The rules of ticks, nice domains, bins and units of time, the same on the server and in the browser, tested on both with one fixture.
Fude.Test, to read what a chart shows inPhoenix.LiveViewTest.- The Sumi theme (
fude-sumi.css), dark mode, reduced motion and forced colors. Fude.Issho, with Issho: a chart as a room's shared state, that people change withFude's functions (Fude.Issho.change/3) and agents with theread_chartandchange_charttools, refused when a change makes it invalid; the people's pointers on its marks, in its data's terms (Fude.Issho.Place,<.chart issho>).- An
"id"for a layer and an annotation of a spec. mix fude.install.