Skip to content

Commit 0878c9d

Browse files
committed
First website draft
1 parent 29dc058 commit 0878c9d

11 files changed

Lines changed: 1057 additions & 3 deletions

File tree

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,3 @@ Thumbs.db
4545

4646
# Coverage reports
4747
coverage/
48-
49-
# Website (not part of core package)
50-
www/

www/.gitignore

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# dependencies (bun install)
2+
node_modules
3+
4+
# output
5+
out
6+
dist
7+
*.tgz
8+
9+
# code coverage
10+
coverage
11+
*.lcov
12+
13+
# logs
14+
logs
15+
_.log
16+
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
17+
18+
# dotenv environment variable files
19+
.env
20+
.env.development.local
21+
.env.test.local
22+
.env.production.local
23+
.env.local
24+
25+
# caches
26+
.eslintcache
27+
.cache
28+
*.tsbuildinfo
29+
30+
# IntelliJ based IDEs
31+
.idea
32+
33+
# Finder (MacOS) folder config
34+
.DS_Store
35+
36+
.next

www/app/globals.css

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');
2+
@import "tailwindcss";
3+
4+
@theme {
5+
--font-display: 'Space Grotesk', system-ui, sans-serif;
6+
--font-mono: 'DM Mono', ui-monospace, SFMono-Regular, monospace;
7+
8+
--color-bg: #050505;
9+
--color-bg-elevated: #0a0a0a;
10+
--color-bg-card: #0f0f0f;
11+
--color-border: #1a1a1a;
12+
--color-border-bright: #2a2a2a;
13+
--color-text: #fafafa;
14+
--color-text-secondary: #a1a1a1;
15+
--color-text-muted: #525252;
16+
--color-accent: #22ff88;
17+
--color-accent-glow: rgba(34, 255, 136, 0.15);
18+
--color-accent-dim: #1acc6d;
19+
--color-cap-blue: #4f7cff;
20+
}
21+
22+
* {
23+
box-sizing: border-box;
24+
}
25+
26+
html {
27+
scroll-behavior: smooth;
28+
}
29+
30+
body {
31+
font-family: var(--font-display);
32+
background-color: var(--color-bg);
33+
color: var(--color-text);
34+
-webkit-font-smoothing: antialiased;
35+
-moz-osx-font-smoothing: grayscale;
36+
overflow-x: hidden;
37+
}
38+
39+
::selection {
40+
background-color: var(--color-accent);
41+
color: var(--color-bg);
42+
}
43+
44+
@keyframes gradient-shift {
45+
0%, 100% { background-position: 0% 50%; }
46+
50% { background-position: 100% 50%; }
47+
}
48+
49+
@keyframes float {
50+
0%, 100% { transform: translateY(0px); }
51+
50% { transform: translateY(-6px); }
52+
}
53+
54+
@keyframes pulse-glow {
55+
0%, 100% { opacity: 0.4; }
56+
50% { opacity: 0.8; }
57+
}
58+
59+
@keyframes slide-up {
60+
from {
61+
opacity: 0;
62+
transform: translateY(20px);
63+
}
64+
to {
65+
opacity: 1;
66+
transform: translateY(0);
67+
}
68+
}
69+
70+
@keyframes bar-fill {
71+
from { transform: scaleX(0); }
72+
to { transform: scaleX(1); }
73+
}
74+
75+
@keyframes speed-lines {
76+
0% { transform: translateX(-100%); opacity: 0; }
77+
50% { opacity: 1; }
78+
100% { transform: translateX(100%); opacity: 0; }
79+
}
80+
81+
.animate-slide-up {
82+
animation: slide-up 0.6s ease-out forwards;
83+
}
84+
85+
.animate-bar-fill {
86+
animation: bar-fill 1s ease-out forwards;
87+
transform-origin: left;
88+
}
89+
90+
.speed-line {
91+
position: absolute;
92+
height: 1px;
93+
width: 60px;
94+
background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
95+
animation: speed-lines 2s ease-in-out infinite;
96+
}
97+
98+
.glow-orb {
99+
position: absolute;
100+
border-radius: 50%;
101+
filter: blur(80px);
102+
animation: pulse-glow 4s ease-in-out infinite;
103+
pointer-events: none;
104+
}
105+
106+
.grid-bg {
107+
background-image:
108+
linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
109+
linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
110+
background-size: 60px 60px;
111+
}
112+
113+
.noise-overlay {
114+
position: fixed;
115+
top: 0;
116+
left: 0;
117+
width: 100%;
118+
height: 100%;
119+
pointer-events: none;
120+
opacity: 0.015;
121+
z-index: 100;
122+
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
123+
}
124+
125+
.terminal-cursor {
126+
display: inline-block;
127+
width: 8px;
128+
height: 18px;
129+
background: var(--color-accent);
130+
margin-left: 2px;
131+
animation: blink 1s step-end infinite;
132+
}
133+
134+
@keyframes blink {
135+
0%, 50% { opacity: 1; }
136+
51%, 100% { opacity: 0; }
137+
}
138+
139+
.benchmark-bar-inner {
140+
background: linear-gradient(90deg, var(--color-accent), var(--color-accent-dim));
141+
box-shadow: 0 0 20px var(--color-accent-glow), inset 0 1px 0 rgba(255,255,255,0.1);
142+
}
143+
144+
.benchmark-bar-slow {
145+
background: linear-gradient(90deg, #3a3a3a, #2a2a2a);
146+
}
147+
148+
.card-glow {
149+
box-shadow:
150+
0 0 0 1px var(--color-border),
151+
0 4px 24px rgba(0,0,0,0.4),
152+
0 0 80px -20px var(--color-accent-glow);
153+
}
154+
155+
.hover-lift {
156+
transition: transform 0.3s ease, box-shadow 0.3s ease;
157+
}
158+
159+
.hover-lift:hover {
160+
transform: translateY(-2px);
161+
box-shadow:
162+
0 0 0 1px var(--color-border-bright),
163+
0 8px 32px rgba(0,0,0,0.5),
164+
0 0 100px -20px var(--color-accent-glow);
165+
}
166+
167+
.text-gradient {
168+
background: linear-gradient(135deg, var(--color-accent) 0%, #88ffcc 50%, var(--color-accent) 100%);
169+
background-size: 200% auto;
170+
-webkit-background-clip: text;
171+
-webkit-text-fill-color: transparent;
172+
background-clip: text;
173+
animation: gradient-shift 3s ease-in-out infinite;
174+
}
175+
176+
.cap-logo-hover {
177+
transition: all 0.3s ease;
178+
}
179+
180+
.cap-logo-hover:hover {
181+
filter: brightness(1.2);
182+
transform: scale(1.02);
183+
}

www/app/layout.tsx

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import type { Metadata } from "next";
2+
import "./globals.css";
3+
4+
export const metadata: Metadata = {
5+
title: "globlin – A faster glob for Node.js",
6+
description:
7+
"20-30x faster drop-in replacement for glob. Built in Rust with NAPI-RS.",
8+
keywords: ["glob", "node.js", "rust", "fast", "pattern matching", "file system"],
9+
};
10+
11+
export default function RootLayout({
12+
children,
13+
}: {
14+
children: React.ReactNode;
15+
}) {
16+
return (
17+
<html lang="en">
18+
<body>{children}</body>
19+
</html>
20+
);
21+
}

0 commit comments

Comments
 (0)