Gjøre Web Ikoner Smartere

Denne artikkelen er den første i en tredelerserie som viser de nye tilnærmingene til ikonografi Ikonisk vil levere. Hvis du liker det du ser i denne artikkelen, kan du vurdere å støtte ikonisk på Kickstarter.

Sponset innhold

Dette innholdet ble bestilt av Iconic og ble skrevet og / eller redigert av Tuts + -laget. Vårt mål med sponset innhold er å publisere relevante og objektive opplæringsprogrammer, casestudier og inspirerende intervjuer som gir ekte pedagogisk verdi til våre lesere og gjør det mulig for oss å finansiere etableringen av mer nyttig innhold.


Hva er et smart ikon?

Et smart ikon er utformet slik at elementene i det tilpasses til innspill, samhandling eller tilhørende data. Kort sagt, det er dynamisk. Smarte ikoner er SVG-baserte og kontrolleres med en kombinasjon av Javascript og CSS.


Hvorfor dette er relevant

Web-ikoner opp til dette punktet har vært statiske, hovedsakelig på grunn av begrensninger i teknologi. Forskjellige stater eller variasjoner av et ikon vil bli opprettet ganske enkelt ved å gi individuelle filer av hver permutasjon. For eksempel vil et batteriikon komme i fire forskjellige versjoner: lading, full ladning, halvlading og gratis. Ikke akkurat en optimal tilnærming.

Et helt nytt sett av muligheter er nå levedyktig med vanlig nettleserinnstilling av SVG 1.1. På grunn av SVGs semantiske struktur kan et smart ikon vise hele spekteret av stater og variasjoner. Dette fjerner behovet for bildeveksling og tillater overganger mellom tilstandene å forekomme flytende.

Smarte ikoner gir også designere muligheten til å vise relevant kontekstuell informasjon innenfor et ikon. Et godt designet ikon er allerede et relativt informativt tett objekt. Ved å legge til kontekstuell informasjon til et ikon, er dens informasjonsdensitet enda større uten betydelig økt kognitiv belastning. I teorien vil disse typene ikoner kunne ta på seg tyngdekraften av kommunikasjon, og dermed redusere mengden av andre elementer på skjermen.


Bruk-tilfeller for Smart Icons

Det er mange forskjellige retninger, smarte ikoner kan gå, noe som er enklere å implementere enn andre. Vi er fortsatt i oppdagelsesprosessen, men så langt har vi kommet opp med tre primære brukstilfeller:

Gir kontekstuell informasjon

Det er rikelig av ikoner som kunne gi et annet lag med informasjon, men ganske enkelt ikke har opp til dette punktet, på grunn av deres statiske visningsmetode. Eksempler er ikoner som klokke, termometer, blenderåpning, WIFI-signal og batterilading.


Fungerer som enkle data-vis-elementer (når d3.js er for mye)

En av de beste brukssakene for smarte ikoner er enkel datavisualisering. Ikoner som passer inn i denne kategorien er lydspektrum, måler / meter og lastindikator. Smarte ikoner kan dramatisk forenkle prosessen med å bygge instrumentpaneldisplayer - tenk på å bare legge til fire eller fem ikoner til HTML og justere måleverdien med en datatilstand.


Viser forskjellige tilstander

Mange ikoner kommer ofte i en rekke variasjoner for å formidle alle deres forskjellige stater. Eksempler inkluderer batteriet, WIFI, mediaavspilling (for eksempel avspilling, pause, etc.) og strøm (f.eks. På, av, ventemodus). Et annet potensielt program for smarte ikoner er å rulle alle ikonets stater i en enkelt SVG. Så i stedet for å bytte ut bildeaktier når et fagstatus endres, endrer du bare et datatributt til den aktuelle tilstanden.



Muttere og bolter

Merk: Før du går inn i detaljer, er det viktig å merke seg at eksemplene vi viser er rett og slett prototypebestemmelser. Disse prototyper er ment å formidle funksjonaliteten vi skal bygge. Ingen av følgende kode er endelig, enn mindre beta. Vi er fortsatt i FoU-fasen av denne metoden, og vi vet at det er mange problemer som fortsatt må tas opp. Vi vil jobbe mer konkret for denne metoden etter at kampanjen Kickstarter er fullført.

