
In diesem Artikel werden wir erzĂ€hlen, wie wir keine Kugel im luftleeren Raum entwickelt haben, sondern eine echte Bibliothek von Komponenten, und wie wir es geschafft haben, ĂŒbermĂ€Ăigen Perfektionismus (nicht zum Nachteil des Projekts) zu ignorieren,
um 25% des Budgets einzusparen .
Dies ist der erste Teil des Artikels, in dem es viele langweilige, aber konkrete praktische Informationen zum Erstellen von Komponenten in Figma sowie zu den Nuancen, Fallstricken und RealitÀten beim Erstellen von Projekten mit einem begrenzten Budget in einer Provinzumgebung geben wird =)
Dem Arbeitsbeginn ging eine lange Verhandlungs- und Analysephase voraus, auf deren Grundlage ein detaillierter ToR mit einer Aufteilung in funktionale (dynamische) und statische Blöcke erstellt wurde. Details dazu finden Sie
in diesem Artikel . Wenn Sie noch nicht an einem solchen TK arbeiten, empfehlen wir es dringend. Sehr positive Erfahrung fĂŒr das gesamte Entwicklungsteam und das gesamte Projekt.
Aber zurĂŒck zum Design
Es ist erwĂ€hnenswert, dass Figma auf dem Höhepunkt der Arbeit ein sehr angenehmes Update herausgebracht hat, sodass es kein Wort ĂŒber Farbe und Textstile geben wird. Wir hoffen, dass ein aufmerksamer Leser auch ohne diese Nuancen etwas NĂŒtzliches fĂŒr sich selbst lernen wird. Wenn Sie nicht ĂŒber ein grundlegendes VerstĂ€ndnis der Prinzipien zum Organisieren von Komponenten in figma verfĂŒgen, empfehlen wir eine Suche auf habr.com (es gibt viele groĂartige Materialien zu diesem Thema).
Bevor wir mit dem pixelgenauen Design beginnen, erstellen wir in den meisten FĂ€llen ein Designkonzept. Normalerweise handelt es sich um eine Art Rohlayout (von der visuellen Seite), das im Hinblick auf das Verhalten auf verschiedenen Bildschirmen grĂŒndlich durchdacht werden sollte und die HauptfunktionalitĂ€t berĂŒcksichtigt. Dies ist notwendig, um in Zukunft unangenehme Ăberraschungen zu vermeiden, wenn ein vergessener Block nicht in die genehmigten Layouts eingebettet ist. Daher ist ein Konzept eher ein Entwurfslayout fĂŒr reale Seiten als ein Styleboard, das dennoch einen grundlegenden Satz von Stilen und grundlegenden
Layouts fĂŒr zukĂŒnftige Seiten bereitstellt.
In diesem Fall war das Konzept wie folgt:

Im Allgemeinen nichts kompliziertes. Das einzige, was besondere Aufmerksamkeit erfordert (auf dieser Seite), ist eine Vorschau der Lose (diese Karten), die aus einem unbegrenzten Satz von Positionen (diese Zeilen befinden sich in den Karten) und einem unterschiedlichen Satz von SchaltflĂ€chen fĂŒr verschiedene Rollen bestehen.
Es gibt immer noch einige unerklÀrliche Nuancen, aber wir waren uns einig, ehrlich zu sein und auf unnötige Körperhaltung zu verzichten, sodass wir erzÀhlen werden, wie sie dabei aufgetaucht sind.
Also - alles ist vorbereitet. Wir haben TK mit vorgeschriebenen Funktionen zum VerstĂ€ndnis der Funktionsweise von Komponenten; Styleboard als Konzept zum VerstĂ€ndnis des Stils von Elementen; der Standard fĂŒr die Benennung von Komponenten fĂŒr die schmerzlose Ăbertragung von Design auf Layout und eine unendliche Anzahl von Beruhigungsmitteln aller Art und Farben ...
Sie können anfangen, in der Figur herumzustöbern
Der Entwicklungsalgorithmus fĂŒr das Entwurfssystem wird eine Bewegung von einfachen, unteilbaren Komponenten (Atomen) zu komplexeren sein, und fĂŒr eine visuelle Darstellung der Hierarchie werden wir jede nĂ€chste KomplexitĂ€tsstufe in einer neuen Spalte zeichnen.

