Skip to content

Commit 2c836de

Browse files
committed
Visually more appealing welcome panel
1 parent 6c1c8f5 commit 2c836de

2 files changed

Lines changed: 177 additions & 22 deletions

File tree

css/main.css

Lines changed: 163 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -292,32 +292,177 @@ body {
292292
}
293293

294294
#welcome-panel {
295-
width: 40%;
296-
left: 50%;
295+
position: fixed;
296+
top: 0;
297+
left: 0;
298+
width: 100vw;
299+
height: 100vh;
300+
display: none;
301+
z-index: 2000;
302+
background: linear-gradient(135deg, rgba(0, 0, 0, 0.8) 0%, rgba(40, 40, 40, 0.9) 100%);
303+
backdrop-filter: blur(10px);
304+
animation: fadeIn 0.5s ease-out;
305+
}
306+
307+
@keyframes fadeIn {
308+
from {
309+
opacity: 0;
310+
}
311+
to {
312+
opacity: 1;
313+
}
314+
}
315+
316+
.welcome-container {
317+
position: absolute;
297318
top: 50%;
298-
padding: 30px;
319+
left: 50%;
299320
transform: translate(-50%, -50%);
300-
position: absolute;
321+
width: min(90vw, 600px);
322+
max-width: 600px;
323+
min-width: 320px;
324+
background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
325+
border-radius: 20px;
326+
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
327+
border: 1px solid rgba(255, 255, 255, 0.1);
328+
padding: 40px;
301329
text-align: center;
302-
z-index: 1000;
303-
color: azure;
304-
background: rgb(40, 40, 40);
305-
border: solid 1px white;
330+
animation: slideInUp 0.6s ease-out 0.2s both;
331+
}
332+
333+
@keyframes slideInUp {
334+
from {
335+
opacity: 0;
336+
transform: translate(-50%, -40%);
337+
}
338+
to {
339+
opacity: 1;
340+
transform: translate(-50%, -50%);
341+
}
342+
}
343+
344+
.welcome-logo {
345+
width: 120px;
346+
height: 120px;
347+
margin: 0 auto 30px;
348+
display: block;
349+
filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
350+
animation: logoFloat 3s ease-in-out infinite;
351+
}
352+
353+
@keyframes logoFloat {
354+
0%,
355+
100% {
356+
transform: translateY(0px);
357+
}
358+
50% {
359+
transform: translateY(-10px);
360+
}
361+
}
362+
363+
.welcome-title {
364+
font-size: clamp(24px, 4vw, 32px);
365+
font-weight: 600;
366+
color: #ffffff;
367+
margin-bottom: 20px;
368+
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
369+
letter-spacing: 0.5px;
370+
}
371+
372+
.welcome-subtitle {
373+
font-size: clamp(16px, 2.5vw, 18px);
374+
color: #cccccc;
375+
margin-bottom: 40px;
376+
line-height: 1.6;
377+
font-weight: 300;
378+
}
379+
380+
.welcome-button {
381+
background: linear-gradient(135deg, #04aa6d 0%, #059669 100%);
382+
color: white;
383+
border: none;
306384
border-radius: 12px;
307-
display: none;
385+
padding: 16px 32px;
386+
font-size: 16px;
387+
font-weight: 600;
388+
cursor: pointer;
389+
transition: all 0.3s ease;
390+
box-shadow: 0 4px 15px rgba(4, 170, 109, 0.3);
391+
text-transform: uppercase;
392+
letter-spacing: 1px;
393+
position: relative;
394+
overflow: hidden;
308395
}
309396

310-
#welcome-panel img {
311-
width: 60%;
397+
.welcome-button::before {
398+
content: '';
399+
position: absolute;
400+
top: 0;
401+
left: -100%;
402+
width: 100%;
403+
height: 100%;
404+
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
405+
transition: left 0.5s;
312406
}
313407

314-
#welcome-panel button {
315-
margin-top: 30px;
316-
padding: 10px;
317-
color: azure;
318-
background: linear-gradient(to bottom, #328e3a 0%, #5fc768 100%);
319-
border: solid 1px white;
320-
border-radius: 6px;
408+
.welcome-button:hover {
409+
transform: translateY(-2px);
410+
box-shadow: 0 8px 25px rgba(4, 170, 109, 0.4);
411+
background: linear-gradient(135deg, #059669 0%, #04aa6d 100%);
412+
}
413+
414+
.welcome-button:hover::before {
415+
left: 100%;
416+
}
417+
418+
.welcome-button:active {
419+
transform: translateY(0);
420+
box-shadow: 0 4px 15px rgba(4, 170, 109, 0.3);
421+
}
422+
423+
/* Responsive adjustments */
424+
@media (max-width: 768px) {
425+
.welcome-container {
426+
width: 95vw;
427+
padding: 30px 20px;
428+
}
429+
430+
.welcome-logo {
431+
width: 100px;
432+
height: 100px;
433+
margin-bottom: 25px;
434+
}
435+
436+
.welcome-title {
437+
margin-bottom: 15px;
438+
}
439+
440+
.welcome-subtitle {
441+
margin-bottom: 30px;
442+
}
443+
444+
.welcome-button {
445+
padding: 14px 28px;
446+
font-size: 14px;
447+
}
448+
}
449+
450+
@media (max-width: 480px) {
451+
.welcome-container {
452+
width: 98vw;
453+
padding: 25px 15px;
454+
}
455+
456+
.welcome-logo {
457+
width: 80px;
458+
height: 80px;
459+
margin-bottom: 20px;
460+
}
461+
462+
.welcome-button {
463+
padding: 12px 24px;
464+
font-size: 13px;
465+
}
321466
}
322467

323468
#station-context-menu {

index.html

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,20 @@
4242
<div id="interactive" class="popup editor"></div>
4343

4444
<div id="welcome-panel">
45-
<img src="images/logo.png" /><br /><br />Welcome to Speleo Studio.<br />
46-
<button onclick="this.parentNode.style.display='none'; localStorage.setItem('welcome', 'false'); ">
47-
Let's get started
48-
</button>
45+
<div class="welcome-container">
46+
<img src="images/logo.png" alt="Speleo Studio Logo" class="welcome-logo" />
47+
<h1 class="welcome-title">Welcome to Speleo Studio</h1>
48+
<p class="welcome-subtitle">
49+
Your comprehensive cave visualization and survey management platform.<br />
50+
Explore, analyze, and visualize cave systems with professional tools.
51+
</p>
52+
<button
53+
class="welcome-button"
54+
onclick="this.closest('#welcome-panel').style.display='none'; localStorage.setItem('welcome', 'false');"
55+
>
56+
Let's Get Started
57+
</button>
58+
</div>
4959
</div>
5060
<div id="fixed-size-editor" class="popup"> </div>
5161
<div id="resizable-editor" class="popup"></div>

0 commit comments

Comments
 (0)