changes, bugs, todo (#7)

* bump license year, update manifest, remove zxcvbn.js from repo (use cdn for now)

* change name from locksidian to vaultguard

* change css names from locksidian to vaultguard

* add zxcvbn from package (1/?)

* add dev script, write code in index.js, build in main.js
This commit is contained in:
SpreeHertz 2026-04-01 22:12:14 +05:30 committed by GitHub
parent 7d4dbd8ba1
commit 1e9ecdccaf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 5219 additions and 1412 deletions

View file

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2025 Verity
Copyright (c) 2026 Verity
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View file

@ -1,6 +1,6 @@
# Locksidian
# VaultGuard
<p align="center">
<img alt="Locksidian lockscreen" src="https://github.com/user-attachments/assets/24ad6462-21e5-4b94-b4b5-2c3e9be2df16" />
<img alt="VaultGuard lockscreen" src="https://github.com/user-attachments/assets/24ad6462-21e5-4b94-b4b5-2c3e9be2df16" />
</p>
<p align="center">
@ -9,7 +9,7 @@
</p>
Locksidian is a secure, beautiful, and highly customizable lockscreen plugin for Obsidian. It protects your vault from unauthorized access with industry-standard encryption, while offering personalization features to match your unique workflow and style.
VaultGuard is a secure, beautiful, and highly customizable lockscreen plugin for Obsidian. It protects your vault from unauthorized access with industry-standard encryption, while offering personalization features to match your unique workflow and style.
This plugin is built with a security-first mindset, ensuring your sensitive notes remain private. It has been hardened for stability and performance, providing a seamless and reliable user experience.
@ -35,25 +35,25 @@ This plugin is built with a security-first mindset, ensuring your sensitive note
## From the Community Plugins Store (Not approved yet)
1. Open Settings in Obsidian.
2. Go to Community Plugins and make sure "Restricted mode" is off.
3. Click Browse and search for "Locksidian".
3. Click Browse and search for "VaultGuard".
4. Click Install, and then click Enable.
5. Open the Locksidian settings to set your master password!
5. Open the VaultGuard settings to set your master password!
## Manual Installation
1. Download the latest main.js, manifest.json, and styles.css from the releases page.
2. Download the latest zxcvbn.js and bg.mp4 from the main page.
3. Navigate to your Obsidian vault's plugin folder: <YourVault>/.obsidian/plugins/.
4. Create a new folder named locksidian.
4. Create a new folder named VaultGuard.
5. Place the five downloaded files inside this new folder.
6. In Obsidian, go to Settings -> Community Plugins and enable "Locksidian".
6. In Obsidian, go to Settings -> Community Plugins and enable "VaultGuard".
## Getting Started
- Set Your Password: After installing, go to the Locksidian settings tab. You will be prompted to create your master password.
- Set Your Password: After installing, go to the VaultGuard settings tab. You will be prompted to create your master password.
- Lock Your Vault:
- Click the Lock icon in the left ribbon.
- Use the command palette (Ctrl/Cmd + P) and run "Locksidian: Lock Vault".
- Use the command palette (Ctrl/Cmd + P) and run "VaultGuard: Lock Vault".
- Wait for the auto-lock timer to expire (if enabled).
- Customize: Head back to the Locksidian settings at any time (while unlocked) to change your password, configure the auto-lock timer, and customize your lockscreen.
- Customize: Head back to the VaultGuard settings at any time (while unlocked) to change your password, configure the auto-lock timer, and customize your lockscreen.
## ⚠️ CRITICAL: Read Before Enabling Note Encryption

25
esbuild.config.mjs Normal file
View file

@ -0,0 +1,25 @@
import esbuild from "esbuild";
import process from "process";
const prod = process.argv[2] === "production";
const ctx = await esbuild.context({
entryPoints: ["index.js"],
bundle: true,
external: ["obsidian"],
format: "cjs",
target: "es2018",
logLevel: "info",
sourcemap: prod ? false : "inline",
treeShaking: true,
outfile: "main.js",
minify: prod,
});
if (prod) {
await ctx.rebuild();
ctx.dispose();
} else {
await ctx.watch();
console.log("watching...");
}

1341
index.js Normal file

File diff suppressed because it is too large Load diff

4589
main.js

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{
"id": "locksidian",
"name": "Locksidian",
"id": "vaultguard",
"name": "VaultGuard",
"version": "2.2.0",
"minAppVersion": "0.12.0",
"description": "A secure, beautiful, and minimalist lockscreen.",

499
package-lock.json generated Normal file
View file

@ -0,0 +1,499 @@
{
"name": "vaultguard",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "vaultguard",
"version": "1.0.0",
"dependencies": {
"@zxcvbn-ts/core": "^3.0.4",
"@zxcvbn-ts/language-en": "^3.0.2",
"esbuild": "^0.27.4"
},
"devDependencies": {}
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz",
"integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==",
"cpu": [
"ppc64"
],
"license": "MIT",
"optional": true,
"os": [
"aix"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz",
"integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==",
"cpu": [
"arm"
],
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz",
"integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz",
"integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz",
"integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz",
"integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz",
"integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz",
"integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz",
"integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==",
"cpu": [
"arm"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz",
"integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz",
"integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==",
"cpu": [
"ia32"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz",
"integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==",
"cpu": [
"loong64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz",
"integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==",
"cpu": [
"mips64el"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz",
"integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==",
"cpu": [
"ppc64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz",
"integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==",
"cpu": [
"riscv64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz",
"integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==",
"cpu": [
"s390x"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz",
"integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-arm64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz",
"integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz",
"integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-arm64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz",
"integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz",
"integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openharmony-arm64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz",
"integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"openharmony"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz",
"integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz",
"integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz",
"integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==",
"cpu": [
"ia32"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz",
"integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@zxcvbn-ts/core": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@zxcvbn-ts/core/-/core-3.0.4.tgz",
"integrity": "sha512-aQeiT0F09FuJaAqNrxynlAwZ2mW/1MdXakKWNmGM1Qp/VaY6CnB/GfnMS2T8gB2231Esp1/maCWd8vTG4OuShw==",
"license": "MIT",
"dependencies": {
"fastest-levenshtein": "1.0.16"
}
},
"node_modules/@zxcvbn-ts/language-en": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@zxcvbn-ts/language-en/-/language-en-3.0.2.tgz",
"integrity": "sha512-Zp+zL+I6Un2Bj0tRXNs6VUBq3Djt+hwTwUz4dkt2qgsQz47U0/XthZ4ULrT/RxjwJRl5LwiaKOOZeOtmixHnjg==",
"license": "MIT"
},
"node_modules/esbuild": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz",
"integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==",
"hasInstallScript": true,
"license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
"@esbuild/aix-ppc64": "0.27.4",
"@esbuild/android-arm": "0.27.4",
"@esbuild/android-arm64": "0.27.4",
"@esbuild/android-x64": "0.27.4",
"@esbuild/darwin-arm64": "0.27.4",
"@esbuild/darwin-x64": "0.27.4",
"@esbuild/freebsd-arm64": "0.27.4",
"@esbuild/freebsd-x64": "0.27.4",
"@esbuild/linux-arm": "0.27.4",
"@esbuild/linux-arm64": "0.27.4",
"@esbuild/linux-ia32": "0.27.4",
"@esbuild/linux-loong64": "0.27.4",
"@esbuild/linux-mips64el": "0.27.4",
"@esbuild/linux-ppc64": "0.27.4",
"@esbuild/linux-riscv64": "0.27.4",
"@esbuild/linux-s390x": "0.27.4",
"@esbuild/linux-x64": "0.27.4",
"@esbuild/netbsd-arm64": "0.27.4",
"@esbuild/netbsd-x64": "0.27.4",
"@esbuild/openbsd-arm64": "0.27.4",
"@esbuild/openbsd-x64": "0.27.4",
"@esbuild/openharmony-arm64": "0.27.4",
"@esbuild/sunos-x64": "0.27.4",
"@esbuild/win32-arm64": "0.27.4",
"@esbuild/win32-ia32": "0.27.4",
"@esbuild/win32-x64": "0.27.4"
}
},
"node_modules/fastest-levenshtein": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
"integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
"license": "MIT",
"engines": {
"node": ">= 4.9.1"
}
}
}
}

15
package.json Normal file
View file

@ -0,0 +1,15 @@
{
"name": "vaultguard",
"version": "1.0.0",
"description": "<p align=\"center\">\r <img alt=\"VaultGuard lockscreen\" src=\"https://github.com/user-attachments/assets/24ad6462-21e5-4b94-b4b5-2c3e9be2df16\" />\r </p>",
"main": "main.js",
"scripts": {
"dev": "node esbuild.config.mjs",
"build": "node esbuild.config.mjs production"
},
"dependencies": {
"@zxcvbn-ts/core": "^3.0.4",
"@zxcvbn-ts/language-en": "^3.0.2",
"esbuild": "^0.27.4"
}
}

View file

@ -1,5 +1,5 @@
/*
* Locksidian: Stylesheet
* vaultguard: Stylesheet
* Refactored with bug fixes and improved layout
*/
@ -7,7 +7,7 @@
MAIN LOCKSCREEN & CORE STYLES
============================================================================ */
.locksidian-screen {
.vaultguard-screen {
position: fixed;
top: 0;
left: 0;
@ -22,17 +22,17 @@
overflow: hidden;
}
.locksidian-screen-loading {
.vaultguard-screen-loading {
/* No animations while loading */
animation: none !important;
}
.locksidian-screen-loading * {
.vaultguard-screen-loading * {
animation: none !important;
opacity: 1 !important;
}
.locksidian-screen.is-leaving {
.vaultguard-screen.is-leaving {
animation: fadeOutScreen 0.4s ease-out forwards;
}
@ -45,7 +45,7 @@
TITLEBAR (for window dragging)
============================================================================ */
.locksidian-titlebar {
.vaultguard-titlebar {
flex-shrink: 0;
height: 30px;
width: 100%;
@ -58,7 +58,7 @@
MAIN CONTENT AREA
============================================================================ */
.locksidian-main-content {
.vaultguard-main-content {
flex-grow: 1;
position: relative;
display: flex;
@ -79,7 +79,7 @@
BACKGROUND MEDIA (video, image, or color)
============================================================================ */
.locksidian-background-media {
.vaultguard-background-media {
position: absolute;
top: 0;
left: 0;
@ -95,7 +95,7 @@
OVERLAY (blur and darkening effect)
============================================================================ */
.locksidian-overlay {
.vaultguard-overlay {
position: absolute;
top: 0;
left: 0;
@ -113,7 +113,7 @@
CONTENT CONTAINER (username + password input)
============================================================================ */
.locksidian-content {
.vaultguard-content {
position: relative;
z-index: 10;
display: flex;
@ -121,7 +121,7 @@
align-items: center;
animation: slideUpIn 0.7s 0.2s cubic-bezier(0.25, 1, 0.5, 1) forwards,
fadeInContent 0.7s 0.2s ease-in-out forwards;
transform: translateY(20px) scale(var(--locksidian-ui-scale, 1));
transform: translateY(20px) scale(var(--vaultguard-ui-scale, 1));
transition: transform 0.3s ease;
opacity: 0;
/* Allow interaction with children */
@ -132,7 +132,7 @@
@keyframes slideUpIn {
to {
transform: translateY(0) scale(var(--locksidian-ui-scale, 1));
transform: translateY(0) scale(var(--vaultguard-ui-scale, 1));
}
}
@ -140,13 +140,13 @@
USERNAME DISPLAY
============================================================================ */
.locksidian-username {
.vaultguard-username {
font-size: 38px;
margin-bottom: 25px;
text-shadow: 0px 2px 12px rgba(0, 0, 0, 0.5);
font-family: var(--locksidian-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
font-weight: var(--locksidian-font-weight, 500);
font-style: var(--locksidian-font-style, normal);
font-family: var(--vaultguard-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
font-weight: var(--vaultguard-font-weight, 500);
font-style: var(--vaultguard-font-style, normal);
/* Prevent selection */
user-select: none;
-webkit-user-select: none;
@ -159,20 +159,20 @@
PASSWORD INPUT WRAPPER & INPUT (CORRECTED FOR GLASSMORPHISM)
============================================================================ */
.locksidian-password-wrapper {
.vaultguard-password-wrapper {
position: relative;
width: var(--locksidian-input-width, 340px);
width: var(--vaultguard-input-width, 340px);
max-width: 90vw;
transition: width 0.3s ease;
z-index: 10;
}
.locksidian-password-wrapper.is-error {
.vaultguard-password-wrapper.is-error {
animation: shake 0.4s linear;
}
/* This is the corrected rule for the input bar */
.locksidian-screen .locksidian-input {
.vaultguard-screen .vaultguard-input {
width: 100%;
/* [THE FIX] Dark, translucent background for the glass effect */
@ -202,24 +202,24 @@
text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.locksidian-input::placeholder {
.vaultguard-input::placeholder {
color: rgba(255, 255, 255, 0.4);
letter-spacing: 0.1em;
text-shadow: none;
}
/* Ensure the focus state also maintains the glass effect */
.locksidian-screen .locksidian-input:focus {
.vaultguard-screen .vaultguard-input:focus {
border-color: rgba(255, 255, 255, 0.4);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2),
0 0 0 2px rgba(255, 255, 255, 0.1) inset;
}
.locksidian-input.is-error {
.vaultguard-input.is-error {
border-color: #e74c3c !important;
}
.locksidian-input.is-success {
.vaultguard-input.is-success {
border-color: #2ecc71 !important;
}
@ -233,21 +233,21 @@
PROGRESS MODAL (for encryption/decryption)
============================================================================ */
.locksidian-progress-modal .modal-content {
.vaultguard-progress-modal .modal-content {
padding: 20px 30px;
}
.locksidian-progress-modal h2 {
.vaultguard-progress-modal h2 {
margin-bottom: 15px;
}
.locksidian-progress-modal .progress-status {
.vaultguard-progress-modal .progress-status {
font-size: 14px;
margin-bottom: 10px;
color: var(--text-muted);
}
.locksidian-progress-modal .progress-bar-wrapper {
.vaultguard-progress-modal .progress-bar-wrapper {
width: 100%;
height: 10px;
background-color: var(--background-modifier-border);
@ -256,14 +256,14 @@
margin-bottom: 10px;
}
.locksidian-progress-modal .progress-bar {
.vaultguard-progress-modal .progress-bar {
height: 100%;
background-color: var(--interactive-accent);
transition: width 0.3s ease;
border-radius: 5px;
}
.locksidian-progress-modal .progress-details {
.vaultguard-progress-modal .progress-details {
font-size: 12px;
min-height: 1.5em;
color: var(--text-muted);
@ -326,14 +326,14 @@
SETTINGS PANEL - BACKGROUND THUMBNAIL GRID
============================================================================ */
.locksidian-thumbnail-grid {
.vaultguard-thumbnail-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
gap: 15px;
margin-top: 10px;
}
.locksidian-thumbnail-item {
.vaultguard-thumbnail-item {
position: relative;
aspect-ratio: 16 / 9;
border-radius: 8px;
@ -344,25 +344,25 @@
background-color: var(--background-secondary);
}
.locksidian-thumbnail-item:hover {
.vaultguard-thumbnail-item:hover {
transform: scale(1.03);
box-shadow: 0 0 15px rgba(var(--accent-h), var(--accent-s), var(--accent-l), 0.3);
}
.locksidian-thumbnail-item.is-active {
.vaultguard-thumbnail-item.is-active {
border-color: var(--interactive-accent);
box-shadow: 0 0 15px rgba(var(--accent-h), var(--accent-s), var(--accent-l), 0.5);
transform: scale(1.05);
}
.locksidian-thumbnail-item .thumbnail-image {
.vaultguard-thumbnail-item .thumbnail-image {
width: 100%;
height: 100%;
object-fit: cover;
background-color: var(--background-secondary);
}
.locksidian-thumbnail-item .thumbnail-icon {
.vaultguard-thumbnail-item .thumbnail-icon {
width: 100%;
height: 100%;
display: flex;
@ -372,23 +372,23 @@
background-color: var(--background-secondary-alt);
}
.locksidian-thumbnail-item .thumbnail-icon svg {
.vaultguard-thumbnail-item .thumbnail-icon svg {
width: 40px;
height: 40px;
}
.locksidian-thumbnail-item.add-new-btn {
.vaultguard-thumbnail-item.add-new-btn {
border-style: dashed;
border-color: var(--text-faint);
color: var(--text-muted);
}
.locksidian-thumbnail-item.add-new-btn:hover {
.vaultguard-thumbnail-item.add-new-btn:hover {
border-color: var(--interactive-accent-hover);
color: var(--interactive-accent-hover);
}
.locksidian-thumbnail-item .delete-btn {
.vaultguard-thumbnail-item .delete-btn {
position: absolute;
top: 6px;
right: 6px;
@ -408,12 +408,12 @@
transition: all 0.2s ease;
}
.locksidian-thumbnail-item:hover .delete-btn {
.vaultguard-thumbnail-item:hover .delete-btn {
display: flex;
opacity: 1;
}
.locksidian-thumbnail-item .delete-btn:hover {
.vaultguard-thumbnail-item .delete-btn:hover {
background-color: #e74c3c;
color: white;
transform: scale(1.1);
@ -424,17 +424,17 @@
============================================================================ */
@media (max-width: 768px) {
.locksidian-username {
.vaultguard-username {
font-size: 32px;
margin-bottom: 20px;
}
.locksidian-input {
.vaultguard-input {
font-size: 16px;
padding: 14px 25px;
}
.locksidian-thumbnail-grid {
.vaultguard-thumbnail-grid {
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
gap: 10px;
}
@ -444,36 +444,36 @@
ACCESSIBILITY IMPROVEMENTS
============================================================================ */
.locksidian-input:focus-visible {
.vaultguard-input:focus-visible {
outline: 2px solid var(--interactive-accent);
outline-offset: 2px;
}
/* High contrast mode support */
@media (prefers-contrast: high) {
.locksidian-overlay {
.vaultguard-overlay {
background-color: rgba(0, 0, 0, 0.7);
}
.locksidian-input {
.vaultguard-input {
border-width: 3px;
}
}
/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
.locksidian-screen,
.locksidian-main-content,
.locksidian-content,
.locksidian-input,
.locksidian-thumbnail-item {
.vaultguard-screen,
.vaultguard-main-content,
.vaultguard-content,
.vaultguard-input,
.vaultguard-thumbnail-item {
animation: none !important;
transition: none !important;
opacity: 1 !important;
transform: none !important;
}
.locksidian-screen.is-leaving {
.vaultguard-screen.is-leaving {
opacity: 0 !important;
}
}

File diff suppressed because one or more lines are too long