Madrid

23°
Viernes, 25

Cena · 20:30

React + MotionCards

Widget de tiempo y agenda

Una tarjeta de cristal esmerilado con la temperatura arriba y tu próximo plan debajo, al estilo de los widgets del iPhone.

Ajustes

23°

Código

import { motion } from "framer-motion";
import { CalendarDays, CloudSun } from "lucide-react";

interface WeatherWidgetProps {
  temp?: number;
  city?: string;
  eventDate?: string;
  eventTitle?: string;
}

export default function WeatherWidget({
  temp = 23,
  city = "Madrid",
  eventDate = "Viernes, 25",
  eventTitle = "Cena · 20:30",
}: WeatherWidgetProps) {
  return (
    <motion.div
      whileHover={{ scale: 1.02 }}
      transition={{ type: "spring", stiffness: 300, damping: 30 }}
      className="w-64 rounded-[28px] bg-white/70 p-5 text-[#1d1d1f] shadow-[0_1px_2px_rgba(0,0,0,0.03),0_8px_28px_rgba(0,0,0,0.05)] backdrop-blur-[20px] dark:bg-black/70 dark:text-[#f5f5f7]"
    >
      <div className="flex justify-between">
        <div>
          <p className="text-xs text-[#86868b]">{city}</p>
          <strong className="text-4xl font-medium">{temp}°</strong>
        </div>
        <CloudSun className="h-10 w-10 text-[#0071e3]" />
      </div>
      <div className="my-4 h-px bg-black/10 dark:bg-white/10" />
      <div className="flex items-center gap-3">
        <CalendarDays className="h-8 w-8 text-[#0071e3]" />
        <div>
          <b className="text-sm">{eventDate}</b>
          <p className="text-xs text-[#86868b]">{eventTitle}</p>
        </div>
      </div>
    </motion.div>
  );
}

Prompt para IA

Pégalo en ChatGPT, Claude o Cursor y adaptará el bloque a tu proyecto con estos ajustes, aunque no uses React.

Más en Cards

Dónde usarlo

Esta tarjetita copia el aspecto de los widgets del iPhone: ciudad y temperatura arriba, el siguiente evento abajo. Encaja en una app de viajes que muestre el tiempo en destino, en la bienvenida de un hotel, en la confirmación de una mesa reservada o en un panel personal. Quien busca un widget del tiempo en React suele necesitar solo esto.

Los datos son fijos, así que conecta tu propia fuente del tiempo y tus eventos. El efecto cristal necesita una foto o un degradado detrás para lucir. Prueba el control de temperatura para ver cómo aguanta números negativos y de dos cifras.