În acest tutorial vom continua construirea site-ului nostru podcast. Vom începe să modelați indexul nostru de postări, să creați un mic subsol și să aruncați un pic de culoare în amestec. Tot ce folosește Sass și suita Bourbon.
Corect, unde am fost? În momentul în care site-ul nostru nu arată prea grozav:
În prezent, postările noastre nu sunt aliniate la altceva decât la stânga, deci avem nevoie de o rețea pentru a rezolva această problemă. Dragostea noastră Bourbon Neat pentru salvare! Mai întâi vom adăuga o clasă posturi
ca un ambalaj pentru posturile noastre și să o facem exterior container
care centrează conținutul paginii.
În "sursa / index.html.erb":
<% page_articles.each_with_index do |article, i| %><%= link_to article.title, article %> <%= article.date.strftime('%b %e') %>
<%= article.body %> <% end %>
Apoi trebuie să creăm un nou Sass parțial pentru stilurile noastre de index și să aplicăm unele magice, deci în "source / stylesheets / all.sass":
@import 'index_posts'
Și în "source / stylesheets / _index_posts.sass":
.posturi + container exterior
De asemenea, simt că este o idee bună să adăugați o culoare de fundal pentru a face containerul nostru exterior vizibil - deocamdată.
Apoi, angajați-vă la Git:
git add -all git commit -m 'Adaugă parțial Sass pentru postările din index Conținutul conținutului'
Articolele recente, etichetele și chestiile din calendar sunt în "layout.erb" și nu ne privesc în prezent. Să ne concentrăm în schimb pe crearea acestei liste de indexuri de postări pop. Să dăm h2
titlu o clasă post-titlu
și lăsați titlul și paragrafele din intervalul de copiere a corpului pentru opt (din douăsprezece) coloane din pagină. Postările trebuie să schimbe și două coloane, deoarece dorim să evităm copierea noastră pe întreaga pagină și, prin urmare, să depășim o lățime de linie sănătoasă (măsură) pentru citirea a 45-75 de caractere.
Deci, în "sursa / index.html.erb":
<% page_articles.each_with_index do |article, i| %><%= link_to article.title, article %> <%= article.date.strftime('%b %e') %>
<%= article.body %> <% end %>
Și în "source / stylesheets / _index_posts.sass":
.post-titlu, .posturi p + shift (2) + span-coloane (8)
Acum noi vorbim. Conținutul nostru este aliniat și centrat frumos pe pagină. Ceea ce lipsește este orice formă de ierarhie vizuală; al nostru h2
titlurile nu sunt mult mai mari decât conținutul postărilor noastre. Pentru a oferi o experiență mai bună de citire, trebuie să ne asigurăm că titlurile și textul corespunzător au un contrast vizual mai bun decât acesta.
În primul rând, avem nevoie de un text mai bun pentru a lucra cu, deci să folosim un helper Middleman pentru textul fals. Să adăugăm un ERB
extindeți-vă la blog-urile noastre și adăugați următoarele la posturile de test.
Notă: avem nevoie de extensia ".erb" doar pentru că vrem să rulam un cod rubin între această construcție <%= %>
.
În "sursă / posturi / 2012-01-01-example-article.html.markdown.erb":
Acesta este un exemplu de articol. Probabil doriți să îl ștergeți și să scrieți propriile articole! <%= lorem.sentences 5 %>
Vom trece detaliile într-un moment, dar mai întâi mai multe stiluri din "source / stylesheets / _index_posts.sass":
.post-titlu font-size: 1.7m .posturi p font-size: 1.05em margin-bottom: 4em
E un pic mai ușor pentru ochi, nu-i așa? Am ajustat antetele și paragrafele la un nivel rezonabil. O mică marjă suplimentară între posturi face diferența. În ceea ce privește ierarhia, este un început bun.
Angajați la Git:
git add - tot git commit -m 'Reglează dimensiunea pentru text și pentru text Adăugă text inactiv Adaugă extensie.
Pe subsol. Cred că ar trebui să avem grijă de elementele plutitoare care plutesc pe fundul întâi. Să împachetăm "Articole recente" și "Etichete" într-un subsol și să scăpăm de "An de an". Marcajul relevant face parte din structura globală din "source / layouts / layout.erb". Găsiți codul în deoparte
eticheta de mai jos Randament
și adaptați-o după cum urmează. În "sursa / layouts / layout.erb":
Afacerea implicită de mai sus de a face doar prin mesajele noastre și etichetele care vine cu Middleman este bine. Vreau totuși să fie puțin mai inteligent și să introduc amestecări atât la posturile și etichetele recente. În acest fel, utilizatorul nu văd doar ultimele zece articole sau o listă uriașă de etichete, ci o versiune aleatorie a ambelor, care este întotdeauna lungă de zece articole. Ei, de asemenea, nu consumă o mulțime de spațiu și permiteți-mi să aliniez ambele elemente în mod consistent în subsol. Am redenumit h3
pentru posturi, de asemenea, în "sursa / layouts / layout.erb":
### Aliniere
Cred că am îmbunătățit destul de mult experiența utilizatorului prin intermediul acestui accesoriu mic. Ruby ne-a făcut foarte ușor treaba. Acum, acest marcaj necesită doar o mică împingere pentru o aliniere mai bună. Creăm un nou Sass parțial doar pentru subsol. În "source / stylesheets / all.sass":
@import 'footer'
Și apoi în "sursa / foile de stil / _footer.sass" parțiale:
footer + marginea frontală a containerului exterior: 1 pixel solid de bază de bază pentru fundul culorii: partea superioară: partea inferioară 4em: 4em .recent-posts + shift (2) + span-coloane (6) .footer-tags + span-columns 2) .recent-posturi, .footer-etichete h3 font-size: 1.7em li font-size: 1.05em
Pentru a avea câteva date teste de testare, am adăugat câteva exemple de post prin intermediul generatorului intermediar și i-am dat un text fals. Prin terminal:
articol intermediar "Titlul tău fancy"
Probabil că ar trebui să menționez că am adăugat o extensie ".erb" la aceste postări noi pentru generatorul de text lorem dummy. Frontmatter-ul conține și mai multe etichete pentru a se juca cu el.
În "sursa / posts / 2015-12-01-your-fancy-title.html.markdown.erb":
--- titlu: Exemplu Data postării: 2015-12-01 etichete: exemplu, bourbon, îngrijit, intermediar --- Acesta este un exemplu de articol. Probabil doriți să îl ștergeți și să scrieți propriile articole! <%= lorem.sentences 5 %>
Scopul era să ai cel puțin zece postări și etichete pentru a vedea dacă totul se aliniază corect. Să vedem ce avem aici:
Culorile de fundal și-au îndeplinit datoria deocamdată. Să le ucidem și să verificăm dacă suntem mulțumiți de rezultatul real:
Cred că o putem lăsa așa, deocamdată. Este timpul să ne angajăm schimbările!
git add ... /layouts/layout.erb gco -m 'Adaptă aspectul și adaugă subsolul "git add ... /stylesheets/_footer.sass ... /stylesheets/all.sass git commit -m" Adaugă stiluri pentru subsol și importă parțială Sass "git adăugați ... /posts/*.markdown.erb git commit -m "Adaugă o grămadă de postări manechin cu: dummy lorem tag-uri fictive text"
Înainte de a continua, trebuie să ne deplasăm la paginile GitHub, să verificăm progresul și să ne asigurăm că nu ne întâlnim cu niciun fel de surprize.
mijlocul de desfășurare
Deschideți browserul dvs., mergeți la yourusername.github.io/your_project_name
și vedeți dacă sunteți mulțumiți de site-ul dvs. până acum.
Ce ar trebui să facem în continuare? Ai dreptate, subsolul strigă cu litere mari EXTRACȚIE! Vom lua , creați un dosar nou pentru partiale și puneți marcajul acolo. La rândul său, trebuie să facem acest lucru parțial din "source / layouts / layout.erb":
<%= yield %><%= partial "partials/footer" %>
Apoi, în parțial "sursa / partials / _footer.erb":
Dacă ați acordat o atenție deosebită, ați văzut că am eliminat data pentru lista articolelor din subsol. Am făcut acest lucru din două motive. În primul rând, vom salva un spațiu mai mic, astfel încât să nu reușim cu ușurință scenariul potrivit căruia alinierea cu etichetele se va sparge atunci când titlul postului este mai lung. În al doilea rând, am crezut că este un pic distrag atenția și nu adaugă prea mult.
Această listă de articole aleatorii în subsol este o metodă utilă de a introduce publicului informații noi. Data nu joacă un rol important în asta. Același lucru este valabil și pentru numărul de articole pentru link-urile de etichete. Ei pierd spațiu fără a adăuga prea multă valoare. De asemenea, dacă nu aveți prea multe articole pentru o anumită etichetă, aceasta nu pare imediat goală. Aș prefera să am mai mult spațiu pentru un aspect stabil. Se simte, de asemenea, un pic mai curat, dar este complet subiectiv.
Commit:
git add -all git commit -m 'Extras subsol în parțială Îndepărtează data de la link-urile post în footer Elimină numărul de articole pentru etichete în footer Nu a oferit suficientă valoare pentru a sacrifica spațiul'
În timp ce suntem la el. Să avem grijă de data din titlurile indexului nostru. Cred că dimensiunea lor este prea proeminentă, ceea ce nu ne îmbunătățește ierarhia vizuală și nu-mi place să o aibă la sfârșitul titlului. Aș prefera să-l lipiți de cealaltă parte și să-l utilizați ca o ancoră vizuală care nu sare în jur cu diferite lungimi ale titlurilor.
În "sursa / index.html.erb":
<% page_articles.each_with_index do |article, i| %><%= article.date.strftime('%b %e') %> <%= link_to article.title, article %>
<%= article.body %> <% end %>
Și în "source / stylesheets / _index_posts.sass":
.mărimea fontului: 0,7 marginea: stânga: em (-80px) dreapta: em (20px)
Titlul postului este reordonat și începe cu intervalul care conține data. Am lăsat un mic spațiu între interval cu data și titlul propriu-zis, pentru că dacă aliniem data cu textul corpului articolului pentru ecrane mai mici, atunci am un spațiu natural de caractere între dată și titlu și nu am nevoie să utilizeze în mod inutil Sass.
Codul Sass este simplu. Marginile negative mă ajută să ancorhez vizual data din stânga titlului și am folosit o funcție Bourbon pentru a converti valorile pixelilor în ems. Simplu, dar îmi place ierarhia pe care am realizat-o. Ochii au ceva la care să sară peste date, iar restul are spațiu suficient, astfel încât să putem sta departe de a folosi frontierele pentru a ne împărți posturile. Eu fericit!
Angajați la Git:
git add ... /index.html.erb... /stylesheets/_index_posts.sass Comanda git -m 'Modifică ordinea pentru data și titlul postului pe pagina indexului Stiluri date pentru a crea ancora vizuală'
Și implementați:
mijlocul de desfășurare
Hai să facem acest lucru la viață puțin - dar nu prea mult. Mai puțin este mai mult! M-am dus la COLOURlovers și am jucat cu câteva palete de culori. Ferește-te de soluții care îți pot spori ierarhia vizuală, dar stai departe de culorile care sunt tare sclipitoare. Îmi dau seama că acest lucru este vag, deoarece culorile pot fi foarte subiective și încărcate din punct de vedere cultural, dar așa mă apropii oricum.
În variabilele noastre "source / stylesheets / base / _variables.scss":
$ matcha-green: # 78B69D; $ text-color: darken ($ mediu-gri, 20%);
Înapoi la afaceri; după ce am jucat cu niște idei, am adăugat două noi culori globale la fișierul meu de variabile Sass de la Bitters. $ Matcha-verde
este acum culoarea pe care doresc să o folosesc pentru identitatea mea și așezată în acest fișier pot reutiliza această variabilă oriunde aș vrea. Ar trebui să mă răzgândesc despre ceea ce vreau verde, va trebui să îl schimb într-o dată. De asemenea, nu am fost prea fericit cu culoarea implicită pentru text. Folosind o funcție Sass, am întunecat una dintre culorile prestabilite de la Bitters cu 20% și am păstrat-o ca $ Text de culoare
. Titlurile de pe hover, precum și datele și copiile de pe corp au primit noua culoare a textului. Implicita a fost prea întunecată în opinia mea.
În "source / stylesheets / base_typography.scss":
// tranziție: culoare $ bază-durată $ bază-sincronizare;
Și apoi în "source / stylesheets / _index_posts.sass":
.post-titlu font-dimensiune: 1.7m a + tranziție (culoare .4s ușurință în exterior) culoare: $ matcha-verde &: hover culoare: $ text -color. culoare: $ text-color
Am adăugat, de asemenea, o ușoară tranziție printr-un amestec Bourbon pentru a se deplasa peste .post-titlu
. Se schimbă de la $ Matcha-verde
la $ Text de culoare
peste .4
secunde. Verificați articolele mele despre Bourbon Mixins dacă doriți să aflați mai multe.
În cazul în care vă întrebați ușurința în-out
parte, acesta este unul dintre cele 32 de moduri de comportament tranzitoriu. ($ usurinta-in-out, ca a $
variabilă, ca în documentație, va arunca o eroare) Este un accesoriu mic, dar arată mult mai bine decât setările implicite ale browserului. Pentru a face acest lucru, a trebuit de asemenea să dezinstalez comportamentul de tranziție implicit de la Bitters în "base_typography.scss".
În "sursă / stiluri / _footer.sass":
footer border-top: 1px solid rgba ($ text-color, .3) .recent-posts, .footer-tags culoare: darken ($ medium-gri, 20% ) culoare: $ text-culoare &: hover culoare: $ matcha-green margine-jos: 2px solid $ matcha-green
În cele din urmă, am adaptat și culorile pentru subsol. Acest lucru ne oferă o aparență coerentă și, sperăm, un pic de subevaluare subtilă. Comportamentul de tranziție trebuia să fie accelerat pentru legăturile din subsol. Din moment ce sunt grupate atât de strâns împreună, am simțit că ar fi mai bine dacă ar fi un pic mai fericit și mai subliniat.
În ceea ce privește culoarea, am făcut opoziția ca și în cazul titlurilor din lista index. Deoarece lista de subsol nu trebuie să fie prezentă pe pagină - mai ales cu o distanță atât de mică între ele - i-am dat culoarea textului gri implicit și folosesc doar $ Matcha-verde
când se mișcă. În acest exemplu, vom folosi doar spațiul alb și dimensiunea tipului pentru a atinge ierarhia.
Oh, și granița deasupra subsolului avea nevoie de un pic de opacitate prin Sass RGBA
funcţie. Mi-am dat seama că opacitatea de 30 de procente este suficientă pentru a-și face treaba fără să-și împiedice atât de mult.
Nu este prea șubred, pentru o cantitate atât de mică de cod. Exact cum îmi place - cu cât codul e mai puțin scris, cu atât mai puține bug-uri trebuie să te muște!
Angajați la Git:
git add -all git commit -m 'Prima încercare de acordare a culorilor Adăugă o nouă culoare de brand ca $ matcha-green Adăugă o nouă culoare text text: Corpul copiilor Titlurile postului se deplasează Antetul footerului Îi îngrijește de tranzițiile hover Comments out Bitters default transition'
# Tweaks
Un lucru mai mic care ma irita este linia de inaltime a copiei corpului. Să-l ajustăm și pe alții. În "sursă / stiluri / _index_posts.sass":
.posturi p line-height: 1.35em
Commit:
git adăuga ... /source/stylesheets/_index_posts.sass git commit -m 'Reglează înălțimea liniei pentru copia corporală pe index'
Și, din nou, implementați:
mijlocul de desfășurare
Bună treabă până acum! Este timpul pentru o altă pauză. În următorul tutorial vom adăuga un navbar și o "unitate de erou" pe partea de sus. Ne vedem acolo! Luați-vă o gustare și o răcoare pentru un pic!