Gimmie Dat iCon

Cosa starai creando

Dopo aver progettato alcune simulazioni visive per guidarci nella creazione della nostra piccola app per il browser, passiamo alla parte eccitante e iniziamo a costruire!

Struttura del file

Impostiamo la nostra struttura di file per il progetto. Assomiglierà a qualcosa del genere (con ogni risorsa rispettiva che vive nella sua cartella corrispondente):

chiaro. ├── index.html └── assets ├── css ├── img ├── js └── sketch

Ora abbiamo una cartella per ciascuna delle nostre risorse, così come la .schizzo file che abbiamo creato in precedenza che contiene i nostri mock di pagina.

HTML iniziale

Sulla base della nostra struttura di file, impostiamo il nostro documento HTML di base con i collegamenti alle nostre risorse (che creeremo in un momento).

"html

Gimmie Dat iCon

"

Ecco cosa abbiamo finora:

  • Struttura di pagina HTML di base con aree di intestazione, contenuto principale e piè di pagina.
  • Link al nostro CSS personalizzato (che creeremo)
  • Link a Pacifico su Google Fonts (come accennato in precedenza, questo è il font che useremo per visualizzare il nome della nostra piccola app)
  • Link al nostro javascript personalizzato (che creeremo) e alla libreria jQuery sul CDN Hosted Libraries di Google

CSS iniziale

Poiché questa piccola app è relativamente piccola e semplice, preferirò usare il CSS vanilla in questo progetto (non un preprocessore), ma puoi ovviamente scrivere il tuo CSS in qualsiasi forma ti piaccia.

Iniziamo impostando alcuni stili di pagina di base e facendo riferimento ai commenti ai colori che useremo. Nel assets / css / styles.css facciamo quanto segue:

"css / * Stili generali

Colors @highlight: # 196E76 @text: # 4A4A4A; @ text-light: # 9A9A9A @ body-background: #EEEEEE; * / 

*, *: before, *: after box-sizing: inherit; margine: 0; padding: 0;

html box-sizing: border-box; background: #EEEEEE; allineamento del testo: centro;

body font-size: 1em; altezza della linea: 1,5; font-family: Lucida Grande, sans-serif; larghezza massima: 43.75em; / * 880/16 * / margine: 0 auto; padding: 0; colore: # 4A4A4A;

img larghezza massima: 100%; altezza: auto;

a color: inherit; "

Qui abbiamo impostato alcuni stili di pagina di base per le immagini, i collegamenti e il modello di box che utilizzeremo. Come avrai notato, stiamo usando il corpo tag come wrapper impostando il suo larghezza massima. Ciò manterrà tutti i nostri contenuti centrati nel mezzo della pagina senza estendersi oltre una certa larghezza.

Notiamo che abbiamo anche definito i valori dei colori che useremo nei commenti principali. Dal momento che non usiamo un preprocessore che ci consente di impostare variabili, queste saranno utili man mano che continueremo a scrivere i nostri stili.

Intestazione dell'app

Creiamo l'intestazione della nostra app. Ricorda che in Sketch abbiamo progettato questo:

Quindi, creiamo l'HTML per abbinare la nostra simulazione. Inseriremo questo contenuto nel intestazione elemento che abbiamo creato in precedenza.

"html

Gimmie Dat iCon

Recupera grafica ad icone di dimensioni standard per le app iOS e Mac.

"

Ora abbiamo il nome e la descrizione della nostra app nella parte superiore della pagina. Ma gli stili sono piuttosto semplici.

Scriviamo alcuni stili per il nostro header di pagina che lo rende più in linea con la nostra simulazione:

"css / * Header Styles * / header margin: 1em 0 2em; color: # 196E76;

intestazione h1 font-family: 'Pacifico', serif; font-size: 3em; text-shadow: 0 4px 2px rgba (0, 0, 0, .1); margine: 0;  header h1 a text-decoration: none;  header p margin-top: -.625em; text-indent: 7.75em; / * indent leggermente * / text-shadow: 0 1px 0px rgba (0, 0, 0, .15); font-size: .875em; / * 14/16 * / "

Ecco una breve panoramica di ciò che abbiamo fatto:

  • Colore e spaziatura per il contenitore dell'intestazione
  • Nome dell'applicazione intestazione h1 è impostato per utilizzare Pacicifo da Google Fonts (ricorda, abbiamo impostato un link a questa risorsa nella nostra intestazione)
  • Descrizione dell'app intestazione p è leggermente sfalsato per evitare di entrare nella discendenza della "G" sul nome dell'app.

Ora il nostro header sembra più simile al design:

Tuttavia, ricorda che la nostra app sarà reattiva! Quindi, se controlliamo questi stili su una larghezza più ristretta utilizzando gli strumenti di sviluppo di Chrome, noterai che l'inserimento del testo per la descrizione è un po 'strano a causa della nostra indentatura del testo.

Per alleviare questo problema, a larghezze più strette, rimuoveremo il rientro del testo e rilasceremo il testo della descrizione con un margin-top così avvolgente sembra più naturale. Scriviamo una query multimediale per aiutarci:

