パラダむム-Mail.Ru Group Design System、パヌト1ビゞュアル蚀語

蚘事の著者Yuri Vetrov、Artyom Gladkov、Evgeny Dolgov、Andrei Sundiev



数幎にわたり、ポヌタル蚭蚈チヌムMail.Ru Groupは補品の曎新ず暙準化を行っおきたした。 メディアプロゞェクト、モバむルWeb、および郚分生産性サヌビス他の補品は埐々に接続されおいたすを実行するデザむンシステム、ピクトグラムずむラストのスタむルが圢成され、プロモヌションレタヌずプロモヌションサむトが暙準化されおいたす。 もちろん、すべおのサヌビスですべおがうたくいくわけではありたせんが、どこかで最初の再蚭蚈がすべおの問題を解決するわけではありたせんでしたが、過去数幎間の倧きなブレヌクスルヌは芋逃せたせん。 曎新プロセスを高速化し、䜜業を公開するために、 パラダむム蚭蚈システムの䞀郚を公開しおいたす 。



蚭蚈システムMail.Ru ruルヌプパラダむム



背景



「シェル」に察しお倚くのアプロヌチを行いたした。仕様を䜜成し、単䞀の゜ヌスUIキットを組み立お、芁玠のラむブラリを䜜成したした。 しかし、2012幎に、圌らはこれが行き止たりであるこずに気付きたした-蚭蚈はレむアりトから実装たでの過皋でしばしば「ほ぀れ」たす。そのため、無効なチェヌン「ガむドラむン→レむアりト→レむアりト→実装」を再考する必芁がありたす。



統䞀前の蚭蚈



デザむンずテクノロゞヌを「結婚」させる堎合、぀たり 蚭蚈を技術的実装のレベルに移すず、「ガむドラむン=レむアりト=レむアりト→実装」であるこずがわかり、補品の実装、改善、サポヌトのためのhemoの束を取り陀くこずになりたす。 このように、正しい意味で蚭蚈システムの䜜業を開始したした。蚭蚈が「瞫い付けられる」レむアりト䞊の均䞀なコンポヌネントです。



コンテキスト



メヌルおよびポヌタル郚門には、生産性ビゞネス向けのメヌル、クラりド、カレンダヌ、Mail.Ru、メディアプロゞェクト自動車、星占い、子䟛、歓迎、健康、女性、映画、メディ゚ヌタヌ、䞍動産、ニュヌス、倩気玄20の補品がありたす、スポヌツ、テレビ、ハむテク、SEOSan、Beepcar、Answers、モバむル補品myMail、Artisto、Mail.Ruのメむンペヌゞず䞀般芏則、My.comブランドスタむルのサポヌト。



Mail.Ruブレヌンドの補品



芁件ずコンテキストは、ラむン党䜓にわたっお優れおいたす。 たずえば、メディアプロゞェクトでは、メむンコンテンツをゞュヌシヌな方法で衚瀺するこずが重芁であり、ニュヌス消費のモデルは非垞に単玔です。 同時に、生産性サヌビスは高い情報密床ずむンタヌフェむスずの盞互䜜甚の匷床を備えおいるため、芖芚的な衚珟のためのスペヌスが少なくなりたす。すべおがメむンコンテンツず察話するためのツヌルになりたす。 たた、My.comやBeepcarずは䞀線を画す人たちもいたすが、これらはMail.Ruブランドずはたったく関係がありたせんが、共通の基盀を掻甚するこずで利益を埗るでしょう。



他のブレヌンドの補品



他の郚門では、タスクはそれほど倚様ではありたせん-䌚瀟は゜ヌシャルネットワヌク、ゲヌム、eコマヌス、むントラネット、および他の倚くのサヌビスを䜜成しおいたす。 それらは独立しおおり、珟圚の段階では郚門のタスク甚の蚭蚈システムを䜜成しおいたすが、これらの開発が有甚であり、すべおの人に適甚できるこずが重芁です。



蚭蚈システムをスケヌラブルにする方法 私たちの道はかなり曲がりくねっおいたした。



2012幎には、モバむルWebの凊理を開始したした-12のサヌビスを最初から曎新しお起動する必芁がありたした。 たず第䞀に、UIキットずガむドラむンは機胜するように蚭定されおいたすが、すでに2番目のプロゞェクトの䜜業の途䞭で、私たちはそのようなペヌスで遠くたで行かないこずに気付きたした。



Confluenceのガむドラむン



モバむルWeb甚のUIキット



開発者ず䞀緒に、圌らはデザむンが埋め蟌たれる再配垃可胜なコンポヌネントのアむデアを思い぀きたした。 蚭蚈システムの最初のフレヌムワヌクず基盀が誕生し、わずか2.5か月で12のモバむルサむトを再描画するタスクを完了したした。このような速床蚘録はただありたせん。



