Att använda en livsstilguide (LSG) för att driva utveckling är en övning som blir mycket populär eftersom den har många fördelar, inklusive kod effektivitet och UI-konsistens. Men hur kan du skapa en? Vad ska du inkludera? Och var börjar du ens? I denna handledning kommer jag att dyka in i de nitty-gritty detaljerna om att skapa en levande stil med DocumentCSS .

The Beauty of Living Style Guides

På samma sätt som en standardstylguide ger en levande stilguide en uppsättning standarder för användning och skapande av stilar för en applikation. När det gäller en standardstylguide är syftet att upprätthålla varumärkessamhållighet och förhindra missbruk av grafik och designelement. På samma sätt används LSGs för att upprätthålla konsistens i en applikation och att styra implementeringen. Men det som gör en LSG annorlunda och kraftfullare är att mycket av sin information kommer direkt från källkoden, vilket gör det enkelt och effektivt att reflektera det utvecklande tillståndet för en applikation.

1-giphy-kramer

Ännu idag är det tänkt att veta att du kan använda källkoden i din ansökan för att bygga din stilguide.

Om du tittar på exemplen nedan ser du de gemensamma beteckningarna för en LSG är:

  • En lista över de element som dokumenteras
  • Succinkt dokumentation med kodutdrag och interaktiva användargruppdemonstrationer
2-exempel-ensam-planet

Lonely Planet Style Guide

3-exempel-sales-kraft

Sales Force Style Guide

Ett annat viktigt inslag i en LSG är att du kan använda en stilguidegenerator för att automatisera processen. En stilguidegenerator kommer att använda din källkod för ansökan för att mata huvuddelen av din LSG-dokumentation och titta på eventuella ändringar som görs i din kod, och se till att du uppdaterar din stilvägledningsdokumentation när din ansökan ändras.

Style Guide Generators

Det finns många smaker att välja mellan, beroende på vilket kodsprog du vill dokumentera eller din projektinställning. Här är några ställen att leta efter alternativ:

För denna handledning kommer jag att visa dig hur du kan använda DocumentCSS för att skapa din LSG. Detta verktyg som skapats av Bitovi är öppen källkod och kan användas i alla projekt för att dokumentera CSS (förprocessorer som Less och SASS stöds också). Om du är intresserad av att dokumentera Javascript och andra språk kan du enkelt göra det med DocumentCSS, eftersom det här verktyget är en delmängd av DocumentJS. Jag kommer inte att täcka den delen i denna handledning, men det är bra att komma ihåg.

Planera din stilguide

Innan du dyker på att skapa ditt LSG planerar det första steget vad som kommer att vara i det. Som en bra webbplats är en välstrukturerad informationsarkitektur (IE) nyckeln.

Så låt oss börja med att använda följande uppsättning mönster av vår app som heter "Vintage Shop" och observera de ihållande elementen i användargränssnittet:

5-tappning-shop-prototyper

Vintage Shop Mockups

Vid denna punkt rekommenderar jag att du börjar med större grupper av element, till exempel navigering, vagn eller formulär. Till exempel separerar vi vår design i dessa tre grupper: stegindikatorn, minikorgen och produkterna i kundvagnen:

6-tappning-shop-element

Med dessa större grupper av element kan du börja gå in i mer detalj och identifiera "stilar" som kvarstår. Till exempel finns en konvention för typografi i allmänhet, och mer specifikt för rubrikerna, underrubrikerna och länkarna jämfört med vanlig text. Färgen på knapparna fortsätter också över sidorna.

7-tappning-shop-stilar

Om vi ​​sätter allt ihop, låt oss skriva ner dessa grupper med hjälp av ett diagram:

8-diagram-stil-guide-1

Om du tar en djupare titt på dessa grupper kan du finjustera dem och göra dem till kategorier som du kan använda i din stilguide när det växer. Till exempel:

  • "Elements" är en väldigt vag term som kan referera till något HTML-element, så ett bättre namn för denna grupp kan vara "Components" eller "Modules. Dessa är fortfarande brett men är mer specifika för typen av element som skulle täcka.
  • "Primär vs sekundär" -knappar kan vara en del av "Baselement", och färgaspekten av den kan gå in i en "Färgpalett" -kategori.

