CSS

Hide Posts With Dicerolls

div.postCell:has(span.diceRoll) { display: none; }

Hide Stubs (improved)

div:has(> span.unhideButton) { display: none; }

Hide IDs (reveal on hover)

span.labelId {
    color: var(--contrast-color);
    background-image: linear-gradient(0deg, var(--contrast-color), var(--contrast-color));
    text-shadow: none;
    display: inline-block;
    max-width: 2px; /* or remove and use a border */
    border: none; /*1px dotted var(--horizon-sep-color);*/
}
span.labelId:hover {
    color: white;
    background-image: linear-gradient(-45deg, rgba(0,0,0,0.2), rgba(255,255,255,0.2));
    text-shadow: -1px -1px 2px #000, 0px 0px 2px #000;
    max-width: none;
    border: 1px solid rgba(0,0,0,0.1);
}

Darken IDs

1
2
3
span.labelId {
    background-image: linear-gradient(-45deg, rgba(0,0,0,0.5), rgba(0,0,0,0.3));
}

Replace in the :hover above to combine, adjust 0.5/0.3 to your liking

Move Relative Times to Hover

1
2
3
4
5
6
7
8
9
span.relativeTime {
  display: inline-block;
  max-width: 0px;
  max-height: 1.1em;
  overflow: hidden;
  padding: 0px 0px 0px calc(8ch + 2px);
  margin-left: -8ch;
}
span.relativeTime:hover { max-width: none }

Requires Relative Times option checked in user settings

Show File Extensions (most of the time)

a.originalNameLink { direction: rtl }

This is a very rough hack that will move the extension to the left on short names and sometimes not work at all

Remove Images

div.panelUploads { display: none }

Limit Expanded Media to Screen

.uploadCell.expandedCell .mediaContainer,
.uploadCell.expandedCell video,
.uploadCell.expandedCell img {
  max-width: 100vw;
  max-height: 100vh;
  width: auto !important;
  height: auto !important;
  display: block;
  margin: 0 auto;
}

Hide Redundant Padding From Posts Messing Up CSS

1
2
3
4
/*replyPreview still shows at bottom of post if it's empty, adding the margin*/
.replyPreview:empty {
  display: none;
}

Fix Nav Bar Covering Image Preview

body > img {  z-index: 2; }

Move Nav Bar to Bottom

nav.navHeader { top: auto; bottom: 0; }
footer { margin-bottom: 2rem; }

JS

Disable Auto-Update/Refresh

1
2
3
4
const autoRefreshCheckbox = document.getElementById('checkboxChangeRefresh');
if (autoRefreshCheckbox && autoRefreshCheckbox.checked) {
  autoRefreshCheckbox.checked = false;
}

Also check Disable WebSockets in Settings

Make Spoilers Unclickable

1
2
3
4
5
6
document.querySelectorAll('a.imgLink').forEach(link => {
  const img = link.querySelector('img[src="/vyt/custom.spoiler"]');
  if (img) {
    link.replaceWith(img);
  }
});

This does not apply to posts loaded through the updater; use Last and browse by refreshing

Clear All Text in Quick Reply When Clicking Close (x)

1
2
3
document.getElementsByClassName("close-btn")[1].addEventListener("click", () => {
  document.getElementById('quick-reply').children[0].reset()
});

Thank you, /vsj+/

Userscripts

https://pastebin.com/2EB3RkBm Hide (1)s
https://pastebin.com/raw/SVkAmKcA Reverse Imeji Search
https://pastebin.com/B9sajCVr blur low post count images
https://github.com/otacoo/8chanSS
https://github.com/Stark-Night/8chanmoe-userscripts
https://greasyfork.org/en/scripts/533468-8chan-sounds-player
https://greasyfork.org/en/scripts/533136-8chan-buffs ID Focus
https://greasyfork.org/en/scripts/533067-fullchan-x
https://greasyfork.org/en/scripts/533169-lynxchan-extended-minus-minus
https://greasyfork.org/en/scripts/533580-8chan-catalog-filter
https://greasyfork.org/en/scripts/534780-8chan-hiding-enhancer

Related

https://rentry.org/vytstuff Various Tweaks, Convert Soundposts, Add Thumbnails to MP3s
https://rentry.org/fbf8q59r CSS Tweaks, Thread Trimmer, Stop Scroll to Bottom After Posting, Stop Scroll to Bottom After Posting

Edit Report
Pub: 23 Apr 2025 10:03 UTC
Edit: 03 May 2025 12:34 UTC