Some icons look better using stroke over fill

This commit is contained in:
2022-08-14 23:40:24 +02:00
parent 8d03ea5eec
commit 3a58e77da0
4 changed files with 28 additions and 9 deletions

View File

@@ -4,7 +4,10 @@
:key="route?.title" :key="route?.title"
:to="{ path: route?.route }" :to="{ path: route?.route }"
> >
<li class="navigation-link" :class="{ active: route.route == active }"> <li
class="navigation-link"
:class="{ active: matchesActiveRoute(), 'nofill-stroke': useStroke }"
>
<component :is="route.icon" class="navigation-icon"></component> <component :is="route.icon" class="navigation-icon"></component>
<span>{{ route.title }}</span> <span>{{ route.title }}</span>
</li> </li>
@@ -19,12 +22,18 @@
interface Props { interface Props {
route: INavigationIcon; route: INavigationIcon;
active?: string; active?: string;
useStroke?: boolean;
} }
defineProps<Props>(); const props = defineProps<Props>();
const store = useStore(); const store = useStore();
const loggedIn = computed(() => store.getters["user/loggedIn"]); const loggedIn = computed(() => store.getters["user/loggedIn"]);
function matchesActiveRoute() {
const currentRoute = props.route.title.toLowerCase();
return props?.active?.includes(currentRoute);
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@@ -62,6 +71,18 @@
margin-top: 0.25rem; margin-top: 0.25rem;
color: var(--text-color-70); color: var(--text-color-70);
} }
&.nofill-stroke {
.navigation-icon {
stroke: var(--text-color-70);
fill: none !important;
}
&:hover .navigation-icon,
&.active .navigation-icon {
stroke: var(--text-color);
}
}
} }
a { a {

View File

@@ -5,6 +5,7 @@
:key="_route.route" :key="_route.route"
:route="_route" :route="_route"
:active="activeRoute" :active="activeRoute"
:useStroke="_route?.useStroke"
/> />
<slot></slot> <slot></slot>
</ul> </ul>
@@ -50,6 +51,7 @@
title: "Activity", title: "Activity",
route: "/activity", route: "/activity",
requiresAuth: true, requiresAuth: true,
useStroke: true,
icon: IconActivity icon: IconActivity
}, },
{ {
@@ -60,8 +62,9 @@
}, },
{ {
title: "Settings", title: "Settings",
route: "/profile?settings=true", route: "/settings",
requiresAuth: true, requiresAuth: true,
useStroke: true,
icon: IconSettings icon: IconSettings
} }
]; ];

View File

@@ -13,9 +13,3 @@
<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline> <polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline>
</svg> </svg>
</template> </template>
<style lang="scss" scoped>
svg {
fill: none !important;
}
</style>

View File

@@ -3,4 +3,5 @@ export default interface INavigationIcon {
route: string; route: string;
icon: any; // eslint-disable-line @typescript-eslint/no-explicit-any icon: any; // eslint-disable-line @typescript-eslint/no-explicit-any
requiresAuth?: boolean; requiresAuth?: boolean;
useStroke?: boolean;
} }