refactor(theme): single-source the HealthChat Light theme

Author the theme once in apps/web/element.io/healthchat/HealthChat-Light-Theme.json
and sync it into the web (apps/web/config.json) and desktop
(apps/desktop/element.io/healthchat/config.json) configs via
scripts/healthchat-sync-theme.mjs, removing the drifted duplicate.
`pnpm healthchat:theme` writes it; `pnpm lint` runs healthchat:theme:check to
fail on drift.

The canonical palette is the reviewed desktop theme, which reverts the web-only
contrast tweak (f64923ea1a) so web and desktop match.
This commit is contained in:
2026-07-14 14:02:39 +02:00
parent ce7f9230c3
commit f33708c705
6 changed files with 179 additions and 73 deletions
+22 -42
View File
@@ -8,44 +8,25 @@
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"default_country_code": "GB",
"default_server_config": {
"m.homeserver": {
"base_url": "https://matrix.healthchat.ch",
"server_name": "healthchat.ch"
},
"m.identity_server": {
"base_url": ""
}
"m.homeserver": { "base_url": "https://matrix.healthchat.ch", "server_name": "healthchat.ch" },
"m.identity_server": { "base_url": "" }
},
"default_theme": "custom-HealthChat Light",
"disable_custom_urls": true,
"disable_guests": true,
"element_call": {},
"embedded_pages": {
"homeUrl": ""
},
"embedded_pages": { "homeUrl": "" },
"enable_presence_by_hs_url": "",
"features": {},
"integrations_jitsi_widget_url": "https://scalar.vector.im/api/widgets/jitsi.html",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_widgets_urls": [
"https://scalar.vector.im/api"
],
"jitsi": {
"preferred_domain": "jitsi.healthchat.ch"
},
"integrations_widgets_urls": ["https://scalar.vector.im/api"],
"jitsi": { "preferred_domain": "jitsi.healthchat.ch" },
"logout_redirect_url": "",
"matrix_to_url": "https://to.healthchat.ch",
"room_directory": {
"servers": [
"matrix.org"
]
},
"sso_redirect_options": {
"immediate": true,
"on_welcome_page": true,
"on_login_page": true
},
"room_directory": { "servers": ["matrix.org"] },
"sso_redirect_options": { "immediate": true, "on_welcome_page": true, "on_login_page": true },
"setting_defaults": {
"UIFeature.deactivate": false,
"UIFeature.advancedEncryption": false,
@@ -55,7 +36,6 @@
"UIFeature.advancedSettings": false,
"UIFeature.feedback": false,
"custom_themes": [
"HealthChat Light",
{
"name": "HealthChat Light",
"is_dark": false,
@@ -74,8 +54,8 @@
"timeline-highlights-color": "#d9d9d9",
"timeline-text-color": "#473e3e",
"timeline-text-secondary-color": "#9b9898",
"secondary-content": "#6e6a6a",
"tertiary-content": "#6e6a6a",
"secondary-content": "#9b9898",
"tertiary-content": "#9b9898",
"focus-bg-color": "#d9d9d9",
"menu-selected-color": "#d9d9d9",
"other-user-pill-bg-color": "#376A91",
@@ -83,30 +63,30 @@
"reaction-row-button-selected-bg-color": "#d9d9d9",
"togglesw-off-color": "#9b9898",
"avatar-background-colors": ["#12325c", "#1f4d85", "#376A91"],
"username-colors": ["#12325c", "#2a4063", "#1f4d85", "#376A91", "#473e3e", "#1f4d85", "#2a4063", "#12325c"]
},
"fonts": {
"general": "\"Century Gothic\", \"Futura\", \"Trebuchet MS\", \"Arial\", sans-serif"
"username-colors": [
"#12325c",
"#2a4063",
"#1f4d85",
"#376A91",
"#473e3e",
"#1f4d85",
"#2a4063",
"#12325c"
]
},
"fonts": { "general": "\"Century Gothic\", \"Futura\", \"Trebuchet MS\", \"Arial\", sans-serif" },
"compound": {
"--cpd-color-text-action-accent": "#1f4d85",
"--cpd-color-bg-action-primary-rest": "#1f4d85",
"--cpd-color-bg-action-primary-hovered": "#2a4063",
"--cpd-color-bg-action-primary-pressed": "#12325c",
"--cpd-color-text-link-external": "#1f4d85",
"--cpd-color-icon-accent-tertiary": "#376A91",
"--cpd-color-icon-tertiary": "#5c6470",
"--cpd-color-icon-quaternary": "#7c8591",
"--cpd-color-icon-accent-primary": "#1f4d85",
"--cpd-color-icon-info-primary": "#1f4d85"
"--cpd-color-icon-accent-tertiary": "#376A91"
}
}
]
},
"show_labs_settings": false,
"modules": ["/modules/healthchat-module.js"],
"ch.healthchat": {
"api_base_url": "http://localhost:5001",
"elements_base_url": "/modules/elements"
}
"ch.healthchat": { "api_base_url": "http://localhost:5001", "elements_base_url": "/modules/elements" }
}