統合されたモバむルWeb





同じ幎に、 メディアプロゞェクトのWebバヌゞョンの再蚭蚈が始たりたした 。 統䞀ぞの最初のアプロヌチはうたくスケヌルしたせんでしたが、2012幎の終わりに「バヌガヌ」アプロヌチ䞀連の「ベルト」、「ラむン」、「カット」たたは「コンテナヌ」。最新のプロモヌションサむトで積極的に䜿甚されたしたを詊したした。 このむンタヌフェむスむデオロギヌずモバむルサむト甚に䜜成されたフレヌムワヌクを組み合わせお、2014幎に、倉曎されたデザむンシステムに基づく最初の補品を発売したした。 珟圚、すでに12個あり、新しいバヌゞョンが垂堎に投入される速床ははるかに速くなっおいたす。1幎前ではなく、開発の開始から発売たでの玄6か月です。



ナニフアドメディアプロゞェクト





2014幎、単䞀の芖芚蚀語をテヌマにした補品の1぀に察しお、さたざたな補品だけでなく、Web、モバむルWeb、モバむル、タブレットアプリケヌションを組み合わせた倧芏暡なハッカ゜ンを開催したした。 その前でさえ、私たちはほが同じ方向に動いおいたしたが、それは明確な原則ずいうよりも、より䞀般的な感芚でした。 しかし、ここでパラメトリック蚭蚈システムのアむデアが最終的に圢成され、いく぀かの「抜象化の局」䞀般的なパラメヌタヌ→共通コンポヌネント→特定の画面により、非垞に柔軟で匷力になりたした。 このプロセスの開始から数か月埌、圌らはマテリアルデザむンを発衚したした。そこでは、実際に倚くのアむデアの実装を確認したした。正しい方向に進んでいたした。



モゞュヌル蚭蚈システムの抂芁むデオロギヌ



2015幎に党䜓的な蚭蚈システムの珟圚のビゞョンを説明し、それから埐々にそれを実装しおいたす。







珟状



私たちが理解しおいる蚭蚈システムずは䜕ですか





技術レベルのコンポヌントンを含むムヌブレむブガむドラ公開むンただ倖郚に公開する準備がでおいいい



スケッテンプレント



拡匵性の実珟に圹立぀蚭蚈システムの䞻芁な原則





これらの原則に぀いお、具䜓的な䟋を挙げお説明したす。



パラメトリック性



䞀連のパラメヌタヌを䜿甚しお、任意の芁玠をすばやく取埗できたす。 たずえば、簡単なボタンを組み立おおみたしょう。



倉数からのボタンのコレクション



タむポグラフィ



適切な状況で䜿甚する倉数にすべおのフォントサむズずスタむルを保存したす。 いく぀かの倧きなグルヌプがありたすこれらは芋出し、組版、眲名です。 ボタンには、生産性サヌビスの基本的なテキストスタむルを含む@fontBody mixinを䜿甚したす。 これは、フォントサむズ、スタむル、行間隔のセットです。 必芁に応じお、色ず段萜間の距離が瀺されたす。



タむポグラフィ



4dpグリッドずパディング



蚭蚈システムの各芁玠は、4dp密床に䟝存しないピクセルのモゞュヌル䞊に構築されおいたす。 ぀たり、すべおのサむズのむンタヌフェむス芁玠ずそれらの間のむンデントは、残りの郚分なしで4぀に分割する必芁がありたす。 これは远加の「スケルトン」であり、画面のレむアりトのメむングリッドずずもに、芁玠の動䜜に調和をもたらし、さらに䜜業にいく぀かの制限を課したす。 そしお、それは間違いを犯す機䌚が少なくなるこずを意味したす。 Googleマテリアルデザむンでも同様のモゞュラヌ8ピクセルグリッドが䜿甚されおいるため、モバむルむンタヌフェヌスを䜿甚する堎合にも䟿利です。



ボタンをむンデントするには、いく぀かの倉数の組み合わせを䜿甚したす$ sizeControlHeight芁玠の高さず$ paddingControlButtonボタン内の内郚むンデント。



4dpグリッドずパデむング



原色ず境界線



デザむンを統䞀するために働いた誰もが、最小限のグレヌ色のセットを䜜るこずは非珟実的に難しいこずを知っおいたす。 そしお、ボヌダヌのような装食的な゜リュヌションが必芁な堎合、曞き蟌みはなくなりたす-倉​​数のセットは垞に成長したす。 固定された小さな色のセットを䜜成するず同時に、さたざたな補品タスクを解決する方法は



倉数が圹立぀だけでなく、透明床プロパティを操䜜するだけでなく、少し耇雑な関数mixinもありたす。



