-
-
Drop PDFs here
-
Release to upload to your library
+
+
+
+
Drop PDFs here
+
Release to upload to your library
)}
diff --git a/frontend/src/index.css b/frontend/src/index.css
index 1fda1df..2848b5d 100644
--- a/frontend/src/index.css
+++ b/frontend/src/index.css
@@ -1,3 +1,12 @@
+@import "@fontsource/outfit/400.css";
+@import "@fontsource/outfit/500.css";
+@import "@fontsource/outfit/600.css";
+@import "@fontsource/outfit/700.css";
+@import "@fontsource/plus-jakarta-sans/400.css";
+@import "@fontsource/plus-jakarta-sans/500.css";
+@import "@fontsource/plus-jakarta-sans/600.css";
+@import "@fontsource/plus-jakarta-sans/700.css";
+
@import "tailwindcss";
/* Force light mode by requiring a .dark class that we never add */
@@ -6,44 +15,44 @@
/*
* PaperJet Design Tokens
*
- * Sejda-inspired: bright, airy, light mode with generous whitespace,
- * a restrained palette (one accent), soft shadows, rounded corners.
+ * Canva-inspired: Playful but professional. Violet/Indigo accents, dot-grid background.
*/
@theme {
- /* Accent color — refined blue */
- --color-accent-50: oklch(0.97 0.02 250);
- --color-accent-100: oklch(0.93 0.04 250);
- --color-accent-200: oklch(0.87 0.08 250);
- --color-accent-300: oklch(0.78 0.12 250);
- --color-accent-400: oklch(0.68 0.16 250);
- --color-accent-500: oklch(0.58 0.19 250);
- --color-accent-600: oklch(0.50 0.19 250);
- --color-accent-700: oklch(0.43 0.17 250);
- --color-accent-800: oklch(0.37 0.14 250);
- --color-accent-900: oklch(0.30 0.10 250);
+ /* Premium Violet/Indigo Accent */
+ --color-accent-50: #f5f3ff;
+ --color-accent-100: #ede9fe;
+ --color-accent-200: #ddd6fe;
+ --color-accent-300: #c4b5fd;
+ --color-accent-400: #a855f7; /* Purple */
+ --color-accent-500: #8b5cf6; /* Violet */
+ --color-accent-600: #7c3aed;
+ --color-accent-700: #6d28d9;
+ --color-accent-800: #5b21b6;
+ --color-accent-900: #4c1d95;
- /* Neutrals — warm gray */
- --color-neutral-50: oklch(0.985 0.002 250);
- --color-neutral-100: oklch(0.965 0.004 250);
- --color-neutral-200: oklch(0.925 0.006 250);
- --color-neutral-300: oklch(0.870 0.008 250);
- --color-neutral-400: oklch(0.700 0.010 250);
- --color-neutral-500: oklch(0.550 0.012 250);
- --color-neutral-600: oklch(0.440 0.012 250);
- --color-neutral-700: oklch(0.370 0.012 250);
- --color-neutral-800: oklch(0.270 0.010 250);
- --color-neutral-900: oklch(0.180 0.008 250);
+ /* Neutrals — clean cool gray */
+ --color-neutral-50: #f8fafc;
+ --color-neutral-100: #f1f5f9;
+ --color-neutral-200: #e2e8f0;
+ --color-neutral-300: #cbd5e1;
+ --color-neutral-400: #94a3b8;
+ --color-neutral-500: #64748b;
+ --color-neutral-600: #475569;
+ --color-neutral-700: #334155;
+ --color-neutral-800: #1e293b;
+ --color-neutral-900: #0f172a;
/* Semantic */
- --color-success: oklch(0.60 0.16 145);
- --color-warning: oklch(0.75 0.16 65);
- --color-error: oklch(0.58 0.20 25);
+ --color-success: #10b981;
+ --color-warning: #f59e0b;
+ --color-error: #ef4444;
/* Typography */
- --font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
- --font-mono: 'JetBrains Mono', ui-monospace, monospace;
+ --font-sans: 'Plus Jakarta Sans', ui-sans-serif, system-ui, -apple-system, sans-serif;
+ --font-heading: 'Outfit', ui-sans-serif, system-ui, -apple-system, sans-serif;
/* Transitions */
+ --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
--duration-fast: 150ms;
--duration-normal: 250ms;
@@ -61,18 +70,27 @@ html {
font-family: var(--font-sans);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
+ scroll-behavior: smooth;
}
+/*
+ Modern Dot Grid Background
+ Very clean, provides texture without overwhelming the content.
+*/
body {
margin: 0;
- background-color: var(--color-neutral-50);
color: var(--color-neutral-800);
line-height: 1.6;
+ background-color: #f8fafc;
+ background-image: radial-gradient(#cbd5e1 1px, transparent 1px);
+ background-size: 24px 24px;
+ min-height: 100vh;
}
-/* Smooth scrolling */
-html {
- scroll-behavior: smooth;
+/* Headings use the geometric font */
+h1, h2, h3, h4, h5, h6 {
+ font-family: var(--font-heading);
+ letter-spacing: -0.02em;
}
/* Focus ring utility */
diff --git a/frontend/src/pages/HomePage.tsx b/frontend/src/pages/HomePage.tsx
index 1d83f64..11d9149 100644
--- a/frontend/src/pages/HomePage.tsx
+++ b/frontend/src/pages/HomePage.tsx
@@ -18,12 +18,64 @@ export function HomePage() {
}, [currentTab, fetchDocuments, fetchTrash])
return (
-
+
{currentTab === 'library' ? (
+ {/* Hero Section */}
+
+ {/* Decorative background shapes */}
+
+
+
+
+
+
+ What will you edit today?
+
+
+ Upload any PDF to instantly annotate, sign, and modify it. Drop your files right here to get started.
+
+
+
+
+ {/* Visual Graphic */}
+
+
+
+
+
+
Recent Documents
+
+
) : (
@@ -33,4 +85,3 @@ export function HomePage() {
)
}
-
diff --git a/frontend/src/pages/LoginPage.tsx b/frontend/src/pages/LoginPage.tsx
index 91d00a1..0e17442 100644
--- a/frontend/src/pages/LoginPage.tsx
+++ b/frontend/src/pages/LoginPage.tsx
@@ -2,9 +2,8 @@ import { LoginForm } from '@/features/auth/LoginForm'
export function LoginPage() {
return (
-