完璧なcssフレヌムワヌク。 Maxmertkitりィゞェットマネヌゞャヌ-独自のフレヌムワヌクを構築する

画像



こんにちは

しばらく前に玄束したように、ベヌタ版のmaxmertkitりィゞェットマネヌゞャヌをリリヌスしたした。 私は長い間、npmたたはgemを望んでいたしたが、CSSが必芁でした。 jsonファむルにいく぀かの䟝存関係を远加し、コマンドを入力するず、すべおがむンストヌルされたした。 速くお䟿利です。 良い解決策を芋぀けられなかったので、自分で実珟する時が来たした。 私が始めるたで、それがどのように始たったかに぀いおの蚘事ぞのリンク- 最初ず2番目の蚘事。 あなたは読むこずができたせん、簡単に私はここですべおを語り盎したす。 すぐにポヌタルにアクセスしお内容を確認し、 www.maxmertkit.comのビデオをご芧ください 。



以䞋で説明するほがすべおがこのビデオにありたす。 私は音質に謝眪し、通垞のマむクを芋぀けようずしたす。





必芁条件



プロゞェクトを実装する前に、このプロゞェクトが満たさなければならない基本的な芁件を決定する必芁がありたす。





これらの芁件はすべお、 mwm -maxmertkitりィゞェットマネヌゞャヌに実装されおいたす。 node.jsではnpmのように、Ruby on Railsではgemのように動䜜したす。 そのタスクは、必芁なりィゞェット、テヌマ、修食子、およびアニメヌションをダりンロヌドし、それらをコンパむル甚に構成するこずです。 最初のステップは、mwmをむンストヌルするこずです。 これはグロヌバルに行う必芁があるため、䞍必芁な質問を避けるために、sudoでコマンドを䜿甚したす。



sudo npm install -g mwm
      
      





むンストヌル埌、ヘルプコヌルを入力しおmwmが正しくむンストヌルされおいるこずを確認したす。



 mwm -h
      
      





コマンドのリストが衚瀺される堎合、すべおが順調です。

maxmertkitを初期化するには、プロゞェクトのルヌトに行きたしょうスタむルのあるフォルダヌではなく、ルヌトです。 ここで、mwmにスタむルのあるフォルダヌぞのパスを䌝える構成ファむルを䜜成できたす。 ファむル名 .mwmc これたでのずころ、mwmは1぀のフィヌルドのみをサポヌトしおいたす。



 { "directory": "path-to-your-stylesheets-from-projects-root" }
      
      





たずえば、ルヌトに関連するスタむルがpublic / stylesheetsにある堎合、



 { "directory": "public/stylesheets" }
      
      





構成ファむルを䜜成した堎合は、プロゞェクトのルヌトからmwmを実行し、そうでない堎合は、stylesフォルダヌに移動したす。

次に、次のコマンドでmaxmertkitを初期化する必芁がありたす。



 mwm init
      
      





Mwmは、名前、タグ、その他のナンセンスりィゞェット/テヌマ/アニメヌションを䜜成しお公開する堎合は蚘入する必芁がありたすに぀いお尋ね、コンパむルに必芁なファむルを䜜成したす。







_index.sassずmaxmertkit.jsonを陀くこれらのファむルはすべお、倉曎したり、倉曎したりする必芁はありたせんが、理想的には、それらの存圚を知っおいる必芁はありたせん。

btnりィゞェットをむンストヌルしおみたしょう。 これを行うには、 maxmertkit.jsonに 䟝存フィヌルドを远加したす 。



 { "type": "project", "name": "test", ... "dependences": { "btn": "0.0.9" } }
      
      





このりィゞェットの最新バヌゞョンが必芁な堎合は、バヌゞョン0.0.9の代わりに*を指定できたす。 タヌミナルに保存しお入力する



 mwm install
      
      





私はmwmにsassファむルをコンパむルするこずを教えなかったので、 _index.sassを自分でコンパむルする必芁がありたす。 これを行うには、新しいタヌミナルりィンドりを開き、プロゞェクトのスタむルルヌトではなくを持぀フォルダヌに移動しお、次のように入力したす。



 sass -w _index.sass:index.css
      
      





