LolzBlurChat

Прозрачно-размытый фон чата

  1. // ==UserScript==
  2. // @name LolzBlurChat
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.1
  5. // @description Прозрачно-размытый фон чата
  6. // @author Zequd
  7. // @match *https://zelenka.guru/*
  8. // @match *https://lolz.live/*
  9. // @match *https://lzt.market/*
  10. // @grant GM_addStyle
  11. // @license MIT
  12. // @icon https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. const applyStylesToChat = (chatElement) => {
  19. chatElement.style.setProperty('background-color', 'rgba(27, 27, 27, 0.2)', 'important');
  20. chatElement.style.setProperty('backdrop-filter', 'blur(10px)', 'important');
  21. chatElement.style.setProperty('-webkit-backdrop-filter', 'blur(10px)', 'important');
  22. };
  23.  
  24. const initializeChatStyling = () => {
  25. const messagesElement = document.querySelector('.chat2-messages.lztng-content-background.lztng-m81to2');
  26. if (messagesElement) {
  27. applyStylesToChat(messagesElement);
  28. }
  29.  
  30. const chatElement = document.querySelector('[class^="chat2-floating"]');
  31. if (chatElement) {
  32. chatElement.style.setProperty('background-color', 'rgba(27, 27, 27, 0.2)', 'important');
  33. chatElement.style.setProperty('backdrop-filter', 'blur(10px)', 'important');
  34. chatElement.style.setProperty('-webkit-backdrop-filter', 'blur(10px)', 'important');
  35. chatElement.style.setProperty('border', '0px solid #363636', 'important');
  36. }
  37.  
  38. const headerElement = document.querySelector('[class^="chat2-header"]');
  39. if (headerElement) {
  40. applyStylesToChat(headerElement);
  41. }
  42.  
  43. const buttonElement = document.querySelector('.chat2-button.chat2-button-close');
  44. if (buttonElement) {
  45. applyStylesToChat(buttonElement);
  46. }
  47.  
  48. const messageBlockElements = document.querySelectorAll('.chat2-message-block.lztng-primary-darker');
  49. messageBlockElements.forEach(block => {
  50. block.style.setProperty('background-color', 'rgba(27, 27, 27, 0.2)', 'important');
  51. block.style.setProperty('backdrop-filter', 'blur(10px)', 'important');
  52. block.style.setProperty('-webkit-backdrop-filter', 'blur(10px)', 'important');
  53. block.style.borderRadius = '5px';
  54. });
  55. };
  56.  
  57. const observer = new MutationObserver(() => {
  58. initializeChatStyling();
  59. });
  60.  
  61. observer.observe(document.body, {
  62. childList: true,
  63. subtree: true,
  64. });
  65.  
  66. initializeChatStyling();
  67. })();