Göra känsla av färgkoder

HTML-färgkoder är en vanlig och avgörande del av modern webbdesign. Medan de flesta webbplatser idag är utformade i stor utsträckning delvis med bilder, är färger särskilt viktiga när du behöver komma med ett färghex-värde i flygningen medan du kodar. I den här guiden kommer vi att lära oss grunden bakom färgkodning, vilket ger dig kraften att komma på färger utan att använda en färgplockare.


Inledning: Färgkoder

Som du kanske vet finns det två vanliga sätt att definiera en färg i webbdesign:

  1. rgb (___, ___, ___)
  2. # _ _ _ _ _ _

Båda dessa används oftast med hjälp av CSS eller HTML, som du kan granska nedan:

 Skriv här Skriv här
 .foo färg: rgb (111,222,111);

I det första kodexemplet skulle varje text text här dyka upp som en ljusgrå färg. Vi går över varför det är senare; Observera dock hur trots att färgmetoderna verkar vara ganska olika, i själva verket är de exakt samma färg.

I det andra exemplet har vi bara en snabb CSS-kod. Det är ganska enkelt - något med en klass av "foo" kommer att ha en textfärg på rgb (111.222.111). För de mer nyfikna, det skulle vara en lime green-ish färg.

Hittills, det mesta borde vara meningsfullt för dig. Låt oss nu inse exakt hur vi går från de relativt kryptiska koderna till något lite mer konkret.


Utställning A: RGB

I RGB kan varje värde mellan kommatecken vara ett tal från 0 till 255. Till exempel:

 rgb (10,137,29)

Eftersom RGB står för "Red Green Blue" betyder det att det finns ett värde på 10 för rött, 137 för grönt och 29 för blått. Oundvikligen är dessa en slags irreducerbar fraktion. Således:

  • den röda skulle vara 10/255 (tio av
    ett maximalt värde på 255)
  • den gröna skulle vara 137/255 (137 av högst 255)
  • och 29/255 för blå.

Ju högre antal, desto mer av den vissa färgen kommer det att finnas i slutresultatet.

När den är inställd på noll finns det ingen av den speciella färgen. Vid 255 visar det motsatsen naturligtvis sant. Därför:

  • rgb (0,0,0) = svart
  • rgb (255.255.255) = vit

Detta gäller för att RGB-färgsystemet är baserat på färg genom ljus. Det här skiljer sig mycket från hur man normalt skapar färger, till exempel med färg eller kritor. Om du hade en kombination av rgb (255,255,255) med färg, skulle du förmodligen komma ut med något som mörkbrunt, men absolut inte vitt!


Utställning B: Hexadecimal

Hexadecimal färg är i allmänhet svårare att förklara än RGB. Grunden är de samma. Emellertid är hexadecimals inre verkningar utan tvekan mer ingripande.

För att förklara hexadecimal färg måste vi först komma tillbaka till något binärt och in i basets sextons talsystem för att förstå hur något som detta verkligen försöker "säga":

# 554BFF

För er av er som inte vet huruvida något av dessa jobb, eller vad någon av dem är, här är en kort guide:

Binär 101

  • Binär består helt och hållet av nollor och sådana.
  • En noll ger ett värde på noll, och en ger ett värde på en; men inte alltid.
  • en bit är antingen en 1 eller en noll. 1 är lite. 0 är lite. Men 01 är inte lite - det är 2 bitar. 10 är inte heller heller, det är 2 bitar också.
  • Låt oss föreställa oss att vi har fyra bitar; detta är smart benämnt en nibble, eller en halv byte. Istället för att detta nummer motsvarar två, eller 11 eller 110, eller vad du kanske gissar, är det faktiskt mycket annorlunda.
  • När fler bitar samlas, dubblar värdet på varje bit.
  • Eftersom den första biten har ett maximalt värde på ett och ett alternativt värde på 0, kan den andra biten vara 2 eller 0, den tredje kan vara 4 eller 0, den fjärde kan vara 8 eller 0, och så vidare.
  • Med det här systemet kan du faktiskt skapa ett vanligt (bas 10) nummer. Något tal alls.
  • Notera: De ackumulerade värdena läggs samman, beroende på huruvida de är 1 eller 0. Dessutom bör du observera att binär läser i de flesta fall från höger till vänster.

