JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 11
  • Score
    100M100P100Q75357F
  • License ISC

buttons components for tailwind

Package Exports

  • @qpokychuk/tailwind-button-plugin
  • @qpokychuk/tailwind-button-plugin/dist/index.esm.js
  • @qpokychuk/tailwind-button-plugin/dist/index.umd.min.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@qpokychuk/tailwind-button-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

🧩 Buttons Plugin for Tailwind CSS

Tailwind CSS плагин для создания настраиваемых кнопок с поддержкой темизации, вариантов, размеров, состояний и утилит.

Преимущества плагина

✅ Работает из коробки: всего один класс btn
🎨 Полная тема: цвета, размеры, варианты
⚙️ Конфигурация и кастомизация
🎯 Target-селекторы: hover/focus от родителей и peer
🛠️ Создан для Tailwind CSS, дружит с утилитами


🚀 Установка

Установите плагин через NPM:

npm install @qpokychuk/tailwind-button-plugin --save-dev

Добавьте его в ваш tailwind.config.js:

// tailwind.config.js
module.exports = {
  plugins: [
    require('@qpokychuk/tailwind-button-plugin'),
  ],
};

⚙️ Базовое использование

Примените базовый класс btn, затем добавьте дополнительные модификаторы для настройки внешнего вида:

<button class="btn">text here</button>

🎨 Цвет кнопки

Настройте цвет кнопки с помощью утилиты btn-{color} — где color соответствует вашей теме Tailwind:

<button class="btn btn-indigo">text here</button>
<button class="btn btn-blue">text here</button>
<button class="btn btn-red">text here</button>

Для произвольного значения цвета используйте квадратные скобки:

<button class="btn btn-[#B33771]">text here</button>

Цвета кнопок


🧩 Варианты кнопок

Поддерживаются следующие варианты: fill | contur | light | text

<button class="btn">text here</button> <!-- По умолчанию: fill -->
<button class="btn btn-contur">text here</button>
<button class="btn btn-light">text here</button>
<button class="btn btn-text">text here</button>

💡 Также доступны: whitebg, icon — для специальных случаев.

Варианты кнопок


📏 Размер кнопки

Выберите размер с помощью btn-{size}:

<button class="btn btn-xs">text here</button>
<button class="btn btn-sm">text here</button>
<button class="btn btn-base">text here</button> <!-- По умолчанию -->
<button class="btn btn-lg">text here</button>
<button class="btn btn-xl">text here</button>
<button class="btn btn-2xl">text here</button>

Кастомные размеры:

<button class="btn btn-[50px]">text here</button>

Размеры кнопок


🛠️ Модификаторы

Используйте стандартные Tailwind модификаторы:

<button class="btn btn-sm md:btn-lg">
  Adaptive Button
</button>
<button class="btn btn-blue-300 dark:btn-blue-500">
  Support dark mode
</button>
<button class="btn btn-red hover:btn-green">
  Custom hover
</button>

🌀 Закругление

Используйте стандартные Tailwind-утилиты rounded:

<button class="btn rounded">text here</button>
<button class="btn rounded-xl">text here</button>
<button class="btn rounded-full">text here</button>

Закругления


🌑 Тени

Применяйте стандартные Tailwind-утилиты shadow:

<button class="btn shadow-md hover:shadow-xl active:shadow-md">text here</button>

Тени


👨‍👧 Target-селекторы

Чтобы эффекты наведения, фокуса и клика работали при взаимодействии с родительским или соседним элементом:

<a class="absolute inset-0 flex btn-group">
  <button class="btn m-auto">text here</button>
</a>

<a class="absolute inset-0 flex btn-peer">text here</a>
...
<button class="btn m-auto">icon</button>

🛠 Расширение темы

Вы можете переопределить или расширить размеры кнопок:

// tailwind.config.js
module.exports = {
  theme: {
    btnSize: {
      xs: '28px',
      sm: '32px',
      base: '42px',
      lg: '48px',
      xl: '56px',
      ['2xl']: '64px',
    },
  },
};

🧪 Конфигурация плагина

Вы можете настроить поведение плагина, передав объект опций:

// tailwind.config.js
plugins: [
  require('@qpokychuk/tailwind-button-plugin')({
    className: 'btn',
    baseStyles: {},
    colorHoverOffset: 15,
    lightColorOpacity: 0.1,
    lightColorOpacityHover: 0.2,
    withFocusStyles: false,
    targetGroupSelector: '.btn-group',
    targetPeerSelector: '.btn-peer',
    hoverStyles: {
      background: 'var(--tw-btn-color-light)',
    },
    focusStyles: {
      zIndex: '2',
    },
    activeStyles: {
      transform: 'translateY(2px)',
    },
    disabledStyles: {
      opacity: '0.4',
      pointerEvents: 'none',
    },
  }),
]
Параметр Значение по умолчанию Описание
className 'btn' Базовый класс для кнопок
baseStyles {} Базовые стили, которые переопределяют дефолтные
colorHoverOffset 15 Смещение цвета при наведении (можно отрицательное)
lightColorOpacity 0.1 Прозрачность цвета в варианте light
lightColorOpacityHover 0.2 Прозрачность при hover в варианте light
withFocusStyles false Добавлять ли стили при фокусе
targetGroupSelector '.btn-group' Селектор для наследования состояний от родителя
targetPeerSelector '.btn-peer' Селектор для наследования состояний от соседа
hoverStyles { background: 'var(--tw-btn-color-light)' } Стили при hover
focusStyles { zIndex: '2' } Стили при focus
activeStyles { transform: 'translateY(2px)' } Стили при active
disabledStyles { opacity: '0.4', pointerEvents: 'none' } Стили для disabled состояния

🔗 Полезные ссылки