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> <script type="text/javascript" src="https://code.jquery.com/jquery-3.6.4.min.js"></script> <title>Analog Luxury Digital Clock</title> <!-- Author Credit: https://vineethtrv.github.io/ --> </head> <body> <!-- Start your code here --> <div class="clock-container"> <div class="clock-digital"> <div class="date"></div> <div class="time"></div> <div class="day"> </div> </div> <div class="clock-analog"> <div class="spear"></div> <div class="hour"></div> <div class="minute"></div> <div class="second"></div> <div class="dail"></div> </div> </div> <!-- End your code here --> </body> </html>
@import url("https://fonts.googleapis.com/css?family=BenchNine:300,400"); *, *:after, *:before { box-sizing: border-box; } html { background: #222; overflow: hidden; font-family: 'BenchNine', sans-serif; } .clock-container { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 480px; height: 480px; border-radius: 50%; overflow: hidden; background: #111; box-shadow: 0 0 25px 3px #000, 0 0 10px rgba(0, 0, 0, 0.8) inset; } .clock-container .spear { position: absolute; width: 220px; height: 1px; background: red; left: 50%; top: 50%; transform: translateY(-50%); z-index: 200; box-shadow: 0 3px 3px rgba(0, 0, 0, 0.4); } .clock-container .spear:after { content: ''; position: absolute; border: 7px solid transparent; border-right-color: red; right: 0; top: -7px; } .clock-container .spear:before { content: ''; position: absolute; border: 7px solid transparent; border-left-color: red; left: 2px; top: -7px; } .clock-container .clock-analog { width: 440px; height: 440px; border-radius: 50%; margin: 20px; background: #fff; z-index: 5; position: relative; box-shadow: 0 0 25px 3px #000 inset; } .clock-container .clock-analog .second, .clock-container .clock-analog .minute, .clock-container .clock-analog .hour { width: 20px; height: 20px; position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; z-index: 100; transition: 0.2s 0.2s ease-in; transform: rotate(90deg); } .clock-container .clock-analog .second span, .clock-container .clock-analog .minute span, .clock-container .clock-analog .hour span { position: absolute; width: 20px; height: 20px; line-height: 20px; text-align: center; transform-origin: 50%; z-index: 5; } .clock-container .clock-analog .second span:after, .clock-container .clock-analog .minute span:after, .clock-container .clock-analog .hour span:after { content: ''; width: 4px; height: 1px; background: #000; position: absolute; left: 130%; top: -10%; opacity: 0.3; } .clock-container .clock-analog .second span:nth-child(5n + 2):after, .clock-container .clock-analog .minute span:nth-child(5n + 2):after, .clock-container .clock-analog .hour span:nth-child(5n + 2):after { width: 7px; opacity: 1; left: 110%; } .clock-container .clock-analog .hour { z-index: 150; font-size: 32px; font-weight: 400; } .clock-container .clock-analog .hour span:after { opacity: 1; width: 4px; height: 1px; color: #666; transform: translate(5px, 12px); } .clock-container .clock-analog .hour:after { content: ''; background: #fff; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 250px; height: 250px; border-radius: 50%; box-shadow: 0 0 15px 2px rgba(0, 0, 0, 0.6) inset; } .clock-container .clock-analog .minute { color: #fff; font-size: 16px; } .clock-container .clock-analog .minute span:after { background: #fff; transform: translate(10px, -7px) rotate(-9deg); } .clock-container .clock-analog .minute:after { content: ''; background: #333; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 350px; height: 350px; border-radius: 50%; box-shadow: 0 0 25px 2px #000 inset; } .clock-container .clock-analog .second { font-size: 12px; } .clock-container .clock-analog .second span:after { transform: translate(5px, -10px); } .clock-container .clock-analog .dail { width: 20px; height: 20px; position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; z-index: 100; } .clock-container .clock-analog .dail span { width: 20px; height: 20px; line-height: 20px; transform-origin: 50%; text-indent: 1000px; overflow: hidden; position: absolute; } .clock-container .clock-analog .dail span:after { content: ''; position: absolute; width: 4px; height: 4px; border-radius: 50%; background-color: #7d7e7d; *zoom: 1; filter: progid:DXImageTransform.Microsoft.gradient(gradientType=1, startColorstr='#FF7D7E7D', endColorstr='#FF0E0E0E'); background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdkN2U3ZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzBlMGUwZSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: linear-gradient(to right, #7d7e7d 0%, #0e0e0e 100%); left: 50%; top: 50%; transform: translate(-50%, -50%); } .clock-container .clock-analog .dail span:nth-child(5n + 1):after { width: 8px; } .clock-container .clock-digital { position: absolute; z-index: 200; height: 444px; width: 224px; background: #090909; left: 18px; top: 18px; border-radius: 220px 0 0 220px; box-shadow: 5px 0 15px #000; } .clock-container .clock-digital:after { content: ''; position: absolute; border: 15px solid #8e0a0a; border-right: none; height: 400px; width: 200px; border-radius: 220px 0 0 220px; left: 25px; top: 25px; } .clock-container .clock-digital .time { background: #111; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: #fff; border-radius: 50px; font-size: 24px; padding: 2px 20px; box-shadow: 0 0 15px #000 inset; } .clock-container .clock-digital .day { background: #111; position: absolute; right: 20px; bottom: 100px; color: #fff; border-radius: 20px; box-shadow: 0 0 15px #000 inset; padding: 2px 20px; font-size: 16px; } .clock-container .clock-digital .date { background: #111; position: absolute; right: 20px; top: 100px; color: #fff; border-radius: 20px; font-size: 16px; box-shadow: 0 0 10px #000 inset; padding: 2px 20px; }
(function() { var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; function getTime() { var date = new Date(), second = date.getSeconds() , minute = date.getMinutes() , hour = date.getHours() , time = date.toLocaleString('en-US', { hour: 'numeric',minute:'numeric', hour12: true }), day = date.getDay() , month = date.getMonth() , date = date.getDate() +' . '+ months[month], ds = second * -6, dm = minute * -6, dh = hour * -30; $('.second').css('transform', 'rotate(' + ds + 'deg)'); $('.minute').css('transform', 'rotate(' + dm + 'deg)'); $('.hour').css('transform', 'rotate(' + dh + 'deg)'); $('.time').text(time); $('.day').text(days[day]); $('.date').text( date ) } function dailer( selector , size){ for(var s = 0; s < 60 ; s++){ $(selector).append('<span style="transform: rotate('+ 6 * s +'deg) translateX('+ size +'px)">'+s+'</span>') } } dailer( '.second' , 195); dailer( '.minute' , 145); dailer( '.dail' , 230); for(var s = 1; s < 13 ; s++){ $('.hour').append('<span style="transform: rotate('+ 30 * s +'deg) translateX(100px)">'+s+'</span>') } setInterval(getTime, 1000); getTime(); } ());
terminal
JavaScript Console
Preview
Clear
close
›
Run