```ts
export function fontClamp(size: number, smallest: number, largest: number): number {
  if (smallest > largest) {
    throw new Error("Invalid range: smallest is above largest");
  }

  return Math.min(Math.max(size, smallest), largest);
}
```