Text
ZunĂ€chst definieren wir unteilbare Elemente: einen Standardsatz von Ăberschriften, einen Absatz und einzelne Stile fĂŒr SchaltflĂ€chentext, einen Stil fĂŒr Platzhalter und Filternamen und etwas anderes. Vergessen Sie nicht, alles in Komponenten zu verwandeln!

Montserrat Medium als Hauptschrift und Montserrat fett fĂŒr Ăberschriften und Highlights.
Gehen Sie zu den Symbolen. Wir haben sie aus der kostenlosen Bibliothek "Feather" gezogen.

Symbole
Jedes Symbol wird in einem 24x24-Pixel-Container platziert und in der Mitte entlang zweier Achsen ausgerichtet (nur fĂŒr den Fall). Alle Symbole werden nach Geschmack aufgerufen, jedoch mit dem PrĂ€fix âiâ, damit die Namen keine Duplikate enthalten, und gruppieren Sie sie, um das Bedienfeld nicht mit Ebenen zu ĂŒberladen.

Wir werden auch soziale Netzwerksymbole und zusĂ€tzliche E-Mails fĂŒr Benachrichtigungen ĂŒber unvollstĂ€ndige Eingaben, Filter-Reset, ein Sternchen fĂŒr erforderliche Positionen im Los, einen Chevron fĂŒr Dropdowns und ein HĂ€kchen fĂŒr KontrollkĂ€stchen und Funk-Batttans haben. Alle diese Symbole sind kleiner und leichter als die wichtigsten, aber aus GrĂŒnden der Standardisierung werden sie auch in einen 24x24-Container gelegt.
Als nĂ€chstes gehen wir zu komplexeren Komponenten ĂŒber. Wir werden sie rechts positionieren und sie aus Elementen aus der ersten Spalte und Stöcken zusammensetzen.
KontrollkÀstchen
Beginnen wir mit etwas Einfacherem.
KontrollkĂ€stchen und Radiobuttons in BehĂ€ltern mit 16 x 16 Pixel. Erstellen Sie fĂŒr jeden Status eine separate Komponente. Dies ist erforderlich, damit wir bei der Gestaltung von Seiten (zusammengesetzt aus diesen Komponenten) ĂŒber das INSTANCE-Bedienfeld einen Status durch einen anderen ersetzen können.

Wir machen dasselbe mit allen dynamischen Elementen, die FĂŒhrungszustĂ€nde haben, aktiv, passiv usw.
ZĂ€hler und Schieberegler
Wir brauchen auch einen ZĂ€hler, um die Menge von etwas anzuzeigen. Dies sind je nach Standort unterschiedliche Daten. Wir machen einen 20x20 Rahmen und eine Figur in der Mitte.
SchaltflĂ€chen fĂŒr die Schiebereglerobjekte sind auch fĂŒr uns nĂŒtzlich. Wir machen sie 30x30 und platzieren die Chevron-Symbole bedingt in der Mitte. Wir erstellen Komponenten fĂŒr verschiedene ZustĂ€nde.

Katalogbaum
Vor kurzem haben wir begonnen, uns an das Prinzip zu halten, dieselben Komponenten auf verschiedenen GerÀten wiederzuverwenden, um keine unnötigen EntitÀten zu erzeugen und die Reinheit des Codes (so weit wie möglich) beizubehalten. Daher erstellen wir den Katalogbaum ausgehend von der mobilen Anzeige. TK sagt uns, dass die maximale Verschachtelungsebene eines Baumes 3 betrÀgt.
Wir beginnen mit der ersten Ebene: Ein Rahmen mit einer Höhe von 60 Pixel und einer dimensionslosen Breite (er passt sich dem Container an), das Symbol ist vertikal ausgerichtet und 20 Pixel vom linken Rand entfernt. Der Name des Zweigs stammt von der h4-Komponente. All dies wird im CONSTRAINS-Bedienfeld auf die linke Seite geklebt. Kleben Sie die Anzahl der Lose (auch h4) und den Chevron auf die rechte Seite.
Zeichnen Sie die Komponente fĂŒr den offenen Zweig neu. Wir organisieren die zweite Ebene des Katalogs auf die gleiche Weise, aber weil Wir werden diese Stile nirgendwo wiederverwenden - klonen Sie einfach die Absatzzeilen in Schritten von 20 Pixel. Wie in Photoshop - keine Probleme. Ăhnliches gilt fĂŒr die dritte Stufe + Stick + LinienfarbĂ€nderung.

