Skip to content

Clean Telegram WebA by 0ko

Imported from a private source

Mirrored from https://codeberg.org/0ko/UserStyles/raw/main/Telegram-WebA/Clean/CleanTWA.user.css

Screenshot of Clean Telegram WebA

Details

Author0ko

LicenseMIT

Categoryweb.telegram.org

Created

Updated

Size2.8 kB

Statistics

Learn how we calculate statistics in the FAQ.

Failed to fetch stats.

Description

Makes Telegram WebA/WebZ cleaner.

Notes

Removes or hides unnecessary things such as:

  • ads
  • Stories
  • Premium badges
  • Premium promotions and UI elements that can only be used with Premium

So there is little reason to install it if you have a Premium subscription.


Сhangelog · License · Feedback

Source code

/* ==UserStyle==
@name          Clean Telegram WebA
@author        0ko (https://userstyles.world/~0ko)
@description   Makes Telegram WebA/WebZ cleaner.
@version       1.8.1
@license       MIT
@preprocessor  stylus

@namespace     0ko userstyles
@homepageURL   https://codeberg.org/0ko/UserStyles#clean-telegram-weba-webz
@supportURL    https://codeberg.org/0ko/UserStyles/issues

@var checkbox  noAds                "No built-in ads"                1
@var checkbox  noPremiumPromo       "No Premium promo"               1
@var checkbox  noPremiumBadges      "No Premium badges"              1
@var checkbox  noPremiumDecorations "No Premium message decorations" 1
@var checkbox  noPremiumTags        "No Premium Saved Messages tags" 1
@var checkbox  noSendAs             "No send as channel"             1
@var checkbox  noStories            "No Stories (others')"           1
@var checkbox  noMyStories          "No My Stories"                  1
@var checkbox  noOverscrollStories  "No Stories in Archive overscroll (buggy)" 0

==/UserStyle== */

imp = !important

@-moz-document url-prefix("https://web.telegram.org/a"), url-prefix("https://web.telegram.org/z"), domain("tga.dev"), domain("webz.dev")

	if noAds
		.SponsoredMessage
			display: none imp

	if noPremiumPromo
		.settings-main-menu-premium
		button[title="Custom Emoji"]
			display: none imp

		.settings-main-menu:has(.settings-main-menu-premium) /* FF compat. */
			display: none imp

	if noPremiumBadges
		.PremiumIcon :not(.big)
		.chat-avatar-premium
		.message-title .custom-emoji
		.ChatFolders .ListItem-button .info-row .title .custom-emoji /* chats list & header */
		.ProfileInfo .title .custom-emoji /* user info */
		.ChatInfo .info .title .custom-emoji /* chat members list */
		.reactor-list .title .custom-emoji /* reacted users */
			display: none imp

	if noPremiumDecorations
		.EmbeddedMessage--background-icons
			display: none imp
		.EmbeddedMessage::before
			background: var(--accent-color) imp

	if noPremiumTags
		/* don't show reaction selector if it contains hint about tags being premium only feature and shows lock icon on reactions */
		.ReactionSelector:has(.icon-lock-badge):has(.ReactionSelector__hint)
			display: none imp

	if noSendAs
		.send-as-button
			display: none imp
		.Button + .symbol-menu-button
			margin-left: 0.75rem imp

	if noStories
		.StoryToggler-module__root
		.LeftMainHeader .SearchInput button[type="button"][aria-label]:first-child
			display: none imp
		.ArchivedChats
			.story-toggler-wrapper
			/*div[id^="user-story"]*/
				display: none imp

	if noMyStories
		/* burger - "My Stories" */
		.LeftMainHeader .Menu .MenuItem:has(.icon-play-story)
			display: none imp

	if noOverscrollStories
		.ArchivedChats .chat-list-wrapper.with-story-ribbon .left-header-shadow.no-scrollbar
			display: none imp

Reviews

No reviews yet.