feat: add alpha preview brand badge
This commit is contained in:
19
docs/TASKS/app-shell/003-add-alpha-preview-brand-badge.md
Normal file
19
docs/TASKS/app-shell/003-add-alpha-preview-brand-badge.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Task: Add alpha preview brand badge
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Add a compact product-stage badge beside the authenticated app brand and public landing brand so users can see the product is in alpha preview without treating it as an error or blocking alert. Remove the old authenticated sidebar caption so the brand treatment stays focused.
|
||||||
|
|
||||||
|
## Relevant Files
|
||||||
|
|
||||||
|
- `frontend/src/layouts/main/AppSidebar.vue`
|
||||||
|
- `frontend/src/static/components/LandingSiteMenu.vue`
|
||||||
|
- `frontend/src/locales/en.json`
|
||||||
|
- `frontend/src/locales/fr.json`
|
||||||
|
|
||||||
|
## Validation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd frontend
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
@@ -254,9 +254,21 @@
|
|||||||
to="/"
|
to="/"
|
||||||
>
|
>
|
||||||
<span class="brand-mark">S</span>
|
<span class="brand-mark">S</span>
|
||||||
<div v-if="isExpanded">
|
<div
|
||||||
<div class="brand-name">Socialize</div>
|
v-if="isExpanded"
|
||||||
<div class="brand-caption">{{ t('nav.brandCaption') }}</div>
|
class="brand-copy"
|
||||||
|
>
|
||||||
|
<div class="brand-heading">
|
||||||
|
<span class="brand-name-wrap">
|
||||||
|
<span class="brand-name">Socialize</span>
|
||||||
|
<span
|
||||||
|
class="brand-stage-badge"
|
||||||
|
:aria-label="t('nav.brandStageLabel')"
|
||||||
|
>
|
||||||
|
<span>{{ t('nav.brandStage') }}</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@@ -635,7 +647,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.brand-link {
|
.brand-link {
|
||||||
@apply flex min-w-0 items-center gap-3 no-underline;
|
@apply flex min-w-0 items-start gap-3 no-underline;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -643,20 +655,38 @@
|
|||||||
@apply w-full justify-center;
|
@apply w-full justify-center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.brand-copy {
|
||||||
|
@apply min-w-0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-heading {
|
||||||
|
@apply flex min-w-0 items-center;
|
||||||
|
}
|
||||||
|
|
||||||
.brand-mark {
|
.brand-mark {
|
||||||
@apply flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-[1.1rem] text-xl font-black;
|
@apply flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-[1.1rem] text-xl font-black;
|
||||||
background: linear-gradient(135deg, #ff8a3d 0%, #ef4444 100%);
|
background: linear-gradient(135deg, #ff8a3d 0%, #ef4444 100%);
|
||||||
color: #fffaf2;
|
color: #fffaf2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.brand-name {
|
.brand-name-wrap {
|
||||||
@apply text-lg font-black uppercase tracking-[0.18em];
|
@apply relative inline-flex min-w-0 items-center;
|
||||||
color: #172033;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.brand-caption {
|
.brand-name {
|
||||||
@apply text-xs uppercase tracking-[0.24em];
|
@apply min-w-0 text-lg font-black uppercase tracking-[0.18em];
|
||||||
color: #5d6b82;
|
color: #172033;
|
||||||
|
line-height: 2.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-stage-badge {
|
||||||
|
@apply absolute inline-flex h-4 items-center rounded-sm border px-1.5 text-[0.55rem] font-black uppercase tracking-[0.08em];
|
||||||
|
background: rgba(255, 231, 199, 0.46);
|
||||||
|
border-color: rgba(242, 179, 107, 0.38);
|
||||||
|
color: #925000;
|
||||||
|
left: 0;
|
||||||
|
line-height: 1;
|
||||||
|
top: calc(100% - 0.45rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
.side-menu {
|
.side-menu {
|
||||||
|
|||||||
@@ -443,8 +443,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nav": {
|
"nav": {
|
||||||
"brandStage": "Preview",
|
"brandStage": "Alpha Preview",
|
||||||
"brandStageLabel": "Product stage: Preview",
|
"brandStageLabel": "Product stage: Alpha Preview",
|
||||||
"brandCaption": "Approval workflow",
|
"brandCaption": "Approval workflow",
|
||||||
"workspace": "Workspace",
|
"workspace": "Workspace",
|
||||||
"notifications": "Notifications",
|
"notifications": "Notifications",
|
||||||
|
|||||||
@@ -443,8 +443,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nav": {
|
"nav": {
|
||||||
"brandStage": "Preview",
|
"brandStage": "Aperçu alpha",
|
||||||
"brandStageLabel": "Statut du produit : Preview",
|
"brandStageLabel": "Statut du produit : aperçu alpha",
|
||||||
"brandCaption": "Flux d'approbation",
|
"brandCaption": "Flux d'approbation",
|
||||||
"workspace": "Espace de travail",
|
"workspace": "Espace de travail",
|
||||||
"notifications": "Notifications",
|
"notifications": "Notifications",
|
||||||
|
|||||||
@@ -6,7 +6,17 @@
|
|||||||
to="/"
|
to="/"
|
||||||
>
|
>
|
||||||
<span class="site-brand-mark">S</span>
|
<span class="site-brand-mark">S</span>
|
||||||
<span class="site-brand-text">Socialize</span>
|
<span class="site-brand-heading">
|
||||||
|
<span class="site-brand-text-wrap">
|
||||||
|
<span class="site-brand-text">Socialize</span>
|
||||||
|
<span
|
||||||
|
class="site-brand-stage-badge"
|
||||||
|
:aria-label="t('nav.brandStageLabel')"
|
||||||
|
>
|
||||||
|
<span>{{ t('nav.brandStage') }}</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<nav
|
<nav
|
||||||
@@ -262,7 +272,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.site-brand {
|
.site-brand {
|
||||||
@apply flex min-w-0 items-center gap-3 no-underline;
|
@apply flex min-w-0 items-start gap-3 no-underline;
|
||||||
color: #172033;
|
color: #172033;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,8 +282,27 @@
|
|||||||
color: #fffaf2;
|
color: #fffaf2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.site-brand-heading {
|
||||||
|
@apply flex min-w-0 items-center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-brand-text-wrap {
|
||||||
|
@apply relative inline-flex min-w-0 items-center;
|
||||||
|
}
|
||||||
|
|
||||||
.site-brand-text {
|
.site-brand-text {
|
||||||
@apply truncate text-lg font-black uppercase tracking-[0.18em];
|
@apply truncate text-lg font-black uppercase tracking-[0.18em];
|
||||||
|
line-height: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-brand-stage-badge {
|
||||||
|
@apply absolute inline-flex h-4 items-center rounded-sm border px-1.5 text-[0.55rem] font-black uppercase tracking-[0.08em];
|
||||||
|
background: rgba(255, 231, 199, 0.46);
|
||||||
|
border-color: rgba(242, 179, 107, 0.38);
|
||||||
|
color: #925000;
|
||||||
|
left: 0;
|
||||||
|
line-height: 1;
|
||||||
|
top: calc(100% - 0.45rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
.site-nav {
|
.site-nav {
|
||||||
@@ -390,7 +419,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 420px) {
|
@media (max-width: 420px) {
|
||||||
.site-brand-text {
|
.site-brand-heading {
|
||||||
@apply hidden;
|
@apply hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user