Constraint-Based Breakpoints for Responsive Visualization Design and Development
<|reference_start|>Constraint-Based Breakpoints for Responsive Visualization Design and Development: This paper introduces constraint-based breakpoints, a technique for designing responsive visualizations for a wide variety of screen sizes and datasets. Breakpoints in responsive visualization define when different visualization designs are shown. Conventionally, breakpoints are static, pre-defined widths, and as such do not account for changes to the visualized dataset or visualization parameters. To guarantee readability and efficient use of space across datasets, these static breakpoints would require manual updates. Constraint-based breakpoints solve this by evaluating visualization-specific constraints on the size of visual elements, overlapping elements, and the aspect ratio of the visualization and available space. Once configured, a responsive visualization with constraint-based breakpoints can adapt to different screen sizes for any dataset. We describe a framework that guides designers in creating a stack of visualization designs for different display sizes and defining constraints for each of these designs. We demonstrate constraint-based breakpoints for different data types and their visualizations: geographic data (choropleth map, proportional circle map, Dorling cartogram, hexagonal grid map, bar chart, waffle chart), network data (node-link diagram, adjacency matrix, arc diagram), and multivariate data (scatterplot, heatmap). Interactive demos and supplemental material are available at https://responsive-vis.github.io/breakpoints/.<|reference_end|>
@article{schöttler2024constraint-based,
    title={Constraint-Based Breakpoints for Responsive Visualization Design and
  Development},
    author={Sarah Sch"ottler, Jason Dykes, Jo Wood, Uta Hinrichs, Benjamin Bach},
    journal={arXiv preprint arXiv:2409.01339},
    year={2024},
    doi={10.1109/TVCG.2024.3410097},
    archivePrefix={arXiv},
    eprint={2409.01339},
    primaryClass={cs.HC}
}