ExtJS 6アプリケーション用のユニークなテーマを作成する

こんにちは、この記事では、ExtJS 6アプリケーションのテーマを作成する際の主なニュアンスについて説明しますが、この記事では、ExtJSの経験があることを前提としています。 例として最新のツールキットを使用します従来のツールキットに特別な違いはありません。 この記事では、次の問題に対処します。





猫へようこそ。



はじめに:テストアプリケーションの作成



最新のツールキットのみを使用してテストアプリケーションを生成するには、次のコマンドを使用します。



sencha -sdk "\path\to\framework" generate app -modern TestApp "\path\to\application"
      
      







1.継承とトピックの作成



テーマを作成するとき、ExtJSは既存のテーマを継承できます。 自分でいくつかのことを最初から実装する必要があるか、または別のトピックから設計に参加する必要があるとすぐに判断する必要があります。 現在、ExtJS 6.0.1の最新バージョン(最新のツールキット )には、8つの異なるトピックがあります。 それらの間の階層は次のとおりです。



ExtJS 6.0.1(モダンツールキット)のトピックの階層






クラシックツールキットには8つのメインテーマがあります(テーマネプチューンタッチなど、タッチ用に変更されたイベントもありますが、図には示されていません)。



ExtJS 6.0.1(モダンツールキット)のトピックの階層






このテーマまたはそのテーマがどれだけ自分に合っているかを確認するには、app.jsonで設定し、senchaアプリウォッチを使用して視聴します。 一部のテーマでは、個々のコントロールのスタイルが実装されていない場合があることも覚えておく必要があります(たとえば、togleglefieldはtheme-mountainviewに実装されていません)。



theme-tritonが親となるテーマを作成するには、次のコマンドを使用します。



 sencha generate theme --extend theme-triton my-test-theme
      
      





その後、テーマmy-test-themeは「packages / local /」フォルダーに配置されます。 トピックのフォルダー構造を考慮してください。



package.json-トピックを説明するメインファイル。トピックのすべてのプロパティ(親、名前、バージョン、およびその依存関係)が表示されます。

sass-このフォルダーにはsassファイルのみが含まれます。その中には、変数作成用のvar 、ミックスイン作成用のsrc など 、カスタムミックスインと追加機能を作成するためのsrcフォルダーがあります。

リソース -このフォルダーには、画像やcssなどの静的リソースのみを保存する必要があります。

オーバーライド -jsファイルはこのフォルダーに格納され、既存のコントロールに追加機能を作成します。



2.設計アプローチ



テーマを作成したら、デザインの実装方法を正確に選択できます。 デザインを作成する方法は2つあります。適切な方法と、スクラップに対しては受け入れられず、実際にはありません。







3. UIミックスインの使用



トピックを作成したら、sassにグローバル変数を設定することをお勧めします。これにより、将来の生活が大幅に促進されます。 変数のリストはここにあります 。 グローバル変数を設定するには、ファイル「packages / local / my-test-theme / sass / var / Component.scss」を作成する必要があります。たとえば、次のように指定します。



 $base-color : #317040;
      
      





その後、結果を見ることができます(前後)。

画像画像



$ base-colorを設定し、それだけで動作し、mixins(sass関数)を使用して色を変えることを強くお勧めします。 ExtJSのほぼすべてのコントロールには、独自のCSSミックスインがあります。 Buttonの例を使用したミックスインの使用を検討してください。 これを行うには、次の内容のファイル「my-test-theme / sass / src / Button.scss」を作成します。



 @include button-ui( $ui: 'lighten', $ui-button-color: lighten($base-color,20) //   20%   ); @include button-ui( $ui: 'darken', $ui-button-color: darken($base-color,20) //   20%   );
      
      





これで、必要なUIミックスインでボタンを追加できます。



  { xtype: 'button', ui: 'lighten', text: 'lighten button' },{ xtype: 'button', ui: 'darken', text: 'darken button' }, { xtype: 'button', text: 'original button' }
      
      





結果は次のようになります。



画像



したがって、UIミックスインを使用すると、あらゆるコントロールを免責で装飾できます。



All Articles