最初の問題は、むンタヌフェむス芁玠のストロヌクず境界線です。 通垞の倉数を䜿甚する堎合、さたざたなアクセントカラヌのストロヌクず状態を取埗するには、さらに倚くのパラメヌタヌを登録する必芁がありたす。 個々の芁玠の基本的な透明性も助けになりたす。 たずえば、プロゞェクトのセパレヌタは透明床によっお正確に蚭定されたす。この方法では、同じパラメヌタが䜿甚されおいるにもかかわらず、どの背景に察しおも同じように芋えたす。



ボタンには、透明床0.12ず線の倪さ1pxを䜿甚するストロヌクスタむルを蚭定したす。 ストロヌクの色は、新しい色を入力するこずなくメむンの背景ず混ざりたす。 倉数は$ colorBorderです。 たた、$ sizeBorderRadius倉数を䜿甚しお、ボタンの半埄をボタンに远加したす。



ボヌダヌ



芁玠の状態に関する2番目の問題通垞の状態、ホバリング、プレスは、このアプロヌチでオブゞェクトを塗り぀ぶすための远加の色を提案したす。 メディアプロゞェクトのさたざたなアクセントカラヌを考えるず、倉数の数は無限に増える可胜性がありたす。 通垞の状態の色のみを修正するこずを決定し、残りはブロックの䞻な色を取り、特定の割合で黒たたは癜ず混合する関数mixinによっお圢成されたす-新しい色が取埗されたす。



ボタンの背景には、倉数$ colorBgSecondaryによるメむングレヌの塗り぀ぶしを蚭定したす。



背景



次に、mixinを䜿甚したす。これにより、ホバヌボタンが4暗くなりたす。



@mixin stateHover ($colorBgSecondary) { background: mix($colorBgSecondary, $colorAccent, 4%); }
      
      







ガむダンス状態



抌されたボタンのスタむルを取埗するために、mixinも適甚したす。これにより、メむンの背景が暙準の背景から8暗くなりたす。 たた、ボタンを別の平面に移動する必芁がありたすz-index-1。このために、䞋郚の圱を削陀しお内郚に远加したす。



 @mixin stateActive ($colorBgSecondary) { background: mix($colorBgSecondary, $colorAccent, 8%); box-shadow: $zIndex-1; }
      
      







抌された状態



このアプロヌチは、ボタン、個別のアむコン、耇雑なリストアむテム、珍しいレむアりトのカヌドなど、あらゆるブロックに䜿甚したす。 そこで、すべおの芁玠のダむナミクスに関する倧きな疑問を解決し、倚くの色を塗りたせんでした。



圱を䜿甚したZ軞の䜍眮



z軞には、芁玠の4぀の䜍眮がありたす。





圱を䜿甚しおたZ軞の䜍眮



このボタンでは、$ zIndex1パラメヌタヌを適甚したす。



Z軞䜍眮



結果は䜕ですか



通垞

 height: $sizeControlHeight; // 32px padding: 0 $paddingControlButton; // 0 16px background-color: $colorBgSecondary; // #f0f0f0 border-radius: $sizeBorderRadius; // 2px border: $sizeBorderWidth solid $colorBorder; // 1px solid rgba(0,0,0,.12) box-shadow: $zIndex1; // 0 2px 0 0 rgba(0,0,0,.04) color: $colorBody; // #333333 font-size: $fontBody; // 15px line-height: $fontBodyLine; // 20px
      
      







ホバヌ

 @include stateHover ($colorBgSecondary);
      
      







アクティブ

 @include stateActive ($colorBgSecondary);
      
      







無効

 opacity: .48;
      
      







拡匵性



束葉杖を生産しないために、蚭蚈システムを損なうこずなく芁件を満たす必芁があるさたざたなサヌビスがありたす。 䞊蚘のパラメトリック性の原則がなければ、このタスクは䞍可胜だったでしょう。 圌らず䞀緒に、圌女はかなり簡単な運動に倉わりたす。



たずえば、Mail.Ru Mailで䜿甚される単玔なボタンを䜿甚したす。



Mail.Ruメヌルのシンプルなボタン



背景パラメヌタヌを倉曎するこずにより、Mail.Ruのアクセントカラヌを持぀メむンボタンを簡単に取埗できたす。



Mail.Ru Mailのメむルボタン



倉曎されおいるパラメヌタヌ

 background-color: $colorAccent; // #168de2 color: $colorBody; // #ffffff
      
      







メディアプロゞェクトでは、それぞれ異なるタむポグラフィずわずかに倧きいブロックサむズにアクセントカラヌを䜿甚したす。 メディアプロゞェクト甚のボタンを取埗するには、他の倉数を眮き換えるだけで目的の結果を取埗したす。



Hi-Tech Mail.Ruのホヌムボタン



倉曎されおいるパラメヌタヌ

 height: $sizeControlHeight; // 40px padding: 0 $paddingControlButton; // 0 20px background-color: $colorAccent; // #5856d6 color: $colorBody; // #333333 border-radius: $sizeBorderRadius; // 4px font-size: $fontBody; // 17px line-height: $fontBodyLine; // 24px
      
      







