feat(settings): add translucent widgets toggle to gate smart transparency

This commit is contained in:
Lemmy
2026-03-10 09:48:17 -04:00
parent 0d495490cb
commit eafcb91b8b
22 changed files with 73 additions and 17 deletions
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Schlagschatten",
"title": "Benutzeroberfläche",
"tooltips-description": "Tooltips in der gesamten Benutzeroberfläche aktivieren oder deaktivieren.",
"tooltips-label": "Tooltips anzeigen"
"tooltips-label": "Tooltips anzeigen",
"translucent-widgets-description": "Mache Schaltflächen, Tabs und andere Widgets in Panels halbtransparent.",
"translucent-widgets-label": "Transluzente Widgets"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alphabetisch",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Drop shadows",
"title": "User Interface",
"tooltips-description": "Enable or disable tooltips throughout the interface.",
"tooltips-label": "Show tooltips"
"tooltips-label": "Show tooltips",
"translucent-widgets-description": "Make buttons, tabs, and other widgets inside panels semi-transparent.",
"translucent-widgets-label": "Translucent widgets"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alphabetical",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Sombras paralelas",
"title": "Interfaz de usuario",
"tooltips-description": "Activar o desactivar los avisos emergentes en toda la interfaz.",
"tooltips-label": "Mostrar textos emergentes"
"tooltips-label": "Mostrar textos emergentes",
"translucent-widgets-description": "Haz que los botones, pestañas y otros widgets dentro de los paneles sean semitransparentes.",
"translucent-widgets-label": "Widgets translúcidos"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alfabético",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Ombres portées",
"title": "Interface utilisateur",
"tooltips-description": "Activer ou désactiver les infobulles dans toute l'interface.",
"tooltips-label": "Afficher les infobulles"
"tooltips-label": "Afficher les infobulles",
"translucent-widgets-description": "Rendre les boutons, onglets et autres widgets à l'intérieur des panneaux semi-transparents.",
"translucent-widgets-label": "Widgets translucides"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alphabétique",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Árnyékok",
"title": "Felhasználói felület",
"tooltips-description": "Engedélyezi vagy letiltja az eszköztippeket a felületen.",
"tooltips-label": "Eszköztippek megjelenítése"
"tooltips-label": "Eszköztippek megjelenítése",
"translucent-widgets-description": "Tedd a gombokat, füleket és egyéb widgeteket a paneleken belül félig átlátszóvá.",
"translucent-widgets-label": "Áttetsző widgetek"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Ábécérend",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Ombre esterne",
"title": "Interfaccia utente",
"tooltips-description": "Abilita o disabilita i tooltip in tutta linterfaccia.",
"tooltips-label": "Mostra tooltip"
"tooltips-label": "Mostra tooltip",
"translucent-widgets-description": "Rendi semitrasparenti i pulsanti, le schede e gli altri widget all'interno dei pannelli.",
"translucent-widgets-label": "Widget traslucidi"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alfabetico",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "ドロップシャドウ",
"title": "ユーザーインターフェース",
"tooltips-description": "インターフェース全体のツールチップの有効・無効を切り替えます。",
"tooltips-label": "ツールチップを表示"
"tooltips-label": "ツールチップを表示",
"translucent-widgets-description": "パネル内のボタン、タブ、その他のウィジェットを半透明にする。",
"translucent-widgets-label": "半透明のウィジェット"
},
"wallpaper": {
"automation-change-mode-alphabetical": "アルファベット順",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "그림자",
"title": "사용자 인터페이스",
"tooltips-description": "인터페이스 전반에 툴팁을 활성화하거나 비활성화합니다.",
"tooltips-label": "툴팁 표시"
"tooltips-label": "툴팁 표시",
"translucent-widgets-description": "패널 내의 버튼, 탭 및 기타 위젯을 반투명하게 만듭니다.",
"translucent-widgets-label": "반투명 위젯"
},
"wallpaper": {
"automation-change-mode-alphabetical": "알파벳순",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Slagschaduwen",
"title": "Gebruikersinterface",
"tooltips-description": "Schakel tooltips in of uit in de hele interface.",
"tooltips-label": "Tooltips tonen"
"tooltips-label": "Tooltips tonen",
"translucent-widgets-description": "Maak knoppen, tabbladen en andere widgets in panelen semi-transparant.",
"translucent-widgets-label": "Doorzichtige widgets"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alfabetisch",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Cienie",
"title": "Interfejs użytkownika",
"tooltips-description": "Włącz lub wyłącz podpowiedzi w całym interfejsie.",
"tooltips-label": "Pokaż podpowiedzi"
"tooltips-label": "Pokaż podpowiedzi",
"translucent-widgets-description": "Spraw, aby przyciski, zakładki i inne widżety w panelach były półprzezroczyste.",
"translucent-widgets-label": "Półprzezroczyste widżety"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alfabetyczny",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Sombras projetadas",
"title": "Interface do usuário",
"tooltips-description": "Ativar ou desativar dicas de ferramentas em toda a interface.",
"tooltips-label": "Mostrar dicas de ferramenta"
"tooltips-label": "Mostrar dicas de ferramenta",
"translucent-widgets-description": "Torne botões, abas e outros widgets dentro dos painéis semitransparentes.",
"translucent-widgets-label": "Widgets translúcidos"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alfabético",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Отбрасываемые тени",
"title": "Пользовательский интерфейс",
"tooltips-description": "Включить или отключить всплывающие подсказки во всем интерфейсе.",
"tooltips-label": "Показывать всплывающие подсказки"
"tooltips-label": "Показывать всплывающие подсказки",
"translucent-widgets-description": "Сделайте кнопки, вкладки и другие виджеты внутри панелей полупрозрачными.",
"translucent-widgets-label": "Полупрозрачные виджеты"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Алфавитный",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Fallskugga",
"title": "Användargränssnitt",
"tooltips-description": "Aktivera eller inaktivera verktygstips i hela gränssnittet.",
"tooltips-label": "Visa verktygstips"
"tooltips-label": "Visa verktygstips",
"translucent-widgets-description": "Gör knappar, flikar och andra widgets inuti paneler halvtransparenta.",
"translucent-widgets-label": "Genomskinliga widgetar"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alfabetiskt",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Gölge efektleri",
"title": "Kullanıcı arayüzü",
"tooltips-description": "Arayüz genelindeki ipuçlarını etkinleştirin veya devre dışı bırakın.",
"tooltips-label": "İpuçlarını göster"
"tooltips-label": "İpuçlarını göster",
"translucent-widgets-description": "Panellerin içindeki düğmeleri, sekmeleri ve diğer widget'ları yarı saydam yapın.",
"translucent-widgets-label": "Yarı saydam widget'lar"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Alfabetik",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "Тіні",
"title": "Користувацький інтерфейс",
"tooltips-description": "Увімкнути або вимкнути підказки в інтерфейсі.",
"tooltips-label": "Показувати підказки"
"tooltips-label": "Показувати підказки",
"translucent-widgets-description": "Зробіть кнопки, вкладки та інші віджети всередині панелей напівпрозорими.",
"translucent-widgets-label": "Напівпрозорі віджети"
},
"wallpaper": {
"automation-change-mode-alphabetical": "Алфавітний",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "阴影",
"title": "用户界面",
"tooltips-description": "启用或禁用整个界面的提示信息。",
"tooltips-label": "显示提示信息(Tooltip"
"tooltips-label": "显示提示信息(Tooltip",
"translucent-widgets-description": "使面板内的按钮、选项卡和其他小部件半透明。",
"translucent-widgets-label": "半透明小部件"
},
"wallpaper": {
"automation-change-mode-alphabetical": "按字母顺序",
+3 -1
View File
@@ -1684,7 +1684,9 @@
"shadows-label": "陰影",
"title": "使用者介面",
"tooltips-description": "在整個介面啟用或停用提示框",
"tooltips-label": "顯示提示框"
"tooltips-label": "顯示提示框",
"translucent-widgets-description": "使面板內的按鈕、分頁和其他小部件半透明。",
"translucent-widgets-label": "半透明小工具"
},
"wallpaper": {
"automation-change-mode-alphabetical": "照字母排序",
+1
View File
@@ -152,6 +152,7 @@
"scrollbarAlwaysVisible": true,
"boxBorderEnabled": false,
"panelBackgroundOpacity": 0.93,
"translucentWidgets": false,
"panelsAttachedToBar": true,
"settingsPanelMode": "attached",
"settingsPanelSideBarCardStyle": false
+9
View File
@@ -2052,6 +2052,15 @@
"subTab": 1,
"subTabLabel": "common.panels"
},
{
"labelKey": "panels.user-interface.translucent-widgets-label",
"descriptionKey": "panels.user-interface.translucent-widgets-description",
"widget": "NToggle",
"tab": 1,
"tabLabel": "panels.user-interface.title",
"subTab": 1,
"subTabLabel": "common.panels"
},
{
"labelKey": "panels.user-interface.dimmer-opacity-label",
"descriptionKey": "panels.user-interface.dimmer-opacity-description",
+3
View File
@@ -326,6 +326,9 @@ Singleton {
// Smart alpha calculation: automatically makes light mode more transparent
function smartAlpha(baseColor, minAlpha = 0.4) {
if (!Settings.data.ui.translucentWidgets)
return baseColor;
let baseOpacity = Settings.data.ui.panelBackgroundOpacity;
let targetOpacity = Settings.data.colorSchemes.darkMode ? baseOpacity : Math.pow(baseOpacity, 2);
let alpha = Math.max(targetOpacity, minAlpha);
+1
View File
@@ -330,6 +330,7 @@ Singleton {
property bool scrollbarAlwaysVisible: true
property bool boxBorderEnabled: false
property real panelBackgroundOpacity: 0.93
property bool translucentWidgets: false
property bool panelsAttachedToBar: true
property string settingsPanelMode: "attached" // "centered", "attached", "window"
property bool settingsPanelSideBarCardStyle: false
@@ -41,6 +41,14 @@ ColumnLayout {
text: Math.floor(Settings.data.ui.panelBackgroundOpacity * 100) + "%"
}
NToggle {
label: I18n.tr("panels.user-interface.translucent-widgets-label")
description: I18n.tr("panels.user-interface.translucent-widgets-description")
checked: Settings.data.ui.translucentWidgets
defaultValue: Settings.getDefaultValue("ui.translucentWidgets")
onToggled: checked => Settings.data.ui.translucentWidgets = checked
}
NValueSlider {
Layout.fillWidth: true
label: I18n.tr("panels.user-interface.dimmer-opacity-label")