Icons as web components.
This package does not register component names. See the use section for more information.
See a live demonstration.
npm i -S @substrate-system/icons
Visible in the src folder, the filename corresponds to the default component name.
See the demo page for a list of all components with names.
@substrate-system/icons/eye-regular
@substrate-system/icons/eye-slash
@substrate-system/icons/edit-square
@substrate-system/icons/edit-pencil
This exposes ESM and common JS via package.json exports
field.
import '@substrate-system/icons/eye-regular'
require('@substrate-system/icons/eye-regular')
In the interest of interoperability, we do not define any components, you
will need to call customElements.define('comonent-name', ComponentClass)
yourself:
import { EditSquare } from '@substrate-sustem/icons'
customElements.define('component-name', EditSquare)
Server-side render by importing from the path /ssr
.
import { githubLogo } from '@substrate-system/icons/ssr'
// this is a function that returns a string
const html = githubLogo()
The default tag name is exposed as TAG
static property on each class.
You can override this property to set something custom.
import { register, EditSquare } from '@substrate-system/icons/eye-regular'
EditSquare.TAG = 'exmaple-name'
register()
// now use it like `<example-name />`
Or call the helper function, regiser
:
import { register } from '@substrate-system/icons'
// this will load and register all components,
// using the default component names
register()
Or register components individually, with the default names:
import { regiser } from '@substrate-system/icons/edit-pencil'
// this will register with the default component name, 'edit-pencil'
register()
See the isRegistered
helper function in @substrate/web-component
for help with name collisions.
import '@substrate-system/icons/eye-regular'
Pass in a title
attribute to change the svg
title. If title
is omitted,
it will render with a default title
.
<div>
<eye-regular title="See something"></eye-regular>
</div>
This package exposes minified JS files too. Copy them to a location that is accessible to your web server, then link to them in HTML.
cp ./node_modules/@substrate-system/icons/dist/eye-regular.min.js ./public
<script type="module" src="./eye-regular.min.js"></script>
These icons come from the free SVG files of fontawesome.