@exuanbo/file-icons-js
File-specific icons for front-end project, extracted from file-icons/atom
Table of Contents
Demo
https://exuanbo.github.io/file-icons-js/
It's also a starter template for using in browser
Description
- CSS with self-hosted fonts and web fonts
- JavaScript for getting classes by file name with extension, specific directory name and programming language name
What's included
dist├── css│ ├── file-icons-cdn.css│ ├── file-icons-cdn.min.css│ ├── file-icons.css│ └── file-icons.min.css├── fonts│ ├── devopicons.woff2│ ├── file-icons.woff2│ ├── fontawesome.woff2│ ├── mfixx.woff2│ └── octicons.woff2└── js ├── file-icons.esm.js ├── file-icons.esm.min.js ├── file-icons.js └── file-icons.min.js 3 directories, 13 files
Installation
npm i @exuanbo/file-icons-js
Or download from Github Releases
Usage
Similar to font-awesome
,
Full list of available classes can be found in
Icon reference
CSS
dist/css├── file-icons-cdn.css├── file-icons-cdn.min.css├── file-icons.css└── file-icons.min.css
Add a link tag to head, or @import
Local
dist/css/file-icons.min.css
With CDN and Web Fonts
dist/css/file-icons-cdn.min.css
in which url
is remote,
Or entirely using CDN,
Customize
By default,
JavaScript
dist/js├── file-icons.esm.js├── file-icons.esm.min.js├── file-icons.js└── file-icons.min.js
// package.json
// dist/js/file-icons.esm.jsvar main = ;;
Node.js
1. CJS Module
const icons =
2. ES Module
Browser
1. Browserified Module
dist/js/file-icons.min.js
<!-- Locally --> <!-- With CDN -->
Then create an instance,
2. ES Module
dist/js/file-icons.esm.min.js
<!-- Locally --> <!-- With CDN -->
API Reference
getClass(name, options?)
Return Promise<string|string[]>
Note: this method is Promise based since version 3, and compatible with async/await
name
Type: String
Accept file name with extension as 'index.js'
, specific directory name as 'node_modules'
or '.github'
, programming language name as 'Javascript'
String ended with /
will be considered as directory, e.g '.emacs.d/'
options
Type: Object
options.color
Type: boolean
Default: true
Returned classes contain color 'icon js-icon medium-yellow'
options.array
Type: boolean
Default: false
Return an array of string ['icon', 'js-icon', 'medium-yellow']
Example
icons// -> Promise {<resolved>: "icon npm-icon medium-red"} icons// -> Promise {<resolved>: "icon js-icon medium-yellow"} icons// -> Promise {<resolved>: ['icon', 'node-icon', 'medium-green']} icons// -> Promise {<resolved>: ['icon', 'node-icon']}
Acknowledgement
TODO
- CDN support
- demo site
- webfont version of css
- ES module