Komponentarkitektur i Figma

Sidste år offentliggjorde jeg artiklen “Bygning af fleksible komponenter i Figma”. Siden jeg skrev den artikel har Figma tilføjet forbedringer, der udvider de mange måder, du kan strukturere komponenter ved at give dig mulighed for at indlejre komponenter i andre og let skifte komponentforekomster, og derfor syntes jeg det var et godt tidspunkt at opdatere komponenter i Figma.

En af de bedste ting ved Figmas komponentsystem er, at du kan få adgang til lagstakken i alle forekomster af en komponent. Dette kan have en enorm indflydelse på tværs af spændvidden på et helt designsystem, fordi det kan hjælpe med at holde komponenter indeholdt og reducere antallet af nødvendige komponenter.

En anden nylig opdatering introducerede udveksling af træk og slip. Dette kan ske lokalt i din fil eller direkte fra dit delte teambibliotek (et separat Figma-dokument). At kunne gøre dette kan have en enorm indflydelse på, hvordan du strukturerer dine komponenter.

Her er et par ideer til, hvordan du maksimerer modulariteten og i nogle tilfælde reducerer antallet af nødvendige komponenter.

Indlejrede komponenter

Figma lader dig heste komponenter i komponenter. Dette betyder, at du kan strukturere dem på alle mulige modulære måder. Her er et par forskellige måder at bruge indlejrede komponenter på:

Byggesten

Ofte opretter jeg en "byggesten" -komponent, og bruger den som basis for en anden komponent. I disse knapper har jeg for eksempel oprettet et grundlæggende afrundet rektangel til knapformen og gjort det til en komponent. Denne komponent bliver ikke offentliggjort på mit teambibliotek, forekomster bliver bare brugt i andre komponenter, som jeg bygger, som de faktiske knapkomponenter (som bliver publiceret).

Fordelen ved denne metode er, at alle mine knapper og knaptilstande gør brug af denne basekomponent (med anvendt stiloverskridelser), som opretholder et link tilbage til den basale "byggekloss" -komponent. Skulle jeg være nødt til at foretage en globaliseret ændring, såsom at ændre knapformen, kan jeg blot gå tilbage og redigere den originale komponent, og ændringen påvirker alle de komponenter, der er baseret på den.

Hver knap indlejrer byggeklodekomponenten i den og anvender stiloverskridelser på basekomponenten for at oprette de forskellige tilstande. Copyright © 2018, åben tekst. Alle rettigheder forbeholdes.

Forekomstbytte

En anden fordel ved at hekke komponenter er, at du kan bytte / udskifte dem for andre komponenter. For eksempel i flisehovedet nedenfor, er jeg bare nødt til at opbygge en komponent til flisehovedet og blot udskifte den indlejrede komponent for en anden. Hvis du er bekendt med Sketch, er du sandsynligvis allerede bekendt med dette koncept, men interaktionen i Figma for at udskifte komponenter er forskellig (træk og slip).

Genveje:
Sådan udskiftes en komponent - Hold indstillingen, når du trækker.
Top udskift en indlejret komponent (inden for en anden komponent, ramme eller gruppe) - Hold ⌘ + indstilling, når du trækker.

Forekomster af forskellige ikoner kan udskiftes for andre fra dit dokument eller det delte teambibliotek. Copyright © 2018, åben tekst. Alle rettigheder forbeholdes.

Masking

Opdatering: Brug af denne metode er blevet afskrevet takket være introduktionen af ​​globale stilarter i Figma 3.0.

For at gøre dette skal du oprette nogle farvekomponenter (en form med udfyldning) og placere en forekomst af komponenten på et lag over det kunst, du vil maske. Når begge lag er valgt, skal du anvende en maske, og alt hvad du skal gøre for at ændre farven er at bruge den ovenfor beskrevne metode til at bytte forekomster af fyldkomponenten med en anden farveprøve.

Vis / skjul komponenter

Fordi du kan få adgang til lagstakken i hvert enkelt tilfælde, er der tidspunkter, hvor det giver mening at huse de forskellige tilstande i en enkelt komponent. Det enkleste eksempel på dette er en afkrydsningsfelt eller radioknap. I stedet for at have to komponenter (markeret og ikke markeret), kan du blot inkludere tilstanden "markeret" i din komponent. Visning og skjul af det markerede lag skifter tilstand.