Als nÀchstes folgt eine Reihe kontinuierlicher Kompromisse
MenĂŒ
Das Registerkartenfeld fĂŒr alle Arten von MenĂŒs und Registerkarten wurde in einem 60-Pixel-Container in der Höhe platziert, und die Elemente selbst wurden in der Mitte platziert. Mit Blick auf die Zukunft sagen wir, dass dieser Ansatz nicht zutrifft, denn wenn Sie ein vollstĂ€ndig gummiertes Layout erhalten möchten, muss jede Lasche in einem separaten Rahmen platziert werden. Andernfalls funktioniert es nicht, das Verhalten der Registerkarten relativ zueinander festzulegen. Aber wir haben es im GesprĂ€ch mit den Entwicklern mit ruhigem Herzen geschafft.

Listen
Mit der Zeit erinnerte ich mich an eine Kleinigkeit wie nummerierte und nicht nummerierte Listen. Um eine Zahl hinzuzufĂŒgen, kehren wir zur ersten Spalte zurĂŒck und erstellen eine zweistellige Zahlenkomponente.
EingÀnge und Filter
Der Moment kam, als wir unsere eigenen Hierarchieregeln verletzten und die Komponenten und Komponenten, die aus diesen Komponenten bestehen (* _______ *), in einer Spalte platzierten (erinnern Sie sich: Die Regel war, sie rechts zu platzieren und sie in einer separaten Spalte herauszunehmen). Es war möglich, darauf zu verzichten, aber wir haben entschieden, dass der Block (Filter oder Eingang) und sein Dropdown eine Komponente in verschiedenen ZustÀnden umfassen. Wie Salvor Hardin sagte: "Lassen Sie sich niemals von der Moral davon abhalten, das Richtige zu tun."
Wir haben diesen Kompromiss aus folgendem Grund eingegangen: Die Zusammensetzung der Eingabe und beispielsweise KontrollkÀstchen sollten zum gleichen Schwierigkeitsgrad gehören (eine Spalte), aber die Dropdown-Liste in der Eingabe kann KontrollkÀstchen enthalten. Wir wollten wirklich, dass die Dropdown-Listen eine einzige Einheit mit Eingabe bilden - um eines schönen Schattens willen.

Sie können sagen, dass Sie dann die Eingabe mit den Dropdowns in eine separate (nĂ€chste Spalte) setzen mussten und Sie werden Recht haben. Dabei wurde uns jedoch nicht sofort klar. Und seit der EinfĂŒhrung des Förderers waren wir aufgrund des Budgets und der Fristen gezwungen, gegen dieses ungeschriebene Gesetz zum Bau atomarer Entwurfssysteme zu verstoĂen. Lassen Sie sich aus Erfahrung erzĂ€hlen - kein einziger Designer oder Entwickler hat darunter gelitten.
Wir werden zum praktischen Flugzeug zurĂŒckkehren.
EingÀnge
Innerhalb des 60px-Rahmens platzieren wir die Absatzkomponente als Platzhalter. Wenn die Eingabe scharfgestellt ist, wird der Platzhalter nach oben verschoben. Wir geben ihm einen Einzug von 20 Pixel und kleben ihn an den linken Rand. FĂŒgen Sie am unteren Rand des Blocks eine Linie von 2 Pixeln hinzu (verwenden Sie Rechtecke!). Kleben Sie vertikal nach unten. Horizontal können Sie Skalieren auswĂ€hlen. Weiter rechts können wir in verschiedenen Situationen entweder eine MaĂeinheit oder einen Dropdown-Chevron haben. FĂŒgen Sie sowohl das als auch ein anderes hinzu und kleben Sie es an die rechte Kante. Jetzt ist alles ordentlich gestreckt, und alle Kopien dieser Komponente erben das Verhalten des ĂŒbergeordneten Elements.

