1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-27 21:05:53 +00:00

3.5.409. Fix player positioning. Fix cheer rendering with hashtags. Add option to hide cheering with #charity notices. Fix highlight notices not appearing. Fix clicking a dashboard widget's settings balloon. Dark CSS fixes for dashboard and clips updates. Refactor CSS for chatlines to remove the need for :before. Fix debug logging never finishing when the client fails to get a logviewer token.

This commit is contained in:
SirStendec 2016-12-23 13:40:05 -05:00
parent 1b9b695bdd
commit 6b13ac3265
24 changed files with 286 additions and 344 deletions

View file

@ -1,3 +1,27 @@
<div class="list-header">3.5.409 <time datetime="2016-12-23">(2016-12-23)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Fixed: Don't collapse a widget on the dashboard clicking in its settings menu.</li>
<li>Fixed: Dark theme CSS tweaks for the dashboard.</li>
<li>Fixed: Dark theme CSS tweaks for clips.</li>
<li>Changed: Re-factor chat line CSS to eliminate the need for <code>:before</code> pseudo-elements.</li>
</ul>
<div class="list-header">3.5.408 <time datetime="2016-12-22">(2016-12-22)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Added: Option to hide Cheering with #Charity notices.</li>
<li>Fixed: Highlight notifications not appearing.</li>
</ul>
<div class="list-header">3.5.407 <time datetime="2016-12-21">(2016-12-21)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Fixed: Cheer rendering when hashtags are present.</li>
</ul>
<div class="list-header">3.5.406 <time datetime="2016-12-19">(2016-12-19)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Fixed: Another tweak for player positioning. Hopefully fixed properly now.</li>
</ul>
<div class="list-header">3.5.405 <time datetime="2016-12-19">(2016-12-19)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Fixed: Display Channel Metadata on Theater Mode Hover</li>
@ -45,38 +69,5 @@
<li>Fixed: Bug rendering the My Emoticons menu if the user is registered to have an emote set that isn't currently loaded in the client.</li>
</ul>
<div class="list-header">3.5.398 <time datetime="2016-12-14">(2016-12-14)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Added: Standalone Dashboard mode. Append <code>?standalone</code> to the end of the URL for your dashboard to see it. (Thanks to Warchamp7 for this idea.)</li>
<li>Changed: Minor CSS tweaks for the dashboard.</li>
<li>Fixed: Correct Twitch's uptime string formatting on the dashboard to not be blatantly wrong.</li>
</ul>
<div class="list-header">3.5.397 <time datetime="2016-12-12">(2016-12-12)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Fixed: Darken the new dashboard.</li>
<li>Fixed: Ensure the FFZ chat menu can't be wider than dashboard chat.</li>
<li>&nbsp;</li>
<li>Other dashboard features will be returning as I have time to fix them.</li>
</ul>
<div class="list-header">3.5.396 <time datetime="2016-12-12">(2016-12-12)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Added: Support for AutoMod's badge.</li>
<li>Fixed: Darken the new AutoMod UI on the channel settings page.</li>
<li>Fixed: Use a chatter's display name rather than their username when tab-completing if the message starts with <code>/me> </code>.</li>
<li>API Added: <code>api.register_metadata</code> and <code>api.unregister_metadata</code> functions for registering custom channel metadata providers.</li>
</ul>
<div class="list-header">3.5.395 <time datetime="2016-12-10">(2016-12-10)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Added: <code>/renamegroup</code> chat command to rename the current group chat room.</li>
<li>Changed: Add a few more hard-coded modifier emoticons. (Why haven't I made an API yet? NotLikeThis)</li>
<li>Fixed: Modifiers sticking to the master emoji token, causing all emoji to become decorated with modifiers.</li>
<li>Fixed: Incorrect detection of certain dashboard pages causing FFZ to do an incomplete initialization.</li>
<li>Fixed: Bug when testing to see if a chat command should be accessible.</li>
</ul>
<div class="list-header" id="ffz-old-news-button"><a href="#">View Older</a></div>
<div id="ffz-old-news"></div>

View file

@ -512,8 +512,8 @@ body.ffz-dark:not([data-page="teams#show"]),
}
.ffz-dark .tabs li.selected a {
color: #fff !important;
border-color: #a68cd4 !important;
color: #fff !important;
border-color: #a68cd4 !important;
}
@ -861,6 +861,17 @@ body.ffz-dark:not([data-page="teams#show"]),
/* Dashboard */
.ffz-dark .dash-tabs__item--active .dash-tabs__label:after {
border-color: #191919;
}
.ffz-dark .dash-tabs__item {
background-color: #151515;
border-color: rgba(255,255,255,0.2);
}
.ffz-dark .dash-tabs__item--active { background-color: #191919 }
.ffz-dark .card-carousel__button,
.ffz-dark .carousel__button {
background-color: #101010;
@ -886,6 +897,8 @@ body.ffz-dark:not([data-page="teams#show"]),
background-color: #121212;
}
.ffz-dark .dash-brick,
.ffz-dark .dash-tabs__item--active .dash-tabs__label,
.ffz-dark .ct-type-grey { color: #ccc }
.ffz-dark .brick--marked.brick--theme-white,
@ -1457,12 +1470,13 @@ body.ffz-dark:not([data-page="teams#show"]),
.ffz-dark .activity-create {
background-color: #101010;
box-shadow: inset 0 0 0 1px #474747;
box-shadow: none; /*inset 0 0 0 1px #474747;*/
}
.ffz-dark .activity-create--focus {
background-color: #1d1d1d;
box-shadow: inset 0 0 0 1px #474747;
background-color: #191919;
/*box-shadow: none; inset 0 0 0 1px #474747;*/
border-color: rgba(255,255,255,0.4) !important;
}
.ffz-dark .activity-add-comment__textarea:before {

View file

@ -1,3 +1,36 @@
<div class="list-header">3.5.398 <time datetime="2016-12-14">(2016-12-14)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Added: Standalone Dashboard mode. Append <code>?standalone</code> to the end of the URL for your dashboard to see it. (Thanks to Warchamp7 for this idea.)</li>
<li>Changed: Minor CSS tweaks for the dashboard.</li>
<li>Fixed: Correct Twitch's uptime string formatting on the dashboard to not be blatantly wrong.</li>
</ul>
<div class="list-header">3.5.397 <time datetime="2016-12-12">(2016-12-12)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Fixed: Darken the new dashboard.</li>
<li>Fixed: Ensure the FFZ chat menu can't be wider than dashboard chat.</li>
<li>&nbsp;</li>
<li>Other dashboard features will be returning as I have time to fix them.</li>
</ul>
<div class="list-header">3.5.396 <time datetime="2016-12-12">(2016-12-12)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Added: Support for AutoMod's badge.</li>
<li>Fixed: Darken the new AutoMod UI on the channel settings page.</li>
<li>Fixed: Use a chatter's display name rather than their username when tab-completing if the message starts with <code>/me> </code>.</li>
<li>API Added: <code>api.register_metadata</code> and <code>api.unregister_metadata</code> functions for registering custom channel metadata providers.</li>
</ul>
<div class="list-header">3.5.395 <time datetime="2016-12-10">(2016-12-10)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Added: <code>/renamegroup</code> chat command to rename the current group chat room.</li>
<li>Changed: Add a few more hard-coded modifier emoticons. (Why haven't I made an API yet? NotLikeThis)</li>
<li>Fixed: Modifiers sticking to the master emoji token, causing all emoji to become decorated with modifiers.</li>
<li>Fixed: Incorrect detection of certain dashboard pages causing FFZ to do an incomplete initialization.</li>
<li>Fixed: Bug when testing to see if a chat command should be accessible.</li>
</ul>
<div class="list-header">3.5.394 <time datetime="2016-12-08">(2016-12-08)</time></div>
<ul class="chat-menu-content menu-side-padding">
<li>Fixed: The <code>/card</code> command and the link in whisper windows to Open Moderation Card were not working.</li>

View file

@ -96,6 +96,16 @@ FFZ.settings_info.bits_pinned_expand = {
}
FFZ.settings_info.bits_disable_charity = {
type: "boolean",
value: false,
category: "Chat Filtering",
name: "Disable Cheering with #Charity Notices",
help: "Stop displaying Twitch's notices about Cheering with #Charity."
}
// --------------------
// Initialization

View file

@ -38,7 +38,7 @@ FFZ.prototype.modify_dashboard_widget = function(component) {
ffz_init: function() {
var t = this;
this.$(".dash-widget__header").click(function(e) {
if ( ! f.settings.dash_widget_click_to_expand || e.target.tagName === 'button' || jQuery(e.target).parents('button').length )
if ( ! f.settings.dash_widget_click_to_expand || e.target.tagName === 'button' || jQuery(e.target).parents('button').length || jQuery(e.target).parents('.balloon-wrapper').length )
return;
t.actions.collapseWidget.call(t);

View file

@ -356,10 +356,9 @@ FFZ.settings_info.chat_rows = {
help: "Display alternating background colors for lines in chat.",
on_update: function(val) {
this.toggle_style('chat-background', !this.has_bttv && val);
this._toggle_chat_setup_style();
}
};
this.toggle_style('chat-background', !this.has_bttv && val);
}
};
FFZ.settings_info.chat_separators = {
@ -382,14 +381,12 @@ FFZ.settings_info.chat_separators = {
help: "Display thin lines between chat messages for further visual separation.",
on_update: function(val) {
this._toggle_chat_setup_style();
this.toggle_style('chat-separator', !this.has_bttv && val);
this.toggle_style('chat-separator-3d', !this.has_bttv && val === 2);
this.toggle_style('chat-separator-3d-inset', !this.has_bttv && val === 3);
this.toggle_style('chat-separator-wide', !this.has_bttv && val === 4);
}
};
this.toggle_style('chat-separator', !this.has_bttv && val);
this.toggle_style('chat-separator-3d', !this.has_bttv && val === 2);
this.toggle_style('chat-separator-3d-inset', !this.has_bttv && val === 3);
this.toggle_style('chat-separator-wide', !this.has_bttv && val === 4);
}
};
FFZ.settings_info.old_sub_notices = {
@ -440,7 +437,7 @@ FFZ.settings_info.chat_padding = {
help: "Reduce the amount of padding around chat messages to fit more on-screen at once.",
on_update: function(val) { this.toggle_style('chat-padding', !this.has_bttv && val); }
};
};
FFZ.settings_info.high_contrast_chat = {
@ -666,7 +663,6 @@ FFZ.prototype.setup_line = function() {
utils.toggle_cls('ffz-padded-emoticons')(!this.has_bttv && this.settings.emote_alignment === 1);
utils.toggle_cls('ffz-baseline-emoticons')(!this.has_bttv && this.settings.emote_alignment === 2);
this._toggle_chat_setup_style();
this.toggle_style('chat-padding', !this.has_bttv && this.settings.chat_padding);
this.toggle_style('chat-background', !this.has_bttv && this.settings.chat_rows);
@ -692,15 +688,6 @@ FFZ.prototype.setup_line = function() {
}
FFZ.prototype._toggle_chat_setup_style = function() {
this.toggle_style('chat-setup', !this.has_bttv && (
this.settings.chat_mod_icon_visibility > 1 ||
this.settings.chat_separators ||
this.settings.chat_rows ||
this.settings.highlight_messages_with_mod_card));
}
FFZ.prototype.save_aliases = function() {
this.log("Saving " + Object.keys(this.aliases).length + " aliases to local storage.");
localStorage.ffz_aliases = JSON.stringify(this.aliases);

View file

@ -80,7 +80,6 @@ FFZ.settings_info.highlight_messages_with_mod_card = {
help: "Highlight a user's messages in chat when their moderation card is open.",
on_update: function(val) {
this._toggle_chat_setup_style();
if ( ! this._mod_card )
return;
@ -128,7 +127,6 @@ FFZ.settings_info.chat_mod_icon_visibility = {
help: "Choose when you should see in-line moderation icons in chat.",
on_update: function(val) {
this._toggle_chat_setup_style();
var settings = utils.ember_settings();
if ( settings )
settings.set('showModIcons', val === 1);
@ -842,7 +840,7 @@ FFZ.prototype.modify_moderation_card = function(component) {
var was_at_bottom = history.scrollTop >= (history.scrollHeight - history.clientHeight),
last_line = history.querySelector('.chat-line:last-of-type'),
ll_date = last_line && last_line.getAttribute('data-date'),
date = message.date.toLocaleDateString();
date = message.date && message.date.toLocaleDateString();
if ( last_line.classList.contains('no-messages') ) {
last_line.parentElement.removeChild(last_line);
@ -1559,7 +1557,7 @@ FFZ.prototype._build_mod_card_history = function(msg, modcard, show_from, ts_cli
l_el.setAttribute('data-sender', msg.from);
l_el.setAttribute('data-id', msg.tags && msg.tags.id);
l_el.setAttribute('data-lv-id', msg.lv_id);
l_el.setAttribute('data-date', msg.date.toLocaleDateString());
l_el.setAttribute('data-date', msg.date && msg.date.toLocaleDateString());
l_el.setAttribute('data-deleted', msg.deleted || false);
l_el.innerHTML = out.join("");

View file

@ -945,7 +945,7 @@ FFZ.prototype._update_room_badge_css = function(room_id) {
output = [];
// For rooms that don't have sub badges set.
if ( ! badges.subscriber ) {
if ( badges && ! badges.subscriber ) {
var BadgeService = utils.ember_lookup('service:badges'),
global = BadgeService && BadgeService.badgeCollection && BadgeService.badgeCollection.global;
badges.subscriber = global.subscriber;
@ -2068,6 +2068,8 @@ FFZ.prototype._modify_room = function(room) {
notice_type = msg.tags && msg.tags['msg-id'],
is_whisper = msg.style === 'whisper';
if ( notice_type === 'charity' && f.settings.bits_disable_charity )
return;
// If this message is already in the room, discard the duplicate.
if ( msg_id && this.ffz_ids && this.ffz_ids[msg_id] )

View file

@ -84,7 +84,6 @@ FFZ.prototype.setup_bttv = function(delay) {
this.disconnect_extra_chat();
// Disable style blocks.
this.toggle_style('chat-setup');
this.toggle_style('chat-padding');
this.toggle_style('chat-background');

View file

@ -53,6 +53,39 @@
}
.yin-alert {
background-color: lighten(@nav-bg-color, 10%);
.yin-link {
color: #fff;
&:hover {
background-color: fade(white, 10%);
}
}
}
.ct-editable-text {
&:hover {
background-color: transparent;
&:after {
background-color: fade(white, 10%);
}
}
}
.ct-text-input {
background-color: fade(white, 10%);
color: white;
border-color: fade(white, 20%);
&:focus {
border-color: fade(white, 50%);
}
}
// Clip Center?
.ce-clip-center:not(.ce-clip-center--editing) .ce-clip-center__pre-control {
background-color: @nav-bg-color;

View file

@ -61,7 +61,7 @@ FFZ.channel_metadata = {};
// Version
var VER = FFZ.version_info = {
major: 3, minor: 5, revision: 405,
major: 3, minor: 5, revision: 409,
toString: function() {
return [VER.major, VER.minor, VER.revision].join(".") + (VER.extra || "");
}

View file

@ -7,7 +7,6 @@
.ffz-dark .badge.invert-invert,
.theatre .badge.invert-invert,
.dark .badge.invert-invert,
.force-dark .badge.invert-invert,
.badge:not(.no-invert):not(.invert-invert) {
filter: invert(75%);
}
@ -15,7 +14,6 @@
.badge.colored,
.ffz-dark .badge:not(.invert-invert),
.theatre .badge:not(.invert-invert),
.dark .badge:not(.invert-invert),
.force-dark .badge:not(.invert-invert) {
.dark .badge:not(.invert-invert) {
filter: none !important;
}

View file

@ -1,86 +1,79 @@
/* Regular Alternating Background */
.conversation-chat-lines > div:nth-child(2n+0):before,
.chat-line:nth-child(2n+0):before {
.conversation-chat-lines > div:nth-child(2n+0),
.chat-line:nth-child(2n+0) {
background-color: rgba(0,0,0, 0.1);
}
/* Dark: Alternating Background */
.ffz-dark .conversation-chat-lines > div:nth-child(2n+0):before,
.ffz-dark .chat-history .chat-line:nth-child(2n+0):before,
.ffz-dark .conversation-chat-lines > div:nth-child(2n+0),
.ffz-dark .chat-history .chat-line:nth-child(2n+0),
.theatre .conversation-chat-lines > div:nth-child(2n+0):before,
.theatre .chat-line:nth-child(2n+0):before,
.theatre .conversation-chat-lines > div:nth-child(2n+0),
.theatre .chat-line:nth-child(2n+0),
.dark .chat-line:nth-child(2n+0):before,
.force-dark .chat-line:nth-child(2n+0):before {
.dark .chat-line:nth-child(2n+0) {
background-color: rgba(255,255,255, 0.05);
}
/* DEPRECIATED: Whisper Backgrounds */
.chat-line.whisper:before {
.chat-line.whisper {
background-color: rgba(185, 163, 227, 0.2);
}
.chat-line.whisper:nth-child(2n+0):before {
.chat-line.whisper:nth-child(2n+0) {
background-color: rgba(185, 163, 227, 0.4);
}
.theatre .chat-line.whisper:before,
.dark .chat-line.whisper:before,
.force-dark .chat-line.whisper:before {
.theatre .chat-line.whisper,
.dark .chat-line.whisper {
background-color: rgba(100, 65, 165, 0.2);
}
.theatre .chat-line.whisper:nth-child(2n+0):before,
.dark .chat-line.whisper:nth-child(2n+0):before,
.force-dark .chat-line.whisper:nth-child(2n+0):before {
.theatre .chat-line.whisper:nth-child(2n+0),
.dark .chat-line.whisper:nth-child(2n+0) {
background-color: rgba(100, 65, 165, 0.4);
}
/* Chat History: Original Sender */
.chat-history .chat-line.original-sender:before {
.chat-history .chat-line.original-sender {
background-color: rgba(0,127,255, 0.2);
}
.chat-history .chat-line.original-sender:nth-child(2n+0):before {
.chat-history .chat-line.original-sender:nth-child(2n+0) {
background-color: rgba(0,127,255, 0.4);
}
.theatre .chat-history .chat-line.original-sender:before,
.dark .chat-history .chat-line.original-sender:before,
.force-dark .chat-history .chat-line.original-sender:before {
.theatre .chat-history .chat-line.original-sender,
.dark .chat-history .chat-line.original-sender {
background-color: rgba(0,63,127, 0.2);
}
.theatre .chat-history .chat-line.original-sender:nth-child(2n+0):before,
.dark .chat-history .chat-line.original-sender:nth-child(2n+0):before,
.force-dark .chat-history .chat-line.original-sender:nth-child(2n+0):before {
.theatre .chat-history .chat-line.original-sender:nth-child(2n+0),
.dark .chat-history .chat-line.original-sender:nth-child(2n+0) {
background-color: rgba(0,63,127, 0.4);
}
/* Chat History: Original Message */
.chat-history .chat-line.original-msg:before {
.chat-history .chat-line.original-msg {
background-color: rgba(0,255,127, 0.4);
}
.chat-history .chat-line.original-msg:nth-child(2n+0):before {
.chat-history .chat-line.original-msg:nth-child(2n+0) {
background-color: rgba(0,255,127, 0.8);
}
.theatre .chat-history .chat-line.original-msg:before,
.dark .chat-history .chat-line.original-msg:before,
.force-dark .chat-history .chat-line.original-msg:before {
.theatre .chat-history .chat-line.original-msg,
.dark .chat-history .chat-line.original-msg {
background-color: rgba(0,127,63, 0.4);
}
.theatre .chat-history .chat-line.original-msg:nth-child(2n+0):before,
.dark .chat-history .chat-line.original-msg:nth-child(2n+0):before,
.force-dark .chat-history .chat-line.original-msg:nth-child(2n+0):before {
.theatre .chat-history .chat-line.original-msg:nth-child(2n+0),
.dark .chat-history .chat-line.original-msg:nth-child(2n+0) {
background-color: rgba(0,127,63, 0.8);
}
@ -91,8 +84,7 @@
}
.theatre .chat-history .chat-line.original-msg span.has-color,
.dark .chat-history .chat-line.original-msg span.has-color,
.force-dark .chat-history .chat-line.original-msg span.has-color {
.dark .chat-history .chat-line.original-msg span.has-color {
color: #fff !important;
}
@ -100,34 +92,31 @@
/* DEPRECIATED: Mention Backgrounds */
.chat-line.ffz-mentioned:before {
.chat-line.ffz-mentioned {
background-color: rgba(255,127,127,0.2);
}
.chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned:before,
.chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned,
.chat-line.ffz-mentioned:nth-child(2n+0):before {
.chat-line.ffz-mentioned:nth-child(2n+0) {
background-color: rgba(255,127,127, 0.4);
}
/* DEPRECIATED: DARK THEME: Mention Backgrounds */
.ffz-dark .chat-history .chat-line.ffz-mentioned:before,
.ffz-dark .chat-history .chat-line.ffz-mentioned,
.theatre .chat-line.ffz-mentioned:before,
.dark .chat-line.ffz-mentioned:before,
.force-dark .chat-line.ffz-mentioned:before {
.theatre .chat-line.ffz-mentioned,
.dark .chat-line.ffz-mentioned {
background-color: rgba(255,0,0, 0.2) !important;
}
.theatre .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned:before,
.dark .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned:before,
.force-dark .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned:before,
.theatre .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned,
.dark .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned,
.ffz-dark .chat-history .chat-line.ffz-mentioned:nth-child(2n+0):before,
.theatre .chat-line.ffz-mentioned:nth-child(2n+0):before,
.dark .chat-line.ffz-mentioned:nth-child(2n+0):before,
.force-dark .chat-line.ffz-mentioned:nth-child(2n+0):before {
.ffz-dark .chat-history .chat-line.ffz-mentioned:nth-child(2n+0),
.theatre .chat-line.ffz-mentioned:nth-child(2n+0),
.dark .chat-line.ffz-mentioned:nth-child(2n+0) {
background-color: rgba(255,0,0, 0.3) !important;
}
@ -154,16 +143,10 @@
.ffz-dark .chat-history .mentioned,
.ffz-dark .chat-history .mentioning,
.app-main.theatre .chat-container .chat-line .mentioned,
.app-main.theatre .chat-container .chat-line .mentioning,
.chat-container.dark .chat-line .mentioned,
.chat-container.dark .chat-line .mentioning,
.chat-container.force-dark .chat-line .mentioned,
.chat-container.force-dark .chat-line .mentioning,
.ember-chat-container.dark .chat-line .mentioned,
.ember-chat-container.dark .chat-line .mentioning,
.ember-chat-container.force-dark .chat-line .mentioned,
.ember-chat-container.force-dark .chat-line .mentioning {
.chat-container.dark .chat-line .mentioning,
.ember-chat-container.dark .chat-line .mentioning {
color: #8c8c8c;
background-color: rgba(16,16,16, 0.75);
}

View file

@ -15,8 +15,6 @@ body.ffz-bttv-dark .chat-interface,
.theatre .chat-container,
.theatre .ember-chat-container,
.chat-container.dark,
.chat-container.force-dark,
.ember-chat-container.dark,
.ember-chat-container.force-dark {
.ember-chat-container.dark {
background-color: #000 !important;
}

View file

@ -11,9 +11,7 @@ body.ffz-bttv .chat-line .timestamp,
.theatre .chat-container,
.theatre .ember-chat-container,
.chat-container.dark,
.chat-container.force-dark,
.ember-chat-container.dark,
.ember-chat-container.force-dark,
body.ffz-bttv-dark .chat-container,
body.ffz-bttv-dark .chat-line .message,

View file

@ -1,17 +1,19 @@
/* 3D Inset Separators */
.conversation-chat-lines > div:before,
.chat-line:before {
.conversation-chat-lines > div,
.chat-line {
border-top: 1px solid #aaa;
border-bottom-color: rgba(255,255,255, 0.5);
}
/* Dark: 3D Inset Separators */
.ffz-dark .conversation-chat-lines > div:before,
.theatre .conversation-chat-lines > div:before,
.ember-chat .chat-messages .chat-line,
.ember-chat .chat-messages .chat-line.admin { padding-top: 2px }
.theatre .chat-line:before,
.dark .chat-line:before,
.force-dark .chat-line:before {
/* Dark: 3D Inset Separators */
.ffz-dark .conversation-chat-lines > div,
.theatre .conversation-chat-lines > div,
.theatre .chat-line,
.dark .chat-line {
border-top-color: #000;
border-bottom-color: rgba(255,255,255, 0.1);
}

View file

@ -1,15 +1,17 @@
/* 3D Separators */
.conversation-chat-lines > div:before,
.chat-line:before {
.conversation-chat-lines > div,
.chat-line {
border-top: 1px solid rgba(255,255,255, 0.5);
}
/* Dark: 3D Separators */
.ffz-dark .conversation-chat-lines > div:before,
.theatre .conversation-chat-lines > div:before,
.ember-chat .chat-messages .chat-line,
.ember-chat .chat-messages .chat-line.admin { padding-top: 2px }
.theatre .chat-line:before,
.dark .chat-line:before,
.force-dark .chat-line:before {
/* Dark: 3D Separators */
.ffz-dark .conversation-chat-lines > div,
.theatre .conversation-chat-lines > div,
.theatre .chat-line,
.dark .chat-line {
border-top-color: rgba(255,255,255, 0.1);
}

View file

@ -1,15 +1,17 @@
/* Wide Separators */
.conversation-chat-lines > div:before,
.chat-line:before {
.conversation-chat-lines > div,
.chat-line {
border-top: 1px solid #aaa;
}
/* Dark: Wide Separators */
.ffz-dark .conversation-chat-lines > div:before,
.theatre .conversation-chat-lines > div:before,
.ember-chat .chat-messages .chat-line,
.ember-chat .chat-messages .chat-line.admin { padding-top: 2px }
.theatre .chat-line:before,
.dark .chat-line:before,
.force-dark .chat-line:before {
/* Dark: Wide Separators */
.ffz-dark .conversation-chat-lines > div,
.theatre .conversation-chat-lines > div,
.theatre .chat-line,
.dark .chat-line {
border-top-color: #000;
}

View file

@ -1,28 +1,30 @@
/* Simple Separators */
.conversation-chat-lines > div:before,
.chat-line:before {
.conversation-chat-lines > div,
.chat-line {
border-bottom: 1px solid #aaa;
}
/* Dark: Simple Separators */
.ffz-dark .conversation-chat-lines > div:before,
.theatre .conversation-chat-lines > div:before,
.ember-chat .chat-messages .chat-line,
.ember-chat .chat-messages .chat-line.admin { padding-bottom: 2px }
.theatre .chat-line:before,
.dark .chat-line:before,
.force-dark .chat-line:before {
/* Dark: Simple Separators */
.ffz-dark .conversation-chat-lines > div,
.theatre .conversation-chat-lines > div,
.theatre .chat-line,
.dark .chat-line {
border-bottom-color: #000;
}
/* Hide First Line */
.conversation-chat-lines > div:first-child:before,
.chat-line:first-of-type:before {
.conversation-chat-lines > div:first-child,
.chat-line:first-of-type {
border-top-color: transparent !important;
}
/* Hide Last Line */
.conversation-chat-lines > div:last-child:nth-child(odd):before,
.chat-line:last-of-type:nth-child(odd):before {
.conversation-chat-lines > div:last-child:nth-child(odd),
.chat-line:last-of-type:nth-child(odd) {
border-bottom-color: transparent !important;
}

View file

@ -1,22 +0,0 @@
.conversation-chat-lines > div,
.chat-line {
position: relative;
z-index: 1;
}
.conversation-chat-lines > div:before,
.chat-line:before {
content: "";
position: absolute;
z-index: -1;
left: 0; right: 0;
top: 0; bottom: 0;
}
.chat-line.brick--marked {
box-shadow: none;
}
.chat-line.brick--marked:before {
box-shadow: 3px 0 0 #6441a4 inset;
}

View file

@ -1,19 +1,17 @@
.chat-lines .chat-line[data-sender="{user_id}"]:before {
.chat-lines .chat-line[data-sender="{user_id}"] {
background-color: rgba(0,127,255, 0.2);
}
.chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0):before {
.chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0) {
background-color: rgba(0,127,255, 0.4);
}
.theatre .chat-lines .chat-line[data-sender="{user_id}"]:before,
.dark .chat-lines .chat-line[data-sender="{user_id}"]:before,
.force-dark .chat-lines .chat-line[data-sender="{user_id}"]:before {
.theatre .chat-lines .chat-line[data-sender="{user_id}"],
.dark .chat-lines .chat-line[data-sender="{user_id}"] {
background-color: rgba(0,63,127, 0.2);
}
.theatre .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0):before,
.dark .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0):before,
.force-dark .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0):before {
.theatre .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0),
.dark .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0) {
background-color: rgba(0,63,127, 0.4);
}

View file

@ -667,8 +667,8 @@ FFZ.prototype._tokenize_bits = function(tokens) {
if ( bits_helpers && bits_helpers.tokenizeBits )
try {
return bits_helpers.tokenizeBits(tokens,
bits_tags && bits_tags.allTagNames,
bits_service && bits_service.regexes);
bits_tags && bits_tags.get('allTagNames'),
bits_service && bits_service.get('regexes'));
} catch(err) { }
return tokens;
@ -802,10 +802,15 @@ FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, del
// can't actually go to it is a bad thing.
if ( this._chatv && this.settings.highlight_notifications && ! this.embed_in_dash && ! document.hasFocus() && ! prevent_notification ) {
var room = this.rooms[room_id] && this.rooms[room_id].room,
controller = utils.ember_lookup('controller:chat'),
room_name;
// Make sure we have UI for this channel.
if ( (this.settings.group_tabs && (this.settings.pinned_rooms.indexOf(room_id) !== -1 || this._chatv._ffz_host )) || room.get('isGroupRoom') || room === this._chatv.get('controller.currentChannelRoom') ) {
if ( this.settings.pinned_rooms.indexOf(room_id) !== -1 ||
room_id === this._chatv._ffz_host ||
room.get('isGroupRoom') ||
(controller && room === controller.get('currentChannelRoom')) ) {
if ( room && room.get('isGroupRoom') )
room_name = room.get('tmiRoom.displayName');
else
@ -837,8 +842,7 @@ FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, del
(this.settings.notification_timeout*1000),
function() {
window.focus();
var cont = utils.ember_lookup('controller:chat');
room && cont && cont.focusRoom(room);
room && controller && controller.focusRoom(room);
}
);
}
@ -1067,6 +1071,10 @@ FFZ.prototype.render_token = function(render_links, warn_links, render_bits, tok
return '<span class="emoticon ffz-bit ffz-tooltip bit-prefix-' + prefix + ' bit-tier-' + tier[0] + '"' + (token.individuals ? ' data-individuals="' + utils.quote_attr(JSON.stringify(token.individuals)) + '"' : '') + ' data-prefix="' + prefix + '" data-amount="' + utils.number_commas(token.amount) + '" alt="cheer' + token.amount + '"></span>';
}
else if ( token.type === 'bits-tag' ) {
return '<span class="bits-tag mentioning">' + utils.sanitize(token.tag) + '</span>';
}
else if ( token.type === "deleted" )
return '<span class="deleted-word html-tooltip" title="' + utils.quote_san(token.text) + '" data-text="' + utils.sanitize(token.text) + '">&times;&times;&times;</span>';
//return `<span class="deleted-word html-tooltip" title="${utils.quote_attr(token.text)}" data-text="${utils.sanitize(token.text)}">&times;&times;&times;</span>`;

View file

@ -134,7 +134,18 @@ FFZ.debugging_blocks = {
ffz_room = room_id && this.rooms[room_id];
return new Promise(function(succeed, fail) {
var failed = false,
fail_timer = setTimeout(function() {
failed = true;
succeed([['Authentication', '<i>unable to get token</i>']]);
}, 500);
f.lv_get_token().then(function(token) {
if ( failed )
return;
else
clearTimeout(fail_timer);
var output = [
['Authentication', '<i>succeeded</i>'],
['Token Expires', new Date(f._lv_token.expires * 1000).toLocaleString()],

175
style.css
View file

@ -22,6 +22,7 @@ body > div.tipsy .tipsy-arrow { opacity: 0.8; }
.ffz-minimal-dashboard[data-current-path="user.dashboards.index"] .dash-dragula { height: calc(100vh - 70px) }
.ffz-minimize-conversations.ffz-minimal-dashboard[data-current-path="user.dashboards.index"] .dash-dragula { height: calc(100vh - 50px) }
.cn-bar-spacer.show,
.ffz-minimal-dashboard[data-current-path="user.dashboards.index"] #left_col,
.ffz-minimal-dashboard[data-current-path="user.dashboards.index"] #left_close,
.ffz-minimal-dashboard[data-current-path="user.dashboards.index"] #right_col,
@ -511,68 +512,57 @@ body.ffz-bttv-dark .ffz-ui-toggle.blue.live:hover svg.svg-emoticons path { fill:
.ffz-dark .ember-chat .chat-menu .list-header,
.theatre .ember-chat .chat-menu .list-header,
.dark .ember-chat .chat-menu .list-header,
.force-dark .ember-chat .chat-menu .list-header {
.dark .ember-chat .chat-menu .list-header {
border-top-color: rgba(255,255,255, 0.2);
}
.ffz-dark .ffz-ui-menu-page .ffz-filter-container,
.theatre .ffz-ui-menu-page .ffz-filter-container,
.dark .ffz-ui-menu-page .ffz-filter-container,
.force-dark .ffz-ui-menu-page .ffz-filter-container,
.ffz-dark .chat-menu.ffz-ui-popup .ffz-ui-menu-page .chat-menu-content .heading,
.theatre .chat-menu.ffz-ui-popup .ffz-ui-menu-page .chat-menu-content .heading,
.dark .chat-menu.ffz-ui-popup .ffz-ui-menu-page .chat-menu-content .heading,
.force-dark .chat-menu.ffz-ui-popup .ffz-ui-menu-page .chat-menu-content .heading,
.ffz-dark .chat-menu.ffz-ui-popup .ffz-ui-menu-page .emoticon-grid .heading,
.theatre .chat-menu.ffz-ui-popup .ffz-ui-menu-page .emoticon-grid .heading,
.dark .chat-menu.ffz-ui-popup .ffz-ui-menu-page .emoticon-grid .heading,
.force-dark .chat-menu.ffz-ui-popup .ffz-ui-menu-page .emoticon-grid .heading,
.ffz-dark .ffz-ui-popup ul.menu,
.theatre .ffz-ui-popup ul.menu,
.dark .ffz-ui-popup ul.menu,
.force-dark .ffz-ui-popup ul.menu,
.ffz-dark .ffz-ui-popup ul.menu a,
.theatre .ffz-ui-popup ul.menu a,
.dark .ffz-ui-popup ul.menu a,
.force-dark .ffz-ui-popup ul.menu a,
.ffz-sidebar-swap.ffz-dark .ffz-ui-popup ul.menu a,
.ffz-sidebar-swap .theatre .ffz-ui-popup ul.menu a,
.ffz-sidebar-swap .dark .ffz-ui-popup ul.menu a,
.ffz-sidebar-swap .force-dark .ffz-ui-popup ul.menu a {
.ffz-sidebar-swap .dark .ffz-ui-popup ul.menu a {
border-color: #32323e;
}
.ffz-dark .ffz-ui-popup ul.menu,
.theatre .ffz-ui-popup ul.menu,
.dark .ffz-ui-popup ul.menu,
.force-dark .ffz-ui-popup ul.menu {
.dark .ffz-ui-popup ul.menu {
background-color: #212121;
}
.ffz-dark .ffz-ui-popup ul.menu li.active,
.theatre .ffz-ui-popup ul.menu li.active,
.dark .ffz-ui-popup ul.menu li.active,
.force-dark .ffz-ui-popup ul.menu li.active {
.dark .ffz-ui-popup ul.menu li.active {
background-color: #101010;
}
.ffz-dark .ffz-ui-popup ul.menu li.active a,
.theatre .ffz-ui-popup ul.menu li.active a,
.dark .ffz-ui-popup ul.menu li.active a,
.force-dark .ffz-ui-popup ul.menu li.active a {
.dark .ffz-ui-popup ul.menu li.active a {
border-top-color: #101010;
}
.ffz-dark .ffz-ui-popup.emoticon-selector .emoticon-selector-box,
.theatre .ffz-ui-popup.emoticon-selector .emoticon-selector-box,
.dark .ffz-ui-popup.emoticon-selector .emoticon-selector-box,
.force-dark .ffz-ui-popup.emoticon-selector .emoticon-selector-box {
.dark .ffz-ui-popup.emoticon-selector .emoticon-selector-box {
background-color: #101010;
color: #c3c3c3;
border-color: #32323e;
@ -606,12 +596,12 @@ body.ffz-bttv-dark .ffz-ui-toggle.blue.live:hover svg.svg-emoticons path { fill:
.suggestion.ffz-favorite:before,
.emoticon.ffz-favorite:before {
content: "";
display: block;
height: 14px; width: 14px;
position: absolute;
right: 0; bottom: 0;
background: url("//cdn.frankerfacez.com/script/emoticon_favorite.png") no-repeat;
content: "";
display: block;
height: 14px; width: 14px;
position: absolute;
right: 0; bottom: 0;
background: url("//cdn.frankerfacez.com/script/emoticon_favorite.png") no-repeat;
}
.suggestion.ffz-favorite:before { right: 2.5px; bottom: 2.5px }
@ -653,7 +643,6 @@ body.ffz-bttv-dark .ffz-ui-toggle.blue.live:hover svg.svg-emoticons path { fill:
.pin-switch svg path { fill: rgba(0,0,0,0.2); }
.dark .pin-switch svg path,
.force-dark .pin-switch svg path,
.theatre .dark .pin-switch svg path { fill: rgba(255,255,255,0.2) }
.pin-switch,
@ -741,9 +730,7 @@ body.ffz-bttv-dark .ffz-ui-toggle.blue.live:hover svg.svg-emoticons path { fill:
.chat-container.dark .chat-interface .ffz-ui-popup.emoticon-selector .emoticon-selector-box,
.app-main.theatre .chat-container .chat-interface .ffz-ui-popup.emoticon-selector .emoticon-selector-box,
.chat-container.force-dark .chat-interface .ffz-ui-popup.emoticon-selector .emoticon-selector-box,
.ember-chat-container.dark .chat-interface .ffz-ui-popup.emoticon-selector .emoticon-selector-box,
.ember-chat-container.force-dark .chat-interface .ffz-ui-popup.emoticon-selector .emoticon-selector-box {
.ember-chat-container.dark .chat-interface .ffz-ui-popup.emoticon-selector .emoticon-selector-box {
background-color: rgb(16,16,16);
color: rgb(195,195,195);
border-color: #32323e;
@ -849,9 +836,7 @@ body.ffz-bttv-dark .ffz-ui-toggle.blue.live:hover svg.svg-emoticons path { fill:
.app-main.theatre .ffz-ui-popup ul.sub-menu,
.chat-container.dark .ffz-ui-popup ul.sub-menu,
.chat-container.force-dark .ffz-ui-popup ul.sub-menu,
.ember-chat-container.dark .ffz-ui-popup ul.sub-menu,
.ember-chat-container.force-dark .ffz-ui-popup ul.sub-menu,
body.ffz-bttv-dark .ffz-ui-popup ul.sub-menu {
background-color: #181818;
}
@ -863,9 +848,7 @@ body.ffz-bttv-dark .ffz-ui-popup ul.sub-menu {
.app-main.theatre .ffz-ui-popup ul.sub-menu a,
.chat-container.dark .ffz-ui-popup ul.sub-menu a,
.chat-container.force-dark .ffz-ui-popup ul.sub-menu a,
.ember-chat-container.dark .ffz-ui-popup ul.sub-menu a,
.ember-chat-container.force-dark .ffz-ui-popup ul.sub-menu a,
body.ffz-bttv-dark .ffz-ui-popup ul.sub-menu a {
color: #d3d3d3 !important;
}
@ -905,30 +888,22 @@ span.ffz-handle:after { left: 8px }
.app-main.theatre span.ffz-handle:before,
.chat-container.dark span.ffz-handle:before,
.chat-container.force-dark span.ffz-handle:before,
.ember-chat-container.dark span.ffz-handle:before,
.ember-chat-container.force-dark span.ffz-handle:before,
body.ffz-bttv-dark .ffz-ui-popup span.ffz-handle:before,
.app-main.theatre span.ffz-handle:after,
.chat-container.dark span.ffz-handle:after,
.chat-container.force-dark span.ffz-handle:after,
.ember-chat-container.dark span.ffz-handle:after,
.ember-chat-container.force-dark span.ffz-handle:after,
body.ffz-bttv-dark .ffz-ui-popup span.ffz-handle:after {
border-color: #666;
}
.app-main.theatre .ffz-ui-popup.ui-moved span.ffz-handle:before,
.chat-container.dark .ffz-ui-popup.ui-moved span.ffz-handle:before,
.chat-container.force-dark .ffz-ui-popup.ui-moved span.ffz-handle:before,
.ember-chat-container.dark .ffz-ui-popup.ui-moved span.ffz-handle:before,
.ember-chat-container.force-dark .ffz-ui-popup.ui-moved span.ffz-handle:before,
body.ffz-bttv-dark .ffz-ui-popup.ui-moved span.ffz-handle:before,
.app-main.theatre .ffz-ui-popup.ui-moved span.ffz-handle:after,
.chat-container.dark .ffz-ui-popup.ui-moved span.ffz-handle:after,
.chat-container.force-dark .ffz-ui-popup.ui-moved span.ffz-handle:after,
.ember-chat-container.dark .ffz-ui-popup.ui-moved span.ffz-handle:after,
.ember-chat-container.force-dark .ffz-ui-popup.ui-moved span.ffz-handle:after,
body.ffz-bttv-dark .ffz-ui-popup.ui-moved span.ffz-handle:after {
border-color: #d3d3d3;
}
@ -986,53 +961,41 @@ body.ffz-bttv-dark .ffz-ui-popup ul.sub-menu a { border-right-color: rgba(255,25
.chat-container.dark .chat-interface .ffz-ui-popup ul.menu li.active,
.chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu li.active,
.ember-chat-container.dark .chat-interface .ffz-ui-popup ul.menu li.active,
.ember-chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu li.active,
.app-main.theatre .chat-container .chat-interface .ffz-ui-popup ul.menu li.active,
body.ffz-bttv-dark .ffz-ui-popup ul.menu li.active {
background-color: rgb(16,16,16);
}
.chat-container.dark .chat-interface .ffz-ui-popup ul.menu li.active a,
.chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu li.active a,
.ember-chat-container.dark .chat-interface .ffz-ui-popup ul.menu li.active a,
.ember-chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu li.active a,
.app-main.theatre .chat-container .chat-interface .ffz-ui-popup ul.menu li.active a,
body.ffz-bttv-dark .ffz-ui-popup ul.menu li.active a {
border-top-color: rgb(16,16,16);
}
.chat-container.dark .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu,
.chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu,
.ember-chat-container.dark .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu,
.ember-chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu,
.app-main.theatre .chat-container .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu,
body.ffz-bttv-dark .ffz-ui-popup ul.menu li.active.has-sub-menu {
background-color: #181818;
}
.chat-container.dark .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu a,
.chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu a,
.ember-chat-container.dark .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu a,
.ember-chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu a,
.app-main.theatre .chat-container .chat-interface .ffz-ui-popup ul.menu li.active.has-sub-menu a,
body.ffz-bttv-dark .ffz-ui-popup li.active.has-sub-menu a {
border-top-color: #181818;
}
.chat-container.dark .chat-interface .ffz-ui-popup a,
.chat-container.force-dark .chat-interface .ffz-ui-popup a,
.ember-chat-container.dark .chat-interface .ffz-ui-popup a,
.ember-chat-container.force-dark .chat-interface .ffz-ui-popup a,
.app-main.theatre .chat-container .chat-interface .ffz-ui-popup a,
body.ffz-bttv-dark .ffz-ui-popup .ffz-ui-menu-page a { color: #fff; }
.chat-container.dark .chat-interface .ffz-ui-popup ul.menu svg path,
.chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu svg path,
.ember-chat-container.dark .chat-interface .ffz-ui-popup ul.menu svg path,
.ember-chat-container.force-dark .chat-interface .ffz-ui-popup ul.menu svg path,
.app-main.theatre .chat-container .chat-interface .ffz-ui-popup ul.menu svg path,
.ffz-dark .ffz-ui-popup ul.menu svg path,
body.ffz-bttv-dark .ffz-ui-popup ul.menu svg path { fill: #d3d3d3; }
@ -1269,15 +1232,7 @@ body:not(.ffz-bttv) .dropmenu.share { margin-bottom: 0; }
.dark .chat-history::-webkit-scrollbar-thumb,
.dark .emoticon-selector-box .all-emotes::-webkit-scrollbar-thumb,
.dark .ffz-ui-menu-page::-webkit-scrollbar-thumb,
.dark .ffz-ui-sub-menu-page::-webkit-scrollbar-thumb,
.force-dark .chatters-container::-webkit-scrollbar-thumb,
.force-dark .ffz-scrollbar::-webkit-scrollbar-thumb,
.force-dark .ember-chat .chat-settings::-webkit-scrollbar-thumb,
.force-dark .chat-history::-webkit-scrollbar-thumb,
.force-dark .emoticon-selector-box .all-emotes::-webkit-scrollbar-thumb,
.force-dark .ffz-ui-menu-page::-webkit-scrollbar-thumb,
.force-dark .ffz-ui-sub-menu-page::-webkit-scrollbar-thumb {
.dark .ffz-ui-sub-menu-page::-webkit-scrollbar-thumb {
background: rgba(255,255,255,0.6);
box-shadow: 0 0 1px 1px rgba(0,0,0,0.25);
}
@ -1426,12 +1381,10 @@ body:not(.ffz-hide-friends) .ffz-moderation-card .follow-button {
.ffz-dark .moderation-card .moderation-card__actions,
.theatre .moderation-card .moderation-card__actions,
.dark .moderation-card .moderation-card__actions,
.force-dark .moderation-card .moderation-card__actions,
.ffz-dark .ffz-moderation-card ul.menu,
.theatre .ffz-moderation-card ul.menu,
.dark .ffz-moderation-card ul.menu,
.force-dark .ffz-moderation-card ul.menu {
.dark .ffz-moderation-card ul.menu {
border-bottom-color: rgba(255,255,255,0.2) !important;
}
@ -1454,15 +1407,13 @@ body:not(.ffz-hide-friends) .ffz-moderation-card .follow-button {
.ffz-dark .ffz-moderation-card ul.menu li,
.theatre .ffz-moderation-card ul.menu li,
.dark .ffz-moderation-card ul.menu li,
.force-dark .ffz-moderation-card ul.menu li {
.dark .ffz-moderation-card ul.menu li {
color: #999;
}
.ffz-dark .ffz-moderation-card ul.menu li:hover,
.theatre .ffz-moderation-card ul.menu li:hover,
.dark .ffz-moderation-card ul.menu li:hover,
.force-dark .ffz-moderation-card ul.menu li:hover {
.dark .ffz-moderation-card ul.menu li:hover {
color: #a68ed2;
border-bottom-color: #a68ed2;
}
@ -1477,26 +1428,22 @@ body:not(.ffz-hide-friends) .ffz-moderation-card .follow-button {
/* dark moderation card */
.dark .ffz-moderation-card,
.force-dark .ffz-moderation-card,
.theatre .ffz-moderation-card {
border-color: #1b1b20;
}
.dark .ffz-moderation-card:focus,
.force-dark .ffz-moderation-card:focus,
.theatre .ffz-moderation-card:focus {
border-color: #cbcbcb;
}
.dark .ffz-moderation-card .moderation-card__actions,
.force-dark .ffz-moderation-card .moderation-card__actions,
.theatre .ffz-moderation-card .moderation-card__actions {
background-color: #232329;
}
.ffz-no-blue .cn-hosting,
.ffz-no-blue .dark .ember-chat .moderation-card .moderation-card__actions,
.ffz-no-blue .force-dark .ember-chat .moderation-card .moderation-card__actions,
.ffz-no-blue .theatre .ember-chat .moderation-card .moderation-card__actions {
background-color: #232323;
}
@ -1543,11 +1490,11 @@ body:not(.ffz-hide-friends) .ffz-moderation-card .follow-button {
.ember-chat .chat-messages .chat-line {
margin: 0;
padding: 3px 20px;
position: relative;
}
.theatre .conversation-window .conversation-chat-line,
.dark .chat-line,
.force-dark .chat-line,
.theatre .chat-line {
color: #acacbf;
}
@ -1711,9 +1658,7 @@ body:not(.ffz-bttv) .chat-container:not(.chatReplay) .more-messages-indicator {
.ffz-bttv .no-bttv { display: none; }
.chat-container.dark, .app-main.theatre .chat-container,
.chat-container.force-dark, .ember-chat-container.dark,
.app-main.theatre .ember-chat-container.chat-container,
.ember-chat-container.force-dark {
.app-main.theatre .ember-chat-container.chat-container {
box-shadow: none;
}
@ -1735,9 +1680,7 @@ a.unsafe-link {
.theatre a.unsafe-link,
.chat-container.dark a.unsafe-link,
.chat-container.force-dark a.unsafe-link,
.ember-chat-container.dark a.unsafe-link,
.ember-chat-container.force-dark a.unsafe-link {
.ember-chat-container.dark a.unsafe-link {
color: #d28e8e !important;
}
@ -2121,8 +2064,7 @@ body.ffz-minimal-chat-input .ember-chat .chat-interface .textarea-contain textar
.ffz-dark .chat-history .chat-line.admin.original-msg .message,
.theatre .chat-history .chat-line.admin.original-msg .message,
.dark .chat-history .chat-line.admin.original-msg .message,
.force-dark .chat-history .chat-line.admin.original-msg .message { color: #fff }
.dark .chat-history .chat-line.admin.original-msg .message { color: #fff }
.chat-history.loading {
@ -2145,8 +2087,7 @@ body.ffz-minimal-chat-input .ember-chat .chat-interface .textarea-contain textar
}
.theatre .chat-history.loading:before,
.dark .chat-history.loading:before,
.force-dark .chat-history.loading:before {
.dark .chat-history.loading:before {
background-color: rgba(0,0,0,0.8);
}
@ -2219,8 +2160,7 @@ body.ffz-minimal-chat-input .ember-chat .chat-interface .textarea-contain textar
}
.theatre .moderation-card .back-button,
.dark .moderation-card .back-button,
.force-dark .moderation-card .back-button {
.dark .moderation-card .back-button {
background-color: #232329;
}
@ -2250,18 +2190,14 @@ body.ffz-minimal-chat-input .ember-chat .chat-interface .textarea-contain textar
.chat-container.dark .button.primary.ffz-waiting:not(:hover),
.app-main.theatre .button-primary.ffz-waiting:not(:hover),
.chat-container.force-dark .button-primary.ffz-waiting:not(:hover),
.ember-chat-container.dark .button-primary.ffz-waiting:not(:hover),
.ember-chat-container.force-dark .button-primary.ffz-waiting:not(:hover) {
.ember-chat-container.dark .button-primary.ffz-waiting:not(:hover) {
background-color: rgba(255,255,255,0.1);
color: #fff;
}
.chat-container.dark .button.primary.ffz-waiting.ffz-banned:not(:hover),
.app-main.theatre .button-primary.ffz-waiting.ffz-banned:not(:hover),
.chat-container.force-dark .button-primary.ffz-waiting.ffz-banned:not(:hover),
.ember-chat-container.dark .button-primary.ffz-waiting.ffz-banned:not(:hover),
.ember-chat-container.force-dark .button-primary.ffz-waiting.ffz-banned:not(:hover) {
.ember-chat-container.dark .button-primary.ffz-waiting.ffz-banned:not(:hover) {
background-color: rgba(255,128,128,0.1);
color: #f66;
}
@ -2423,63 +2359,41 @@ body:not([data-current-path^="user."]) .ffz-sidebar-swap .ember-chat .chat-inter
.ffz-no-blue .app-main.theatre .bits-card,
.ffz-no-blue .dark .bits-card,
.ffz-no-blue .force-dark .bits-card,
.ffz-no-blue .app-main.theatre .bits-card--standard,
.ffz-no-blue .dark .bits-card--standard,
.ffz-no-blue .force-dark .bits-card--standard,
.ffz-no-blue .warp,
.ffz-no-blue #large_nav .content,
.ffz-no-blue #small_nav .content,
.ffz-no-blue .chat-container.dark,
.ffz-no-blue .app-main.theatre .chat-container,
.ffz-no-blue .chat-container.force-dark,
.ffz-no-blue .ember-chat-container.dark,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container,
.ffz-no-blue .ember-chat-container.force-dark,
.ffz-no-blue .chat-container.dark .chat-hidden-overlay,
.ffz-no-blue .app-main.theatre .chat-container .chat-hidden-overlay,
.ffz-no-blue .chat-container.force-dark .chat-hidden-overlay,
.ffz-no-blue .ember-chat-container.dark .chat-hidden-overlay,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .chat-hidden-overlay,
.ffz-no-blue .ember-chat-container.force-dark .chat-hidden-overlay,
.ffz-no-blue .chat-container.dark .chatters-view,
.ffz-no-blue .app-main.theatre .chat-container .chatters-view,
.ffz-no-blue .chat-container.force-dark .chatters-view,
.ffz-no-blue .ember-chat-container.dark .chatters-view,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .chatters-view,
.ffz-no-blue .ember-chat-container.force-dark .chatters-view,
.ffz-no-blue .chat-container.dark .emoticon-selector .emoticon-selector-box,
.ffz-no-blue .app-main.theatre .chat-container .emoticon-selector .emoticon-selector-box,
.ffz-no-blue .chat-container.force-dark .emoticon-selector .emoticon-selector-box,
.ffz-no-blue .ember-chat-container.dark .emoticon-selector .emoticon-selector-box,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .emoticon-selector .emoticon-selector-box,
.ffz-no-blue .ember-chat-container.force-dark .emoticon-selector .emoticon-selector-box,
.ffz-no-blue .chat-container.dark .emoticon-selector .emoticon-grid,
.ffz-no-blue .app-main.theatre .chat-container .emoticon-selector .emoticon-grid,
.ffz-no-blue .chat-container.force-dark .emoticon-selector .emoticon-grid,
.ffz-no-blue .ember-chat-container.dark .emoticon-selector .emoticon-grid,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .emoticon-selector .emoticon-grid,
.ffz-no-blue .ember-chat-container.force-dark .emoticon-selector .emoticon-grid,
/*.ffz-no-blue .chat-container.dark .emoticon-selector .subscribe-message,
.ffz-no-blue .app-main.theatre .chat-container .emoticon-selector .subscribe-message,
.ffz-no-blue .chat-container.force-dark .emoticon-selector .subscribe-message,
.ffz-no-blue .ember-chat-container.dark .emoticon-selector .subscribe-message,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .emoticon-selector .subscribe-message,
.ffz-no-blue .ember-chat-container.force-dark .emoticon-selector .subscribe-message,*/
.ffz-no-blue .chat-container.dark .chat-commands-dropdown,
.ffz-no-blue .app-main.theatre .chat-container .chat-commands-dropdown,
.ffz-no-blue .chat-container.force-dark .chat-commands-dropdown,
.ffz-no-blue .ember-chat-container.dark .chat-commands-dropdown,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .chat-commands-dropdown,
.ffz-no-blue .ember-chat-container.force-dark .chat-commands-dropdown,
.ffz-no-blue .chat-container.dark .chat-commands-dropdown li,
.ffz-no-blue .app-main.theatre .chat-container .chat-commands-dropdown li,
.ffz-no-blue .chat-container.force-dark .chat-commands-dropdown li,
.ffz-no-blue .ember-chat-container.dark .chat-commands-dropdown li,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .chat-commands-dropdown li,
.ffz-no-blue .ember-chat-container.force-dark .chat-commands-dropdown li,
.ffz-no-blue.error_500,
.ffz-no-blue.error_400,
.ffz-no-blue .takeover #carousel,
@ -2493,7 +2407,6 @@ body:not([data-current-path^="user."]) .ffz-sidebar-swap .ember-chat .chat-inter
.ffz-no-blue .app-main.theatre .bits-footer,
.ffz-no-blue .dark .bits-footer,
.ffz-no-blue .force-dark .bits-footer,
.ffz-no-blue .theatre .conversation-input-bar textarea,
.ffz-no-blue .theatre input.text,
@ -2510,19 +2423,15 @@ body:not([data-current-path^="user."]) .ffz-sidebar-swap .ember-chat .chat-inter
.ffz-no-blue .dark .emoticon-selector .tabs,
.ffz-no-blue .theatre .emoticon-selector .tabs,
.ffz-no-blue .force-dark .emoticon-selector .tabs,
.ffz-no-blue .app-main.theatre .archives-contain .list-video:hover,
.ffz-no-blue.ffz-dark .archives-contain .list-video:hover,
.ffz-no-blue .theatre .moderation-card .back-button,
.ffz-no-blue .dark .moderation-card .back-button,
.ffz-no-blue .force-dark .moderation-card .back-button
.ffz-no-blue .chat-container.dark .chat-interface .emoticon-selector .tabs,
.ffz-no-blue .app-main.theatre .chat-container .chat-interface .emoticon-selector .tabs,
.ffz-no-blue .chat-container.force-dark .chat-interface .emoticon-selector .tabs,
.ffz-no-blue .ember-chat-container.dark .chat-interface .emoticon-selector .tabs,
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .chat-interface .emoticon-selector .tabs,
.ffz-no-blue .ember-chat-container.force-dark .chat-interface .emoticon-selector .tabs {
.ffz-no-blue .app-main.theatre .ember-chat-container.chat-container .chat-interface .emoticon-selector .tabs {
background-color: #232323;
}
@ -2864,15 +2773,13 @@ body:not(.ffz-bttv) .ember-chat .chat-commands-dropdown li + li {
body:not(.ffz-bttv) .app-main.theatre .chat-container .chat-commands-dropdown li,
body:not(.ffz-bttv) .dark .ember-chat .chat-commands-dropdown li,
body:not(.ffz-bttv) .force-dark .ember-chat .chat-commands-dropdown li,
body:not(.ffz-bttv) .ember-chat .chat-commands-dropdown li:hover {
background-color: rgba(0,0,0,0.25) !important;
color: #fff;
}
body:not(.ffz-bttv) .app-main.theatre .chat-container .chat-commands-dropdown li:hover,
body:not(.ffz-bttv) .dark .ember-chat .chat-commands-dropdown li:hover,
body:not(.ffz-bttv) .force-dark .ember-chat .chat-commands-dropdown li:hover {
body:not(.ffz-bttv) .dark .ember-chat .chat-commands-dropdown li:hover {
background-color: rgba(0,0,0,0.75) !important;
color: #fff !important;
}
@ -3112,8 +3019,7 @@ body:not(.ffz-creative-showcase) .ct-spotlight-container { display: none; }
.ffz-dark .ffz-suggestions,
.theatre .ffz-suggestions,
.dark .ffz-suggestions,
.force-dark .ffz-suggestions {
.dark .ffz-suggestions {
background-color: #101010 !important;
border-color: rgba(255,255,255,0.2) !important;
}
@ -3342,8 +3248,7 @@ body.ffz-bttv #ffz-feed-tabs .tabs { margin-bottom: 0 }
.ffz-dark .badge.staff.version-1.colored,
.theatre .badge.staff.version-1.colored,
.dark .badge.staff.version-1.colored,
.force-dark .badge.staff.version-1.colored {
.dark .badge.staff.version-1.colored {
background: linear-gradient(#6441a4,#6441a4);
}
@ -3451,8 +3356,7 @@ body.ffz-bttv #ffz-feed-tabs .tabs { margin-bottom: 0 }
}
.theatre .chat-room .show-mod-icons .chat-lines .chat-line:not(.admin) .mod-icons,
.dark .chat-room .show-mod-icons .chat-lines .chat-line:not(.admin) .mod-icons,
.force-dark .chat-room .show-mod-icons .chat-lines .chat-line:not(.admin) .mod-icons {
.dark .chat-room .show-mod-icons .chat-lines .chat-line:not(.admin) .mod-icons {
background-color: rgba(0,0,0,0.8);
}
@ -3481,23 +3385,19 @@ body.ffz-bttv #ffz-feed-tabs .tabs { margin-bottom: 0 }
}
.theatre .bits-purchase__header,
.dark .bits-purchase__header,
.force-dark .bits-purchase__header {
.dark .bits-purchase__header {
color: #acacbf;
}
.theatre .bits-card,
.app-main.theatre .chat-container .bits-card, /* Twitch's CSS is retarded */
.dark .bits-card,
.force-dark .bits-card,
.theatre .bits-purchase__row,
.dark .bits-purchase__row,
.force-dark .bits-purchase__row,
.theatre .bits-footer,
.dark .bits-footer,
.force-dark .bits-footer {
.dark .bits-footer {
border-color: rgba(255,255,255,0.2);
color: #ccc;
}
@ -3545,8 +3445,7 @@ body.ffz-bttv #ffz-feed-tabs .tabs { margin-bottom: 0 }
}
.theatre .chat-interface .chat-rules,
.chat-container.dark .chat-rules,
.chat-container.force-dark {
.chat-container.dark .chat-rules {
background: #101010;
color: #ccc;
border-color: rgba(255,255,255,0.2);
@ -3712,17 +3611,13 @@ body:not(.ffz-minimal-channel-bar):not(.ffz-channel-bar-bottom) #channel {
.theatre .chat-history .chat-line.notification .message,
.dark .chat-history .chat-line.notification .message,
.force-dark .chat-history .chat-line.notification .message,
.theatre .chat-history .chat-line.admin .message,
.dark .chat-history .chat-line.admin .message,
.force-dark .chat-history .chat-line.admin .message,
.theatre .chat-messages .chat-line.admin .message,
.dark .chat-messages .chat-line.admin .message,
.force-dark .chat-messages .chat-line.admin .message,
.theatre .chat-messages .chat-line.notification .message,
.dark .chat-messages .chat-line.notification .message,
.force-dark .chat-messages .chat-line.notification .message {
.dark .chat-messages .chat-line.notification .message {
color: #777
}