1.0.4 • Published 1 year ago

tailwindcss-responsive v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Tailwindcss Responsive Plugin

Installing

npm install -D tailwindcss-responsive

Add configuration to your tailwind.config.js file.

// ...
theme: {
  rspacing: {
    DEFAULT: { // mobile
      smaller: '0.8rem',
    },
    // here use whatever screen modifiers you are using, default are listed here https://tailwindcss.com/docs/screens
    sm: {
      // you can also own names for these modifiers
      // default are named by numbers 1, 2, ...
      smaller: '1rem',
    },
    md: {
      smaller: '1.2rem',
    },
    lg: {
      smaller: '2.2rem',
    }
  },
  // same works for rtext
  rtext: {
    //...
    DEFAULT: {
      //...
    }
  }
}

Problem & Solution

Making responsive spacings and fontsizes requires lots of brekpoint modifiers. Making change across multiple components become painful pretty quickly as number of code incrases. Use single class name to specify spacing across all screens.

Example usage

<!-- Example of responsive spacing -->
<!-- We are using custom screens option -->
<div class="p-1 tablet:p-2 desktop:p-5"></div>

To keep things consistent there can be only spacing class which changes size according to configuration.

Configure once, use responsive spacing with single class name.

// tailwind.config.js
const tailwindResponsivePlugin = require('tailwindcss-responsive')

module.exports = {
  //...
  theme: {
    screens: {
      tablet: '1024px',
      desktop: '1400px',
    },
    rtext: {
      DEFAULT: {
        'base': '1rem',
        'lg': '2rem',
      },
      tablet: {
        'base': '1.5rem',
        'lg': '5rem',
      },
      desktop: {
        'base': '2rem',
        'lg': '8rem',
      },
    },
    rspacing: {
      DEFAULT: {
        1: '0.459375rem',
        2: '0.91875rem',
        3: '1.8375rem',
        // ...
      },
      tablet: {
        1: '0.65625rem',
        2: '1.3125rem',
        3: '2.625rem',
        // ...
      },
      desktop: {
        1: '0.9375rem',
        2: '1.875rem',
        3: '3.75rem',
        // ...
      },
    },
    plugins: [
      tailwindResponsivePlugin(),
    ],
  }
}
<div class="rp-1 text-base"></div>
<!-- This is equivalent to -->
<div class="p-[0.459375rem] tablet:p-[0.65625rem] desktop:p-[0.9375rem] text-[1rem] laptop:text-[1.5rem] dekstop:text-[2rem]"></div>