Om det var lite förvirrande, föreslår jag att du läser över det igen. Om det fortfarande inte är meningslöst efter det är det helt okej - följande exempel hjälper till att förstärka din förståelse.

Vänta - Hur relaterar detta till färgkoder?

Hexadecimal, som namnet antyder, ger sexton användbara "värden" för ett nummer att ta på sig. Som du kanske har märkt tidigare kan en "nibble" ge dig ett tal från 0-15: sexton värden totalt!

Bevis på koncept

Förutsatt att vi har följande:

1111

Och att veta att de binära värdena för varje bit kommer att bli enligt följande:

8 4 2 1

Det binära värdet av 1111 blir:

8 + 4 + 2 + 1

vilket är…

15

På samma sätt, om det binära numret hade varit 0000, hade det slutliga resultatet bara varit noll, eftersom 0 + 0 + 0 + 0 motsvarar 0.

Ett annat exempel

 binär: 0101

Värdena för varje bit är 8,4,2 och 1 (i ordning). Lägg ihop de binära värdena för dem:

0 + 4 + 0 + 1

Lika med 5.

Förhoppningsvis är dessa snabba exempel användbara. Jag uppmanar dig att prova några andra snabbt själv. Jag ska även ge dig en:

Konvertera från binär till decimal: 1010
Tips: Det är mellan 9 och 11.


Det kan tyckas att det inte går någonstans i samband med webbutveckling, men lita på mig, vi är nästan där.

I hexadecimal finns sexton olika representationer för en binär sekvens: 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E och F. Dessa i sin tur , representera siffrorna 0-15 (16 nummer totalt). Båda dessa representerar samma binära nummer. Men snabbt - sluta och tänk - #FFFFFF ger vit, korrekt? Och du kan aldrig ha ett brev högre än F i en HTML-färgkod. Kom ihåg det.

Binära, decimala och hexadecimala relationer

Här är ett snabbt diagram som kartlägger förhållandet mellan binärt, decimal och hexadecimalt:

Det betyder att om du vill skapa nummer 15 kan du skriva F i hexadecimal eller 1111 i binär. Dessutom, om du ville göra, säga 10, skulle du skriva A i hexadecimal eller 1010 i binär.


Applicera hexadecimal till färgkoder

Nu är vi lite närmare att bestämma exakt hur hexadecimalt fungerar. Låt oss föreställa oss ett exempel på att en HTML-färgkod delas upp i tre delar:

# 006699 till -> # 00,66,99

Nu ser det lite bekant ut; om du tänker på vad jag tänker har du rätt Hexadecimal är organiserad exakt samma sätt som RGB: det har ett värde för varje röd, grön och blå. Kärnskillnaden är:

  • RGB kan ta upp till tre tecken för att definiera ett tal från 0-255.
  • Hexadecimal kräver å andra sidan endast två att göra ett värde från 0-255. Det här är delvis varför hex är det vanligaste sättet att använda färger i webbutveckling - helt enkelt för att det är lättare att skriva, vilket kräver färre tecken.

