Skip to content

Commit 66d207d

Browse files
committed
updated may things
1 parent 2e7c0e0 commit 66d207d

2 files changed

Lines changed: 85 additions & 60 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Deploy GitHub Pages (Minified JS)
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: pages
16+
cancel-in-progress: true
17+
18+
jobs:
19+
build:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
25+
- name: Setup Node.js
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: 20
29+
30+
- name: Prepare deploy artifact
31+
run: |
32+
mkdir -p dist
33+
rsync -av --delete \
34+
--exclude ".git/" \
35+
--exclude ".github/" \
36+
--exclude "dist/" \
37+
./ dist/
38+
39+
- name: Minify JavaScript
40+
working-directory: dist
41+
run: |
42+
npm install --no-save terser
43+
find . -type f -name "*.js" ! -name "*.min.js" -print0 | while IFS= read -r -d '' file; do
44+
npx terser "$file" --compress --mangle --output "$file"
45+
done
46+
47+
- name: Setup Pages
48+
uses: actions/configure-pages@v5
49+
50+
- name: Upload Pages artifact
51+
uses: actions/upload-pages-artifact@v3
52+
with:
53+
path: dist
54+
55+
deploy:
56+
environment:
57+
name: github-pages
58+
url: ${{ steps.deployment.outputs.page_url }}
59+
runs-on: ubuntu-latest
60+
needs: build
61+
steps:
62+
- name: Deploy to GitHub Pages
63+
id: deployment
64+
uses: actions/deploy-pages@v4

README.md

Lines changed: 21 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,21 @@
1-
# Javagar's Project Nexus
2-
3-
**Current Version**: 2.0 (The Command Center)
4-
5-
An immersive 3D visualization of project links, designed as a futuristic interface. It features a rotating point cloud of nodes that users can navigate, search, and interact with to preview external projects seamlessly.
6-
7-
---
8-
9-
## Development Report
10-
11-
### Phase I: The Core Foundation
12-
The project began as a standard 3D visualization experiment. The initial implementation utilized a basic "floating interactive sphere" concept.
13-
- **Architecture**: A pure Vanilla Javascript implementation using HTML5 Canvas for rendering. No heavy 3D libraries (like Three.js) were used; instead, a custom 3D projection engine was written to keep the application lightweight (~15KB).
14-
- **Data-Driven**: The system was designed to be data-agnostic, loading project nodes dynamically from a `links.yaml` file.
15-
16-
### Phase II: The Audit & Optimization
17-
Upon initial review, several critical deficiencies were identified in the codebase:
18-
1. **Performance**: A busy-wait loop was detected. The animation loop continued running even when the 3D view was hidden, consuming unnecessary CPU cycles. This was patched by implementing state-aware loop cancellation.
19-
2. **Accessibility**: The application lacked basic ARIA labels, making it unusable for screen readers. A comprehensive accessibility pass added semantic roles (`role="img"`, `role="list"`) and keyboard navigation support (J/K keys).
20-
21-
### Phase III: The Paradigm Shift
22-
The most significant evolution occurred during the UI/UX review.
23-
- **The Problem**: The original floating header overlay blocked the view of the sphere, and the "Glassmorphism" aesthetic deemed outdated.
24-
- **The Pivot**: A "Design Overhaul" was proposed, offering three directions. The **"Command Center"** concept was selected.
25-
- **Implementation**:
26-
- The layout was fundamentally restructured. The floating UI was moved to a fixed **Sidebar (320px)** on the left.
27-
- The structural borders were changed from Gold to a sleek Dark Gray (`#333`) to reduce visual fatigue, reserving Gold for high-value accents.
28-
- The 3D Canvas logic was rewritten to offset the "center of the world" by 320px, ensuring the sphere rotates perfectly in the available negative space, not the center of the viewport.
29-
30-
### Phase IV: Integration Mechanics
31-
The final hurdle was the "Preview Pane" experience, specifically regarding **Custom Cursors** on external sites.
32-
- **The Glitch**: When opening external projects (like *HackerAndSleeper*) in the iframe preview, their custom cursor logic failed, rendering the cursor invisible.
33-
- **Diagnosis**: It was discovered that:
34-
1. The `.iframe-loader` overlay was consuming mouse events even when transparent.
35-
2. Global `user-select: none` rules on the parent page were bleeding into the iframe's internal logic.
36-
3. The iframe was not receiving focus, leaving the child site in a "suspended" animation state.
37-
- **The Solution**:
38-
- **Pointer Events**: Explicitly set `pointer-events: none` on the loader.
39-
- **Focus Injection**: Implemented logic to force `iframe.contentWindow.focus()` upon load.
40-
- **Style Isolation**: Reverted global interaction locks, applying them only to specific UI parent elements.
41-
42-
---
43-
44-
## Technical Features
45-
- **Custom 3D Engine**: Zero-dependency 3D projection.
46-
- **YAML Data Source**: Easy-to-edit project list.
47-
- **Sidebar Architecture**: Fixed-width sidebar with mathematically unified canvas resizing.
48-
- **Optimized Rendering**: Distance-squared calculations for connection drawing to minimize `Math.sqrt` calls.
49-
50-
## Quick Start
51-
52-
1. **Add Projects**: Edit `links.yaml`.
53-
```yaml
54-
- text: "My Project"
55-
url: "https://mywebsite.com"
56-
```
57-
2. **Run**:
58-
```bash
59-
python -m http.server 8000
60-
```
1+
# Welcome
2+
3+
Thanks for visiting.
4+
5+
This space is a simple place to explore and enjoy.
6+
Everything here is meant to be clear and easy to browse.
7+
8+
It will continue to evolve over time.
9+
Some parts may change, and new things may appear.
10+
11+
The goal is straightforward:
12+
keep it clean, useful, and pleasant to return to.
13+
14+
Take a look around at your own pace.
15+
You are welcome any time.
16+
17+
More updates will be added soon.
18+
19+
Have a good day.
20+
21+
Thank you for stopping by.

0 commit comments

Comments
 (0)