Description
The Icon module will add a central system for icons in Drupal, which will help improve the usability. In a way similar to themes or modules, it will allow users to install icon sets and choose which icons to use for their theme. By providing a simple API, developers may use icons in their modules in an easy and coherent way, without reinventing the wheel.
Icons will improve the usability of Drupal's admin pages, which are often overloaded with text and are especially unfriendly to new users. The module will allow administrators to install icon sets, and optionally select which icons to use from the installed sets. The main goal is for this module to be included in core, so I'll look at the implementations of themes and modules in core to build a system of that standard. With a framework like this, themers and developers would have a standard way of adding icons to Drupal..
Links
Project | Releases | Issue queue | CVS messages | CVS repository | Development plan | Discussion | Blog | Demo
Current status
Continue working to complete the original goals of the project (having been revised).
Project schedule
April 21:
Rejoice!Eat cake
April 22 - May 26:
Fax my Student Foreign Certification and Proof of Enrollment to GoogleCreate project on drupal.org(here)Create wiki page on groups.drupal.org(you're looking at it!)Create a blog(here)Create a discussion on the Icons for Drupal group to discuss the project with interested community members(here)See how other CMS projects have dealt with icons (methods used, CSS/inline, etc.)(here)See how the theme system deals with .info files and overridesDiscuss the project with mentors, as well as other community members on groups.drupal.orgRefine the development plan, adding any missed issues, considering other methods, etc.Work out an icon naming schemeand a basic set of icons that icon sets should provideLearn CVS thoroughly
May 26 - July 6:
- Begin coding
Allow for icon sets to be detected, installed and uninstalledAllow for theme/module icons to be detectedUse a fallback mechanism to automatically select most suitable iconsProvide theme functions for modules and themes to embed iconsBuild a system for generating dynamic icon CSS files
July 7:
- Submit mid-term evaluation
July 8 - August 18:
Collect icons for a default set that would be suitable for Drupal coreImplement icons in the Garland theme for demonstration
August 19:
- Write and submit final evaluation
September 3:
- Submit required code sample
Ongoing:
- Implement icons into other modules (Ubercart, User Badges, etc.) for demonstration
- Allow user to manually select icons for each installed theme
- Write simpletests
- Test thoroughly
- See how the module can be turned into a core patch
- Create core patch and submit proposal for Drupal core
- Write documentation and guidelines for icons/icon sets
Status updates
2008-06-06
- Have done:
- I was busy preparing for my last exam before the summer this week. Haven't been able to do much coding, but I tried out a couple of things, such as discovering icon sets in different locations, reading info files (easy) and rewriting CSS files (fun). I also discussed some aspects of the project with yoroy on IRC and created some issues in the issue queue, one of which quicksketch commented on.
- Plan to do:
- Really get started with coding. Have the module find all icon sets and present them to the user. I'm behind schedule, which I don't like, so I'll try to be as productive as I can.
- Blockage:
- None at the moment.
- Screenshot:

2008-06-12
- Have done:
- Finally made a commit of code. The module can now; discover icon sets in different locations, read their info files, display a list of available icon sets in admin/build/icons, save the states of icon sets in the system table - allowing users to enable/disable individual sets. It is very much based on the layout of admin/build/themes, and I think this is a good idea as it's a tested layout that users know well, and it suits our needs perfectly. More details here...
- Plan to do:
- Talk more with my mentors (which I regrettably didn't do this week). Work out a icon naming scheme and a basic set of icons that icon sets should provide (discuss this with some people). Let icon sets provide a mapping of names => files in their .info files. Start working on a override/fallback mechanism for icons when multiple sets are installed. Once that's done, allow users to manually select icons from available sets.
- Blockage:
- Old commitments eating my time :(
2008-06-19
- Have done:
- I worked out an icon naming scheme together with yoroy. I'd love to get more feedback on this, so if you're interested, check it out! Just barely started working on an override/fallback mechanism. I've also cleaned up the module and rewritten some functions, so the code looks (and feels) better, and added Javadoc documentation for most functions.
- Plan to do:
- Get some feedback from quicksketch on the code, continue working..
- Blockage:
- Not much.
2008-06-24
- Have done:
- Since last thursday, I've improved parts of the code, gotten icon_get_icons() to find and fetch icons available to a theme, save the result to {cache}, and added theme('icon') capability, resulting in the first dynamically produced icon. I've also made a nearly working UI for manually selecting icons from all icon sets available to a theme, and have gotten plenty of feedback on the code and suggestions from quicksketch.
- Plan to do:
- Keep working :) (that was an easy answer)
- Blockage:
- I'm having trouble loading the $icons global variable on page load. I need to know the name of the current theme in order to fetch the right icons. During hook_init(), this is not yet set. I could use hook_preprocess_page(), but then the $icons global won't be set for theme_icon(). I could use init_theme(); in hook_init() to initialize the theme, but that feels very bad. Any ideas..?
Icons on this page (except the cake, which I admit having stolen) are from the GPL licensed NuoveXT icon set by Alexandre Moore and won't necessarily be used in the module or any icon set. Though they might :)
Comments
LOL
I love the icons on your wiki page. Nice touch. ;)
I just had to!
Besides, doesn't the page look much better with icons? :)
Its great!
Really demonstrates the kind of benefits that stylish iconography can bring to a page. Really interested to see what comes of this project!
Good luck ximo
I'm especially interested in the planning phase, hope to see you kick off the discussion soon!
Will do on monday
Will do on monday. I've been busy with an old project for about a week, should be done with it by tomorrow!
Looking forward to hearing more of your thoughts on this module :)
I have a blog, and a discussion
My personal blog:
http://kreativmango.no/joakim/
Icon Module discussion:
http://groups.drupal.org/node/11248
I hope everybody interested in icons will jump in on the disussion!
Other example to look at of icon implementation
Love your project and the progress you've made thus far. I have a 5.x project that allows for the use of icon to content type association in case you wanted to see how others have handled icons in the past outside of the Iconizer-like projects: http://drupal.org/project/outline_designer
This doesn't allow for packs of icons to be submitted but it does let you select an icon to represent each content type in the interface (and uses Lulabots goofy icon pack for the defaults ;) ). It lets you upload icons to override current ones and it might be something interesting to look at just to get a different pov.
Great work on the module, keep it up!
"Plaguing the world with Drupal; One Plone, Moodle, Wordpress, Joomla user at a time since 2005." ~ btopro
http://elearning.psu.edu/
http://elearning.psu.edu/projects/
http://elearning.psu.edu/drupalineducation/
Ex Uno Plures
http://elmsln.org/
http://btopro.com/
http://drupal.psu.edu/
Thanks for the heads up
Thanks for the heads up and the encouragements :)
Will have a look at your module!
Great work
So I went to your demo page (and found out it had been there long before ;) ).
It is always good to see something instead of just guessing how it would look. Now it is up to icon designers to really get it going. Over-iconizing isn't cutting it (one Joomla-Interface in the world is enough ;) )
So very much looking forward what becomes of this.
Life is a process
Life is a journey, not a destination
Indeed
I agree that over-iconizing is a bad habit, and one I'm guilty of in the demo. It looks much better with icons in just the right places, and I'll do something about the demo when it comes to that.
For administration this is
For administration this is nice, but for the front end I would almost never suggest this. Most people should/would simply go ahead and use sprites, tons of little icons will slow a site down quite a lot.
Tj Holowaychuk
Vision Media - Victoria BC Web Design
Victoria British Columbia Web Design School
Tj Holowaychuk
Vision Media - Victoria BC Web Design
Victoria British Columbia Web Design School
By design
Indeed, this project explicitly focusses on administration, not front end.
I use icons for front end users all the time
Just as a minor one to unclutter the interface - commenting. I've replaced the Reply, Add comment, Edit comment, and created a delete comment icon (that show up based on correct permissions) that are just a little comment w/ a plus sign, comment w/ a pencil for edit, and comment with an X for delete. I think OVER use of comments is a bad thing but to replace things like the links it might not be such a bad idea. There are certain icons that people can recognize and understand to mean the same thing across all contexts.
Plus if you use alt / title tags on them to say things like "Comment on this Image" or "Delete your comment" it can help alleviate any potential confusion. I def. see a need for adding icons here and there to the UI though.
"Plaguing the world with Drupal; One Plone, Moodle, Wordpress, Joomla user at a time since 2005." ~ btopro
http://elearning.psu.edu/
http://elearning.psu.edu/projects/
http://elearning.psu.edu/drupalineducation/
Ex Uno Plures
http://elmsln.org/
http://btopro.com/
http://drupal.psu.edu/
Ximo, this looks -so- good.
Ximo, this looks -so- good. How about color.module icon(s)? :) Or maybe some generic icons for "New scheme" "Edit scheme" "Delete scheme" "Color Suggestions" "Color history" "Rebuild schemes". If you find anything that you think matches up that'd be wonderful.
Also, does icons support '#title' in form elements? I want to be able to get an icon in on the legends in fieldsets.