Rubicons
Lightweight, pure Ruby SVG icon toolkit inspired by React Icons.
Install / Use
/learn @insomnius/RubiconsREADME
Rubicons
Rubicons is a lightweight, pure Ruby SVG icon toolkit inspired by React Icons. It provides a simple and consistent way to include beautiful SVG icons in your Ruby and Rails applications without external dependencies.
Features
- Pure Ruby implementation - no JavaScript dependencies
- SVG-based icons - scalable without quality loss
- Multiple icon libraries - access thousands of icons from popular icon sets
- Rails integration - seamlessly works with Rails via helper methods
- Customizable - easily change size, color, and add CSS classes
Installation
Add this line to your application's Gemfile:
gem 'rubicons'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install rubicons
Icon Collections
Rubicons provides access to 23 popular icon libraries with thousands of icons:
| Icon Library | Version | License | Count | Example Icons |
| --- | --- | --- | ---: | --- |
| Bootstrap | v1.11.3 | MIT | 2,050 | alarm, heart, calendar, circle, house |
| Box Icons | Latest | MIT/CC 4.0 | 1,634 | bx-home, bx-search, bx-menu, bx-user, bxl-github |
| Circum Icons | Latest | MPL-2.0 | 288 | alarm-on, align-center-h, arrow, check, user |
| Devicon | v2.16.0 | MIT | 1520 | aarch64-line.svg, aarch64-original.svg, aarch64-plain.svg, adonisjs-original-wordmark.svg, adonisjs-original.svg |
| Feather | v4.29.1 | MIT | 287 | activity, alert-circle, airplay, message-square, star |
| Font Awesome 5 | v5.15.4 | Multiple | 1,612 | brands-github, solid-user, regular-heart, solid-home, solid-star |
| Font Awesome 6 | v6.5.2 | Multiple | 2,045 | brands-github, solid-user, solid-house, solid-flag, solid-shield |
| Heroicons v1 | v1.0.6 | MIT | 460 | outline-academic-cap, outline-archive, solid-home, outline-menu, solid-user |
| Heroicons v2 | v2.1.3 | MIT | 1,176 | 16-solid-academic-cap, 24-outline-home, 24-solid-user, 20-solid-calendar, 16-outline-bell |
| Ionicons 4 | v4.6.4-1 | MIT | 696 | ios-add, ios-alarm, ios-home, md-mail, md-menu |
| Ionicons 5 | v5.5.4 | MIT | 1,332 | accessibility, add-circle, home, mail, menu |
| Line Awesome | Latest | MIT/Good Boy | 1,544 | 500px, accessible-icon, github, user-solid, heart |
| Lucide | Latest | ISC | 1,565 | heart, activity, book, check, user |
| Material Design | v4.0.0 | Apache 2.0 | 6862 | action-3d-rotation, action-accessibility, action-account-circle, content-home, action-settings |
| Octicons | v18.3.0 | MIT | 576 | accessibility-16, alert-16, check-16, code-16, mark-github-16 |
| Phosphor Icons | Latest | MIT | 9,072 | acorn-bold, user-bold, heart-fill, house-line, calendar |
| Radix UI | Latest | MIT | 318 | accessibility, activity-log, align-bottom, align-center-horizontally, bookmark |
| Remix Icon | v4.2.0 | Apache 2.0 | 2,860 | arrow-down-circle-fill, home-line, user-fill, search-line, check-line |
| Tabler Icons | v3.31.0 | MIT | 5,880 | filled-accessible, filled-home, filled-user, filled-search, brand-github |
| Themify | v1.0.1 | SIL OFL/MIT | 352 | angle-down, agenda, alarm-clock, alert, align-center |
| Typicons | v2.1.2 | SIL OFL | 336 | anchor, adjust-brightness, adjust-contrast, archive, heart |
| Weather Icons | v2.0.12 | SIL OFL 1.1 | 219 | wi-alien, wi-barometer, wi-celsius, wi-cloud-refresh, wi-cloud-down |
Usage
Standalone Usage
You can use Rubicons in any Ruby application without Rails. First, require the gem:
require 'rubicons'
Then use any of the icon libraries:
Using Lucide Icons
# Get an icon with default options (medium size)
svg = Rubicons::Lucide.icon('heart')
# With custom size
svg = Rubicons::Lucide.icon('heart', size: :lg)
# With custom class
svg = Rubicons::Lucide.icon('heart', class: 'text-red-500')
# List all available icons
icon_names = Rubicons::Lucide.available_icons
Using Bootstrap Icons
# Get an icon with default options
svg = Rubicons::Bootstrap.icon('heart-fill')
# With custom size
svg = Rubicons::Bootstrap.icon('heart-fill', size: :xl)
# With custom class
svg = Rubicons::Bootstrap.icon('heart-fill', class: 'text-danger')
Using Font Awesome Icons
# Font Awesome 5
svg = Rubicons::FontAwesome5.icon('solid-paper-plane')
# Font Awesome 6
svg = Rubicons::FontAwesome6.icon('solid-user-nurse')
Using Heroicons
# Heroicons v1
svg = Rubicons::Heroicons.icon('outline-folder-remove')
# Heroicons v2
svg = Rubicons::Heroicons2.icon('16-solid-tv')
Rails Integration
In a Rails application, Rubicons automatically integrates with ActionView to provide helper methods for each icon library:
<%# Lucide Icons %>
<%= lucide_icon 'heart', class: 'text-red-500', size: :lg %>
<%# Radix Icons %>
<%= radix_icon 'heart', class: 'icon-primary' %>
<%# Bootstrap Icons %>
<%= bootstrap_icon 'heart-fill', class: 'text-danger' %>
<%# Box Icons %>
<%= box_icon 'bx-home' %>
<%# Font Awesome 5 %>
<%= fa5_icon 'solid-paper-plane', size: :xl %>
<%# Font Awesome 6 %>
<%= fa6_icon 'solid-user-nurse' %>
<%# Heroicons v1 %>
<%= heroicon 'outline-folder-remove' %>
<%# Heroicons v2 %>
<%= heroicon2 '16-solid-tv' %>
<%# Circum Icons %>
<%= circum_icon 'arrow' %>
<%# Feather Icons %>
<%= feather_icon 'activity' %>
<%# Ionicons 4 %>
<%= ion4_icon 'home' %>
Available Sizes
All icons support the following size options:
| Size | Dimensions |
| --- | --- |
| :xs | 12×12 |
| :sm | 16×16 |
| :md | 20×20 (default) |
| :lg | 24×24 |
| :xl | 32×32 |
| :2xl | 40×40 |
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/insomnius/rubicons.
Code of Conduct
Code of conduct is based on the Contributor Covenant, version 2.0. Please read it to understand our expectations for participants.
License
The gem is available as open source under the terms of the MIT License.
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
