SlideShare a Scribd company logo
 
Agenda Proyecto Instalación y uso Familias y componentes Diseño Citas Preguntas?
Natan Santolo [email_address] twitter.com/natos Sr Frontender
 
“ son un montón de ninjas chiquitos que te parten la cabeza”
 
Brief Herramienta para desarrollo de Frontend Desarrollado en HTML, CSS, JS y PHP Componentes reutilizables y configurables Código abierto
Proyecto
Objetivos Proveer una solución de Frontend para  agilizar  y unificar la producción Normalizar la identidad y la interacción de los componentes A largo plazo, lograr consistencia en los productos de MercadoLibre
 
Equipo Tres recursos fulltime Entregables todas las semanas Filosofía ágil Open sourced
 
Diseño
Máximas para tomar desiciones Simplicidad (sintaxis js) Re-utilización (snippets, css) Estandarización (json, {argumentos}) Automatización (tests, packer) Código funcionando (todos los viernes) Escalar después (validator)
Buenas prácticas JavaScript no obstrusivo Pruebas unitarias (casi TDD) Progressive Enhancement & Gracefull Degradation Optimización de sprites (con data URI) Minificación y compresión de recursos
Patrones y herramientas Namespaces (window.ui, ui.foo) Closures and Callbacks Instances Map (en el DOM) Parasitic Inheritance Power Constructor (by Douglas Crockford) Public Objects: Exponen métodos y propiedades Packer-o-matic
Packer-o-matic Unifica en un archivo cada tipo de recurso Componentes a demanda ?get= Minifica el código vs Modo debug Próximamente: Ofuscación de código
Estructura
jQuery Componentes Core JS Core CSS
jQuery Componentes Oye Chico! Core JS Core CSS
Core CSS Reset Layout general Sprite general Tipografías Próximamente: Sistema de grillas Skinning (ML, MP, MS, ...)
Core JS Inicia el SDK Crea componentes Obtiene recursos necesarios Provee herramientas internas (ui.utils) Sintaxis jQuery ;) Ej: $(  query  ).component(  config  );
Componentes Unidad funcional y visual mínima empaquetada Constan de 3 partes: Estructura: esqueleto de contenido (HTML)  !Important Presentación: estilos visuales (CSS) Funcionalidad: comportamiento (JS) Son configurables ;)
Instalación y uso
Dependencias jQuery Browser sniffing  (IE conditional classes on <html>) Script para PNGs transparentes
Instalación Incluir dependencias (jQuery, Browser sniffing, PNGfix) Incluir los recursos de Chico-UI (JS y CSS) HTML snippets Configurar componentes
<!doctype html>       <html lang=&quot;es&quot; class=&quot;no-js&quot;>  <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
<!doctype html>       <html lang=&quot;es&quot; class=&quot;no-js&quot;>  <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
<!doctype html>       <html lang=&quot;es&quot; class=&quot;no-js&quot;>  <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
<!doctype html>       <html lang=&quot;es&quot; class=&quot;no-js&quot;>  <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
<!doctype html>       <html lang=&quot;es&quot; class=&quot;no-js&quot;>  <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
<!doctype html>       <html lang=&quot;es&quot; class=&quot;no-js&quot;>  <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
 
