<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ignacio Rojas Aguilar</title>
    <description>The latest articles on DEV Community by Ignacio Rojas Aguilar (@irojasaglr).</description>
    <link>https://dev.to/irojasaglr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F470442%2F9ea874ec-0175-4de0-8fe2-cbf74418e609.jpg</url>
      <title>DEV Community: Ignacio Rojas Aguilar</title>
      <link>https://dev.to/irojasaglr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/irojasaglr"/>
    <language>en</language>
    <item>
      <title>Crear una aplicación con Angular 10 y Tailwind</title>
      <dc:creator>Ignacio Rojas Aguilar</dc:creator>
      <pubDate>Sat, 24 Oct 2020 20:04:42 +0000</pubDate>
      <link>https://dev.to/irojasaglr/crear-una-aplicacion-con-angular-10-y-tailwind-47pj</link>
      <guid>https://dev.to/irojasaglr/crear-una-aplicacion-con-angular-10-y-tailwind-47pj</guid>
      <description>&lt;p&gt;Vamos a crear una aplicación en Angular en conjunto con Tailwind, ya que es sencillo, sin embargo no es algo obvio y mucho menos en angular.&lt;/p&gt;

&lt;h1&gt;
  
  
  ¿Qué es Angular?
&lt;/h1&gt;

&lt;p&gt;Angular es uno de los frameworks de Javascript más poderosos y populares de la actualidad, desarollado y mantenido por Google.&lt;br&gt;
Es sumamente interesante la capacidad que tiene Angular para extender sus posibilidades y entre estas es añadir nuevas librerías, como es el caso de Tailwind.&lt;br&gt;
Para más información revisa &lt;a href="https://angular.io/docs" rel="noopener noreferrer"&gt;la documentación oficial&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  ¿Qué es Tailwind?
&lt;/h1&gt;

&lt;p&gt;Tailwind también es un framework conocido, sin embargo es para CSS (no para Javascript como el caso de Angular) que nos permite desarrollar interfaces gráficas estandarizadamente a través de clases comunes en toda la aplicación.&lt;/p&gt;

