While existing toolkits offer users a means for creating custom data
visualizations, building complex, interactive systems remains a tedious task.
The most notable shortcoming is the inability to compose interactive
visualization components and marks into a cohesive whole without a great deal
of rework to scale and place marks manually. We introduce CIViL, a domain
specific language for creating composable and interactive information
visualizations. Focusing on concise representations and consistent semantics,
CIViL allows users to specify interactive visualizations by composing simple
visual components. By leveraging declarative principles, users are able to
specify visualizations in terms of both the visual elements and the behavior
that they desire, without needing to consider how the visualization will be
generated, scaled, or displayed. We present a prototype implementation in
Haskell along with several examples to demonstrate the potential of the
language.