Module: RailsIcons::Helpers::SpriteHelper

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

Instance Method Summary collapse

Instance Method Details

#icons_sprite(icons = nil, library: nil, variant: nil) ⇒ ActiveSupport::SafeBuffer

Returns the inline SVG sprite content containing all symbols

Examples:

<%= icons_sprite %>
<%= icons_sprite(["check", "search", "menu"]) %>
<%= icons_sprite(["check", "search"], library: "heroicons", variant: "outline") %>

Parameters:

  • icons (Array<String>) (defaults to: nil)

    Optional array of icon names to include (defaults to all configured icons)

  • library (String) (defaults to: nil)

    Optional library to use for icons

  • variant (String) (defaults to: nil)

    Optional variant to use for icons

Returns:

  • (ActiveSupport::SafeBuffer)

    An HTML-safe SVG string containing ‘<symbol>` elements



47
48
49
# File 'lib/rails_icons/helpers/sprite_helper.rb', line 47

def icons_sprite(icons = nil, library: nil, variant: nil)
  Icons::Sprite.new(icons: icons, library: library, variant: variant).svg.html_safe
end

#sprite_icon(name, library: nil, variant: nil, sprite_location: nil, **arguments) ⇒ ActiveSupport::SafeBuffer

Renders an SVG icon from a sprite, compatible with Rails Icons API

Examples:

<%= sprite_icon "chevron-down" %>
<%= sprite_icon "search", class: "text-blue-500" %>
<%= sprite_icon "check", variant: "solid", library: "heroicons" %>
<%= sprite_icon "heart", library: "lucide", data: { controller: "favorite" } %>

Parameters:

  • name (String)

    The icon name

  • library (String) (defaults to: nil)

    The icon library (defaults to RailsIcons configuration)

  • variant (String) (defaults to: nil)

    The icon variant (optional)

  • sprite_location (String) (defaults to: nil)

    Override sprite URL (optional)

  • arguments (Hash)

    Additional arguments including class, data, stroke_width, etc.

Returns:

  • (ActiveSupport::SafeBuffer)

    An HTML-safe SVG string referencing a sprite symbol



24
25
26
27
28
29
30
31
32
# File 'lib/rails_icons/helpers/sprite_helper.rb', line 24

def sprite_icon(name, library: nil, variant: nil, sprite_location: nil, **arguments)
  Icons::SpriteIcon.new(
    name: name,
    library: library || RailsIcons.configuration.default_library,
    variant: variant,
    sprite_location: sprite_location,
    arguments: arguments
  ).svg.html_safe
end