No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Básico de Tailwind 2 y 3

Curso Básico de Tailwind 2 y 3

Ana María Díaz Solorio

Ana María Díaz Solorio

Tailwind como API para la creación de un Design System

12/29
Recursos

¿Cómo personalizar el archivo de Tailwind CSS?

Personalizar el archivo de Tailwind CSS es un paso esencial para implementar un Design System en tu proyecto. Este sistema define los estilos, tamaños, tipografías y colores que utilizarás, asegurando uniformidad y eficiencia. Al configurar Tailwind, puedes automatizar procesos repetitivos y personalizar los estilos acorde a tus necesidades. ¡Aprendamos a hacerlo!

¿Cómo automatizar la compilación de Tailwind CSS?

Antes de comenzar con la personalización de estilo, es fundamental optimizar tu flujo de trabajo configurando un comando que facilite la compilación del archivo de Tailwind. Para esto, necesitas agregar un script en tu archivo package.json:

"scripts": {
  "tailwind-build": "tailwindcss -i ./src/css/tailwind.css -o ./public/css/tailwind.css"
}

Con este script, cada vez que necesites compilar, podrás ejecutar npm run tailwind-build en lugar de escribir un largo comando, lo que te ahorrará tiempo y esfuerzo.

¿Cómo trabajar con imágenes de fondo?

Para añadir imágenes de fondo personalizadas, debes crear una carpeta para tus imágenes y referenciarlas en el archivo de configuración de Tailwind. Por ejemplo:

extend: {
  backgroundImage: {
    'san-francisco': "url('../images/san-francisco.jpg')",
  }
}

Organiza tus imágenes en una carpeta de fácil acceso y utiliza la propiedad backgroundImage para asignar rutas relativas, permitiendo un acceso más rápido y limpio al referenciar estas imágenes en tu HTML.

¿Cómo personalizar la paleta de colores?

Crear una paleta de colores personalizada te permite darle una identidad única a tu proyecto. Para empezar, define los colores en el archivo de configuración de Tailwind, aprovecha tanto los colores nativos como los personalizados importados de tu Design System:

extend: {
  colors: {
    primary: '#1e40af',
    secondary: '#64748b',
    tertiary: '#38bdf8',
  }
}

Cada color recibe un nombre que puedes usar como clase CSS para un background o color de texto, asegurando consistencia visual.

¿Cómo integrar Google Fonts?

Agregar una fuente personalizada como Montserrat mejora la estética del proyecto. Para incluirla, primero busca la fuente en Google Fonts, selecciona la variante que necesitas, y copia el enlace en tu archivo HTML:

<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400&display=swap" rel="stylesheet">

Luego, en tu archivo de configuración de Tailwind, declara la familia de fuentes:

extend: {
  fontFamily: {
    montserrat: ['Montserrat', 'sans-serif'],
  }
}

Al hacer el build nuevamente, esta clase permitirá utilizar la fuente Montserrat directamente en tus estilos.

¿Cómo verificar la implementación?

Después de realizar todos los ajustes, es importante verificar que los cambios se reflejen adecuadamente. Ejecuta:

npm run tailwind-build

Revisa que los colores, fuentes e imágenes estén aplicados correctamente en tu HTML. Puedes usar herramientas de inspección como las de desarrollador del navegador para asegurarte que la personalización está en su lugar y reflejada en la página.

Conclusión

Personalizar el archivo de configuración de Tailwind te permite diseñar de manera eficiente, creando una cohesión visual que cumple tus expectativas creativas y técnicas. Continúa explorando posibilidades y enriqueciéndo tus habilidades con Tailwind para crear proyectos más efectivos y personalizados. ¡Sigue aprendiendo y culturalízate en la personalización de tus proyectos CSS!

Aportes 42

