kartik-v/yii2-icons Set of icon frameworks for use in Yii Framework 2.0

extensionfonticon

Krajee Logo
yii2-icons Donate       kartikv

Latest Stable Version Latest Unstable Version License Total Downloads Monthly Downloads Daily Downloads

This extension offers an easy method to setup various icon frameworks to work with Yii Framework 2.0. Most popular and free icon frameworks available are currently supported. This list may be extended in future based on demand and feedback.

  1. Bootstrap Glyphicons
  2. Font Awesome
  3. Unicode Icons: A collection of unicode symbols made available as CSS icons by Krajee
  4. Elusive Icons
  5. Typicons
  6. Web Hosting Hub Glyphs
  7. JQuery UI Icons
  8. Socicon Icons: Needs you to add attribution to the icon source.
  9. Octicons: The Github icons collection.
  10. Flag-Icons
  11. Open Iconic Icons
  12. IcoFont Icons

Demo

You can see a demonstration here and API Code Documentation on usage of this extension with documentation and examples.

Installation

The preferred way to install this extension is through composer.

Note: Check the composer.json for this extension's requirements and dependencies. Read this web tip /wiki on setting the minimum-stability settings for your application's composer.json.

Either run

$ php composer.phar require kartik-v/yii2-icons "@dev"

or add

"kartik-v/yii2-icons": "@dev"

to the require section of your composer.json file.

Usage

Global Setup

In case you wish to setup one Icon framework globally, set the parameter icon-framework in the params array of your Yii Configuration File.

'params' => [
  'icon-framework' => \kartik\icons\Icon::FAS,  // Font Awesome Icon framework
]

To initialize the globally setup framework in your view, call this code in your view or view layout file.

use kartik\icons\Icon;
Icon::map($this);  

Per View Setup

You can also call each icon-framework individually in your view or view layout like below. Map any icon framework within each view as in the example below.

use kartik\icons\Icon;
Icon::map($this, Icon::EL); // Maps the Elusive icon font framework

Displaying Icons

After mapping your icon framework with one of the options above, you can display icons using Icon::show method. Icons can be displayed using one of the options below:

use kartik\icons\Icon;

// Option 1: Uses the `icon-framework` setup in Yii config params. 
echo Icon::show('user'); 

// Option 2: Specific Icon Call in a view. Additional options can also be passed to style the icon.
echo Icon::show('user', ['class'=>'fa-2x', 'framework' => Icon::FAS]); 

NOTE: The kartik\icons\Icon::show method outputs a HTML formatted text. So in order to display icons in Yii-2 components like Navbar or Nav, you must set encodeLabels to false.

$items = [
    ['label' => Icon::show('home') . 'Home', 'url' => ['/site/index']],
];

// Your other code

/* Note you must encodeLabels to false to display icons in labels */
echo \kartik\nav\NavX::widget([
    'items' => $items,
    'encodeLabels' => false
]);

// Your other code

Displaying Stacked Icons

You can also display stacked icons for frameworks like Font Awesome, where this is supported. For example:

use kartik\icons\Icon;
// fa-twitter on fa-square
 Icon::showStack('twitter', 'square', ['class'=>'fa-lg'], ['framework' => Icon::FAB], ['framework' => Icon::FAR])

// fa-flag on fa-circle
 Icon::showStack('flag', 'circle', ['class'=>'fa-lg'], ['class'=>'fa-inverse']);

Add Custom Icons

You can add custom icon sets to the list of available frameworks.

use kartik\icons\Icon;
// add framework
Icon::addFramework('custom', [
    'class' => '\common\icons\CustomIconAsset',
    'prefix' => 'custom-icon',
]);

// map to view file
Icon::map($this, 'custom');

// show the icon
echo Icon::show('menu',['framework' => 'custom']);
namespace common\icons;
class CustomIconAsset extends \yii\web\AssetBundle
{
    public $sourcePath = '@common/icons/assets/custom';
    public $depends = array(
        'yii\web\YiiAsset',
        'yii\bootstrap4\BootstrapAsset'
    );
    public $css=[
        'css/animation.css',
        'css/custom-codes.css',
        'css/custom-embedded.css',
        'css/custom-ie7.css',
        'css/custom-ie7-codes.css',
        'css/custom.css',
    ];
}

The above asset bundle uses files genereted by http://fontello.com/.

License

yii2-icons is released under the BSD-3-Clause License. See the bundled LICENSE.md for details.

Changelog

Change Log: yii2-icons

Version 1.4.8

Date: 04-Mar-2022

  • (enh #49, #50): Enhance compatibility for PHP 8.1.
  • Enhance & standardize php docs for new website https://docs.krajee.com.

Version 1.4.7

Date: 08-Apr-2021

  • (enh #45): Revert to use default Font Awesome CDN.

Version 1.4.6

Date: 12-Jan-2021

  • (enh #43): Use CDN link to avoid impact China sites.
  • (enh #42): Update FontAwesome to use v5.13.0.
  • (enh #41): Support for Font Awesome duotone and any other Pro icons.
  • (enh #39): Correct deprecated params use for Icon::show.
  • (enh #36): Update FontAwesome to use v5.0.13.

Version 1.4.5

Date: 20-Sep-2018

  • Enhancements for Font Awesome 5.x layering features.
  • Ability to override Font Awesome Free 5.x asset load via Yii2 Asset Manager.
  • Remove Font Awesome 4.x support and include load Font Awesome Free 5.x JS/SVG asset
  • Enhancements to support Bootstrap 4.x
  • Move all source code to src directory

Version 1.4.4

Date: 09-Mar-2018

  • (enh #34, #35): Add support for Font Awesome 5 (Free & Pro versions) and icon layering.

Version 1.4.4

Date: 10-Nov-2017

  • Cleanup composer and update dev-master alias.
  • (enh #30, #33): Update Elusive Icons library source
  • (enh #28): Correct Font Awesome Asset rendering

Version 1.4.2

Date: 22-Feb-2017

  • (enh #26): Add IcoFont icons set.
  • (enh #25): Enable publishOptions for Font Awesome Asset Bundle for reducing size of assets published.
  • (enh #24): Eliminate icon asset bundle dependencies on Jquery or Bootstrap Assets.
  • Add github contribution and PR templates.

Version 1.4.1

Date: 13-Dec-2015

  • (enh #23): Add support for Open Iconic Icons.
  • (enh #19): Update to add custom icon sets.
  • (enh #17): Added method getFrameworkPrefix.

Version 1.4.0

Date: 20-Apr-2015

Version 1.3.0

Date: 18-Dec-2014

  • (enh #10): Add showStack method for displaying stacked icons like in FA

Version 1.2.0

Date: 08-Dec-2014

  • (enh #9): Update WHHG icons to latest version.
  • (enh #8): Update elusive icons to latest version.
  • (enh #7): Update typicons to latest version.
  • (enh #6): Create a new JUI asset for core yii\jui package change.

Version 1.1.0

Date: 10-Nov-2014

  • Set dependency on Krajee base components
  • Set release to stable

Version 1.0.0

Date: 01-Mar-2014

  • Initial release
  • PSR4 alias change

Statistics

Downloads
GitHub Stars
GitHub Forks

Releases

Comments



v1.4.8 is the latest of 13 releases



BSD-3-Clause license
Stats
71 github stars & 29 github forks
413 downloads in the last day
9482 downloads in the last 30 days
664995 total downloads