Better GUI (Geoguessr)

A personal set of CSS rules that remove clutter and make the game look nicer.

  1. // ==UserScript==
  2. // @name Better GUI (Geoguessr)
  3. // @namespace alienperfect
  4. // @version 2024.10
  5. // @description A personal set of CSS rules that remove clutter and make the game look nicer.
  6. // @author Alien Perfect
  7. // @match https://www.geoguessr.com/*
  8. // @icon https://www.google.com/s2/favicons?sz=32&domain=geoguessr.com
  9. // @grant GM_addStyle
  10. // @run-at document-start
  11. // ==/UserScript==
  12.  
  13. GM_addStyle(`
  14. /* [0001] Avatars */
  15. [class*="avatarContainer"]:not([class*="health-bar_avatarContainer__"], [class*="chat-message_avatarContainer__"]) {display: none !important}
  16. [class*="avatarNickContainer"] {display: none !important}
  17. [class*="avatarWrapper"] {display: none !important}
  18. [class*="avatar_root"] {display: none !important}
  19. [class*="party-card_members__"] {display: none !important}
  20.  
  21. /* PROFILE: hide avatar button */
  22. a[href^="/avatar"] {display: none !important}
  23. [class*="profile-header_actions__"]:has(a[href*="/avatar"]) {display: none !important}
  24.  
  25.  
  26. /* [0002] Home page */
  27. /* Hide bloat */
  28. [class^="star-background_starBackgroundRotating__"] {display: none !important}
  29. [class^="meta-signed-in-start-page_center__"] > * {display: none !important}
  30. [class^="meta-signed-in-start-page_left__"] > * {display: none !important}
  31. [class^="meta-signed-in-start-page_right__"] > div:nth-child(2) {display: none !important}
  32. [class^="meta-signed-in-start-page_right__"] > div:nth-child(3) {display: none !important}
  33.  
  34. /* Hide coin count */
  35. [data-qa="profile-coin-count"] {display: none !important}
  36.  
  37. /* Hide shop from navbar */
  38. a[href^="/shop"] {display: none !important}
  39.  
  40. /* Hide "free" tag */
  41. [class*="tag_variantAlertGlow__"] {display: none !important}
  42.  
  43. /* Hide merch nudge */
  44. [class*="merchNudge"], [class*="merch-nudge"] {display: none !important}
  45.  
  46. /* Notification dot next to Geoguessr logo */
  47. [class^="header-logo_"] [class^="notification-dot_"] {display: none !important}
  48.  
  49.  
  50. /* [0003] Profile */
  51. /* Hide trophies */
  52. [class*="profile-feats_feats__"] {display: none !important}
  53.  
  54. /* Compare stats no animation */
  55. [class*="user-stats-overview_youBox__"] {animation: none !important}
  56. [class*="user-stats-overview_mainValueAnimation__"] {animation: none !important; transition: none !important}
  57.  
  58. /* Hide friend suggestions */
  59. [class*="friend-list_friendsMeta"] {display: none !important}
  60. [class*="friend-list_container__"] {padding: 0 !important}
  61.  
  62.  
  63. /* [0004] Game */
  64. /* Hide people playing */
  65. [class*="live-players-count_container__"] {display: none !important}
  66.  
  67. /* Hide reactions button */
  68. [class*="game-reactions_root__"] {display: none !important}
  69.  
  70. /* Hide Google copyright, logo, shortcuts */
  71. [class$="gmnoprint"], [class$="gm-style-cc"], img[src*="google-logo"] {display: none !important}
  72.  
  73. /* Hide logo */
  74. [class*="game_inGameLogos__"] {display: none !important}
  75.  
  76. /* Hide friend chat */
  77. [class*='friend-chat-in-game-button_root__'] {display: none !important}
  78.  
  79. /* Hide zoom controls */
  80. [class*="styles_controlGroup__"] {display: none !important}
  81. [class*="guess-map_zoomControls__"] {display: none !important}
  82.  
  83.  
  84. /* [0005] QoL */
  85. /* Allow selection of all text */
  86. * {user-select: text !important}
  87.  
  88. /* Underline links on hover */
  89. a:hover {text-decoration: underline !important}
  90.  
  91. /* Hide loading animation (games load slightly faster) */
  92. [class*="fullscreen-spinner"] {display: none !important}
  93.  
  94.  
  95. /* [0006] Tweaks */
  96. /* Hide slant on elements */
  97. * {font-style: normal !important}
  98. div[class*="slanted"] {transform: none !important}
  99. div[class*="slanted"]::before {transform: none !important}
  100.  
  101. /* Transparent map status bar */
  102. [class*="status_inner__"] {background-color: rgb(0 0 0 / 50%) !important; border-bottom-left-radius: 0.5rem !important; border-top-left-radius: 0.5rem !important}
  103. [class*="slanted-wrapper_withShadow"] {--variant-filter: drop-shadow(0 0.3rem 0.4rem rgba(0,0,0,.4)) !important}
  104. [class*="slanted-wrapper_variantPurple__"] {--variant-background-color: unset !important; --variant-box-shadow: unset !important}
  105. [class*="status_inner__"] > * [class*="status_label__"] {color: rgb(255 255 255 / 95%) !important}
  106. [class*="status_inner__"] > * [class*="status_value__"] {color: rgb(255 255 255 / 95%) !important}
  107.  
  108. /* New compass more transparent */
  109. [class*="compassContainer"] {background-color: rgb(0 0 0 / 30%) !important}
  110.  
  111. /* Faster map opening animation */
  112. [data-qa='guess-map'] {transition: opacity .05s ease, width .05s ease, height .05s ease !important}
  113.  
  114. /* Reduce pin opacity on hover */
  115. [class*="map-pin_mapPin"]:not([data-pano]):hover {opacity: 15%}
  116.  
  117. /* ONGOING GAMES */
  118. [class*="current_image__"] * [class*="styles_root__"] {border-radius: 100% !important}
  119. [class*="current_gameListItem"] > [class*="current_actions"] {flex-direction: row-reverse !important}
  120. `);