aboutsummaryrefslogtreecommitdiffstats
path: root/core/src/components/AppMenuEntry.vue
diff options
context:
space:
mode:
authorFerdinand Thiessen <opensource@fthiessen.de>2024-08-08 16:14:03 +0200
committerFerdinand Thiessen <opensource@fthiessen.de>2024-08-08 18:24:35 +0200
commited167930896cee93523780675a05d971e16c1a43 (patch)
tree2db7d8f56906a642ed485a7ba7cf5c23a1a2da34 /core/src/components/AppMenuEntry.vue
parente49c55df12349a12245f35f044eb443c59a52862 (diff)
downloadnextcloud-server-ed167930896cee93523780675a05d971e16c1a43.tar.gz
nextcloud-server-ed167930896cee93523780675a05d971e16c1a43.zip
fix: Make focussed app menu entry wider to see full name
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Diffstat (limited to 'core/src/components/AppMenuEntry.vue')
-rw-r--r--core/src/components/AppMenuEntry.vue30
1 files changed, 28 insertions, 2 deletions
diff --git a/core/src/components/AppMenuEntry.vue b/core/src/components/AppMenuEntry.vue
index ead86759e4a..cef6d413dcd 100644
--- a/core/src/components/AppMenuEntry.vue
+++ b/core/src/components/AppMenuEntry.vue
@@ -37,6 +37,8 @@ defineProps<{
width: var(--header-height);
height: var(--header-height);
position: relative;
+ // Needed to prevent jumping when hover an entry (keep in sync with :hover styles)
+ transition: width var(--animation-quick) ease-in-out;
&__link {
position: relative;
@@ -95,14 +97,14 @@ defineProps<{
left: 50%;
bottom: 8px;
display: block;
- transition: all 0.1s ease-in-out;
+ transition: all var(--animation-quick) ease-in-out;
opacity: 1;
}
}
&__icon,
&__label {
- transition: all 0.1s ease-in-out;
+ transition: all var(--animation-quick) ease-in-out;
}
// Make the hovered entry bold to see that it is hovered
@@ -110,6 +112,30 @@ defineProps<{
&:focus-within .app-menu-entry__label {
font-weight: bold;
}
+
+ // Adjust the width when an entry is focussed
+ // The focussed / hovered entry should grow, while both neighbors need to shrink
+ &:hover,
+ &:focus-within {
+ width: calc(var(--header-height) + var(--app-menu-entry-growth));
+
+ // The next entry needs to shrink half the growth
+ + .app-menu-entry {
+ width: calc(var(--header-height) - (var(--app-menu-entry-growth) / 2));
+ .app-menu-entry__icon {
+ margin-inline-end: calc(var(--app-menu-entry-growth) / 2);
+ }
+ }
+ }
+
+ // The previous entry needs to shrink half the growth
+ &:has(+ .app-menu-entry:hover),
+ &:has(+ .app-menu-entry:focus-within) {
+ width: calc(var(--header-height) - (var(--app-menu-entry-growth) / 2));
+ .app-menu-entry__icon {
+ margin-inline-start: calc(var(--app-menu-entry-growth) / 2);
+ }
+ }
}
</style>