#mm17es - theming en magento 2 usando un framework de front-end

22
@_rubenR Theming en Magento 2 usando un framework de front-end

Upload: ruben-rodriguez

Post on 21-Jan-2018

136 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Theming en Magento 2 usando un framework de front-end

Page 2: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

@_rubenR

rubenRP

@_rubenR

Rubén RodríguezSenior front-end developer

Interactiv4

Page 3: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Menú del día

● Motivación● Propuestas● Instalación● Estructura de ficheros● Herramientas de compilación● Herencia● Layout● PHTML● Librerías JS● Performance

Page 4: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

¿Por qué?

● Necesidad del cliente

● Desarrollo complejo inviable en M2

● Solución intermedia hasta PWA Studio

Page 5: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

¿Por qué?

Page 6: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

¿Qué framework elegir?

● Bootstrap

● Foundation

● Materialize CSS

● Semantic UI

● Pure by Yahoo!

● UIkit

Page 7: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Instalación

https://getbootstrap.com

Page 8: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Instalación

Page 9: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Creación de un tema

https://goo.gl/NFBWnd

Page 10: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Estructura de ficheros -> SASS

● Base: estilos globales (a, ul, li,

body…)

● Layout: específicos por página

● Modules: unidades reutilizables

● Vendor: librerías

Page 11: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Estructura de ficheros -> SASS

● Base: estilos globales (a, ul, li,

body…)

● Layout: específicos por página

● Modules: unidades reutilizables

● Vendor: librerías

Page 12: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Frontools

● Facilita la compilación de .scss

● Watcher & live reload

● Minificación

● Herencia

● ES6

https://github.com/SnowdogApps/magento2-frontools

Page 13: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Frontools

● Src

● Dest

● Locale

● Parent

● Stylesdir

● Ignore

● Modules

Page 14: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Herencia

Page 15: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Override vs Extend

Extend

● Situación más habitual

● Añade funcionalidad a la ya existente

Override

● Grandes modificaciones

● Bloques estructurales

Page 16: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Recapitulemos

Page 17: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

PHTML - BEM

● Bloque: Entidad independiente con sentido.

● Elemento: Parte del bloque, no independiente.

● Modificador: Cambian la apariencia de un elemento.

bloque__elemento--modificador

http://getbem.com

Page 18: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

PHTML - BEM

Ventajas

● Modular

● Reusable

● Estructurado

bloque__elemento--modificador

http://getbem.com

Page 19: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

JavaScript

● deps: Primer js en cargar● paths: Rutas● map: Implementación específica de paths● shim: Dependencias

https://goo.gl/mMG74M

Page 20: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

JavaScript

● deps: Primer js en cargar● paths: Rutas● map: Implementación específica de paths● shim: Dependencias

https://goo.gl/mMG74M

Page 21: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

Performance

● Bootstrap

● Minificación

● AMP

● Fastclick

Page 22: #MM17ES - Theming en Magento 2 usando un framework de front-end

@_rubenR

¡Gracias!