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>Visual Journal Layout</title> </head> <body> <!-- Start your code here --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:wght@400;500;600&family=DM+Mono:wght@400;500&display=swap" rel="stylesheet"> <div class="page"> <header class="nav"> <div class="logo"> MEDITERRANEA </div> <div class="nav-center"> VISUAL JOURNAL / 024 </div> <div class="nav-right"> <span>ITALY</span> <span>·</span> <span>2026</span> </div> </header> <main> <section class="hero"> <div class="hero-copy"> <div class="eyebrow"> A STUDY OF PLACE </div> <h1> The <em>Mediterranean</em> Light </h1> <p> Salt in the air. Sun on stone. A landscape shaped by water, architecture and time. </p> <div class="location"> <span class="pin">+</span> CINQUE TERRE / ITALY </div> </div> <figure class="hero-image"> <img src="https://images.unsplash.com/photo-1748039617541-a75ff7fe2844?auto=format&fit=crop&fm=jpg&q=85&w=1800" alt="Colorful coastal village beside the Mediterranean Sea" > <figcaption> VERNazza, ITALY / 44°08′N 9°41′E </figcaption> </figure> <div class="vertical-note"> <span>SEA</span> <span>STONE</span> <span>LIGHT</span> </div> </section> <section class="intro-grid"> <div class="section-number"> 01 </div> <div class="statement"> <span class="label">THE IDEA</span> <h2> Where <i>color</i> meets architecture. </h2> </div> <div class="description"> <p> Mediterranean towns are built from contrast: pale stone against deep blue, weathered walls against saturated shutters, rough textures against clear water. </p> <a href="#"> EXPLORE THE COLLECTION <span>↗</span> </a> </div> </section> <section class="gallery"> <div class="gallery-image image-one"> <img src="https://images.unsplash.com/photo-1748039617541-a75ff7fe2844?auto=format&fit=crop&fm=jpg&q=80&w=1000" alt="Mediterranean coastal village" > </div> <div class="gallery-card"> <div class="card-number"> 02 </div> <div class="card-title"> <span>PALETTE</span> <strong> COBALT / TERRA / CHALK </strong> </div> <div class="swatches"> <i></i> <i></i> <i></i> <i></i> </div> </div> <div class="large-word"> MARE </div> </section> <section class="quote"> <div class="quote-mark"> “ </div> <blockquote> There are places where architecture seems to have grown directly from the landscape. </blockquote> <div class="quote-meta"> FIELD NOTE / 024 </div> </section> </main> <footer> <span> MEDITERRANEA / VISUAL JOURNAL </span> <div class="footer-line"></div> <span> PHOTOGRAPHY / UNSPLASH </span> </footer> </div> <!-- End your code here --> </body> </html>
* { box-sizing: border-box; } html, body { margin: 0; width: 100%; min-height: 100%; } body { background: #efe9dc; color: #173b4b; font-family: "DM Sans", sans-serif; } img { display: block; width: 100%; } /* ========================================= PAGE ========================================= */ .page { min-height: 100vh; padding: 0 clamp(22px, 5vw, 75px); overflow: hidden; background: radial-gradient( circle at 82% 17%, rgba(217, 108, 72, .09), transparent 25% ), #efe9dc; } /* ========================================= NAV ========================================= */ .nav { height: 78px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid rgba(23, 59, 75, .22); font-family: "DM Mono", monospace; font-size: 8px; letter-spacing: 1.7px; } .logo { font-weight: 500; } .nav-center { opacity: .52; } .nav-right { display: flex; justify-content: flex-end; gap: 8px; opacity: .6; } /* ========================================= HERO ========================================= */ .hero { position: relative; min-height: min(720px, 78vh); display: grid; grid-template-columns: 42% 58%; align-items: center; padding: clamp(45px, 7vh, 90px) 0 70px; } /* ========================================= HERO COPY ========================================= */ .hero-copy { position: relative; z-index: 3; padding-left: 7%; } .eyebrow { font-family: "DM Mono", monospace; font-size: 8px; letter-spacing: 2px; color: rgba(23, 59, 75, .52); margin-bottom: 20px; } .hero h1 { margin: 0; max-width: 590px; font-family: "DM Serif Display", Georgia, serif; font-size: clamp(70px, 10vw, 150px); line-height: .82; letter-spacing: -.055em; font-weight: 400; } .hero h1 em { display: block; color: #c65e43; font-style: italic; padding-left: .16em; } .hero-copy p { max-width: 290px; margin: 35px 0 28px 15%; font-size: 12px; line-height: 1.7; color: rgba(23, 59, 75, .65); } .location { display: flex; align-items: center; gap: 9px; margin-left: 15%; font-family: "DM Mono", monospace; font-size: 8px; letter-spacing: 1.5px; color: rgba(23, 59, 75, .72); } .pin { width: 17px; height: 17px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(23, 59, 75, .5); border-radius: 50%; font-size: 10px; } /* ========================================= HERO IMAGE ========================================= */ .hero-image { position: relative; width: 100%; margin: 0; align-self: center; transform: rotate(1.3deg); box-shadow: 25px 28px 0 rgba(23,59,75,.11); transition: transform .7s cubic-bezier(.16,1,.3,1), box-shadow .7s cubic-bezier(.16,1,.3,1); } .hero-image:hover { transform: rotate(0deg) translateY(-7px); box-shadow: 18px 20px 0 rgba(23,59,75,.08); } .hero-image img { height: clamp(390px, 59vh, 620px); object-fit: cover; filter: saturate(.92) contrast(.99); } .hero-image::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient( 135deg, rgba(255,255,255,.06), transparent 50% ); } .hero-image figcaption { position: absolute; right: 13px; bottom: 11px; z-index: 3; color: rgba(255,255,255,.78); font-family: "DM Mono", monospace; font-size: 7px; letter-spacing: 1.2px; text-shadow: 0 1px 4px rgba(0,0,0,.35); } /* ========================================= VERTICAL LABEL ========================================= */ .vertical-note { position: absolute; left: -8px; bottom: 118px; display: flex; gap: 16px; transform: rotate(-90deg); transform-origin: center; font-family: "DM Mono", monospace; font-size: 7px; letter-spacing: 2px; color: rgba(23,59,75,.38); } /* ========================================= INTRO ========================================= */ .intro-grid { display: grid; grid-template-columns: .15fr 1fr .8fr; gap: 30px; padding: 70px 8%; border-top: 1px solid rgba(23,59,75,.22); } .section-number { font-family: "DM Mono", monospace; font-size: 10px; color: rgba(23,59,75,.45); } .label { display: block; margin-bottom: 18px; font-family: "DM Mono", monospace; font-size: 8px; letter-spacing: 2px; color: rgba(23,59,75,.45); } .statement h2 { margin: 0; max-width: 570px; font-family: "DM Serif Display", serif; font-size: clamp(38px, 5vw, 72px); font-weight: 400; line-height: .95; letter-spacing: -.045em; } .statement h2 i { color: #c65e43; font-style: italic; } .description { align-self: end; max-width: 310px; } .description p { margin: 0 0 25px; font-size: 11px; line-height: 1.7; color: rgba(23,59,75,.6); } .description a { color: #173b4b; text-decoration: none; font-family: "DM Mono", monospace; font-size: 8px; letter-spacing: 1.3px; border-bottom: 1px solid rgba(23,59,75,.35); padding-bottom: 5px; } .description a span { margin-left: 6px; } /* ========================================= GALLERY ========================================= */ .gallery { position: relative; min-height: 560px; padding: 30px 5% 90px; display: grid; grid-template-columns: 1.25fr .65fr; align-items: center; gap: 40px; } /* image */ .gallery-image { overflow: hidden; transform: rotate(-1deg); box-shadow: -18px 20px 0 rgba(198,94,67,.16); } .gallery-image img { height: 460px; object-fit: cover; } /* palette card */ .gallery-card { position: relative; height: 310px; padding: 35px; display: flex; flex-direction: column; justify-content: space-between; background: #17475a; color: #efe9dc; transform: rotate(2.3deg); box-shadow: 16px 19px 0 rgba(23,59,75,.12); } .card-number { font-family: "DM Mono", monospace; font-size: 9px; opacity: .55; } .card-title span { display: block; margin-bottom: 12px; font-family: "DM Mono", monospace; font-size: 7px; letter-spacing: 2px; opacity: .55; } .card-title strong { display: block; max-width: 180px; font-family: "DM Serif Display", serif; font-size: 34px; line-height: .9; font-weight: 400; } /* swatches */ .swatches { display: flex; gap: 7px; } .swatches i { display: block; width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); } .swatches i:nth-child(1) { background: #17475a; } .swatches i:nth-child(2) { background: #c65e43; } .swatches i:nth-child(3) { background: #efe9dc; } .swatches i:nth-child(4) { background: #69794c; } /* large word */ .large-word { position: absolute; right: -30px; bottom: 15px; font-family: "DM Serif Display", serif; font-size: clamp(100px, 19vw, 280px); line-height: .6; font-style: italic; color: rgba(198,94,67,.14); pointer-events: none; } /* ========================================= QUOTE ========================================= */ .quote { padding: 100px 14% 110px; border-top: 1px solid rgba(23,59,75,.22); text-align: center; } .quote-mark { font-family: "DM Serif Display", serif; font-size: 70px; line-height: .6; color: #c65e43; } blockquote { max-width: 820px; margin: 25px auto; font-family: "DM Serif Display", serif; font-size: clamp(32px, 5vw, 65px); line-height: 1; letter-spacing: -.045em; font-weight: 400; } .quote-meta { font-family: "DM Mono", monospace; font-size: 8px; letter-spacing: 2px; color: rgba(23,59,75,.42); } /* ========================================= FOOTER ========================================= */ footer { min-height: 65px; display: flex; align-items: center; gap: 18px; border-top: 1px solid rgba(23,59,75,.22); font-family: "DM Mono", monospace; font-size: 7px; letter-spacing: 1.4px; color: rgba(23,59,75,.48); } .footer-line { flex: 1; height: 1px; background: rgba(23,59,75,.18); } /* ========================================= RESPONSIVE ========================================= */ @media (max-width: 850px) { .nav { grid-template-columns: 1fr auto; } .nav-center { display: none; } .hero { grid-template-columns: 1fr; padding-top: 55px; gap: 45px; } .hero-copy { padding-left: 4%; } .hero-copy p, .location { margin-left: 8%; } .hero-image { width: 88%; margin-left: auto; } .vertical-note { display: none; } .intro-grid { grid-template-columns: 1fr; padding-left: 4%; padding-right: 4%; } .gallery { grid-template-columns: 1fr; padding-left: 3%; padding-right: 3%; } .gallery-card { width: 60%; margin-left: auto; } } @media (max-width: 500px) { .hero h1 { font-size: 70px; } .hero-image { width: 100%; transform: none; } .hero-image img { height: 360px; } .gallery-card { width: 80%; } .large-word { right: -10px; } footer { gap: 10px; } }
// Write JavaScript here
terminal
JavaScript Console
Preview
Clear
close
›
Run