These are your private keys. Anyone with access to them can access your account.
- Store them securely and never share them with anyone.
+
Security Warning. Do Not Lose.
+
These keys are your identity on Vector. There are no recovery options! If lost, your account cannot be restored. Never share them.
+ `;
- // Add seed phrase first if available (prioritized for users)
if (keys.seed_phrase) {
- exportContent += `
Seed Phrase:
-
${keys.seed_phrase}
`;
+ exportContent += `
+
+ `;
}
- // Always add the private key (nsec)
- exportContent += `
Private Key (nsec):
-
${keys.nsec}
`;
+ exportContent += `
+
+
Private Key (nsec)
+
+
Do Not Store on Device. Backup Offline.
+
+ `;
// Show the export information in a popup
- await popupConfirm('', exportContent, true, '', 'vector_warning.svg');
+ await popupConfirm('Export Account', exportContent, true, '', 'vector_warning.svg');
+
+ // Bind copy buttons via DOM (safe — no inline onclick with interpolated values)
+ const seedCopyBtn = document.getElementById('export-seed-copy');
+ if (seedCopyBtn) seedCopyBtn.onclick = () => navigator.clipboard.writeText(keys.seed_phrase);
+ const nsecCopyBtn = document.getElementById('export-nsec-value');
+ if (nsecCopyBtn) nsecCopyBtn.style.cursor = 'pointer', nsecCopyBtn.onclick = () => navigator.clipboard.writeText(keys.nsec);
} catch (error) {
console.error('Export failed:', error);
await popupConfirm('Export Failed', escapeHtml(error.toString()), true, '', 'vector_warning.svg');
@@ -1673,13 +1696,13 @@ async function initEncryptionSettings() {
* Update change credential button visibility and text
*/
function updateChangeCredentialButton() {
- const btn = document.getElementById('security-change-credential');
- if (!btn) return;
+ const container = document.getElementById('change-pin-container');
+ if (!container) return;
if (fEncryptionEnabled) {
- btn.style.display = '';
- btn.textContent = fSecurityType === 'password' ? 'Change Password' : 'Change PIN';
+ container.style.display = '';
+ domSettingsChangePinLabel.textContent = fSecurityType === 'password' ? 'Change Password' : 'Change PIN';
} else {
- btn.style.display = 'none';
+ container.style.display = 'none';
}
}
diff --git a/src/main.js b/src/main.js
index c2021c9f..1280e48e 100644
--- a/src/main.js
+++ b/src/main.js
@@ -166,9 +166,12 @@ const domSettingsDisplayImageTypesInfo = document.getElementById('display-image-
const domSettingsChatBgInfo = document.getElementById('chat-bg-info');
const domSettingsNotifMuteInfo = document.getElementById('notif-mute-info');
const domSettingsExportAccountInfo = document.getElementById('export-account-info');
+const domSettingsChangePinInfo = document.getElementById('change-pin-info');
+const domSettingsChangePinLabel = document.getElementById('change-pin-label');
const domSettingsLogoutInfo = document.getElementById('logout-info');
const domSettingsDonorsInfo = document.getElementById('donors-info');
const domDonorPivx = document.getElementById('donor-pivx');
+const domDonorGitcoin = document.getElementById('donor-gitcoin');
const domSettingsLogout = document.getElementById('logout-btn');
const domSettingsExport = document.getElementById('export-account-btn');
@@ -4268,7 +4271,7 @@ function updateChatHeaderSubtext(chat) {
domChatContactStatus.classList.remove('status-hidden');
domChatContactStatus.style.display = ''; // Reset display in case it was hidden by else branch
domChatContactStatus.textContent = newStatusText;
- domChatContactStatus.classList.toggle('text-gradient', shouldAddGradient);
+ domChatContactStatus.classList.toggle('typing-indicator-text', shouldAddGradient);
if (!shouldAddGradient) {
twemojify(domChatContactStatus);
}
@@ -4283,7 +4286,7 @@ function updateChatHeaderSubtext(chat) {
// Clear content after animation completes (300ms matches CSS transition)
statusHideTimeout = setTimeout(() => {
domChatContactStatus.textContent = '';
- domChatContactStatus.classList.remove('text-gradient');
+ domChatContactStatus.classList.remove('typing-indicator-text');
statusHideTimeout = null;
}, 300);
}
@@ -4724,7 +4727,7 @@ function renderChat(chat, primaryColor) {
pChatPreview.classList.add('cutoff');
const preview = generateChatPreviewText(chat);
- pChatPreview.classList.toggle('text-gradient', preview.isTyping);
+ pChatPreview.classList.toggle('typing-indicator-text', preview.isTyping);
pChatPreview.textContent = preview.text;
if (preview.needsTwemoji) twemojify(pChatPreview);
@@ -4776,7 +4779,7 @@ function updateChatlistPreview(chatId) {
if (pChatPreview) {
const preview = generateChatPreviewText(cChat);
- pChatPreview.classList.toggle('text-gradient', preview.isTyping);
+ pChatPreview.classList.toggle('typing-indicator-text', preview.isTyping);
pChatPreview.textContent = preview.text;
if (preview.needsTwemoji) twemojify(pChatPreview);
}
@@ -6453,7 +6456,7 @@ async function login(skipAnimations = false) {
switch (type) {
case 'start':
domLoginEncryptTitle.textContent = message;
- domLoginEncryptTitle.classList.add('text-gradient');
+ domLoginEncryptTitle.classList.add('typing-indicator-text');
domLoginEncryptTitle.style.color = '';
break;
@@ -6468,12 +6471,12 @@ async function login(skipAnimations = false) {
case 'complete':
domLoginEncryptTitle.textContent = message;
- domLoginEncryptTitle.classList.remove('text-gradient');
+ domLoginEncryptTitle.classList.remove('typing-indicator-text');
break;
case 'error':
domLoginEncryptTitle.textContent = message;
- domLoginEncryptTitle.classList.remove('text-gradient');
+ domLoginEncryptTitle.classList.remove('typing-indicator-text');
domLoginEncryptTitle.style.color = 'red';
break;
}
@@ -6809,7 +6812,9 @@ function renderProfileTab(cProfile) {
// npub display
const profileNpub = document.getElementById('profile-npub');
if (profileNpub) {
- profileNpub.textContent = cProfile.id;
+ profileNpub.dataset.fullNpub = cProfile.id;
+ profileNpub.textContent = cProfile.id.slice(0, 16) + '...' + cProfile.id.slice(-16);
+ document.getElementById('profile-npub-label').textContent = cProfile.mine ? 'My nPub Key' : 'nPub Key';
}
// Description
@@ -6822,7 +6827,7 @@ function renderProfileTab(cProfile) {
// Add npub copy functionality
document.getElementById('profile-npub-copy').onclick = (e) => {
- const npub = document.getElementById('profile-npub')?.textContent;
+ const npub = document.getElementById('profile-npub')?.dataset.fullNpub;
if (npub) {
// Copy the full profile URL for easy sharing
navigator.clipboard.writeText(npub).then(() => {
@@ -6862,6 +6867,9 @@ function renderProfileTab(cProfile) {
// Display the Navbar
domNavbar.style.display = '';
+ document.getElementById('profile-header-avatar-container').style.display = 'none';
+ document.getElementById('profile-name').textContent = 'My Profile';
+ document.getElementById('profile-status').style.display = 'none';
// Configure other clickables
domProfileName.onclick = askForUsername;
@@ -6877,6 +6885,8 @@ function renderProfileTab(cProfile) {
} else {
// Show Contact Options
domProfileOptions.style.display = '';
+ document.getElementById('profile-header-avatar-container').style.display = '';
+ document.getElementById('profile-status').style.display = '';
// Setup Mute option
const cMuteChat = arrChats.find(c => c.id === cProfile.id);
@@ -7686,7 +7696,7 @@ async function updateChat(chat, arrMessages = [], profile = null, fClicked = fal
domChatContact.onclick = null;
domChatContact.classList.remove('btn');
domChatContactStatus.textContent = 'Encrypted Notes to Self';
- domChatContactStatus.classList.remove('text-gradient');
+ domChatContactStatus.classList.remove('typing-indicator-text');
} else if (isGroup) {
domChatContact.textContent = chat?.metadata?.custom_fields?.name || `Group ${strOpenChat.substring(0, 10)}...`;
domChatContact.onclick = () => {
@@ -7702,7 +7712,7 @@ async function updateChat(chat, arrMessages = [], profile = null, fClicked = fal
domChatContact.onclick = null;
domChatContact.classList.remove('btn');
domChatContactStatus.textContent = '';
- domChatContactStatus.classList.remove('text-gradient');
+ domChatContactStatus.classList.remove('typing-indicator-text');
}
domChatContact.classList.toggle('chat-contact', !domChatContactStatus.textContent);
@@ -9640,7 +9650,7 @@ async function closeChat() {
domChatContact.textContent = '';
domChatContactStatus.textContent = '';
domChatContactStatus.classList.add('status-hidden');
- domChatContactStatus.classList.remove('text-gradient');
+ domChatContactStatus.classList.remove('typing-indicator-text');
domChatHeaderAvatarContainer.innerHTML = '';
// Reset procedural scroll state
@@ -11539,6 +11549,20 @@ domChatMessageInput.oninput = async () => {
popupConfirm('Export Account', 'Export Account will display a backup of your encryption keys. Keep it safe to restore your account later.', true);
};
+ if (domSettingsChangePinInfo) {
+ domSettingsChangePinInfo.onclick = (e) => {
+ e.preventDefault();
+ e.stopPropagation();
+ popupConfirm(
+ fSecurityType === 'password' ? 'Change Password' : 'Change PIN',
+ fSecurityType === 'password'
+ ? 'Your password encrypts all local data including messages, keys, and secrets stored on your device. Resetting it will re-encrypt everything with your new password.'
+ : 'Your PIN encrypts all local data including messages, keys, and secrets stored on your device. Resetting it will re-encrypt everything with your new PIN.',
+ true
+ );
+ };
+ }
+
// Info button for Refresh KeyPackages
const domRefreshKeypkgInfo = document.getElementById('refresh-keypkg-info');
if (domRefreshKeypkgInfo) {
@@ -11573,6 +11597,27 @@ domChatMessageInput.oninput = async () => {
openUrl('https://pivx.org');
};
+ // Gitcoin donor logo click - opens gitcoin.co
+ domDonorGitcoin.onclick = (e) => {
+ e.preventDefault();
+ e.stopPropagation();
+ openUrl('https://www.gitcoin.co');
+ };
+
+ // Footer Hyperlinks
+ document.getElementById('footer-donate').onclick = (e) => {
+ e.preventDefault();
+ openUrl('https://vector-privacy.gitbook.io/vector-privacy/vector-messenger/more/donations');
+ };
+ document.getElementById('footer-gitbook').onclick = (e) => {
+ e.preventDefault();
+ openUrl('https://docs.vectorapp.io');
+ };
+ document.getElementById('footer-privacy').onclick = (e) => {
+ e.preventDefault();
+ openUrl('https://vectorapp.io/privacy-policy');
+ };
+
});
// Listen for app-wide click interations
diff --git a/src/styles.css b/src/styles.css
index 9eaae5c5..9b8a8721 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -322,6 +322,17 @@ html, body {
opacity: 0.5;
}
+.settings-footer span {
+ color: #5B6060;
+ font-size: 13px;
+ cursor: pointer;
+ transition: color 0.2s ease;
+}
+
+.settings-footer span:hover {
+ color: #fff;
+}
+
.popup-container {
z-index: 10002;
width: 100%;
@@ -378,14 +389,7 @@ html, body {
margin-top: auto;
}
-.text-gradient {
- background-clip: text;
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- animation: BreathingGradient 6s cubic-bezier(.46,.03,.52,.96) infinite;
-}
-
-.text-gradient-green {
+.typing-indicator-text {
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
@@ -393,15 +397,13 @@ html, body {
}
.startup-subtext-gradient {
- background-clip: text;
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- animation: BreathingGradient 6s cubic-bezier(.46,.03,.52,.96) infinite;
-
/* Always uses Vector theme (brand colour) */
background: linear-gradient(to right, #2b976c 13.87%, #59fcb3 60%);
background-size: 200% 200%;
background-clip: text;
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ animation: BreathingGradient 6s cubic-bezier(.46,.03,.52,.96) infinite;
}
@keyframes BreathingGradient {
@@ -734,8 +736,8 @@ html, body {
height: 175px;
margin: -87px auto 10px;
border-radius: 50%;
- border: 8px solid #060606;
- background-color: #060606;
+ border: 8px solid #030303;
+ background-color: #030303;
}
/* Avatar Image */
@@ -893,12 +895,12 @@ html, body {
border-style: solid;
border-width: 2px;
color: #b2b2b2;
- background-color: #060606;
+ background-color: #030303;
cursor: pointer;
}
.profile-option:hover {
- background-color: #161616;
+ background-color: #171717;
border-color: #959899;
color: white;
opacity: 1;
@@ -908,34 +910,38 @@ html, body {
.profile-npub-container {
display: flex;
align-items: center;
- justify-content: space-between;
- margin: 20px 0;
- padding: 12px 16px;
- border-radius: 30px;
- width: calc(100% - 32px);
- max-width: 600px;
- margin-left: auto;
- margin-right: auto;
+ width: 85%;
+ gap: 4px;
+ margin: 8px auto 20px auto;
+ padding: 4px 4px 4px 8px;
}
.profile-npub {
+ flex: 1;
font-size: 14px;
- opacity: 0.75;
- word-break: break-all;
+ opacity: 0.9;
+ display: block;
+ white-space: nowrap;
text-align: center;
- flex: 1;
- padding: 0 12px;
}
.profile-npub-copy {
- width: 36px;
- height: 36px;
- background: none;
+ align-self: center;
+ flex-shrink: 0;
+ padding: 4px;
+ line-height: 1;
+ width: 28px;
+ height: 28px;
display: flex;
align-items: center;
justify-content: center;
- cursor: pointer;
- flex-shrink: 0;
+ background: transparent;
+ border: none;
+}
+
+.profile-npub-copy .icon-copy {
+ width: 20px;
+ height: 20px;
}
/* Icons */
@@ -1095,8 +1101,15 @@ html, body {
display: flex;
align-items: center;
height: 40px;
- background-color: transparent;
- border-color: rgba(128, 128, 128, 0.2);
+ color: #fff;
+ background-color: #17171750;
+ border: 1px solid #80808033;
+}
+
+.new-chat-btn:hover {
+ color: #fff;
+ background-color: #171717;
+ border-color: #B2B2B2;
}
.new-chat-btn .icon {
@@ -1105,6 +1118,11 @@ html, body {
width: 30px;
height: 30px;
margin: 0;
+ background: var(--primary-color);
+}
+
+.new-chat-btn .icon:hover {
+ background: var(--accent-color);
}
#chat-list {
@@ -1247,7 +1265,7 @@ html, body {
.chat-header {
position: fixed;
height: 60px;
- background-color: rgba(22, 22, 22, 0.85);
+ background-color: rgba(22, 22, 22, 0.9);
backdrop-filter: blur(10px);
display: flex;
align-items: center;
@@ -1325,8 +1343,8 @@ html, body {
margin-right: auto;
margin-top: -1px;
transition: opacity 0.25s cubic-bezier(0.22, 1, 0.36, 1), max-height 0.3s cubic-bezier(0.34, 1, 0.64, 1), margin-bottom 0.3s cubic-bezier(0.34, 1, 0.64, 1);
- max-height: 30px;
- overflow: hidden;
+ max-height: none;
+ overflow: visible;
}
.chat-contact-status.status-hidden {
@@ -3116,7 +3134,7 @@ audio {
left: 0;
right: 0;
height: 40px;
- background: linear-gradient(rgba(7, 7, 7, 0.85), #00000000 80%);
+ background: linear-gradient(#030303d9, #03030300 80%);
pointer-events: none;
}
@@ -3181,7 +3199,7 @@ audio {
#settings {
overflow-y: auto;
height: 100%;
- padding-bottom: 100px;
+ padding-bottom: 80px;
overscroll-behavior: none;
-webkit-overflow-scrolling: touch;
touch-action: pan-y;
@@ -3217,7 +3235,7 @@ select {
}
#whisper-model option {
- background: #161616;
+ background: #171717;
padding: 10px;
}
@@ -3875,6 +3893,12 @@ input[type="checkbox"]:checked + .neon-toggle:before {
#theme-select {
text-align: center;
text-align-last: center;
+ appearance: none;
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+ background-position: right 12px center;
+ background-size: 10px;
+ padding-right: 36px;
}
/* Remove default focus outline and apply custom styling */
@@ -3884,7 +3908,7 @@ input[type="checkbox"]:checked + .neon-toggle:before {
/* Style options to match whisper model */
#theme-select option {
- background: #161616;
+ background: #171717;
text-align: center;
padding: 10px;
}
@@ -3907,11 +3931,22 @@ select:focus::-ms-value {
/* Sound Notification Selection container styles */
#notif-sound-select option {
- background: #161616;
+ background: #171717;
padding: 10px;
text-align: center;
}
+/* Down Arrow added to Dropdown Button */
+#notif-sound-select {
+ text-align: center;
+ appearance: none;
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+ background-position: right 12px center;
+ background-size: 10px;
+ padding-right: 36px;
+}
+
/* Delete model button with trash bin icon */
.btn-delete-model {
position: absolute;
@@ -3995,7 +4030,7 @@ select:disabled:hover {
margin-left: 10px;
backdrop-filter: none;
border-color: #ff2ea9;
- background-color: #161616;
+ background-color: #171717;
}
.cancel-btn:disabled,
@@ -4159,7 +4194,7 @@ select:disabled:hover {
}
#chat-new-btn .icon {
- background-color: var(--icon-color-primary);
+ background-color: var(--primary-color);
}
.chat-new-help {
@@ -4268,7 +4303,7 @@ select:disabled:hover {
bottom: 0px;
height: 65px;
width: 100%;
- background-color: #161616;
+ background-color: #171717;
justify-content: space-evenly;
}
@@ -4510,7 +4545,7 @@ select:disabled:hover {
cursor: pointer;
font-size: 15px;
font-family: inherit;
- font-weight: 500;
+ font-weight: 600;
transition: all 0.2s;
}
@@ -6042,7 +6077,7 @@ select:disabled:hover {
right: 20px;
width: 40px;
height: 40px;
- background-color: rgba(255, 255, 255, 0.1);
+ background-color: #17171770;
border: none;
border-radius: 50%;
cursor: pointer;
@@ -6054,7 +6089,7 @@ select:disabled:hover {
}
.image-viewer-close:hover {
- background-color: rgba(255, 255, 255, 0.2);
+ background-color: #171717;
}
.image-viewer-close::before,
@@ -8135,7 +8170,7 @@ hr {
align-items: center;
gap: 14px;
padding: 14px;
- background-color: #161616;
+ background-color: #171717;
border-radius: 12px;
cursor: pointer;
transition: transform 0.2s, box-shadow 0.2s;
@@ -8537,7 +8572,7 @@ hr {
}
.publish-app-container {
- background-color: #161616;
+ background-color: #171717;
border-radius: 16px;
width: 90%;
max-width: 500px;
diff --git a/src/themes/chatstr/dark.css b/src/themes/chatstr/dark.css
index c4936e6f..72f5c57d 100644
--- a/src/themes/chatstr/dark.css
+++ b/src/themes/chatstr/dark.css
@@ -7,6 +7,8 @@
--voice-progress-secondary: rgba(177, 136, 226, 0.4);
--reply-highlight-border: #CD3DD3;
--toast-border-color: #b188e2;
+ --primary-color: #b188e2;
+ --accent-color: #CD3DD3;
}
.sync-line {
@@ -14,23 +16,17 @@
}
.popup {
- background-color: rgba(0, 0, 0, 1);
+ background-color: #030303;
box-shadow: 0 0 15px #b188e220;
border-color: #b188e2;
}
-.text-gradient {
+.typing-indicator-text {
background: linear-gradient(to right, #f8f8f8 13.87%, #f8f8f8 60%);
background-size: 200% 200%;
background-clip: text;
}
-.text-gradient-green {
- background: linear-gradient(to right, #59fcb3 13.87%, #2b976c 60%);
- background-size: 200% 200%;
- background-clip: text;
-}
-
.back-btn {
color: rgba(167, 137, 204, 1);
}
@@ -118,7 +114,7 @@ button {
}
.new-chat-btn .icon {
- background-color: #b188e2;
+ background-color: var(--primary-color);
}
.msg-preview-container {
diff --git a/src/themes/gifverse/dark.css b/src/themes/gifverse/dark.css
index 2c41857c..f0ca73d3 100644
--- a/src/themes/gifverse/dark.css
+++ b/src/themes/gifverse/dark.css
@@ -7,6 +7,8 @@
--voice-progress-secondary: #F7FFAE40;
--reply-highlight-border: #FFAECE;
--toast-border-color: #F7FFAE;
+ --primary-color: #F7FFAE;
+ --accent-color: #FFAECE;
}
.sync-line {
@@ -14,23 +16,17 @@
}
.popup {
- background-color: rgba(0, 0, 0, 1);
+ background-color: #030303;
box-shadow: 0 0 15px #F7FFAE50;
border-color: #F7FFAE;
}
-.text-gradient {
+.typing-indicator-text {
background: linear-gradient(to right, #f8f8f8 13.87%, #f8f8f8 60%);
background-size: 200% 200%;
background-clip: text;
}
-.text-gradient-green {
- background: linear-gradient(to right, #F7FFAE 13.87%, #F7FFAE 60%);
- background-size: 200% 200%;
- background-clip: text;
-}
-
.back-btn {
color: #F7FFAE;
}
@@ -118,7 +114,7 @@ button {
}
.new-chat-btn .icon {
- background-color: #F7FFAE;
+ background-color: var(--primary-color);
}
.msg-preview-container {
diff --git a/src/themes/pivx/dark.css b/src/themes/pivx/dark.css
index 4ee21b01..5b2c774a 100644
--- a/src/themes/pivx/dark.css
+++ b/src/themes/pivx/dark.css
@@ -8,6 +8,8 @@
--reply-highlight-border: #a128fd;
--toast-border-color: #B359FC;
--chat-bg-opacity: 0.04;
+ --primary-color: #B359FC;
+ --accent-color: #a128fd;
}
.sync-line {
@@ -15,23 +17,17 @@
}
.popup {
- background-color: rgba(0, 0, 0, 1);
+ background-color: #030303;
box-shadow: 0 0 15px #6202D420;
border-color: #6202D4;
}
-.text-gradient {
+.typing-indicator-text {
background: linear-gradient(to right, #f8f8f8 13.87%, #6202D4 60%);
background-size: 200% 200%;
background-clip: text;
}
-.text-gradient-green {
- background: linear-gradient(to right, #6202D4 13.87%, #1D003F 60%);
- background-size: 200% 200%;
- background-clip: text;
-}
-
.back-btn {
color: #B359FC;
}
@@ -141,7 +137,7 @@ button {
}
.new-chat-btn .icon {
- background-color: #B359FC;
+ background-color: var(--primary-color);
}
.msg-preview-container {
diff --git a/src/themes/satoshi/dark.css b/src/themes/satoshi/dark.css
index 1c124d89..365eda74 100644
--- a/src/themes/satoshi/dark.css
+++ b/src/themes/satoshi/dark.css
@@ -7,6 +7,8 @@
--voice-progress-secondary: #F7931A40;
--reply-highlight-border: #F9AA4B;
--toast-border-color: #F7931A;
+ --primary-color: #F7931A;
+ --accent-color: #F9AA4B;
}
.sync-line {
@@ -14,23 +16,17 @@
}
.popup {
- background-color: rgba(0, 0, 0, 1);
+ background-color: #030303;
box-shadow: 0 0 15px #F7931A20;
border-color: #F7931A;
}
-.text-gradient {
+.typing-indicator-text {
background: linear-gradient(to right, #f8f8f8 13.87%, #F7931A 60%);
background-size: 200% 200%;
background-clip: text;
}
-.text-gradient-green {
- background: linear-gradient(to right, #F7931A 13.87%, #B56C12 60%);
- background-size: 200% 200%;
- background-clip: text;
-}
-
.back-btn {
color: #F9AA4B;
}
@@ -118,7 +114,7 @@ button {
}
.new-chat-btn .icon {
- background-color: #F9AA4B;
+ background-color: var(--primary-color);
}
.msg-preview-container {
@@ -332,7 +328,7 @@ select:disabled {
#popupConfirm {
background-color: #F7931A;
- color: #ffffff;
+ color: #000;
}
/* File Preview Overlay Theme */
diff --git a/src/themes/vector/dark.css b/src/themes/vector/dark.css
index 74c7c8ba..ce6175b6 100644
--- a/src/themes/vector/dark.css
+++ b/src/themes/vector/dark.css
@@ -3,9 +3,11 @@
--voice-highlight-bg: rgba(89, 252, 179, 0.3);
--voice-highlight-text: #59fcb3;
--voice-frequency-glow: rgba(89, 252, 179, 0.8);
- --icon-color-primary: #59fcb3;
+ --icon-color-primary: #33DB98;
--reply-highlight-border: #33DB98;
--toast-border-color: #33DB98;
+ --primary-color: #33DB98;
+ --accent-color: #59fcb3;
}
.sync-line {
@@ -13,23 +15,17 @@
}
.popup {
- background-color: rgba(0, 0, 0, 1);
- box-shadow: 0 0 15px rgba(90, 252, 180, 0.25);
- border-color: rgba(90, 252, 180, 0.35);
+ background-color: #030303;
+ box-shadow: 0 0 15px #33DB9825;
+ border-color: #33DB98;
}
-.text-gradient {
+.typing-indicator-text {
background: linear-gradient(to right, #ffffff 13.87%, #808080 60%);
background-size: 200% 200%;
background-clip: text;
}
-.text-gradient-green {
- background: linear-gradient(to right, #59fcb3 13.87%, #2b976c 80%);
- background-size: 200% 200%;
- background-clip: text;
-}
-
.back-btn {
color: rgb(191, 191, 191);
}
@@ -123,7 +119,7 @@ button {
}
.new-chat-btn .icon {
- background-color: rgba(128, 255, 212, 0.75);
+ background-color: var(--primary-color);
}
.msg-preview-container {