diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx
index f58394a..e9831fe 100644
--- a/apps/desktop/src/App.tsx
+++ b/apps/desktop/src/App.tsx
@@ -265,10 +265,13 @@ function App() {
return (
= ({ filter }) => {
const { downloads, toggleAddModal, updateDownload, removeDownload, clearFinished, redownload } = useDownloadStore();
const { isSidebarVisible, toggleSidebar } = useSettingsStore();
+ const isMac = navigator.userAgent.includes('Mac');
+
const [contextMenu, setContextMenu] = useState<{ x: number; y: number; id: string } | null>(null);
const [columnWidths, setColumnWidths] = useState([340, 100, 220, 100, 80, 170]);
const columnMinimums = [200, 80, 170, 80, 70, 120];
@@ -190,8 +192,18 @@ export const DownloadTable: React.FC = ({ filter }) => {
No Downloads
-
- Use Add or press
⌘V to paste one or more links.
+
+ Click
button or
+
+
+ {isMac ? : Ctrl}
+
+ +
+
+ V
+
+
+ to add downloads
) : (
@@ -210,7 +222,7 @@ export const DownloadTable: React.FC
= ({ filter }) => {
-
+
{filteredDownloads.map(d => (
= ({ filter }) => {
))}
- {Array.from({ length: Math.max(0, 10 - filteredDownloads.length) }).map((_, index) => (
-
- ))}
+
+ {Array.from({ length: 50 }).map((_, index) => {
+ const isEven = (filteredDownloads.length + index) % 2 === 1;
+ return (
+
+ );
+ })}
+
diff --git a/apps/desktop/src/components/SettingsView.tsx b/apps/desktop/src/components/SettingsView.tsx
index 86229e3..0ba9341 100644
--- a/apps/desktop/src/components/SettingsView.tsx
+++ b/apps/desktop/src/components/SettingsView.tsx
@@ -247,7 +247,7 @@ export default function SettingsView() {
type="number" min="1" max="16"
value={settings.perServerConnections}
onChange={(e) => settings.setPerServerConnections(Number(e.target.value))}
- className="app-control w-16 text-center"
+ className="app-control w-24 text-center"
/>
@@ -259,7 +259,7 @@ export default function SettingsView() {
type="number" min="1" max="12"
value={settings.maxConcurrentDownloads}
onChange={(e) => settings.setMaxConcurrentDownloads(Number(e.target.value))}
- className="app-control w-16 text-center"
+ className="app-control w-24 text-center"
/>
@@ -267,15 +267,15 @@ export default function SettingsView() {
Global speed limit:
0 = unlimited speed
-
@@ -287,7 +287,7 @@ export default function SettingsView() {
type="number" min="0" max="10"
value={settings.maxAutomaticRetries}
onChange={(e) => settings.setMaxAutomaticRetries(Number(e.target.value))}
- className="app-control w-16 text-center"
+ className="app-control w-24 text-center"
/>
@@ -476,13 +476,23 @@ export default function SettingsView() {
Spoofs the browser User-Agent to bypass download restrictions. Leave blank for default.
diff --git a/apps/desktop/src/index.css b/apps/desktop/src/index.css
index c7450ac..f8161b9 100644
--- a/apps/desktop/src/index.css
+++ b/apps/desktop/src/index.css
@@ -9,6 +9,7 @@
--item-hover: 0 0% 0% / 0.05;
--item-selected: 211 100% 50%;
--accent-color: 211 100% 50%;
+ --stripe-bg: 0 0% 0% / 0.04;
--text-primary: 0 0% 10%;
--text-secondary: 0 0% 40%;
@@ -36,6 +37,7 @@
--item-hover: 0 0% 0% / 0.05;
--item-selected: 211 100% 50%;
--accent-color: 211 100% 50%;
+ --stripe-bg: 0 0% 0% / 0.04;
--text-primary: 0 0% 10%;
--text-secondary: 0 0% 40%;
--text-muted: 0 0% 55%;
@@ -55,7 +57,7 @@
.theme-dark {
color-scheme: dark;
- --main-bg: 0 0% 10%;
+ --main-bg: 0 0% 11%;
--sidebar-bg: 0 0% 13%;
--sidebar-glass: 0 0% 13%;
--surface-raised: 0 0% 12%;
@@ -65,6 +67,7 @@
--item-hover: 0 0% 100% / 0.07;
--item-selected: 211 100% 56%;
--accent-color: 211 100% 56%;
+ --stripe-bg: 0 0% 100% / 0.04;
--text-primary: 0 0% 91%;
--text-secondary: 0 0% 75%;
--text-muted: 0 0% 50%;
@@ -95,6 +98,7 @@
--item-hover: 326 100% 74% / 0.10;
--item-selected: 326 100% 74%;
--accent-color: 326 100% 74%;
+ --stripe-bg: 0 0% 100% / 0.04;
--text-primary: 60 30% 96%;
--text-secondary: 228 14% 74%;
--text-muted: 229 12% 58%;
@@ -125,6 +129,7 @@
--item-hover: 193 43% 67% / 0.12;
--item-selected: 193 43% 67%;
--accent-color: 193 43% 67%;
+ --stripe-bg: 0 0% 100% / 0.04;
--text-primary: 218 27% 92%;
--text-secondary: 219 28% 80%;
--text-muted: 218 17% 63%;
@@ -376,7 +381,7 @@
.app-sidebar-shell {
padding: 9px 0 9px 9px;
- background: hsl(var(--sidebar-shell-bg));
+ background: transparent;
}
.sidebar-resize-handle {
@@ -960,17 +965,18 @@
}
.download-row {
- height: 31px;
+ height: 32px;
display: grid;
align-items: center;
padding: 0 16px;
- border-bottom: 1px solid hsl(var(--border-color));
+ margin: 2px 12px;
+ border-radius: 6px;
color: hsl(var(--text-primary));
font-size: 12px;
}
.download-row:nth-child(even) {
- background: hsl(var(--item-hover));
+ background: hsl(var(--stripe-bg));
}
.download-row:hover {
@@ -1014,12 +1020,14 @@
}
.download-ghost-row {
- height: 31px;
- border-bottom: 1px solid hsl(var(--border-color));
+ height: 32px;
+ margin: 2px 12px;
+ border-radius: 6px;
+ flex-shrink: 0;
}
- .download-ghost-row:nth-child(even) {
- background: hsl(var(--item-hover));
+ .download-ghost-row.striped {
+ background: hsl(var(--stripe-bg));
}
.download-status-cell {