From ef641a62fc925773c84656b0266f954a8767bd07 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Tue, 6 Jan 2015 11:15:39 +0100 Subject: [PATCH] Themes can define a specific lightness of nick colours --- client/assets/themes/cli/theme.json | 2 +- client/src/views/channel.js | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/client/assets/themes/cli/theme.json b/client/assets/themes/cli/theme.json index a05c682..387d376 100644 --- a/client/assets/themes/cli/theme.json +++ b/client/assets/themes/cli/theme.json @@ -1,5 +1,5 @@ { "name": "CLI", "thumbnail_colour": "#222", - "dark": true + "nick_lightness": 60 } diff --git a/client/src/views/channel.js b/client/src/views/channel.js index 6d521d3..8a55732 100644 --- a/client/src/views/channel.js +++ b/client/src/views/channel.js @@ -244,16 +244,22 @@ _kiwi.view.Channel = _kiwi.view.Panel.extend({ // Sgnerate a css style for a nick getNickStyles: function(nick) { - var ret, colour, nick_int = 0, rgb, isDark; + var ret, colour, nick_int = 0, rgb, nick_lightness; // Get a colour from a nick (Method based on IRSSIs nickcolor.pl) _.map(nick.split(''), function (i) { nick_int += i.charCodeAt(0); }); - isDark = (_.find(_kiwi.app.themes, function (theme) { + nick_lightness = (_.find(_kiwi.app.themes, function (theme) { return theme.name.toLowerCase() === _kiwi.global.settings.get('theme').toLowerCase(); - }) || {}).dark; + }) || {}).nick_lightness; - rgb = hsl2rgb(nick_int % 255, 70, isDark ? 60 : 35); + if (typeof nick_lightness !== 'number') { + nick_lightness = 35; + } else { + nick_lightness = Math.max(0, Math.min(100, nick_lightness)); + } + + rgb = hsl2rgb(nick_int % 255, 70, nick_lightness); rgb = rgb[2] | (rgb[1] << 8) | (rgb[0] << 16); colour = '#' + rgb.toString(16); -- 2.25.1