UNPKG

rhythmic-scale

Version:

A utility library for building modular scale systems.

29 lines 1.02 kB
import { ratioToPower } from 'musical-ratios'; import { ensureNotPxRem } from 'empxrem'; const rhythmicScaleDefaultParams = { baseFont: 10, baseBrowserFontSize: 16, lineHeightFactor: 1.2, }; function scaledSize(ratio, level, size = 1) { return size * ratioToPower(ratio, level); } export class RhythmicScale { baseFont; baseBrowserFontSize; lineHeightFactor; constructor(params = {}) { const { baseFont, baseBrowserFontSize, lineHeightFactor } = { ...rhythmicScaleDefaultParams, ...params }; this.baseFont = baseFont; this.baseBrowserFontSize = baseBrowserFontSize; this.lineHeightFactor = lineHeightFactor; } scaledStyles(ratio, level) { const scaled = scaledSize(ratio, level, this.baseFont); return { size: ensureNotPxRem(scaled, this.baseBrowserFontSize), lineHeight: ensureNotPxRem(scaled * this.lineHeightFactor, this.baseBrowserFontSize), }; } } //# sourceMappingURL=rhythmic-scale.js.map