Table of Contents

Font Icon

Below are svg icons that are automatically compiled into fonts for use as text using Gulp.

Demonstration

AI


OpenAI


PyTorch

Browser


Brave


Chrome


Edge


Firefox


Internet Explorer


Opera

Code


CMake


Code::Blocks


Docker


Docker Compose


Gulp


Node.js


NPM


Pulsar


Visual Studio


Visual Studio Code

Design


Adobe Illustrator


Adobe Photoshop


Blender


Gimp


Inkscape


paint.net

Engine


Assault Cube


Cube Engine 2


Godot


Unity


Unreal Engine


Voxel Plugin

Interface


download


external


link


search

Interface File


file_blank

Language


C++


C#


CSS


.NET


HTML5


Java


JavaScript


OpenGL


Python


SASS

Media


Audacity


Movie Maker


OBS Studio


Power Tab Editor

Network


Apache


Nginx


Real VNC


TeamViewer

Office


Google Docs


LibreOffice


Microsoft Office


OpenOffice

Platform


Apple


Epic Games


Meta


PlayStation


Steam


Xbox

Project Management


Atlassian


Confluence


Gitea


GitHub


GitLab


Jira


Perforce


Redmine

Social


Instagram


LinkedIn


Twitch


X


YouTube

System


Android


Debian


iOS


Linux


MacOS


Windows

Version Control


Git


Subversion (SVN)


Tortoise Git


Tortoise SVN

Web


Akamai


AWS


Bootstrap


Drupal


Hostwinds


Linode


Wix

About

These SVG icons are automatically grouped into fonts based on the subdirectories that they are stored in. CSS is also separated by group for minimal data transferred to the client.

Implementation Example

HTML

<p class="iconcolor-ai-openai"><span class="icon-ai-openai"></span><br><span>OpenAI</span></p>

CSS Compiled

@font-face {
  font-family: font_icon_ai;
  src: url(/font_icon/ai/font_icon_ai.eot);
  src: url(/font_icon/ai/font_icon_ai.eot?#iefix) format('embedded-opentype'), local('☺'), url(/font_icon/ai/font_icon_ai.woff2) format('woff2'), url(/font_icon/ai/font_icon_ai.woff) format('woff'), url(/font_icon/ai/font_icon_ai.ttf) format('truetype'), url(/font_icon/ai/font_icon_ai.svg#font_icon_ai) format('svg');
  font-weight: 400;
  font-style: normal
}

[class*=" icon-ai-"],
[class^=icon-ai-] {
  font-family: font_icon_ai
}

.icon-ai-openai:before {
  content: "\E001"
}

.iconcolor-ai-openai {
  color: #10a37f !important
}

.iconcolor-ai-openai--background {
  color: #fff !important;
  background-color: #10a37f !important
}

Sass (SCSS) + JS Template

<%
var pathParts = fontPath.split('/'); // Split the fontPath by '/'
var subDir = pathParts[pathParts.length - 2]; // Get the second last part, which is 'subdir'
function getAutoGenColor(hexColor) { // Function to check brightness of hex color and return appropriate text color
    hexColor = hexColor.replace('#', '');
    var r = parseInt(hexColor.substring(0, 2), 16);
    var g = parseInt(hexColor.substring(2, 4), 16);
    var b = parseInt(hexColor.substring(4, 6), 16);
    var brightness = (r * 299 + g * 587 + b * 114) / 1000;
    return brightness > 128 ? '#000' : '#fff';
}
function isHexColor(color) { // Function to check if a string is a valid hex color code
    return /^([0-9A-F]{6})$/i.test(color);
}
%>@font-face {
    font-family: '<%= fontName %>';
    src: url('<%= fontPath %><%= fontName %>.eot'); /* IE9 Compat Modes */
    src: url('<%= fontPath %><%= fontName %>.eot?#iefix') format('embedded-opentype'),
          local('☺'), /* css hack to divert IE6-8 from downloading fonts it can't use */
          url('<%= fontPath %><%= fontName %>.woff2') format('woff2'), /* Super Modern Browsers */
          url('<%= fontPath %><%= fontName %>.woff') format('woff'), /* Pretty Modern Browsers */
          url('<%= fontPath %><%= fontName %>.ttf') format('truetype'), /* Safari, Android, iOS */
          url('<%= fontPath %><%= fontName %>.svg#<%= fontName %>') format('svg'); /* Legacy iOS */
    font-weight: normal;
    font-style: normal;
}

[class^="icon-<%= subDir %>-"], [class*=" icon-<%= subDir %>-"] {
    font-family: '<%= fontName %>';
}
<% console.log(glyphs); %><% glyphs.forEach(function(glyph) {
    var fileName = glyph.fileName;
    var fileColor = null;
    var hexColorMatch = fileName.match(/-(\w{6})$/);
    if (hexColorMatch && isHexColor(hexColorMatch[1])) {
        fileColor = hexColorMatch[1];
        fileName = fileName.replace(/-(\w{6})$/, '');
    }%>
.icon-<%= subDir %>-<%= fileName %>:before {
    content: "\<%= glyph.codePoint %>";
}
<% if (fileColor) { %>
.iconcolor-<%= subDir %>-<%= fileName %> {
    color: #<%= fileColor %> !important;
}
.iconcolor-<%= subDir %>-<%= fileName %>--background {
    color: <%= getAutoGenColor(fileColor) %> !important;
    background-color: #<%= fileColor %> !important;
}
<% } %>
<% }); %>

Special Thanks

This page is comprised of partially or heavily modified elements from the following source(s):