Hand-Coded Open Source Icons for the Web
Smaller than similar webfonts and making fewer network requests than other icon solutions, Geomicons Open is built from the ground up for performance. Designed on a grid for pixel-precision at standard sizes, each icon is hand-coded to avoid the extra bloat from traditional vector drawing applications.
Download the source or install via npm or Bower:
npm install geomicons-open
bower install geomicons-open
Include the client-side JavaScript file.
<script src="geomicons.min.js"></script>
Add the data-icon
attribute with an icon name to an element.
<span class="js-geomicon" data-icon="heart"></span>
Pass a nodelist to the geomicons.inject()
method to replace elements with SVG icons.
<script>
var icons = document.querySelectorAll('.js-geomicon');
geomicons.inject(icons);
</script>
var geomicons = require('geomicons-open');
var pathData = geomicons.paths.heart; // Returns the path's d attribute value
var svgString = geomicons.toString('heart'); // Returns an SVG string
For a server-side solution, you can use native SVG defs instead of the javascript method above. This method makes zero extra network requests beyond the HTML file that includes it.
Instead of linking to the geomicons.min.js
file, copy and paste the contents of the dist/geomicons-defs.svg
file in your HTML. This code will not show up in your page.
<svg xmnls="http://www.w3.org/2000/svg" width="0" height="0"><defs>...</defs></svg>
Use the SVG <use>
tag to create an instance of an icon.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="16" height="16">
<use xlink:href="#heart"></use>
</svg>
You can also create partials, helper methods, or components to streamline the development process.
If you're only using one or two icons in your markup, it's probably better to paste the SVG code inline.
Copy the icon from the website
or open the icon SVG file and copy and paste the SVG code.
Be sure to adjust the id
attribute to not conflict with other elements.
The SVG files in the dist/icons
folder should open in applications such as Adobe Illustrator and Sketch.
If you encounter any problems, please create an issue.
A React component for Geomicons Open is available on NPM.
npm install react-geomicons
See react-geomicons for more details.
Inline SVGs can be styled with CSS, just like any other HTML element.
Geomicons Open icons have the fill
attribute set to currentcolor
to inherit the foreground color.
Set the width, height, and other properties with additional CSS.
<style>
.geomicon { width: 1em; height: 1em; }
</style>
<span class="js-geomicon geomicon" data-id="heart"></span>
Each icon is designed on a 32 x 32px grid. This means icons will look best at multiples of 16. I recommend sizing icons based on your type scale, or using one of the following sizes: 16, 24, 32, 48, or 64px.
Leaving the default browser font size set at 16px, you can add styles that set width and height in ems and use multiples to keep the icons pixel perfect.
.geomicon {
width: 1em;
height: 1em;
}
This set is intended to cover the most common use cases, and some things are not well suited to be represented as an icon. I intend to add more, but if you have any requests, please Create an Issue.
Geomicons Open is a curated set of icons. Guidelines for contributing are coming soon.
MIT License