Smarte ikoner består av SVG, Javascript og CSS. Vår nåværende tenkning er å behandle hvert ikon som en liten, selvstendig app med en enkel API for å justere elementer i ikonet. For å oppnå dette pålitelig, Denne tilnærmingen krever at SVG-oppsummeringen skal inkluderes i DOM.

Husk at SVG-merket må være hensiktsmessig strukturert for denne tilnærmingen til arbeidet. Dette er hva vi føler gjør Iconic unik. Ikonene er utformet og utformet med nye konsepter i tankene. Disse konseptene stole på klar semantikk og en gjennomtenkt markupstruktur for å fungere riktig. Dette er ikke annerledes enn riktig strukturert HTML - hvis oppslaget ditt er gobbleygoop, vil det være vanskelig å gjøre noe sofistikert.

Mange overbevisende ting kan skje når velstrukturert SVG-oppslag er i DOM. Problemet er at du legger til SVG-merking i HTML er en smerte. SVG-oppslaget kan legge til en betydelig mengde oppblåsing til koden din, og det blir vanskeligere å skille mellom strukturelle HTML- og vektorbilder. For å fjerne denne friksjonen foreslår vi at du injiserer SVG-markering i DOM-enheten ved kjøretid.

Vi har laget en enkel prototype SVG-injeksjon som erstatter alle spesifiserte img koder med merket fra den angitte SVG-filen. Så dette…

 

Skifter inn i dette:

 

Merk: Husk, denne injeksjonen tilnærming sikkert kjennes som et stopptaksmål, og vi håper at arbeidet vårt vil bidra til å skape en nettleser-innfødt standard. Inntil da er vår nåværende tenkning at dette er den beste tilnærmingen.

Når SVG er injisert i DOM, blir JavaScript innkapslet i det utført og det er klart å bli brukt. Noen ikoner vil kjøre på egenhånd (som en klokke) mens andre vil trenge innspill for å justere.

Selvgående ikon

Klokken er et perfekt eksempel på et ikon som kjører på egenhånd. En gang injisert, vil det bare . Se det i aksjon

HTML

 klokke

JS

 $ ( 'Svg injisere') svgInject (.);

SVG: clock.svg

                   

Input-basert Ikon

Når et ikon svarer på inngang eller data, krever det litt mer arbeid, men det grunnleggende er uendret. Se det i aksjon

HTML

 lydspektrum analysator

JS

 $ ( 'Svg injisere') svgInject (.);

SVG: audio-spectrum-analyzer.svg

                   

Legge til bevegelse (glasur på kaken)

Et smart ikon blir enda bedre med bevegelse. Det er mange måter å gjøre dette på. Vi bruker for øyeblikket SVG-animasjonselementer, da dette gir en betydelig funksjonalitet bygget rett inn i nettleseren, noe som betyr mindre kode i SVG. Støtten er fortsatt litt wonky (vi kjørte inn i problemer i Safari 6), men det blir bedre på dagen. Se det i aksjon

HTML

 termometer 
  • Varmt
  • Varm
  • Chilly
  • Kald

JS

 $ ( 'Svg injisere') svgInject (.);

SVG: themometer.svg

       

Konklusjon

Ikonografi har en viktig rolle å spille i grensesnittdesign. Jo mer relevant informasjon våre ikoner kan gi, desto kraftigere blir de. Vi tror virkelig at smart ikonografi kan være et overbevisende verktøy for designere å legge til et annet lag med mening til deres ikoner. Ikke alle ikonene passer for denne tilnærmingen, som alle gode ting det krever moderering. Men når det brukes riktig, kan det være et enormt nytt verktøy.


Tilbake Ikonisk på Kickstarter

Målet med Iconic er å bidra til å gi nye tilnærminger til ikonografi. Det er mye mer til ikonisk enn bare smarte ikoner, og vi gleder oss til å dele en annen interessant funksjon med deg neste uke.


Vær så snill å vurdere Backing Iconic på Kickstarter.