Wir fĂŒgen Komponenten fĂŒr verschiedene ZustĂ€nde hinzu: Cursor ĂŒber Cursoreingabe, Fokus, Dropdown-Liste öffnen, gĂŒltig und ungĂŒltig. Eine Möglichkeit, schnell ZustĂ€nde zu erstellen, besteht darin, eine Komponente zu klonen, Option + Befehl + b oder âuntergeordnete Instanzâ ĂŒber das KontextmenĂŒ zu drĂŒcken. Wir bearbeiten, was wir brauchen, und verwandeln es in eine neue Komponente. Vergessen Sie nicht umzubenennen.

Bei Filtern ist die Situation Ă€hnlich und mit Ausnahme des Standardstatus und des HinzufĂŒgens eines Kreuzes zum ZurĂŒcksetzen von Werten unterscheiden sie sich nicht von Eingaben. Vergessen - die Eingaben werden horizontal nacheinander verschoben, sodass am rechten Rand eine graue Linie von 2 Pixel hinzugefĂŒgt wird. Vergessen Sie nicht, es an die rechte Kante zu kleben.

Knöpfe
Es gibt zwei Arten von SchaltflÀchen in unserem Projekt.
Erstens: die ĂŒblichen SchaltflĂ€chen, die ĂŒberall verwendet werden, mit Ausnahme der Vorschaukarten des Loses. Ihre Anatomie ist folgende: Ein 30 Pixel hoher Rahmen mit transparentem Hintergrund, ein Rechteck Ă€hnlicher GröĂe mit einer Rundung von 15 Pixel (im Bedienfeld EINSCHRĂNKUNGEN legen wir den Skalierungswert in beiden Achsen fest) und die btn-txt-Komponente, die wir in allen Achsen in der Mitte ausrichten (fĂŒr jeden Feuerwehrmann entscheiden wir plötzlich Erhöhen Sie die Höhe der Taste?) WĂ€hlen Sie in einer separaten Komponente den Tastenstil beim Hover und einen separaten zum DrĂŒcken aus.

Die zweite Art von SchaltflĂ€chen sollte in den Stil der Vorschaukarten passen und Symbole enthalten. ZusĂ€tzlich zur Push-Funktion melden die Tasten ĂŒber einen ZĂ€hler aus derselben Spalte (Verzeihung), beispielsweise wie oft die Taste gedrĂŒckt wurde.

Wir machen sie aus 60px hohen Rechtecken, deren Breite vom Inhalt abhĂ€ngt. Wir binden die Komponenten des Symbols und von btn-txt auf allen Achsen ein und zentrieren sie. Wir setzen die ZĂ€hlerkomponente so auf das Symbol, dass die untere linke Ecke mit der Mitte des Symbols ĂŒbereinstimmt. Die SchaltflĂ€chen werden nacheinander angeordnet, sodass wir auf jeder Seite einen grauen Streifen von 2 Pixeln zur visuellen Trennung hinzufĂŒgen. Unnötig, dann an Ort und Stelle ausschalten. In diesem Fall in der Vorschau-Komponente des Loses.
Wir werden auf diese Ebene der Komponenten zurĂŒckkehren, aber vorerst weitermachen.
Hut
Gehen Sie zur neuen Spalte und beginnen Sie mit dem Sammeln der Kopfzeile.
Wir nehmen den Rahmen mit der gleichen Höhe von 60 Pixeln als Basis. FĂŒgen Sie unten eine graue Linie von 2 Pixeln hinzu. Nehmen Sie die Breite von 1440px, weil Wir werden alle Desktop-Vorlagen mit dieser Erlaubnis sammeln. Wir folgen bereits dem Standardschema: Ausrichtung mit der Mitte der vertikalen, horizontalen EinrĂŒckung von 20 Pixeln, Logo, MenĂŒregisterkarten, Suche (es wurde in Analogie zur Eingabe in der zweiten Spalte zusammengestellt).

