Add mode READMEs and move Bigscreen app

Add comprehensive READMEs for Bigscreen and Desktop modes, and relocate the Tauri frontend prototype into a new Bigscreen/ subdirectory. This moves package.json/package-lock, src, src-tauri, assets, views, styles and related files into Bigscreen/ to separate the controller-first shell from top-level docs. Update the root README.md to reframe the project as "NebulaOS", describe Bigscreen/Desktop modes, the vision, tech stack and development notes. This reorganizes the repo layout for clearer mode separation and documentation.
This commit is contained in:
Andrew Zambazos
2026-05-21 20:11:18 +12:00
parent b141c0a058
commit f0d2926872
87 changed files with 974 additions and 322 deletions
+347
View File
@@ -0,0 +1,347 @@
.lock-view {
justify-content: center;
align-items: center;
background: radial-gradient(circle at 55% 48%, rgba(79, 216, 255, 0.1), transparent 62%);
}
.lock-layout {
width: min(1240px, 96vw);
min-height: min(720px, 82vh);
display: grid;
grid-template-columns: minmax(320px, 1fr) minmax(360px, 520px);
gap: clamp(24px, 4vw, 58px);
background:
linear-gradient(165deg, rgba(56, 82, 128, 0.18), rgba(19, 30, 56, 0.74)),
radial-gradient(circle at 65% 35%, rgba(79, 216, 255, 0.08), transparent 52%),
rgba(13, 18, 31, 0.78);
border-radius: 20px;
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow:
0 24px 62px rgba(0, 0, 0, 0.38),
inset 0 1px 0 rgba(255, 255, 255, 0.12);
backdrop-filter: blur(14px);
padding: clamp(28px, 4vw, 48px);
}
.lock-view.is-success .lock-layout {
box-shadow:
0 0 0 1px rgba(79, 216, 255, 0.3),
0 24px 62px rgba(0, 0, 0, 0.38),
0 0 48px rgba(79, 216, 255, 0.24);
}
.lock-left {
display: flex;
flex-direction: column;
justify-content: center;
gap: var(--nebula-spacing-lg);
}
.lock-user {
display: inline-flex;
align-items: center;
gap: 12px;
}
.lock-avatar {
width: 42px;
height: 42px;
border-radius: 999px;
border: 2px solid rgba(79, 216, 255, 0.44);
background:
radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.85), transparent 45%),
linear-gradient(145deg, rgba(112, 189, 255, 0.66), rgba(66, 78, 142, 0.8));
}
.lock-username {
margin: 0;
font-weight: 640;
font-size: 18px;
}
.lock-title-row {
display: flex;
align-items: center;
gap: 14px;
flex-wrap: wrap;
}
.lock-title {
margin: 0;
font-size: clamp(36px, 5vw, 52px);
font-weight: 540;
letter-spacing: -0.01em;
}
.lock-controller-badge {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 34px;
height: 34px;
padding: 0 10px;
border-radius: 999px;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.02em;
border: 1px solid rgba(255, 255, 255, 0.2);
background: rgba(255, 255, 255, 0.08);
color: var(--nebula-color-text);
box-shadow: 0 0 18px rgba(79, 216, 255, 0.16);
}
.lock-controller-badge--xbox {
border-color: rgba(107, 190, 70, 0.55);
background: rgba(107, 190, 70, 0.18);
}
.lock-controller-badge--playstation {
border-color: rgba(70, 130, 220, 0.55);
background: rgba(70, 130, 220, 0.18);
}
.lock-controller-badge--switch {
border-color: rgba(230, 70, 70, 0.55);
background: rgba(230, 70, 70, 0.16);
}
.lock-glyph {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 28px;
height: 28px;
margin: 0 4px;
padding: 0 8px;
border-radius: var(--nebula-radius-sm);
font-size: 14px;
font-weight: 700;
vertical-align: middle;
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
color: var(--nebula-color-text);
}
.lock-glyph-menu {
border-color: rgba(79, 216, 255, 0.45);
box-shadow: 0 0 14px rgba(79, 216, 255, 0.22);
}
.lock-status .lock-glyph-menu {
transform: translateY(-1px);
}
.lock-copy {
margin: 0;
color: var(--nebula-color-muted);
font-size: 20px;
line-height: 1.45;
max-width: 540px;
}
.lock-user-setup {
display: grid;
gap: 12px;
max-width: 420px;
}
.lock-field {
display: grid;
gap: 6px;
}
.lock-field span {
font-size: 13px;
color: var(--nebula-color-muted);
}
.lock-field input {
height: 44px;
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.18);
background: rgba(9, 15, 30, 0.65);
color: var(--nebula-color-text);
padding: 0 12px;
font-size: 16px;
}
.lock-field input:focus {
outline: none;
border-color: rgba(79, 216, 255, 0.72);
box-shadow: 0 0 0 2px rgba(79, 216, 255, 0.2);
}
.lock-create-user {
height: 46px;
border: 1px solid rgba(79, 216, 255, 0.4);
border-radius: 12px;
background: linear-gradient(160deg, rgba(51, 87, 135, 0.55), rgba(18, 33, 58, 0.8));
color: var(--nebula-color-text);
font-weight: 600;
font-size: 15px;
letter-spacing: 0.01em;
}
.lock-create-user.is-focused {
box-shadow:
0 0 0 2px rgba(79, 216, 255, 0.55),
0 0 24px rgba(79, 216, 255, 0.3);
}
.lock-dots {
display: flex;
align-items: center;
gap: clamp(14px, 1.6vw, 22px);
min-height: 30px;
transition: transform var(--nebula-duration-fast) var(--nebula-ease-console);
}
.lock-dot {
width: 22px;
height: 22px;
border-radius: 999px;
border: 2px solid rgba(191, 206, 230, 0.38);
background: rgba(255, 255, 255, 0.05);
opacity: 0.75;
transform: scale(0.92);
transition:
transform var(--nebula-duration-fast) var(--nebula-ease-console),
border-color var(--nebula-duration-fast) var(--nebula-ease-console),
background-color var(--nebula-duration-fast) var(--nebula-ease-console),
box-shadow var(--nebula-duration-fast) var(--nebula-ease-console);
}
.lock-dot.active {
border-color: rgba(79, 216, 255, 0.72);
box-shadow: 0 0 16px rgba(79, 216, 255, 0.34);
}
.lock-dot.filled {
background: rgba(215, 230, 255, 0.9);
border-color: rgba(215, 230, 255, 0.95);
transform: scale(1);
animation: dotFill var(--nebula-duration-fast) var(--nebula-ease-console);
}
.lock-dots.is-success .lock-dot.filled {
border-color: rgba(79, 216, 255, 0.95);
background: rgba(79, 216, 255, 0.9);
box-shadow: 0 0 20px rgba(79, 216, 255, 0.58);
}
.lock-dots.is-error .lock-dot {
border-color: color-mix(in srgb, var(--nebula-color-danger) 72%, rgba(255, 255, 255, 0.3));
box-shadow: 0 0 20px color-mix(in srgb, var(--nebula-color-danger) 38%, transparent);
}
.lock-dots.is-shaking {
animation: dotsShake 420ms var(--nebula-ease-console);
}
.lock-status {
margin: 0;
min-height: 24px;
font-size: 16px;
color: var(--nebula-color-muted);
}
.lock-status.is-danger {
color: var(--nebula-color-danger);
}
.lock-right {
align-self: center;
display: grid;
grid-template-columns: repeat(3, minmax(96px, 1fr));
gap: clamp(10px, 1.4vw, 18px);
justify-items: center;
background: rgba(15, 24, 45, 0.6);
border: 1px solid rgba(255, 255, 255, 0.08);
}
.lock-num {
width: clamp(82px, 7.3vw, 112px);
height: clamp(82px, 7.3vw, 112px);
border: none;
border-radius: 18px;
font-size: clamp(42px, 3.8vw, 68px);
font-weight: 330;
line-height: 1;
color: color-mix(in srgb, var(--nebula-color-text) 95%, rgba(215, 230, 255, 0.94));
background:
radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.12), transparent 55%),
linear-gradient(162deg, rgba(61, 90, 140, 0.18), rgba(15, 23, 43, 0.6));
box-shadow:
0 10px 22px rgba(0, 0, 0, 0.24),
inset 0 1px 0 rgba(255, 255, 255, 0.08);
transition:
transform var(--nebula-duration-nav) var(--nebula-ease-console),
box-shadow var(--nebula-duration-nav) var(--nebula-ease-console),
border-color var(--nebula-duration-nav) var(--nebula-ease-console);
display: inline-flex;
align-items: baseline;
justify-content: center;
gap: 8px;
}
.lock-num.is-zero {
grid-column: 2;
}
.lock-num.is-focused {
transform: scale(1.1);
box-shadow:
0 0 0 2px rgba(79, 216, 255, 0.5),
0 0 28px rgba(79, 216, 255, 0.36),
0 12px 30px rgba(0, 0, 0, 0.28);
}
.lock-map {
font-size: 13px;
font-weight: 650;
letter-spacing: 0.02em;
color: color-mix(in srgb, var(--nebula-color-muted) 80%, #fff);
transform: translateY(-8px);
}
.lock-num.is-focused .lock-map {
color: color-mix(in srgb, var(--nebula-color-accent) 85%, #fff);
}
@keyframes dotFill {
0% {
opacity: 0.35;
transform: scale(0.62);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes dotsShake {
0% {
transform: translateX(0);
}
20% {
transform: translateX(-9px);
}
40% {
transform: translateX(8px);
}
60% {
transform: translateX(-6px);
}
80% {
transform: translateX(4px);
}
100% {
transform: translateX(0);
}
}