Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tauri + React + Typescript</title>
<title>FileFlow</title>
</head>

<body>
Expand Down
157 changes: 94 additions & 63 deletions src/App.css
Original file line number Diff line number Diff line change
@@ -1,60 +1,6 @@
:root {
color-scheme: light dark;
accent-color: #3b6fe0;

--bg: #f4f5f7;
--surface: #ffffff;
--border: #e4e6ec;
--text: #1c1d22;
--muted: #696b76;
--accent: #3b6fe0;
--accent-2: #8b5cf6;
--ok: #1a8f3c;
--warn: #c2410c;

--hover: rgba(20, 25, 50, 0.05);
--soft: rgba(59, 111, 224, 0.1);
--ring: rgba(59, 111, 224, 0.28);
--shadow: 0 10px 30px rgba(20, 25, 50, 0.08);
--shadow-sm: 0 1px 2px rgba(20, 25, 50, 0.06);

--s1: 4px;
--s2: 8px;
--s3: 12px;
--s4: 16px;
--s5: 22px;
--s6: 32px;

--r: 8px;
--r-lg: 14px;
--t: 150ms cubic-bezier(0.2, 0.6, 0.2, 1);

--z-backdrop: 100;
--z-modal: 110;

font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-size: 13.5px;
color: var(--text);
}

@media (prefers-color-scheme: dark) {
:root {
--bg: #15161a;
--surface: #212229;
--border: #34353f;
--text: #f1f2f6;
--muted: #9a9caa;
--accent: #5b8dff;
--accent-2: #a78bfa;
--ok: #30d158;
--warn: #ffb02e;
--hover: rgba(255, 255, 255, 0.06);
--soft: rgba(91, 141, 255, 0.16);
--ring: rgba(91, 141, 255, 0.36);
--shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
}
}
/* Component styles. All color and structure tokens live in theme.css — nothing
in this file names a raw color, so every rule works in every theme. */
@import "./theme.css";

* {
box-sizing: border-box;
Expand Down Expand Up @@ -87,6 +33,8 @@ body {
height: 100vh;
}

/* --- Top bar & progress ------------------------------------------------ */

.topbar {
display: flex;
align-items: center;
Expand Down Expand Up @@ -153,6 +101,8 @@ body {
color: var(--accent);
}

/* --- Layout & typography ------------------------------------------------ */

main {
flex: 1;
overflow: auto;
Expand All @@ -176,6 +126,8 @@ h3 {
color: var(--muted);
}

/* --- Buttons ------------------------------------------------------------ */

button {
font: inherit;
font-weight: 500;
Expand Down Expand Up @@ -207,13 +159,14 @@ button:disabled {

button.primary,
button.save:not(:disabled) {
background: linear-gradient(135deg, var(--accent), var(--accent-2));
color: #fff;
background: var(--accent);
color: var(--on-accent);
border-color: transparent;
}

button.primary:hover:not(:disabled),
button.save:hover:not(:disabled) {
background: var(--accent);
filter: brightness(1.07);
}

Expand All @@ -233,6 +186,8 @@ button.danger:hover:not(:disabled) {
border-color: var(--warn);
}

/* --- Rows & fields ------------------------------------------------------ */

.row {
display: flex;
align-items: center;
Expand Down Expand Up @@ -338,6 +293,8 @@ button.danger:hover:not(:disabled) {
color: var(--muted);
}

/* --- Lists, empty states, cards ----------------------------------------- */

.empty {
color: var(--muted);
padding: var(--s6) 0;
Expand Down Expand Up @@ -493,6 +450,8 @@ details.card-edit[open] > .card-head::before {
border-radius: 6px;
}

/* --- Badges -------------------------------------------------------------- */

.badge {
display: inline-block;
font-size: 11px;
Expand All @@ -514,17 +473,17 @@ details.card-edit[open] > .card-head::before {
}

.badge.drive {
background: linear-gradient(135deg, var(--accent), var(--accent-2));
background: var(--flow-drive);
color: #fff;
}

.badge.photos {
background: #5e5ce6;
background: var(--flow-photos);
color: #fff;
}

.badge.folder {
background: #0d9488;
background: var(--flow-folder);
color: #fff;
}

Expand All @@ -542,11 +501,13 @@ details.card-edit[open] > .card-head::before {
font-variant-numeric: tabular-nums;
}

/* --- Modal --------------------------------------------------------------- */

.modal-backdrop {
position: fixed;
inset: 0;
z-index: var(--z-backdrop);
background: rgba(10, 12, 24, 0.5);
background: var(--backdrop);
backdrop-filter: blur(3px);
display: flex;
align-items: center;
Expand Down Expand Up @@ -841,3 +802,73 @@ details.card-edit[open] > .card-head::before {
.run-fail {
color: var(--warn);
}

/* --- Theme picker (Settings → Appearance) ------------------------------ */

.themes {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: var(--s3);
margin-top: var(--s3);
}

.theme-card {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 6px;
padding: var(--s2);
text-align: left;
}

.theme-card.on {
border-color: var(--accent);
box-shadow: 0 0 0 3px var(--ring);
}

/* Mini preview: the theme's background holding a surface card with its accent + text. */
.swatch {
display: flex;
align-items: flex-end;
height: 52px;
padding: 8px;
border: 1px solid var(--border);
border-radius: 6px;
overflow: hidden;
}

.swatch-card {
display: flex;
align-items: center;
gap: 5px;
width: 100%;
padding: 6px 7px;
border-radius: 5px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.swatch-dot {
width: 9px;
height: 9px;
border-radius: 50%;
flex: none;
}

.swatch-line {
height: 4px;
flex: 1;
border-radius: 2px;
opacity: 0.55;
}

.theme-name {
font-weight: 600;
font-size: 12.5px;
}

.theme-desc {
font-size: 11px;
line-height: 1.4;
color: var(--muted);
font-weight: 400;
}
Loading
Loading