Paso a paso Incluir dependencias (jQuery, Browser sniffing, PNGfix) Incluir los recursos de Chico-UI (JS y CSS) HTML snippets Configurar componentes
$(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” }, callbacks: { show: function(){ // El layer esta prendido } } });
$(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” } , callbacks: { show: function(){ // El layer esta prendido } } });
$(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” }, callbacks: { show: function(){ // El layer esta prendido } } });
var  layer  = $(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” }, callbacks: { show: function(){ // El layer esta prendido } } });
var  layer  = $(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” }, callbacks: { show: function(){ // El layer esta prendido } } }); { uid: 0, type: “ui.layer”, element: HTMLElement, show(), hide() } layer.show()
Familias
 
Familias Controllers Floats Navs Slider
Controllers Tab Navigator Validator
Floats Tooltip Helper Contextual Layer Modal Window
Modal config content type:  param | DOM | ajax [ data ] :  string [ callbacks ] [ show ] : function [ hide ] : function
Layer config [ event ] :  “click” content type:  param | DOM | ajax data:  string [ callbacks ] [ show ] : function [ hide ] : function
Navs Dropdown Tab
Slider Carousel
Citas
“ es una luz en el fondo del tunel, en la busqueda de consistencia entre las UI`s de Meli” - Tato
“ agiliza muchísimo los tiempos de implementación, optimizando los tiempos de diseñadores y programadores, ahorrando tambien tiempo con definiciones que ya están resueltas en chico” - Diego
“ Con Chico Ui pude dedicarle más tiempo al diseño del los productos y no tener que preocuparme por el funcionamiento e interacción de componentes ya estandarizados y que sabemos que funcionan” - Fer
“ Chico UI es un proyecto opensource que agrupa los componentes que se utilizan dentro en ML.” - Guille
“ es una herramienta que simplifica el proceso de implementacion de una interfaz, agregando funcionalidad” - Lean
“ paquetito de codigo que me deja implementar componentes con solo un par de lineas  en mi html” - Nati
“ unos hiper nionios haciendo  algo copado para ml” - Jess
Gracias!!! Chico-UI Team :  Guille, Lean y Naty! GMP Team ! User Experience Team ! Damian y Michel... A mi mamá y a mi papá, obvio...
 

More Related Content

Chico-UI en escuela DaVinci

  • 1.  
  • 2. Agenda Proyecto Instalación y uso Familias y componentes Diseño Citas Preguntas?
  • 3. Natan Santolo [email_address] twitter.com/natos Sr Frontender
  • 4.  
  • 5. “ son un montón de ninjas chiquitos que te parten la cabeza”
  • 6.  
  • 7. Brief Herramienta para desarrollo de Frontend Desarrollado en HTML, CSS, JS y PHP Componentes reutilizables y configurables Código abierto
  • 9. Objetivos Proveer una solución de Frontend para agilizar y unificar la producción Normalizar la identidad y la interacción de los componentes A largo plazo, lograr consistencia en los productos de MercadoLibre
  • 10.  
  • 11. Equipo Tres recursos fulltime Entregables todas las semanas Filosofía ágil Open sourced
  • 12.  
  • 14. Máximas para tomar desiciones Simplicidad (sintaxis js) Re-utilización (snippets, css) Estandarización (json, {argumentos}) Automatización (tests, packer) Código funcionando (todos los viernes) Escalar después (validator)
  • 15. Buenas prácticas JavaScript no obstrusivo Pruebas unitarias (casi TDD) Progressive Enhancement & Gracefull Degradation Optimización de sprites (con data URI) Minificación y compresión de recursos
  • 16. Patrones y herramientas Namespaces (window.ui, ui.foo) Closures and Callbacks Instances Map (en el DOM) Parasitic Inheritance Power Constructor (by Douglas Crockford) Public Objects: Exponen métodos y propiedades Packer-o-matic
  • 17. Packer-o-matic Unifica en un archivo cada tipo de recurso Componentes a demanda ?get= Minifica el código vs Modo debug Próximamente: Ofuscación de código
  • 19. jQuery Componentes Core JS Core CSS
  • 20. jQuery Componentes Oye Chico! Core JS Core CSS
  • 21. Core CSS Reset Layout general Sprite general Tipografías Próximamente: Sistema de grillas Skinning (ML, MP, MS, ...)
  • 22. Core JS Inicia el SDK Crea componentes Obtiene recursos necesarios Provee herramientas internas (ui.utils) Sintaxis jQuery ;) Ej: $( query ).component( config );
  • 23. Componentes Unidad funcional y visual mínima empaquetada Constan de 3 partes: Estructura: esqueleto de contenido (HTML) !Important Presentación: estilos visuales (CSS) Funcionalidad: comportamiento (JS) Son configurables ;)
  • 25. Dependencias jQuery Browser sniffing (IE conditional classes on <html>) Script para PNGs transparentes
  • 26. Instalación Incluir dependencias (jQuery, Browser sniffing, PNGfix) Incluir los recursos de Chico-UI (JS y CSS) HTML snippets Configurar componentes
  • 27. <!doctype html> <!--[if IE]><![endif]--> <!--[if lt IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie6&quot;> <![endif]--> <!--[if IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie7&quot;> <![endif]--> <!--[if IE 8 ]> <html lang=&quot;es&quot; class=&quot;no-js ie8&quot;> <![endif]--> <!--[if IE 9 ]> <html lang=&quot;es&quot; class=&quot;no-js ie9&quot;> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang=&quot;es&quot; class=&quot;no-js&quot;> <!--<![endif]--> <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
  • 28. <!doctype html> <!--[if IE]><![endif]--> <!--[if lt IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie6&quot;> <![endif]--> <!--[if IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie7&quot;> <![endif]--> <!--[if IE 8 ]> <html lang=&quot;es&quot; class=&quot;no-js ie8&quot;> <![endif]--> <!--[if IE 9 ]> <html lang=&quot;es&quot; class=&quot;no-js ie9&quot;> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang=&quot;es&quot; class=&quot;no-js&quot;> <!--<![endif]--> <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
  • 29. <!doctype html> <!--[if IE]><![endif]--> <!--[if lt IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie6&quot;> <![endif]--> <!--[if IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie7&quot;> <![endif]--> <!--[if IE 8 ]> <html lang=&quot;es&quot; class=&quot;no-js ie8&quot;> <![endif]--> <!--[if IE 9 ]> <html lang=&quot;es&quot; class=&quot;no-js ie9&quot;> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang=&quot;es&quot; class=&quot;no-js&quot;> <!--<![endif]--> <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
  • 30. <!doctype html> <!--[if IE]><![endif]--> <!--[if lt IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie6&quot;> <![endif]--> <!--[if IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie7&quot;> <![endif]--> <!--[if IE 8 ]> <html lang=&quot;es&quot; class=&quot;no-js ie8&quot;> <![endif]--> <!--[if IE 9 ]> <html lang=&quot;es&quot; class=&quot;no-js ie9&quot;> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang=&quot;es&quot; class=&quot;no-js&quot;> <!--<![endif]--> <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
  • 31. <!doctype html> <!--[if IE]><![endif]--> <!--[if lt IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie6&quot;> <![endif]--> <!--[if IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie7&quot;> <![endif]--> <!--[if IE 8 ]> <html lang=&quot;es&quot; class=&quot;no-js ie8&quot;> <![endif]--> <!--[if IE 9 ]> <html lang=&quot;es&quot; class=&quot;no-js ie9&quot;> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang=&quot;es&quot; class=&quot;no-js&quot;> <!--<![endif]--> <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
  • 32. <!doctype html> <!--[if IE]><![endif]--> <!--[if lt IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie6&quot;> <![endif]--> <!--[if IE 7 ]> <html lang=&quot;es&quot; class=&quot;no-js ie7&quot;> <![endif]--> <!--[if IE 8 ]> <html lang=&quot;es&quot; class=&quot;no-js ie8&quot;> <![endif]--> <!--[if IE 9 ]> <html lang=&quot;es&quot; class=&quot;no-js ie9&quot;> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang=&quot;es&quot; class=&quot;no-js&quot;> <!--<![endif]--> <head> <meta charset=&quot;utf-8&quot;> <title>Chico UI</title> <link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot; chico.css &quot;> <script src=&quot; libs/js/j query-1.4.4.js &quot;></scrip t> <script src=&quot;chico.js&quot;></script> </head>
  • 33.  
  • 34. Paso a paso Incluir dependencias (jQuery, Browser sniffing, PNGfix) Incluir los recursos de Chico-UI (JS y CSS) HTML snippets Configurar componentes
  • 35. $(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” }, callbacks: { show: function(){ // El layer esta prendido } } });
  • 36. $(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” } , callbacks: { show: function(){ // El layer esta prendido } } });
  • 37. $(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” }, callbacks: { show: function(){ // El layer esta prendido } } });
  • 38. var layer = $(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” }, callbacks: { show: function(){ // El layer esta prendido } } });
  • 39. var layer = $(“.rep”).layer({ content: { type: “param”, data: “<h2>Reputación</h2>” }, callbacks: { show: function(){ // El layer esta prendido } } }); { uid: 0, type: “ui.layer”, element: HTMLElement, show(), hide() } layer.show()
  • 41.  
  • 44. Floats Tooltip Helper Contextual Layer Modal Window
  • 45. Modal config content type: param | DOM | ajax [ data ] : string [ callbacks ] [ show ] : function [ hide ] : function
  • 46. Layer config [ event ] : “click” content type: param | DOM | ajax data: string [ callbacks ] [ show ] : function [ hide ] : function
  • 49. Citas
  • 50. “ es una luz en el fondo del tunel, en la busqueda de consistencia entre las UI`s de Meli” - Tato
  • 51. “ agiliza muchísimo los tiempos de implementación, optimizando los tiempos de diseñadores y programadores, ahorrando tambien tiempo con definiciones que ya están resueltas en chico” - Diego
  • 52. “ Con Chico Ui pude dedicarle más tiempo al diseño del los productos y no tener que preocuparme por el funcionamiento e interacción de componentes ya estandarizados y que sabemos que funcionan” - Fer
  • 53. “ Chico UI es un proyecto opensource que agrupa los componentes que se utilizan dentro en ML.” - Guille
  • 54. “ es una herramienta que simplifica el proceso de implementacion de una interfaz, agregando funcionalidad” - Lean
  • 55. “ paquetito de codigo que me deja implementar componentes con solo un par de lineas en mi html” - Nati
  • 56. “ unos hiper nionios haciendo algo copado para ml” - Jess
  • 57. Gracias!!! Chico-UI Team : Guille, Lean y Naty! GMP Team ! User Experience Team ! Damian y Michel... A mi mamá y a mi papá, obvio...
  • 58.