Når du åbner lagstakken i hver forekomst, kan du vise / skjule lag

Genveje: Vælg det markerede lag, og tryk på Slet-tasten for at skjule laget. Alternativt skifter ⌘ + Shift + H også lagets synlighed.

Beskæring af komponenter

Tænk på komponenter som sammenkoblede rammer - alle de samme ting, som du kan gøre med rammer, gælder også for bygningskomponenter, herunder at kunne beskære dem.

Opret en komponent, og konfigurer begrænsningerne inden for den - mens du holder ⌘, træk rammen til din komponent for at beskære indholdet, eller juster dimensioner i egenskabspanelet. Indholdet af din komponent kan ændres, hvis du ikke konfigurerer begrænsningerne, så sørg for at gøre det først. Dette er fantastisk til at oprette et "gentaget gitter" med rækker / kolonner eller indstille tabeldata. Du kan oprette flere rækker end du har brug for og bruge denne metode til kun at vise det antal elementer, du ønsker. Par denne teknik med begrænsninger, og du kan endda konfigurere komponenter, der skjuler eller afslører indhold, når deres overordnede komponent udvides og kontrakteres. Sørg for, at "Clip Content" er markeret i dit egenskabspanel for at se det beskærede resultat.

Grupper af forekomster kan samles som komponenter og derefter beskæres ved hjælp af indstillingen

Opsætning af beskærede gitterkomponenter:

  1. Indstil din indledende gentagne komponent
     Forekomster af denne komponent gentages for hver række eller kolonne. Dette kan omfatte indlejrede komponenter, tekstbokse, pladsholdere for billeder (figurer med udfyldning) osv.
  2. Indstil begrænsningerne
    Konfigurer begrænsningerne for det gentagne element, tænk på, hvordan du vil have det til at reagere i forhold til skibet til den overordnede komponent (som vil være dit gitter).
  3. Juster rammestørrelsen
    Hold ⌘ nede, mens du justerer komponentens rammestørrelse for at forstørre dimensionerne på komponenten, så du kan indbygge polstringen af ​​din komponent i dens samlede størrelse (hvis relevant for dit design).
  4. Duplicerede tilfælde
    Duplicerer dit gentagne element, du kan bruge pakken vandret eller pakke lodret i Figma (under menuen Arranger) for at sikre, at alle komponenter er perfekt anbragt mod hinanden. Derfor anbefaler jeg at indbygge polstret i din komponent.
  5. Lav din "gitter" -komponent
    Gør din gruppe af gentagne tilfælde til en ny komponent.
  6. Indstil begrænsningerne
    Indstil begrænsningerne i din nye netkomponent; tænk på, hvordan du vil have, at hvert af gitterelementerne skal reagere, når din gitterbeholder beskæres, og den retning, den vil udvide.
  7. Klipindhold
    Marker “klipindhold” i egenskabspanelet. Dette skjuler indholdet, der overskrider rammen.
  8. Juster rammestørrelsen
    Hold ⌘ nede, mens du justerer komponentrammestørrelsen for at beskære komponenten til den ønskede mængde.

Når du begynder at konfigurere disse gitre, er mulighederne uendelige. At tilsidesætte tekst, symboler og tilføje billeder er en leg!

Denne teknik kombineret med “Placer billeder” (Shift + ⌘ + K) giver dig mulighed for at udfylde et gitter med billedindhold meget hurtigt.

Tekstkomponenter

Siden Figma 3.0 blev lanceret, er en mere effektiv måde at håndtere tekstformater på at bruge de nye funktioner i Styles til centralt at styre egenskaber. Når det er sagt, kan tekstkomponenter stadig være nyttige kar til at kombinere flere egenskaber / stilarter som et enkelt objekt.

Indtil der er en alternativ måde at håndtere tekstformater på (), er det det næste bedste at opbygge dem som komponenter. Dette fungerer godt, fordi du som enhver anden komponent kan føje dem til dit teambibliotek og synkronisere dem på tværs af dine designs. Du kan også let tilsidesætte egenskaber som farve, justering, stil og vægt. Her er et par trin til oprettelse af dine tekstkomponenter:

