In questo, l'ultimo tutorial della nostra serie, implementeremo una sezione di navbar e un eroe per il branding del nostro sito di podcast. Un'impaginazione semplice e non voluminosa completa la prima versione di questo progetto e ti offre tutto ciò di cui hai bisogno per pubblicare gli episodi dei tuoi podcast.
Perché non aggiungiamo una piccola sezione di eroi in cima alla pagina indice? Voglio qualcosa che ci dà l'opportunità di marchiare il sito del podcast senza andare a fondo pagina. Mi fido fortemente di "less is more" e inoltre, "non offendere i tuoi utenti bombardandoli con sciocchezze". Facciamo in modo che sia bello e semplice.
In questo ultimo articolo faremo uso di un'altra parte della famiglia Bourbon e implementeremo un paio di modelli di Ricariche, che fornisce una libreria di pattern / componenti (con stile e senza stile) ed è costruita con Bourbon e Neat. Perché reinventare la ruota quando possiamo ora e poi adattare quelli esistenti alle nostre esigenze?
Nota: Il progetto Refills è gestito dai designer su thoughtbot, quindi è in ottime mani in termini di qualità.
Vai a http://refills.bourbon.io/ e copia il markup per "Hero Unit". Il markup fornito è inserito nel nostro file di indice, proprio sopra la parte in cui iteriamo sopra il nostro page_articles
. In "source / index.html.erb":
...<% page_articles.each_with_index do |article, i| %><%= article.date.strftime('%b %e') %> <%= link_to article.title, article %>
...Qui ho copiato anche gli stili dalla sezione pattern di Refills, inserendoli in un nuovo file dedicato a questa sezione banner. Gli stili forniti sono nel
.SCSS
la sintassi e così vado con il flusso: non è necessario convertirlo.insolenza
veramente.In "source / stylesheets / _hero_banner.scss":
.hero $ base-border-radius: 3px! default; $ action-color: # 477DCA! default; $ large-screen: em (860)! predefinito; $ hero-background-top: # 7F99BE; $ hero-background-bottom: # 20392B; $ eroe-colore: bianco; $ gradient-angle: 10deg; $ hero-image: 'https://raw.githubusercontent.com/thoughtbot/refills/master/source/images/mountains.png'; @include background (url ($ hero-image), linear-gradient ($ gradient-angle, $ hero-background-bottom, $ hero-background-top), no-repeat $ hero-background-top scroll); background-color: # 324766; posizione di sfondo: alto; background-repeat: no-repeat; dimensione di sfondo: copertina; imbottitura-fondo: 3em; .hero-logo img height: 4em; margin-bottom: 1em; .hero-inner @ include il contenitore esterno; @include clearfix; margine: auto; imbottitura: 3.5em; allineamento del testo: centro; .hero-copy text-align: center; h1 color: $ hero-color; font-size: 1.6em; margin-bottom: 0.5em; @include media ($ large-screen) font-size: 1.8em; p color: $ hero-color; line-height: 1.4em; margine: 0 auto 3em auto; @include media ($ large-screen) font-size: 1.1em; larghezza massima: 40%;Regoleremo questo in un secondo, ma prima diamo un'occhiata:
È perfetto, è così che mi piace! Aggiungiamo questo alle nostre esigenze eliminando l'immagine e l'icona. Ma iniziamo con il testo, quindi in "source / index.html.erb":
Puoi modificare questo come più ti piace. Voglio fare in modo veloce e solo aumentare la dimensione del
h1
per entrambi gli schermi di grandi dimensioni e dispositivi più piccoli. L'intestazione dell'unità eroe è ora2em
e3em
rispettivamente, non troppo. L'imbottitura.hero-interno
ha anche bisogno di spostare una spinta.Di nuovo in "source / stylesheets / _hero_banner.scss":
.hero-inner // padding: 3.5em; padding-top: 1.2em; .hero-copy text-align: center; h1 color: $ hero-color; font-size: 2em; margin-bottom: 0.5em; @include media ($ large-screen) font-size: 3em;Quindi uccidiamo il segnaposto del logo. Li trovo spesso un po 'fastidiosi. In "source / index.html.erb":
MATCHA NERDZ
Podcast per intenditori di tè verde
Questo è tutto ciò di cui abbiamo bisogno. Dal momento che non usiamo il logo dell'eroe, liberiamoci dei loro stili - peso morto, quindi in "source / stylesheets / _hero_banner.scss":
//.hero-logo img // height: 4em; // margin-bottom: 1em; //Immagine di sfondo
Anche l'immagine di sfondo generica deve andare. Per prima cosa ti mostrerò come voglio che guardi, poi ti spiegherò come arrivarci.
Ignora la tipografia per ora, puoi regolarla in un secondo momento. Ho sostituito l'immagine e ho messo un leggero gradiente sopra di esso. Dato che il tipo è bianco, avevo bisogno di un po 'più di contrasto per una migliore esperienza di lettura. Se scegli un'immagine che non ha bisogno di un gradiente aggiuntivo, fallo!
Ho modificato il codice Ricarica con un paio di modifiche. Per prima cosa ho aggiunto un'immagine a "source / images" e salvato questa immagine nella variabile
$ Eroe-immagine
. Quindi ho riutilizzato questa variabile nelsfondo
mixin da Bourbon e riordinato l'immagine e illineare gradiente
(anche una miscela borbonica). Poiché la sfumatura viene prima, viene sovrapposta a Matcha_Nerdz.png. Ancora una volta, in "source / stylesheets / _hero_banner.scss":.hero $ hero-image: '... /images/Matcha_Nerdz.png'; $ hero-background-top: darken ($ matcha-green, 65%); $ hero-background-bottom: rgba (alleggerire ($ matcha-green, 10%), .3); @include background (linear-gradient ($ gradient-angle, $ hero-background-bottom, $ hero-background-top), url ($ hero-image), no-repeat $ hero-background-top scroll); margin-bottom: 2em; // background-color: # 324766; // background-size: cover;Per il gradiente stesso, ho riutilizzato il nostro
$ Matcha-verde
che abbiamo archiviato in "source / stylesheets / base / _variables.scss". Il colore superiore è darkend del 65% con una funzione Sass; l'altro viene alleggerito del 10% e reso trasparente tramite un'altra funzione Sass chiamataRGBA
. Quindi riutilizziamo queste variabili nel nostrosfondo
mixin. Ilgradiente angolo
è rimasto lo stesso. Ho anche aggiunto un piccolo margine di2em
per abbassare un po 'l'elenco degli indici. Gli stili che ho commentato per te sono di peso morto e quindi li ho cancellati.Puoi anche giocare con un gradiente simile direttamente in Photoshop, ma volevo mostrarti come utilizzarli in Sass. Di seguito è riportato uno screenshot che non ha alcuna sfumatura lineare aggiunta all'unità eroe. Come un piccolo esercizio, lascerò la pulizia degli stili che abbiamo copiato. Se trovi duplicati o stili non utilizzati, ti consiglio di correggerlo prima di proseguire.
Impegno e distribuzione
Tempo per un altro commit e distribuzione.
git add --all git commit -m 'Aggiunge l'unità eroe a index.html.erb Aggiunge l'immagine dell'eroe con gradiente Aggiunge _hero_banner Sass partial Imports Sass partial' middleman deploySenza la griglia visiva, non sembra che tu abbia ancora molto lavoro da fare per adattare questa pagina alle tue esigenze di podcasting. Alcune cose che ti consiglio di fare è trovare un carattere tipografico che comunichi distintamente il tuo progetto senza essere troppo esotico e regolare le dimensioni e la spaziatura del testo in modo che si adatti all'immagine di sfondo dell'unità eroe. Poiché questo fa parte del tuo marchio, ti suggerisco di prenderti il tempo e divertirti!
Navigazione
È un buon momento per aggiungere una barra di navigazione. Ancora una volta, utilizzeremo un modello esistente da Ricariche e lo adatteremo per i nostri bisogni. Ho scelto la "Navigazione centrata" che troverai sotto "Motivi". Per questo, abbiamo bisogno di copiare l'HTML, SCSS e il codice CoffeeScript. Inizierò innanzitutto aggiungendo il markup al nostro file "layout.erb" globale
Titolo del Blog<%= ' - ' + current_article.title unless current_article.nil? %> <%= feed_tag :atom, "#blog.options.prefix.to_s/feed.xml", title: "Atom Feed" %> <%= stylesheet_link_tag "all" %> <%= javascript_include_tag "all" %> MENU<%= yield %><%= partial "partials/footer" %>Whoa! Questo è un bel pezzo di codice. Stai pensando come me? Questo sembra cattivo, giusto? Mettiamolo in un parziale. Cambiamo "source / layouts / layout.erb" in:
... <%= partial "partials/navbar" %><%= yield %><%= partial "partials/footer" %>