style: unify all views on Mission Control V2 design tokens
- Map legacy v1 CSS variables (--nx-*, --panel, --text-*, --surface*) to V2 tokens in nexus-tokens.css - Restyle global shell (main.css), AppSidebar, AppHeader to match V2 Sidebar/Topbar (glass, gradients, Space Grotesk) - Add GalaxyBackground to the v1 shell in App.vue - Replace hardcoded v1 hex colors with V2 tokens in all deviating views (Agents, Calendar, Docs, Incidents, Memory, Notifications, ProjectDetail, Security, Team, TaskDetail, Settings) - Keep JS status colors as hex where alpha suffixes are concatenated (AgentsIndex, Team, Notifications) - Add Settings nav item (System group) + gear icon to V2 sidebar so it shows on the dashboard - No component or layout structure changes; LoginView and TaskBoardView untouched Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -409,7 +409,7 @@ onMounted(() => {
|
||||
}
|
||||
|
||||
.grad-text {
|
||||
background: linear-gradient(135deg, #4f7cff, #b557f6);
|
||||
background: linear-gradient(135deg, var(--a-blue), var(--a-purple));
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
@@ -418,7 +418,7 @@ onMounted(() => {
|
||||
.settings-subtitle {
|
||||
margin: 4px 0 0;
|
||||
font-size: 11px;
|
||||
color: #6f6aa0;
|
||||
color: var(--tx-3);
|
||||
font-family: 'Manrope', sans-serif;
|
||||
}
|
||||
|
||||
@@ -444,7 +444,7 @@ onMounted(() => {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
color: #ece9ff;
|
||||
color: var(--tx);
|
||||
padding-bottom: 14px;
|
||||
border-bottom: 1px solid rgba(150, 140, 255, 0.08);
|
||||
}
|
||||
@@ -470,7 +470,7 @@ onMounted(() => {
|
||||
.field label {
|
||||
font-size: 10px;
|
||||
font-weight: 600;
|
||||
color: #a8a3d6;
|
||||
color: var(--tx-2);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
@@ -490,7 +490,7 @@ onMounted(() => {
|
||||
border: 1px solid rgba(150, 140, 255, 0.12);
|
||||
border-radius: 11px;
|
||||
background: rgba(10, 9, 24, 0.55);
|
||||
color: #ece9ff;
|
||||
color: var(--tx);
|
||||
font-size: 13.5px;
|
||||
font-family: 'Manrope', sans-serif;
|
||||
outline: none;
|
||||
@@ -513,13 +513,13 @@ onMounted(() => {
|
||||
}
|
||||
|
||||
.galaxy-select option {
|
||||
background: #141130;
|
||||
color: #ece9ff;
|
||||
background: var(--space-3);
|
||||
color: var(--tx);
|
||||
}
|
||||
|
||||
.value-tag {
|
||||
font-size: 14px;
|
||||
color: #ece9ff;
|
||||
color: var(--tx);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@@ -538,7 +538,7 @@ onMounted(() => {
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
background: linear-gradient(135deg, rgba(79, 124, 255, 0.15), rgba(181, 87, 246, 0.15));
|
||||
color: #b8adff;
|
||||
color: var(--a-mid);
|
||||
border: 1px solid rgba(124, 108, 255, 0.15);
|
||||
width: fit-content;
|
||||
}
|
||||
@@ -589,14 +589,14 @@ onMounted(() => {
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
background: transparent;
|
||||
color: #6f6aa0;
|
||||
color: var(--tx-3);
|
||||
cursor: pointer;
|
||||
transition: background 0.15s, color 0.15s;
|
||||
}
|
||||
|
||||
.pw-toggle:hover {
|
||||
background: rgba(124, 108, 255, 0.08);
|
||||
color: #a8a3d6;
|
||||
color: var(--tx-2);
|
||||
}
|
||||
|
||||
/* ── Messages ──────────────────────────────────── */
|
||||
@@ -613,13 +613,13 @@ onMounted(() => {
|
||||
.msg.error {
|
||||
background: rgba(244, 63, 94, 0.1);
|
||||
border: 1px solid rgba(244, 63, 94, 0.2);
|
||||
color: #fda4af;
|
||||
color: var(--st-block);
|
||||
}
|
||||
|
||||
.msg.success {
|
||||
background: rgba(34, 197, 94, 0.1);
|
||||
border: 1px solid rgba(34, 197, 94, 0.2);
|
||||
color: #86efac;
|
||||
color: var(--st-work);
|
||||
}
|
||||
|
||||
/* ── Buttons ──────────────────────────────────── */
|
||||
@@ -630,7 +630,7 @@ onMounted(() => {
|
||||
padding: 9px 16px;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
background: linear-gradient(135deg, #4f7cff, #7c6cff, #b557f6);
|
||||
background: linear-gradient(135deg, var(--a-blue), var(--a-mid), var(--a-purple));
|
||||
color: #fff;
|
||||
font-size: 12.5px;
|
||||
font-weight: 600;
|
||||
@@ -665,7 +665,7 @@ onMounted(() => {
|
||||
font-family: 'Manrope', sans-serif;
|
||||
background: transparent;
|
||||
border: 1px solid rgba(150, 140, 255, 0.12);
|
||||
color: #a8a3d6;
|
||||
color: var(--tx-2);
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
transition: background 0.15s, color 0.15s;
|
||||
@@ -673,7 +673,7 @@ onMounted(() => {
|
||||
|
||||
.btn-ghost:hover {
|
||||
background: rgba(124, 108, 255, 0.08);
|
||||
color: #ece9ff;
|
||||
color: var(--tx);
|
||||
}
|
||||
|
||||
/* ── Admin User Management ───────────────────── */
|
||||
@@ -711,7 +711,7 @@ onMounted(() => {
|
||||
place-items: center;
|
||||
background: linear-gradient(135deg, rgba(79, 124, 255, 0.2), rgba(181, 87, 246, 0.2));
|
||||
border: 1px solid rgba(124, 108, 255, 0.15);
|
||||
color: #b8adff;
|
||||
color: var(--a-mid);
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
flex-shrink: 0;
|
||||
@@ -725,12 +725,12 @@ onMounted(() => {
|
||||
.user-name {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: #ece9ff;
|
||||
color: var(--tx);
|
||||
}
|
||||
|
||||
.user-email {
|
||||
font-size: 11px;
|
||||
color: #6f6aa0;
|
||||
color: var(--tx-3);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
@@ -754,31 +754,31 @@ onMounted(() => {
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.04em;
|
||||
background: rgba(124, 108, 255, 0.1);
|
||||
color: #b8adff;
|
||||
color: var(--a-mid);
|
||||
border: 1px solid rgba(124, 108, 255, 0.1);
|
||||
}
|
||||
|
||||
.role-tag.owner {
|
||||
background: linear-gradient(135deg, rgba(244, 63, 94, 0.15), rgba(251, 191, 36, 0.15));
|
||||
color: #fde68a;
|
||||
color: var(--st-queue);
|
||||
border-color: rgba(251, 191, 36, 0.2);
|
||||
}
|
||||
|
||||
.role-tag.admin {
|
||||
background: rgba(79, 124, 255, 0.12);
|
||||
color: #93c5fd;
|
||||
color: var(--a-blue);
|
||||
border-color: rgba(79, 124, 255, 0.2);
|
||||
}
|
||||
|
||||
.role-tag.viewer {
|
||||
background: rgba(107, 103, 150, 0.15);
|
||||
color: #a8a3d6;
|
||||
color: var(--tx-2);
|
||||
border-color: rgba(107, 103, 150, 0.2);
|
||||
}
|
||||
|
||||
.user-date {
|
||||
font-size: 10px;
|
||||
color: #6f6aa0;
|
||||
color: var(--tx-3);
|
||||
}
|
||||
|
||||
.loading-pulse {
|
||||
@@ -806,7 +806,7 @@ onMounted(() => {
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding: 32px;
|
||||
color: #6f6aa0;
|
||||
color: var(--tx-3);
|
||||
}
|
||||
|
||||
.empty-state p {
|
||||
@@ -849,7 +849,7 @@ onMounted(() => {
|
||||
margin: 0;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: #ece9ff;
|
||||
color: var(--tx);
|
||||
font-family: 'Space Grotesk', sans-serif;
|
||||
}
|
||||
|
||||
@@ -861,7 +861,7 @@ onMounted(() => {
|
||||
justify-content: center;
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: #6f6aa0;
|
||||
color: var(--tx-3);
|
||||
cursor: pointer;
|
||||
border-radius: 6px;
|
||||
font-size: 20px;
|
||||
@@ -870,11 +870,11 @@ onMounted(() => {
|
||||
|
||||
.modal-close:hover {
|
||||
background: rgba(124, 108, 255, 0.08);
|
||||
color: #ece9ff;
|
||||
color: var(--tx);
|
||||
}
|
||||
|
||||
.req {
|
||||
color: #fb7185;
|
||||
color: var(--st-block);
|
||||
}
|
||||
|
||||
.modal-form {
|
||||
|
||||
Reference in New Issue
Block a user