Facade for the JS/SVG version of FontAwesome
Facade for the JS/SVG version of the FontAwesome icons.
Set up Scalajs-Bundler for your project.
In your build.sbt
:
resolvers += "jitpack" at "https://jitpack.io"
libraryDependencies += "com.github.fdietze.scala-js-fontawesome" %%% "scala-js-fontawesome" % "a412650e7f"
Use it like described in the api documentation (https://fontawesome.com/how-to-use/font-awesome-api):
import fontAwesome._
fontawesome.icon(freeSolid.faTrash).node
fontawesome.icon(freeSolid.faTrash).html
fontawesome.icon(freeSolid.faTrash).`abstract`
fontawesome.layer(push => {
push(fontawesome.icon(freeSolid.faCircle, new Params{
styles = scalajs.js.Dictionary[String]( "color" -> "#4EBA4C" )}))
push(fontawesome.icon(freeSolid.faSync, new Params{
transform = new Transform{size = 10.0}
classes = scalajs.js.Array("fa-spin")
styles = scalajs.js.Dictionary[String]( "color" -> "white" )
}))
})
Also Check out the Facade Code: FontAwesome.scala.
Feel free to open issues.
import fontAwesome._
import outwatch._
import scala.scalajs.js
def abstractElementToVNode(tree: AbstractElement): VNode = {
import outwatch.dsl.{attr, svgTag}
svgTag(tree.tag)(
tree.attributes.map { case (name, value) => attr(name) := value }.toSeq,
tree.children.fold(new js.Array[VNode])(_.map(abstractElementToVNode)),
)
}
implicit def renderFontAwesomeIcon(icon: IconLookup): VNode =
abstractElementToVNode(fontawesome.icon(icon).`abstract`(0))
implicit def renderFontAwesomeObject(icon: FontawesomeObject): VNode =
abstractElementToVNode(icon.`abstract`(0))
span(freeSolid.faBolt)