Preguntas 15

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Copy & Paste!


			  'sanFrancisco': "url('../img/sanFrancisco.jpg')",
			  'sanFranciscoDesktop': "url('../img/sanFranciscoDesktop.jpg')",
			  'yosemite': "url('../img/yosemite.jpg')",
			  'LA': "url('../img/LA.jpg')",
			  'seattle': "url('../img/seattle.jpg')",
			  'new_york': "url('../img/new_york.jpg')",
			  'norway': "url('../img/norway.jpg')",
			  'sydney': "url('../img/sydney.jpg')",
			  'miami': "url('../img/miami.jpg')",
			  'switzerland': "url('../img/switzerland.jpg')",
			  'bali': "url('../img/bali.jpg')",
			  'norway': "url('../img/norway.jpg')",
			  'chicago': "url('../img/chicago.jpg')",
			  'europe': "url('../img/europe.jpg')",
			  'iceland': "url('../img/iceland.jpg')",

Recuerden añadir los colores del tema en la propiedad de textColor
De lo contrario cuando intenten darle color a los textos solo reconocerá primary, secondary, terciary…

textColor: theme => ({
			...theme('colors'),
			primary: '#CC2D4A',
			secondary: '#8FA206',
			terciary: '#61AEC9',
		}),

😎 Les dejo mi tailwind.config.js en la versión 3.2.4. Para que copien y peguen.

/** @type {import('tailwindcss').Config} */
module.exports = {
	content: ["./src/**/*.{html,js}", "./public/*.{html,js}"],
	theme: {
		fontFamily: {
			Montserrat: ['"Montserrat"', "sans-serif"],
		},
		colors: {
			primary: "#CC2D4A",
			secondary: "#8FA206",
			tertiary: "#61AEC9",
		},
		extend: {
			sanFrancisco: "url('../img/sanFrancisco.jpg')",
			sanFranciscoDesktop: "url('../img/sanFranciscoDesktop.jpg')",
			yosemite: "url('../img/yosemite.jpg')",
			LA: "url('../img/LA.jpg')",
			seattle: "url('../img/seattle.jpg')",
			new_york: "url('../img/new_york.jpg')",
			norway: "url('../img/norway.jpg')",
			sydney: "url('../img/sydney.jpg')",
			miami: "url('../img/miami.jpg')",
			switzerland: "url('../img/switzerland.jpg')",
			bali: "url('../img/bali.jpg')",
			norway: "url('../img/norway.jpg')",
			chicago: "url('../img/chicago.jpg')",
			europe: "url('../img/europe.jpg')",
			iceland: "url('../img/iceland.jpg')",
		},
	},
	plugins: [
		require("@tailwindcss/forms"),
		require("@tailwindcss/typography"),
		require("@tailwindcss/aspect-ratio"),
	],
};

Link

Dejo las imágenes en un repositorio para que sea más fácil la descarga

Un design system es el archivo donde se definen todos los estilos, tamaños, tipografías y colores que se usarán en el proyecto.

Se crea el comando en package.json para hacer build: "tw:build": "tailwind -i ./src/css/tailwind.css -o ./public/css/tailwind.css --watch". Nota que al final se usa --watch para no tener que escribir el comando una y otra vez cada vez que se modifique el archivo de configuración, únicamente basta con guardar los cambios y por sí mismo hará el build.

Se agregan los estilos del proyecto al archivo de configuración tailwind.config.js:

module.exports = {
  content: ["./public/index.html", "./src/**/*.{html,js}"],
  theme: {
    extend: {
      backgroundImage: {
        sanFrancisco: "url('../img/sanFrancisco.jpg')",
        sanFranciscoDesktop: "url('../img/sanFranciscoDesktop.jpg')",
        yosemite: "url('../img/yosemite.jpg')",
        LA: "url('../img/LA.jpg')",
        seattle: "url('../img/seattle.jpg')",
        new_york: "url('../img/new_york.jpg')",
        norway: "url('../img/norway.jpg')",
        sydney: "url('../img/sydney.jpg')",
        miami: "url('../img/miami.jpg')",
        switzerland: "url('../img/switzerland.jpg')",
        bali: "url('../img/bali.jpg')",
        norway: "url('../img/norway.jpg')",
        chicago: "url('../img/chicago.jpg')",
        europe: "url('../img/europe.jpg')",
        iceland: "url('../img/iceland.jpg')",
      },
      backgroundColor: (theme) => ({
        ...theme("colors"),
        primary: "#CC2D4A",
        secondary: "#8FA206",
        terciary: "#61AEC9",
      }),
      textColor: {
        primary: "#CC2D4A",
        secondary: "#8FA206",
        terciary: "#61AEC9",
      },
      fontFamily: {
        Montserrat: ["Montserrat", "sans-serif"],
      },
    },
  },
  plugins: [],
};

