Theming https://front.id/en en Cocomore https://front.id/en/portfolio/cocomore <span class="field field--name-title field--type-string field--label-hidden">Cocomore</span> <div class="clearfix text-formatted field field--name-field-detail-body field--type-text-long field--label-hidden field__item"><p dir="ltr">Cocomore es una agencia alemana con la que Front.id colabora habitualmente. Hemos desarrollado juntos numerosos proyectos de éxito y en esta ocasión nos pidieron que desarrollármos su sitio web corporativo.</p> <p dir="ltr">Desarrollamos toda la parte de Frontend, la nueva capa de estilos así como la creación de aquellos componentes que ellos nos propusieron para el nuevo rediseño. El proyecto fue totalmente pensado bajo el concepto de Mobile first.</p> <p dir="ltr"><a href="http://www.cocomore.com"><u>www.cocomore.com</u></a><span> </span></p></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/user/14" typeof="schema:Person" property="schema:name" datatype="">By Casanova</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 03/27/2018 - 20:44</span> <div class="field field--name-field-roles field--type-string field--label-hidden field__items"> <div class="field__item">Backend Developer</div> <div class="field__item">Frontend Developer</div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/es/taxonomy/term/2" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/en/taxonomy/term/51" hreflang="en">Theming</a></div> <div class="field__item"><a href="/es/taxonomy/term/14" hreflang="es">CSS</a></div> </div> <div class="field field--name-field-collage-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/2019-03/cocomore_2.jpg" width="1160" height="1682" alt=" Website Corporativo" typeof="foaf:Image" /> </div> Tue, 27 Mar 2018 18:44:38 +0000 Casanova 101 at https://front.id Drinki https://front.id/en/node/100 <span class="field field--name-title field--type-string field--label-hidden">Drinki</span> <div class="clearfix text-formatted field field--name-field-detail-body field--type-text-long field--label-hidden field__item"><p>Drinki (que ahora ha cambiado a DUSK) es en realidad un sitio web que promueve un APP para encontrar bares según los gustos del usuario e incluso localiza bares alrededor de los usuarios que tienen ofertas/promociones. Front.id desarrolló el frontend y el backend con Simphony, con integración de wordpress; animaciones y efectos.</p> <p><a href="https://drinki.com"><u>https://drinki.com</u></a><span> </span></p></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/user/14" typeof="schema:Person" property="schema:name" datatype="">By Casanova</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 03/27/2018 - 20:42</span> <div class="field field--name-field-roles field--type-string field--label-hidden field__items"> <div class="field__item">Backend Developer</div> <div class="field__item">Frontend Developer</div> <div class="field__item">UX</div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/es/taxonomy/term/2" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/es/taxonomy/term/11" hreflang="es">JavaScript</a></div> <div class="field__item"><a href="/es/taxonomy/term/14" hreflang="es">CSS</a></div> </div> Tue, 27 Mar 2018 18:42:22 +0000 Casanova 100 at https://front.id EOI https://front.id/en/portfolio/eoi <span class="field field--name-title field--type-string field--label-hidden">EOI</span> <div class="clearfix text-formatted field field--name-field-detail-body field--type-text-long field--label-hidden field__item"><p>Participamos tanto en el desarrollo del Backend como en el Frontend de este diseño que proponía la creación de componentes con un claro comportamiento responsive para la Escuela de Organización Industrial.</p> <p>El resultado es un hermoso portal de educación en línea.</p> <p dir="ltr"><a href="http://www.eoi.es"><u>www.eoi.es</u></a><span> </span></p></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/user/14" typeof="schema:Person" property="schema:name" datatype="">By Casanova</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 03/27/2018 - 20:35</span> <div class="field field--name-field-roles field--type-string field--label-hidden field__items"> <div class="field__item">Backend Developer</div> <div class="field__item">Frontend Developer</div> <div class="field__item">UX</div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/en/taxonomy/term/64" hreflang="en">Drupal 7</a></div> <div class="field__item"><a href="/en/taxonomy/term/51" hreflang="en">Theming</a></div> <div class="field__item"><a href="/es/taxonomy/term/14" hreflang="es">CSS</a></div> </div> <div class="field field--name-field-collage-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/2019-03/eoi_2.jpg" width="1160" height="1841" alt="Corporate School Site, contents of interest." typeof="foaf:Image" /> </div> Tue, 27 Mar 2018 18:35:29 +0000 Casanova 98 at https://front.id La Drupalera https://front.id/en/portfolio/la-drupalera <span class="field field--name-title field--type-string field--label-hidden">La Drupalera</span> <div class="clearfix text-formatted field field--name-field-detail-body field--type-text-long field--label-hidden field__item"><p>Para este proyecto desarrollamos un sitio web ligero, limpio y sencillo. Realizamos el diseño y desarrollo de ambos: backend y frontend.</p> <p>También creamos algunos efectos con Parallax, este recurso es muy útil para dar a la web un cierto dinamismo y contrarrestar la planitud. Tampoco debemos olvidar que los dispositivos móviles promueven la verticalidad del diseño web por lo que el efecto de Parallax es más que interesante para añadir valor al tedioso scroll y sorprender al usuario con algo que no se espera.</p> <p><a href="https://www.ladrupalera.com/es">www.ladrupalera.com/es</a></p></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/user/14" typeof="schema:Person" property="schema:name" datatype="">By Casanova</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 03/27/2018 - 20:34</span> <div class="field field--name-field-roles field--type-string field--label-hidden field__items"> <div class="field__item">Backend Developer</div> <div class="field__item">Frontend Developer</div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/es/taxonomy/term/2" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/es/taxonomy/term/14" hreflang="es">CSS</a></div> <div class="field__item"><a href="/en/taxonomy/term/51" hreflang="en">Theming</a></div> </div> <div class="field field--name-field-collage-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/2019-03/Drupalera_2.jpg" width="1160" height="1841" alt="Home page - Parallax effect." typeof="foaf:Image" /> </div> Tue, 27 Mar 2018 18:34:28 +0000 Casanova 97 at https://front.id Paralímpicos https://front.id/en/portfolio/paralimpicos <span class="field field--name-title field--type-string field--label-hidden">Paralímpicos</span> <div class="clearfix text-formatted field field--name-field-detail-body field--type-text-long field--label-hidden field__item"><p>En este proyecto migramos y adaptamos su previo gestor de contenidos basado en asp.net a Drupal. Realizamos un nuevo diseño para el frontend del sitio basado en varios requerimientos específicos solicitados por el cliente. Teniendo en cuenta también las restricciones de accesibilidad (AA y AAA en algunos contenidos) y responsiveness solicitadas.</p> <p>Una vez finalizada la migración, apoyamos al Comité en el diseño y desarrollo de una nueva utilidad en el portal para el envío de boletines mensuales y comunicación corporativa en línea, así como de un nuevo portal de contenidos multimedia. Diseñamos y desarrollamos tanto el backend como el frontend.</p> <p><a href="http://www.paralimpicos.es/">www.paralimpicos.es</a></p></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/user/14" typeof="schema:Person" property="schema:name" datatype="">By Casanova</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 03/27/2018 - 20:17</span> <div class="field field--name-field-roles field--type-string field--label-hidden field__items"> <div class="field__item">Backend Developer</div> <div class="field__item">Frontend Developer</div> <div class="field__item">UX</div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/en/taxonomy/term/64" hreflang="en">Drupal 7</a></div> <div class="field__item"><a href="/es/taxonomy/term/11" hreflang="es">JavaScript</a></div> <div class="field__item"><a href="/es/taxonomy/term/14" hreflang="es">CSS</a></div> <div class="field__item"><a href="/en/taxonomy/term/51" hreflang="en">Theming</a></div> </div> <div class="field field--name-field-collage-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/2019-03/paralimpicos_int.jpg" width="1160" height="1608" alt="Sitio web corporativo y detalle del canal TV desarrollado" typeof="foaf:Image" /> </div> Tue, 27 Mar 2018 18:17:31 +0000 Casanova 95 at https://front.id goCO2free https://front.id/en/portfolio/goco2free <span class="field field--name-title field--type-string field--label-hidden">goCO2free</span> <div class="clearfix text-formatted field field--name-field-detail-body field--type-text-long field--label-hidden field__item"><p>Ayudamos a GoCo2Free a crear una experiencia en línea que educa y anima a las comunidades a rastrear y reducir su huella de carbono de una manera competitiva, pero positiva. </p> <p>Proporcionamos diseño y consultoría de UX para ayudar a agilizar los flujos de usuarios, a la vez que nos centramos en las capacidades del panel de control y el seguimiento. Es una plataforma multidominio, cada dominio pertenece a una ciudad diferente de EE.UU., y cada uno tiene su propio equipo para administrar el sitio. Colaboramos con la agencia Lullabot en este proyecto y actualmente somos el equipo principal de desarrollo.</p> <p><a href="https://www.communityclimate.org"><u>www.communityclimate.org</u></a><span> </span></p></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/user/14" typeof="schema:Person" property="schema:name" datatype="">By Casanova</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 03/27/2018 - 20:07</span> <div class="field field--name-field-roles field--type-string field--label-hidden field__items"> <div class="field__item">Backend Developer</div> <div class="field__item">Frontend Developer</div> <div class="field__item">UX</div> <div class="field__item">Project Manager</div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/es/taxonomy/term/11" hreflang="es">JavaScript</a></div> <div class="field__item"><a href="/es/taxonomy/term/2" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/es/taxonomy/term/14" hreflang="es">CSS</a></div> </div> <div class="field field--name-field-collage-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/2019-03/goCO2free.jpg" width="1160" height="1360" alt="Ejemplos de los distintos sitios vinculados a la iniciativa" typeof="foaf:Image" /> </div> Tue, 27 Mar 2018 18:07:17 +0000 Casanova 93 at https://front.id Dolce Gusto Advents Calendar https://front.id/en/portfolio/dolce-gusto-advents-calendar <span class="field field--name-title field--type-string field--label-hidden">Dolce Gusto Advents Calendar</span> <div class="clearfix text-formatted field field--name-field-detail-body field--type-text-long field--label-hidden field__item"><p>A través de js, CSS/SASS hemos creado animaciones, aplicado la capa responsive correspondiente y obviamente el layout de la página de inicio. Creamos la animación principal y el menú interactivo sobre la animación. Utilizamos handlebars para generar componentes HTML independientes y manejables como el día activo, el modal, el modal de los días futuros, etc. Aquí tienes algunos ejemplos de piezas realizadas:</p> <p dir="ltr"><a href="https://www.dolce-gusto.de/neues-premium-design">www.dolce-gusto.de/neues-premium-design</a><span> </span></p> <p dir="ltr"><a href="https://ernaehrungsstudio.nestle.de/adventskalender-gewinnspiel">ernaehrungsstudio.nestle.de/adventskalender-gewinnspiel</a><span> </span></p> <p> </p></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/user/14" typeof="schema:Person" property="schema:name" datatype="">By Casanova</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 03/27/2018 - 19:57</span> <div class="field field--name-field-roles field--type-string field--label-hidden field__items"> <div class="field__item">Frontend development</div> <div class="field__item">UX</div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/es/taxonomy/term/11" hreflang="es">JavaScript</a></div> <div class="field__item"><a href="/es/taxonomy/term/14" hreflang="es">CSS</a></div> </div> <div class="field field--name-field-collage-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/2019-03/dolce-gusto_0.jpg" width="1160" height="1608" alt="Portfolio Dolce Gusto Landing Pages" typeof="foaf:Image" /> </div> Tue, 27 Mar 2018 17:57:36 +0000 Casanova 92 at https://front.id New JS plugin: DOMElementRelocation https://front.id/en/articles/new-js-plugin-domelementrelocation <div data-history-node-id="167" class="layout layout--onecol"> <div class="layout__region layout__region--content"> <div class="field field--name-node-title field--type-ds field--label-hidden field__item"> <a href="/en/articles/new-js-plugin-domelementrelocation" hreflang="en">New JS plugin: DOMElementRelocation</a> </div> <div class="field field--name-node-submitted-by field--type-ds field--label-hidden field__item">Submitted by <span lang="" about="/en/user/10" typeof="schema:Person" property="schema:name" datatype="">By Capy</span> on Monday, October 8, 2018 - 17:31.</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>I present to you <a href="https://github.com/frontid/DOMElementRelocation">DOMElementRelocation</a>. This is a plugin created to help front-end (like us) to relocate DOM elements to a new position based on the current breakpoint.</p> <h2>Use case</h2> <p>Lets suppose you have a search form at the header of a web page. Now suppose the mobile design requires this form at the sidebar above the search filters...</p> <p>The problem on this case is the header and the sidebar are not sharing the scope. You can't just tell via CSS "move the search box from header to the sidebar"</p> <p>So here comes <a href="https://github.com/frontid/DOMElementRelocation">DOMElementRelocation</a> in. This plugin allows you to accomplish this via js. The elements can be moved from its original location and come back to the original place when its needed. </p> <h2>Usage</h2> <pre> <code>&lt;script src="js/jquery.js"&gt;&lt;/script&gt; &lt;script src="/js/mediaQueryEvents.jquery.js"&gt;&lt;/script&gt; &lt;script src="../dist/DOMElementRelocation.js"&gt;&lt;/script&gt;</code></pre> <pre> <code>$(function () { new DOMElementRelocation( { // Define the breakpoints. there is no limit // and name them as you want. breakpoints: { desk: '(min-width: 1230px)', mob: '(min-width: 0px) and (max-width: 1229px)' }, // Declare as many elements you want. elements: [ { // The element. element: '.search-form', // Move to the footer when "mob" breakpoint gets reached. mob: '.sidebar', // keep the original position. desk: false } ] }); });</code></pre> <p> </p> <p>On this example (assuming the <strong><em>.search-form</em></strong> is located at the header), the element will be moved to the sidebar when the browser size is less than 1229px and will keep it's original position when reach desktop.</p> <p>For further info please see <a href="https://github.com/frontid/DOMElementRelocation">https://github.com/frontid/DOMElementRelocation</a></p> </div> </div> </div> Mon, 08 Oct 2018 15:31:01 +0000 Capy 167 at https://front.id Drupal 8: Templates a nivel form element https://front.id/en/articles/drupal-8-templates-nivel-form-element <div data-history-node-id="67" class="layout layout--onecol"> <div class="layout__region layout__region--content"> <div class="field field--name-node-title field--type-ds field--label-hidden field__item"> <a href="/en/articles/drupal-8-templates-nivel-form-element" hreflang="en">Drupal 8: Templates a nivel form element</a> </div> <div class="field field--name-node-submitted-by field--type-ds field--label-hidden field__item">Submitted by <span lang="" about="/en/user/10" typeof="schema:Person" property="schema:name" datatype="">By Capy</span> on Monday, October 16, 2017 - 18:57.</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Alguna vez pasa que necesitamos modificar el HTML que genera un elemento de formulario. No me refiero a un form sino mas bien al HTML que conforma un elemento de tipo <em>input</em>, <em>password</em>, <em>email</em>, <em>select</em>, etc.</p> <p>Este es un ejemplo típico del output de drupal para un campo input normal de tipo texto:</p> <p><img alt="Form input" data-entity-type="file" data-entity-uuid="64ca2958-4b97-488d-b099-05ccdb1a0f01" src="/sites/default/files/inline-images/form-input.png" /></p> <p>Y su codigo:</p> <p><img alt="Form input code" data-entity-type="file" data-entity-uuid="0b0256ef-b2fe-40d8-85eb-6c20fbc87a14" src="/sites/default/files/inline-images/form-input-code.png" /></p> <p> </p> <p>Pues bien, imaginen ahora que necesitamos que el label vaya después de la description, o que el input queremos que esté contenido en un div. Todo lo anterior requiere que tengamos control sobre el template de este tipo de campo. ¿Como lo hacemos? Vamos a ello.</p> <h2>El <a href="https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Render%21theme.api.php/function/hook_theme_suggestions_HOOK_alter/8.4.x">hook_theme_suggestions_HOOK_alter()</a></h2> <p>Drupal de serie nos permite usar un template que ya está en el core y que contiene el HTML que se va a generar para los elementos de formulario en general. Pero nosotros queremos ir un poco mas allá y disponer de la posibilidad de modificar solo el HTML de tipos específicos de elementos de formulario. </p> <p>Para eso usamos hook_theme_suggestions_HOOK_alter() que nos permite añadir template suggestion  al template form_element (que es el que define a form-element.html.twig):</p> <pre> <code class="language-php">/** * Implements hook_theme_suggestions_HOOK_alter(). */ function MITHEME_O_MODULO_theme_suggestions_form_element_alter(array &amp;$suggestions, array $variables, $hook) { $suggestions[] = 'form_element__type__' . $variables['element']['#type']; }</code></pre> <p>¿Y que hemos conseguido con el código anterior? Pues antes del alter solo existía "f<em>orm-element.html.twig</em>" y ahora hemos conseguido tener templates granulares para cada tipo de elemento:</p> <pre> <code>// Template original que viene en el core: form-element.html.twig // Nuevos templates disponibles para que los uses en tu theme: form-element--type--textfield.html.twig form-element--type--email.html.twig form-element--type--password.html.twig form-element--type--select.html.twig form-element--type--ETCETERA.html.twig</code></pre> <h2>Hagamos algo con los templates</h2> <p>Bueno ya tenemos entendidos y bien gestionados los templates. Ahora sigamos con nuestro ejemplo. Copia "<em>form-element.html.twig"</em> desde el core o desde el theme desde el que estés heredando tu subtheme y ponlo dentro de la carpeta de "<em>templates</em>" de tu theme.</p> <p><strong>Tip</strong>: Ubicaciones de f<em>orm-element.html.twig:</em></p> <pre> <code>// Si tu theme NO hereda de algún theme del core web/core/modules/system/templates/form-element.html.twig // Si tu theme hereda de algún theme del core: web/core/themes/classy/templates/form/form-element.html.twig web/core/themes/stable/templates/form/form-element.html.twig</code></pre> <p>Y ya lo tienes!. Solo te queda limpiar el cache y modificar la posición de los label, el campo (el input), la description y hacer todo lo que necesites en dicho campo.</p> <p>Chau!</p> </div> </div> </div> Mon, 16 Oct 2017 16:57:35 +0000 Capy 67 at https://front.id