diff --git a/.eslintrc b/.eslintrc index 63f533a83..6da86e71b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -41,7 +41,7 @@ }, "settings": { "react": { - "version": '999.999.999', - }, - }, + "version": "999.999.999" + } + } } diff --git a/src/plugins/components/typography/fluid-typography.js b/src/plugins/components/typography/fluid-typography.js new file mode 100644 index 000000000..a1024380c --- /dev/null +++ b/src/plugins/components/typography/fluid-typography.js @@ -0,0 +1,41 @@ +/** + * Fluid type that increase font size smoothly and linearly between a min and max value + * over the viewport width range 360px (XS) to 1500px (2XL) + * See concept on https://www.aleksandrhovhannisyan.com/blog/fluid-type-scale-with-css-clamp/ + * + * See google sheet for a plot of the font sizes over the viewport width range 360px (XS) to 1500px (2XL): + * https://docs.google.com/spreadsheets/d/1AN9eV_ECXc9MzTZUc10hiLjOHeOCDTutC5tMHOCPqgo/edit?usp=sharing + * + * Good for use in hero banners and horizontal cards where UI looks better with a smooth transition of font size + * Here we offer the sizes from fluid-type-4 to fluid-type-10. Their min and max values at the XS and 2XL breakpoints + * are the same as the corresponding modular typography classes (type-4 to type-10). + */ +module.exports = function () { + return function ({ addComponents }) { + const components = { + '.fluid-type-4': { + fontSize: 'clamp(3.1rem, 2.19vw + 2.31rem, 5.6rem)', + }, + '.fluid-type-5': { + fontSize: 'clamp(3.6rem, 2.98vw + 2.53rem, 7rem)', + }, + '.fluid-type-6': { + fontSize: 'clamp(4.2rem, 4.04vw + 2.75rem, 8.8rem)', + }, + '.fluid-type-7': { + fontSize: 'clamp(4.8rem, 5.44vw + 2.84rem, 11rem)', + }, + '.fluid-type-8': { + fontSize: 'clamp(5.5rem, 7.19vw + 2.91rem, 13.7rem)', + }, + '.fluid-type-9': { + fontSize: 'clamp(6.3rem, 9.47vw + 2.89rem, 17.1rem)', + }, + '.fluid-type-10': { + fontSize: 'clamp(7.3rem, 12.37vw + 2.85rem, 21.4rem)', + }, + }; + + addComponents(components); + }; +}; diff --git a/static/index.html b/static/index.html index 342faf8f0..7ffe23fb5 100644 --- a/static/index.html +++ b/static/index.html @@ -35,6 +35,9 @@

Headings +
  • Fluid Typography +
  • Paragraphs
  • @@ -179,6 +182,18 @@

    Heading 5
    Heading 6
    +
    +

    Fluid Typography

    +
    +
    Fluid type 4
    +
    Fluid type 5
    +
    Fluid type 6
    +
    Fluid type 7
    +
    Fluid type 8
    +
    Fluid type 9
    +
    Fluid type 10
    +
    +

    Paragraphs

    diff --git a/tailwind.config.js b/tailwind.config.js index cc408f72a..3ee1eda43 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -89,6 +89,7 @@ module.exports = { require(`${dir}/components/skiplink/skiplink.js`)(), require(`${dir}/components/tables/borderless.js`)(), require(`${dir}/components/typography/modular-typography.js`)(), + require(`${dir}/components/typography/fluid-typography.js`)(), require(`${dir}/components/typography/styles.js`)(), require(`${dir}/components/typography/wysiwyg.js`)(), require(`${dir}/components/shadow/text-shadow.js`)(),