Vi ska nu titta på hur du kan skapa ett värde upp till 255, eftersom vi hittills bara har lärt oss hur du skapar nummer upp till 15.

  • Låt oss säga att vi har ett nummer, som 66. Fångsten här är att 66 är skrivet i hexadecimal, inte i vanlig numerik. Därför kommer detta inte att vara lika med 66, det kommer att motsvara något annat, något större.
  • Låt oss först konvertera detta problem till binärt. Enligt vårt praktiska diagram ovan är 6 i binärt 0110. Det betyder att 66 i binär skulle vara 0110 0110 (eller 01100110, samma sak).
  • Eftersom binära läser från höger till vänster, skulle vi avkoda längst till höger del först. Som vi vet skulle den första 0110 motsvara 6.
  • Sedan vänster. Eftersom det finns två hexadecimala tecken kopplade ihop för att göra "66", skulle de längsta vänstra binära siffrorna vara något annorlunda och definitivt inte 6 igen. Återigen fortsätter vi att fördubbla värdet av varje bit.
  • Från vänster till höger är värdena för varje bit (med 8 bitar [som är en byte!]): 128, 64, 32, 16, 8, 4, 2, 1. Med tanke på bitarna till vänster har du ett mycket större värde kommer vi att få ett mycket större antal:
 Binary: 0110 Bitvärden: 128 64 32 16 Lägg ihop alla som är sanna: 0 + 64 + 32 + 0 Utbyten: 96

Vi har funnit att den första nibble till höger är lika med sex. Och nu har vi funnit att den andra nibbleen till vänster är 96. Så vad gör du med dessa? Lägg bara till dem! 96 + 6 = 102. Därför är det hexadecimala värdet av 66 102 i det normala decimalsystemet.

Vad detta innebär är att i hexadecimal är RGB-ekvivalenten 66 (i hex) 102. Följaktligen är # 666666 lika med rgb (102.102.102).

Låt oss göra en ytterligare hex till decimalomvandling:

 Hexadecimal: FF Binär: 1111 1111 Bitvärden: 128 64 32 16 8 4 2 1 Lägg till: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 Utbyte: 255

255 är det maximala värdet för vilken färg som helst. Så, om vi hade #FFFFFF, som vi alla vet att vara vita, skulle det vara rgb (255,255,255), vilket också är vitt.

För förståelsens skull, låt oss göra en sista omvandling. Den här gången kommer vi att konvertera en hel hexadecimal färg till RGB. Vår färg är # 6AB4FF.

 6A ------ Binär: 0110 1010 Lägg till: 64 + 32 + 8 + 2 96 + 10 Utbyten: 106 ------ B4 ------ Binär: 1011 0100 Lägg till: 128 + 32 + 16 + 4 176 + 4 Utbyte: 180 ------ FF ------ (Vi har redan gjort det här, så vi vet att det är 255)

Slutsats: # 6AB4FF motsvarar rgb (106,180,255).

Nu kanske du undrar hur vi får från dessa värden till en verklig färg som vi kan tänka oss i vårt huvud. Nästa avsnitt hjälper till att täcka det. Så nu när vi vet hur hexadecimalt och RGB är relaterade, och nu när vi vet hur hexadecimalt fungerar, så ska vi nu granska hur du kan komma med en färg i farten i din egen kod och hjälpa dig att göra några färg utan att behöva använda en färgplockare.


Sant färg

Snabb roligt faktum: Eftersom det finns 8 bitar i varje värde av rött, grönt och blått, betyder det att det finns 24 bitar totalt i en RGB-färg (8 * 3 = 24). Här får vi termen 24-bitars färg, ofta refererad till som "True Color".

Med 24-bitars färg kan vi skapa upp till 16 777 216 - över 16 miljoner färger. Detta är vanligtvis mer än tillfredsställande för något projekt. 32-bitars färg har dock börjat bli mer framträdande, men inte nödvändigtvis inom området webbdesign. Du kan läsa mer om färgdjup på Wikipedia.org i den här artikeln. Dessutom kan du se en bild av alla ~ 16 miljoner färger i en bild här (David Naylor Blog). Det är ganska fascinerande, verkligen! Bildstorlekarna 4096x4096 är vettiga sedan 4096 är kvadratroten av 16.777.216.


Slutligen: Ansökningar

För att denna kunskap ska vara till nytta för oss kommer du att behöva lära dig hur du gör dina egna färger snabbt och enkelt. Vi börjar så enkelt som möjligt och flyttar sedan in i svårare att artikulera färger.

Lektion Exploration # 1

