This is cool. If you add automatic support for the ARIA-label property (just duplicate your text content in the ARIA-label), this could be an accessibility tool. Otherwise you're basically hiding potentially needed info, which might normally be in ToolTips, from users with disabilities.
For the curious, the way this works is ::before/::after selectors with content: attr() to bind the data attributes, which are position: absolute 'd within the parent, possibly transitioned.
Zero JS.
If you haven't played with CSS3 lately you might be surprised what it can do. I know I was a blown away when I discovered it could do data binding. Brings to mind a great I/O talk that introduced me to a lot of this stuff:
While I like the simplicity of this, I would recommend to keep accessibility in mind: information put into a data attribute will not be accessible to screenreaders, and they would miss any information stored via this method.
It may make sense to append the label information to whatever is being used for the image's ALT attribute.
Fun fact: Even if Mr. Emrani has put a copyright notice in the README.md, it doesn't apply in the United States! I wonder if the warranty notice is also also moot?
This rules, it is exactly what I have been dreading having to create for a project I am currently working on.
Not sure if you are the creator (edit: you probably are, I just saw your username here matches the twitter account in the comments) but the Usablica & Github links at the top link to #
See https://developer.mozilla.org/en-US/docs/Accessibility/ARIA/... for info and http://freedomscientific.com/products/fs/JAWS-product-page.a... for a demo of the most popular screen reader for blind users.
You might also want to think about tying your CSS colors to system colors, to support users who use High Contrast mode.