Al comenzar un proyecto web, una de las primeras cosas que tenemos en cuenta son los diseños de las páginas y las interacciones que tendremos con nuestro usuario. Pensamos en colores, animaciones, componentes y usabilidad. Bien sabemos, que básicamente todo proyecto web se compone de las páginas escritas en HTML, los estilos y el comportamiento. Por lo tanto, simplificando, pensamos en HTML, CSS y JavaScript. Luego, buscamos darle una armonía a cada sección de nuestro sitio, combinando colores y comportamiento similar. Realizar estas tareas requieren creatividad en el diseño para hacer algo agradable y correcto, perfección en la programación del comportamiento de los botones, ventanas modales, etcétera; y todo esto, que sea reutilizable en cualquier parte del sitio, para que no nos implique un esfuerzo mayor integrarlo. Todas estas tareas requieren competencias específicas que, probablemente, alguna nos cueste más que otra. Por otro lado, hay diseñadores que hacen unos estilos increíbles y programadores que desarrollan componentes con animaciones y comportamientos muy buenos. ¿Qué te parece, si diseñadores y programadores se juntan para hacer componentes básicos reutilizables, en cualquier página web para que al comenzar un proyecto, ya los podamos utilizar al instante sin necesidad de que nosotros nos pongamos en creativos, con el tiempo y el dinero que eso conlleva? Bueno, eso precisamente es lo que hacen los frameworks de UI. Nos permiten comenzar un proyecto con un conjunto de componentes, con diferentes estilos y animaciones fáciles de utilizar y configurar. Quizás se pregunten, si todos los sitios se verán igual por utilizar los mismos frameworks. La respuesta es que no, porque permiten una personalización con niveles muy elevados. De todas formas, algunos desarrolladores prefieren tener su propio estilo sin utilizar los frameworks, para diferenciarse totalmente. La realidad, es que esto sucede, rara vez, por motivos económicos, de tiempos y porque la práctica habitual en proyectos corporativos, es tomar un framework de base y, luego, personalizarlo de acuerdo a las necesidades del negocio. Un problema, no menor, que resuelven estos frameworks, es la compatibilidad con todos los navegadores. Es importante mencionarlo, porque si bien, en la actualidad todos los navegadores siguen ciertos estándares para facilitarles la vida a los programadores, algunos todavía tienen particularidades que hacen que ciertos componentes no funcionen como se espera. Los frameworks de UI te garantizan compatibilidad y te lo notifican en la documentación. ¿Cuáles son los frameworks más populares? Veamos los cinco frameworks más populares de hoy en día: Bootstrap, Foundation, Semantic UI, Pure y UIKit. La popularidad, básicamente, se basa en la cantidad de estrellas que cuentan en sus repositorios de Github. Los cinco del listado, cuentan con características similares, pero varían en los preprocesadores que utilizan y, por supuesto, en los componentes propuestos. Podrías comenzar un proyecto con cualquiera de ellos y no vas a tener problemas. No vamos a entrar en detalles sobre cada una de estas herramientas, pero te animo a que entres al repositorio de Github de cada una de ellas y veas, qué componentes ofrecen, las compares y puedas ver que pros y contras tiene cada una de estas herramientas. Bootstrap, es el número uno en popularidad y es el que utilizaremos en este curso. Hay infinidad de proyectos que lo utilizan y cuentan con una gran variedad de templates o versiones personalizadas, que se adaptan a diferentes tipos de proyecto. Utiliza como preprocesador, por defecto, Sass (ya veremos lo que son los procesadores), y sus componentes son Responsive, es decir, se adaptan al tamaño de los celulares y tabletas. Cuenta con una comunidad muy amplia y el proyecto Bootstrap se encuentra muy activo, su documentación es excelente, con muchos ejemplos y explicaciones. Todo esto, hace que Bootstrap sea una opción obligada para tus primeros proyectos. Más adelante, cuando te vuelvas un experto en frameworks UI, seguramente distingas particularidades en los proyectos, que hagan que te vuelques más a un framework que otro. Te animo, también, a que pruebes los otros frameworks del listado en diferentes proyectos, para ir viendo cuál te sienta más cómodo.