Låt oss säga att vi vill göra en grå färg på flugan. Gråskala färger är vanliga och tenderar att vara mest användbara i många fall. Hittills vet vi följande: # 000000 är lika med svart,
och #FFFFFF är lika med vit. Därför kommer de vanligaste av gråskala färgerna att vara inkrementer mellan de två värdena. För att göra en grå färg, skulle vi på lämpligt sätt skapa värden mellan vitt och svart.

Logiskt sett kommer ett värde närmare #FFFFFF att vara en ljusare ton grå och ett värde närmare # 000000 blir mörkare. Med det i åtanke, låt oss göra en ganska ljusgrå färg. Några snabba tänkningar ger oss följande upplösning: #DDDDDD är bekvämt tillräckligt långt borta från vitt, så det blir klart en fin ljusgrå för oss.

Senare vill vi göra en mörkare grå. Ännu en gång, enkelt. Gör bara något som # 333333. Som du kan se är gråvärdena mycket enkel. Om du upptäcker att du behöver en ännu mer specifik grå färg, kom ihåg det som en allmän tumregel,
Om varje värde för rött, grönt och blått är samma, eller nästan liknar det, blir det grå. Ett sådant exempel på detta är färgen "Gainsboro" som har en färgkod för #DCDCDC. Det betyder att det bara är en mindre än vår #DDDDDD-färg i varje värde av rött, grönt och blått. Du kommer nog inte att kunna skilja mellan de två, men ökningen eller minskningen med 1 ger dig lite mer "grå precision".


#DDDDDD parat med sin mörkgrå motsvarighet, # 333333

Lektion Exploration # 2

Den näst mest enkla uppsättningen färger du kan skapa är röd, grön och blå (självklart). Låt oss använda rött som ett exempel. Om vi ​​vill skapa ren RGB röd, kommer vi att ge färgvärdet
det maximala värdet av rött, med 0 grönt och 0 blått. Det är vettigt rätt? För att bli röd i hexadecimal, hade vi bara satt # FF0000. Nu har vi rött.

Skapa gröna och blåa följer exakt samma princip. För att göra ren grön: # 00FF00 (alla gröna, inget annat). För att göra rent blått: # 0000FF (allt blått, inget annat).

Enkelt nog; Dessa färger är emellertid under de flesta omständigheter helt häftiga när de används i en webbdesign. För att använda dessa färger måste vi därför skugga dem i enlighet med detta.

Lyckligtvis är skuggning också lätt. Låt oss använda blå för det här exemplet. Vi har redan # 0000FF inrättat för oss. För att ändra skuggan av vårt blå värde behöver vi bara ändra de två sista tecknen i den hexadecimala färgkoden. Eftersom FF är det högsta blåa möjligt, kan vi på det här laget bara göra det mörkare. Som sådan, låt oss göra just det:

Ändring # 0000FF till # 000055 (minskar mängden svart, vilket förflyttar blåen närmare svart) ger en mörkare blå.

Som du kan se är skuggning rött, grönt och blått långt ifrån svårt - det är en enkel sak att minska mängden av en viss färg. Samma regel gäller för rött och grönt, inte bara svart, så # 005500 är en mörkare nyans av grön och # 550000 är en mörkare nyans av rött. (Naturligtvis kan du gå lägre eller högre än 55 om du vill).


Regelbunden röd, grön och blå, bredvid några mörkare versioner av sig själva.

Lektion Exploration # 3

Jag antar att du troligen tänker: så hur gult, lila och alla andra färger? Tja, lyckligtvis är det bara lite mer komplicerat än de stora tre av RGB. Låt oss börja med gult.

För att skapa gult måste vi först tänka när det gäller färgspektrum. En liten mnemonic som folk gillar att använda är "Roy G. Biv", som står för "röd, orange, gul, grön, blå, indigo, violett. Nu är logiken här något förvirrande, men försök att hålla fast vid mig. För att bli gul använder vi de två huvudfärgerna från rött, grönt och blått på vardera sidan av var gult skulle vara. I det här fallet skulle det vara rött och grönt. Om vi ​​sålde # FFFF00 skulle vi ha gult. Fantastisk!

