初心者のためのExtJS入門

ExtJSを使うので、ついでにまとめていきます

アイコンフォント

ExtJS6.5では、FontAwesomeとPictosがパッケージに含まれています。

今回はそれらの使い方を取り上げます。

まずはapp.jsonでアイコンフォントのパッケージをrequiresに追記します。

"requires": [
  "font-awesome",
  "font-pictos"
]

あとはclass属性に使用したいフォントのセレクタ名を正しく指定するだけです。

例えばHTMLタグであればiタグに、ボタンのアイコンならiconClsに指定します。

Ext.define('Sample.view.sample.Panel', {
    extend: 'Ext.panel.Panel',
    xtype: 'sample_panel',

    cls: 'sample-panel',

    padding: 50,
    bodyPadding: '15 0 0 0',

    tbar: {
        items: [
            {
                xtype: 'button',
                tooltip: '編集',
                iconCls: 'pictos pictos-pencil',
                scale: 'large'
            },
            {
                xtype: 'button',
                tooltip: '編集',
                iconCls: 'x-fa fa-pencil',
                scale: 'large'
            }
        ]
    },

    html: [
        '<i class="pictos pictos-pencil"></i>',
        '<i class="x-fa fa-pencil"></i>'
    ]
});

f:id:sham-memo:20170923153152p:plain

同じようなアイコンでもフォントで微妙に違いがでますね。

FontAwesomeの場合はx-fa fa-xxxx、Pictosの場合はpictos pictos-xxxxという形式になります。

FontAwesomeの場合は、http://fontawesome.io/icons/ を見るのが良いと思います。気を付けないといけないのは、ExtJSパッケージのフォントのバージョンが古い場合があるということです。

Pictosはいまいち一覧でセレクタ名までわかるページが無いんですよね。http://pictos.cc/classic/font を参照しつつ、セレクタ名は ext/packages/font-pictos/all.scss を直接みるのが早いかも。

 

 

 

ところでclassicの場合、ボタンではglyphコンフィグというものを使うこともできます(ExtJS5では結構使いました)。

が、modernには無いこととiconClsで同じUIで表示できることから今はほとんど使う必要がなくなっています。