feat(studio): refine preview branding

Use flag-only language controls and add the creator credit beneath Photo Mode.
This commit is contained in:
smontlouis 2026-08-13 20:14:26 +02:00
parent 3c5f5cb41e
commit a057d880e0
3 changed files with 38 additions and 11 deletions

View File

@ -106,6 +106,24 @@ input {
gap: 8px;
transform: translateX(-50%);
}
.stage-credit {
position: absolute;
z-index: 8;
bottom: 20px;
left: 50%;
margin: 0;
color: #7f8791;
font-size: 10px;
transform: translateX(-50%);
white-space: nowrap;
}
.stage-credit a {
color: #aeb6c2;
text-decoration: none;
}
.stage-credit a:hover {
color: white;
}
.photo-capture-button {
min-width: 190px;
height: 44px;
@ -251,7 +269,7 @@ input {
.language-picker [data-slot='select-trigger'] {
width: auto;
height: 24px;
min-width: 82px;
min-width: 46px;
padding: 0 4px;
border: 0;
background: transparent;
@ -2391,7 +2409,7 @@ p {
box-shadow: 0 4px 14px rgb(24 28 35 / 7%);
}
.inspector-identity .language-picker [data-slot='select-trigger'] {
min-width: 68px;
min-width: 46px;
color: #17191d;
}
.stage-identity .brand {
@ -2410,7 +2428,7 @@ p {
padding: 3px 6px 3px 8px;
}
.stage-identity .language-picker [data-slot='select-trigger'] {
min-width: 68px;
min-width: 46px;
}
.stage-identity .source-link > span {
display: none;
@ -2419,10 +2437,13 @@ p {
width: min(42dvh, 78vw, 340px);
}
.photo-capture-bar {
bottom: max(12px, env(safe-area-inset-bottom));
bottom: max(36px, calc(env(safe-area-inset-bottom) + 24px));
left: 12px;
transform: none;
}
.stage-credit {
bottom: max(9px, env(safe-area-inset-bottom));
}
.photo-capture-button {
width: 40px;
min-width: 40px;

View File

@ -33,13 +33,12 @@ export function StudioIdentity({ className = '', language, setLanguage, t }: Stu
<span>GitHub</span>
</a>
<span className="identity-divider" aria-hidden="true" />
<span aria-hidden="true">{language === 'en' ? '🇬🇧' : language === 'fr' ? '🇫🇷' : '🇨🇳'}</span>
<Select
value={language}
items={[
{ value: 'en', label: 'English' },
{ value: 'fr', label: 'Français' },
{ value: 'zh-CN', label: '中文' },
{ value: 'en', label: '🇬🇧' },
{ value: 'fr', label: '🇫🇷' },
{ value: 'zh-CN', label: '🇨🇳' },
]}
onValueChange={next => next && setLanguage(next as StudioLanguage)}
>
@ -47,9 +46,9 @@ export function StudioIdentity({ className = '', language, setLanguage, t }: Stu
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value="en">English</SelectItem>
<SelectItem value="fr">Français</SelectItem>
<SelectItem value="zh-CN">中文</SelectItem>
<SelectItem value="en">🇬🇧</SelectItem>
<SelectItem value="fr">🇫🇷</SelectItem>
<SelectItem value="zh-CN">🇨🇳</SelectItem>
</SelectContent>
</Select>
</div>

View File

@ -140,6 +140,13 @@ export function StudioStage({ controller }: { controller: StudioController }) {
</Tooltip>
</div>
</TooltipProvider>
<p className="stage-credit">
Made with ❤️ by{' '}
<a href="https://x.com/_smontlouis" target="_blank" rel="noreferrer">
@_smontlouis
</a>
.
</p>
</motion.section>
)
}