Module: RailsIcons::Helpers::IconHelper

Defined in:
lib/rails_icons/helpers/icon_helper.rb

Instance Method Summary collapse

Instance Method Details

#encoded_icon(name, library: RailsIcons.configuration.default_library, from: library, variant: nil, **arguments) ⇒ String

Returns a base64-encoded data URI for an SVG icon

Examples:

encoded_icon "chevron-down"
# => "data:image/svg+xml;base64,PHN2ZyB4bWxucz0..."

Parameters:

  • name (String)

    The icon name

  • library (String) (defaults to: RailsIcons.configuration.default_library)

    The icon library (defaults to RailsIcons configuration)

  • from (String) (defaults to: library)

    Syntactic sugar for a cleanly readable view layer API (preferred over ‘library`)

  • variant (String) (defaults to: nil)

    The icon variant (optional)

  • arguments (Hash)

    Additional arguments including class, data, stroke_width, etc.

Returns:

  • (String)

    A base64-encoded data URI string (e.g. “data:image/svg+xml;base64,…”)



42
43
44
45
46
47
48
49
50
51
# File 'lib/rails_icons/helpers/icon_helper.rb', line 42

def encoded_icon(name, library: RailsIcons.configuration.default_library, from: library, variant: nil, **arguments)
  svg_content = Icons::Icon.new(
    name: name,
    library: from || library,
    variant: variant,
    arguments: arguments
  ).svg

  "data:image/svg+xml;base64,#{Base64.strict_encode64(svg_content)}"
end

#icon(name, library: RailsIcons.configuration.default_library, from: library, variant: nil, **arguments) ⇒ ActiveSupport::SafeBuffer

Renders an SVG icon

Examples:

<%= icon "chevron-down" %>
<%= icon "search", class: "text-blue-500" %>
<%= icon "check", variant: "solid", library: "heroicons" %>

Parameters:

  • name (String)

    The icon name

  • library (String) (defaults to: RailsIcons.configuration.default_library)

    The icon library (defaults to RailsIcons configuration)

  • from (String) (defaults to: library)

    Syntactic sugar for a cleanly readable view layer API (preferred over ‘library`)

  • variant (String) (defaults to: nil)

    The icon variant (optional)

  • arguments (Hash)

    Additional arguments including class, data, stroke_width, etc.

Returns:

  • (ActiveSupport::SafeBuffer)

    An HTML-safe SVG string



20
21
22
23
24
25
26
27
# File 'lib/rails_icons/helpers/icon_helper.rb', line 20

def icon(name, library: RailsIcons.configuration.default_library, from: library, variant: nil, **arguments)
  Icons::Icon.new(
    name: name,
    library: from || library,
    variant: variant,
    arguments: arguments
  ).svg.html_safe
end