Models 44

Qwen3.8 Flash

by QwenReasoningClean
Open in new window

Running live in a sandboxed frame. Click inside it before using the keyboard.

How it went

Total time
42.0 s
Cost
$0.0017
Output tokens
3,625
Spent thinking
0 tokens
Speed
88.7 tok/s
Console errors
0
First token after
1.1 s
First visible text after
1.1 s
Prompt tokens
525
Code size
9.4 KB
Finish reason
stop
Served by
Alibaba
Model id
qwen/qwen3.8-flash
Reasoning sent
{"effort":"none"}
Max output
64,000 tokens
Generated
Nov 11, 2026

What it was asked

The prompt
Create a set of four animated weather cards (sunny, rainy, snowy, stormy), made with HTML and CSS only. Requirements: - Absolutely no JavaScript: the file must not contain any <script> tag or inline event handler. - No images, no SVG, no icon fonts: every weather icon is built from HTML elements and pseudo-elements styled with CSS. - Each card shows an animated icon (rotating sun rays, falling rain drops, drifting snowflakes, flashing lightning), a city name, a temperature and a short description. - Each card has its own background gradient matching the weather. - The cards are displayed in a responsive grid (4 per row on desktop, stacked on mobile) and lift up on hover. - Smooth infinite animations using @keyframes, and respect prefers-reduced-motion.
System prompt, sent with every prompt
You are generating a self-contained web demo. It will be rendered automatically in a sandboxed iframe and compared side by side with the output of other AI models given the exact same task.

Output rules:
- Reply with exactly ONE fenced code block containing the complete file: ```html (or ```svg when the task asks for an SVG). No text before or after the code block.
- Everything must be inline: CSS in <style>, JavaScript in <script>. No external files, images, fonts or network requests, except the CDN URLs explicitly allowed by the task.
- Do not use localStorage, sessionStorage, cookies, IndexedDB, alert(), confirm(), prompt() or window.open(): they are blocked in the sandbox and will throw.
- The page must look right in a 1280×800 viewport and adapt gracefully down to 375px wide. No horizontal scrollbar.
- Something meaningful must be visible on first paint: a screenshot is taken automatically about 3 seconds after load, without any interaction.
- Everything that makes the demo interesting must be visible within the first seconds: nothing hidden behind a high score, a later level or a long play session.
- Games must start in a self-playing demo mode (a simple AI plays) behind a "Click or press a key to start" message, so the game can be judged in action without playing.
- The iframe only receives keyboard events after the user clicks it: if the demo uses the keyboard, display a clear "Click or press a key to start" message.
- The code must run with zero errors in the console of the latest Chrome.