My.comプロゞェクトで他の倉数を眮き換えた埌の同じボタンは次のようになりたす。



My.comのホヌムボタン



倉曎されおいるパラメヌタヌ

 height: $sizeControlHeight; // 40px padding: 0 $paddingControlButton; // 0 20px background-color: $colorAccent; // #00abf2 color: $colorBody; // #333333 border-radius: $sizeBorderRadius; // 4px font-size: $fontBody; // 17px line-height: $fontBodyLine; // 24px text-transform: $fontBodyCase // uppercase
      
      







サむトのモバむルバヌゞョンの堎合、ボタンはさらに倧きくなり、指で簡単にアクセスできたす。



モバむルWebのホヌムボタン



倉曎されおいるパラメヌタヌ

 height: $sizeControlHeight; // 48px padding: 0 $paddingControlButton; // 0 20px background-color: $colorAccent; // #168de2 color: $colorBody; // #333333 border-radius: $sizeBorderRadius; // 2px font-size: $fontBody; // 15px line-height: $fontBodyLine; // 20px text-transform: $fontBodyCase // uppercase
      
      







その結果、パラメヌタヌを制埡しお、束葉杖を避け、拡倧する補品ラむンに迅速に適応し、新しいシステム゜リュヌションを生成したす。 たた、単玔なむンタヌフェむス芁玠ボタン、フォヌムフィヌルドなどの芁玠から、より耇雑なコンポヌネントたずえば、写真ビュヌアヌが組み立おられ、これもスケヌラビリティの恩恵を受けたす。



パラダむム



2012幎に蚭蚈システムの実装を開始し、2015幎に党䜓的なビゞョンを圢成したした。 むンタヌフェむスの䜜成に必芁なすべおのルヌルが明確に蚘述されおいる、真実の単䞀の゜ヌスを前提ずしおいたす。 原則、掚奚事項、特定のガむドラむン-これらはすべお1か所に保存し、100関連する必芁がありたす。



真実の䞻な情報源は、実際の補品で䜿甚されるコンポヌネントを瀺すラむブガむドラむンです。 圌は、むンタヌフェヌスを構築するための䞀般的な芏則を宣蚀し、それらを実際の䟋で瀺しおいたす。 本物のラむブガむドラむンがありたすが、これたでのずころ、それらを公開状態にするこずはできたせんでした。 同時に、スクリヌンショットでガむドラむンを説明するこずは行き詰たりですすぐに時代遅れになり、最も単玔な盞互䜜甚さえありたせん。たた、SketchたたはPhotoshopのUIキットデザむンシステムは自己欺beだず考えおください。



同時に、実際のラむブガむドラむンを思い浮かべるのを埅たずに、芖芚蚀語で行われた決定を修正する必芁がありたした。 その結果、劥協案を決定したした。蚭蚈システムのベヌスずなるむンタヌフェむス芁玠の静的バヌゞョンを䜜成したした。



芖芚蚀語



その過皋で、原則を実際にテストし、開発者の芳点からシステムを芋る機䌚がありたした。 以前に州が描かれた「絵」を䜜成した堎合、それらは「生きおいる」芁玠であり、より深い研究が必芁でした。



この経隓により、パラメトリック性の原理を実際に䜿甚するこずができ、その結果、ミックスむンずナヌティリティ倉数が出珟したしたが、グラフィカル゚ディタヌで「絵のような」むンタヌフェヌス芁玠を描き続けたした。



結果の芁玠セットは、コンポヌネントラむブラリの開発者を曎新するプロセスで参照するモデルになりたした。 この曎新が進むに぀れお、静的芁玠ずコンポヌネントを実際のコンポヌネント戊闘怍字で䜿甚されるラむブラリから取埗に眮き換え、ガむドラむンが完党に有効になりたす。



理想のビゞョンに向かっおいく必芁がありたすが、実装の各段階で、蚭蚈システムからたすたす倚くの利益を埗おいたす。





そしお最も重芁なこず-数幎ごずの倧芏暡な再蚭蚈から、むンタヌフェヌスの関連性の継続的な維持ぞの移行。 再起動には倚くの゚ネルギヌが必芁であり、長い間開発に費やされた䜕千もの小さな開発が倱われたす。



未来



珟圚の開発の公開は、蚭蚈システムの開発における楜しいマむルストヌンです。 しかし、今埌倚くの䜜業がありたす。





それたでの間、珟圚の開発状況をご芧ください。 それらを改善する方法に぀いおのアむデアがあれば、私たちはあなたのアドバむスを喜んで受け取りたす。



蚭蚈システムMail.Ru ruルヌプパラダむム



PS



蚭蚈システムに取り組んだチヌム




All Articles