Se tiene que hacer un build cada vez que se edite el archivo de configuración.

No es necesario estar haciendo el npm run tw:build cada que se hace alguna modificación en el archivo de configuración de Tailwind, ya que el script termina con el flag --watch, y este sirve para estar viendo u observando a cada momento los cambios que se generen en la configuración y aplicarlos sin necesidad de volver a hacer un build.

12. Tailwind como API para la creación de un Design System v3.3.2

Un design system es el archivo donde se definen todos los estilos, tamaños, tipografías y colores que se usarán en el proyecto.
.

Automatizar compilación del archivo de tailwind: 👈👀

En lugar de correr el comando npx tailwindcss -i ./src/css/tailwind.css -o ./public/css/tailwind.css --watch para poder ver los cambios en tu proyecto, podemos agregar un script en nuestro archivo package.json.

{
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "",
    "tw:build": "tailwindcss -i ./src/css/tailwind.css -o ./public/css/tailwind.css --watch" 👈👀
  },
  "autor": "",
  "license": "ISC",
  "devDependencies": {
    "tailwindcss": "^3.3.2" 👈👀
  }
}

Personalización

Agregamos nuestras imágenes en la carpeta public:

╰─ tree -L 3
.
├── node_modules
├── package-lock.json
├── package.json
├── public
│   ├── css
│   │   └── tailwind.css
│   ├── img 👈👀
│   │   ├── LA.jpg
│   │   ├── bali.jpg
│   │   ├── chicago.jpg
│   │   ├── europe.jpg
│   │   ├── iceland.jpg
│   │   ├── miami.jpg
│   │   ├── new_york.jpg
│   │   ├── norway.jpg
│   │   ├── sanFrancisco.jpg
│   │   ├── sanFranciscoDesktop.jpg
│   │   ├── seattle.jpg
│   │   ├── switzerland.jpg
│   │   ├── sydney.jpg
│   │   └── yosemite.jpg
│   └── index.html
├── src
│   └── css
│       └── tailwind.css
└── tailwind.config.js

Esta configuración permite usar todos los colores predeterminados por tailwind y los colores que agregamos de manera personalizada. También agregamos la tipografía a usar en el proyecto.

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ['./public/index.html', './src/**/*.{html,js}'],
  theme: {
    fontFamily: { 👈👀
      'Montserrat': ["Montserrat", "sans-serif"]
    },
    backgroundColor: theme => ({ 👈👀
      ...theme('colors'),
      'primary': '#CC2D4A',
      'secondary': '#8FA206',
      'tertiary': '#61AEC9',
    }),
    textColor: theme => ({ 👈👀
      ...theme('colors'),
      'primary': '#CC2D4A',
      'secondary': '#8FA206',
      'tertiary': '#61AEC9',
    }),
    /*
    Esto funciona pero no nos permite usar los colores de Tailwind 
	  colors: {
      primary: '#CC2D4A',
      secondary: "#8FA206",
      tertiary: "#61AEC9",
    }, 
    textColor: {
      primary: '#CC2D4A',
      secondary: "#8FA206",
      tertiary: "#61AEC9",
    },*/
    extend: {
      backgroundImage: { 👈👀
        'sanFrancisco': "url('../img/sanFrancisco.jpg')",
        'sanFranciscoDesktop': "url('../img/sanFranciscoDesktop.jpg')",
        'yosemite': "url('../img/yosemite.jpg')",
        'LA': "url('../img/LA.jpg')",
        'seattle': "url('../img/seattle.jpg')",
        'new_york': "url('../img/new_york.jpg')",
        norway: "url('../img/norway.jpg')",
        'sydney': "url('../img/sydney.jpg')",
        'miami': "url('../img/miami.jpg')",
        'switzerland': "url('../img/switzerland.jpg')",
        'bali': "url('../img/bali.jpg')",
        'chicago': "url('../img/chicago.jpg')",
        'europe': "url('../img/europe.jpg')",
        'iceland': "url('../img/iceland.jpg')",
      },
    }
  },
  plugins: [],
}

📌 Nota para la clase 15: Tener cuidado con la ruta donde están ubicadas las imágenes. Ejemplo: Esta no es una ruta correcta para Tailwind 'sanFrancisco': "url('./public/img/sanFrancisco.png')" lo correcto es 'sanFrancisco': "url('../img/sanFrancisco.jpg')".
.

Ejecutando los cambios

Ahora ya podemos hacer cambios en nuestro index.html. No olvidar agregar los enlaces de la tipografía.

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="../public/css/tailwind.css"> 
    <link rel="preconnect" href="https://fonts.googleapis.com"> 👈👀
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 👈👀
    <link href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" rel="stylesheet"> 👈👀
    <title>Trips!!!</title>
</head>

<body>
    <section class="w-screen h-screen bg-gray-950 grid grid-cols-3 grid-rows-3 gap-4 p-4">
        <div class="bg-indigo-950 col-span-3 font-Montserrat text-xl text-emerald-400">Hello World</div>
        <div class="bg-secondary row-start-2 row-end-4 bg-new_york"></div>
        <div class="bg-tertiary col-start-2 col-end-4"></div>
        <div class="bg-primary col-start-2 col-end-4"></div>
    </section>
</body>
</html>

En la terminal: npm run tw:build para visualizar los cambios y usar ctrl + c para matar el proceso.

index.html Open with live server…

Notas, resumen, apuntes

agreguen el watch para que compilen los estilos
"tw:build": “tailwind -i ./src/css/tailwind.css -o ./public/css/tailwind.css --watch”

Si quieren ver toda la configuración de tailwind por defecto pueden ejecutar el siguiente comando:

npx tailwindcss init tailwind.full.config.js -f

También les dejo mi archivo de configuración de tailwind:

module.exports = {
  content: ['./public/**/*.{html,js}'],
  theme: {
    extend: {
      backgroundColor: {
        primary: '#cc2d4b',
        secondary: '#8fa206',
        terciary: '#61AEC9',
      },
      textColor: {
        primary: '#cc2d4b',
        secondary: '#8fa206',
        terciary: '#61AEC9',
      },
      backgroundImage: {
        sanFrancisco: "url('../img/sanFrancisco.jpg')",
        sanFranciscoDesktop: "url('../img/sanFranciscoDesktop.jpg')",
        yosemite: "url('../img/yosemite.jpg')",
        LA: "url('../img/LA.jpg')",
        seattle: "url('../img/seattle.jpg')",
        new_york: "url('../img/new_york.jpg')",
        norway: "url('../img/norway.jpg')",
        sydney: "url('../img/sydney.jpg')",
        miami: "url('../img/miami.jpg')",
        switzerland: "url('../img/switzerland.jpg')",
        bali: "url('../img/bali.jpg')",
        chicago: "url('../img/chicago.jpg')",
        europe: "url('../img/europe.jpg')",
        iceland: "url('../img/iceland.jpg')",
      },
      fontFamily: {
        Montserrat: ['Montserrat', 'sans-serif'],
      },
    },
  },
  plugins: [],
};

Para la version 3.0 me fue mejor con este script:

"scripts": {
    "minify": "tailwindcss -i ./src/css/tailwind.css -o ./public/css/tailwind.css --minify --watch"
  },

Yo lo hice así, apoyado por los comentarios de Oscar Rabadan y Alejandro Martinez Rivera

theme: {
    colors:{
      "primary": "#CC2D4A",
      "secondary": "#8FA206",
      "tertiary": "#61AEC9",
      },
    fontFamily: { 
        Montserrat: ["Montserrat", "sans-serif"],
      },
    extend: {
      backgroundImage: {
        'sanFrancisco': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/sanFrancisco.jpg')",
			  'sanFranciscoDesktop': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/sanFranciscoDesktop.jpg')",
			  'yosemite': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/yosemite.jpg')",
			  'LA': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/LA.jpg')",
			  'seattle': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/seattle.jpg')",
			  'new_york': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/new_york.jpg')",
			  'norway': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/norway.jpg')",
			  'sydney': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/sydney.jpg')",
			  'miami': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/miami.jpg')",
			  'switzerland': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/switzerland.jpg')",
			  'bali': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/bali.jpg')",
			  'chicago': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/chicago.jpg')",
			  'europe': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/europe.jpg')",
			  'iceland': "url('https://raw.githubusercontent.com/platzi/PlatziTravel/main/public/img/iceland.jpg')",
      }
    },
  },

