Liveweave: Generative AI Web Editor & HTML/CSS/JS Playground
Initializing
Liveweave
Web
expand_more
home
Home
Palette
Color Explorer
arrow_outward
Polyline
Graphics Editor
arrow_outward
frame_source
Python Playground
arrow_outward
build
Tools
expand_more
restart_alt
Load "Hello Weaver!"
post_add
Generate Lorem ipsum...
code
Format HTML
code_blocks
Format CSS
data_object
Format JavaScript
library_add
Library
expand_more
A
Algolia JS
Animate CSS
Apex Charts JS
B
Bulma CSS
Bootstrap
C
Chart JS
Chartist
Create JS
D
D3
Dojo
F
Foundation
Fullpage JS
G
Granim JS
Google Charts
H
Halfmoon
J
jQuery
M
Materialize
Moment JS
Masonry JS
Milligram CSS
P
Pure CSS
Primer CSS
Popper JS
Pattern CSS
Picnic CSS
R
React JS
Raphael JS
Raisin CSS
S
Semantic UI
Skeleton CSS
Spectre CSS
Tachyons CSS
T
Tailwind
Three JS
U
UI Kit
Vis JS
W
Water CSS
download
Download
expand_more
developer_mode
Download as HTML
folder_zip
Download as .ZIP
cloud_upload
Fork
account_circle
Login
settings
Settings
expand_more
Editor font
14
px
A
A
Night mode
Line number
Mini map
Word wrap
sync_alt
Reset Settings
smart_display
Run
left_panel_close
AI Assistant
dashboard
All
HTML
CSS
JS
visibility
Preview
bolt
Live Preview
terminal
JS Console
<!DOCTYPE html> <html> <head> <title>Coming soon template</title> </head> <body> <!-- Start your code here --> <div class="page"> <header class="header"> <a href="#" class="logo"> <span class="logo-symbol">✳</span> orbit<span class="logo-dot">.</span> </a> <div class="header-right"> <span class="status-dot"></span> <span>LAUNCHING SOON</span> </div> </header> <main class="main"> <div class="background-glow glow-left"></div> <div class="background-glow glow-right"></div> <div class="stars"></div> <div class="content"> <div class="eyebrow"> <span class="eyebrow-line"></span> A NEW DIGITAL EXPERIENCE <span class="eyebrow-line"></span> </div> <h1> Something<br> <span>extraordinary</span><br> is coming. </h1> <p class="description"> We're creating something bold, beautiful, and a little unexpected. The future is taking shape. Be among the first to experience it. </p> <div class="countdown"> <div class="time-box"> <strong id="days">00</strong> <small>DAYS</small> </div> <span class="separator">:</span> <div class="time-box"> <strong id="hours">00</strong> <small>HOURS</small> </div> <span class="separator">:</span> <div class="time-box"> <strong id="minutes">00</strong> <small>MINUTES</small> </div> <span class="separator">:</span> <div class="time-box"> <strong id="seconds">00</strong> <small>SECONDS</small> </div> </div> <div class="signup"> <p>Get notified when we launch.</p> <div class="signup-form"> <input type="email" placeholder="Enter your email address"> <button type="button">Notify Me <span>→</span></button> </div> <small>No spam. Just one exciting announcement.</small> </div> </div> <div class="visual"> <div class="orbit-ring ring-one"></div> <div class="orbit-ring ring-two"></div> <div class="orbit-ring ring-three"></div> <div class="planet"></div> <div class="planet-shine"></div> <div class="small-planet"></div> <div class="spark spark-one">✦</div> <div class="spark spark-two">✧</div> <div class="spark spark-three">✦</div> </div> <div class="bottom-label"> <span class="bottom-line"></span> THE NEXT CHAPTER BEGINS HERE </div> </main> <footer class="footer"> <span>© 2026 Orbit Studio. All rights reserved.</span> <div> <a href="#">Instagram</a> <a href="#">X / Twitter</a> <a href="#">Contact</a> </div> </footer> </div> <!-- End your code here --> </body> </html>
* { box-sizing: border-box; } body { margin: 0; background: #080a17; color: #fff; font-family: Arial, Helvetica, sans-serif; } a { color: inherit; text-decoration: none; } .page { min-height: 100vh; overflow: hidden; background: #080a17; } .header { height: 100px; max-width: 1450px; margin: auto; padding: 0 6%; display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 10; } .logo { font-size: 32px; font-weight: 800; letter-spacing: -2px; display: flex; align-items: center; gap: 10px; } .logo-symbol { color: #b8a4ff; font-size: 35px; } .logo-dot { color: #b8a4ff; } .header-right { display: flex; align-items: center; gap: 10px; font-size: 10px; letter-spacing: 2px; color: #a7a8bc; } .status-dot { width: 7px; height: 7px; border-radius: 50%; background: #a58aff; box-shadow: 0 0 12px #a58aff; animation: pulse 2s infinite; } .main { position: relative; min-height: 750px; display: flex; align-items: center; padding: 80px 6% 130px; max-width: 1600px; margin: auto; isolation: isolate; } .background-glow { position: absolute; border-radius: 50%; filter: blur(100px); z-index: -1; } .glow-left { width: 400px; height: 400px; background: #442b8555; left: -200px; top: 100px; } .glow-right { width: 500px; height: 500px; background: #183d7755; right: -100px; top: 100px; } .stars { position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(#ffffff44 1px, transparent 1px); background-size: 45px 45px; opacity: 0.2; } .content { position: relative; z-index: 5; max-width: 740px; } .eyebrow { display: flex; align-items: center; gap: 12px; color: #b8a4ff; font-size: 11px; letter-spacing: 3px; font-weight: bold; } .eyebrow-line { width: 25px; height: 1px; background: #b8a4ff; } h1 { font-size: clamp(50px, 6.3vw, 100px); line-height: 1.08; letter-spacing: -5px; font-weight: 800; margin: 35px 0 30px; } h1 span { background: linear-gradient(100deg, #d9c4ff, #9e9bff, #80e4ff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .description { max-width: 530px; color: #a6a7bd; font-size: 17px; line-height: 1.9; } .countdown { display: flex; align-items: center; gap: 14px; margin-top: 45px; } .time-box { width: 92px; height: 100px; border: 1px solid #ffffff22; background: #ffffff09; border-radius: 13px; display: flex; flex-direction: column; align-items: center; justify-content: center; } .time-box strong { font-size: 39px; letter-spacing: -2px; font-weight: 700; } .time-box small { margin-top: 7px; font-size: 9px; letter-spacing: 2px; color: #999ab5; } .separator { font-size: 26px; color: #8d82b4; } .signup { margin-top: 45px; max-width: 480px; } .signup p { font-size: 14px; font-weight: bold; margin-bottom: 15px; } .signup-form { display: flex; padding: 6px; border: 1px solid #55516f; border-radius: 12px; background: #181a2e; } .signup-form input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; padding: 14px; color: white; font-size: 13px; } .signup-form button { border: 0; border-radius: 8px; background: #b9a5ff; color: #1a1430; padding: 0 22px; font-size: 12px; font-weight: bold; cursor: pointer; } .signup-form button:hover { background: #d4c6ff; } .signup-form button span { margin-left: 10px; } .signup small { display: block; margin-top: 12px; color: #777991; font-size: 11px; } /* VISUAL */ .visual { position: absolute; right: -130px; top: 100px; width: 690px; height: 650px; z-index: 1; pointer-events: none; } .planet { position: absolute; width: 370px; height: 370px; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle at 30% 25%, #c8b5ff, #7959d4 35%, #392b83 65%, #11152c 90%); box-shadow: 0 0 100px #7858dc77, inset -30px -30px 70px #07091d; animation: planetFloat 7s ease-in-out infinite; } .planet-shine { position: absolute; width: 220px; height: 220px; left: 34%; top: 25%; border-radius: 50%; background: radial-gradient(circle, #ffffff22, transparent 70%); filter: blur(20px); } .orbit-ring { position: absolute; border: 1px solid #a38cff44; border-radius: 50%; left: 50%; top: 50%; } .ring-one { width: 650px; height: 270px; transform: translate(-50%, -50%) rotate(-30deg); } .ring-two { width: 580px; height: 580px; border-style: dashed; opacity: 0.35; transform: translate(-50%, -50%); animation: spin 45s linear infinite; } .ring-three { width: 470px; height: 230px; transform: translate(-50%, -50%) rotate(35deg); } .small-planet { position: absolute; width: 60px; height: 60px; top: 20%; left: 20%; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #b3f0ff, #3588c8, #172d65); box-shadow: 0 0 35px #489edb77; animation: planetFloat 5s ease-in-out infinite; } .spark { position: absolute; color: #b9a5ff; font-size: 28px; animation: twinkle 3s ease-in-out infinite; } .spark-one { top: 12%; right: 25%; } .spark-two { bottom: 18%; left: 17%; animation-delay: 1s; } .spark-three { bottom: 25%; right: 12%; animation-delay: 2s; } .bottom-label { position: absolute; bottom: 50px; left: 6%; display: flex; align-items: center; gap: 15px; color: #777991; font-size: 10px; letter-spacing: 2px; } .bottom-line { width: 35px; height: 1px; background: #777991; } .footer { max-width: 1450px; margin: auto; padding: 30px 6%; border-top: 1px solid #ffffff14; display: flex; justify-content: space-between; gap: 20px; color: #777991; font-size: 11px; } .footer div { display: flex; gap: 25px; } .footer a:hover { color: white; } /* ANIMATIONS */ @keyframes pulse { 50% { opacity: 0.3; } } @keyframes planetFloat { 50% { margin-top: -18px; } } @keyframes spin { to { transform: translate(-50%, -50%) rotate(360deg); } } @keyframes twinkle { 50% { opacity: 0.2; transform: scale(0.7); } } /* RESPONSIVE */ @media (max-width: 1100px) { .visual { right: -300px; opacity: 0.45; } } @media (max-width: 700px) { .header { height: 80px; } .main { min-height: 800px; padding: 80px 6% 130px; } .content { width: 100%; } h1 { font-size: 54px; letter-spacing: -3px; } .description { font-size: 15px; } .visual { right: -440px; top: 200px; opacity: 0.2; } .countdown { gap: 6px; } .time-box { width: 68px; height: 85px; } .time-box strong { font-size: 28px; } .time-box small { font-size: 8px; } .separator { font-size: 17px; } .signup-form button { padding: 0 12px; } .footer { flex-direction: column; } } @media (max-width: 400px) { h1 { font-size: 44px; } .header-right { font-size: 8px; } .time-box { width: 60px; } } @media (prefers-reduced-motion: reduce) { .planet, .small-planet, .ring-two, .spark, .status-dot { animation: none; } }
var launchDate = new Date(); launchDate.setDate(launchDate.getDate() + 30); var dayBox = document.getElementById("days"); var hourBox = document.getElementById("hours"); var minuteBox = document.getElementById("minutes"); var secondBox = document.getElementById("seconds"); function updateCountdown() { var now = new Date(); var difference = launchDate.getTime() - now.getTime(); if (difference < 0) { difference = 0; } var days = Math.floor(difference / 86400000); var hours = Math.floor(difference / 3600000) % 24; var minutes = Math.floor(difference / 60000) % 60; var seconds = Math.floor(difference / 1000) % 60; dayBox.textContent = days; hourBox.textContent = hours; minuteBox.textContent = minutes; secondBox.textContent = seconds; } updateCountdown(); setInterval(updateCountdown, 1000);
terminal
JavaScript Console
Preview
Clear
close
›
Run