Module: StimulusPlumbers::Themes::Tailwind::Button

Included in:
StimulusPlumbers::Themes::TailwindTheme
Defined in:
lib/stimulus_plumbers/themes/tailwind/button.rb

Constant Summary collapse

VARIANTS =
{
  primary:     %w[
    bg-[--sp-color-primary]
    text-[--sp-color-primary-fg]
    hover:bg-[--sp-color-primary]/90
    focus-visible:ring-[--sp-focus-ring-color]
  ].freeze,
  secondary:   %w[
    bg-[--sp-color-muted]
    text-[--sp-color-fg]
    hover:bg-[--sp-color-border]
  ].freeze,
  outline:     %w[
    border border-[--sp-color-border]
    bg-transparent
    text-[--sp-color-fg]
    hover:bg-[--sp-color-muted]
  ].freeze,
  destructive: %w[
    bg-[--sp-color-destructive]
    text-[--sp-color-destructive-fg]
    hover:bg-[--sp-color-destructive]/90
  ].freeze,
  ghost:       %w[hover:bg-[--sp-color-muted] text-[--sp-color-fg]].freeze,
  link:        %w[text-[--sp-color-primary] underline-offset-4 hover:underline].freeze
}.freeze
SIZES =
{
  sm: %w[h-8 px-[--sp-space-3] text-[--sp-text-sm]].freeze,
  md: %w[h-9 px-[--sp-space-4] text-[--sp-text-base]].freeze,
  lg: %w[h-11 px-[--sp-space-6] text-[--sp-text-lg]].freeze
}.freeze
FLEX_ALIGN =
{
  row: {
    left:   "justify-start",
    center: %w[justify-center items-center].freeze,
    right:  "justify-end",
    top:    "items-start",
    bottom: "items-end"
  }.freeze,
  col: {
    top:    "justify-start",
    center: %w[justify-center items-center].freeze,
    bottom: "justify-end",
    left:   "items-start",
    right:  "items-end"
  }.freeze
}.freeze
BASE =
%w[
  inline-flex items-center justify-center gap-2 font-medium
  rounded-[--sp-radius-md] transition-colors
  focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2
  disabled:pointer-events-none disabled:opacity-50
].freeze
GROUP_BASE =
%w[flex gap-[--sp-space-2]].freeze