All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.karasiq.bootstrap4.buttons.ButtonStyles.scala Maven / Gradle / Ivy

package com.karasiq.bootstrap4.buttons

import com.karasiq.bootstrap.context.RenderingContext
import com.karasiq.bootstrap4.utils.Utils

trait ButtonStyles { self: RenderingContext with Utils ⇒
  import scalaTags.all._

  sealed trait ButtonSize extends ModifierFactory

  object DefaultButtonSize extends ButtonSize {
    val createModifier = Bootstrap.noModifier
  }

  final class ButtonSizeValue private[buttons](size: String) extends ButtonSize {
    val className = s"btn-$size"
    val createModifier = className.addClass
  }

  /**
    * @see [[https://getbootstrap.com/docs/4.0/components/buttons/#sizes]]
    */
  object ButtonSize {
    def default = DefaultButtonSize
    lazy val large = new ButtonSizeValue("lg")
    lazy val small = new ButtonSizeValue("sm")
  }
  
  class ButtonStyle private[buttons](style: String) extends ModifierFactory {
    val className = s"btn-$style"
    val createModifier = className.addClass
  }

  /**
    * @see [[https://getbootstrap.com/docs/4.0/components/buttons/]]
    */
  object ButtonStyle {
    def default = primary 
    lazy val primary = new ButtonStyle("primary")
    lazy val secondary = new ButtonStyle("secondary")
    lazy val success = new ButtonStyle("success")
    lazy val info = new ButtonStyle("info")
    lazy val warning = new ButtonStyle("warning")
    lazy val danger = new ButtonStyle("danger")
    lazy val light = new ButtonStyle("light")
    lazy val dark = new ButtonStyle("dark")
    lazy val link = new ButtonStyle("link")
  }

  class ButtonOutline private[buttons](style: String) extends ButtonStyle(s"outline-$style")

  object ButtonOutline {
    lazy val primary = new ButtonOutline("primary")
    lazy val secondary = new ButtonOutline("secondary")
    lazy val success = new ButtonOutline("success")
    lazy val info = new ButtonOutline("info")
    lazy val warning = new ButtonOutline("warning")
    lazy val danger = new ButtonOutline("danger")
    lazy val light = new ButtonOutline("light")
    lazy val dark = new ButtonOutline("dark")
    lazy val white = new ButtonOutline("white")
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy