0.0.1 • Published 2 years ago

@lifterlms/fontawesome v0.0.1

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
2 years ago

LifterLMS Font Awesome

A wrapper around Font Awesome and a collection of related React components for use in LifterLMS projects.


Changelog

View the Changelog

Configure and generate CSS files

To create the relevant CSS file which includes all the free icons and necessary CSS classes, create an SCSS file:

$llms-css-prefix: my-prefix-fa;
@import '@lifterlms/fontawesome/src/fontawesome';

The $llms-css-prefix variable allows creation of the Font Awesome CSS file in a "no-conflict" mode using a different prefix than the default fa prefix commonly used with Font Awesome. The default prefix, llms-fa is used by the LifterLMS core plugin. Any other projects should choose a unique prefix in order to avoid conflicts with other plugins (or LifterLMS) which may be loading various other versions of Font Awesome.

Then add an entry to your webpack config file, if you're using @lifterlms/scripts/config/webpack.config.js:

const { resolve } = require( 'path' ),
	config = generate( {} );

config.entry.fontawesome = resolve( './src/scss/fa-file.scss' );

module.exports = config;

When building you'll now find the Font Awesome CSS file at assets/css/fa-file.scss and the assets/fonts directory will contain copies of the Font Awesome font files.

Using SVGs

The above steps enable using Font Awesome as a webfont. If you wish to instead use SVGs, you may wish to copy the SVGs to your project's directory. The svg script can be used to copy the source SVGs into you project.

node ./node_modules/@lifterlms/fontawesome/bin/svg.js [destDir]    

The destDir parameter defaults to ./src/img/fontawesome if omitted.

Component and API Docs

getMetadata

Retrieves metadata for a given icon.

Parameters

  • iconId string: The icon ID.

Returns

  • IconMeta|boolean: An icon metadata object or false if the icon can't be found.

Icon

Renders a Font Awesome icon.

Parameters

  • props Object: Component properties.
  • props.icon string: The Icon ID.
  • props.iconStyle string: The icon style, enum: "solid", "regular", or "brands".
  • props.iconPrefix string: The project's icon prefix.
  • props.label string: The (optional) accessibility label to display for the icon.
  • props.wrapperProps ...Object: Any remaining properties which are passed to the icon wrapper component.

Returns

  • WPElement: The component.

IconPicker

Renders an icon picker component, intended to be used within the WordPress block editor.

Parameters

  • props Object: Component properties.
  • props.icon string: The Icon ID.
  • props.iconStyle string: The icon style, enum: "solid", "regular", or "brands".
  • props.iconPrefix string: The project's icon prefix.
  • props.controlProps Object: Properties to pass through to the component.
  • props.onChange Function: Function called when an icon is selected from the picker. The function is passed three properties: The icon ID, the currently selected style, and the icon's predefined label.

Returns

  • BaseControl: A BaseControl containing the icon picker component.