En este, el último tutorial de nuestra serie, implementaremos una barra de navegación y una sección de héroe para calificar nuestro sitio de podcast. Una paginación simple y no voluminosa completa la primera versión de este proyecto y le brinda todo lo que necesita para comenzar a publicar sus episodios de podcast..
¿Por qué no agregamos una pequeña sección de héroe en la parte superior de la página de índice? Quiero algo que nos brinde la oportunidad de promocionar el sitio de podcast sin tener que volverte loco. Confío firmemente en "menos es más" y, además, en "no insultes a tus usuarios bombardeándolos con tonterías". Vamos a mantenerlo agradable y simple.
En este último artículo, utilizaremos otra parte de la familia Bourbon e implementaremos un par de patrones de Refills, que proporcionan una biblioteca de patrones / componentes (con estilo y sin estilo) y están construidos con Bourbon y Neat. ¿Por qué reinventar la rueda cuando podemos ajustar de vez en cuando los existentes a nuestras necesidades??
Nota: El proyecto Refills es mantenido por los diseñadores en thoughtbot, por lo que está en muy buenas manos en cuanto a calidad.
Vaya a http://refills.bourbon.io/ y copie el marcado para la “Unidad de héroe”. El marcado provisto se coloca en nuestro archivo de índice, justo encima de la parte en la que repasamos nuestra page_articles
. En "source / index.html.erb":
...<% page_articles.each_with_index do |article, i| %><%= article.date.strftime('%b %e') %> <%= link_to article.title, article %>
...Aquí también copié los estilos de la sección de patrones de Recargas, colocándolos en un nuevo archivo dedicado a esta sección de banner. Los estilos proporcionados están en el
.scss
sintaxis y así voy con el flujo, no hay necesidad de convertir esto en.hablar con descaro a
De Verdad.En "source / stylesheets / _hero_banner.scss":
.hero $ base-border-radius: 3px! default; $ action-color: # 477DCA! por defecto; $ pantalla grande: em (860)! predeterminado; $ hero-background-top: # 7F99BE; $ hero-background-bottom: # 20392B; $ color del héroe: blanco; $ gradient-angle: 10deg; $ hero-image: 'https://raw.githubusercontent.com/thoughtbot/refills/master/source/images/mountains.png'; @include background (url ($ hero-image), gradiente lineal ($ gradient-angle, $ hero-background-bottom, $ hero-background-top), no-repetir $ hero-background-top scroll superior); color de fondo: # 324766; posición de fondo: superior; repetición de fondo: no repetición; tamaño de fondo: cubierta; parte inferior de relleno: 3em; .hero-logo img altura: 4em; margen inferior: 1em; .hero-inner @include external-container; @include clearfix; margen: auto; relleno: 3.5em; text-align: center; .hero-copy text-align: center; h1 color: $ hero-color; tamaño de fuente: 1.6em; margen inferior: 0.5em; @include media ($ large-screen) font-size: 1.8em; p color: $ hero-color; altura de la línea: 1.4em; margen: 0 auto 3em auto; @include media ($ large-screen) font-size: 1.1em; ancho máximo: 40%;Vamos a ajustar esto en un segundo, pero vamos a echar un vistazo primero:
Encaja perfectamente, así es como me gusta. Vamos a ajustar esto a nuestras necesidades mediante la eliminación de la imagen y el icono. Pero comencemos con el texto, así que en "source / index.html.erb":
Puedes modificar esto como quieras. Quiero hacer esto rápido y solo aumentar el tamaño del
h1
Tanto para pantallas grandes como para dispositivos más pequeños. El encabezado de la unidad de héroe es ahora.2em
y3em
respectivamente -no demasiado. El relleno en.héroe interno
También necesita mover un codazo.De nuevo en "source / stylesheets / _hero_banner.scss":
.hero-inner // padding: 3.5em; relleno superior: 1.2em; .hero-copy text-align: center; h1 color: $ hero-color; tamaño de letra: 2em; margen inferior: 0.5em; @include media ($ large-screen) font-size: 3em;A continuación vamos a matar el marcador de posición logo. Los encuentro a menudo un poco molestos. En "source / index.html.erb":
MATCHA NERDZ
Podcast para los conocedores del té verde
Eso es todo lo que necesitamos. Ya que no usamos el logo del héroe, eliminemos su peso de estilos muertos, así que en "source / stylesheets / _hero_banner.scss":
//.hero-logo img // altura: 4em; // margen inferior: 1em; //Imagen de fondo
La imagen de fondo genérica también tiene que irse. Primero te mostraré cómo quiero que se vea, luego te explicaré cómo llegar allí..
Ignore la tipografía por ahora, puede ajustarla más tarde. Reemplacé la imagen y puse un ligero degradado encima. Como el tipo es blanco, necesitaba un poco más de contraste para una mejor experiencia de lectura. Si elige una imagen que no necesita un degradado adicional, hágalo!
Ajusté el código de Recargas con un par de cambios. Primero, agregué una imagen a "fuente / imágenes" y guardé esta imagen en la variable
$ imagen-héroe
. Luego reutilizé esta variable en elfondo
Mixin de Bourbon y reordenado la imagen y lagradiente lineal
(Una mezcla de borbones también). Debido a que el gradiente es lo primero, se superpone sobre el Matcha_Nerdz.png. Una vez más, en "source / stylesheets / _hero_banner.scss":.hero $ hero-image: '… /images/Matcha_Nerdz.png'; $ hero-background-top: se oscurece ($ matcha-green, 65%); $ hero-background-bottom: rgba (aclarar ($ matcha-verde, 10%), .3); @include background (gradiente lineal ($ gradient-angle, $ hero-background-bottom, $ hero-background-top), url ($ hero-image), no-repetir $ hero-background-top scroll); margen inferior: 2em; // color de fondo: # 324766; // tamaño de fondo: cubierta;Para el gradiente en sí, reutilizé nuestra
$ matcha-green
que almacenamos en "source / stylesheets / base / _variables.scss". El color superior es oscuro en un 65% con una función Sass; el otro se aligera en un 10% y también se hace transparente a través de otra función Sass llamadargba
. Luego reutilizamos estas variables en nuestrofondo
mezclar losángulo de gradiente
se mantuvo igual. También agregué un pequeño margen de2em
para empujar la lista de índice hacia abajo un poco. Los estilos que comenté para ti son de peso muerto, así que los borré..Por supuesto, también puedes jugar con tal gradiente directamente en Photoshop, pero quería mostrarte cómo puedes usarlos en Sass. A continuación se muestra una captura de pantalla que no tiene un degradado lineal agregado a la unidad del héroe. Como un pequeño ejercicio, le dejaré la limpieza de los estilos que le copiamos. Si encuentra duplicados o estilos no utilizados, le recomiendo que arregle esto antes de continuar.
Comprometerse y desplegar
Tiempo para otro commit y despliegue..
git add --all git commit -m 'Agrega una unidad de héroe a index.html.erb Agrega una imagen de héroe con un gradiente Agrega _hero_banner Importa parcial Importa Despliegue parcial de intermediario' sassSin la cuadrícula visual, no parece que tenga mucho trabajo por ajustar esta página para sus necesidades de podcasting. Algunas cosas que recomiendo que hagas es encontrar un tipo de letra que comunique tu proyecto de manera distintiva sin ser demasiado exótico y ajusta el tamaño y el espaciado del texto para que se ajuste a la imagen de fondo de tu unidad de héroe. Como esto forma parte de su marca, le sugiero que se tome su tiempo y se divierta.!
Navegación
Es un buen momento para agregar una barra de navegación. Nuevamente, usaremos un patrón existente de Recargas y lo adaptaremos a nuestras propias necesidades. Elegí la "Navegación centrada" que encontrarás en "Patrones". Para este, necesitamos copiar el código HTML, SCSS y el código de CoffeeScript. Comenzaré primero agregando el marcado a nuestro archivo “layout.erb” global
Titulo de 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" %> MENÚ<%= yield %><%= partial "partials/footer" %>Whoa! Eso es una buena parte del código. ¿Estás pensando lo mismo que yo? Esto se ve desagradable, ¿verdad? Vamos a poner esto en un parcial. Cambiaremos "source / layouts / layout.erb" a:
... <%= partial "partials/navbar" %><%= yield %><%= partial "partials/footer" %>