Для стилизации форума
// ==UserScript==
// @name Style Forum BR
// @namespace https://forum.blackrussia.online
// @version 0.0.8
// @description Для стилизации форума
// @author t.me/arefuer
// @match https://forum.blackrussia.online/*
// @include https://forum.blackrussia.online/
// @grant t.me/arefuer
// @license arefuer
// @collaborator t.me/arefuer
// @icon https://i.yapx.ru/ViO6c.png
// ==/UserScript==
(function () {
'use strict';
function createAnimatedSnow() {
const snowflakes = [];
function setupCanvas() {
const canvas = document.createElement('canvas');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
canvas.id = 'snow-flakes';
canvas.style.position = 'fixed';
canvas.style.top = '0';
canvas.style.left = '0';
canvas.style.pointerEvents = 'none';
canvas.style.zIndex = '99999';
canvas.style.filter = 'blur(2px)';
document.body.appendChild(canvas);
return canvas.getContext('2d');
}
function createSnowflake(x, y) {
const size = Math.random() * 2 + 1;
const speedY = Math.random() * 1 + 1;
const speedX = (Math.random() - 0.5) * 2;
return { x, y, size, speedY, speedX };
}
function drawSnowflake(ctx, snowflake) {
ctx.beginPath();
ctx.arc(snowflake.x, snowflake.y, snowflake.size, 0, Math.PI * 2);
ctx.fillStyle = 'white';
ctx.fill();
ctx.closePath();
}
function updateSnowflakes(ctx) {
for (let i = 0; i < snowflakes.length; i++) {
const snowflake = snowflakes[i];
snowflake.y += snowflake.speedY;
snowflake.x += snowflake.speedX;
if (snowflake.y > window.innerHeight || snowflake.x > window.innerWidth) {
snowflakes[i] = createSnowflake(Math.random() * window.innerWidth, Math.random() * -window.innerHeight);
}
drawSnowflake(ctx, snowflake);
}
}
function animateSnow() {
const ctx = setupCanvas();
for (let i = 0; i < 500; i++) {
snowflakes.push(createSnowflake(Math.random() * window.innerWidth, Math.random() * window.innerHeight));
}
function animate() {
ctx.clearRect(0, 0, window.innerWidth, window.innerHeight);
updateSnowflakes(ctx);
requestAnimationFrame(animate);
}
animate();
}
animateSnow();
}
function removeAnimatedSnow() {
const snowCanvas = document.querySelector('#snow-flakes');
document.body.removeChild(snowCanvas);
}
const uixLogo = document.querySelector('a.uix_logo img');
uixLogo.src = 'https://i.postimg.cc/y8fk35Ds/uix-logo-cust-1.png';
uixLogo.srcset = 'https://i.postimg.cc/y8fk35Ds/uix-logo-cust-1.png';
const messageCellUser = document.querySelectorAll('.message-cell--user');
messageCellUser.forEach(function (cell) {
cell.style.background = '#29586c88';
});
const messageCellMain = document.querySelectorAll('.message-cell--main');
messageCellMain.forEach(function (cell) {
cell.style.background = '#15293788';
});
const scrollbarStyle = document.createElement('style');
scrollbarStyle.id = 'style-scrollbar';
scrollbarStyle.textContent = `
/* Стили для полосы прокрутки */
::-webkit-scrollbar {
width: 16px;
}
/* Дорожка (track) */
::-webkit-scrollbar-track {
background-color: #171e29;
}
/* Стиль полосы прокрутки */
::-webkit-scrollbar-thumb {
background-color: #1f2b3b;
border-radius: 0px;
transition-duration: .3s;
}
/* Стиль полосы прокрутки при наведении */
::-webkit-scrollbar-thumb:hover {
background-color: #2f4b6b;
transition-duration: .3s;
}
`;
document.head.appendChild(scrollbarStyle);
const pageHeader = document.querySelector('.pageContent');
const switchStyleBlock = document.createElement('label');
switchStyleBlock.className = 'switch';
switchStyleBlock.innerHTML = `
<input type="checkbox" id="styleToggleCheck">
<span class="slider round" style="padding-right: 20px;">
<span class="addingText" style="display: block; width: max-content; margin: 5px; margin-left: 42px; margin-top: 2px;">Снег</span>
</span>
`;
pageHeader.appendChild(switchStyleBlock);
const styleToggleCheck = document.getElementById('styleToggleCheck');
if (localStorage.getItem('snowEnabled') === 'true') {
styleToggleCheck.checked = true;
createAnimatedSnow();
}
styleToggleCheck.addEventListener('change', function () {
if (styleToggleCheck.checked) {
createAnimatedSnow();
localStorage.setItem('snowEnabled', 'true');
} else {
removeAnimatedSnow();
localStorage.setItem('snowEnabled', 'false');
}
});
const sliderStyle = document.createElement('style');
sliderStyle.id = 'slider-style';
sliderStyle.textContent = `
.switch {
position: relative;
display: inline-block;
width: 40px;
height: 20px;
padding-left: 20px;
margin: 0 30px 0 auto;
}
.switch input { display: none; }
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
border: 1px solid #34aaeb;
background-color: #212428;
transition: all .4s ease;
}
.slider:hover{
background-color: #29686d;
}
.slider:before {
position: absolute;
content: "";
height: 14px;
width: 14px;
left: 2px;
bottom: 2px;
background-color: #32a0a8;
box-shadow: 0 0 5px #000000;
transition: all .4s ease;
}
input:checked + .slider {
background-color: #212428;
}
input:checked + .slider:hover {
background-color: #29686d;
}
input:focus + .slider {
box-shadow: 0 0 5px #222222;
background-color: #444444;
}
input:checked + .slider:before {
transform: translateX(19px);
}
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}
`;
document.head.appendChild(sliderStyle);
})();