Les dejo mi package.json versión 3.2.7 a 02/03/2023. Es una versión para un proyecto propio por tanto, el nombre del proyecto y del autor cambia pero por lo demás, todo está igual.

{
  "name": "ovisclub",
  "version": "1.0.0",
  "description": "own proyect where you can train with anyone anywhere and its name is ovisclub",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "tw:build": "tailwind -i ./src/css/tailwind.css -o ./public/css/tailwind.css --watch",
    "build": "npx tailwindcss -i ./src/css/tailwind.css -o ./public/css/tailwind.css --watch",
    "tw:dev": "tailwindcss -o tailwind.css --watch"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/MrJark/tailwind-proyect.git"
  },
  "author": "MrJark",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/MrJark/tailwind-proyect/issues"
  },
  "homepage": "https://github.com/MrJark/tailwind-proyect#readme",
  "devDependencies": {
    "autoprefixer": "^10.4.13",
    "postcss": "^8.4.21",
    "tailwindcss": "^3.2.7"
  }
}

También os dejo la configuración de tailwind.config.js por si también puede ser de ayuda

/** @type {import('tailwindcss').Config} */

module.exports = {
  content: ["./src/**/*.{html,js}", "./public/*.{html,js}"],  
  theme: {
    fontFamily: {
      K2D: ['K2D', 'sans-serif'],
    },
    textColor: {
      'primary': '#09AEB3',
      'secondary': '#FF01B0',
      'terciary': '#FFDC19',
      'black': '#0B0A0B',
      'white': '#F9F9F9',
    },
    backgroundColor: theme => ({
      ...theme('colors'),
      'primary': '#09AEB3',
      'secondary': '#FF01B0',
      'terciary': '#FFDC19',
      'black': '#0B0A0B',
      'white': '#F9F9F9',
      'background-dark': '#191D1D',
      'background-light': '#F3FFFF',
    }),
    extend: {
        'madrid': "url('/public/img/madrid.jpeg')",
        'barcelona': "url('/public/img/barcelona.jpeg')",
        'galicia': "url('/public/img/galicia.jpeg')",
        'alicante': "url('/public/img/alicante.jpeg')",
        'murcia': "url('/public/img/murcia.jpeg')",
        'sevilla': "url('/public/img/sevilla.jpeg')",
        'valencia': "url('/public/img/valencia.jpeg')",    
    },
  },
  plugins: [
  ],
};

Para descargar el .zip de las imágenes desde el repositorio de la profe Ana.
Link
💚💚💚

chale, no me funciona, no jalan los colores personalizados.

Deja muchas cosas al aires, ejemplo, no indica ni donde están las imágenes. So sad!!!
Un pequeño aporte :) ![](https://static.platzi.com/media/user_upload/Tailwind%20como%20API%20para%20la%20creaci%C3%B3n%20de%20un%20Design%20System-de205bd9-b099-45af-9678-dedd9820272a.jpg)

2023…

  1. Recuerda agregar los comandos para instalar los plugins…
  • npm install -D @tailwindcss/forms
  • npm install -D @tailwindcss/typography
  • npm install -D @tailwindcss/aspect-ratio
  1. Recuerda en cambio de version en el archivo tailwind.conf.js
/** @type {import('tailwindcss').Config} */
module.exports = {
	content: ["./src/**/*.{html,js}", "./public/*.{html,js}"],
	theme: {
		fontFamily: {
			Montserrat: ['"Montserrat"', "sans-serif"],
		},
		colors: {
			primary: "#CC2D4A",
			secondary: "#8FA206",
			tertiary: "#61AEC9",
		},
		extend: {
			sanFrancisco: "url('../img/sanFrancisco.jpg')",
			sanFranciscoDesktop: "url('../img/sanFranciscoDesktop.jpg')",
			yosemite: "url('../img/yosemite.jpg')",
			LA: "url('../img/LA.jpg')",
			seattle: "url('../img/seattle.jpg')",
			new_york: "url('../img/new_york.jpg')",
			norway: "url('../img/norway.jpg')",
			sydney: "url('../img/sydney.jpg')",
			miami: "url('../img/miami.jpg')",
			switzerland: "url('../img/switzerland.jpg')",
			bali: "url('../img/bali.jpg')",
			norway: "url('../img/norway.jpg')",
			chicago: "url('../img/chicago.jpg')",
			europe: "url('../img/europe.jpg')",
			iceland: "url('../img/iceland.jpg')",
		},
	},
	plugins: [
		require("@tailwindcss/forms"),
		require("@tailwindcss/typography"),
		require("@tailwindcss/aspect-ratio"),
	],
};

  1. ejecutar en la consola npm run tw:build

-i hace referencia a input (el archivo en src) y -o referencia a (output)

El siguiente fragmento de codigo:
backgronundColor: theme =>({
…theme(‘colors’),
primary:’#5B21B6’,
secondary:’#F9FAFB’,
tertiary: ‘#111827’,
}),
al compilar el config.js no tomaba mis colores, lo cambie por este:
aqui es donde estoy cerrando las imagenes },
colors:{
primary:’#5B21B6’,
secondary:’#F9FAFB’,
tertiary: ‘#111827’,
},
textcolor:{
primary:’#5B21B6’,
secondary:’#F9FAFB’,
tertiary: ‘#111827’
}

