1.3.0 • Published 2 years ago

tailwind-fluid-typography v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Tailwind Fluid Typography

Based on the fluid typography theory devised by Mike Riethmuller and incorporating ideas from Google's Material Design spec, Tailwind Fluid Typography gives you a new set of utility classes that scale modularly depending on screen size.

  • Set breakpoints for when your type should start and stop scaling
  • Dual scaling system gives you the ability to set your desired scale for your lower breakpoint and for your higher breakpoint
  • Provides xs, sm, base, lg, xl, 2xl, 3xl, 4xl, 5xl, 6xl, 7xl, 8xl and 9xl font-sizes

Installation

npm i tailwind-fluid-typography
// or
yarn add tailwind-fluid-typography
// tailwind.config.js
module.exports = {
  theme: {
    fluidTypography: {},
  },
  plugins: [require("tailwind-fluid-typography")],
};

Usage

<h1 class="fluid-4xl">Fluid Typography @ 4XL</h1>
<h2 class="fluid-3xl">Fluid Typography @ 3XL</h2>
<h3 class="fluid-2xl">Fluid Typography @ 2XL</h3>
<h4 class="fluid-xl">Fluid Typography @ XL</h4>
<h5 class="fluid-lg">Fluid Typography @ LG</h5>
<h6 class="md:fluid-lg">Fluid Typography @ LG</h6>
<p class="fluid-base">Fluid Typography</p>
<p class="fluid-sm">Fluid Typography @ SM</p>
<small class="fluid-xs">Fluid Typography @ XS</small>

Customisation

To customise the plugin settings, you can pass the following properties as part of a fluidTypography property on theme:

NameTypeDefaultDescription
remSizeNumber16The px size to assume for 1rem
minScreenSizeNumber320The screen size (in px) at which to begin scaling
maxScreenSizeNumber1920The screen size (in px) at which to stop scaling
minTypeScaleNumber1.2The scaling factor to use at minScreenSize
maxTypeScaleNumber1.333The scaling factor to use at maxScreenSize
lineHeightNumber1.35The line-height to use for heading classes

For example:

theme: {
    fluidTypography: {
        remSize: 14,
        minScreenSize: 600,
        maxScreenSize: 1280,
        minTypeScale: 1.250,
        maxTypeScale: 1.618,
        lineHeight: 1.5
    }
}

Suggested type scales

Minor Second1.067
Major Second1.125
Minor Third1.200default minTypeScale
Major Third1.250
Perfect Fourth1.333default maxTypeScale
Augmented Fourth1.414
Perfect Fifth1.500
Golden Ratio1.618

Fluid Prose

At times, you may need to render fluid typography of which you don't have direct control over the classes. Because the style requirements of this vary greatly between sites, we haven't included the functionality in the plugin itself, but it is easily implemented in your own Tailwind stylesheet:

@layer utilities {
	.fluid-prose {
		:where(h1) {
			@apply fluid-5xl mb-0;
		}
		:where(h2) {
			@apply fluid-4xl mb-0;
		}
		:where(h3) {
			@apply fluid-3xl mb-0;
		}
		:where(h4) {
			@apply fluid-2xl mb-0;
		}
		:where(h5) {
			@apply fluid-xl mb-0;
		}
		:where(h6) {
			@apply fluid-lg mb-0;
		}
	}
}

In case you were wondering, the :where selector comes with a CSS specificity of 0, so it is more easily overridden by other utility/custom classes than a normal <h1>-style rule.