Skip to content

Commit efc3480

Browse files
first commit
0 parents  commit efc3480

14 files changed

Lines changed: 1332 additions & 0 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: pages
15+
cancel-in-progress: false
16+
17+
jobs:
18+
deploy:
19+
environment:
20+
name: github-pages
21+
url: ${{ steps.deployment.outputs.page_url }}
22+
runs-on: ubuntu-latest
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v4
26+
27+
- name: Setup Pages
28+
uses: actions/configure-pages@v5
29+
30+
- name: Upload artifact
31+
uses: actions/upload-pages-artifact@v3
32+
with:
33+
path: '.'
34+
35+
- name: Deploy to GitHub Pages
36+
id: deployment
37+
uses: actions/deploy-pages@v4

404.html

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<!DOCTYPE html>
2+
<html class="dark" lang="en">
3+
<head>
4+
<meta charset="utf-8"/>
5+
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
6+
<title>404 — Page Not Found | Surge</title>
7+
<meta name="description" content="The page you're looking for doesn't exist."/>
8+
<link rel="icon" type="image/png" href="assets/logo_nobg.png"/>
9+
<link rel="preconnect" href="https://fonts.googleapis.com"/>
10+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
11+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@700;900&family=Fira+Code:wght@400;500&display=swap" rel="stylesheet"/>
12+
<style>
13+
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
14+
body {
15+
background: #0a0518;
16+
color: #ece1ff;
17+
font-family: 'Fira Code', monospace;
18+
display: flex;
19+
align-items: center;
20+
justify-content: center;
21+
min-height: 100vh;
22+
text-align: center;
23+
padding: 2rem;
24+
}
25+
.container { max-width: 600px; }
26+
.code {
27+
font-family: 'Space Grotesk', sans-serif;
28+
font-size: clamp(6rem, 20vw, 10rem);
29+
font-weight: 900;
30+
line-height: 1;
31+
color: #c1fffe;
32+
text-shadow: 0 0 40px rgba(0,255,255,0.4);
33+
letter-spacing: -0.05em;
34+
}
35+
.label {
36+
font-family: 'Fira Code', monospace;
37+
color: #ff51fa;
38+
font-size: 0.75rem;
39+
text-transform: uppercase;
40+
letter-spacing: 0.3em;
41+
margin: 1.5rem 0;
42+
}
43+
h1 {
44+
font-family: 'Space Grotesk', sans-serif;
45+
font-size: 2rem;
46+
font-weight: 900;
47+
color: #fff;
48+
text-transform: uppercase;
49+
letter-spacing: -0.02em;
50+
margin-bottom: 1rem;
51+
}
52+
p {
53+
color: #b1a6c8;
54+
font-size: 0.875rem;
55+
line-height: 1.8;
56+
margin-bottom: 2.5rem;
57+
}
58+
a {
59+
display: inline-block;
60+
padding: 1rem 2.5rem;
61+
background: #c1fffe;
62+
color: #006767;
63+
font-family: 'Space Grotesk', sans-serif;
64+
font-weight: 900;
65+
font-size: 0.875rem;
66+
text-transform: uppercase;
67+
letter-spacing: 0.1em;
68+
text-decoration: none;
69+
border-radius: 12px;
70+
transition: box-shadow 0.2s, transform 0.2s;
71+
}
72+
a:hover {
73+
box-shadow: 0 0 30px rgba(0, 255, 255, 0.4);
74+
transform: translateY(-2px);
75+
}
76+
</style>
77+
</head>
78+
<body>
79+
<div class="container">
80+
<div class="code">404</div>
81+
<p class="label">// ERROR: PAGE_NOT_FOUND</p>
82+
<h1>Signal Lost</h1>
83+
<p>The page you're looking for doesn't exist or has been moved.<br/>Let's get you back to the terminal.</p>
84+
<a href="/">RETURN_HOME</a>
85+
</div>
86+
</body>
87+
</html>