css @media screen e (max-width: 600px) header p text-indent: 0; margin-top: .5em;

Lì, ora abbiamo un'intestazione reattiva!

Ingresso app

Il prossimo passo è passare alle aree di input e output della nostra simulazione. Ricorda che sembravano qualcosa del genere:

Innanzitutto, aggiungiamo il campo di input al principale Elemento HTML che abbiamo creato in precedenza:

"html

"

Ora abbiamo un modulo con un input e un pulsante di invio. Buona semantica fino ad ora, ma non sembra proprio come la vogliamo. Dovremo aggiungere alcuni stili.

Aggiungiamo alcuni stili al nostro input di moduli e agli elementi dei pulsanti.

"css / * Form Input Styles per il modulo di input e pulsante * / form position: relative;

modulo input larghezza: 100%; blocco di visualizzazione; dimensione carattere: 1em; riempimento: .625em .85em; padding-right: 7em; altezza della linea: 1,5; margine: 0; border: 1px solid #bbb; box-shadow: 0 1px 3px rgba (0, 0, 0, .1), 0 2px 4px rgba (0, 0, 0, .1); border-radius: 3px;  modulo di input: focus border-color: # 298cda;  pulsante del modulo decorazione del testo: nessuno; sfondo: # 196E76; altezza: 100%; posizione: assoluta; a destra: 0; inizio: 0; altezza della linea: 1,5; colore bianco; dimensione carattere: 1em; border-radius: 0 3px 3px 0; confine: 0; contorni: 0; allineamento del testo: centro; -webkit-apparenza: nessuno; margine: 0; riempimento: 0 1em; font-family: 'Pacifico', serif;  pulsante del modulo: hover cursor: pointer;  pulsante del modulo: disabilitato opacità: .5; "

Qui abbiamo aggiunto alcuni stili al nostro input e pulsante del modulo, nonché alcuni stati diversi come : hover, :messa a fuoco, e :Disabilitato. Questo ci ha dato un input stilato proprio come l'abbiamo progettato nel nostro finto.

Uscita app

A questo punto possiamo creare quello che abbiamo chiamato l'area "output". Qui è dove eseguiremo il rendering dinamico dell'icona restituita dall'API di iTunes. Tuttavia, nel caricamento iniziale della pagina, l'utente non ha ancora richiesto nulla. Per il momento useremo il design a stato zero. Ricorda dai nostri mock, sembra questo:

Continueremo ad aggiungere al principale Elemento HTML in cui abbiamo lavorato:

"html

Inserisci un link iTunes Store App valido, ad es. https://itunes.apple.com/us/app/twitter/id333903271?mt=8

"

Si noti che abbiamo aggiunto l'output HTML subito dopo il nostro input HTML. Consiste in un involucro, che funge da grande scatola bianca nel nostro design, e il contenuto, che è centrato all'interno di esso. Useremo i CSS per impostare il .soddisfare elemento per avere un larghezza massima di 512 pixel, poiché è la dimensione più grande in cui mostreremo la nostra icona. Per ora però, abbiamo qualcosa che assomiglia a questo:

Si noti che manca il segnaposto dell'icona. Se torniamo al nostro documento Sketch, possiamo facilmente emettere quell'asset come SVG da usare nel browser.

Ora dovremmo avere l'immagine visualizzata nel browser.

Aggiungiamo alcuni stili alla nostra casella di output.

"css / * Stili di contenuto Contenitore principale per contenuto, ovvero icone, messaggi di errore, ecc. * /. wrapper background: #fff; border: 1px solid #ccc; text-align: center; padding: 2em; margin: .5em 0 2em; box-shadow: 0 2px 4px rgba (0, 0, 0, .1); raggio-bordo: 3px; posizione: relativo;

.content max-width: 512px; margine: 0 auto; posizione: relativa; word-wrap: break-word; / * per gli url lunghi * /

.content * / * esegui un semplice reset sugli elementi in .content * / margin: 0; padding: 0;  .content strong font-weight: bold; blocco di visualizzazione; "

La maggior parte dei CSS che abbiamo aggiunto qui ha commenti nel codice per spiegarlo. Abbiamo aggiunto gli stili al nostro wrapper esterno, quindi, poiché non abbiamo eseguito un reset completo del CSS sulla pagina, abbiamo effettuato un semplice reset sugli elementi HTML all'interno dell'area del nostro contenuto applicando .contenuto *.

Infine, abbiamo aggiunto alcuni stili per gli elementi in grassetto nel nostro stato zero. Ora dovremmo avere qualcosa che assomiglia alla nostra finta!

Ottimo lavoro!

Ora che abbiamo configurato la nostra struttura HTML, insieme agli stili corrispondenti, siamo pronti per saltare e gestire le interazioni della pagina con JavaScript!

Nel prossimo (e ultimo) tutorial di questa serie, scopriremo come prendere l'input dell'utente, fare una richiesta API e rendere l'output nel browser. Ci vediamo lì!