| name | tailwind |
| description | Tailwind CSS with PostCSS, security patterns and visual testing |
| license | MIT |
| compatibility | opencode |
| metadata | {"type":"styling","category":"css-framework"} |
SKILL: Tailwind CSS
🛠 Tech Stack
- Framework: Tailwind CSS
- Post-processor: PostCSS, Autoprefixer
- Build: Vite / Webpack (con PostCSS)
⚡ Arquitectura & Logs
- Carpetas: Archivos de configuración en la raíz (e.g.,
tailwind.config.js, postcss.config.js). CSS base importado en src/assets/main.css o similar.
- Log: Los errores de construcción de CSS o los mensajes de optimización de Tailwind JIT aparecerán en los logs del proceso de
build.
✅ Patrones (Snippets Reales)
A. TDD Workflow (Visual Regression Testing Concept)
Dado que Tailwind es un framework CSS, el TDD directo se aplica más a los componentes que a los estilos en sí. El equivalente a "test en rojo" para CSS es un cambio visual inesperado.
it('should display the primary button correctly', () => {
cy.visit('/components/button-primary');
cy.get('.btn-primary').should('be.visible').percySnapshot('Primary Button State');
});
B. Responsive Tablet-First
<div class="grid grid-cols-2 sm:grid-cols-4 md:grid-cols-6 lg:grid-cols-8 gap-2">
<button class="min-h-[44px] min-w-[44px] p-2 rounded-lg
focus-visible:ring-2 focus-visible:ring-indigo-500 focus-visible:ring-offset-2">
</button>
</div>
C. Secure UI Patterns (Avoiding Injection)
La seguridad en CSS se enfoca más en prevenir inyecciones a través de contenido dinámico.
<div
class="prose"
v-html="sanitizedUserContent"
></div>
<script>
import DOMPurify from 'dompurify';
export default {
data() {
return {
rawUserContent: '<p class="text-red-500">Contenido malicioso</p><img src="x" onerror="alert(\'XSS\')">',
};
},
computed: {
sanitizedUserContent() {
return DOMPurify.sanitize(this.rawUserContent, { USE_PROFILES: { html: true } });
},
},
};
</script>