/* ==UserStyle== @name Duolingo - Customization @description Provides some extra customization options for Duolingo. DISCLAIMER: some features are currently not supported on Firefox. @version 2025.01.25.18.11 @author MetalTxus @namespace https://github.com/jesuscc1993/ @license CC BY-SA 4.0 @preprocessor stylus @var checkbox hide-leagues "Hide leagues" 0 @var checkbox hide-goals "Hide goals" 0 @var checkbox hide-premium "Hide some premium adds and features" 0 @var checkbox hide-leaderboards "Hide leaderboards" 0 @var checkbox hide-classes "Hide classes" 0 @var checkbox hide-pronunciation "Hide choice pronunciation" 0 @var checkbox hide-pronunciation-unless-hovered "Hide choice pronunciation (unless hovered)" 0 @var checkbox hide-choice-images "Hide choice images" 0 @var checkbox hide-characters "Hide Duolingo characters" 0 @var checkbox lowercase-pills "Lowercase pills" 0 @var checkbox center-lesson-title "Center lesson title" 0 @var text lesson-width "Lesson width (desktop)" 600px ==/UserStyle== */ @-moz-document domain("duolingo.com") { @media (min-width: 700px) { [data-test="player-end-carousel"] > :nth-child(1) { width: 100%; } [data-test="player-end-carousel"] > :nth-child(2) { display: none; } [data-test*="challenge"] > ._2n5fx { max-width: none; width: lesson-width; } [aria-label="choice"] { width: min(lesson-width, 600px); margin: 0 auto; } /* center lesson title */ if (center-lesson-title) { [data-test="challenge-header"] { text-align: center; } } } [data-test="challenge-tap-token"] { user-select: text; } /* characters */ if (hide-characters) { /* regular ones */ ._2qg6J, svg[style*="--web-ui_speech-bubble-alignment"] { display: none; } ._2kEEj { margin-left: -16px; } /* grid variant */ ._1KcR7 { opacity: 0; } ._2kgY1 { grid-template-columns: 0 1fr; grid-gap: 0; } } /* pronunciation */ if (hide-pronunciation) { ruby rt { display: none; } } if (hide-pronunciation-unless-hovered) { button, [data-test="challenge-choice"] { &:has(ruby) { &:not(:hover) rt { opacity: 0; } rt { transition: opacity 150ms; } } } } if (hide-choice-images) { [data-test="challenge-choice"] { padding: 12px 16px; [style*="background-image"] { display: none; } } } if (hide-leagues) { /*div:has(> div > div > div > [src*="/images/leagues/"]) {*/ div:has(> div > [data-test="leaderboards-open"]) { display: none; } } /* goals */ if (hide-goals) { div:has(> div > div > [src*="/images/goals/"]) { display: none; } [data-test="/settings/coach"] { display: none; } } /* premium */ if (hide-premium) { ._3Z2SD, /* review section */ [data-test="free-plus-button"], [href="/review"], [href="/settings/super"], button:has([src*="/images/super/"]), div:has(> [data-test="plus-offer-logo"]), div:has(> [src*="/images/super/"]), div:has(> div > [data-test="plus-offer-logo"]):has(> div > [src*="practiceHub"]), div:has(> div > div > ins), /*div:has(> [data-test="plus-offer-logo"]) + div:has(img)*/ { display: none !important; } } /* leaderboards */ if (hide-leaderboards) { div:has(> [data-test="leaderboard-nav"]), [href="/leaderboard"] { display: none !important; } } /* classes */ if (hide-classes) { [href="https://classes.duolingo.com/"] { display: none !important; } } /* lowercase pills */ if (lowercase-pills) { ._2O7Ua { text-transform: lowercase !important; } } /* sidebar item spacing fix */ ._3bTT7 { gap: 0; > div > a { margin-bottom: 8px; display: block; } } }