Det finns bara några andra möjliga kombinationer med den här metoden, så vi går snabbt över dem. Mellan rött och blått på ett färghjul skulle koden vara # FF00FF, och vi skulle bli rosa eller magenta som det traditionellt kallas, Nästa mellan grön och blå (# 00FFFF), vi har cyan. Och nu är det tyvärr faktiskt alla de enkla kombinationerna vi kan göra. Resten kräver viss tanke, som vi går över en minut. Först, låt oss räkna ut hur man skuggar dessa färger.

Enkelt nog, vi börjar skugga cyan den här gången, som, som vi kommer ihåg, är # 00FFFF. Och ... gissade du antagligen det, men att skugga gul, cyan eller rosa, allt du behöver göra är att ändra några FF-värden till en mindre. I det här exemplet skuggas cyan ner till en mycket mörkare variation, vi kan göra något som # 005555. Ett av de officiella HTML-färgnamnen, DarkCyan, är # 008B8B, så att man skulle vara lite lättare än den vi just skapat. Så där har vi det: hur man skuggar gul, cyan och rosa.


Gul, magenta och cyan bredvid sina mörka versioner

Avsluta anmärkning om skuggning

För att göra en färgändare är det lika enkelt att göra de låga värdena (de 00-värdena, typiskt) större och lämnar FF (eller andra huvudfärger) ensam. Om vi ​​till exempel hade grönt, och vi ville göra det lättare, skulle vi börja med # 00FF00. Då, för att lätta det, skulle vi helt enkelt öka 00-värdena. #AAFFAA ger en fin, vårfärg grön.

För att göra # FF00FF (Pink) tändare är det samma process. Öka de låga värdena: #FFAAFF. Detta ger en ljusrosa färg. Fungerar som en charm!


Våra vårgröna och ljusrosa färger.

Applikationer 2: Logiskt skapa och avkoda färger

Hittills har vi lärt oss hur man skapar de enklaste färgerna, men i de flesta tillämpningar kommer den här kunskapen inte att vara till hjälp för ett projekt. Det är här den här andra delen kommer till spel.

Skapa en anpassad färg

För att skapa en snygg färg måste vi arbeta av vad vi redan vet och tänka igenom det vi försöker skapa på ett logiskt sätt. Låt oss skapa ett scenario; vi vill göra en subtil orange färg som passar våra behov - som en lite mörkare nyans av apelsinfärska.

Vi börjar med vad vi redan vet hur man gör, och det är gult: # FFFF00. Vi behöver flytta den lite närmare orangeområdet, för att göra det, skulle vi lindra lite av det gröna "draget" som jag gillar att kalla det. Genom att göra så ökar mängden rött. Jag valde att ändra den till # FF5500. Det här snabba och enkla exemplet ger dig en uppfattning om hur du skulle gå om att skapa en färg. Det sista jag vill nämna är att du kanske undrar varför jag inte börja lägga till den blå kvantiteten, som vi lämnade till ett värde av 00. Anledningen är att när du börjar lägga blå långsamt i steg av 11, 22, 33, et cetera, det ser fortfarande ganska orange ut. Men när du kommer över 55 kommer du att se några problem. Särskilt om vi ökar det hela vägen upp till något som # FF5599. Vad som händer är att det blir en riktigt rosa färg. Varför är detta? Tja omtanke till när vi ursprungligen skapade rosa. Koden var # FF00FF. Den röda är maxed ut och den blå är maxed out. Så, i vår orange färg, när du börjar byta # FF5500 till # FF5599, är våra röda och gröna värden inte längre de framstående värdena. I stället är det rött och blått vilket ger rosa färg. På det här sättet skulle 55-värdet för grönt helt enkelt bli lättare att tända vår skugga av rosa, istället för att flytta den mot orangeområdet.


Vår orange färg. Det ser ut som orange läsk, va?

