| 1 | <!DOCTYPE html> |
| 2 | <html lang="zh-CN"> |
| 3 | <head> |
| 4 | <meta charset="UTF-8" /> |
| 5 | <title>夏日暖色</title> |
| 6 | <style> |
| 7 | * { box-sizing: border-box; margin: 0; padding: 0; } |
| 8 | html, body { width: 100%; height: 100%; overflow: hidden; } |
| 9 | body { |
| 10 | display: grid; |
| 11 | place-items: center; |
| 12 | font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; |
| 13 | } |
| 14 | .slide { |
| 15 | position: relative; |
| 16 | aspect-ratio: 16 / 9; |
| 17 | width: min(100vw, calc(100vh * 16 / 9)); |
| 18 | overflow: hidden; |
| 19 | background: linear-gradient(180deg, #20A1EE 0%, #58C3F6 42%, #9DDF67 62%, #DAF5A7 100%); |
| 20 | color: #FFFFFF; |
| 21 | } |
| 22 | /* 太阳 */ |
| 23 | .sun { |
| 24 | position: absolute; |
| 25 | top: 9%; |
| 26 | right: 11%; |
| 27 | width: 12%; |
| 28 | aspect-ratio: 1; |
| 29 | border-radius: 50%; |
| 30 | background: radial-gradient(circle at 50% 50%, #FFF7B0 0%, #FFF061 55%, #FFE15A 100%); |
| 31 | box-shadow: 0 0 60px 10px rgba(255,240,97,0.55); |
| 32 | } |
| 33 | .sun::before { |
| 34 | content: ""; |
| 35 | position: absolute; |
| 36 | inset: -32%; |
| 37 | border-radius: 50%; |
| 38 | background: |
| 39 | conic-gradient(from 0deg, |
| 40 | rgba(255,240,97,0) 0deg, rgba(255,240,97,0.65) 6deg, rgba(255,240,97,0) 14deg, |
| 41 | rgba(255,240,97,0) 36deg, rgba(255,240,97,0.65) 42deg, rgba(255,240,97,0) 50deg, |
| 42 | rgba(255,240,97,0) 72deg, rgba(255,240,97,0.65) 78deg, rgba(255,240,97,0) 86deg, |
| 43 | rgba(255,240,97,0) 108deg, rgba(255,240,97,0.65) 114deg, rgba(255,240,97,0) 122deg, |
| 44 | rgba(255,240,97,0) 144deg, rgba(255,240,97,0.65) 150deg, rgba(255,240,97,0) 158deg, |
| 45 | rgba(255,240,97,0) 180deg, rgba(255,240,97,0.65) 186deg, rgba(255,240,97,0) 194deg, |
| 46 | rgba(255,240,97,0) 216deg, rgba(255,240,97,0.65) 222deg, rgba(255,240,97,0) 230deg, |
| 47 | rgba(255,240,97,0) 252deg, rgba(255,240,97,0.65) 258deg, rgba(255,240,97,0) 266deg, |
| 48 | rgba(255,240,97,0) 288deg, rgba(255,240,97,0.65) 294deg, rgba(255,240,97,0) 302deg, |
| 49 | rgba(255,240,97,0) 324deg, rgba(255,240,97,0.65) 330deg, rgba(255,240,97,0) 338deg, |
| 50 | rgba(255,240,97,0) 360deg); |
| 51 | mask: radial-gradient(circle, transparent 48%, #000 50%); |
| 52 | -webkit-mask: radial-gradient(circle, transparent 48%, #000 50%); |
| 53 | } |
| 54 | /* 云朵 */ |
| 55 | .cloud { |
| 56 | position: absolute; |
| 57 | background: #FFFFFF; |
| 58 | border-radius: 50px; |
| 59 | opacity: 0.92; |
| 60 | } |
| 61 | .cloud::before, .cloud::after { |
| 62 | content: ""; |
| 63 | position: absolute; |
| 64 | background: #FFFFFF; |
| 65 | border-radius: 50%; |
| 66 | } |
| 67 | .cloud.c1 { top: 16%; left: 9%; width: 16%; height: 3.6%; } |
| 68 | .cloud.c1::before { width: 55%; height: 180%; top: -75%; left: 18%; } |
| 69 | .cloud.c1::after { width: 42%; height: 150%; top: -50%; left: 50%; } |
| 70 | .cloud.c2 { top: 26%; left: 30%; width: 12%; height: 2.8%; opacity: 0.8; } |
| 71 | .cloud.c2::before { width: 60%; height: 190%; top: -85%; left: 15%; } |
| 72 | .cloud.c2::after { width: 45%; height: 160%; top: -55%; left: 48%; } |
| 73 | |
| 74 | /* 草地纹理 */ |
| 75 | .grass { |
| 76 | position: absolute; |
| 77 | left: 0; right: 0; bottom: 0; |
| 78 | height: 30%; |
| 79 | background: |
| 80 | radial-gradient(ellipse 60% 100% at 20% 100%, rgba(157,223,103,0.0) 40%, rgba(124,200,70,0.25) 100%), |
| 81 | radial-gradient(ellipse 70% 100% at 80% 100%, rgba(124,200,70,0.0) 40%, rgba(124,200,70,0.2) 100%); |
| 82 | } |
| 83 | /* 纸飞机 */ |
| 84 | .plane { |
| 85 | position: absolute; |
| 86 | width: 0; height: 0; |
| 87 | border-style: solid; |
| 88 | opacity: 0.95; |
| 89 | } |
| 90 | .plane.p1 { |
| 91 | top: 40%; left: 14%; |
| 92 | border-width: 0 14px 22px 14px; |
| 93 | border-color: transparent transparent #FFFFFF transparent; |
| 94 | transform: rotate(-18deg); |
| 95 | filter: drop-shadow(0 4px 3px rgba(0,0,0,0.12)); |
| 96 | } |
| 97 | .plane.p2 { |
| 98 | top: 33%; right: 24%; |
| 99 | border-width: 0 10px 16px 10px; |
| 100 | border-color: transparent transparent #FFFFFF transparent; |
| 101 | transform: rotate(22deg) scale(0.8); |
| 102 | opacity: 0.8; |
| 103 | } |
| 104 | |
| 105 | /* 内容 */ |
| 106 | .content { |
| 107 | position: absolute; |
| 108 | inset: 0; |
| 109 | display: flex; |
| 110 | flex-direction: column; |
| 111 | justify-content: center; |
| 112 | align-items: flex-start; |
| 113 | padding: 0 8%; |
| 114 | } |
| 115 | .eyebrow { |
| 116 | font-family: "Snell Roundhand", "Bradley Hand", "STKaiti", cursive; |
| 117 | font-style: italic; |
| 118 | font-size: clamp(14px, 1.9vw, 30px); |
| 119 | color: #FFF061; |
| 120 | letter-spacing: 0.04em; |
| 121 | margin-bottom: 1.4%; |
| 122 | text-shadow: 0 2px 6px rgba(20,90,150,0.25); |
| 123 | } |
| 124 | .title { |
| 125 | font-family: "Snell Roundhand", "Bradley Hand", "STKaiti", "KaiTi", cursive; |
| 126 | font-size: clamp(48px, 9vw, 132px); |
| 127 | font-weight: 700; |
| 128 | line-height: 1.05; |
| 129 | color: #FFFFFF; |
| 130 | letter-spacing: 0.02em; |
| 131 | text-shadow: 0 4px 14px rgba(20,90,150,0.28), 0 1px 0 rgba(255,255,255,0.15); |
| 132 | } |
| 133 | .title .accent { |
| 134 | color: #FE7F08; |
| 135 | text-shadow: 0 4px 14px rgba(254,127,8,0.35); |
| 136 | } |
| 137 | .subtitle { |
| 138 | margin-top: 2.2%; |
| 139 | font-size: clamp(13px, 1.7vw, 24px); |
| 140 | font-weight: 400; |
| 141 | line-height: 1.6; |
| 142 | color: #FFFFFF; |
| 143 | opacity: 0.95; |
| 144 | max-width: 52%; |
| 145 | text-shadow: 0 1px 4px rgba(20,90,150,0.3); |
| 146 | } |
| 147 | /* 色卡 */ |
| 148 | .palette { |
| 149 | position: absolute; |
| 150 | left: 8%; |
| 151 | bottom: 5%; |
| 152 | display: flex; |
| 153 | gap: clamp(10px, 1.4vw, 22px); |
| 154 | align-items: center; |
| 155 | } |
| 156 | .swatch { |
| 157 | width: clamp(40px, 5.4vw, 80px); |
| 158 | aspect-ratio: 1; |
| 159 | border-radius: 50%; |
| 160 | box-shadow: 0 6px 14px rgba(0,0,0,0.12), inset 0 -3px 6px rgba(0,0,0,0.08); |
| 161 | border: 3px solid rgba(255,255,255,0.85); |
| 162 | } |
| 163 | .tag { |
| 164 | position: absolute; |
| 165 | right: 8%; |
| 166 | bottom: 6%; |
| 167 | display: flex; |
| 168 | align-items: center; |
| 169 | gap: 10px; |
| 170 | color: #FFFFFF; |
| 171 | font-size: clamp(11px, 1.2vw, 18px); |
| 172 | opacity: 0.85; |
| 173 | letter-spacing: 0.16em; |
| 174 | } |
| 175 | .tag .dot { width: 8px; height: 8px; border-radius: 50%; background: #FFADDD; } |
| 176 | </style> |
| 177 | </head> |
| 178 | <body> |
| 179 | <div class="slide"> |
| 180 | <div class="sun"></div> |
| 181 | <div class="cloud c1"></div> |
| 182 | <div class="cloud c2"></div> |
| 183 | <div class="plane p1"></div> |
| 184 | <div class="plane p2"></div> |
| 185 | <div class="grass"></div> |
| 186 | |
| 187 | <div class="content"> |
| 188 | <div class="eyebrow">summer · 夏日碎片</div> |
| 189 | <h1 class="title">蝉鸣漫过<span class="accent">树梢</span></h1> |
| 190 | <p class="subtitle">把阳光、草地和一阵风,都揉进这一页里。<br/>属于六月的,松弛又明亮的小确幸。</p> |
| 191 | </div> |
| 192 | |
| 193 | <div class="palette"> |
| 194 | <div class="swatch" style="background:#20A1EE"></div> |
| 195 | <div class="swatch" style="background:#9DDF67"></div> |
| 196 | <div class="swatch" style="background:#FFF061"></div> |
| 197 | <div class="swatch" style="background:#FE7F08"></div> |
| 198 | <div class="swatch" style="background:#FFADDD"></div> |
| 199 | </div> |
| 200 | |
| 201 | <div class="tag"> |
| 202 | <span class="dot"></span> |
| 203 | <span>色彩沉溺 · 夏的另一种可能</span> |
| 204 | </div> |
| 205 | </div> |
| 206 | </body> |
| 207 | </html> |
| 208 |