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
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>HTML, CSS and JavaScript demo</title> </head> <body> <!-- Start your code here --> <div class="scene"> <div class="sun"></div> <div class="cloud cloud-1"></div> <div class="cloud cloud-2"></div> <div class="boat"> <div class="mast"></div> <div class="sail"></div> <div class="hull"></div> </div> <div class="ocean"> <div class="wave wave-back"></div> <div class="wave wave-mid"></div> <div class="wave wave-front"></div> </div> </div> <!-- End your code here --> </body> </html>
* { box-sizing: border-box; } html, body { margin: 0; width: 100%; height: 100%; overflow: hidden; font-family: Arial, Helvetica, sans-serif; } body { background: #f7b267; } .scene { position: relative; width: 100vw; height: 100vh; overflow: hidden; background: linear-gradient( to bottom, #547aa5 0%, #7ea8c9 28%, #f1a17a 60%, #ffd18a 72% ); } /* SUN */ .sun { position: absolute; top: 18%; left: 50%; width: 105px; height: 105px; transform: translateX(-50%); border-radius: 50%; background: #ffe7a1; box-shadow: 0 0 30px rgba(255, 226, 156, 0.8), 0 0 70px rgba(255, 193, 110, 0.55), 0 0 130px rgba(255, 170, 90, 0.35); } /* CLOUDS */ .cloud { position: absolute; width: 120px; height: 32px; background: rgba(255, 255, 255, 0.55); border-radius: 50px; filter: blur(0.3px); animation: drift linear infinite; } .cloud::before, .cloud::after { content: ""; position: absolute; background: inherit; border-radius: 50%; } .cloud::before { width: 55px; height: 55px; left: 18px; bottom: 5px; } .cloud::after { width: 70px; height: 70px; right: 15px; bottom: 2px; } .cloud-1 { top: 16%; left: -160px; opacity: 0.65; animation-duration: 34s; } .cloud-2 { top: 29%; left: -200px; transform: scale(0.65); opacity: 0.45; animation-duration: 45s; animation-delay: -15s; } @keyframes drift { from { left: -220px; } to { left: calc(100% + 220px); } } /* BOAT */ .boat { position: absolute; left: 63%; top: 56%; width: 150px; height: 110px; z-index: 5; animation: boatFloat 4s ease-in-out infinite; } .mast { position: absolute; left: 72px; top: 2px; width: 4px; height: 78px; background: #46362d; border-radius: 4px; } .sail { position: absolute; left: 24px; top: 5px; width: 46px; height: 65px; background: rgba(255, 244, 221, 0.95); clip-path: polygon( 100% 0, 100% 100%, 0 85% ); filter: drop-shadow( 2px 3px 2px rgba(0, 0, 0, 0.15) ); } .hull { position: absolute; left: 25px; top: 72px; width: 105px; height: 27px; background: #4a3027; border-radius: 5px 5px 45px 45px; transform: skewX(-8deg); box-shadow: inset 0 -5px 0 rgba(0, 0, 0, 0.18); } @keyframes boatFloat { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-8px) rotate(2deg); } } /* OCEAN */ .ocean { position: absolute; left: 0; bottom: 0; width: 100%; height: 40%; overflow: hidden; background: linear-gradient( to bottom, #2f7fa3, #205c7d 45%, #143f5b ); } /* LIGHT REFLECTION */ .ocean::before { content: ""; position: absolute; top: 0; left: 50%; width: 240px; height: 100%; transform: translateX(-50%) perspective(300px) rotateX(55deg); transform-origin: top; background: repeating-linear-gradient( to bottom, rgba(255, 222, 155, 0.6) 0, rgba(255, 222, 155, 0.6) 3px, transparent 4px, transparent 14px ); opacity: 0.42; filter: blur(1px); } /* WAVES */ .wave { position: absolute; left: -50%; width: 200%; height: 150px; border-radius: 50%; animation: waveMove linear infinite; } /* back wave */ .wave-back { top: -65px; background: rgba( 81, 159, 188, 0.7 ); animation-duration: 13s; } /* middle wave */ .wave-mid { top: -30px; background: rgba( 45, 124, 157, 0.8 ); animation-duration: 9s; animation-direction: reverse; } /* front wave */ .wave-front { top: 10px; background: rgba( 28, 91, 124, 0.95 ); animation-duration: 7s; } @keyframes waveMove { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(7%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } } /* SMALL RIPPLE DETAILS */ .ocean::after { content: ""; position: absolute; inset: 0; background: repeating-radial-gradient( ellipse at center, transparent 0, transparent 18px, rgba(255, 255, 255, 0.035) 19px, transparent 22px ); animation: rippleMove 9s linear infinite; } @keyframes rippleMove { from { transform: translateX(-20px); } to { transform: translateX(20px); } } /* RESPONSIVE */ @media (max-width: 700px) { .sun { width: 80px; height: 80px; } .boat { left: 58%; transform: scale(0.8); } .ocean { height: 43%; } }
terminal
JavaScript Console
Preview
Clear
close
›
Run