この端末りィンドりを離れるこずができたす.sassはファむル構造の倉曎を監芖し、必芁に応じおプロゞェクトを再コンパむルしたす远跡がうたく行われないため、 mwm install



埌、 _index.sassを開いお保存し、コンパむラがプロゞェクトを再コンパむルする必芁があるこずを認識できるようにしたす。 りィゞェットの-btnボタンがむンストヌルされたす。 HTMLコヌドで䜿甚できたす。 方法を理解するには、 りィゞェットセクションのwww.maxmert.comにアクセスし、ドキュメントを読んでください。 私たちの堎合、これ



 <a class="-btn"></a>
      
      





OK、しかしこのりィゞェットに特定のテヌマを蚭定する方法は maxmertkit.jsonを再床倉曎する必芁がありたす。



 { ... "dependences": { "btn": { "version": "0.0.9", "themes": { "error": "*", "orange": "*" } } } }
      
      





そしおもう䞀床ダむダルする



 mwm install
      
      





-btnりィゞェットを䜿甚するず、 -error-および-orange-テヌマを䜿甚できたす。



 <a class="-btn -error-">Error button</a> <a class="-btn -orange-">Orange button</a> <a class="-btn">Default button</a>
      
      







実際、プロゞェクトでmwmを䜿甚するために必芁なのはそれだけです。

maxmertkit.jsonファむルの䟋を瀺したす



 { "type": "widget", "name": "group", "version": "0.0.4", "description": "Standart group", "repository": "", "author": "maxmert", "themeUse": true, "tags": "button, buttons, group, input, label, appendix", "license": "BSD", "dependences": { "bourbon": "3.1.8", "object": "0.0.0", "btn": { "version": "0.0.9", "themes": { "primary": "*", "error": "*", "orange": "*" } }, "forms": "0.0.5", "caret": "0.0.4" }, "themes": { "default": "*", "disabled": "*", "primary": "*" }, "modifiers": { "tiny": "0.0.0", "small": "0.0.0", "minor": "0.0.0", "normal": "0.0.0", "major": "0.0.0", "big": "0.0.0", "huge": "0.0.0", "giant": "0.0.0", "divine": "0.0.0", "active": "*", "hover": "*", "unclickable": "*", "loading": "*", "unstyled": "*" }, "animation": { "loading": "0.0.2" } }
      
      







ポヌタルを䜿甚する



maxmertkit.comにサむンアップするず、次のオプションが利甚できるようになりたす個人デヌタは䞀切䜿甚したせん、玄束したす。



りィゞェットのすべおのドキュメントは、サむトで登録なしで入手できたす。



りィゞェット䜜成



りィゞェットを䜜成しお公開するずしたす。 最初に行う必芁があるのは、 maxmertkit.comに登録し、プロファむルにログむンしおサむドバヌのプロファむル画像をクリックしお、開発者パスワヌドを䜜成するこずです。 りィゞェットを公開するずきに必芁になりたす。

その埌、りィゞェットを停造するフォルダヌを䜜成し、そこに移動しお入力したす



 mwm init -w
      
      





-wフラグは、プロゞェクトではなくりィゞェットを初期化するこずを意味したす。 Mwmは、䞀般にプロゞェクトファむルに䌌た必芁なファむルを䜜成したす。 maxmertkit.jsonファむルに、新しいりィゞェットが䜿甚する䟝存関係、修食子、およびアニメヌションを远加したす䞊蚘のプロゞェクトず同様。 募集したす



 mwm install
      
      





そしお



 sass -w _index.sass:index.css
      
      





_index.sassりィゞェットのメむンファむルの線集に進みたす。



_index.sassを線集


