Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Favicon alert bubbles (tommoor.github.com)
271 points by tommoor on Feb 7, 2012 | hide | past | favorite | 63 comments



Tinycon is a javascript library that allows easy manipulation of the favicon to include nice looking alert bubbles. This means that users can pin your site and still see when their attention is needed!

It's been done before, but in my opinion not in a way aesthetically pleasing enough for production use. This library also falls back to the standard number in page title approach for browsers that do no support canvas / dynamic favicons.

Thoughts welcome.


It's a neat project, but you should really use feature detection rather than UA string sniffing.

Both IE9 and Opera have canvas support, but they are not supported. I am pretty sure Opera has dynamic favicon support as well, not sure about IE.


Ok, i've updated this so the only UA sniffing is to discount Safari as it appears to have all the required support but doesn't allow dynamic favicons. I'm quite sure there isn't a way to feature detect this.

Opera now works a treat :)


Indeed it does, thanks!


The library does use feature detection to detect canvas support, browser sniffing is only to fix some small rendering differences between browsers.


Opera 11.61 masking as Firefox correctly shows the favicon notifications, however.


While I appreciate a good piece of code and the need to reinvent a wheel, I wouldn't call your implementation "aesthetically pleasing" either. IMO your fallback option is the solution, simply appending "(5)" to the page title when there are 5 pending alerts works the best.

[edit] And I am being downvoted because... ?


There are certain situations in which only the favicon is displayed - for example, when tabs are "pinned". In these cases, appending text to the page title would not be visible, which is why it's beneficial to have a dynamic favicon.


And my pinned tabs are wider than regular tabs. So favicon it is. Gmail has this function and it is great. Although I do agree that having both is probably the way to go. Change favicon (don't blink!) and prepend a number/message to the title.


Also, in many cases the title of a page is longer than the area it's supposed to fit in - in which case, appending the alert to the page title results in it not being visible.


Appending to the end of the page title doesn't work, because the end of the title gets chopped off when it doesn't fit in the tab title or window title.

Prepending to the start of the page title does work though.


This is one of the reasons I use Twitter web client - it sits in a tab (on the @mentions screen) and I only pay attention to it when I see a "(1)" or whatever. It's unobtrusive notifications.


Hey, the number in title approach definitely has its place! (There's a reason why Facebook, Google use that approach right?)

But if you have an audience skewed towards modern browsers and want to do something a little different this works well and definitely draws the eyes attention.


Changing the title bar is ineffective; you either make the title blink between two states which is a blaring annoyance and terribly distracting (GChat), or you just add a modest little (1) that is hard to see (Facebook). I think the favicon is much better suited for this function; it conforms to what people are used to with mobile phone UI.

However, the problem with this library is it has to follow the limitations of favicons' dimensions. I think there should be an open standard for having alert badges like iPhone and Android phones put on top of home screen icons. The browser distributer could design theirs to match the UI so people could recognize them, and they could be allowed to extend just 2 or 3 pixels past the normal favicon boundaries to grab attention without being annoying or invisible.

You can tell when people want something when they're settling for several make-shift approaches at it within limitations.


Chrome has a desktop notification system similar to Growl. Not sure if Firefox and others implement it. I much prefer it over the titlebar modification which I just find plain irritating.


I used to have that activated for GChat but got tired of it. I think it's more annoying than the title bar, but at least you can turn it off.

Alerts should be there when I want to look for them - they shouldn't pull me out of what I'm doing. If they have to pop up on the screen for me to notice them it probably means I'm paying attention to something else.


Great idea, something like this would be really nice to see integrated into the browser tabs themselves.


Because you are being arrogant.

(I don't have downvote powers)


What was arrogant about the comment? He merely stated that he doesn't find the solution to be aesthetically pleasing. Are opinions contrary to those of the majority now to be considered arrogant?


  While I appreciate a good piece of code and the need to reinvent a wheel
That reeked of sarcasm.


It wasn't supposed to. Reinventing a wheel is a good thing, that's what a majority of people on HN do on daily basis. This is what moves things forward.

"Reeked of sarcasm". Jeez.


Oh, ha! I completely missed the sarcasm in that. Yeah,I can see it as being uncivil.


Arrogance is more about tone than content.


> This library also falls back to the standard number in page title approach for browsers that do no support canvas / dynamic favicons.

I use Opera and it used fallback although favicon notification works for me in GMail or Meebo. You might check that out.


Yes, Opera 11.61 masking as Firefox correctly shows the favicon notifications.


I was just the other day thinking of whether something like this exists, and this library is very aesthetically pleasing indeed.


FYI: Typo @ ..."browers" that don't support canvas or dynamic favicons.


Cheers Mike! Changed.


Excellent stuff. I find the best javascript micro libs are built with one specific purpose in mind, like at work or on a startup, then extracted out and open-sourced :)

I'd suggest adding a config option for how to handle certain digits or multiples - personally I would prefer to have 1..20 and then 20+, 30+, etc. because they're easier to grok at a glance. I guess that could be wrapped into it pretty easily for any given use case though.


Cheers Joss! Agreed, that would be nice.. not sure what the best way to format that config would be though.


I did this years ago, its not great but may help as a starting point in thinking about it:

http://graphics8.nytimes.com/js/app/timeswire/app.js

Search for this method: updatePageTimestamp

It tries to find a managebale number of updates in a relevant and meaningful time frame "There have been 18 updates in the last 20 minutes" - it works on this page:

http://www.nytimes.com/timeswire/


Maybe something like:

[1,2,3,4,5,6,7,8,9,10,20,30,40,50,100]

If the actual number exists in the list, show the number explicitly; otherwise, find the next lowest number and add a +.


Just a bit of feedback about the landing page, there is a css issue i think.

http://i.imgur.com/yVXLg.png


Sorted, thanks :)


I see in the demo it stops at 99, does it not handle 3 digits very well? If it doesn't would it be good to make it do say 99+ like Gmail does?


It overlaps a little but it's still readable - I think the + approach would be good, i'll look at adding it soon :)