Die rechte Seite der Kopfzeile sollte ein Informationsfeld mit den aktuellen Kontoinformationen und sogar eine Dropdown-Liste enthalten. Wir kehren zur vorherigen Spalte zurĂŒck und sammeln diese Ware aus den Symbolen und dem Text (Sie wissen bereits wie).

Um eine Dropdown-Liste fĂŒr eine Vorlage anzuzeigen, fĂŒgen wir zwei Komponenten gleichzeitig hinzu (Dropdown-Liste öffnen und schlieĂen). Einer wird ausgeschaltet, indem man in das Auge auf dem Ebenenfeld stöĂt. Vergessen Sie nicht, den Clip-Inhalt im HINTERGRUND-Bedienfeld zu deaktivieren.

Als nĂ€chstes vereinfachen wir den Header fĂŒr kleinere Bildschirme, indem wir das Unnötige beschneiden. Wir handeln auf bewĂ€hrte Weise. Wir klonen, trennen, löschen das Unnötige, fĂŒgen das Burger-Symbol hinzu, benennen es um und verwandeln es in eine Komponente.
Bei 320 Pixeln können wir den Einzug zwischen den Symbolen leicht verschieben.
Jetzt ist es an der Zeit, den Gummi einzustellen. WĂ€hlen Sie dazu unsere Komponente âHeader-Desktopâ aus und gehen Sie zu LAYOUT GRID. Wechseln Sie zu den Lautsprechern. Die Anzahl der Spalten spielt in diesem Fall keine Rolle. Hauptsache, das Raster sollte (fĂŒr verschiedene Aufgaben versuchen Sie verschiedene Raster) RĂ€nder von 20 Pixeln haben. Als NĂ€chstes konfigurieren wir das Verhalten der verschachtelten Komponenten des Headers.

AusfĂŒhrlichere Informationen zu den Einstellungen der Gummiart der Vorlagen erhalten Sie im zweiten Teil dieses Artikels.
Burger
Jedes Mal, wenn wir die Navigation fĂŒr einen Burger entwarfen, begannen wir, KrĂŒcken zu erfinden, aber in diesem Fall nicht. Es stellte sich heraus, dass wir alles haben, was wir fĂŒr einen Burger brauchen, mit Ausnahme des SchlieĂknopfes. Wir stellen die erforderlichen Komponenten zu einem BĂŒndel zusammen und verwandeln sie in eine neue Komponente.

Losvorschau
Gehen Sie zu den Vorschaukarten fĂŒr den Katalog. ZunĂ€chst wurde klar, dass Sie separate Komponenten fĂŒr die SchaltflĂ€chen im mobilen Display erstellen mĂŒssen (mit den Mitteln der Abbildung können Sie die Symbole nicht zentrieren, wenn Sie den SchaltflĂ€chentext einfach ausblenden). Wir gehen zur Spalte mit den quadratischen SchaltflĂ€chen und beenden die ZustĂ€nde fĂŒr schmale Bildschirme. FĂŒgen Sie ein dreispaltiges Raster hinzu.

FĂŒr die Karten selbst erstellen wir zunĂ€chst die Werbebuchungskomponente und Blöcke mit Basisinformationen. Wir gruppieren sie so, dass durch eine einfache Neuerstellung ein mobiles Display erzielt werden kann.

An dieser Stelle machen wir eine kurze Pause, um einen bereits immensen Artikel nicht aufzublasen. Im zweiten Teil werden wir darĂŒber sprechen, wie die oben genannten Komponenten zusammen gruppiert werden und reaktionsfĂ€hige Seitenvorlagen bilden.
Wir sind zuversichtlich, dass dieser Ansatz immer noch nicht ideal ist, und freuen uns daher ĂŒber Kommentare zu diesem Thema (insbesondere, wenn Sie wissen, wie Sie die Abbildung produktiver einsetzen können). Ihre Erfahrungen werden uns dabei helfen, unsere GeschĂ€ftsprozesse zu verbessern. Rund.