ui: polish mobile settings navigation
This commit is contained in:
@@ -2,65 +2,9 @@
|
|||||||
|
|
||||||
## Current
|
## Current
|
||||||
|
|
||||||
### `feat/frontend-commercial-polish`
|
|
||||||
|
|
||||||
Status: in_progress
|
|
||||||
|
|
||||||
Goal:
|
|
||||||
- закрыть оставшиеся UI/UX дефекты, мешающие коммерческой демонстрации и продажной версии продукта.
|
|
||||||
|
|
||||||
Main code areas:
|
|
||||||
- `apps/ui/js/api-keys.js`
|
|
||||||
- `apps/ui/js/agents.js`
|
|
||||||
- `apps/ui/js/secrets.js`
|
|
||||||
- `apps/ui/js/usage.js`
|
|
||||||
- `apps/ui/js/settings.js`
|
|
||||||
- `apps/ui/js/workspace-setup.js`
|
|
||||||
- `apps/ui/js/auth.js`
|
|
||||||
- `apps/ui/css/*`
|
|
||||||
- `docs/frontend-roadmap.md`
|
|
||||||
|
|
||||||
Implementation slices:
|
|
||||||
1. Перевести mobile tables в card layouts для:
|
|
||||||
- `API Keys`
|
|
||||||
- `Secrets`
|
|
||||||
- `Usage`
|
|
||||||
2. Доделать `Agents` page и modal:
|
|
||||||
- объяснение отдельных agent endpoints
|
|
||||||
- empty states
|
|
||||||
- slug hints
|
|
||||||
3. Добить `Settings` and workspace flows:
|
|
||||||
- terminology cleanup
|
|
||||||
- navigation spacing
|
|
||||||
- notifications honesty
|
|
||||||
- mobile sticky bug
|
|
||||||
4. Довести agent-key UX на `API Keys` page.
|
|
||||||
|
|
||||||
DoD:
|
|
||||||
- mobile UI не требует обязательного горизонтального скролла для primary actions;
|
|
||||||
- terminology и product copy согласованы;
|
|
||||||
- коммерческая демонстрация проходит без UI contradictions.
|
|
||||||
|
|
||||||
Verification:
|
|
||||||
- targeted Playwright coverage;
|
|
||||||
- manual mobile checks at 375px width;
|
|
||||||
- EN/RU copy audit.
|
|
||||||
|
|
||||||
Progress:
|
|
||||||
- done:
|
|
||||||
- `API Keys` page now has a mobile card layout instead of relying only on desktop table presentation
|
|
||||||
- `Secrets` page now has a mobile card layout instead of relying only on desktop table presentation
|
|
||||||
- `Usage` page now has a mobile card layout instead of relying only on desktop table presentation
|
|
||||||
- `Agents` page and modal now explain separate agent endpoints, next-step machine access, and stable slug expectations
|
|
||||||
- `Settings` page now renders workspace protocol choices from build capabilities and uses honest Community notification copy instead of generic future promises
|
|
||||||
- pending:
|
|
||||||
- remaining `Settings` and workspace spacing/sticky polish
|
|
||||||
|
|
||||||
## Planned
|
|
||||||
|
|
||||||
### `feat/open-core-repo-boundary`
|
### `feat/open-core-repo-boundary`
|
||||||
|
|
||||||
Status: ready
|
Status: in_progress
|
||||||
|
|
||||||
Goal:
|
Goal:
|
||||||
- закрепить техническую границу между public Community repo и private commercial delivery.
|
- закрепить техническую границу между public Community repo и private commercial delivery.
|
||||||
@@ -92,6 +36,14 @@ Verification:
|
|||||||
- docs consistency pass;
|
- docs consistency pass;
|
||||||
- release checklist review.
|
- release checklist review.
|
||||||
|
|
||||||
|
Progress:
|
||||||
|
- done:
|
||||||
|
- gate for creating `2` private repositories is already documented before any physical commercial split
|
||||||
|
- pending:
|
||||||
|
- extension seams and delivery manifests still need to move from planning into concrete packaging work
|
||||||
|
|
||||||
|
## Planned
|
||||||
|
|
||||||
### `feat/enterprise-access-governance`
|
### `feat/enterprise-access-governance`
|
||||||
|
|
||||||
Status: ready
|
Status: ready
|
||||||
|
|||||||
+20
-1
@@ -805,7 +805,26 @@
|
|||||||
.page-header { flex-direction: column; gap: 12px; }
|
.page-header { flex-direction: column; gap: 12px; }
|
||||||
.page-header-actions { width: 100%; }
|
.page-header-actions { width: 100%; }
|
||||||
.settings-layout { grid-template-columns: 1fr; }
|
.settings-layout { grid-template-columns: 1fr; }
|
||||||
.settings-nav { position: static; flex-direction: row; flex-wrap: wrap; }
|
.settings-nav {
|
||||||
|
position: sticky;
|
||||||
|
top: 108px;
|
||||||
|
z-index: 40;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
overflow-x: auto;
|
||||||
|
gap: 8px;
|
||||||
|
margin: 0 -4px 8px;
|
||||||
|
padding: 4px;
|
||||||
|
background: var(--bg-canvas);
|
||||||
|
scrollbar-width: none;
|
||||||
|
}
|
||||||
|
.settings-nav::-webkit-scrollbar { display: none; }
|
||||||
|
.settings-nav-item {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
width: auto;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.section-anchor { scroll-margin-top: 136px; }
|
||||||
.filter-bar { flex-direction: column; align-items: stretch; }
|
.filter-bar { flex-direction: column; align-items: stretch; }
|
||||||
.filter-bar-search { max-width: none; }
|
.filter-bar-search { max-width: none; }
|
||||||
.stats-grid { grid-template-columns: 1fr 1fr; }
|
.stats-grid { grid-template-columns: 1fr 1fr; }
|
||||||
|
|||||||
Reference in New Issue
Block a user