DESIGN.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
```markdown
2+
# Design System Document
3+
4+
## 1. Overview & Creative North Star: "The Neon Terminal"
5+
6+
This design system is a high-performance visual framework built to mirror the raw speed and technical precision of a high-end download manager. Our Creative North Star is **"The Neon Terminal"**—an aesthetic that bridges the gap between a 1980s mainframe and a futuristic cyber-deck.
7+
8+
We reject the "softness" of modern SaaS. Here, we embrace **intentional sharpness**, **high-contrast glowing surfaces**, and **asymmetric editorial layouts**. By utilizing a 0px border radius across the entire system, we create a sense of structural rigidity and technical "un-designed" authenticity. The UI is not just a portal; it is a high-performance instrument.
9+
10+
---
11+
12+
## 2. Colors & The Spectral Void
13+
14+
The palette is rooted in a `surface-dim` (#110924) that simulates the infinite depth of a CRT monitor.
15+
16+
### The Palette
17+
* **Primary (Neon Cyan):** `#c1fffe` (Primary) / `#00ffff` (Container). Use for critical success states and primary CTAs.
18+
* **Secondary (Neon Magenta):** `#ff51fa` (Secondary) / `#a900a9` (Container). Use for accents, "hot" download areas, and high-impact hero elements.
19+
* **Tertiary (Acid Lime):** `#e9ffba`. Reserved for technical highlights and "Completed" statuses.
20+
21+
### The "No-Line" Rule
22+
Traditional 1px solid borders are strictly prohibited for sectioning. Boundaries must be defined through background color shifts. For instance, a `surface-container-low` section should sit against a `surface` background to define its edge.
23+
24+
### Surface Hierarchy & Nesting
25+
Treat the UI as a series of technical modules.
26+
* **Level 0 (Background):** `surface` (#110924).
27+
* **Level 1 (Sectioning):** `surface-container-low`.
28+
* **Level 2 (Cards/Modules):** `surface-container-high`.
29+
Each inner container should use a slightly higher tier to define importance through tonal depth rather than structural lines.
30+
31+
### The "Glass & Gradient" Rule
32+
To elevate the "Synthwave" feel, floating elements (like tooltips or platform selection chips) must utilize **Glassmorphism**. Use `secondary-container` at 20% opacity with a `20px` backdrop-blur. For hero CTAs, apply a linear gradient from `primary` to `primary-dim` at a 135-degree angle to provide visual "soul."
33+
34+
---
35+
36+
## 3. Typography: Editorial Tech
37+
38+
We use a high-contrast pairing to balance marketing impact with technical density.
39+
40+
* **Display & Headlines (Space Grotesk):** This is our "Impact" layer. Use `display-lg` (3.5rem) for hero sections with tight letter-spacing (-0.02em). It conveys the "Surge" brand's speed and modern edge.
41+
* **Technical & Body (Fira Code):** Every piece of metadata, download speed, and body paragraph must be rendered in Fira Code. This reinforces the "Terminal" identity and provides a monospace rhythm that feels deliberate and engineered.
42+
43+
---
44+
45+
## 4. Elevation & Depth: Tonal Layering
46+
47+
We do not use standard material shadows. Depth is achieved through **Tonal Layering** and **Light Leaks**.
48+
49+
* **The Layering Principle:** Stack `surface-container-lowest` cards on a `surface-container-low` section. This creates a soft, natural lift without the need for an artificial shadow.
50+
* **Ambient Glows:** When a "floating" effect is required, shadows must be replaced with "Glows." Use the `primary` or `secondary` token at 10% opacity with a large blur (40px+) to simulate the light emission of a neon tube.
51+
* **The "Ghost Border" Fallback:** If a container requires definition against a complex background, use a **Ghost Border**: `outline-variant` at 15% opacity.
52+
* **Scanline Overlay:** Apply a global fixed-position PNG overlay of horizontal scanlines at 3% opacity to the entire viewport to ground the digital experience in "Retro-Tech" reality.
53+
54+
---
55+
56+
## 5. Components
57+
58+
### High-Impact Hero Section
59+
* **Layout:** Asymmetric. Use `display-lg` text aligned left, with a `secondary` glowing "S" logo element overlapping the text container.
60+
* **Visual:** Background should utilize a subtle gradient transition from `surface` to `surface-bright`.
61+
62+
### Feature Grids (Technical Specs)
63+
* **Card Style:** `surface-container-highest` background, 0px border radius.
64+
* **Header:** `label-md` in `tertiary` (Acid Lime) to mimic terminal code comments (e.g., `// MULTI-THREADED_ENGINE`).
65+
* **Spacing:** Use `spacing-6` (2rem) for internal padding.
66+
67+
### Download Cards (Multi-Platform)
68+
* **Variants:**
69+
* *Prebuilt (Primary):* Solid `primary-container` background with `on-primary` text.
70+
* *AUR/Homebrew (Secondary):* Ghost Border (`outline-variant` at 20%) with `Fira Code` mono-text.
71+
* **Forbid Dividers:** Do not use lines between "Version" and "Size" info. Use `spacing-4` (1.4rem) of horizontal gap to create separation.
72+
73+
### Buttons
74+
* **Primary:** Sharp 0px corners, `primary-container` fill. On hover, add a `primary` outer glow (15px blur).
75+
* **Tertiary (Support/Social):** No background. Underline text using a 2px `secondary` border-bottom with a `4px` offset.
76+
77+
### Input Fields (Terminal Style)
78+
* **Style:** `surface-container-lowest` fill, `outline` bottom-border only (2px).
79+
* **Active State:** Border shifts to `primary` with a subtle `primary` glow.
80+
81+
---
82+
83+
## 6. Do's and Don'ts
84+
85+
### Do:
86+
* **Use Monospace for Numbers:** Always use Fira Code for download speeds, file sizes, and percentages.
87+
* **Embrace Asymmetry:** Offset grid items by `spacing-2` to create a "glitch" in the visual order.
88+
* **Keep it Sharp:** Ensure every corner is 0px. Even a 2px radius breaks the "Terminal" immersion.
89+
90+
### Don't:
91+
* **Don't use Grey:** If you need a neutral, use `surface-variant` or `on-surface-variant` (tinted purples). True grey feels "default" and "cheap."
92+
* **Don't use Standard Shadows:** Avoid dark, muddy shadows. If an element needs to pop, give it a Neon Glow or a Tonal Shift.
93+
* **Don't use Dividers:** Never use a 1px line to separate list items. Use background-color alternating (zebra striping) with `surface-container-low` and `surface-container-high`.
94+
95+
---
96+
97+
## 7. Accessibility Note
98+
While the "High-Contrast" synthwave look is prioritized, ensure all `on-surface` text meets WCAG AA standards against their respective `surface` containers. Use `error_dim` (#d7383b) for critical alerts to ensure visibility against the deep purple void.```

assets/dashboard.png

257 KB
Loading

assets/demo.gif

1.16 MB
Loading

assets/demo.mp4

787 KB
Binary file not shown.

assets/demo.tape

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# VHS Demo Script for Surge
2+
# Run: vhs demo.tape
3+
4+
Output assets/demo.gif
5+
Output assets/demo.mp4
6+
7+
Set Shell "bash"
8+
Set FontSize 16
9+
Set Width 1920
10+
Set Height 1080
11+
Set FontFamily "MesloLGS NF"
12+
Set Theme { "name": "IBM 3270 High Contrast", "black": "#000000", "red": "#ff5454", "green": "#00ff00", "yellow": "#ffff00", "blue": "#00aaff", "magenta": "#ff00ff", "cyan": "#00ffff", "white": "#ffffff", "brightBlack": "#666666", "brightRed": "#ff6666", "brightGreen": "#33ff33", "brightYellow": "#ffff66", "brightBlue": "#33ccff", "brightMagenta": "#ff66ff", "brightCyan": "#66ffff", "brightWhite": "#ffffff", "background": "#000000", "foreground": "#00ff00", "selection": "#222222", "cursor": "#00ff00" }
13+
Set Padding 0
14+
Set WindowBar Colorful
15+
Set Framerate 60
16+
17+
# --- Launch Surge ---
18+
Type "surge"
19+
Enter
20+
Sleep 3s
21+
22+
# --- Add a Download ---
23+
# Press 'a' to add download
24+
Type "a"
25+
Sleep 500ms
26+
27+
# Type a sample URL (use a small, fast file for demo)
28+
Type "https://ash-speed.hetzner.com/100MB.bin"
29+
Enter
30+
Sleep 300ms
31+
32+
Type "https://sin-speed.hetzner.com/100MB.bin"
33+
Enter
34+
Sleep 300ms
35+
36+
# Press Enter to skip path (use default)
37+
Enter
38+
Sleep 300ms
39+
40+
# Press Enter to skip filename (use default)
41+
Enter
42+
Sleep 5s
43+
44+
# --- Show Download Progress ---
45+
Sleep 8s
46+
Screenshot assets/dashboard.png
47+
48+
# --- Open Settings ---
49+
# Press 's' for settings
50+
Type "s"
51+
Sleep 1s
52+
53+
# Navigate through settings tabs (Right Arrow)
54+
Right
55+
Sleep 800ms
56+
Screenshot assets/settings.png
57+
Right
58+
Sleep 800ms
59+
60+
# Close settings (Esc)
61+
Escape
62+
Sleep 4s

assets/embed.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package assets
2+
3+
import _ "embed"
4+
5+
//go:embed logo.png
6+
var LogoData []byte

assets/logo.png

443 KB
Loading

assets/logo_nobg.png

175 KB
Loading

0 commit comments

Comments
 (0)