feat(workbench): add optional workspace logos and color badges to browser tabs (#11035)

* feat: add optional workspace favicon and identification color

Signed-off-by: Ratel-pwn <2448574643@qq.com>

* refactor: simplify workspace identification color control

Signed-off-by: Ratel-pwn <2448574643@qq.com>

* fix: preserve logo size when overlaying favicon color

Signed-off-by: Ratel-pwn <2448574643@qq.com>

* fix(workbench): separate favicon badge with a transparent cutout

Signed-off-by: Ratel-pwn <2448574643@qq.com>

* fix(workbench): restore workspace favicon before app startup

Signed-off-by: Ratel-pwn <2448574643@qq.com>

---------

Signed-off-by: Ratel-pwn <2448574643@qq.com>
This commit is contained in:
DawnRatel
2026-09-25 11:00:19 +02:00
committed by GitHub
parent 5eb50ee39b
commit bda10fa45e
26 changed files with 670 additions and 7 deletions
+9
View File
@@ -165,6 +165,10 @@ export interface OfficeSettings extends Configuration {
*/
export interface WorkspaceSetting extends Doc {
icon?: Ref<Blob> | null
/** A manual colour override. Missing/null follows the current logo automatically. */
identificationColor?: string | null
syncWorkspaceLogo?: boolean
identificationColorEnabled?: boolean
}
export enum IntegrationError {
@@ -255,6 +259,11 @@ export default plugin(settingId, {
Setting: '' as IntlString,
Spaces: '' as IntlString,
WorkspaceSettings: '' as IntlString,
IdentificationColor: '' as IntlString,
SyncWorkspaceLogo: '' as IntlString,
ColorDefault: '' as IntlString,
ColorLogoUnavailable: '' as IntlString,
ColorSaveFailed: '' as IntlString,
Integrations: '' as IntlString,
Support: '' as IntlString,
Privacy: '' as IntlString,