Si olvidaron descargar las imágenes desde un comienzo como yo les comparto de nuevo el github y no tengan que ir a buscar.

https://github.com/platzi/PlatziTravel

me quede atorado en esta parte ya que no entiendo su explicacion:( recomiendo este video
https://www.youtube.com/watch?v=a9USp91Yntc&t=288s

al parecer el npm run tw:build ya no es necesario en la version 3.0

Recordar agregar --watch en:

    "tw:build": "tailwind -i ./src/css/tailwind.css -o ./public/css/tailwind.css --watch"

para que tailwind este en escucha constante, y guardar dos veces en caso de usar vscode para ver los cambios en “tiempo real”.

Si como yo estas utilizando una version mas nueva de tailwind y al hacer npm run tw:build te da error lee esta documentación para corregir tu archivo de configuración:
https://tailwindcss.com/docs/upgrade-guide#configure-content-sources

Hola, Les dejo un link con todas las imagénes en un archivo comprimido

Images

npm run tw:build

Para los que están usando Tailwind v4: ```js /* stylelint-disable-next-line import-notation */ @import "tailwindcss"; @theme { /* Images */ --img-san-francisco: url("/public/img/sanFrancisco.webp"); --img-san-francisco-desktop: url("/public/img/sanFranciscoDesktop.webp"); --img-yosemite: url("/public/img/yosemite.webp"); --img-la: url("/public/img/LA.webp"); --img-seattle: url("/public/img/seattle.webp"); --img-new-york: url("/public/img/new_york.webp"); --img-norway: url("/public/img/norway.webp"); --img-sydney: url("/public/img/sydney.webp"); --img-miami: url("/public/img/miami.webp"); --img-switzerland: url("/public/img/switzerland.webp"); --img-bali: url("/public/img/bali.webp"); --img-chicago: url("/public/img/chicago.webp"); --img-europe: url("/public/img/europe.webp"); --img-iceland: url("/public/img/iceland.webp"); /* Colors */ --color-primary: oklch(55.81% 0.1934 16.64); --color-secondary: oklch(67.38% 0.1553 117.82); --color-tertiary: oklch(71.15% 0.0856 222.97); /* Font */ --font-fallback: "Adjusted Arial Fallback", system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", "Noto Sans", helvetica, arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; --font-primary: "Montserrat", var(--font-fallback); } ```
en versiones mas recientes (tailwind 4) como se podria hacer no he logrado entender la configuracion.
Veo que "dimos de alta" nuestra paleta de colores de manera especifica para el background y para el texto (de manera individual). Pero no era mejor simplemente agregar el color tal cual? para poder utilizarlo en cualquier parte del proyecto? De esta manera evitar el DRY (Don't Repeat Yourselft)
Aqui tambien generé un script para automatizar la escritura de las imagenes y NO tenerlas que hacer una por una. const fs = require('fs');const path = require('path'); const imgDir = path.join(\_\_dirname, 'public', 'img');const imgFiles = fs.readdirSync(imgDir); const bgImages = imgFiles.reduce((*acc*, *file*) => {  const fileName = path.parse(*file*).name;  *acc*\[fileName] = `url('/public/img/${*file*}')`;  return *acc*;}, {}); const config = `module.exports = {  content: \[    "./index.html",    "./src/\*\*/\*.{html,js}"  ],  theme: {    extend: {      backgroundImage: ${JSON.stringify(bgImages, null, 2)}    },    corePlugins: {      aspectRatio: false,    },  },  plugins: \[    require('@tailwindcss/forms'),    require('@tailwindcss/typography'),    require('@tailwindcss/aspect-ratio'),  ],}`; fs.writeFileSync('tailwind.config.js', config, 'utf-8');console.log('Tailwind config file generated successfully.'); Paso 1: Crear un archivo .js puedes usar el mismo nombre que yo `generete-tailwind-config.js` (ojo debe estar en la raiz es decir ser un archivo hermano del .json) Paso 2: copia el script ```js const fs = require('fs'); const path = require('path'); const imgDir = path.join(__dirname, 'public', 'img'); const imgFiles = fs.readdirSync(imgDir); const bgImages = imgFiles.reduce((acc, file) => { const fileName = path.parse(file).name; acc[fileName] = `url('/public/img/${file}')`; return acc; }, {}); const config = ` module.exports = { content: [ "./index.html", "./src/**/*.{html,js}" ], theme: { extend: { backgroundImage: ${JSON.stringify(bgImages, null, 2)} }, corePlugins: { aspectRatio: false, }, }, plugins: [ require('@tailwindcss/forms'), require('@tailwindcss/typography'), require('@tailwindcss/aspect-ratio'), ], } `; fs.writeFileSync('tailwind.config.js', config, 'utf-8'); console.log('Tailwind config file generated successfully.'); ```Paso 3: ejecuta en tu terminal `node generate-tailwind.config.js` Listo deberias ver todo escrito
Hola! si quieren solo traer la carpeta de imagenes a su repositorio personal deben seguir estos pasos: 1. **Configurar Sparse checkout:** `git sparse-checkout init --cone` esto va a habilitar el sparse en el repositorio 2. **Especificar que es la carpeta img** `git sparse-checkout set public/img` Esto indica que vamos a hacer focus en la carpeta public de un repositorio 3. **Luego añadimos la ruta del repositorio** `git remote add platzi `[`https://github.com/platzi/PlatziTravel.git`](https://github.com/platzi/PlatziTravel.git) 4. **Obtener unicamente la carpeta img** `git fetch platzi` `git checkout platzi/main -- public/img` 5. **Desactivar sparse** Solo si ya no quieres que continue el sparse `git sparse-checkout disaple`
<https://play.tailwindcss.com/lyPdCK1X5k?size=738x747> ![](https://static.platzi.com/media/user_upload/imagen-dff14b67-5e2d-412a-bd88-aa3e0c780221.jpg)
no sé por qué tanto enrosque? ![](https://static.platzi.com/media/user_upload/imagen-497b0342-46ff-4e91-b2b5-63a412225c2c.jpg) <https://play.tailwindcss.com/mTvw6IplID?size=638x747&file=config>
Me resultó que: ![](https://static.platzi.com/media/user_upload/imagen-e518bb6b-bc80-4ec4-a476-7ee267837cad.jpg) <https://play.tailwindcss.com/s27QXfvWPI?size=654x747&file=config> Además: ![](https://static.platzi.com/media/user_upload/imagen-6480f798-063f-4335-b216-67c203b8b521.jpg)
Cuestión que con Sass ya estaría terminado el proyecto.
No me ha gustado el nuevo diseño imitición de X, tanto en UI como en UX. Al menos antes podía volver al home clásico.
Yo les recomendaria, tal y como recomienda la misma documentacion de tawild que usen VITE, esto ayuda por varias cosas entre ellas: 1.-Vite tiene un propio local server donde corre el archivo html con todo y las utility classes 2.- Si tiene <u>mal escrita una clase o simplemten algo esta mal escrito en el codigo </u> en la ventana del navegadro te indicará el error 3.- Ya no necesitaras de establecer un archivo de salida y uno de entrada, <u>solo el de salida </u> pues vite compilara todo al momento. Para crear un proyecto con Vite dejo aqui los pasos: ```js Como inicializar Tailwind con vite (en un futuro con VUE) OJO en este momento se esta instalando solo para usar html planos, no un framework, si quisiera eso tendriamos que ir a la documentacion de vue , en get started / frameworks 1.- Inicialiar el proyecto con --> npm init -y (crea el package.json) 2.- en oackage.json, el objeto scripts se cambia "test" por "dev" y se llama a la herramienta "vite" : "scripts": { "dev": "vite" }, 3.- Se instalan las dependencias(por eso la -D) con el comando --> npm install -D tailwindcss postcss vite autoprefixer vite (se vera reflejado en package.json) 4.- Inicializar nuestro archivo de configuracion de tailwind y generar el archivo de config de postcss --> npx tailwindcss init -p 6.-Crear un archivo de entrada *se crea primero una carpeta con nombre random (src) (ahi ira el archivo css) *Se crea un archivo con un nombre randon (de preferencias css) con extension .css -Se agregan las directivas de tailwind: @tailwind base; @tailwind components; @tailwind utilities; *agregar al html , en header en el link el archivo .css de entrada (recuerda poner la carpeta) OJO en este caso, no se necesito de un archivo de entrada y de salida porque vite, los esta reemplazando en tiempo de ejecucion las clases que estaran en los archivos .html 7.- Ahora se ejecuta el proyecto con vite con el comando --> npm run dev 8.- En el archivo de configuracion de tailwind, se configura en donde tailwind debe buscar las utilitie clases que deben ser compiladas, esto en "content" de la siguiente manera: content:[ "./*.html" ] Esto indica que todos los archivos html seran leidos por tailwinf y compilados ```Como inicializar Tailwind con vite (en un futuro con VUE) OJO en este momento se esta instalando solo para usar html planos, no un framework, si quisiera eso tendriamos que ir a la documentacion de vue , en get started / frameworks 1.- Inicialiar el proyecto con --> npm init -y (crea el package.json) 2.- en oackage.json, el objeto scripts se cambia "test" por "dev" y se llama a la herramienta "vite" : "scripts": { "dev": "vite" }, 3.- Se instalan las dependencias(por eso la -D) con el comando --> npm install -D tailwindcss postcss vite autoprefixer vite (se vera reflejado en package.json) 4.- Inicializar nuestro archivo de configuracion de tailwind y generar el archivo de config de postcss --> npx tailwindcss init -p 6.-Crear un archivo de entrada \*se crea primero una carpeta con nombre random (src) (ahi ira el archivo css) \*Se crea un archivo con un nombre randon (de preferencias css) con extension .css -Se agregan las directivas de tailwind: @tailwind base; @tailwind components; @tailwind utilities; \*agregar al html , en header en el link el archivo .css de entrada (recuerda poner la carpeta) OJO en este caso, no se necesito de un archivo de entrada y de salida porque vite, los esta reemplazando en tiempo de ejecucion las clases que estaran en los archivos .html 7.- Ahora se ejecuta el proyecto con vite con el comando --> npm run dev 8.- En el archivo de configuracion de tailwind, se configura en donde tailwind debe buscar las utilitie clases que deben ser compiladas, esto en "content" de la siguiente manera: content:\[ "./\*.html" ] Esto indica que todos los archivos html seran leidos por tailwinf y compilados

AYUDAAA

Si les interesa saber como usar cualquier tipo de fuente descargada con tailwind acá dejo un post que hice en stack overflow en el cual explico cómo lo hice. Por ahora me sigue funcionando jeje:
Post

Muy buena a API de Tailwind!

me niego a aceptar que no sean las mismas!

Estos son los comando que utilice para abreviarlo al momento de ejecutarlos. Watch funciona con la nueva actualización de TAILWIND aplicando “jit mode” que es para ver los cambios desde el vsc y Minify que es para minificar el código de tailwind.

“watch”: “tailwindcss -i src/tailwind.css -o style.css --watch”,

"minify": "tailwindcss -i src/tailwind.css -o style.css --minify"