원클릭으로
tailwind
Tailwind CSS with PostCSS, security patterns and visual testing
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Tailwind CSS with PostCSS, security patterns and visual testing
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Multi-provider LLM integration for phrase generation (Groq, OpenAI, Gemini, extensible)
Cycle ORM patterns, configuration and common pitfalls for Symfony integration
Docker with multi-stage builds, security best practices and Docker Compose
Symfony framework with PestPHP testing and Clean Architecture patterns
WCAG 2.2 AA compliance for SAAC applications
Symfony with Pest PHP testing framework and TDD patterns
| name | tailwind |
| description | Tailwind CSS with PostCSS, security patterns and visual testing |
| license | MIT |
| compatibility | opencode |
| metadata | {"type":"styling","category":"css-framework"} |
tailwind.config.js, postcss.config.js). CSS base importado en src/assets/main.css o similar.build.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.
// 1. Concepto: Visual Regression Testing (e.g., con Cypress + Percy/Chromatic)
// tests/e2e/specs/button.spec.js (Ejemplo)
it('should display the primary button correctly', () => {
cy.visit('/components/button-primary'); // Navegar a la página del botón primario
cy.get('.btn-primary').should('be.visible').percySnapshot('Primary Button State'); // Tomar snapshot visual
// Un "fallo en rojo" sería un cambio inesperado en el snapshot visual en la CI/CD
});
// Nota: Los tests unitarios para componentes Vue/React que usan Tailwind
// se centrarán en la lógica y la renderización de clases correctas,
// no en la apariencia visual directa de Tailwind.
<!-- Mobile: 2 columnas, Tablet portrait: 4, Tablet landscape: 6, Desktop: 8 -->
<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">
<!-- Contenido -->
</button>
</div>
La seguridad en CSS se enfoca más en prevenir inyecciones a través de contenido dinámico.
<!-- 2. Sanear contenido HTML generado por usuario para evitar inyecciones de estilo -->
<!-- Usar una librería de saneamiento (e.g., DOMPurify en JS, HTML Purifier en PHP) -->
<div
class="prose"
v-html="sanitizedUserContent"
></div>
<script>
// En Vue, por ejemplo
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() {
// DOMPurify elimina atributos y etiquetas peligrosas
return DOMPurify.sanitize(this.rawUserContent, { USE_PROFILES: { html: true } });
},
},
};
</script>