Weather widget
Weather widget: a CSS card. Copy the rules, or the prompt that rebuilds it.
24°
Sunny · High 27° · Low 18°
CSS
.card-080 {
width: 240px;
padding: 18px 20px;
border-radius: 20px;
background: linear-gradient(160deg,#38bdf8,#0369a1);
color: #fff;
font-family: system-ui,sans-serif;
box-shadow: 0 12px 30px -10px rgba(3,105,161,.6)
}
.card-080 header {
display: flex;
justify-content: space-between;
align-items: baseline
}
.card-080 header span {
font-size: 16px;
font-weight: 600
}
.card-080 header small {
font-size: 10px;
text-transform: uppercase;
letter-spacing: .1em;
opacity: .7
}
.card-080__main {
display: flex;
align-items: center;
justify-content: space-between;
margin: 14px 0 8px
}
.card-080 svg {
color: #fde68a;
animation: card-080-spin 20s linear infinite
}
.card-080 b {
font-size: 52px;
font-weight: 300;
letter-spacing: -.04em;
line-height: 1
}
.card-080 p {
margin: 0;
font-size: 12px;
opacity: .85
}
@keyframes card-080-spin {
to {
transform: rotate(360deg)
}
}
@media (prefers-reduced-motion: reduce) {
.card-080, .card-080 * { animation: none; transition: none; }
}
HTML
<article class="card-080">
<header><span>Lisbon</span><small>Sample data</small></header>
<div class="card-080__main">
<svg viewBox="0 0 24 24" width="48" height="48" fill="none" stroke="currentColor" stroke-width="1.6"><circle cx="12" cy="12" r="4"/><path d="M12 2v2m0 16v2M2 12h2m16 0h2M4.9 4.9l1.4 1.4m11.4 11.4l1.4 1.4M4.9 19.1l1.4-1.4m11.4-11.4l1.4-1.4"/></svg>
<b>24°</b>
</div>
<p>Sunny · High 27° · Low 18°</p>
</article>Prompt
Create a 240px weather-style widget card with a 160deg sky gradient #38bdf8 to #0369a1, white text, 20px radius and a blue-tinted shadow. Header: 16px city name left and a tiny uppercase "Sample data" label right. Main row: a 48px pale-yellow #fde68a sun SVG (slowly rotating, 20s per turn) on the left and a 52px light-weight "24°" on the right. Footer line 12px "Sunny · High 27° · Low 18°" at 85% opacity. Static values only.