mirror of
https://github.com/nimbold/Firelink.git
synced 2026-08-24 09:46:29 +00:00
fix(ui): stabilize side-aware RTL layout
Keep download columns in their default order, mirror sidebar badges by physical side, and reserve titlebar space for desktop controls. Refs #17
This commit is contained in:
@@ -126,7 +126,7 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
|
|||||||
onClick={() => onSelectFilter(filter)}
|
onClick={() => onSelectFilter(filter)}
|
||||||
>
|
>
|
||||||
<Icon className="w-[18px] h-[18px] me-3 shrink-0" strokeWidth={isSelected ? 2.5 : 2} />
|
<Icon className="w-[18px] h-[18px] me-3 shrink-0" strokeWidth={isSelected ? 2.5 : 2} />
|
||||||
<span className="truncate">{label}</span>
|
<span className="sidebar-nav-label truncate">{label}</span>
|
||||||
{getCount(filter) > 0 && (
|
{getCount(filter) > 0 && (
|
||||||
<span className="sidebar-count ms-auto min-w-5 px-1.5 py-0.5 rounded-full text-center text-[10px] leading-none font-bold">
|
<span className="sidebar-count ms-auto min-w-5 px-1.5 py-0.5 rounded-full text-center text-[10px] leading-none font-bold">
|
||||||
{getCount(filter)}
|
{getCount(filter)}
|
||||||
@@ -208,7 +208,7 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
|
|||||||
className="sidebar-nav-item group flex w-full items-center text-[13px] text-start cursor-default font-medium"
|
className="sidebar-nav-item group flex w-full items-center text-[13px] text-start cursor-default font-medium"
|
||||||
>
|
>
|
||||||
<List className="w-[18px] h-[18px] me-3 shrink-0" strokeWidth={isSelected ? 2.5 : 2} />
|
<List className="w-[18px] h-[18px] me-3 shrink-0" strokeWidth={isSelected ? 2.5 : 2} />
|
||||||
<span className="truncate">{queue.name}</span>
|
<span className="sidebar-nav-label truncate">{queue.name}</span>
|
||||||
{getCount(filterId) > 0 && (
|
{getCount(filterId) > 0 && (
|
||||||
<span className="sidebar-count ms-auto min-w-5 px-1.5 py-0.5 rounded-full text-center text-[10px] leading-none font-bold shrink-0">
|
<span className="sidebar-count ms-auto min-w-5 px-1.5 py-0.5 rounded-full text-center text-[10px] leading-none font-bold shrink-0">
|
||||||
{getCount(filterId)}
|
{getCount(filterId)}
|
||||||
@@ -228,7 +228,7 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
|
|||||||
className="sidebar-nav-item group flex w-full items-center text-[13px] text-start cursor-default font-medium"
|
className="sidebar-nav-item group flex w-full items-center text-[13px] text-start cursor-default font-medium"
|
||||||
>
|
>
|
||||||
<Icon className="w-[18px] h-[18px] me-3 shrink-0" strokeWidth={isSelected ? 2.5 : 2} />
|
<Icon className="w-[18px] h-[18px] me-3 shrink-0" strokeWidth={isSelected ? 2.5 : 2} />
|
||||||
<span>{label}</span>
|
<span className="sidebar-nav-label">{label}</span>
|
||||||
</button>
|
</button>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -341,7 +341,7 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
|
|||||||
className="sidebar-nav-item sidebar-settings-button group flex w-full items-center text-[13px] text-start cursor-default font-medium transition-colors"
|
className="sidebar-nav-item sidebar-settings-button group flex w-full items-center text-[13px] text-start cursor-default font-medium transition-colors"
|
||||||
>
|
>
|
||||||
<Settings className={`w-[18px] h-[18px] me-3 shrink-0 ${activeView === 'settings' ? 'text-white' : 'text-text-muted'}`} strokeWidth={activeView === 'settings' ? 2.5 : 2} />
|
<Settings className={`w-[18px] h-[18px] me-3 shrink-0 ${activeView === 'settings' ? 'text-white' : 'text-text-muted'}`} strokeWidth={activeView === 'settings' ? 2.5 : 2} />
|
||||||
<span>{t($ => $.navigation.settings)}</span>
|
<span className="sidebar-nav-label">{t($ => $.navigation.settings)}</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -1112,6 +1112,14 @@ html[data-list-density="relaxed"] {
|
|||||||
right: 124px;
|
right: 124px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app-sidebar-shell--left .sidebar-nav-item {
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-sidebar-shell--right .sidebar-nav-item {
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
|
||||||
.app-statusbar {
|
.app-statusbar {
|
||||||
height: 26px;
|
height: 26px;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
@@ -1686,6 +1694,11 @@ html[data-list-density="relaxed"] {
|
|||||||
background: hsl(var(--statusbar-bg));
|
background: hsl(var(--statusbar-bg));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app-workspace--custom-window-controls .main-titlebar {
|
||||||
|
padding-left: 160px;
|
||||||
|
padding-right: 160px;
|
||||||
|
}
|
||||||
|
|
||||||
.app-workspace--sidebar-collapsed .main-titlebar {
|
.app-workspace--sidebar-collapsed .main-titlebar {
|
||||||
padding-left: 124px;
|
padding-left: 124px;
|
||||||
padding-right: 18px;
|
padding-right: 18px;
|
||||||
@@ -1860,6 +1873,7 @@ html[data-list-density="relaxed"] {
|
|||||||
|
|
||||||
.download-table-header,
|
.download-table-header,
|
||||||
.download-row {
|
.download-row {
|
||||||
|
direction: ltr;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
@@ -2410,6 +2424,40 @@ html[dir="rtl"] .sidebar-inner .mr-3 {
|
|||||||
-2px 0 10px hsl(0 0% 0% / 0.20);
|
-2px 0 10px hsl(0 0% 0% / 0.20);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app-sidebar-shell--left .sidebar-toggle-button {
|
||||||
|
inset-inline-start: auto;
|
||||||
|
inset-inline-end: auto;
|
||||||
|
left: auto;
|
||||||
|
right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-sidebar-shell--right .sidebar-toggle-button {
|
||||||
|
inset-inline-start: auto;
|
||||||
|
inset-inline-end: auto;
|
||||||
|
left: 12px;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-sidebar-shell--left .sidebar-nav-item .sidebar-count {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-sidebar-shell--right .sidebar-nav-item .sidebar-count {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-sidebar-shell--left .sidebar-nav-item > svg {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-sidebar-shell--right .sidebar-nav-item > svg {
|
||||||
|
margin-left: 0.75rem;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
html[dir="rtl"] .mac-switch::after {
|
html[dir="rtl"] .mac-switch::after {
|
||||||
left: auto;
|
left: auto;
|
||||||
right: 2px;
|
right: 2px;
|
||||||
|
|||||||
Reference in New Issue
Block a user