Compute and manipulate modular scales: typography, rhythm, grids.

Alto Scale turns mathematical progressions into predictable values for typography, spacing, grids, and rhythmic design systems.

<?php

use Alto\Scale\Scale;

$type = Scale::majorThird(16);
echo $type->snap(19.8);

The result is 20. Every scale can return a step, find the nearest step, snap an arbitrary value, and generate a keyed range. Modular, linear, Fibonacci, and multi-strand progressions keep their own domain and inverse behavior.

Documentation