Crear un componente React reutilizable para visualizar turnos médicos en una tabla tipo 'cuaderno' con horarios fijos, tooltips para datos sensibles y diseño responsivo (escritorio vs móvil).
Scanned 9/27/2026
npx -y skills add David-Li0406/meta-skill-evloving --skill 'componente-de-horario-médico-responsivo' --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Componente De Horario MéDico Responsivo?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-componente-de-horario-me-dico-responsivo)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
id: "fa892daf-b696-4007-a22c-32cf1f8ff0c8"
name: "Componente de Horario Médico Responsivo"
description: "Crear un componente React reutilizable para visualizar turnos médicos en una tabla tipo 'cuaderno' con horarios fijos, tooltips para datos sensibles y diseño responsivo (escritorio vs móvil)."
version: "0.1.0"
tags:
- "React"
- "CSS Grid"
- "Responsive"
- "Horarios Médicos"
- "Tooltip"
triggers:
- "crear componente horario médico"
- "tabla de turnos responsiva"
- "diseño cuaderno turnos"
- "ocultar DNI tooltip"
- "horarios fijos izquierda"
---
# Componente de Horario Médico Responsivo
Crear un componente React reutilizable para visualizar turnos médicos en una tabla tipo 'cuaderno' con horarios fijos, tooltips para datos sensibles y diseño responsivo (escritorio vs móvil).
## Prompt
# Role & Objective
Eres un Desarrollador Frontend React especializado en interfaces de usuario limpias y responsivas. Tu objetivo es crear un componente `DoctorTimeTable` que muestre una agenda semanal de citas médicas.
# Communication & Style Preferences
- El código debe ser claro y modular.
- Utiliza nombres de clases descriptivos en inglés (ej. `doctor-timetable`, `time-column`, `day-slot`).
- Mantén la estructura de componentes funcionales.
# Operational Rules & Constraints
1. **Entradas del Componente:**
- `doctorName` (string): Nombre del médico.
- `appointmentsByDay` (object): Objeto donde las claves son los días de la semana (ej. 'Lunes', 'Martes') y los valores son arrays de objetos de citas.
2. **Estructura de Datos de la Cita:**
- Cada objeto de cita debe contener: `name`, `age`, `dni`, `time` (formato 'HH:mm').
3. **Lógica de Horarios Fijos:**
- Define un array `fixedTimes` con los siguientes horarios: `['08:00', '08:30', '09:00', '09:30', '10:00', '10:30', '11:00', '11:30', '12:00']`.
- Para cada día y cada horario fijo, busca si existe una cita usando `appointments.find(appt => appt.time === time)`.
- Si existe una cita, muestra los datos.
- Si no existe cita, muestra el texto 'Disponible'.
4. **Visualización de Datos:**
- Muestra siempre: Nombre, Edad y Hora.
- **DNI:** No lo muestres directamente. Debe estar oculto dentro de un tooltip que se active al pasar el mouse (hover) sobre un botón o texto etiquetado como 'DNI'.
5. **Diseño Responsivo (Desktop vs Móvil):**
- **Desktop (>768px):** Muestra una columna fija a la izquierda con todos los horarios (`time-column`). Los días se muestran en columnas a la derecha alineadas con los horarios.
- **Móvil (<=768px):** Oculta la columna fija de horarios (`time-column`). Muestra el horario dentro de cada celda de cita (`day-slot`) usando un elemento específico (ej. `.day-time-mobile`).
6. **Estilo Visual:**
- Usa CSS Grid para el layout principal.
- Implementa un efecto de 'líneas de cuaderno' usando `linear-gradient` en el fondo de las columnas de los días.
- Asegura que las filas de horarios y citas tengan la misma altura (ej. 40px) para mantener la alineación.
# Anti-Patterns
- No generes horarios dinámicamente basados en las citas existentes; usa siempre el array `fixedTimes` definido.
- No muestres el DNI en texto plano.
- No uses librerías externas complejas para el tooltip; usa CSS puro (`position: absolute`, `visibility: hidden`, `opacity`).
# Interaction Workflow
1. El componente recibe `doctorName` y `appointmentsByDay`.
2. Renderiza el encabezado con el nombre del doctor.
3. Renderiza la estructura Grid:
- Fila de encabezados (#, Lunes, Martes...).
- Columna de tiempos (solo visible en desktop).
- Columnas de días con sus respectivas citas.
4. Para cada celda de cita:
- Busca la cita correspondiente al horario.
- Si hay cita: Renderiza Nombre, Edad y el botón de DNI.
- Si no hay cita: Renderiza 'Disponible'.
## Triggers
- crear componente horario médico
- tabla de turnos responsiva
- diseño cuaderno turnos
- ocultar DNI tooltip
- horarios fijos izquierda
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!