Un generador de contraseñas moderno y seguro con interfaz elegante desarrollado con TypeScript y Tailwind CSS v4.
- 🎯 Generación personalizable: Controla longitud y tipos de caracteres
- 📊 Indicador de fortaleza: Sistema visual de 5 niveles de seguridad
- 🌓 Modo oscuro/claro: Detección automática de preferencias del sistema
- 👁️ Toggle de visibilidad: Muestra/oculta contraseña fácilmente
- 🎨 Interfaz moderna: Diseño glassmorphism con efectos de blur
- 📱 Completamente responsiva: Optimizada para todos los dispositivos
- ⚡ Sin dependencias: Código vanilla TypeScript
- 🎭 Animaciones fluidas: Efectos de fondo dinámicos y transiciones suaves
| Tecnología | Versión | Propósito |
|---|---|---|
| HTML5 | - | Estructura semántica |
| CSS3 | - | Estilos base y animaciones |
| Tailwind CSS | v4 | Framework de utilidades CSS |
| TypeScript | - | Tipado estático y modularidad |
@midudev/tailwind-animationstailwindcss-motiontailwindcss-animated
- Node.js (v16 o superior)
- npm o yarn
-
Clona el repositorio
git clone https://github.com/JoaquinCalligaro/Password-Generator.git cd Password-Generator -
Instala las dependencias
npm install # o yarn install -
Compila TypeScript y Tailwind
npm run build # o yarn build -
Inicia el servidor de desarrollo
npm run dev # o yarn dev -
Abre tu navegador
http://localhost:3000
Password-Generator/
├── 📁 assets/
│ └── 📁 icons/
│ ├── favicon.png
│ ├── eye-open.png
│ └── closed-eye.png
├── 📁 dist/
│ ├── output.css
│ ├── darkMode.js
│ └── 📁 modules/
├── 📁 src/
│ ├── input.css
│ └── 📁 modules/
│ ├── darkMode.ts
│ ├── generatePassword.ts
│ ├── strengthBar.ts
│ └── togglePassword.ts
├── index.html
├── package.json
├── tailwind.config.js
└── tsconfig.json
- Ajusta la longitud usando el slider (1-30 caracteres)
- Selecciona los tipos de caracteres deseados:
- ✅ Mayúsculas (A-Z)
- ✅ Minúsculas (a-z)
- ✅ Números (0-9)
- ✅ Símbolos (!@#$%^&*)
- La contraseña se genera automáticamente
El sistema evalúa la fortaleza basándose en:
| Nivel | Barras | Color | Criterios |
|---|---|---|---|
| Muy Débil | 1 | 🔴 Rojo | < 8 caracteres |
| Débil | 2 | 🟠 Naranja | 8-10 caracteres |
| Media | 3 | 🟠 Naranja | 12-15 caracteres + 3 tipos |
| Fuerte | 4 | 🟢 Verde claro | 16-20 caracteres + 4 tipos |
| Muy Fuerte | 5 | 🟢 Verde oscuro | >20 caracteres + 4 tipos |
Edita las variables en src/input.css:
/* Fondo modo claro */
.area {
background: linear-gradient(274deg, #cbd04c, #fc3b76, #4f29dc, #8a35d0);
}
/* Fondo modo oscuro */
.dark .area {
background: linear-gradient(130deg, #06002b, #0b0053, #230036, #360000);
}Modifica src/modules/strengthBar.ts:
private config: StrengthConfig = {
weak: { color: 'bg-red-500', threshold: 25 },
medium: { color: 'bg-orange-500', threshold: 50 },
strong: { color: 'bg-green-400', threshold: 75 },
veryStrong: { color: 'bg-green-600', threshold: 100 }
};Gestiona el sistema de temas con:
- Detección automática de preferencias del sistema
- Persistencia en localStorage
- Prevención de parpadeos durante la carga
Clase principal que maneja:
- Generación de contraseñas seguras
- Sincronización con la interfaz
- Validación de parámetros
Evalúa y visualiza la fortaleza:
- Algoritmo de puntuación inteligente
- Actualización en tiempo real
- Feedback visual progresivo
Controla la visibilidad:
- Alternancia entre text/password
- Cambio de iconos dinámico
- Accesibilidad mejorada
¡Las contribuciones son bienvenidas! Por favor:
- Haz fork del proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
- Utiliza TypeScript para nuevas funcionalidades
- Mantén la consistencia con el estilo de código existente
- Agrega tests para nuevas características
- Actualiza la documentación cuando sea necesario
# Desarrollo
npm run dev # Inicia servidor de desarrollo
npm run watch # Observa cambios en TypeScript
# Construcción
npm run build # Compila para producción
npm run build:css # Solo compila Tailwind CSS
npm run build:ts # Solo compila TypeScript
# Calidad de código
npm run lint # Ejecuta ESLint
npm run format # Formatea código con Prettier
npm run type-check # Verifica tipos de TypeScript- Utiliza
Math.random()para la selección de caracteres - No almacena contraseñas generadas
- Funciona completamente del lado del cliente
- Para uso empresarial, considera implementar
crypto.getRandomValues() - Las contraseñas no se envían a ningún servidor
- Recomendamos longitudes mínimas de 12 caracteres
Joaquín Calligaro
- GitHub: @JoaquinCalligaro
- LinkedIn: joaquincalligaro
- Instagram: @joaquin.caligaro
- Tailwind CSS por el excelente framework
- Midudev por los plugins de animaciones
- Heroicons por los iconos utilizados
- La comunidad de desarrolladores por la inspiración
⭐ ¡Si te gusta este proyecto, dale una estrella! ⭐