Dessutom kan du tänka på en kategori där du kan inkludera mer generisk information om din stilguide. Ett bra exempel på det skulle vara en "Guides" -sektion där du kan beskriva hur du bidrar till stilguiden eller en "Branding" -sektion där du kan inkludera riktlinjer för ditt varumärke som bör beaktas när du utformar och implementerar din app.

Med detta i åtanke är här vad diagrammet skulle se ut:

9-diagram-stil-guide-2

Du kan se hur det här diagrammet tar form av en webbplatskarta, vilket är i grund och botten vad du vill använda som en plan när du skapar din levande stilguide.

Dyk nu in i mönstren och skissa upp din egen sajtkarta, inklusive så många kategorier som du tror skulle vara användbar för framtiden. Du kan få idéer från andra stilguider ( styleguides.io/examples är en stor resurs). När du är klar, kolla den här mer omfattande versionen och jämföra.

Skapa sidor i en Living Style Guide

Medan huvuddelen av din LSG-dokumentation kommer från speciella kommentarer som du lägger till i källkoden kan du även skapa fristående sidor där du kan vara värd för andra typer av innehåll som inte är specifika för koden (tänk på konstruktionsprinciper, riktlinjer för tillgänglighet, eller dra förfrågningsriktlinjer). Detta ger dig fördelen av att centralisera din dokumentation på ett ställe: din ansökan levande stil guide.

Du kan nästan tänka på den levande stilguiden som "spelreglerna" för din app. Inne i "reglerna" är all information som behövs för hur man "spelar" spelet: byggstenarna och reglerna för att skapa och bygga nya block. Inkluderar hur andra medlemmar av ditt team kan bidra till det och hjälpa till att upprätthålla det som ett levande dokument.

1-giphy

Yas! Tro på det. Du kan få alla dina dokument konsoliderade på ett enda ställe!

Med detta i åtanke, låt oss börja med att installera den provprogram som vi ska använda för denna handledning.

Installera provprogrammet

Installationsprocessen har 3 steg:

1. Installera nod

Först, se till att du har Nod installerad. Du behöver minst version 6.

2. Installera appen

Hämta sedan den här zip-filen: sgdd-tutorial.zip till skrivbordet och pakka ut det . Detta är viktigt eftersom en annan plats skulle bryta installationskommandon.

Öppna sedan terminalen och ange följande kommando:

cd ~/Desktop/vintage-shop-sgdd-tutorial && npm install

Det tar några sekunder att installera appen och dess beroenden.

3. Kör appen

När installationen är klar anger du följande kommandon:

  1. npm run develop
  2. Ange i en ny flik: npm run document

Nu, låt oss bryta ner det här:

npm run develop

Startar en server där du kan se din app visas på: http://localhost: 8080. Du kommer att se i terminalen:

2-terminal-server-löpning

Och i webbläsaren:

3-app-home
npm run document

Genererar den levande stilguiden på http://localhost: 8080 / skrivregler. Du kan lägga till flaggan -- -w till det här kommandot för att titta på ändringar i din kod och sedan generera en uppdatering i den levande stilguiden, så här:

npm run document -- -w

Byter till webbläsaren bör du se:

4-style-guide-välkomna

Den genererade livsstilguiden använder DocumentCSS , så låt oss ta en titt på hur det fungerar.

Hur fungerar DocumentCSS?

DocumentCSS är en statisk webbplatsgenerator. Det betyder att det letar efter speciellt formaterade kommentarer i din kod och skapar en statisk webbplats. Denna webbplats kallas "statisk" eftersom den förblir oförändrad tills ett kommando (i det här fallet documentjs ) körs igen. Detta arbetsflöde fungerar bra för att generera en levande stilguide eftersom ändringar i dina stylesheets också ändras till den statiska webbplatsen Living Style Guide.

