Tailwind CSS

 Начало работы

- создаём next js проект

npx create-next-app my-project

Устанавливаем Tailwind

npm install -D tailwindcss postcss autoprefixer 

npx tailwindcss init -p

Добавляем пути к файлам в tailwind.config.js

module.exports = {

  content: [

    './pages/**/*.{js,ts,jsx,tsx}',

    './components/**/*.{js,ts,jsx,tsx}',

  ],

  theme: {

    extend: {},

  },

  plugins: [],

};

Добавляем директивы @tailwind в файл ./styles/globals.css

@tailwind base;

@tailwind components;

@tailwind utilities;


Примеры классов

flex - флекс элемент

justify-end, items-center - то же, что и justify-content: flex-end и align-items: center

p-2 - паддинг 2 rem или 32рх

my-5 - марджин по оси у 5 rem или 80рх

mt-8 - марджин топ 8 rem или 128рх

mb-5 - марджин боттом 5 rem или 80рх

max-w-4xl - максимальная ширина 896px https://tailwindcss.com/docs/max-width

bg-blue-500 - синий цвет фона

text-white - белый цвет текста

text-center - текст по центру

text-xl - размер шрифта 1,25 rem

text-2xl - размер шрифта 1,5 rem

font-bold - жирный шрифт

rounded - закруглить углы блока

Медиазапросы

Пример

class="block sm:inline-block"

Префикс sm: означает, что свойство появляется только на разрешении sm - 640рх и выше

Префиксы для медиа-запросов

sm - 640рх

md - 768рх

lg - 1024рх

xl - 1280рх

Так как Tailwind ориентируется на мобильные устройства, его префиксы действуют по принципу min-width. т.е распространяются на указанное разрешение и выше

Пример:

<div class="w-12 h-12  bg-pink-300 sm:bg-green-300 md:bg-red-500 lg:bg-blue-500"></div>

Также при помощи префиксов указывают псевдоклассы, например, hover:

<button class="bg-blue-500 p-3 text-white rounded text-xl hover:text-black hover:bg-blue-700">Click Me</button>

Переиспользуемость классов

В файле ./styles/globals.css можно указать общие свойства классов при помощи директивы @apply

@tailwind base;

@tailwind components;

.btn {

  @apply bg-blue-500 text-white font-bold py-2 px-4 rounded;

}

@tailwind utilities;

Теперь мы можем просто добавить btn как обычный CSS-класс в HTML

<button class="btn">Отправить</button>

<button class="btn px-6 py-4 bg-red-500">Отправить</button>

Настройки tailwind.config.js

Здесь можно установить пользовательские шрифты, анимацию, определенные брейкпоинты или настроить предварительно созданные служебные классы Tailwind.

//tailwind.config.jsmodule.exports = {

  purge: ["./src/**/*.{js,jsx,ts,tsx}", "./public/index.html"],

  darkMode: false, // or 'media' or 'class'

  theme: {

    extend: {

      fontFamily: {

        sans: [

          "AvenirLTPro-Heavy",

          "AvenirLTPro-Light",

          "AvenirLTPro-Black",

        ],

        body: ["AvenirLTPro-Medium"],

        light: ["AvenirLTPro-Light"],

      },

      screens: {

        xs: "320px",

        sx: "420px",

      },

      colors: {

        blue: {

          lighter: "#3064b1",

          light: "#CAE0FE",

          DEFAULT: "#0E71FB",

          dark: "#082959",

        },

        gray: {

          lightest: "#F7FAFC",

          lighter: "#EBEFF5",

          light: "#E6EAF0",

          DEFAULT: "#D7DBE0",

          dark: "#6E6E6E",

          darkest: "#333333",

        },

      },

      animation: {

        slideIn: "slideIn 200ms ease-in-out 1",

      },

      keyframes: {

        slideIn: {

          "0%": { transform: "translateX(-100vw)" },

          "100%": { transform: "translateX(0)" },

        },

      },

Источники: 

https://ux.pub/dexa/kastomnyie-effiekty-dlia-izobrazhienii-v-nextjs-s-pomoshchiu-tailwind-css-37ib

https://qwertybox.ru/articles/193952/

https://habr.com/ru/post/508844/

https://webformyself.com/v-dobryj-put-tailwind-css/