Notera till läsaren: skapa komplexa färgkoder är visserligen ganska opraktiskt. På den tiden det skulle ta dig att skapa en tillräcklig färg, kunde du enkelt ha fått flera bra färger ur en färgplockare. För en komplex färg är det bäst att inte försöka skapa det själv. I stället lämna det bara till den försökte och sanna, och spara dig dyrbar tid. Du kommer, Men vill du använda dina färdigheter för att utföra en enkel uppgift som att mörka eller tända en färg snabbt på språng.

Dekoding av en färg

Så du ser den här härliga färgkoden, stirrar dig i ansiktet, men du har ingen aning om vilken färg det egentligen är. Bra! Det här är förmodligen där det roliga kommer in. Det bästa sättet att lära dig hur man gör det här är att genomföra ett enkelt test. Jag blev en gång frågad med några få frågor om ett prov i en av mina Informationsteknologiklasser.

1. # 000000 representerar färgen ____.

  1. grön
  2. svart
  3. vit
  4. röd

2. # 00FF00 representerar färgen ___.

  1. grön
  2. svart
  3. röd
  4. vit

3. # FFCC66 representerar en nyans av ___.

  1. blå
  2. röd
  3. lila
  4. guld-

Förhoppningsvis kunde du hitta alla dessa ut! Särskilt de två första. Du borde ha kunnat ta reda på att svaret på nummer ett var svart, eller B. För den andra frågan var svaret också ganska enkelt. Efter ordningen av rött, grönt, blått, vet vi att eftersom varje värde förutom grönt är satt till 00, kommer färgen att bli lite nyans av grön. Dessutom, eftersom värdet för grönt är FF (eller 255) vet vi att den här färgen blir ren grön. Svaret blir således A.

Det verkar som att den enda svåra att dechiffrera färgen här skulle vara nummer tre, # FFCC66. Detta är förståeligt. Eftersom det blå värdet (vilket är 66) är så mycket mindre än de andra två siffrorna, kan det anses relativt irrelevant. Således kan du jämföra det med färgen för gult, # FFFF00. Mellan dessa två ser de lite likartade ut. Med den här metoden kan du tacka de första tre svaren, eftersom ingen av dem är fjärr nära gula. Därför är svaret D. Det minskade gröna värdet på CC kommer att skugga färgen något, och ökningen av blått kommer att trycka färgen på att vara mycket mer lik guld.


Regelbunden röd, grön och blå, bredvid några mörkare versioner av sig själva.

Processen med avkodning av färgkoder innefattar primärt tänkande genom det och jämför det med färger du redan vet!


En sista pekare

Här är en sista snabb tips om hur du kan påskynda att skapa en färg med hjälp av det hexadecimala systemet. Med den här metoden kan du skära vissa färgkoder ner från sju tecken till fyra (t ex # _ _ _ _ _ till # _ _ _). Denna metod kallas färgskorthand och tanken bakom den är att den kommer att ta värdet av var och en av de tre huvudpersonerna och duplicera dem osynligt. Vad jag menar med det här är det här: om du hade färgkoden # 123, skulle den motsvara # 112233. Du kan göra detta för någon färgkod där varje hexadecimalt värde för rött, grönt och blått är exakt samma tecken. Några vanligare stavelser är:

  • # 000 för svart (# 000000)
  • #fff för vit (#ffffff)
  • # f00 för rött (# ff0000)
  • # 0f0 för grönt (# 00ff00)
  • # 00f för blå (# 00f)

Slutsats

Förhoppningsvis hjälpte den här artikeln dig att lära dig hur färgkoder verkligen fungerar. I många program, som Photoshop, kommer det säkert vara lättast att använda de inbyggda färgplockarna. Kärnområdet där denna färdighet kommer att vara till nytta är när du tittar igenom någon CSS-källkod och vill helt enkelt ta reda på vilken typ av färg det är utan att behöva tillgripa en annan resurs. Oavsett vilken metod som är snabbare, som webbutvecklare och designers, är det saker vi borde vilja veta! Tack så mycket för att läsa. Detta är ett förståeligt svårt ämne, så låt oss prata mer i kommentarerna!