🏠 Home 

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. }