planificación / kickoff
Separar el diseño en componentes mínimos, a veces los componentes están compuestos de otros componentes, separar todo lo más que podamos (aunque se usen una sola vez). Por regla general cualquier cosa que no es parte de la grilla/wireframe es un componente
Abrir un issue por cada componente con recorte de pantalla, funcionamiento, etc
maquetado
componentes
Los componentes van dentro de
_includes/
Si un componente tiene variantes, hacer un directorio
_includes/component/
y dentro poner todas las variantesEmpezar el archivo con un bloque de
{% comment %}
con la descripción y la documentación de los parámetros en este formato:@param :NOMBRE [TIPO] DESCRIPCION
donde NOMBRE es el nombre del parámetro que se usa al llamarlo{% include componente.html NOMBRE=VALOR %}
, TIPO es el tipo de VALOR (String
,Integer
,Array
,Hash
,HTML
,Boolean
--por lo general va a serString
oHTML
) y DESCRIPCION una ayuda (esto sigue el formato de https://yardoc.org/)Luego viene el componente en sí
-
Formato de nombres para parámetros
Nombre del atributo al que aplican, por ejemplo
href
para indicar que va a ir alhref
de unNombre del elemento + atributo, si acepta varios atributos del mismo nombre, por ejemplo
a_class
yimg_class
son clases para un y un dentro del mismo componente
Los componentes solo usan valores que se pasan como parámetros, no usan
{{ page }}
ni{{ content }}
Se puede pasar HTML como parámetro usando un
{% capture %}
SCSS
Las variables se definen en
_data/theme.yml
, acepta strings, booleans, números, hashes y arrays (no anidadas)Pueden ser variables de bootstrap o variables que nos inventemos
Las variables se importan en
assets/css/styles.scss
no tenemos que hacer nadaLa convención es snake case
nombre_de_variable
en yaml y luego en scss se llaman con kebab casenombre-de-variable
esto es para que puedan ser llamadas en liquid
testing
Para poder testear cada componente por separado, se crea un archivo del mismo nombre en
_includes/theme/COMPONENTE.html
En este archivo se cargan ejemplos de uso del componente con distintos valores hardcodeados, no es necesario traerlos de un post (que quizás no exista, es decir que no hay dependencia entre carga de contenido y componentes)
Este archivo también puede contener texto para documentar
Si estamos demostrando el uso de una utilidad definida en
_sass/helpers.scss
, podemos llamar a las variables de SCSS con{{ site.data.theme.VARIABLE }}
Para poder importar esta prueba de componente hay que agregar el nombre del archivo sin .html en
_data/components.yml
. si el componente tiene que ocupar todo el ancho de la pantalla (como un menú o footer), puede ir en_data/full_width_components.yml
Todos los componentes van a estar disponibles en
https://SITIO.testing.sutty.nl/theme/#componente