Skip to content

Commit

Permalink
icons script which creates sass list of icons
Browse files Browse the repository at this point in the history
  • Loading branch information
paulcpederson committed Apr 18, 2015
1 parent f4972e2 commit 2a0bb2e
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 1 deletion.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,6 @@ docs/build
dist/
docs/source/assets/img
docs/source/assets/js/libs/calcite-web.js
calcite-web.zip
calcite-web.zip
docs/source/icons.json
lib/sass/calcite-web/icons/sets/
39 changes: 39 additions & 0 deletions bin/icons.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env node
// Builds a .scss file with all site icons
var glob = require('glob')
var fs = require('fs')
var path = require('path')
var format = require('util').format

var sets = ['calcite', 'calcite-large', 'vecticons']

function comma (index, array) {
var needsComma = index !== array.length - 1
return needsComma ? ',' : ''
}

function formatLine (files, i) {
var icon = path.basename(files[i], '.svg')
return format('\n "%s"%s', icon, comma(i, files))
}

function parseFiles (setName, index) {
var files = glob.sync(format('lib/img/icons/%s/*.svg', setName))
var sassStream = fs.createWriteStream(format('lib/sass/calcite-web/icons/sets/%s.scss', setName), 'utf8')

dataStream.write(format('\n "%s": [', setName))
sassStream.write(format('$%s-icons:', setName))

files.forEach(function (file, i) {
var line = formatLine(files, i)
dataStream.write(line)
sassStream.write(line)
})
sassStream.end(';')
dataStream.write(format('\n ]%s', comma(index, sets)))
}

var dataStream = fs.createWriteStream('docs/source/icons.json', 'utf8')
dataStream.write('{')
sets.forEach(parseFiles)
dataStream.end('\n}')
15 changes: 15 additions & 0 deletions lib/sass/calcite-web/icons/_icons.scss
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
// ↳ http://esri.github.io/calcite-web/icons/
// ↳ icons → _overview.md

@import "sets/calcite-large";
@import "sets/calcite";
@import "sets/vecticons";

@mixin icons() {
// Basic Icon Styles
[class*="icon-"] {
Expand All @@ -21,6 +25,17 @@
.icon-close {
content: "×"
}

@each $icon in $calcite-large-icons {
.calcite-large-#{$icon} { background-image: url('lib/sass/calcite-web/icons/calcite-large/#{$icon}.svg'); }
}
@each $icon in $calcite-icons {
.calcite-#{$icon} { background-image: url('lib/sass/calcite-web/icons/calcite/#{$icon}.svg'); }
}
@each $icon in $vecticons-icons {
.icon-#{$icon} { background-image: url('lib/sass/calcite-web/icons/vecticons/#{$icon}.svg'); }
}

}

@if $include-icons == true {
Expand Down

0 comments on commit 2a0bb2e

Please sign in to comment.