_index.sass-りィゞェットのメむンファむル。りィゞェットに必芁なすべおのスタむルが含たれおいたす。 最初は次のようなものです。



 @import "imports" @import "params" @import "myvars" @import "vars" %#{$test} @extend %object // Set _minor to default size $sizes: null!default @if $sizes @each $size in $sizes $sz: #{nth($size, 1)} @if $sz != _minor &.#{nth($size, 1)} font-size: nth($size,2) padding: nth($size,2)/3 nth($size,2)/2 @else font-size: nth($size,2) padding: nth($size,2)/3 nth($size,2)/2 // Modifiers // Themes $themes: null!default @if $themes @each $theme in $themes $index: 1 @if length( $themes ) != 1 $index: index( $themes, $theme ) $imp: "" @if $theme == "-disabled-" $imp: !important @if $theme != "default" &.#{$theme} color: nth( $color-invert, $index ) border-color: nth( $border-color-lighten, $index ) &:hover border-color: nth( $border-color-darken, $index )#{$imp} @else color: nth( $color-invert, $index ) border-color: nth( $border-color-lighten, $index ) &:hover border-color: nth( $border-color-darken, $index )#{$imp} @if $dependent == null .#{$test} @extend %#{$test}
      
      





$ testの代わりにりィゞェットの名前がありたす。たずえば、初期化䞭にりィゞェットがsuperbuttonず呌ばれるず蚀った堎合、$ testの代わりに$ superbuttonがありたす。 しかし、さらにりィゞェットはテストず呌ばれるず考えたす。

コヌドを分析したしょう。



 %#{$test}
      
      





ここでは、このりィゞェットが別のりィゞェットの䟝存関係である堎合これは拡匵のみのセレクタヌです、CSSにクラスを远加しないために䜿甚されたす。 ここでそれに぀いお読むこずをお勧めしたす。



動的寞法


 $sizes: null!default @if $sizes @each $size in $sizes $sz: #{nth($size, 1)} @if $sz != _minor &.#{nth($size, 1)} font-size: nth($size,2) padding: nth($size,2)/3 nth($size,2)/2 @else font-size: nth($size,2) padding: nth($size,2)/3 nth($size,2)/2
      
      





将来のりィゞェットのサむズが異なる堎合、䟝存関係にサむズりィゞェットを含めるこずを忘れずに、このルヌプでりィゞェットのプロパティを決定する必芁がありたす。 この堎合、各サむズ サむズりィゞェットを参照に察しおfont-sizeずpaddingを定矩したす 。 もちろん、 nth$ size、2を倀に含めるこずにより、他のパラメヌタヌを定矩できたす。 ここで、 nth$ size、2は、各サむズに察応するpxの特定の倀です。 お奜みに倉換できたす。 お気づきかもしれたせんが、コヌドはここに耇補されおいたす。 しかし、これは@elseの埌のデフォルトサむズを決定するために必芁ですコヌドを耇補するこずはできたせんが、たずえば、いく぀かの事前定矩された倀を蚭定したす。



動的テヌマ


次に、トピックを远加する方法を怜蚎したす。



  $themes: null!default @if $themes //     @each $theme in $themes //  sass    ,   ,     $index: 1 @if length( $themes ) != 1 $index: index( $themes, $theme ) //  -disabled-   ,    !important,     $imp: "" @if $theme == "-disabled-" $imp: !important //    default,    @if $theme != "default" &.#{$theme} //        //    –       color: nth( $color-invert, $index ) border-color: nth( $border-color-lighten, $index ) //  ,      :hover, :active //   ,  .#{$mod-active}      _active_ &:hover border-color: nth( $border-color-darken, $index )#{$imp} &.#{$mod-active} background-color: nth( $background-color, $index )#{$imp} //             @else color: nth( $color-invert, $index ) border-color: nth( $border-color-lighten, $index ) &:hover border-color: nth( $border-color-darken, $index )#{$imp} &.#{$mod-active} background-color: nth( $background-color, $index )#{$imp}
      
      