Komponenter kan arbejde efter tekstformater. Det er let at udskifte stil fra komponentpanelet.
  1. Opret en tekstboks
    Klik en gang for at oprette et tekstfelt (ikke træk for at oprette et felt). Stil det med skrifttypen / vægt / farve / linjehøjde / justering / osv. at du ønsker.
  2. Konverter dette tekstfelt til en komponent
    Indstil tekstboksens begrænsninger inden for symbolet til: "Top og bund" og "Venstre og højre". Dette sikrer, at din tekstboks forbliver i størrelse med komponenten.
  3. Omdøb lag
    Omdøb din komponent til det ønskede tekstformatnavn.
    Omdøb dit tekstlag til noget generisk som "Tekst". Du vil omdøbe dette lag det samme på alle efterfølgende tekstkomponenter.
  4. Brug dine nye komponenter
    Når som helst du har brug for at ændre en tekststil, kan du simpelthen udskifte forekomsterne til en anden tekstkomponent. Da vi omdøbte alle tekstlagene i komponenterne til at være de samme, gør dette det muligt for komponenten at kortlægge enhver tilsidesat tekst til den udskiftede instans.

Og hvis du ønsker at blive endnu mere dekorativ, skrev Mirka S en fantastisk artikel om modulopbyggede / skalerbare tekstteknikker.

Kombinerer det hele

I eksemplet nedenfor er alle ovennævnte teknikker blevet brugt til at skabe en ekstremt fleksibel flisekomponent, der tegner sig for forskellige tilstande og afvigelser til brug inden for mockups og prototyper.

Her er et resumé af et par af de forskellige komponentvarianter:

En velkonstrueret komponent kan antage mange forskellige former ved blot at udveksle indlejrede komponenter og skifte synlighed for lag. Copyright © 2018, åben tekst. Alle rettigheder forbeholdes.Copyright © 2018, åben tekst. Alle rettigheder forbeholdes.

Sammenbrud

Indlejret inden i flisekomponenten, der er vist ovenfor, er et antal elementer, der kan tændes / slukkes eller skiftes til forskellige komponenter.

  • Ikoner
    Ikonet overalt er indlejrede forekomster og kan let udskiftes til andre ikoner.
  • Fliseindhold
    Indholdsområdet i flisen er også en indlejret komponent. For at oprette basisflisekomponenten er der en pladsholderkomponent med en rød stiplet linje, som skitserer dimensioner, og også fastlægger dens begrænsninger i flisen. Jeg kan erstatte pladsholderkomponenten med mine faktiske indholdsnetkomponenter. Når jeg kombinerer dette med den beskårne "klipindhold" -metode, kan jeg vise en version af en "gentag gitter" -visning, der vil vokse med den overordnede komponent.
  • Rullebar
    Rullebjælken er simpelthen en indlejret komponent, hvis synlighed kan skiftes, hvis vi vil kommunikere, at indholdet indeni kan rulles.
  • trunkering
    En lille vektor med massiv hvid til gennemsigtig gradient er placeret over tekstkomponenten til flisetitel. Det kan synliggøres eller deaktiveres synlighed for at vise vores fade-out trunkeringseffekt, når det er nødvendigt.
  • Søg
    Placeret inden i flisehovedet er en søgeinputkomponent, der også kan skiftes. Da dette særlige element også er en indlejret komponent, tillader det mig at udveksle forskellige tilstande i inputfeltet fra pladsholder, til befolket, til befolket med fokus.

Her er det i aktion:

Et par ekstra noter

Forekomstmenu

Komponenter, der er lokale til din fil, kan også udskiftes fra forekomstmenuen. Et konsistent navnemønster med skråstreg hjælper med at sortere dine komponenter i mere håndterbare spande.

En anden måde at bytte komponenter på er at vælge en komponent og få adgang til instansmenuen fra egenskabspanelet. Herfra kan du vælge en anden komponent, der skal skiftes. Dette fungerer kun for lokale komponenter, fordi listen kun er befolket fra komponenter, der allerede findes i dit dokument.

Brug af skråstreg til at segmentere dit navneplan, organiserer ikke kun dine komponenter i grupper i denne menu, det organiserer også dine eksporterede aktiver i undermapper.