För att bygga en levande stilguide gör DocumentCSS följande:

  • Läser igenom filer som anges i dess konfiguration (för den här handledningen kommer den att ses på .less och .md filer)
  • Letar efter kommentarer som använder särskilda "taggar" (som @page , @stylesheet eller @styles .
  • Genererar html-filer och ansluter dem till att bygga webbplatsen.
6-stil-guide-generator

Med detta i åtanke ska vi hoppa in med DocumentCSS för att skapa en ny sida i LSG.

Skapa en sida

Börja först öppna provprogrammet i din kodredigerare. Du bör se följande filstruktur:

7-project-innehåll

Borra ner i src och hitta base/markdown . Här hittar du sidor som redan finns i stilguiden. Skapa en ny markdown-fil och namnge den "om" (med tillägget .md ). Din filstruktur ska nu se ut så här:

8-project-innehåll-about

Inne i den här nya filen lägger du till taggen @page följt av två strängar:

@page about about

Låt oss nu bryta ner det här:

@page

Taggen @page förklarar filen som en sida och berättar DocumentCSS att informationen i den här filen ska visas som en sida i stilguiden. Detta tjänar till att skilja det från stylesheets, javascript eller andra typer av filer i din dokumentation.

about

Detta är det unika namnet på sidan och används som referens till andra taggar. Så håll den kort, liten och enkel eftersom den kommer att användas som webbadressen för sidan. För vårt exempel kommer webbadressen till vår nya sida att vara: http://localhost: 8080 / skrivregler / about.html

About

Detta är titeln på sidan som kommer att användas för visning i den genererade webbplatsen. Här kan du använda flera ord med mellanslag eller andra tecken.

Om du vill visa den nyskapade sidan kör dokumentis i terminalen igen (om du inte har det att titta på för ändringar) och gå till http://localhost: 8080 / skrivregler / about.html för att se den nya sidan.

9-style-guide-om-1

Nästa steg är att lägga till din sida i navigeringen. För detta lägg till en andra rad till din fil enligt följande:

@page about About@parent index

Taggen @parent tillåter att ange en förälder för ditt dokument. I det här fallet vill vi att sidan "Om" visas under hemavsnittet. Nu kan du omdirigera dokumenten och se sidan visas under länken "Välkommen":

10-style-guide-om-2

Och om du klickar på länken "Välkommen" kan du komma till startsidan:

11-style-guide-om-3

Nu är det bra att lägga till innehåll på den här sidan med markdown eller html. För att avsluta träningen lägger vi till följande dummyinnehåll:

@page about About@parent index## Hello World!This is the first page of my style guide. Here I can add any type of content that shouldn’t live with the code. Like who are the main contributors of the style guide or contact info.For example here's an animated gif inside of an `iframe`:

Och här är utsignalen:

12-style-guide-om-4

Dokumentation av ett stilark i en Living Style Guide

Hjärtat med att skapa en LSG är möjligheten att sätta din dokumentation rätt där den tillhör: i källkoden. Chansen är att du redan dokumenterar din kod, vilket är ett utmärkt tillfälle att ta det till nästa nivå genom att använda en stilguidegenerator som kan göra dessa kommentarer till en organiserad webbplats, så att andra (och dig själv från framtiden) vet varför och vad har gjorts i koden.

1-giphy-back-to-the-framtid

Du själv från framtiden efter att ha läst de dokument du skrev tidigare.

Dokumentation av ett stilark

Dokumentation av ett stylesheet följer ett liknande mönster till dokumentera en sida , men i så fall kommer dokumentationen att gå in i en kommentar, precis bredvid koden (det är skönheten!).

För att komma igång öppna stilarket: buttons-custom.less .

2 knappar-custom

Inne i den här filen och inuti ett kommentarblock lägger du till taggen @stylesheet följt av två strängar:

/**@stylesheet buttons.less Buttons*/

Observera att dokumentationskommentaren måste börja med /** för parsern (i detta fall JSDoc ) att erkänna det.

Låt oss nu bryta ner det här:

@stylesheet

Taggen @stylesheet förklarar filen som ett stilark och berättar DocumentCSS att informationen i den här filen ska visas en sådan i stilguiden. Detta tjänar till att skilja det från andra typer av dokument, t.ex. sidor, komponenter och modeller, bland annat ( Läs här om hela listan med dokumenttyper ).

buttons.less

Detta är det unika namnet för stilarket och används som en hänvisning till andra taggar. Medan du kan använda vilken typ av namn som helst, rekommenderar jag att du använder namnet på formatarkfilen, eftersom det här hjälper till att hitta filen när du refererar till dokumentationen. Tänk på att detta kommer att påverka URL-adressen till ditt dokument. För detta exempel kommer URL: http://localhost: 8080 / skrivregler / buttons.less.html

Buttons

Liknande skapa en sida , det här är titeln på stilarket som ska användas för visning i den genererade webbplatsen. Här kan du använda flera ord med mellanslag eller andra tecken.

Om du vill visa den nyskapade sidan kör följande kommando om du inte har det att titta på för ändringar):

documentjs

Och sedan gå till http://localhost: 8080 / skrivregler / buttons.less.html för att se den nya sidan.

3-style-styrknappar-1

Nu lägger vi till det här nya dokumentet till vår navigering. För detta följer vi samma konvention som vi använde när vi skapade sidan med hjälp av @parent märka:

/*** @stylesheet buttons.less Buttons* @parent styles.base*/

Observera att vi i detta fall har lagt till .base att ange denna sida ska visas under gruppen "Baseline" som visas i sidofältet (du kan även skapa grupper i din subnav! Vi kommer att gräva in det på en liten bit).

Återställningen av dokumenten och uppdatering av sidan ska se ut så här:

4-style-styrknappar-2

Nu för den köttiga delen! Med vår sida på plats kan vi göra några saker:

  • Vi kan lägga till en övergripande beskrivning för doc
  • Vi kan lägga till alla slags innehåll med både markdown eller vanlig HTML
  • Och bäst av allt kan vi lägga till demos för vår kod?

Låt oss lägga till en snabb beskrivning och en demo för våra knappar doc:

/*** @stylesheet buttons.less Buttons* @parent styles.base* @description* Global style definitions for all button elements.* @iframe src/base/bootstrap-custom/buttons/buttons-custom.html*/

Rerun docs, och?:

5-style-styrknappar-3

Som du kan se @iframe taggen tillåter att lägga till en iframe med en demo till ditt dokument. Denna demo är egentligen bara en enkel html-fil med en skriptikett som importerar CSS till din app vid körning.

Låt oss öppna demoen buttons-custom.html  :

6-buttons-demo

Och se hur koden ser ut:

<script src="/node_modules/steal/steal.js" main="can/view/autorender/"><import "vintage-shop/styles.less";script> <a class="btn btn-default" href="#" role="button">Linka><button class="btn btn-default" type="submit">Buttonbutton><input class="btn btn-default" type="button" value="Input"><input class="btn btn-default" type="submit" value="Submit"><hr /><button type="button" class="btn btn-default">Defaultbutton><button type="button" class="btn btn-primary btn-checkout">Primarybutton><button type="button" class="btn btn-success">Successbutton><button type="button" class="btn btn-info">Infobutton><button type="button" class="btn btn-warning">Warningbutton><button type="button" class="btn btn-danger">Dangerbutton><button type="button" class="btn btn-link">Linkbutton>

Det enda som krävs i den här filen är skriptet, vilket borde vara detsamma för alla demo som du skapar i den här appen. Resten av koden är markeringen med de stilar som du vill visa i demo.

Dessutom kan du använda taggen @demo för att även visa kodens kod som används i den. Så här:

/*** @stylesheet buttons.less Buttons* @parent styles.base** @description* Global style definitions for all button elements.* @demo src/base/bootstrap-custom/buttons/buttons-custom.html*/

Vilket kommer att mata ut så här:

7-style-styrknappar-4

Demokredit går till Bootstrap Docs där vi snapar koden från.

Nu, innan du går bananer med det här, finns det ett par mer godsaker som du kan dra nytta av:

  • Skapa stilavsnitt
  • Skapa stilarkrupper

Skapa stilavsnitt

För att skapa en stil sektion kan du använda taggen @styles . Den här taggen är söt eftersom den låter dig bryta ner ditt stilarkdokument till förnuftiga bitar som du kan prata om och förstå bättre.

Till exempel, i vårt exempel har vi stilar för att definiera knappar i allmänhet, oberoende av markeringen som används (antingen a