mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
style(navigation): update nav item styles and improve hover effects
feat(rail-links): change icon for 'all channels' in playlists
This commit is contained in:
1 parent
6f914a6d34
commit
963049a7cc
6 files changed
+22
-67
No files matched your search
@@ -19,10 +19,6 @@
|
||||
font-size: 0.85em;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
&:hover:not(.category-item--selected) {
|
||||
background: var(--app-selection-surface);
|
||||
}
|
||||
}
|
||||
|
||||
.category-item--selected .item-count {
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<div class="nav-section">
|
||||
<mat-nav-list>
|
||||
<a
|
||||
class="portal-nav-link nav-item"
|
||||
mat-list-item
|
||||
routerLink="/"
|
||||
routerLinkActive="active"
|
||||
@@ -46,7 +47,7 @@
|
||||
@if (!isStalkerPlaylist()) {
|
||||
<a
|
||||
mat-list-item
|
||||
class="action-button"
|
||||
class="portal-nav-link nav-item action-button"
|
||||
(click)="openAccountInfo()"
|
||||
[matTooltip]="'PORTALS.SIDEBAR.ACCOUNT_INFO' | translate"
|
||||
matTooltipPosition="right"
|
||||
@@ -55,6 +56,7 @@
|
||||
</a>
|
||||
}
|
||||
<a
|
||||
class="portal-nav-link nav-item"
|
||||
mat-list-item
|
||||
(click)="openPlaylistInfo()"
|
||||
[matTooltip]="'PORTALS.SIDEBAR.PLAYLIST_INFO' | translate"
|
||||
@@ -64,6 +66,7 @@
|
||||
</a>
|
||||
<mat-divider />
|
||||
<a
|
||||
class="portal-nav-link nav-item"
|
||||
mat-list-item
|
||||
(click)="openSettings()"
|
||||
[matTooltip]="'MENU.SETTINGS' | translate"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
@use '../../../../../../../apps/web/src/nav-list.scss';
|
||||
|
||||
:host {
|
||||
padding: 4px;
|
||||
display: flex;
|
||||
@@ -13,11 +15,11 @@
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
.mdc-list-item {
|
||||
.portal-nav-link.mdc-list-item {
|
||||
min-height: 28px;
|
||||
height: 28px;
|
||||
padding: 0 !important;
|
||||
border-radius: 4px;
|
||||
border-radius: 10px;
|
||||
margin: 2px 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
@@ -47,11 +49,10 @@
|
||||
}
|
||||
|
||||
.active {
|
||||
background: var(--mat-sys-secondary-container);
|
||||
color: var(--mat-sys-on-secondary-container);
|
||||
color: var(--app-selection-color);
|
||||
|
||||
mat-icon {
|
||||
color: var(--mat-sys-on-secondary-container);
|
||||
color: var(--app-selection-color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-nav-list class="p-0 m-0">
|
||||
@for (link of links(); track link.path.join('/')) {
|
||||
<a
|
||||
class="portal-rail-link"
|
||||
class="portal-rail-link nav-item"
|
||||
mat-list-item
|
||||
[routerLink]="link.path"
|
||||
[routerLinkActive]="activeClass()"
|
||||
@@ -24,7 +24,7 @@
|
||||
<nav class="flex flex-col items-center gap-2 w-full">
|
||||
@for (link of links(); track link.path.join('/')) {
|
||||
<a
|
||||
class="portal-rail-link"
|
||||
class="portal-rail-link nav-item"
|
||||
[routerLink]="link.path"
|
||||
[routerLinkActive]="activeClass()"
|
||||
[routerLinkActiveOptions]="{ exact: link.exact ?? false }"
|
||||
|
||||
@@ -1,19 +1,13 @@
|
||||
@use '../../../../../../../apps/web/src/nav-list.scss';
|
||||
|
||||
:host {
|
||||
display: block;
|
||||
width: 100%;
|
||||
--rail-link-color: var(--mat-sys-on-surface-variant);
|
||||
--rail-link-hover-color: var(--mat-sys-on-surface);
|
||||
--rail-link-hover-bg: var(--mat-sys-surface-container);
|
||||
--rail-link-active-bg: var(--app-selection-surface);
|
||||
--rail-link-active-bg-strong: var(--app-selection-surface-strong);
|
||||
--rail-link-active-color: var(--app-selection-color);
|
||||
--rail-link-active-icon: var(--app-selection-color);
|
||||
--rail-link-active-border: var(--app-selection-border);
|
||||
--rail-link-active-glow: var(--app-selection-glow);
|
||||
}
|
||||
|
||||
.p-0.m-0 {
|
||||
.mdc-list-item {
|
||||
.portal-rail-link.mdc-list-item {
|
||||
min-height: 28px;
|
||||
height: 28px;
|
||||
padding: 0 !important;
|
||||
@@ -44,66 +38,27 @@
|
||||
width: 18px !important;
|
||||
height: 18px !important;
|
||||
}
|
||||
|
||||
.mdc-list-item.active,
|
||||
.mdc-list-item.is-active {
|
||||
background: linear-gradient(
|
||||
145deg,
|
||||
var(--rail-link-active-bg-strong),
|
||||
var(--rail-link-active-bg)
|
||||
);
|
||||
color: var(--rail-link-active-color);
|
||||
box-shadow:
|
||||
inset 0 0 0 1px var(--rail-link-active-border),
|
||||
0 8px 18px -14px var(--rail-link-active-glow);
|
||||
transform: translateY(-1px);
|
||||
|
||||
mat-icon {
|
||||
color: var(--rail-link-active-icon);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nav.flex .portal-rail-link {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
gap: 0;
|
||||
border-radius: 14px;
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--rail-link-color);
|
||||
text-decoration: none;
|
||||
transition:
|
||||
background-color 0.2s ease,
|
||||
color 0.2s ease,
|
||||
box-shadow 0.2s ease,
|
||||
transform 0.2s ease;
|
||||
app-region: no-drag;
|
||||
}
|
||||
|
||||
nav.flex .portal-rail-link:hover {
|
||||
color: var(--rail-link-hover-color);
|
||||
background: var(--rail-link-hover-bg);
|
||||
}
|
||||
|
||||
nav.flex .portal-rail-link.is-active,
|
||||
nav.flex .portal-rail-link.active {
|
||||
color: var(--rail-link-active-color);
|
||||
background: linear-gradient(
|
||||
145deg,
|
||||
var(--rail-link-active-bg-strong),
|
||||
var(--rail-link-active-bg)
|
||||
);
|
||||
box-shadow:
|
||||
inset 0 0 0 1px var(--rail-link-active-border),
|
||||
0 10px 20px -16px var(--rail-link-active-glow);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
nav.flex .portal-rail-link.is-active mat-icon,
|
||||
nav.flex .portal-rail-link.active mat-icon {
|
||||
color: var(--rail-link-active-icon);
|
||||
inset 0 0 0 1px var(--app-selection-border),
|
||||
0 10px 20px -16px var(--app-selection-glow);
|
||||
}
|
||||
|
||||
nav.flex .portal-rail-link.is-active::after,
|
||||
@@ -116,6 +71,6 @@ nav.flex .portal-rail-link.active::after {
|
||||
width: 4px;
|
||||
height: 20px;
|
||||
border-radius: 999px;
|
||||
background: var(--rail-link-active-icon);
|
||||
box-shadow: 0 0 10px var(--rail-link-active-glow);
|
||||
background: var(--app-selection-color);
|
||||
box-shadow: 0 0 10px var(--app-selection-glow);
|
||||
}
|
||||
@@ -174,7 +174,7 @@ export function buildPortalRailLinks(
|
||||
if (provider === 'playlists') {
|
||||
const primary: PortalRailLink[] = [
|
||||
{
|
||||
icon: 'list',
|
||||
icon: 'tv',
|
||||
tooltip: 'All channels (this playlist)',
|
||||
path: [...root, 'all'],
|
||||
exact: true,
|
||||
|
||||
Reference in new issue
Block a user