Udskiftning af komponenter

At ændre mange tilfælde af en ofte anvendt komponent lyder som det ville være en afskrækkende opgave, især hvis den er spredt ud over mange forskellige rammer. Vi ved, at det er let at ændre forekomsten, problemet er at finde dem alle. Heldigvis har Figma en funktion til at foretage valg baseret på fælles.

Dokumentation

Figma giver dig mulighed for at tilføje beskrivelser til dine masterkomponenter. Hvis du har variationer i lignende komponenter, specifikke brugssager eller endda en redesignet komponent, du validerer, er dette et godt sted at tilføje nyttige oplysninger, der ledsager din komponent, som let vil være tilgængelig for designere lige fra komponent- og teambibliotekspanelerne .

Beskrivelser, der er tilføjet til dine masterkomponenter, vises på hover, inde i komponentmenuen.

Dokumentation er ikke kun kritisk for designere, det er lige så vigtigt at overveje samarbejdet med udvikleren. Indkapsling af enhver detalje i et lille beskrivelsesfelt er ikke muligt, så prøv at lægge dig selv i udviklerens sko og identificere, hvad de har brug for at vide. Da så mange applikationer bliver komponentcentriske i deres struktur, er der en god chance for, at udviklere vil tage den samme tilgang til at skrive kode og ønsker at forstå det fulde udvalg af hver komponent og dets forskellige tilstande, der er specifikke i designet. Det er let at falde i fælden og tænke, at du har brug for en detaljeret stilguide, dokumentationswebsted eller yderligere værktøjer til at udføre dette, men virkeligheden er, at mange små hold simpelthen ikke har tid eller ressourcer til at gøre dette. Den gode nyhed er, at det ikke er et krav for at få succes - hold det enkelt og undgå at komplicere det.

Figma kan hjælpe med at lette udviklerens håndtryk og den samarbejdsmæssige karakter af, hvad den proces altid skal sigte mod at være. Overvej eksemplet nedenfor. En datovælgerkomponent med forskellige tilstande. Denne særlige komponent er inde i en filopsætning for at være et lager for alle UI-komponenter i designsystemet. Komponenterne deri deles til andre filer, der indeholder skærmmodeller. I stedet for kun at sende skærmene til udvikleren, kan du overveje at dele et link direkte til dine teambiblioteksdokumenter for at ledsage mockups.

Masterkomponenterne, der udgør datavælgeren, findes i en ramme (navngivet passende, så de grupperes i komponentpanelet). Masterkomponenterne er placeret til venstre. Dette er de komponenter, som designerne har adgang til fra deres teambibliotekspanel, når de arbejder med skærmmodeller. Til højre er bare forekomster af masterkomponenterne (så du behøver ikke at bekymre dig om disse rod i dit teambibliotek, når du får adgang fra andre filer). Disse tilfælde kan samles for at illustrere forskellige tilstande for komponenten. Dokumentation kan være så enkel som at tilføje nogle noter og samarbejde med udviklerne via kommentarer. Dette placerer alt på et sted og sparer udvikleren fra at skulle jage rundt om dine forskellige skærmmodeller bare for at forstå det fulde omfang af, hvad de har brug for at bygge.

Sletning af masterkomponenter

Klik på det blå link gendanner din masterkomponent. Pyha!

Sletning af en masterkomponent kan være katastrofalt. Forestil dig alle sammenkoblede forekomster af nævnte komponent alle de pludselige løsrivelser og vender tilbage til en ramme! Figma har du dækket. Forekomster opretholder faktisk deres forekomststatus, hvis du skal vende tilbage til dette senere. Dette giver dig mulighed for enten at vælge dem alle og bytte dem ud til en anden komponent (som findes), eller du gendanner faktisk den originale masterkomponent.

Tak for din læsning - del dine tanker / spørgsmål nedenfor, og lad mig vide, om denne artikel overhovedet var nyttig. Du er velkommen til at DM mig på Twitter, eller finde mig på Spectrum Figma kanal, hvis du har spørgsmål!

Og ... hvis du aldrig har prøvet Figma men på en eller anden måde har fundet dig selv her, så tjek det, det er gratis for enkeltpersoner og studerende!