YouTube: Floating Chat Window on Fullscreen

To make floating chat window on fullscreen

  1. /* ==UserStyle==
  2. @name YouTube: Floating Chat Window on Fullscreen
  3. @version 0.3.8
  4. @namespace github.com/cyfung1031
  5. @license MIT
  6. @description To make floating chat window on fullscreen
  7. @author CY Fung
  8. @preprocessor stylus
  9. @var color color-handle-light "Handle Color (Light Theme)" #0cb8da
  10. @var color color-handle-dark "Handle Color (Dark Theme)" #0c74e4
  11. @var number message-font-weight "Message Font-Weight" [400, 100, 900, 100]
  12. @var select message-text-shadow "Message Text-Shadow" {
  13. "none": "none",
  14. "shadow-bT": "sd01$",
  15. "shadow-g0t": "sd02$0",
  16. "shadow-g1t": "sd02$1",
  17. "shadow-g2t": "sd02$2",
  18. "shadow-g3t": "sd02$3",
  19. "shadow-g4t": "sd02$4",
  20. "shadow-s3": "sd03$",
  21. "shadow-s4": "sd04$",
  22. "shadow-s5": "sd05$"
  23. }
  24.  
  25. @var color color-shadow-d1 "Shadow Color D1" #06f
  26. @var color color-shadow-d2 "Shadow Color D2" #036
  27. @var color color-text "Text Color" #fff
  28.  
  29. ==/UserStyle== */
  30.  
  31. dummy = 1
  32.  
  33. shadowOption = split('$', message-text-shadow)
  34.  
  35. cD1 = color-shadow-d1
  36. cD2 = color-shadow-d2
  37.  
  38. $text-shadow = 0;
  39.  
  40. if shadowOption[0] == "sd01" {
  41.  
  42. tpx = 1px
  43. spx = -1px
  44.  
  45. $text-shadow = spx tpx cD1, tpx tpx cD1, tpx 0 cD1, 0 spx cD1;
  46. }
  47.  
  48. if shadowOption[0] == "sd02" {
  49.  
  50. vt = convert(shadowOption[1])
  51.  
  52. vpx = '%spx' % vt // grow radius
  53.  
  54.  
  55. tpx = 1px
  56. spx = -1px
  57.  
  58. $text-shadow = 0 0 vpx cD1, 0 0 vpx cD1, 0 0 vpx cD1, 0 0 vpx cD1,
  59. spx tpx cD2, tpx tpx cD2, spx 0 cD2, 0 tpx cD2;
  60.  
  61. }
  62.  
  63.  
  64.  
  65. // ----- Main Frame ------
  66.  
  67. @-moz-document url-prefix("https://www.youtube.com/") {
  68.  
  69.  
  70. userscript-control[enable-floating-chat-window] {
  71. top:0;
  72. }
  73.  
  74.  
  75. html[floating-chat-window]{
  76. --f7-handle-color: color-handle-light;
  77. }
  78. html[dark][floating-chat-window]{
  79. --f7-handle-color: color-handle-dark;
  80. }
  81.  
  82.  
  83.  
  84. }
  85.  
  86. set-text-shadow = length($text-shadow) > 1
  87.  
  88.  
  89. // ----- Iframe ------
  90.  
  91. @-moz-document url-prefix("https://www.youtube.com/live_chat") {
  92.  
  93. userscript-control[floating-chat-iframe] {
  94. top:0;
  95. }
  96. html {
  97. --floodcolor: color-shadow-d1;
  98. }
  99.  
  100. .youtube-floating-chat-iframe #message.style-scope.yt-live-chat-text-message-renderer {
  101. if ( set-text-shadow ) {
  102. --f7-message-text-shadow: $text-shadow;
  103. }
  104. --f7-message-font-weight: message-font-weight;
  105. }
  106.  
  107. .youtube-floating-chat-iframe #message.style-scope.yt-live-chat-text-message-renderer,
  108. .youtube-floating-chat-iframe #message.style-scope.yt-live-chat-text-message-renderer > * {
  109. if ( set-text-shadow ) {
  110. text-shadow: var(--f7-message-text-shadow, initial);
  111. }
  112. font-weight: var(--f7-message-text-shadow, initial);
  113. color: color-text;
  114.  
  115. }
  116. html.youtube-floating-chat-iframe #message.style-scope.yt-live-chat-text-message-renderer{
  117.  
  118. if shadowOption[0] == "sd03" {
  119.  
  120.  
  121. filter: none;
  122. }
  123. if shadowOption[0] == "sd04" {
  124.  
  125.  
  126. filter: none;
  127. }
  128.  
  129.  
  130. }
  131. html[hpkns].youtube-floating-chat-iframe #message.style-scope.yt-live-chat-text-message-renderer{
  132.  
  133. if shadowOption[0] == "sd03" {
  134.  
  135.  
  136. filter:url(#stroke-text-svg-filter-03);
  137. }
  138.  
  139. if shadowOption[0] == "sd04" {
  140.  
  141.  
  142. filter:url(#stroke-text-svg-filter-04);
  143. }
  144.  
  145. }
  146. .youtube-floating-chat-iframe #message.style-scope.yt-live-chat-text-message-renderer > * {
  147. if shadowOption[0] == "sd03" {
  148.  
  149.  
  150. filter: none;
  151. }
  152.  
  153. if shadowOption[0] == "sd04" {
  154.  
  155.  
  156. filter: none;
  157. }
  158.  
  159. }
  160. .youtube-floating-chat-iframe #message.style-scope.yt-live-chat-text-message-renderer{
  161.  
  162. if shadowOption[0] == "sd05" {
  163.  
  164.  
  165. -webkit-text-stroke:0.5px color-shadow-d1;
  166. -webkit-text-fill-color:color-text;
  167. }
  168.  
  169. }
  170.  
  171.  
  172. yt-live-chat-author-badge-renderer {
  173. --f7-message-text-shadow: invalid;
  174. --f7-message-font-weight: invalid;
  175. }
  176.  
  177. tp-yt-paper-tooltip, [role="tooltip"], [tabindex] {
  178. --f7-message-text-shadow: initial;
  179. --f7-message-font-weight: initial;
  180. }
  181.  
  182. }