{"id":6902,"date":"2014-06-11T23:13:48","date_gmt":"2014-06-11T21:13:48","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=6902"},"modified":"2014-06-11T23:27:47","modified_gmt":"2014-06-11T21:27:47","slug":"trucos-y-tecnicas-de-diseno-avanzado-frontend-en-html","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/trucos-y-tecnicas-de-diseno-avanzado-frontend-en-html\/","title":{"rendered":"Trucos y t\u00e9cnicas de dise\u00f1o avanzado FrontEnd en HTML"},"content":{"rendered":"<p style=\"text-align: justify;\">El desarrollo de websites ha cambiado en los \u00faltimos a\u00f1os de forma sustancial. Es por ello que proyectos grandes requieren de equipos multidisciplinares de trabajo. Lo que antes hacia un webmaster, ahora es inviable para grandes desarrollos y se requiere de grupos profesionales especializados.<\/p>\n<p style=\"text-align: justify;\">Estos equipos est\u00e1n formados por miembros con diversos perfiles, desde los desarrolladores <strong>Front-End<\/strong>, administradores de bases de datos, programadores Back-end, administradores de sistemas, consultores, analistas, etc. Adem\u00e1s existen metodolog\u00edas de trabajo que coordinan el desarrollo y avance del proyecto as\u00ed como herramientas software para compartir ficheros a modo de repositorio. Ejemplos actuales de gran \u00e9xito pueden ser <strong>Github<\/strong>,<strong>Mercury<\/strong>, etc.<\/p>\n<p style=\"text-align: justify;\">En esta entrada, os dejar\u00e9 una serie de ideas y herramientas de desarrollo que marcan las \u00faltimas tendencias en el despliegue del FrontEnd, es decir, \u00a0esa parte que permite crear interfaces de usuario. No necesariamente pueden emplease estos consejos, puesto que existe mucha libertad a la hora de desarrollar, pero son tendencia en desarrollo.<\/p>\n<p style=\"text-align: justify;\"><!--more--><\/p>\n<p>Actualmente se habla mucho del <strong>dise\u00f1o responsive<\/strong> y <strong>l\u00edquido<\/strong> o <strong>el\u00e1stico<\/strong>, como la facilidad de adaptar webs a diferentes tipos de pantallas y resoluciones de forma autom\u00e1tica.<\/p>\n<p>Otra tendencia o filosof\u00eda es <strong>Mobile First<\/strong>, dise\u00f1ar primero HTML para tel\u00e9fono, despu\u00e9s para Tablet y para finalizar modo escritorio o desktop.<\/p>\n<p>Los \u00faltimos desarrolladores FrontEnd est\u00e1n hablando del dise\u00f1o <strong>OOCSS (<a href=\"http:\/\/oocss.org\/\" target=\"_blank\">http:\/\/oocss.org\/<\/a>)<\/strong> o dise\u00f1o orientado a objetos empleando las hojas de estilo en cascada.<br \/>\nDejo el enlace a repositorio git:\u00a0<a href=\"https:\/\/github.com\/stubbornella\/oocss\/wiki\" target=\"_blank\">https:\/\/github.com\/stubbornella\/oocss\/wiki<\/a><\/p>\n<p>Otro de los frameworks con bastante popularidad es <strong>BootStrap<\/strong> (<a href=\"http:\/\/getbootstrap.com\/\" target=\"_blank\">http:\/\/getbootstrap.com\/<\/a>), intentar\u00e9 hablar de \u00e9l en otra entrada, es necesario conocer\u00a0que es empleado por twitter y tiene bastantes seguidores.<\/p>\n<p>Uno de los prop\u00f3sitos principales en el dise\u00f1o <strong>FrontEnd<\/strong> actual es acelerar el trabajo lo m\u00e1ximo posible con la mayor calidad buscando\u00a0 el mayor soporte de dispositivos. Todo ello busca como meta la rentabilidad de los proyectos debido al abaratamiento de costes.<\/p>\n<p>Para ello el uso de <strong>frameworks<\/strong> HTML como <strong>boilerplate5 <\/strong>(<a href=\"http:\/\/html5boilerplate.com\/\" target=\"_blank\">http:\/\/html5boilerplate.com\/<\/a>), t\u00e9cnicas de <strong>reseteo<\/strong> de CSS como normalize.css (<a href=\"http:\/\/necolas.github.io\/normalize.css\/\" target=\"_blank\">http:\/\/necolas.github.io\/normalize.css\/<\/a>) permiten acelerar y evitar tener que desplegar desde 0 \u00f3<strong> from scratch<\/strong> para cada navegador.<\/p>\n<p>El empleo de Dreamweaver entre los dise\u00f1adores profesionales es muy cuestionado debido a que se suele decir que este IDE HTML a\u00f1ade demasiado c\u00f3digo innecesario o basura a nuestros proyectos. Adem\u00e1s no permite controlar todos los aspectos.<\/p>\n<p>Es por ello, que recientemente he podido probar otras herramientas que en el mundo profesional FrontEnd se encuentran muy difundidas.<\/p>\n<p>Destaco S<strong>ublime Text como editor multiplafaforma HTML<\/strong>. Existen dos versiones, la<strong> 2 y 3.<\/strong><br \/>\n<a href=\"http:\/\/www.sublimetext.com\/3\" target=\"_blank\">http:\/\/www.sublimetext.com\/3<\/a><\/p>\n<p>Gracias a este editor el soporte de extensiones como <strong>Emmet<\/strong>, <strong>Stylus<\/strong>, permiten acelerar los desarrollos. <strong>Stylus<\/strong> lo explicar\u00e9 a continuaci\u00f3n puesto que es una extensi\u00f3n de <strong>node.js.<\/strong><\/p>\n<p style=\"text-align: justify;\">Otra de las t\u00e9cnicas o tendencias en el desarrollo actual es el empleo de\u00a0 <strong>Stylus y Nib<\/strong> para la <strong>compilaci\u00f3n de CSS<\/strong> y simplificaci\u00f3n de su desarrollo. <strong>Stylus requiere Node.js instalado en la m\u00e1quina<\/strong>. Es una alternativa m\u00e1s eficaz seg\u00fan expertos a los<strong> preprocesadores Sass y Less<\/strong>. El primer preprocesador fue LESS, pero es algo flojo para el desarrollo CSS. Sass es m\u00e1s potente pero a mi juicio posee una mayor complejidad. Stylus es m\u00e1s intuitivo y simplifica cosas como el empleo de notaci\u00f3n.<\/p>\n<p><span style=\"color: #003366;\"><strong>Como ejemplos, desplegar\u00e9 Node.js (necesario para stylus), Sublime text 3 con soporte de plugins Emmet y NIB sobre mi sistema Windows 8.1.<\/strong><\/span><\/p>\n<p>Veamos como c<strong>ompilar plantillas CSS al vuelo<\/strong>, simplificando su codificaci\u00f3n y a la larga ahorrando tiempo.<\/p>\n<p>Lo primero que necesitamos es descarga el editor Sublime text, la versi\u00f3n 3.<\/p>\n<p><a href=\"http:\/\/www.sublimetext.com\/3\" target=\"_blank\">http:\/\/www.sublimetext.com\/3<\/a><\/p>\n<p>Una vez instalado, podemos instalar plugins:<\/p>\n<p>Para ello es necesario instalar pakage control para sublime 2 o 3 desde:<\/p>\n<p><a href=\"https:\/\/sublime.wbond.net\/installation\" target=\"_blank\">https:\/\/sublime.wbond.net\/installation<\/a><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/package-control-sublime.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6912\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/package-control-sublime.jpg\" alt=\"package-control-sublime\" width=\"865\" height=\"770\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/package-control-sublime.jpg 865w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/package-control-sublime-300x267.jpg 300w\" sizes=\"auto, (max-width: 865px) 100vw, 865px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Abrimos Sublime y nos vamos al men\u00fa ver, consola.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6904\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/sublime.jpg\" alt=\"sublime\" width=\"589\" height=\"520\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/sublime.jpg 589w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/sublime-300x264.jpg 300w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/p>\n<p>Pegamos el c\u00f3digo de la web de instalaci\u00f3n sobre\u00a0 la consola, y se instala el gestor de\u00a0 plugins:<\/p>\n<p>Una vez realizado esto vamos a P<strong>referencias, Package control,<\/strong> tecleamos <strong>install package<\/strong> y una vez descargado, tecleamos <strong>emmet<\/strong>.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/install-package.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6910\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/install-package.jpg\" alt=\"install-package\" width=\"589\" height=\"520\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/install-package.jpg 589w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/install-package-300x264.jpg 300w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/emmet.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6911\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/emmet.jpg\" alt=\"emmet\" width=\"699\" height=\"739\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/emmet.jpg 699w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/emmet-283x300.jpg 283w\" sizes=\"auto, (max-width: 699px) 100vw, 699px\" \/><\/a><\/p>\n<p>Ahora cerramos sublime y lo volvemos a abrir, ya se encuentra instalado.<\/p>\n<p>Para comprobar si est\u00e1 instalado, podemos teclear <strong>HTML:5<\/strong> y pulsar tabulador, autom\u00e1ticamente el entono me coloca el c\u00f3digo.<\/p>\n<p>Existen otros trucos, si tecleo .micapa autom\u00e1ticamente me teclea:<br \/>\n&lt;div class=&#8221;micapa&#8221;&gt;&lt;\/div&gt;, maravilloso.<\/p>\n<p>Pero veamos mas.<\/p>\n<p>Despu\u00e9s instalaremos node.js de la direcci\u00f3n:<\/p>\n<p><a href=\"http:\/\/nodejs.org\/\" target=\"_blank\">http:\/\/nodejs.org\/<\/a><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/instalacion-node.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6908\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/instalacion-node.jpg\" alt=\"instalacion-node\" width=\"509\" height=\"399\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/instalacion-node.jpg 509w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/instalacion-node-300x235.jpg 300w\" sizes=\"auto, (max-width: 509px) 100vw, 509px\" \/><\/a><\/p>\n<p>Una vez descargado e instalado, dependiendo de la plataforma, instalaremos ahora stylus.<\/p>\n<p>Recuerda sobre Windows, antes de realizar este comando, meter un reinicio a la m\u00e1quina, a mi no me funciono a la primera, me dio errores nmp ERR! 404<\/p>\n<p>Para ello abrimos una ventana como administradores de sistema, <strong>cmd<\/strong> y teclearemos:<\/p>\n<p><strong>npm install stylus<\/strong><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/node-instalacion-windows.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6909\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/node-instalacion-windows.jpg\" alt=\"node-instalacion-windows\" width=\"677\" height=\"763\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/node-instalacion-windows.jpg 677w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/node-instalacion-windows-266x300.jpg 266w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/p>\n<p>En otros sistemas como<strong> mac o Linux es necesario meter la opci\u00f3n \u2013g<\/strong><\/p>\n<p>Ahora podemos compilar el fichero con sintaxis style que estamos editando desde Sublime<\/p>\n<p><strong>C:\\Program Files\\node_modules\\.bin&gt;stylus -c C:\\HTML-ejemplo\\css\\palentino.styl<\/strong><\/p>\n<p>compiled C:\\HTML-ejemplo\\css\\palentino.css<\/p>\n<p>Es importante fijarse en <strong>la ruta para sistemas Windows 8<\/strong>, os aseguro que no existen muchos tutoriales de momento de esto.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/stylus-windows8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6906\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/stylus-windows8.jpg\" alt=\"stylus-windows8\" width=\"677\" height=\"163\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/stylus-windows8.jpg 677w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/stylus-windows8-300x72.jpg 300w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/p>\n<p>Para finalizar, si deseamos que sublime lo detecte en tiempo real necesitaremos ejecutarlo con el<strong> par\u00e1metro \u2013w<\/strong>. Es importante no cerrar el cmd de administrador.<\/p>\n<p style=\"text-align: justify;\">El comando \u2013w se queda escuchando todos los cambios detectados. Cualquier acci\u00f3n que realicemos en sublime con el documento palentino.styl, se compilara autom\u00e1ticamente a palentino.css. La verdadera potencia es la velocidad, sencillez que tenemos al editar estilos css en tiempo real compilados.<\/p>\n<p><strong>stylus \u2013c -w C:\\HTML-ejemplo\\css\\palentino.styl<\/strong><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/stylus-windows8-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6907\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/stylus-windows8-2.jpg\" alt=\"stylus-windows8-2\" width=\"677\" height=\"163\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/stylus-windows8-2.jpg 677w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/stylus-windows8-2-300x72.jpg 300w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>El <strong>CSS compilado, quedara compactado en diversas l\u00edneas, y la complejidad del dise\u00f1o en cascada es mucho m\u00e1s f\u00e1cil de entender como stylus<\/strong>.<\/p>\n<p>Por ejemplo podemos anidar y emplear el operador &amp; para las subclases.<\/p>\n<p>Ejemplo: .boton<\/p>\n<p>Meto las propiedades, sin comas, sin finalizaciones en punto y coma<\/p>\n<p>Puedo anidar &amp;.red para crear subclases bot\u00f3n.red, se compilar\u00e1 autom\u00e1ticamente. Maravilloso.<\/p>\n<p>Para finalizar podemos instalar <strong>stylus con nib para a\u00f1adir funcionalidades diversas como simplificaci\u00f3n de sintaxis para m\u00faltiples navegadores, renderizados, degradados<\/strong>, etc.<\/p>\n<p>Podemos ver m\u00e1s informaci\u00f3n en:<\/p>\n<p><a href=\"http:\/\/visionmedia.github.io\/nib\/\" target=\"_blank\">http:\/\/visionmedia.github.io\/nib\/<\/a><\/p>\n<p><strong>Para instalar nib en Windows:<\/strong><\/p>\n<p><strong>Npm install nib<\/strong><\/p>\n<p>Para compilar con nib<\/p>\n<p>c:\\Program Files\\node_modules\\.bin&gt;<strong>stylus \u2013u nib \u2013c -w C:\\HTML-ejemplo\\css\\palentino.styl<\/strong><\/p>\n<p>Recuerda agregar las <strong>importaciones dentro del fichero<\/strong> @import , no obstante no he conseguido compilar con nib todav\u00eda.<\/p>\n<p><strong>Tambi\u00e9n podr\u00e1s usar style con Dreamweaver.<\/strong><\/p>\n<p>Ejemplo <strong>fichero styl<\/strong> que generar\u00e1 un CSS:<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/ejemplo-styl.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6913\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/ejemplo-styl.jpg\" alt=\"ejemplo-styl\" width=\"589\" height=\"687\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/ejemplo-styl.jpg 589w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/06\/ejemplo-styl-257x300.jpg 257w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El desarrollo de websites ha cambiado en los \u00faltimos a\u00f1os de forma sustancial. Es por ello que proyectos grandes requieren de equipos multidisciplinares de trabajo. Lo que antes hacia un webmaster, ahora es inviable para grandes desarrollos y se requiere de grupos profesionales especializados. Estos equipos est\u00e1n formados por miembros con diversos perfiles, desde los desarrolladores Front-End, administradores de bases de datos, programadores Back-end, administradores de sistemas, consultores, analistas, etc. Adem\u00e1s existen metodolog\u00edas de trabajo que coordinan el desarrollo y avance del proyecto as\u00ed como herramientas software para compartir ficheros a modo de repositorio. Ejemplos actuales de gran \u00e9xito pueden ser Github,Mercury, etc. En esta entrada, os dejar\u00e9 una serie de ideas y herramientas de desarrollo que marcan las \u00faltimas tendencias en el despliegue del FrontEnd, es decir, \u00a0esa parte que permite crear interfaces de usuario. No necesariamente pueden emplease estos consejos, puesto que existe mucha libertad a la hora de desarrollar, pero son tendencia en desarrollo.<\/p>\n","protected":false},"author":1,"featured_media":6903,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,418,446,212],"tags":[569,360],"class_list":["post-6902","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-formacion","category-html-2","category-html5","category-windows-8","tag-frontend","tag-node"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/6902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=6902"}],"version-history":[{"count":6,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/6902\/revisions"}],"predecessor-version":[{"id":6918,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/6902\/revisions\/6918"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/6903"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=6902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=6902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=6902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}