ui: remove inactive command palette affordance
This commit is contained in:
@@ -2,19 +2,20 @@
|
|||||||
|
|
||||||
## Current
|
## Current
|
||||||
|
|
||||||
### `feat/frontend-command-palette-decision`
|
### `feat/frontend-xss-hardening`
|
||||||
|
|
||||||
Status: in_progress
|
Status: in_progress
|
||||||
|
|
||||||
DoD:
|
DoD:
|
||||||
- the `⌘K` affordance in the shell either works end-to-end or is removed everywhere
|
- API-derived data is not inserted into `innerHTML` without escaping
|
||||||
- no dead command-palette trigger remains in desktop navigation
|
- shared DOM-safe helpers are introduced for frontend rendering paths that still need markup
|
||||||
- EN and RU copy stay aligned for the chosen outcome
|
- known unsafe rendering paths from `__REVIEW_FRONT.md` are removed or hardened
|
||||||
- the chosen outcome is verified in the UI smoke path
|
- the current UI behavior remains intact after the hardening pass
|
||||||
|
- targeted frontend smoke checks cover the touched pages
|
||||||
|
|
||||||
## Next
|
## Next
|
||||||
|
|
||||||
- `feat/frontend-xss-hardening`
|
- `feat/frontend-shell-unification`
|
||||||
|
|
||||||
## Backlog
|
## Backlog
|
||||||
|
|
||||||
|
|||||||
@@ -65,18 +65,6 @@
|
|||||||
gap: 10px;
|
gap: 10px;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
.nav-kbd {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 4px;
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
border-radius: var(--radius);
|
|
||||||
padding: 4px 9px;
|
|
||||||
font-size: 12px;
|
|
||||||
color: var(--text-muted);
|
|
||||||
background: var(--bg-overlay);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.nav-icon-btn {
|
.nav-icon-btn {
|
||||||
width: 32px;
|
width: 32px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
@@ -223,7 +211,6 @@
|
|||||||
@media (max-width: 720px) {
|
@media (max-width: 720px) {
|
||||||
.navbar { padding: 0 16px; }
|
.navbar { padding: 0 16px; }
|
||||||
.nav-links { display: none; }
|
.nav-links { display: none; }
|
||||||
.nav-kbd { display: none; }
|
|
||||||
.nav-hamburger { display: flex; }
|
.nav-hamburger { display: flex; }
|
||||||
.mobile-nav { display: block; }
|
.mobile-nav { display: block; }
|
||||||
|
|
||||||
|
|||||||
@@ -58,10 +58,6 @@
|
|||||||
|
|
||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
<div class="nav-kbd">
|
|
||||||
<svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg>
|
|
||||||
<span>⌘K</span>
|
|
||||||
</div>
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
||||||
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -71,10 +71,6 @@
|
|||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
|
|
||||||
<div class="nav-kbd">
|
|
||||||
<svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg>
|
|
||||||
<span>⌘K</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
||||||
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
||||||
|
|||||||
@@ -50,7 +50,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
<div class="nav-kbd"><svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg><span>⌘K</span></div>
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications"><svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg></button>
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications"><svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg></button>
|
||||||
<div class="nav-divider"></div>
|
<div class="nav-divider"></div>
|
||||||
<div class="user-menu">
|
<div class="user-menu">
|
||||||
|
|||||||
@@ -55,10 +55,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
<div class="nav-kbd">
|
|
||||||
<svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg>
|
|
||||||
<span>⌘K</span>
|
|
||||||
</div>
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
||||||
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -84,7 +84,6 @@
|
|||||||
|
|
||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
<div class="nav-kbd"><svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg><span>⌘K</span></div>
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications"><svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg></button>
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications"><svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg></button>
|
||||||
<div class="nav-divider"></div>
|
<div class="nav-divider"></div>
|
||||||
<div class="user-menu">
|
<div class="user-menu">
|
||||||
|
|||||||
@@ -55,10 +55,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
<div class="nav-kbd">
|
|
||||||
<svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg>
|
|
||||||
<span>⌘K</span>
|
|
||||||
</div>
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
||||||
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -50,7 +50,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
<div class="nav-kbd"><svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg><span>⌘K</span></div>
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications"><svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg></button>
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications"><svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg></button>
|
||||||
<div class="nav-divider"></div>
|
<div class="nav-divider"></div>
|
||||||
<div class="user-menu">
|
<div class="user-menu">
|
||||||
|
|||||||
@@ -55,10 +55,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
<div class="nav-kbd">
|
|
||||||
<svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg>
|
|
||||||
<span>⌘K</span>
|
|
||||||
</div>
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
||||||
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -58,10 +58,6 @@
|
|||||||
<div class="nav-right">
|
<div class="nav-right">
|
||||||
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
<button class="nav-hamburger" data-i18n-title="nav.menu" data-i18n-aria-label="nav.menu" aria-label="Menu"><span></span><span></span><span></span></button>
|
||||||
|
|
||||||
<div class="nav-kbd">
|
|
||||||
<svg width="12" height="12"><use href="../../icons/general/grid.svg#icon"/></svg>
|
|
||||||
<span>⌘K</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
<button class="nav-icon-btn" data-i18n-title="nav.notifications" title="Notifications">
|
||||||
<svg width="15" height="15"><use href="../../icons/general/bell.svg#icon"/></svg>
|
<svg width="15" height="15"><use href="../../icons/general/bell.svg#icon"/></svg>
|
||||||
|
|||||||
@@ -60,10 +60,6 @@
|
|||||||
<span></span><span></span><span></span>
|
<span></span><span></span><span></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="nav-kbd">
|
|
||||||
<svg width="12" height="12"><use href="icons/general/grid.svg#icon"/></svg>
|
|
||||||
<span>⌘K</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button class="nav-icon-btn" title="Notifications">
|
<button class="nav-icon-btn" title="Notifications">
|
||||||
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
<svg width="15" height="15"><use href="icons/general/bell.svg#icon"/></svg>
|
||||||
|
|||||||
Reference in New Issue
Block a user