Skip to content

Commit c4b0b18

Browse files
pringelmannnextcloud-command
authored andcommitted
fix(core): keep app menu settings icon legible on light backgrounds
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com> Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
1 parent cefe687 commit c4b0b18

157 files changed

Lines changed: 166 additions & 170 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

core/src/components/AppMenu.vue

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,17 @@
5454
:aria-expanded="opened ? 'true' : 'false'"
5555
@click="onTriggerClick('currentApp')">
5656
<template #icon>
57+
<!-- Settings sub-sections share one generic cog. An inline MDI icon
58+
inherits the button's currentColor (--color-background-plain-text),
59+
so it stays legible on both bright and dark headers without a filter. -->
60+
<IconCog
61+
v-if="currentApp.type === 'settings'"
62+
class="app-menu__current-app-cog"
63+
:size="20" />
5764
<img
65+
v-else
5866
class="app-menu__current-app-icon"
59-
:class="{ 'app-menu__current-app-icon--settings': currentApp.type === 'settings' }"
60-
:src="displayIcon"
67+
:src="currentApp.icon"
6168
alt=""
6269
aria-hidden="true">
6370
</template>
@@ -79,6 +86,7 @@ import { generateUrl, imagePath } from '@nextcloud/router'
7986
import { defineComponent, ref } from 'vue'
8087
import NcButton from '@nextcloud/vue/components/NcButton'
8188
import NcPopover from '@nextcloud/vue/components/NcPopover'
89+
import IconCog from 'vue-material-design-icons/Cog.vue'
8290
import IconDotsGrid from 'vue-material-design-icons/DotsGrid.vue'
8391
import AppItem from './AppItem.vue'
8492
import logger from '../logger.js'
@@ -91,6 +99,7 @@ export default defineComponent({
9199
92100
components: {
93101
AppItem,
102+
IconCog,
94103
IconDotsGrid,
95104
NcButton,
96105
NcPopover,
@@ -172,17 +181,6 @@ export default defineComponent({
172181
: this.currentApp.name
173182
},
174183
175-
// Match the collapsed label: a generic cog for any settings
176-
// sub-section instead of the per-section icon.
177-
displayIcon(): string {
178-
if (!this.currentApp) {
179-
return ''
180-
}
181-
return this.currentApp.type === 'settings'
182-
? imagePath('core', 'actions/settings-dark.svg')
183-
: this.currentApp.icon
184-
},
185-
186184
// aria-label overrides the inner span text, so the displayed name
187185
// has to be duplicated here for screen readers.
188186
currentAppLabel(): string {
@@ -466,12 +464,10 @@ export default defineComponent({
466464
// Theme-aware inversion + vertical alpha fade via --header-menu-icon-mask.
467465
filter: var(--background-image-invert-if-bright);
468466
mask: var(--header-menu-icon-mask);
467+
}
469468
470-
// Settings icons ship dark (designed for the white settings sidebar);
471-
// force-white so they read against the themed header.
472-
&--settings {
473-
filter: brightness(0) invert(1);
474-
}
469+
&__current-app-cog {
470+
mask: var(--header-menu-icon-mask);
475471
}
476472
477473
&__current-app-name {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
import{a as t}from"./index-C1xmmKTZ-CeESs0Yi.chunk.mjs";import{t as e}from"./translation-DoG5ZELJ-DGHp0fUA.chunk.mjs";import{C as m,a}from"./CommentView-BT4knYtH.chunk.mjs";import{l as p}from"./activity-CgsVnLJG.chunk.mjs";import{b as i,r as s,o as n,c,m as u}from"./Web-CVG0oWkS.chunk.mjs";import{_ as l}from"./public-C1mLBHT3.chunk.mjs";import"./index-BwhGLTdD.chunk.mjs";import"./NcModal-DyOZxq9E-DJ8lRVba.chunk.mjs";import"./logger-D3RVzcfQ-Bkys46hi.chunk.mjs";import"./createElementId-DhjFt1I9-BR-WXAA3.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./TrashCanOutline-ImpP8zID.chunk.mjs";import"./mdi-BsuzcJkY.chunk.mjs";import"./pinia-Dn16KcVd.chunk.mjs";import"./PencilOutline-CVTKhaas.chunk.mjs";/* empty css */import"./NcAvatar-QYahYt2p-B6sbjze-.chunk.mjs";import"./index-BrNm47xe.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-CLsEMAPw.chunk.mjs";import"./colors-2YFh1g7z-Esf5_Pnk.chunk.mjs";import"./NcUserStatusIcon-CNh1vXUF-BrBSNJ0h.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-B4upiZjL-GKzS94MD.chunk.mjs";import"./NcUserBubble-BnaGHDoD-CXGIMXGu.chunk.mjs";import"./GetComments-DSuBVNUT.chunk.mjs";import"./index-DscLWkdM.chunk.mjs";const d=i({components:{Comment:a},mixins:[m],props:{reloadCallback:{type:Function,required:!0}},methods:{onNewComment(){try{this.reloadCallback()}catch(o){t(e("comments","Could not reload comments")),p.error("Could not reload comments",{error:o})}}}});function C(o,f,y,w,D,N){const r=s("Comment");return n(),c(r,u(o.editorData,{autoComplete:o.autoComplete,resourceType:o.resourceType,editor:!0,userData:o.userData,resourceId:o.resourceId,class:"comments-action",onNew:o.onNewComment}),null,16,["autoComplete","resourceType","userData","resourceId","onNew"])}const S=l(d,[["render",C],["__scopeId","data-v-29a1e244"]]);export{S as default};
2-
//# sourceMappingURL=ActivityCommentAction-BqoKcCNg.chunk.mjs.map
1+
import{a as t}from"./index-C1xmmKTZ-LVyp88UA.chunk.mjs";import{t as e}from"./translation-DoG5ZELJ-DGHp0fUA.chunk.mjs";import{C as m,a}from"./CommentView-Byb88Ac-.chunk.mjs";import{l as p}from"./activity-CgsVnLJG.chunk.mjs";import{b as i,r as s,o as n,c,m as u}from"./Web-CVG0oWkS.chunk.mjs";import{_ as l}from"./public-C1mLBHT3.chunk.mjs";import"./index-BwhGLTdD.chunk.mjs";import"./NcModal-DyOZxq9E-DJ8lRVba.chunk.mjs";import"./logger-D3RVzcfQ-Bkys46hi.chunk.mjs";import"./createElementId-DhjFt1I9-BR-WXAA3.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./TrashCanOutline-ImpP8zID.chunk.mjs";import"./mdi-BsuzcJkY.chunk.mjs";import"./pinia-Dn16KcVd.chunk.mjs";import"./PencilOutline-CVTKhaas.chunk.mjs";/* empty css */import"./NcAvatar-QYahYt2p-B6sbjze-.chunk.mjs";import"./index-BrNm47xe.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-CLsEMAPw.chunk.mjs";import"./colors-2YFh1g7z-Esf5_Pnk.chunk.mjs";import"./NcUserStatusIcon-CNh1vXUF-BrBSNJ0h.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-B4upiZjL-GKzS94MD.chunk.mjs";import"./NcUserBubble-BnaGHDoD-CXGIMXGu.chunk.mjs";import"./GetComments-DSuBVNUT.chunk.mjs";import"./index-DscLWkdM.chunk.mjs";const d=i({components:{Comment:a},mixins:[m],props:{reloadCallback:{type:Function,required:!0}},methods:{onNewComment(){try{this.reloadCallback()}catch(o){t(e("comments","Could not reload comments")),p.error("Could not reload comments",{error:o})}}}});function C(o,f,y,w,D,N){const r=s("Comment");return n(),c(r,u(o.editorData,{autoComplete:o.autoComplete,resourceType:o.resourceType,editor:!0,userData:o.userData,resourceId:o.resourceId,class:"comments-action",onNew:o.onNewComment}),null,16,["autoComplete","resourceType","userData","resourceId","onNew"])}const S=l(d,[["render",C],["__scopeId","data-v-29a1e244"]]);export{S as default};
2+
//# sourceMappingURL=ActivityCommentAction-0v6GKlTu.chunk.mjs.map
File renamed without changes.

dist/ActivityCommentAction-BqoKcCNg.chunk.mjs.map renamed to dist/ActivityCommentAction-0v6GKlTu.chunk.mjs.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ActivityCommentAction-BqoKcCNg.chunk.mjs.map.license renamed to dist/ActivityCommentAction-0v6GKlTu.chunk.mjs.map.license

File renamed without changes.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
import{t as s}from"./translation-DoG5ZELJ-DGHp0fUA.chunk.mjs";import{C as p,a}from"./CommentView-BT4knYtH.chunk.mjs";import{_ as i}from"./public-C1mLBHT3.chunk.mjs";import{r as n,o as c,c as u,m as l}from"./Web-CVG0oWkS.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./pinia-Dn16KcVd.chunk.mjs";import"./PencilOutline-CVTKhaas.chunk.mjs";import"./logger-D3RVzcfQ-Bkys46hi.chunk.mjs";import"./createElementId-DhjFt1I9-BR-WXAA3.chunk.mjs";import"./NcModal-DyOZxq9E-DJ8lRVba.chunk.mjs";/* empty css */import"./NcAvatar-QYahYt2p-B6sbjze-.chunk.mjs";import"./index-BrNm47xe.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-CLsEMAPw.chunk.mjs";import"./colors-2YFh1g7z-Esf5_Pnk.chunk.mjs";import"./NcUserStatusIcon-CNh1vXUF-BrBSNJ0h.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-B4upiZjL-GKzS94MD.chunk.mjs";import"./TrashCanOutline-ImpP8zID.chunk.mjs";import"./NcUserBubble-BnaGHDoD-CXGIMXGu.chunk.mjs";import"./index-C1xmmKTZ-CeESs0Yi.chunk.mjs";import"./index-BwhGLTdD.chunk.mjs";import"./mdi-BsuzcJkY.chunk.mjs";import"./activity-CgsVnLJG.chunk.mjs";import"./GetComments-DSuBVNUT.chunk.mjs";import"./index-DscLWkdM.chunk.mjs";const d={name:"ActivityCommentEntry",components:{Comment:a},mixins:[p],props:{comment:{type:Object,required:!0},reloadCallback:{type:Function,required:!0}},data(){return{commentMessage:""}},watch:{comment(){this.commentMessage=this.comment.props.message}},mounted(){this.commentMessage=this.comment.props.message},methods:{t:s}};function g(t,e,o,f,m,C){const r=n("Comment");return c(),u(r,l({ref:"comment",tag:"li"},o.comment.props,{autoComplete:t.autoComplete,resourceType:t.resourceType,message:m.commentMessage,resourceId:t.resourceId,userData:t.genMentionsData(o.comment.props.mentions),class:"comments-activity",onDelete:e[0]||(e[0]=y=>o.reloadCallback())}),null,16,["autoComplete","resourceType","message","resourceId","userData"])}const Q=i(d,[["render",g],["__scopeId","data-v-afc310f1"]]);export{Q as default};
2-
//# sourceMappingURL=ActivityCommentEntry-Ckeq2NDx.chunk.mjs.map
1+
import{t as s}from"./translation-DoG5ZELJ-DGHp0fUA.chunk.mjs";import{C as p,a}from"./CommentView-Byb88Ac-.chunk.mjs";import{_ as i}from"./public-C1mLBHT3.chunk.mjs";import{r as n,o as c,c as u,m as l}from"./Web-CVG0oWkS.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./pinia-Dn16KcVd.chunk.mjs";import"./PencilOutline-CVTKhaas.chunk.mjs";import"./logger-D3RVzcfQ-Bkys46hi.chunk.mjs";import"./createElementId-DhjFt1I9-BR-WXAA3.chunk.mjs";import"./NcModal-DyOZxq9E-DJ8lRVba.chunk.mjs";/* empty css */import"./NcAvatar-QYahYt2p-B6sbjze-.chunk.mjs";import"./index-BrNm47xe.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-CLsEMAPw.chunk.mjs";import"./colors-2YFh1g7z-Esf5_Pnk.chunk.mjs";import"./NcUserStatusIcon-CNh1vXUF-BrBSNJ0h.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-B4upiZjL-GKzS94MD.chunk.mjs";import"./TrashCanOutline-ImpP8zID.chunk.mjs";import"./NcUserBubble-BnaGHDoD-CXGIMXGu.chunk.mjs";import"./index-C1xmmKTZ-LVyp88UA.chunk.mjs";import"./index-BwhGLTdD.chunk.mjs";import"./mdi-BsuzcJkY.chunk.mjs";import"./activity-CgsVnLJG.chunk.mjs";import"./GetComments-DSuBVNUT.chunk.mjs";import"./index-DscLWkdM.chunk.mjs";const d={name:"ActivityCommentEntry",components:{Comment:a},mixins:[p],props:{comment:{type:Object,required:!0},reloadCallback:{type:Function,required:!0}},data(){return{commentMessage:""}},watch:{comment(){this.commentMessage=this.comment.props.message}},mounted(){this.commentMessage=this.comment.props.message},methods:{t:s}};function g(t,e,o,f,m,C){const r=n("Comment");return c(),u(r,l({ref:"comment",tag:"li"},o.comment.props,{autoComplete:t.autoComplete,resourceType:t.resourceType,message:m.commentMessage,resourceId:t.resourceId,userData:t.genMentionsData(o.comment.props.mentions),class:"comments-activity",onDelete:e[0]||(e[0]=y=>o.reloadCallback())}),null,16,["autoComplete","resourceType","message","resourceId","userData"])}const Q=i(d,[["render",g],["__scopeId","data-v-afc310f1"]]);export{Q as default};
2+
//# sourceMappingURL=ActivityCommentEntry-HHU3a6o5.chunk.mjs.map
File renamed without changes.

dist/ActivityCommentEntry-Ckeq2NDx.chunk.mjs.map renamed to dist/ActivityCommentEntry-HHU3a6o5.chunk.mjs.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ActivityCommentEntry-Ckeq2NDx.chunk.mjs.map.license renamed to dist/ActivityCommentEntry-HHU3a6o5.chunk.mjs.map.license

File renamed without changes.

0 commit comments

Comments
 (0)