diff --git a/src/app/(app)/epub/[id]/page.tsx b/src/app/(app)/epub/[id]/page.tsx index cf89c37..be5bf6d 100644 --- a/src/app/(app)/epub/[id]/page.tsx +++ b/src/app/(app)/epub/[id]/page.tsx @@ -173,9 +173,9 @@ export default function EPUBPage() {

{error}

- + Back to Documents @@ -190,7 +190,7 @@ export default function EPUBPage() { left={ @@ -242,7 +242,7 @@ export default function EPUBPage() { /> )} {isAtLimit ? ( -
+
diff --git a/src/app/(app)/html/[id]/page.tsx b/src/app/(app)/html/[id]/page.tsx index 995142b..2238fc2 100644 --- a/src/app/(app)/html/[id]/page.tsx +++ b/src/app/(app)/html/[id]/page.tsx @@ -160,7 +160,7 @@ export default function HTMLPage() {

{error}

@@ -177,7 +177,7 @@ export default function HTMLPage() { left={ @@ -233,7 +233,7 @@ export default function HTMLPage() { /> )} {isAtLimit ? ( -
+
diff --git a/src/app/(app)/pdf/[id]/page.tsx b/src/app/(app)/pdf/[id]/page.tsx index 6f8e2db..819e641 100644 --- a/src/app/(app)/pdf/[id]/page.tsx +++ b/src/app/(app)/pdf/[id]/page.tsx @@ -255,9 +255,9 @@ export default function PDFViewerPage() { - + Back to Documents @@ -308,34 +308,34 @@ export default function PDFViewerPage() { : (isMerging ? 'Stage: merge' : 'Stage: infer')); return ( -
+
{showDetailedParseLoader ? ( -
+
-
+
- PDF Layout Parse + PDF Layout Parse

{statusText}

-
+

{hasMeasuredProgress ? `Page ${pagesParsed} / ${totalPages}` : 'Awaiting first page'}

-

{stageLabel}

+

{stageLabel}

-
+
-

+

{hasMeasuredProgress ? `${Math.round(progressPercent)}% complete` : statusSubText}

@@ -345,7 +345,7 @@ export default function PDFViewerPage() { @@ -354,14 +354,14 @@ export default function PDFViewerPage() {
) : ( -
+

{compactLabel}

-

{compactSubLabel}

+

{compactSubLabel}

- +
@@ -384,7 +384,7 @@ export default function PDFViewerPage() { @@ -440,7 +440,7 @@ export default function PDFViewerPage() { /> )} {isAtLimit ? ( -
+
diff --git a/src/app/(app)/signin/page.tsx b/src/app/(app)/signin/page.tsx index bd0e93a..a486df1 100644 --- a/src/app/(app)/signin/page.tsx +++ b/src/app/(app)/signin/page.tsx @@ -120,11 +120,11 @@ function SignInContent() { -
+

{sessionExpired ? 'Session Expired' : 'Connect Account'}

-

+

{sessionExpired ? 'Please sign in again to continue' : 'Connect an email account to sync your data across devices'} @@ -154,8 +154,8 @@ function SignInContent() { value={email} onChange={(e) => { setEmail(e.target.value); setError(null); }} placeholder="me@example.com" - className="w-full rounded-lg bg-background py-2 px-3 text-foreground shadow-sm - focus:outline-none focus:ring-2 focus:ring-accent" + className="w-full rounded-lg bg-background py-2 px-3 text-foreground shadow-elev-1 + focus:outline-none focus:ring-2 focus:ring-accent-line" />

@@ -167,8 +167,8 @@ function SignInContent() { value={password} onChange={(e) => { setPassword(e.target.value); setError(null); }} placeholder="Password" - className="w-full rounded-lg bg-background py-2 px-3 text-foreground shadow-sm - focus:outline-none focus:ring-2 focus:ring-accent" + className="w-full rounded-lg bg-background py-2 px-3 text-foreground shadow-elev-1 + focus:outline-none focus:ring-2 focus:ring-accent-line" />
@@ -178,7 +178,7 @@ function SignInContent() { type="checkbox" checked={rememberMe} onChange={(e) => setRememberMe(e.target.checked)} - className="rounded border-muted text-accent focus:ring-accent" + className="rounded border-muted text-accent focus:ring-accent-line" /> Remember me @@ -230,16 +230,16 @@ function SignInContent() {
{/* Footer */} -
+
{enableUserSignups && ( -

+

Don't have an account?{' '} Sign up

)} -

+

By signing in, you agree to our{' '} ) : ( - + )}

{chapter.title}

-

+

{chapter.status !== 'completed' && Missing • }{formatDuration(chapter.duration)}

@@ -782,7 +782,7 @@ export function AudiobookExportModal({ {((onRegenerateChapter && !isGenerating) || chapter.status === 'completed') && ( @@ -799,7 +799,7 @@ export function AudiobookExportModal({ {chapter.status === 'completed' && ( <> @@ -807,7 +807,7 @@ export function AudiobookExportModal({ {({ active }) => (
{bookId && !isGenerating && ( -
+
@@ -938,43 +938,43 @@ export function AudiobookExportModal({ function AudiobookSettingsSkeleton() { return (
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
{Array.from({ length: 4 }).map((_, index) => ( -
+
))}
diff --git a/src/components/CodeBlock.tsx b/src/components/CodeBlock.tsx index f6ba950..f8eb86d 100644 --- a/src/components/CodeBlock.tsx +++ b/src/components/CodeBlock.tsx @@ -16,7 +16,7 @@ export function CodeBlock({ children }: { children: string }) { return (
+                      font-mono text-foreground border border-line">
         {children}
       
diff --git a/src/components/ConfirmDialog.tsx b/src/components/ConfirmDialog.tsx index 400961f..40da54b 100644 --- a/src/components/ConfirmDialog.tsx +++ b/src/components/ConfirmDialog.tsx @@ -62,7 +62,7 @@ export function ConfirmDialog({ leaveFrom="opacity-100 scale-100" leaveTo="opacity-0 scale-95" > - + -
+

🍪 We use cookies @@ -70,7 +70,7 @@ export function CookieConsentBanner() { className={buttonClass({ variant: 'primary', size: 'md', - className: 'whitespace-nowrap font-bold shadow-sm', + className: 'whitespace-nowrap font-bold shadow-elev-1', })} > Accept All diff --git a/src/components/Header.tsx b/src/components/Header.tsx index dfd8367..a89ece1 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -10,7 +10,7 @@ export function Header({ right?: ReactNode; }) { return ( -
+
{left} diff --git a/src/components/PrivacyModal.tsx b/src/components/PrivacyModal.tsx index 91c6ca9..43e4073 100644 --- a/src/components/PrivacyModal.tsx +++ b/src/components/PrivacyModal.tsx @@ -20,8 +20,8 @@ interface PrivacyModalProps { function PrivacyModalBody({ origin }: { origin: string }) { return (
-
-
Service Operator
+
+
Service Operator
This instance is hosted at {origin || 'this server'}.
@@ -102,7 +102,7 @@ export function PrivacyModal({ isOpen, onAccept, onDismiss }: PrivacyModalProps) leaveFrom="opacity-100 scale-100" leaveTo="opacity-0 scale-95" > - +
-
+
setAgreed(e.target.checked)} - className="h-4 w-4 rounded border-line text-accent focus:ring-accent bg-base" + className="h-4 w-4 rounded border-line text-accent focus:ring-accent-line bg-surface" />
@@ -216,7 +216,7 @@ export function showPrivacyModal(): void { leaveFrom="opacity-100 scale-100" leaveTo="opacity-0 scale-95" > - + +
{/* Header with operation type and cancel button */}
@@ -57,7 +57,7 @@ export function ProgressCard({ className={buttonClass({ variant: 'ghost', size: 'xs', - className: 'shrink-0 hover:bg-surface-sunken', + className: 'shrink-0 hover:bg-accent-wash', })} onClick={(e) => onCancel(e)} > @@ -74,7 +74,7 @@ export function ProgressCard({
{/* Stats row */} -
+
{completedChapters !== undefined && ( <> {completedChapters} chapters diff --git a/src/components/ProgressPopup.tsx b/src/components/ProgressPopup.tsx index 8a8578c..57afa29 100644 --- a/src/components/ProgressPopup.tsx +++ b/src/components/ProgressPopup.tsx @@ -42,7 +42,7 @@ export function ProgressPopup({
@@ -483,8 +483,8 @@ export function SettingsModal({ setActiveSection(visibleSections[0]?.id ?? 'theme'); }, [activeSection, visibleSections]); - const fieldLabelClass = 'block text-[11px] font-semibold uppercase tracking-wide text-muted'; - const sectionShellClass = 'space-y-2 pb-3 border-b border-offbase px-0.5'; + const fieldLabelClass = 'block text-[11px] font-semibold uppercase tracking-wide text-soft'; + const sectionShellClass = 'space-y-2 pb-3 border-b border-line-soft px-0.5'; const sectionHeadingClass = 'text-sm font-semibold text-foreground'; const effectiveProviderType = resolveEffectiveProviderType({ providerRef: selectedProviderRef, @@ -540,16 +540,16 @@ export function SettingsModal({ leaveFrom="opacity-100 scale-100" leaveTo="opacity-0 scale-95" > - + {/* Header */} -
+
Settings @@ -557,7 +557,7 @@ export function SettingsModal({
@@ -573,7 +573,7 @@ export function SettingsModal({ ) : ( <> {/* Mobile: 2x2 grid nav */} -
+
{visibleSections.map((section) => { const Icon = section.icon; return ( @@ -583,7 +583,7 @@ export function SettingsModal({ className={`flex items-center justify-center gap-1.5 px-2 py-1.5 rounded-lg text-xs font-medium transition-colors ${ activeSection === section.id ? 'bg-accent text-background' - : 'text-foreground hover:bg-offbase hover:text-accent' + : 'text-foreground hover:bg-accent-wash hover:text-accent' }`} > @@ -595,7 +595,7 @@ export function SettingsModal({
{/* Desktop: vertical sidebar */} -