Code run-1.html · 270 lines

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Weather Cards</title>
<style>
  :root{
    --ink:#eef4ff;
    --muted:rgba(255,255,255,.7);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }

  *{box-sizing:border-box;margin:0;padding:0}

  body{
    min-height:100vh;
    background:
      radial-gradient(1200px 600px at 15% -10%, #1b2a4a, transparent),
      radial-gradient(1000px 700px at 100% 0%, #3a1f4d, transparent),
      linear-gradient(160deg,#0b1220,#131c30 60%,#0b1220);
    color:var(--ink);
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:clamp(16px,4vw,48px);
  }

  header{text-align:center;margin-bottom:clamp(24px,5vw,48px)}
  header h1{
    font-size:clamp(28px,5vw,48px);
    letter-spacing:-.02em;
    background:linear-gradient(90deg,#ffd86b,#7dd3fc,#c4b5fd);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  header p{color:var(--muted);margin-top:8px;font-size:clamp(14px,2vw,17px)}

  .grid{
    width:100%;
    max-width:1200px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:clamp(14px,2vw,24px);
  }

  @media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.grid{grid-template-columns:1fr}}

  .card{
    position:relative;
    overflow:hidden;
    border-radius:22px;
    padding:22px 22px 26px;
    min-height:300px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    box-shadow:0 18px 40px rgba(0,0,0,.35);
    transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease;
    isolation:isolate;
  }
  .card:hover{transform:translateY(-14px);box-shadow:0 30px 60px rgba(0,0,0,.5)}

  /* card backgrounds */
  .sunny{background:linear-gradient(160deg,#ff9d3c,#ffc94d 45%,#ffe98a)}
  .rainy{background:linear-gradient(160deg,#2b3a67,#4a6fa5 55%,#6f9bc9)}
  .snowy{background:linear-gradient(160deg,#4a5f80,#8ba6c9 55%,#cfe0f2)}
  .stormy{background:linear-gradient(160deg,#1a1d2b,#3a3f55 55%,#565b78)}

  .icon-wrap{position:relative;height:130px;display:flex;align-items:center;justify-content:center}

  .info{position:relative;z-index:2}
  .city{font-size:22px;font-weight:700;letter-spacing:.01em}
  .temp{font-size:52px;font-weight:800;line-height:1;letter-spacing:-.03em;margin:6px 0}
  .temp small{font-size:22px;font-weight:600;vertical-align:top}
  .desc{font-size:15px;color:rgba(255,255,255,.85)}

  /* ============ SUN ============ */
  .sun-core{
    width:56px;height:56px;border-radius:50%;
    background:radial-gradient(circle at 35% 35%,#fff7cf,#ffce3b 60%,#ff9d1e);
    box-shadow:0 0 30px rgba(255,200,60,.7);
    z-index:2;
    animation:sunPulse 4s ease-in-out infinite;
  }
  .rays{position:absolute;width:130px;height:130px;animation:spin 14s linear infinite}
  .ray{
    position:absolute;top:0;left:50%;width:6px;height:22px;border-radius:6px;
    background:linear-gradient(#fff2b0,#ffb62e);
    transform-origin:50% 65px;
    margin-left:-3px;
  }
  .ray:nth-child(1){transform:rotate(0)}
  .ray:nth-child(2){transform:rotate(45deg)}
  .ray:nth-child(3){transform:rotate(90deg)}
  .ray:nth-child(4){transform:rotate(135deg)}
  .ray:nth-child(5){transform:rotate(180deg)}
  .ray:nth-child(6){transform:rotate(225deg)}
  .ray:nth-child(7){transform:rotate(270deg)}
  .ray:nth-child(8){transform:rotate(315deg)}

  @keyframes spin{to{transform:rotate(360deg)}}
  @keyframes sunPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}

  /* ============ RAIN ============ */
  .cloud{
    position:relative;width:90px;height:38px;background:#fff;border-radius:20px;
    top:-30px;box-shadow:0 6px 14px rgba(0,0,0,.15);
    animation:drift 6s ease-in-out infinite;
  }
  .cloud::before,.cloud::after{content:"";position:absolute;background:#fff;border-radius:50%}
  .cloud::before{width:44px;height:44px;top:-22px;left:12px}
  .cloud::after{width:34px;height:34px;top:-14px;right:12px}
  .drop{
    position:absolute;top:20px;width:4px;height:14px;border-radius:0 0 4px 4px;
    background:linear-gradient(#bfe3ff,#5aa9e6);
    animation:fall 1.1s linear infinite;
  }
  .drop:nth-child(1){left:24px;animation-delay:0s}
  .drop:nth-child(2){left:40px;animation-delay:.35s}
  .drop:nth-child(3){left:56px;animation-delay:.7s}
  .drop:nth-child(4){left:72px;animation-delay:.15s}
  .drop:nth-child(5){left:88px;animation-delay:.5s}

  @keyframes drift{0%,100%{transform:translateX(-6px)}50%{transform:translateX(6px)}}
  @keyframes fall{
    0%{transform:translateY(0);opacity:0}
    20%{opacity:1}
    100%{transform:translateY(90px);opacity:0}
  }

  /* ============ SNOW ============ */
  .flake{
    position:absolute;top:-6px;width:10px;height:10px;border-radius:50%;
    background:radial-gradient(circle,#fff,#dbeafe);
    box-shadow:0 0 6px rgba(255,255,255,.8);
    animation:drift-down 5s linear infinite;
  }
  .flake::before{
    content:"";position:absolute;inset:0;border-radius:50%;
    box-shadow:0 0 0 2px rgba(255,255,255,.4);
  }
  .flake:nth-child(1){left:20px;animation-delay:0s;transform:scale(1)}
  .flake:nth-child(2){left:44px;animation-delay:1.2s;transform:scale(.7)}
  .flake:nth-child(3){left:66px;animation-delay:.6s;transform:scale(1.1)}
  .flake:nth-child(4){left:88px;animation-delay:2s;transform:scale(.8)}
  .flake:nth-child(5){left:34px;animation-delay:2.6s;transform:scale(.6)}
  .flake:nth-child(6){left:76px;animation-delay:1.8s;transform:scale(1)}

  @keyframes drift-down{
    0%{transform:translateY(0) translateX(0) rotate(0);opacity:0}
    15%{opacity:1}
    50%{transform:translateY(50px) translateX(10px) rotate(180deg)}
    100%{transform:translateY(100px) translateX(-6px) rotate(360deg);opacity:0}
  }

  /* ============ STORM ============ */
  .storm-cloud{
    position:relative;width:100px;height:40px;background:#c3c9d8;border-radius:22px;
    top:-24px;box-shadow:0 8px 18px rgba(0,0,0,.35);
    animation:grumble 3s ease-in-out infinite;
  }
  .storm-cloud::before,.storm-cloud::after{content:"";position:absolute;background:#c3c9d8;border-radius:50%}
  .storm-cloud::before{width:50px;height:50px;top:-26px;left:14px}
  .storm-cloud::after{width:38px;height:38px;top:-16px;right:16px}

  .bolt{
    position:absolute;top:34px;left:50%;margin-left:-11px;width:0;height:0;
    border-left:11px solid transparent;
    border-right:11px solid transparent;
    border-top:34px solid #ffd94a;
    filter:drop-shadow(0 0 6px rgba(255,220,80,.9));
    animation:flash 2.4s steps(1,end) infinite;
  }
  .bolt::after{
    content:"";position:absolute;top:-34px;left:-11px;width:0;height:0;
    border-left:11px solid transparent;
    border-right:11px solid transparent;
    border-bottom:20px solid #ffd94a;
  }
  .flash-bg{
    position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.5),transparent 60%);
    opacity:0;animation:flashbg 2.4s steps(1,end) infinite;pointer-events:none;
  }

  @keyframes grumble{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
  @keyframes flash{
    0%,45%,55%,100%{opacity:0}
    48%,52%{opacity:1}
  }
  @keyframes flashbg{
    0%,45%,55%,100%{opacity:0}
    48%,52%{opacity:1}
  }

  @media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none!important;transition:none!important}
    .bolt{opacity:1}
  }
</style>
</head>
<body>
  <header>
    <h1>Today's Forecast</h1>
    <p>Pure HTML &amp; CSS — no JavaScript, no images, no SVG.</p>
  </header>

  <main class="grid">

    <!-- SUNNY -->
    <article class="card sunny">
      <div class="icon-wrap">
        <div class="rays">
          <span class="ray"></span><span class="ray"></span><span class="ray"></span>
          <span class="ray"></span><span class="ray"></span><span class="ray"></span>
          <span class="ray"></span><span class="ray"></span>
        </div>
        <div class="sun-core"></div>
      </div>
      <div class="info">
        <div class="city">Miami</div>
        <div class="temp">32<small>°C</small></div>
        <div class="desc">Clear skies and blazing sunshine</div>
      </div>
    </article>

    <!-- RAINY -->
    <article class="card rainy">
      <div class="icon-wrap">
        <div class="cloud"></div>
        <span class="drop"></span><span class="drop"></span><span class="drop"></span>
        <span class="drop"></span><span class="drop"></span>
      </div>
      <div class="info">
        <div class="city">London</div>
        <div class="temp">14<small>°C</small></div>
        <div class="desc">Steady rain throughout the day</div>
      </div>
    </article>

    <!-- SNOWY -->
    <article class="card snowy">
      <div class="icon-wrap">
        <span class="flake"></span><span class="flake"></span><span class="flake"></span>
        <span class="flake"></span><span class="flake"></span><span class="flake"></span>
      </div>
      <div class="info">
        <div class="city">Oslo</div>
        <div class="temp">−4<small>°C</small></div>
        <div class="desc">Heavy snowfall and icy winds</div>
      </div>
    </article>

    <!-- STORMY -->
    <article class="card stormy">
      <div class="flash-bg"></div>
      <div class="icon-wrap">
        <div class="storm-cloud"></div>
        <div class="bolt"></div>
      </div>
      <div class="info">
        <div class="city">Chicago</div>
        <div class="temp">18<small>°C</small></div>
        <div class="desc">Thunderstorms with lightning</div>
      </div>
    </article>

  </main>
</body>
</html>