Awesome. Really dig this. It's simple and easy to implement. Good work.


I found the numbers too small to be readable. I'd expect that two states (notify on, notify off) would be enough to serve the same purpose for most users, perhaps with the number in the title too.


This is what makes checking Hacker News worthwhile every morning. Small things that make developer's lives easy.

Motivates me to stop being intimidated by the difficulty of implementation, and concentrate on the power of the idea.


Anyone else seeing this not work in firefox? In the javascript console i see several "Tinycon not defined" problems on firefox 10.


I'll download FF10 and check it out, feel free to submit an issue and i'll stomp it.


working fine here, Firefox 10.0.


This is very cool. Great job! I wonder how cpu intensive it'd be to generate a simple bounce animation.


For a canvas of that size I'm sure you could include any basic animation without a noticeable impact on most 2006+ processors.


Brilliant! One problem I've found is that it can't handle icons larger than 16x16 (it crops them).


Good find! I'll tackle it this evening, shouldn't be too difficult to fix, hopefully the loss of quality resizing should be unnoticeable.


Now fixed to support favicons of any size, cheers!


This should be turned into a chrome plugin. Similar to http://www.howtogeek.com/92562/add-an-easy-to-view-notificat...


I would argue that the favicon styling used in this Gmail Unread Message Count userscript is a bit nicer looking? http://userscripts.org/scripts/show/39432


This is awesome. I was hoping to get something like this for 'save to home screen'. Any idea if this will work with a large favicon running on a mobile device?


The only thing I hate about these kings of notifications is that they pollute the names of my pinboard bookmarks if I don't manually edit them.


Maybe a reset button somewhere on the page could solve this?



Yep! Its a good library although wrapped in ender and doesn't do as much.


This is cool, but why does it only work in some browsers?


JS for what is normally an image seems pretty far out there, wouldn't surprise me if not many browsers supported yet. And JS itself often needs to be tested and tweaked on many browsers before it works on all.

Personally, I would have just implemented in PHP. I already have a pretty trivial PHP script I use to overlay a site logo on images that are direct linked instead of accessed on one of my image serving sites. Although browsers might cache the favicon excessively even with the proper caching headers, would have to test. But as far as browsers would be concerned it would just be another image (even if it is generated dynamically by PHP and image magick the first time and only copied to output from a file cache after).


Well, this works in more browsers: http://www.p01.org/releases/DEFENDER_of_the_favicon/


It is tested in Chrome, Firefox and Opera. Should work in IE9 but not tested yet.

Which browsers do you want? :p


Opera. (c:

This morning I got the fallback display, but now it works fine. Thanks! I'll definitely use this on one of my projects.


What license is this being released under?


MIT


Cool, great job using a timer in the demo to show how it can behave dynamically.


This was the next item on my list to hack on this week. This is awesome, I'd love to see more apps use these, I love pinned tabs in Chrome but I lose info.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: