🏠 返回首頁 

Greasy Fork is available in English.

YT chat版面

聊天室排版修改YouTube Live Chat layout modify


Установить как пользовательский стиль?
Рекомендуемый автором скрипт

Вам также может понравится YouTube Live Borderless.


Установить как пользовательский стиль
  1. /* ==UserStyle==
  2. @name YT chat版面
  3. @version 2.0.8
  4. @namespace https://greasyfork.org/zh-TW/users/4839
  5. @license MIT
  6. @description 聊天室排版修改YouTube Live Chat layout modify
  7. @author Leadra
  8. @preprocessor stylus
  9. @var number chat_top "訊息置頂透明度" [0.8, 0, 1, 0.1]
  10. @var number chat_tophead "訊息置頂高度" [0, 0, 30, 10, "px"]
  11. @var range font_shadow "文字陰影" [1.5, 0, 5, 0.5, "px"]
  12. @var color font_shadow_color "文字陰影背景色1" #000
  13. @var color font_shadow_color2 "文字陰影背景色2" #036
  14. @var color manager_background "板手+版主強調背景色" rgba(0, 0, 255, .5)
  15. @var checkbox superchat_size "SC框延長+透明0.8" 1
  16. @var checkbox hide_sc_head "SC計時列縮小" 1
  17. @var number sc_head ">SC計時列高度" [15, 0, 30, 5, "px"]
  18. @var checkbox hide_survey "投票調查隱藏" 1
  19. @var checkbox hide_reaction "提醒+#心隱藏" 1
  20. @var checkbox hide_tooltip "貼圖註解隱藏" 1
  21. @var checkbox message_lines "會員訊息右側線" 1
  22. @var checkbox chat_scroll "聊天室Y卷軸隱藏" 1
  23. @var checkbox alternate_background "聊天交叉背景色" 1
  24. @var checkbox message_pr "聊天斷行" 0
  25. @var checkbox name_pr "name斷行" 0
  26. @var checkbox name_pr2 "name靠右" 0
  27. @var checkbox hide_user_name "name+徽章隱藏" 0
  28. @var checkbox hide_pic "大頭貼隱藏" 0
  29. @var checkbox input_down "打字區+貼圖框縮緊固定" 1
  30. @var range emoji_member ">會員貼圖放大" [35, 10, 50, 5, "px"]
  31. @var range emoji_normal ">一般貼圖間距" [2.5, 1, 5, 0.5, "px"]
  32. @var range text_pr "聊天行距" [0, -6, 10, 1, "px"]
  33. @var range message_fontsize "聊天字體size" [18, 14, 20, 1, "px"]
  34. @var range name_size "名稱size" [14, 0, 20, 1, "px"]
  35. @var range profile_picturesize "大頭貼Size" [26, 0, 48, 2, "px"]
  36. @var range badge_size "會員徽章Size" [14, 8, 32, 2, "px"]
  37. @var range emoji_size "貼圖Emoji Size" [24, 0, 32, 2, "px"]
  38. @var range timestamp_fontsize "時間軸Size" [14, 14, 20, 1, "px"]
  39. ==/UserStyle== */
  40. /*特別感謝
  41. https://userstyles.world/style/2625/kaiteki-youtube-chat
  42. https://userstyles.world/style/3515/youtube-live-chat-tweaks
  43. https://greasyfork.org/zh-TW/users/371179-𝖢𝖸-𝖥𝗎𝗇𝗀
  44. */
  45. @-moz-document url-prefix("https://www.youtube.com/live_chat") {
  46. //#06f淺藍
  47. //header全部聊天欄位yt-live-chat-header-renderer {padding: 0px!important;margin: 0px!important;}
  48. /*版主聊天置頂復原樣式_上部固定をすると見た目が変わるため、各種スタイルを打ち消す必要がある*/
  49. //#contents > yt-live-chat-text-message-renderer[author-type="moderator"] {background-color: #d40213 !important;}
  50. /*alternate交叉背景色*/
  51. if alternate_background {
  52. yt-live-chat-text-message-renderer:nth-child(even) {background-color: rgba(100, 100, 100, .2);}
  53. /*2方法yt-live-chat-text-message-renderer.yt-chat-item-even[class] {background-color: var(--yt-live-chat-message-background-color);}
  54. yt-live-chat-text-message-renderer.yt-chat-item-odd[class] {background-color: var(--yt-live-chat-message-highlight-background-color);}*/
  55. }
  56. /*板手+版主強調背景色*/
  57. yt-live-chat-text-message-renderer[author-type="moderator"] {
  58. padding: 2px 12px;
  59. background: manager_background!important;
  60. & > #content > span#message {
  61. color: #fff;
  62. text-shadow: 1px -1px #000, -1px -1px #000, -1px 1px #000,1px 1px #000,
  63. 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000;
  64. }
  65. }
  66. yt-live-chat-text-message-renderer[author-type="owner"] {
  67. background-color: rgba(239, 239, 0, .3)!important;
  68. }
  69. /*message lines會員訊息右側線*/
  70. if message_lines {
  71. yt-live-chat-text-message-renderer {
  72. //border-left: left-message-line solid;
  73. border-right: 2px solid;
  74. border-color: rgba(255,255,255,0)//default-line-color;
  75. }
  76. yt-live-chat-text-message-renderer[author-type="member"] {
  77. border-color: var(--yt-live-chat-sponsor-color);
  78. }
  79. yt-live-chat-text-message-renderer[author-type="moderator"] {
  80. border-color: var(--yt-live-chat-moderator-color);
  81. }
  82. yt-live-chat-text-message-renderer[author-type="owner"] {
  83. border-color: var(--yt-live-chat-author-chip-owner-background-color); // var(--yt-spec-general-background-c);
  84. }
  85. }
  86. /*大頭貼profile picture*/
  87. //#avatar.yt-live-chat-message-input-renderer,
  88. //#avatar.yt-live-chat-message-input-renderer > img,
  89. #author-photo.yt-live-chat-text-message-renderer,
  90. #author-photo.yt-live-chat-text-message-renderer > img {
  91. width: profile_picturesize;
  92. height: profile_picturesize;
  93. margin: 0px;
  94. //強制顯示大頭貼if profile_picturesize >= 0{display: unset!important;}
  95. /*隱藏大頭貼*/
  96. if hide_pic {display: none!important;}
  97. }
  98. /*emoji*/
  99. #input.yt-live-chat-text-input-field-renderer img.yt-live-chat-text-input-field-renderer,
  100. #message.yt-live-chat-text-message-renderer .emoji.yt-live-chat-text-message-renderer {
  101. margin: 0px 0px 0x 0px ;
  102. padding: 0px 0px 0x 0px ;
  103. width: emoji_size;
  104. height: emoji_size;
  105. line-height: emoji_size;
  106. align-self: center;//垂直對齊:中間
  107. align-items: center;
  108. vertical-align: middle;
  109. }
  110. /*badge會員徽章*/
  111. img.yt-live-chat-author-badge-renderer, yt-icon.yt-live-chat-author-badge-renderer {
  112. width: badge_size;
  113. height: badge_size;
  114. margin: 0px -0px 0px -0px ;
  115. }
  116. /*superchat*/
  117. yt-live-chat-paid-message-renderer #message.yt-live-chat-paid-message-renderer {
  118. padding: 0px;
  119. margin: -0px -0px -0px -0px ;
  120. font-size: message_fontsize;
  121. line-height: message_fontsize;
  122. letter-spacing:0.5px;/*字元間距*/
  123. }
  124. /*放大透明化_SC+會員每月留言+贈送會員外框+SC貼圖*/
  125. if superchat_size {
  126. yt-live-chat-paid-message-renderer,yt-live-chat-membership-item-renderer {
  127. margin: 0px -0px -0px -0px!important ;
  128. padding: 2px 5px;
  129. opacity:0.8;
  130. line-height:1em;
  131. & > #card {
  132. position: relative;//相對位置
  133. //align-items: center;//置中背景不填滿
  134. //SC+每月上半部
  135. & > #header {padding: 2px 10px!important;min-height:32px;}
  136. //SC+每月下半部
  137. & > #content {padding: 0px 5px 3px 5px !important; font-size: message-font-size;}
  138. }
  139. }
  140. //喜歡按鈕
  141. yt-live-chat-like-button-view-model {
  142. position: fixed;//absolute
  143. right:2em;
  144. top:5px;
  145. }
  146. //贈送會員外框
  147. #header.ytd-sponsorships-live-chat-header-renderer{
  148. min-height:10px;
  149. opacity:0.7;
  150. position: relative;//相對層級
  151. z-index:100;
  152. & > yt-img-shadow,& > yt-img-shadow img{height: 50px;width: 50px; position: absolute;z-index:-100;right:0px;}
  153. }
  154. //SC貼圖(大頭貼)
  155. yt-live-chat-paid-sticker-renderer {opacity:0.8;margin: 0px -0px -0px -0px;
  156. & > #card{
  157. yt-img-shadow , yt-img-shadow img{max-height: 50px;max-width: 50px;}
  158. }
  159. }
  160. }
  161. /*message聊天斷行*/
  162. if message_pr {
  163. yt-live-chat-text-message-renderer.yt-live-chat-item-list-renderer #message.yt-live-chat-text-message-renderer {
  164. display: block;
  165. }}
  166. /*message+聊天行距*/
  167. yt-live-chat-text-message-renderer.yt-live-chat-item-list-renderer
  168. #message.yt-live-chat-text-message-renderer {
  169. padding: 0px 0px 0px 0px!important;
  170. margin: text_pr 0px text_pr 0px!important;
  171. font-size: message_fontsize;
  172. line-height: message_fontsize;
  173. align-items: center;//大頭貼垂直置中
  174. vertical-align: middle;//文字垂直置中
  175. //letter-spacing:0.5px;//字元間距
  176. //align-self: center;//垂直對齊:中間
  177. //text-align:justify;//左右對齊
  178. /*文字陰影+模糊_右上-左上-左下-右下+短模糊*4*/
  179. if font_shadow >= 0.5 {
  180. text-shadow: 0.5px -0.5px font_shadow font_shadow_color, -0.5px -0.5px font_shadow_color, -0.5px 0.5px font_shadow font_shadow_color, 0.5px 0.5px font_shadow font_shadow_color,
  181. 0 0 0.5px font_shadow_color2, 0 0 0.5px font_shadow_color2, 0 0 0.5px font_shadow_color2, 0 0 0.5px font_shadow_color2;
  182. }//font-weight:bold;
  183. /*
  184. html[dark][data-ytlstm-overlay-text-shadow][data-ytlstm-chat-over-video] yt-live-chat-text-message-renderer #content{
  185. text-shadow: black 1px 1px 1px, black -1px -1px 1px, black 1px -1px 1px, black -1px 1px 1px;
  186. }
  187. */
  188. }
  189. /*name字體*/
  190. yt-live-chat-text-message-renderer.yt-live-chat-item-list-renderer yt-live-chat-author-chip.yt-live-chat-text-message-renderer {
  191. display: inline-flex;
  192. flex-direction: row;
  193. margin: 0px 0px 0px 0px!important;
  194. padding: 0px 0px 0px 0px;
  195. letter-spacing: 0px;//間距
  196. text-shadow: -0.5px 0.5px #000;
  197. font-size: name_size;
  198. line-height: name_size;
  199. vertical-align: center;//垂直對齊:中間
  200. --yt-live-chat-sponsor-color: #71ff8c;//會員名稱顏色
  201. --yt-live-chat-secondary-text-color: #ddd; //一般名稱顏色
  202. }
  203. /*timestamp*/
  204. #timestamp.yt-live-chat-text-message-renderer {
  205. font-size: timestamp_fontsize;
  206. margin-right: 5px;
  207. vertical-align: middle;
  208. letter-spacing:0px;//間距
  209. }
  210. /*打字區input縮緊固定*/
  211. if input_down {
  212. //input總區塊
  213. //舊版#input-panel.yt-live-chat-renderer.iron-selected {}
  214. html #panel-pages.yt-live-chat-renderer > #input-panel.yt-live-chat-renderer.iron-selected > *:first-child{
  215. padding: 0px 0px 0px 0px;
  216. margin:0px 0px 0px 0px;
  217. //min-height:3.6em;
  218. //height:2.6em!important;
  219. }
  220. //input打字輸入區
  221. //yt-live-chat-message-input-renderer {overflow: hidden;}//隱藏卷軸元素不消除佔位
  222. #input-container.yt-live-chat-message-input-renderer{
  223. margin:0px -0px -0px 35px;
  224. padding: 0px 0px 0px 0px;
  225. height:3em;
  226. //min-height:3em;
  227. }
  228. #input.yt-live-chat-text-input-field-renderer{
  229. min-height:1.6em;
  230. line-height:1em;
  231. padding: 10px 0px 0px 0px;
  232. margin:0px -0px 0px 0px;
  233. background-color:rgba(250, 200, 200, .2);
  234. border-radius: 5px;
  235. font-size:20px!important;
  236. }
  237. //input名字
  238. #input-container > yt-live-chat-author-chip {display: none;}
  239. //input貼圖框架
  240. #buttons.yt-live-chat-message-input-renderer {margin:-0px 0px -0px 0px;}//,.yt-icon-container.yt-icon
  241. //input右邊圖
  242. #message-buttons.yt-live-chat-message-input-renderer {display: none;}
  243. //input頭像
  244. #avatar.yt-live-chat-message-input-renderer {display:none;}//margin:0px 50px -0px 0px ;visibility:hidden;display:block;
  245. //input貼圖按鈕+SC按鈕
  246. #button.yt-live-chat-icon-toggle-button-renderer {
  247. margin:-0px 0px -0px -0px;
  248. background-color:rgba(120, 3, 23, .2);
  249. position: fixed;//absolute
  250. z-index:10;
  251. left:0px;
  252. bottom:0px;
  253. }
  254. #input-container.yt-live-chat-message-input-renderer yt-live-chat-text-input-field-renderer.style-scope.yt-live-chat-message-input-renderer + #emoji-picker-button {
  255. position: absolute;
  256. }
  257. button.yt-icon-button{}
  258. yt-live-chat-icon-toggle-button-renderer#emoji>#button.yt-live-chat-icon-toggle-button-renderer{}
  259. yt-live-chat-message-input-renderer[system-icons] #picker-buttons.yt-live-chat-message-input-renderer>*.yt-live-chat-message-input-renderer{
  260. margin:0px -0px 0px -0px;
  261. }
  262. //SC按鈕(YT設定打字時會隱藏)//#input-panel
  263. #picker-buttons .yt-live-chat-icon-toggle-button-renderer{
  264. margin:0px -0px 0px 0px;
  265. position: relative;
  266. z-index:10;
  267. left:0px;
  268. }
  269. //貼圖框設定
  270. yt-emoji-picker-renderer.yt-live-chat-message-input-renderer {margin:-0px -0px -0px -20px;min-height:300px!important;}//display:inline-flex;
  271. #pickers.yt-live-chat-message-input-renderer{
  272. background-color:rgba(0, 0, 0, 1);
  273. margin:0px -0px -0px 0px;
  274. position: absolute;
  275. z-index:0;
  276. left:0px;
  277. right:0px;
  278. bottom:40px;
  279. }
  280. //貼圖框內-會員貼圖放大(加會員前/後)
  281. #emoji.yt-emoji-picker-upsell-category-renderer img {height:emoji_member;width:emoji_member;padding:0px 2px;margin:0px;}//加會員前
  282. #emoji.CATEGORY_TYPE_CUSTOM.style-scope.yt-emoji-picker-category-renderer img {height:emoji_member;width:emoji_member;padding:0px 2px;margin:0px;}
  283. //貼圖框內-一般貼圖
  284. #emoji.yt-emoji-picker-category-renderer img {padding:1px emoji_normal;}
  285. //貼圖框內
  286. #categories-wrapper.style-scope.yt-emoji-picker-renderer{margin:0px -0px 0px -0px; ::-webkit-scrollbar{display: none;}}
  287. //貼圖框內-文字搜尋
  288. #search-panel.style-scope.yt-emoji-picker-renderer{display:inline-flex;height:10px;margin:-0px 0px -0px 10px!important;}
  289. //貼圖框內-分類
  290. #category-buttons.style-scope.yt-emoji-picker-renderer{margin:-20px -100px 0px 0px;}
  291. //貼圖框內-標題
  292. #title.style-scope.yt-emoji-picker-category-renderer{padding:0;margin:-10px 0px -5px 0px;opacity:0.3;background-color:rgba(216, 192, 192, .3);}
  293. }
  294. //聊天室Y卷軸隱藏
  295. if chat_scroll {
  296. ::-webkit-scrollbar {display: none;}//#item-scroller.yt-live-chat-item-list-renderer
  297. //針對新版chromeYT框架內優先設定
  298. html {
  299. scrollbar-color: auto !important;
  300. scrollbar-width: auto !important;
  301. }
  302. }
  303. /*name斷行*/
  304. if name_pr {
  305. yt-live-chat-text-message-renderer.yt-live-chat-item-list-renderer {
  306. //斷行聊天室格式 複數行に渡るチャットユーザー名&メッセージを真ん中に揃える、餘白を詰める
  307. & > #content {
  308. width: 100%;display: inline-flex;align-items: center;
  309. & > yt-live-chat-author-chip {
  310. align-items: center;
  311. margin: 0px -0px 0px -0px;
  312. position: relative;//相對層級100
  313. z-index:100;
  314. // 用戶名格式チャットユーザー名 - 幅を固定&小さくすることでメッセージを見やすくする
  315. & > #author-name {
  316. max-width: 4em;
  317. font-size: 15px;
  318. max-height: 1.5em;
  319. line-height: 1em;
  320. word-break: break-word;//名稱破行自動斷行break-all//keep-all//word-wrap: break-all;
  321. //align-items: baseline;//center
  322. border-top: 0.1px solid;
  323. }}}}
  324. //斷行的 profile picture
  325. #author-photo.yt-live-chat-text-message-renderer,
  326. #author-photo.yt-live-chat-text-message-renderer > img {
  327. margin: 0px;
  328. opacity:0.9;
  329. }
  330. //斷行的 badge會員徽章
  331. img.yt-live-chat-author-badge-renderer, yt-icon.yt-live-chat-author-badge-renderer {
  332. margin: -0px -0px 0px -15px ;
  333. opacity:0.4;
  334. position: relative;//相對層級-10
  335. z-index:-10;
  336. }
  337. //斷行的 顯示破框name
  338. #items yt-live-chat-text-message-renderer{contain: layout style;}
  339. }
  340. /*name靠右*/
  341. if name_pr2 {
  342. yt-live-chat-text-message-renderer.yt-live-chat-item-list-renderer {
  343. & > #content > yt-live-chat-author-chip {
  344. max-width:10em;
  345. max-height:1em;
  346. line-height: 1em;
  347. word-break:break-all ;//名稱破行自動斷行break-all//keep-all//word-wrap: break-all;break-word;
  348. align-items: stretch ;
  349. margin: 0px -0px 0px 0px;
  350. padding:0;
  351. position: absolute;
  352. z-index:0;
  353. right:0px;//top:1em;
  354. bottom: 0em;
  355. opacity:0.8;
  356. }}
  357. }
  358. /*訊息置頂透明度*/
  359. yt-live-chat-banner-manager[has-active-banner]{
  360. opacity:chat_top;
  361. margin: 0px 0px 0px 0px !important;
  362. padding: chat_tophead 0px 0px 0px;
  363. text-shadow: -0.5px 0.5px #000;
  364. if chat_top ==0{display:none;}
  365. }
  366. //投票調查表隱藏
  367. if hide_survey {#contents > yt-live-chat-poll-renderer {display:none;}}
  368. //置頂意見調查#contents.yt-live-chat-banner-renderer{display:none;}
  369. /*name+徽章隱藏*/
  370. if hide_user_name {
  371. yt-live-chat-text-message-renderer > #content > yt-live-chat-author-chip > #author-name {display: none !important;}
  372. img.yt-live-chat-author-badge-renderer, yt-icon.yt-live-chat-author-badge-renderer {display: none !important;}
  373. }
  374. /*YT提醒+#心動畫隱藏*/
  375. if hide_reaction {
  376. //YT剛進入LIVE在聊天室的提醒文字
  377. yt-live-chat-viewer-engagement-message-renderer.yt-live-chat-item-list-renderer {display: none;}
  378. //#心動畫#chat > #reaction-control-panel-overlay.yt-live-chat-renderer {display: none;}
  379. #reaction-control-panel.yt-reaction-control-panel-overlay-view-model {display: none;}
  380. //YT輸入提醒框//yt-tooltip-renderer是包含所有的提醒
  381. #content.yt-tooltip-renderer,#Wrapper.tp-yt-iron-dropdown ,yt-tooltip-renderer{display: none;}
  382. }
  383. /*貼圖註解隱藏_chat貼圖-SC貼圖-會員徽章-每月會員*/
  384. if hide_tooltip {
  385. tp-yt-paper-tooltip.style-scope.yt-live-chat-text-message-renderer[role="tooltip"],
  386. tp-yt-paper-tooltip.style-scope.yt-live-chat-paid-message-renderer[role="tooltip"],
  387. tp-yt-paper-tooltip.style-scope.yt-live-chat-author-badge-renderer[role="tooltip"] ,
  388. tp-yt-paper-tooltip.style-scope.yt-live-chat-membership-item-renderer[role="tooltip"],
  389. {display: none;}
  390. }
  391. /*SC倒數計時調整*/
  392. if hide_sc_head {
  393. yt-live-chat-ticker-renderer.style-scope.yt-live-chat-renderer {max-height:0px;margin: -0px -0px -0px 0px;background:rgba(0, 0, 0, 0);opacity:0.7;
  394. if sc_head == 0{display:none;}
  395. }
  396. /*每月會員計時背景調整*/
  397. #content.yt-live-chat-ticker-sponsor-item-renderer{max-height:10px;margin: -0px -0px -0px 0px;}
  398. #text.yt-live-chat-ticker-sponsor-item-renderer{margin: -0px -0px 0px 5px;}
  399. /*SC計時背景調整*/
  400. #content.yt-live-chat-ticker-paid-message-item-renderer{max-height:10px;margin: -0px -0px -0px 0px;}
  401. #username-text.yt-live-chat-ticker-paid-message-item-renderer{margin: -0px -0px -0px 0px;}
  402. #container.run-ticker, yt-live-chat-ticker-renderer[class] #content,#items[class] > *[class] > #container.run-ticker[class ]{max-height:sc_head;margin: -0px -0px -0px 0px;}
  403. }
  404. }