&lt;p&gt;Tailwind ha conseguido mucha popularidad últimamente y es porque verdaderamente agiliza el desarrollo de interfaces gráficas, al mismo tiempo que es muy personalizable.&lt;/p&gt;
&lt;h1&gt;
  
  
  Manos a la obra
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Creación del proyecto de Angular 10
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Crear un nuevo proyecto de Angular, en este caso el nombre que le daré es &lt;code&gt;tailwind-ejemplo&lt;/code&gt;. Si hay problemas con esto puedes seguir el tutorial oficial en la &lt;a href="https://angular.io/guide/setup-local" rel="noopener noreferrer"&gt;documentación oficial&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ng new tailwind-ejemplo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpz8f9k8e3khg8qwy7htk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpz8f9k8e3khg8qwy7htk.png" alt="Screen Shot 2020-10-24 at 13.13.20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;En caso de que se pregunte por cual formato usar para css, escogeremos &lt;code&gt;SCSS&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5boos0uqmokky16femjn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5boos0uqmokky16femjn.png" alt="Screen Shot 2020-10-24 at 13.16.03"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Y al final ingresamos al proyecto&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd tailwind-ejemplo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqvf0rqv9mzkaxncvkcnh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqvf0rqv9mzkaxncvkcnh.png" alt="Screen Shot 2020-10-24 at 13.16.58"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;## Instalación de los paquetes necesarios&lt;br&gt;
Para utilizar Tailwind junto a Angular es necesario instalar un conjunto de paquetes de npm que lo permitan, estos son:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tailwindcss&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;postcss-scss&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;postcss-import&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;postcss-loader&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@angular-builders/custom-webpack&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y para esto ejecutamos el siguiente comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i -D tailwindcss postcss-scss postcss-import postcss-loader@~3.0.0 @angular-builders/custom-webpack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Es importante asegurarnos que los paquetes en el archivo &lt;code&gt;package.json&lt;/code&gt; queden con estas versiones (con unas más recientes suelen dar problemas)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"@angular-builders/custom-webpack": "^10.0.1",
"postcss-import": "^12.0.1",
"postcss-loader": "~3.0.0",
"postcss-scss": "^3.0.2",
"tailwindcss": "^1.8.10",
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En caso que sean diferentes, es mejor cambiarlas a estas y ejecutar &lt;code&gt;npm install&lt;/code&gt; y así asegurarnos que van a funcionar como se espera.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurar Tailwind
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Iniciamos el tailwind en el proyecto, usando el siguiente comando para crear el archivo de configuración
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx tailwind init --full
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El parametro &lt;code&gt;--full&lt;/code&gt; es opción, pero esto coloca la configuración con todos los valores por defecto, esto hace más sencillo su configuración.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Añadimos Tailwind al css del proyecto. 
En el archivo &lt;code&gt;styles.scss&lt;/code&gt; añadimos las siguientes lineas
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configurar Webpack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Creamos el archivo &lt;code&gt;webpack.config.js&lt;/code&gt; con el siguiente comando
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch webpack.config.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y le ponemos el siguiente contenido&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module.exports = {
  module: {
    rules: [
      {
        test: /\.scss$/,
        loader: "postcss-loader",
        options: {
          ident: "postcss",
          syntax: "postcss-scss",
          plugins: () =&amp;gt; [
            require("postcss-import"),
            require("tailwindcss"),
            require("autoprefixer"),
          ],
        },
      },
    ],
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Actualizar el archivo &lt;code&gt;angular.json&lt;/code&gt; para utilizar el archivo de webpack que creamos
en &lt;code&gt;build&lt;/code&gt; y &lt;code&gt;serve&lt;/code&gt; sustituimos el builder por &lt;code&gt;@angular-builders/custom-webpack:browser&lt;/code&gt; y en &lt;code&gt;options&lt;/code&gt; añadimos
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"customWebpackConfig": {
  "path": "./webpack.config.js"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Entonces sería algo así&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    ...
    "projects": {
      ...
        "architect": {
          "build": {
            "builder": "@angular-builders/custom-webpack:browser",
            "options": {
              "customWebpackConfig": {
                "path": "./webpack.config.js"
              },
              ...
            },
            ...
          },
          "serve": {
            "builder": "@angular-builders/custom-webpack:dev-server",
            "options": {
              "customWebpackConfig": {
                "path": "./webpack.config.js"
              },
              ...
            },
            ...
          },
          ...
        }
      }
    },
  }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usar Tailwind!🎉🎉
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Colocamos el siguiente código en el archivo &lt;code&gt;src/app/app.component.html&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="min-h-screen bg-gray-100 py-6 flex flex-col justify-center sm:py-12"&amp;gt;
  &amp;lt;div class="relative py-3 sm:max-w-xl sm:mx-auto"&amp;gt;
    &amp;lt;div class="absolute inset-0 bg-gradient-to-r from-teal-400 to-blue-400 shadow-lg transform -skew-y-6 sm:skew-y-0 sm:-rotate-6 sm:rounded-3xl"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="relative px-4 py-10 bg-white shadow-lg sm:rounded-3xl sm:p-20"&amp;gt;
      &amp;lt;div class="max-w-md mx-auto"&amp;gt;
        &amp;lt;div&amp;gt;
          &amp;lt;img src="https://play.tailwindcss.com/img/logo.svg" class="h-7 sm:h-8" /&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class="divide-y divide-gray-200"&amp;gt;
          &amp;lt;div class="py-8 text-base leading-6 space-y-4 text-gray-700 sm:text-lg sm:leading-7"&amp;gt;
            &amp;lt;p&amp;gt;An advanced online playground for Tailwind CSS, including support for things like:&amp;lt;/p&amp;gt;
            &amp;lt;ul class="list-disc space-y-2"&amp;gt;
              &amp;lt;li class="flex items-start"&amp;gt;
                &amp;lt;span class="h-6 flex items-center sm:h-7"&amp;gt;
                  &amp;lt;svg class="flex-shrink-0 h-5 w-5 text-teal-500" viewBox="0 0 20 20" fill="currentColor"&amp;gt;
                    &amp;lt;path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
                      clip-rule="evenodd" /&amp;gt;
                  &amp;lt;/svg&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;p class="ml-2"&amp;gt;
                  Customizing your
                  &amp;lt;code class="text-sm font-bold text-gray-900"&amp;gt;tailwind.config.js&amp;lt;/code&amp;gt; file
                &amp;lt;/p&amp;gt;
              &amp;lt;/li&amp;gt;
              &amp;lt;li class="flex items-start"&amp;gt;
                &amp;lt;span class="h-6 flex items-center sm:h-7"&amp;gt;
                  &amp;lt;svg class="flex-shrink-0 h-5 w-5 text-teal-500" viewBox="0 0 20 20" fill="currentColor"&amp;gt;
                    &amp;lt;path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
                      clip-rule="evenodd" /&amp;gt;
                  &amp;lt;/svg&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;p class="ml-2"&amp;gt;
                  Extracting classes with
                  &amp;lt;code class="text-sm font-bold text-gray-900"&amp;gt;@apply&amp;lt;/code&amp;gt;
                &amp;lt;/p&amp;gt;
              &amp;lt;/li&amp;gt;
              &amp;lt;li class="flex items-start"&amp;gt;
                &amp;lt;span class="h-6 flex items-center sm:h-7"&amp;gt;
                  &amp;lt;svg class="flex-shrink-0 h-5 w-5 text-teal-500" viewBox="0 0 20 20" fill="currentColor"&amp;gt;
                    &amp;lt;path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
                      clip-rule="evenodd" /&amp;gt;
                  &amp;lt;/svg&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;p class="ml-2"&amp;gt;Code completion with instant preview&amp;lt;/p&amp;gt;
              &amp;lt;/li&amp;gt;
            &amp;lt;/ul&amp;gt;
            &amp;lt;p&amp;gt;Perfect for learning how the framework works, prototyping a new idea, or creating a demo to share online.&amp;lt;/p&amp;gt;
          &amp;lt;/div&amp;gt;
          &amp;lt;div class="pt-6 text-base leading-6 font-bold sm:text-lg sm:leading-7"&amp;gt;
            &amp;lt;p&amp;gt;Want to dig deeper into Tailwind?&amp;lt;/p&amp;gt;
            &amp;lt;p&amp;gt;
              &amp;lt;a href="https://tailwindcss.com" class="text-teal-600 hover:text-teal-700"&amp;gt; Read the docs &amp;amp;rarr; &amp;lt;/a&amp;gt;
            &amp;lt;/p&amp;gt;
          &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Iniciamos la aplicación con el siguiente comando
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ng serve -o
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y deberíamos ver nuestra aplicación funcionando y utilizando Tailwind!!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsrgovb8p2c2gpoqmlrva.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsrgovb8p2c2gpoqmlrva.png" alt="Screen Shot 2020-10-24 at 14.03.01"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para aprender más de Tailwind visita la &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;documentación oficial&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Repositorio con un ejemplo
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/adrian-ub/angular10-tailwindcss" rel="noopener noreferrer"&gt;angular10-tailwindcss&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Muchas gracias por seguir este post!&lt;/p&gt;

</description>
      <category>angular</category>
      <category>tailwindcss</category>
      <category>css</category>
      <category>html</category>
    </item>
  </channel>
</rss>
