// ==UserScript==
// @name DeepSeek Redesign
// @namespace https://chat.deepseek.com/
// @version 2025-02-04
// @description Makes DeepSeek's UI more modern and pretty!
// @author q16
// @match https://chat.deepseek.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=deepseek.com
// @license MIT
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Helper function to replace $
function $(selector) {
return document.querySelector(selector);
}
// Helper function to replace $$
function $$(selector) {
return document.querySelectorAll(selector);
}
function applyStyles() {
// changing colors
document.body.style.setProperty("--dsr-bg", "#000");
document.body.style.setProperty("--dsr-input-bg", "#000");
document.body.style.setProperty("--dsr-side-bg", "#000");
try {
$(".f6d670.bcc55ca1").style.backgroundColor = "rgb(38, 38, 38)";
} catch { }
try {
$(".f6d670.bcc55ca1").style.color = "#b7b7b7";
} catch { }
// removing white "gradient" at the top of the page
$(".b480065b").style.background = "linear-gradient(rgba(0, 0, 0, 0.8) 0%,rgba(41,42,45,0) 100%)";
// logo change
try {
$(".e066abb8 > svg:nth-child(1)").remove();
var logoDiv = $(".e066abb8");
logoDiv.innerText = "DeepSeek";
logoDiv.style.fontSize = "30px";
logoDiv.style.fontWeight = "600";
} catch { }
$$(".ds-icon").forEach(
(icon) => (icon.style.filter = "saturate(0%) brightness(2)")
);
// removing mobile app ad
try {
$(".a1e75851").remove();
} catch { }
// inter font
var gaLink = document.createElement("link");
gaLink.setAttribute("rel", "preconnect");
gaLink.href = "https://fonts.googleapis.com";
var gsLink = document.createElement("link");
gsLink.setAttribute("rel", "preconnect");
gsLink.href = "https://fonts.gstatic.com";
gsLink.crossorigin = true;
var fontLink = document.createElement("link");
fontLink.href =
"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";
fontLink.setAttribute("rel", "stylesheet");
document.head.appendChild(gaLink);
document.head.appendChild(gsLink);
document.head.appendChild(fontLink);
// new chat button
try {
$(".a8ac7a80").style.backgroundColor = "#000";
$(".a8ac7a80").style.border = "1px solid white";
$(".a8ac7a80").style.setProperty(
"--local-button-hover",
"var(--dsr-side-hover-bg)"
);
} catch { }
// fix chat textarea shadow
$(".dd442025").style.boxShadow = "0 0 0 .5px rgba(0, 0, 0, 0.3)";
// bold "DeepSeek" in "Hi, I'm DeepSeek."
try {
$(".c7e7df4d").childNodes[1].remove();
var spanA = document.createElement("span");
spanA.textContent = "Hi, I'm ";
$(".c7e7df4d").appendChild(spanA);
var spanB = document.createElement("span");
spanB.textContent = "DeepSeek";
spanB.style.fontWeight = "800";
spanA.appendChild(spanB);
spanA.appendChild(document.createTextNode("."));
} catch { }
// prevent js from overriding new colors when resizing the window
window.addEventListener("resize", () => {
document.body.style.setProperty("--dsr-bg", "#000");
document.body.style.setProperty("--dsr-input-bg", "#000");
document.body.style.setProperty("--dsr-side-bg", "#000");
});
// remove mobile app ad in collapsed menu
try {
$(".b91228e4").remove();
} catch { }
$$(".fbb737a4").forEach((msg) => (msg.style.backgroundColor = "#000"));
}
function patchDropdown() {
try {
$(".ds-dropdown-menu").style.setProperty(
"--ds-dropdown-menu-color",
"#000"
);
$(".ds-dropdown-menu").style.setProperty(
"--ds-dropdown-menu-option-color-hover",
"#202020"
);
$(".ds-dropdown-menu").style.setProperty(
"--ds-dropdown-menu-color",
"#000"
);
} catch {}
}
function patchModal() {
try {
$(".ds-modal-content").style.setProperty(
"--ds-modal-content-color",
"#000"
);
$(".ds-segmented").style.setProperty("--ds-segmented-color", "#1C1C1C");
$(".ds-segmented").style.setProperty(
"--ds-segmented-selected-color",
"#393939"
);
} catch {}
$$(".ds-native-select__select").forEach(
(s) => (s.style.backgroundColor = "#1c1c1c")
);
}
function debounce(func, wait) {
let timeout;
return function(...args) {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait);
};
}
function init() {
applyStyles();
patchDropdown();
patchModal();
const toListen = ["b480065b", "a1e75851", "b91228e4", "fbb737a4", "d8ed659a"];
const globalObserver = new MutationObserver((mutationsList) => {
for (const mutation of mutationsList) {
if (mutation.type === 'childList') {
mutation.addedNodes.forEach((node) => {
if (node.classList) {
if (node.classList.contains("ds-modal-wrapper") || node.classList.contains("ds-segmented-separator")) {
patchModal();
}
if (node.classList.contains("ds-floating-position-wrapper")) {
patchDropdown();
}
}
toListen.forEach((cls) => {
if (node.nodeType === 1 && (node.classList.contains(cls) || node.querySelector(`.${cls}`))) {
applyStyles();
}
});
});
}
}
});
globalObserver.observe(document.body, {
childList: true,
subtree: true,
});
window.addEventListener('resize', debounce(() => {
document.body.style.setProperty("--dsr-bg", "#000");
document.body.style.setProperty("--dsr-input-bg", "#000");
document.body.style.setProperty("--dsr-side-bg", "#000");
}, 100));
}
document.addEventListener('DOMContentLoaded', init);
})();