diff --git a/apps/web/app/[locale]/[code]/page.tsx b/apps/web/app/[locale]/[code]/page.tsx index 8e8ab0d..b660366 100644 --- a/apps/web/app/[locale]/[code]/page.tsx +++ b/apps/web/app/[locale]/[code]/page.tsx @@ -134,7 +134,7 @@ export default function ClaimPage({ const highlighted = secret?.type === "text" ? highlight(secret.value) : null; return ( -
+
-

+

{titles(status)}

placeholder

@@ -177,7 +177,7 @@ export default function ClaimPage({ @@ -207,7 +207,7 @@ export default function ClaimPage({
{t("create")} @@ -226,7 +226,7 @@ export default function ClaimPage({ {secret.label && ( <>

{t("label")}

-

{secret.label}

+

{secret.label}

)}
@@ -270,7 +270,7 @@ export default function ClaimPage({ @@ -279,13 +279,13 @@ export default function ClaimPage({ <>

{t("filename")}

-

{secret.filename}

+

{secret.filename}

@@ -293,7 +293,7 @@ export default function ClaimPage({ ) : null} {secret && secret.remaining > 0 && ( -

+

{secret.remaining} {t("remaining")}

)} diff --git a/apps/web/app/[locale]/cmdk.tsx b/apps/web/app/[locale]/cmdk.tsx index e3fb75b..3f63bdd 100644 --- a/apps/web/app/[locale]/cmdk.tsx +++ b/apps/web/app/[locale]/cmdk.tsx @@ -110,7 +110,7 @@ export function CommandPalette() { className="absolute inset-0 bg-black/60 backdrop-blur-sm" onClick={() => setOpen(false)} /> -
+
shortcuts
diff --git a/apps/web/app/[locale]/share/page.tsx b/apps/web/app/[locale]/share/page.tsx index 8d4cf6c..2aec2e2 100644 --- a/apps/web/app/[locale]/share/page.tsx +++ b/apps/web/app/[locale]/share/page.tsx @@ -119,7 +119,7 @@ export default function SharePage() { const canSubmit = mode === "text" ? !!secret : !!file; return ( -
+
-

+

{t("title")}

{t("subtitle")}

@@ -152,7 +152,7 @@ export default function SharePage() { onClick={() => setMode("text")} className={`px-4 py-2 text-xs tracking-widest transition-colors border ${ mode === "text" - ? "bg-[#FF6B00] text-black border-[#FF6B00]" + ? "bg-[#d4b08c] text-black border-[#d4b08c]" : "border-white/10 text-white/40 hover:text-white hover:border-white/30" }`} > @@ -163,7 +163,7 @@ export default function SharePage() { onClick={() => setMode("file")} className={`px-4 py-2 text-xs tracking-widest transition-colors border ${ mode === "file" - ? "bg-[#FF6B00] text-black border-[#FF6B00]" + ? "bg-[#d4b08c] text-black border-[#d4b08c]" : "border-white/10 text-white/40 hover:text-white hover:border-white/30" }`} > @@ -180,7 +180,7 @@ export default function SharePage() { value={label} onChange={(e) => setLabel(e.target.value)} placeholder={t("labelPlaceholder")} - className="w-full bg-transparent border border-white/10 px-4 py-3 text-white placeholder:text-white/20 focus:outline-none focus:border-[#FF6B00] transition-colors font-mono text-sm" + className="w-full bg-transparent border border-white/10 px-4 py-3 text-white placeholder:text-white/20 focus:outline-none focus:border-[#d4b08c] transition-colors font-mono text-sm" />
@@ -194,7 +194,7 @@ export default function SharePage() { value={secret} onChange={(e) => setSecret(e.target.value)} placeholder={t("secretPlaceholder")} - className="w-full h-full bg-transparent border border-white/10 px-4 py-3 text-white placeholder:text-white/20 focus:outline-none focus:border-[#FF6B00] transition-colors resize-none font-mono text-sm" + className="w-full h-full bg-transparent border border-white/10 px-4 py-3 text-white placeholder:text-white/20 focus:outline-none focus:border-[#d4b08c] transition-colors resize-none font-mono text-sm" /> ) : (
@@ -221,7 +221,7 @@ export default function SharePage() { />
{file ? ( -

{file.name}

+

{file.name}

) : ( <>

{t("dropzone")}

@@ -247,7 +247,7 @@ export default function SharePage() { onClick={() => setViews(n)} className={`flex-1 h-9 text-sm transition-colors ${ views === n - ? "bg-[#FF6B00] text-black" + ? "bg-[#d4b08c] text-black" : "border border-white/10 text-white/40 hover:text-white hover:border-white/30" }`} > @@ -268,7 +268,7 @@ export default function SharePage() { onClick={() => setTtl(v)} className={`flex-1 h-9 text-sm transition-colors ${ ttl === v - ? "bg-[#FF6B00] text-black" + ? "bg-[#d4b08c] text-black" : "border border-white/10 text-white/40 hover:text-white hover:border-white/30" }`} > @@ -281,15 +281,15 @@ export default function SharePage() {
  • - + {t("security.encrypted")}
  • - + {t("security.server")}
  • - + {t("security.destruct")}
@@ -297,7 +297,7 @@ export default function SharePage() { @@ -311,7 +311,7 @@ export default function SharePage() { }} >
-

{t("success")}

+

{t("success")}

@@ -333,7 +333,7 @@ export default function SharePage() { diff --git a/apps/web/app/[locale]/vault/settings/delete.tsx b/apps/web/app/[locale]/vault/settings/delete.tsx index edebf37..6e48f80 100644 --- a/apps/web/app/[locale]/vault/settings/delete.tsx +++ b/apps/web/app/[locale]/vault/settings/delete.tsx @@ -37,31 +37,31 @@ export function DeleteModal({ open, onClose }: Props) { return ( -
-

this action cannot be undone

-

+

+

this action cannot be undone

+

all your vault items, api keys, and data will be permanently deleted.

-

+

we recommend exporting your data before deleting your account.

-
diff --git a/apps/web/app/[locale]/vault/settings/password.tsx b/apps/web/app/[locale]/vault/settings/password.tsx index d4c0ad1..172ed55 100644 --- a/apps/web/app/[locale]/vault/settings/password.tsx +++ b/apps/web/app/[locale]/vault/settings/password.tsx @@ -63,44 +63,44 @@ export function PasswordModal({ open, onClose }: Props) {
- + setCurrent(e.target.value)} - className="w-full px-3 py-2.5 bg-white border border-stone-200 rounded-lg text-stone-900 focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-500 transition-colors" + className="w-full px-3 py-2.5 bg-[#161616] border border-white/10 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-[#d4b08c]/20 focus:border-[#d4b08c] transition-colors" />
- + setNewPass(e.target.value)} - className="w-full px-3 py-2.5 bg-white border border-stone-200 rounded-lg text-stone-900 focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-500 transition-colors" + className="w-full px-3 py-2.5 bg-[#161616] border border-white/10 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-[#d4b08c]/20 focus:border-[#d4b08c] transition-colors" />
- + setConfirm(e.target.value)} - className="w-full px-3 py-2.5 bg-white border border-stone-200 rounded-lg text-stone-900 focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-500 transition-colors" + className="w-full px-3 py-2.5 bg-[#161616] border border-white/10 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-[#d4b08c]/20 focus:border-[#d4b08c] transition-colors" />
{error &&

{error}

}
diff --git a/apps/web/app/[locale]/vault/vault/filters.tsx b/apps/web/app/[locale]/vault/vault/filters.tsx index 6a30a6c..19de6af 100644 --- a/apps/web/app/[locale]/vault/vault/filters.tsx +++ b/apps/web/app/[locale]/vault/vault/filters.tsx @@ -20,12 +20,12 @@ export function TypeFilters({ selected, onSelect, counts }: Props) { onClick={() => onSelect(null)} className={`px-3 py-1.5 rounded-md text-xs font-medium flex items-center gap-1.5 transition-all ${ selected === null - ? "bg-orange-500/10 text-orange-500 border border-orange-500/20" - : "bg-zinc-800 text-zinc-400 border border-transparent hover:text-zinc-300" + ? "bg-[#d4b08c]/10 text-[#d4b08c] border border-[#d4b08c]/20" + : "bg-white/10 text-white/50 border border-transparent hover:text-white/60" }`} > all - {total} + {total} {types.map((type) => { const count = counts[type] || 0; @@ -37,13 +37,13 @@ export function TypeFilters({ selected, onSelect, counts }: Props) { onClick={() => onSelect(isActive ? null : type)} className={`px-3 py-1.5 rounded-md text-xs font-medium flex items-center gap-1.5 transition-all ${ isActive - ? "bg-orange-500/10 text-orange-500 border border-orange-500/20" - : "bg-zinc-800 text-zinc-400 border border-transparent hover:text-zinc-300" + ? "bg-[#d4b08c]/10 text-[#d4b08c] border border-[#d4b08c]/20" + : "bg-white/10 text-white/50 border border-transparent hover:text-white/60" }`} > - {typeIcons[type]} + {typeIcons[type]} {typeLabels[type]} - {count} + {count} ); })} diff --git a/apps/web/app/[locale]/vault/vault/item.tsx b/apps/web/app/[locale]/vault/vault/item.tsx index c318c49..3fff1e1 100644 --- a/apps/web/app/[locale]/vault/vault/item.tsx +++ b/apps/web/app/[locale]/vault/vault/item.tsx @@ -52,7 +52,7 @@ export function VaultListItem({ item, onClick, onFavorite, onTagClick }: Props)
@@ -81,7 +81,7 @@ export function VaultListItem({ item, onClick, onFavorite, onTagClick }: Props) }} className={`w-8 h-8 flex items-center justify-center rounded transition-all duration-150 shrink-0 ${ item.favorite - ? "text-[#FF6B00]" + ? "text-[#d4b08c]" : "text-white/20 hover:text-white/40 opacity-0 group-hover:opacity-100" }`} aria-label={item.favorite ? "remove from favorites" : "add to favorites"} diff --git a/apps/web/app/[locale]/vault/vault/modal.tsx b/apps/web/app/[locale]/vault/vault/modal.tsx index 8f98249..a97878c 100644 --- a/apps/web/app/[locale]/vault/vault/modal.tsx +++ b/apps/web/app/[locale]/vault/vault/modal.tsx @@ -5,8 +5,8 @@ import type { ItemType } from "@/lib/generated/prisma/enums"; import type { VaultItem } from "./store"; import { fieldConfigs } from "./fields"; import { typeIcons, typeIconsLarge, typeLabels, typeColors } from "./icons"; -import { PasswordFieldLight } from "./password"; -import { TagInputLight } from "./tags"; +import { PasswordField } from "./password"; +import { TagInput } from "./tags"; interface Props { item?: VaultItem | null; @@ -83,11 +83,11 @@ export function ItemModal({ item, defaulttype, onSave, onDelete, onRestore, onCl } function renderField(field: (typeof fields)[0]) { - const inputClass = "w-full bg-white border border-stone-200 rounded-xl px-4 py-3 text-base text-stone-900 placeholder:text-stone-400 focus:outline-none focus:ring-2 focus:ring-orange-500/40 focus:border-orange-500 transition-all read-only:bg-stone-50 read-only:text-stone-500"; + const inputClass = "w-full bg-white/5 border border-white/10 rounded-xl px-4 py-3 text-base text-white placeholder:text-white/40 focus:outline-none focus:ring-2 focus:ring-[#d4b08c]/40 focus:border-[#d4b08c] transition-all read-only:bg-white/[0.02] read-only:text-white/50"; return (
- + {field.type === "textarea" ? (