Add Nebula Shell v0 prototype and redesign
Introduce a working v0 Nebula Shell prototype (Tauri frontend) and redesign docs. Adds a complete frontend under src/ (views: home, lock, library, settings, overlays), core adapters (input, nav, passkey, router, state), global styles and shell guidelines, and view-specific HTML/CSS/JS. Update README with prototype notes, install/run/build instructions and controller testing tips. Update package.json to add dev/build scripts and add @nebulaproject/core as a dependency. Also include a detailed REDESIGN_DOCUMENTATION.md describing the Xbox-inspired horizontal dashboard, component patterns, and developer notes.
This commit is contained in:
@@ -1,5 +1,106 @@
|
||||
# Nebula OS v0 – Windows-first Development Plan
|
||||
|
||||
## Nebula Shell Prototype (Current)
|
||||
|
||||
This repository now includes a working v0 Nebula Shell prototype in the Tauri frontend (`src/`) with:
|
||||
|
||||
- Lock Screen with controller/keyboard PIN keypad (`1234` for v0)
|
||||
- Home dashboard tile grid (Library, Settings, Power)
|
||||
- Settings split-pane stub (category list + content panel)
|
||||
- Library stub view with controller back behavior
|
||||
- Start/Menu power overlay that traps focus and closes with Back
|
||||
- Unified input actions (`up/down/left/right/accept/back/menu`) from keyboard + gamepad
|
||||
|
||||
### Dashboard refresh (Xbox-inspired Nebula)
|
||||
|
||||
The shell now uses a premium horizontal dashboard language inspired by console UI patterns:
|
||||
|
||||
- Left-aligned horizontal app tile rail (Library, Settings, Power)
|
||||
- Dynamic nebula background stack (gradient, starfield, fog, vignette)
|
||||
- Shared top bar with reactive accent line and profile/time status
|
||||
- Layered tile focus states (scale, cyan glow, ripple, elevation)
|
||||
- Smooth page/focus transitions with cubic-bezier motion curves
|
||||
- Immersive lock screen with large clock/date and input-revealed PIN panel
|
||||
- Settings redesign with top category rail + card-based content panel
|
||||
|
||||
Animation and component architecture notes are in [src/styles/shell-guidelines.md](src/styles/shell-guidelines.md).
|
||||
|
||||
### Install
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### Run (Windows dev)
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Controller testing notes (Windows)
|
||||
|
||||
- Connect an Xbox-compatible controller before launching dev mode.
|
||||
- Navigation: D-pad or left stick.
|
||||
- Actions: `A` = Accept, `B` = Back, `Start` = Menu.
|
||||
- Keyboard mirror for development: arrow keys, Enter, Escape/Backspace.
|
||||
|
||||
### Nebula Core integration status
|
||||
|
||||
`@nebulaproject/core` is installed and used through runtime adapters in:
|
||||
|
||||
- `src/core/input.js`
|
||||
- `src/core/nav.js`
|
||||
- `src/core/state.js`
|
||||
|
||||
If Nebula Core exports are available, the shell uses them for input/navigation/glyphs/theme.
|
||||
If not, local fallback adapters keep the shell fully functional.
|
||||
|
||||
### Local Nebula Core development (Windows-safe)
|
||||
|
||||
Current npm package `@nebulaproject/core@0.1.3` re-exports internal `@nebula/*` packages that are not published, so local linking is recommended for active core development.
|
||||
|
||||
1. Clone Nebula Core monorepo next to this repo.
|
||||
2. Build Nebula Core packages.
|
||||
3. Link from the core repo and consume in this repo:
|
||||
|
||||
```bash
|
||||
# In Nebula-Core repo
|
||||
npm link
|
||||
|
||||
# In Nebula-OS repo
|
||||
npm link @nebulaproject/core
|
||||
```
|
||||
|
||||
Alternative (more deterministic): use `file:` dependency in `package.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"dependencies": {
|
||||
"@nebulaproject/core": "file:../Nebula-Core/packages/core"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Then run:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### Linux VM build (high-level)
|
||||
|
||||
- Install Rust, Node.js, and Tauri Linux prerequisites in the VM.
|
||||
- Clone this repo in Linux VM.
|
||||
- Run `npm install`.
|
||||
- Run `npm run dev` for integration checks in Linux session.
|
||||
- Run `npm run build` to produce Linux artifacts.
|
||||
|
||||
## Vision
|
||||
|
||||
Nebula OS is a **controller-first, open source operating system experience** built on Linux.
|
||||
@@ -14,7 +115,7 @@ It is an independent UI layer that:
|
||||
|
||||
* Acts as the primary **controller-first shell** for the OS
|
||||
* Provides a unified Home experience for **games, apps, and media**
|
||||
* Ships with core Nebula apps such as **Nebula Browser**
|
||||
* Integrates first-install Nebula apps such as **Nebula Browser** and **Nebula Launcher**
|
||||
* Exposes **system settings** through controller-friendly panels
|
||||
* Manages game libraries directly (Steam, GOG, Epic, and others)
|
||||
|
||||
@@ -78,7 +179,6 @@ Game UI Mode contains:
|
||||
|
||||
* Lock screen with controller PIN entry
|
||||
* Nebula Home dashboard
|
||||
* Nebula Browser
|
||||
* Nebula Library
|
||||
* Controller-friendly Settings
|
||||
* Power and session controls
|
||||
@@ -147,7 +247,7 @@ It is the primary interface in Game UI Mode and should feel like a console dashb
|
||||
Nebula Shell responsibilities:
|
||||
|
||||
* Home dashboard (games, apps, recent activity)
|
||||
* App launcher for Nebula apps (Nebula Browser, Nebula Library, Settings)
|
||||
* App launcher for integrated Nebula apps (Nebula Browser, Nebula Launcher, Nebula Library, Settings)
|
||||
* System navigation (network, audio, display, storage, accounts)
|
||||
* Power menu and session switching (Game UI ↔ Desktop)
|
||||
* Notifications and downloads (later)
|
||||
|
||||
Reference in New Issue
Block a user