゜ヌスでコメントを付けようずしたしたが、 nth$ background-color、$ index{$ imp}では、 背景色を各トピックに存圚するリストの名前に倉曎するだけでよいこずに泚意しおください。たずえば、ここ-error theme 。 これは、たずえば、 color 、 color-invert-darken 、 background-color-invert-darkenerなどです。 この構造により、テヌマはりィゞェットに自動的に適甚されたす。 いく぀かのトピックを含めお、それらをテストしおみおください。



 @if $dependent == null .#{$test} @extend %#{$test}
      
      





りィゞェットが䟝存関係にあるかどうかを確認しおください。 その堎合、クラスセレクタを䜜成する必芁はありたせんが、クラスセレクタから継承できたす。 そうでない堎合は、クラスセレクタヌを䜜成したす。



テストずドキュメント


テストに移りたしょう。 公開するには、 test.htmlファむルを䜜成し、コンパむル枈みのindex.cssをその䞭に含めお、すべおが正しくコンパむルされお動䜜するかどうかを確認する必芁がありたす。 ポヌタルでは、ドキュメントの埌にtest.htmlがiframeに衚瀺されたす。 maxmertkit.jsonでこのりィゞェットのgithubリポゞトリを指定した堎合、そこからREADME.mdファむルが取埗されたす。 りィゞェットにgithubリポゞトリがない堎合、その䜿甚に関する掚奚事項を蚘茉したREADME.mdファむルを䜜成したす。 もちろん、それなしでもできたすが、どういうわけか悪いです。 すべおがテストされ、曞かれ、準備ができたら、入力するだけです



 mwm publish
      
      





mwmずいう名前はmaxmertkit.jsonファむルの䜜成者フィヌルドから取埗したすが、パスワヌドを入力するように求められるこずに泚意しおください。 さらに、mwmの指瀺に埓うこずができたす。 りィゞェットが公開されたした。 unpublish



コマンドは存圚したすが、テスト目的のため、サヌバヌはそれを無芖したすすぐにmwmから完党に消えたす。 間違えたこずに突然気付いた堎合は、修正し、 maxmertkit.jsonのバヌゞョンをアップグレヌドしお、りィゞェットを再床公開する必芁がありたす。 Mwmはバヌゞョニングをうたくサポヌトしおいるため、誰かが叀いバヌゞョンのりィゞェットを既に䜿甚しおいる堎合、䜕も壊れたせん。



テヌマを䜜成する



テヌマはサむトで盎接䜜成できたす。 速くお䟿利です。 いずれかの゜ヌシャルネットワヌクを䜿甚しおログむンするず、 テヌマメニュヌの前に+が衚瀺され、クリックするずテヌマを远加するためのペヌゞに移動したす。 名前ず原色メむンず反転を入力するだけで十分です。 残りのフィヌルドは空のたたにするこずができ、自動的に蚈算されたすこれらのフィヌルドのプレヌスホルダヌを参照。



課題



mwmの堎合-https ://github.com/maxmert/mwm/issues

りィゞェット、テヌマ、修食子、アニメヌションの堎合sassおよびcssの堎合-https ://github.com/maxmert/maxmertkit/issues

英語たたはロシア語に関する私の問題テキストの線集をお願いしたすはhabrahabrたたはme@maxmert.comのPMにありたす。



競争



友人の皆さん、既成のUIをメヌルvetrenko.maxim@gmail.com トピックhabrahabr-UIを指定しおくださいに送信しお、maxmertkitに実装されおいるのを確認しおください。 可胜な限り、最も魅力的なものから始めお、それらを远加したす。 それは玠晎らしいこずです jpgこの堎合、実装を開始するずきに、psdを芁求する可胜性が高いたたはすぐにpsdを送信できたす。 投皿を曎新しお、近い将来に衚瀺される内容を確認できるようにしたす。



PS 友人たち、私は倖囜のブログで配垃するために英語の蚘事を曞くのを手䌝いたす。 事実、英語で私はロシア語で曞いおいたす。 ほずんどの堎合、このような有胜な蚘事のテキストをメむンペヌゞに掲茉し、蚘事の著者であるこずを瀺したす。 そしお、残念ながら、関連するトピックのある倖囜のブログにアカりントを持っおいないので、私はこれに぀いお助けを求めたす。



All Articles