Skip to content

Commit 260a959

Browse files
committed
awesome demo section
1 parent 1ba6be6 commit 260a959

File tree

5 files changed

+156
-5
lines changed

5 files changed

+156
-5
lines changed

docs/intro.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@ GameVault consists of two components:
1616
- A client application to use this server
1717

1818
:::tip Try it out!
19-
If you don't have a server yet, but want to try it out, you can connect your GameVault Client to our demo server to get a feel for how it works.
20-
[Click here to learn more.](client-docs/setup#option-2-using-the-demo-server)
19+
If you don't have a server yet, but want to try it out, you can use our demo server to get a feel for how it is:
20+
21+
**URL**: https://demo.gamevau.lt
22+
**Username**: demo
23+
**Password**: demodemo
2124
:::
2225

2326
## Features

src/components/DemoSection.jsx

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
import React, { useState } from "react";
2+
import { Button } from "./Button";
3+
import { Container } from "./Container";
4+
5+
export function DemoSection() {
6+
const [copiedField, setCopiedField] = useState(null);
7+
8+
const copyToClipboard = (text, field) => {
9+
navigator.clipboard.writeText(text);
10+
setCopiedField(field);
11+
setTimeout(() => setCopiedField(null), 2000);
12+
};
13+
14+
return (
15+
<section
16+
id="demo"
17+
className="relative overflow-hidden py-24 sm:py-32 bg-background-dark"
18+
>
19+
{/* Techy Background */}
20+
<div className="absolute inset-0 -z-10">
21+
<div className="absolute inset-0 bg-[linear-gradient(to_right,#80808005_1px,transparent_1px),linear-gradient(to_bottom,#80808005_1px,transparent_1px)] bg-[size:32px_32px]" />
22+
<div className="absolute top-0 left-1/2 -translate-x-1/2 w-full h-px bg-gradient-to-r from-transparent via-primary-default/30 to-transparent" />
23+
</div>
24+
25+
<Container className="relative">
26+
<div className="mx-auto max-w-4xl">
27+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
28+
<div className="text-center lg:text-left">
29+
30+
<h2 className="font-display text-4xl font-black tracking-tight text-text-default sm:text-5xl uppercase">
31+
Ready to{" "}
32+
<span className="inline-block text-transparent bg-clip-text bg-gradient-to-r from-primary-default to-primary-light pr-2">
33+
Explore?
34+
</span>
35+
</h2>
36+
<p className="mt-6 text-lg leading-8 text-text-light opacity-80">
37+
Experience GameVault firsthand in our public demo. No
38+
installation required. Use the credentials provided to log in
39+
and explore all the features GameVault has to offer.
40+
</p>
41+
<div className="mt-10">
42+
<Button
43+
href="https://demo.gamevau.lt"
44+
target="_blank"
45+
className="w-full sm:w-auto px-12 py-4 text-xl shadow-xl transition-all hover:scale-105 active:scale-95 hover:shadow-primary-default/30"
46+
>
47+
Launch Demo
48+
</Button>
49+
</div>
50+
</div>
51+
52+
<div className="relative group">
53+
{/* Clean Tech Credential Box */}
54+
<div className="rounded-2xl border border-white/10 p-6 font-mono text-sm shadow-2xl backdrop-blur-sm relative overflow-hidden">
55+
{/* Subtle Tech Grid Overlay */}
56+
<div className="absolute inset-0 opacity-[0.015] pointer-events-none bg-[linear-gradient(to_right,#fff_1px,transparent_1px),linear-gradient(to_bottom,#fff_1px,transparent_1px)] bg-[size:8px_8px]" />
57+
58+
<div className="flex items-center gap-2 mb-6 border-b border-white/5 pb-4 relative z-10">
59+
<div className="w-2 h-2 rounded-full bg-primary-default animate-pulse" />
60+
<div className="text-[10px] text-text-light/40 uppercase tracking-widest">
61+
Access_Credentials
62+
</div>
63+
</div>
64+
65+
<div className="space-y-6 relative z-10">
66+
<div>
67+
<div className="text-[10px] text-primary-default/60 uppercase mb-2 tracking-tighter">
68+
// Identity
69+
</div>
70+
<button
71+
onClick={() => copyToClipboard("demo", "user")}
72+
className="w-full flex items-center justify-between p-3 rounded-lg bg-white/5 border border-white/5 hover:border-primary-default/40 hover:bg-white/10 transition-all group/item"
73+
>
74+
<span className="text-text-light/50">Username</span>
75+
<div className="flex items-center gap-3">
76+
<code className="text-primary-light text-lg font-bold px-2">
77+
demo
78+
</code>
79+
<span
80+
className={`text-[10px] uppercase tracking-widest transition-all ${
81+
copiedField === "user"
82+
? "text-primary-default opacity-100"
83+
: "text-text-light/20 opacity-0 group-hover/item:opacity-100"
84+
}`}
85+
>
86+
{copiedField === "user" ? "Copied!" : "Copy"}
87+
</span>
88+
</div>
89+
</button>
90+
</div>
91+
92+
<div>
93+
<div className="text-[10px] text-primary-default/60 uppercase mb-2 tracking-tighter">
94+
// Security_Key
95+
</div>
96+
<button
97+
onClick={() => copyToClipboard("demodemo", "pass")}
98+
className="w-full flex items-center justify-between p-3 rounded-lg bg-white/5 border border-white/5 hover:border-primary-default/40 hover:bg-white/10 transition-all group/item"
99+
>
100+
<span className="text-text-light/50">Password</span>
101+
<div className="flex items-center gap-3">
102+
<code className="text-primary-light text-lg font-bold px-2">
103+
demodemo
104+
</code>
105+
<span
106+
className={`text-[10px] uppercase tracking-widest transition-all ${
107+
copiedField === "pass"
108+
? "text-primary-default opacity-100"
109+
: "text-text-light/20 opacity-0 group-hover/item:opacity-100"
110+
}`}
111+
>
112+
{copiedField === "pass" ? "Copied!" : "Copy"}
113+
</span>
114+
</div>
115+
</button>
116+
</div>
117+
</div>
118+
</div>
119+
120+
{/* Subtle Glow */}
121+
<div className="absolute -inset-0.5 bg-gradient-to-r from-primary-default/20 to-primary-light/20 blur opacity-30 -z-10 rounded-2xl group-hover:opacity-50 transition-opacity" />
122+
</div>
123+
</div>
124+
</div>
125+
</Container>
126+
</section>
127+
);
128+
}

src/components/Features.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const features = [
1111
{
1212
title: "Your Personal Game Cloud",
1313
description:
14-
"Host your entire DRM-free collection on your own hardware. Experience a stunning interface that brings the convenience of Steam to your homelab, giving you total ownership of your gaming legacy.",
14+
"Host your entire DRM-free collection on your own hardware. Experience a stunning interface that brings the convenience of Steam to your homelab. Access your library via our native client or directly through the built-in WebUI.",
1515
image: ImgLibrary,
1616
},
1717
{

src/components/Hero.jsx

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import ImgLibrary from "@site/static/img/features/library.png";
2+
import Link from "@docusaurus/Link";
23
import React from "react";
34
import { Button } from "./Button";
45
import { Container } from "./Container";
@@ -19,7 +20,7 @@ export function Hero() {
1920
return (
2021
<div className="relative isolate overflow-hidden bg-background-default">
2122
{/* Background Grid Pattern */}
22-
<div className="absolute inset-0 -z-10 h-full w-full bg-[linear-gradient(to_right,#80808012_1px,transparent_1px),linear-gradient(to_bottom,#80808012_1px,transparent_1px)] bg-[size:40px_40px] [mask-image:radial-gradient(ellipse_60%_50%_at_50%_0%,#000_70%,transparent_100%)]" />
23+
<div className="absolute inset-0 -z-10 h-full w-full bg-[linear-gradient(to_right,#80808008_1px,transparent_1px),linear-gradient(to_bottom,#80808008_1px,transparent_1px)] bg-[size:40px_40px] [mask-image:radial-gradient(ellipse_60%_50%_at_50%_0%,#000_70%,transparent_100%)]" />
2324

2425
{/* Background Glows */}
2526
<div className="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl sm:-top-80" aria-hidden="true">
@@ -29,9 +30,26 @@ export function Hero() {
2930
<Container className="pb-16 pt-10 lg:pt-32">
3031
<div className="grid grid-cols-1 lg:grid-cols-12 gap-12 lg:gap-16 items-center">
3132
<div className="lg:col-span-7 text-center lg:text-left">
33+
<div className="mb-8 flex justify-center lg:justify-start">
34+
<a
35+
href="#demo"
36+
className="group relative inline-flex items-center gap-x-2 rounded-full bg-primary-default/10 px-4 py-1.5 text-sm font-medium leading-6 text-primary-light ring-1 ring-inset ring-primary-default/20 hover:ring-primary-default/40 transition-all duration-300 !no-underline"
37+
>
38+
<span className="relative flex h-2 w-2">
39+
<span className="animate-ping absolute inline-flex h-full w-full rounded-full bg-primary-default opacity-75"></span>
40+
<span className="relative inline-flex rounded-full h-2 w-2 bg-primary-default"></span>
41+
</span>
42+
<span className="flex items-center gap-1.5">
43+
Explore the Live Demo
44+
<svg className="h-3 w-3 transition-transform group-hover:translate-y-0.5 translate-y-[0.5px]" fill="none" viewBox="0 0 24 24" stroke="currentColor">
45+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2.5} d="M19 9l-7 7-7-7" />
46+
</svg>
47+
</span>
48+
</a>
49+
</div>
3250
<h1 className="font-display text-5xl font-black tracking-tight text-text-default sm:text-8xl leading-[0.9] uppercase">
3351
Your Games.<br />
34-
<span className="text-transparent bg-clip-text bg-gradient-to-r from-primary-default via-primary-light to-primary-default drop-shadow-sm">
52+
<span className="inline-block text-transparent bg-clip-text bg-gradient-to-r from-primary-default via-primary-light to-primary-default drop-shadow-sm pr-2">
3553
Your Server.
3654
</span><br />
3755
Your Rules.

src/pages/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
22
import Layout from "@theme/Layout";
33
import React from "react";
44
import * as Swetrix from "swetrix";
5+
import { DemoSection } from "../components/DemoSection";
56
import { Faqs } from "../components/Faqs";
67
import { PrimaryFeatures } from "../components/Features";
78
import { Hero } from "../components/Hero";
@@ -26,6 +27,7 @@ export default function Home() {
2627
<Hero />
2728
</section>
2829
<PrimaryFeatures />
30+
<DemoSection />
2931
<Faqs />
3032
<div className="bg-background-dark py-6">
3133
<p className="text-center text-xs text-text-light opacity-50">

0 commit comments

Comments
 (0)