Latest Tweet:
  • Loading...

Adobe Kuler is a great example of a Rich Internet Application that provide great value directly in the browser. Kuler is a tool that helps you create color themes by applying different rules to find matching colors. You start by selecting a base color, and Kuler will help you find four matching colors. You can even use Flickr photos as a basis for your color theme. Adobe Kuler has a social aspect to it as well. You can create an account and save your colors online and share them with the community. People can rate and commend on your themes, or create new color themes based on an excising one. Kuler is being a good Web 2.0 citizen and offers a REST-full API that lets you build your own applications using the colors of the community.

Screenshot of Adobe Kuler

Whenever I find a service I like with an open API I just can’t leave it alone. So today I’m announcing the Colorful Expression add-In.

Colorful Expression is an add-in for Expression Blend and Expression Design that brings you the Adobe Kuler community directly into your toolbox. It adds a new palette to your design environment, making it easy to leverage the community to find the perfect color theme for your application or design. The add-in also available as a standalone application, making it useful for web developers working in Visual Studio or Expression Web to select colors for your CSS style sheets.

Expression Design

Last week Jose Fajardo blogged and complained that Expression Design doesn’t get enough love. I totally agree, and am going to give it some love by making it more colorful.

Expression Design AddIn 

The key feature of the add-in is to select colors. The eyedropper tool in Design lets you click anywhere on the screen to select a color. Simply click the eyedropper in your color panel, and click on one of the colors in the Colorful Expression panel.

You can also copy colors to the clipboard by clicking the copy-button. When you paste the color theme onto the design surface you’ll get five rectangles and the name of the color. This lets you collect interesting themes directly in your design file by copying them onto the document.

Expression Blend supports exporting and importing color swatch libraries through a simple XML file format. Colorful Expression allows you to save a theme as a swatch library you can import into Design. The screenshot shows the “Buddah in Rain” theme imported to the swatch library.

Expression Design AddIn Screenshot

Expression Blend

The add-in works almost the same way in Blend as in Design but with some minor differences. In Blend you can use the Ctrl+C key combination to invoke the copy command, making it a lot easier to copy/paste themes onto the design surface. When you paste a theme onto the surface you will get a grid containing five rectangles and a text block. The rectangles are painted with a solid color brush resource, and each of the colors gets added to the resource collection of the page. If you go into XAML-view and paste the theme you will get five solid color brush resource elements you can add to any resource collection. The Blend add-in also supports drag and drop, letting you drag color themes onto the design surface.

Blend add-in screenshot

Standalone application

The standalone application gives you most of the same features as the Blend and Design add-in. You can copy or drag themes into Blend, and you can save Design swatch libraries. The stand alone application is useful if you don’t want to run the add-in all the time or if you don’t use Expression Studio. You can also hold down control and click a single color to copy it to the clipboard as a RGB HEX color. That way you can use the standalone application as a color picker for any application using HEX colors, such as CSS style sheets.

Standalone application screenshot

Ideas for next version

I want to keep the add-in simple and focused, but I do have some ideas for new features. The first thing I’m planning to implement is a color provider for the COLORLovers site. I also want deeper integration with Blend and Design, especially around managing resources in Blend.

It would also be nice to support Expression Web and Visual Studio 2008 so that web developers can use it to get CSS colors for their web projects.

Another feature missing is support for the light Expression Studio color theme. The current look and feel is based on Hadi Eskandari’s Expression Clone theme and only supports the dark theme. It should be fairly simple to create a new theme matching the light colors.

You can suggest new features in the discussion board or report bugs in the issue tracker.

Download and installation

The project is released on http://www.codeplex.com/colorful, and the initial release contains the compiled version of the add-in for Design 2.0, Blend 2.0, Blend 2.5 June CTP, Blend 2.0 SP1 Preview and as a standalone WPF application. To install the add-in simply copy the files into your Blend or Design director, and launch the EXE file with an extra parameter.

I.e: “Blend.exe –addin:Colorful.Blend.AddIn.dll” or “Design.exe –addin:Colorful.Design.AddIn.dll”.

You can also right click your application shortcut and select properties to change the target of the shortcut. Add the above parameters to the target to launch Blend or Design with the add-in every time you click the shortcut.

ShortcutProperties

Getting involved

If you would like to get involved in the project drop me an e-mail at jonas@follesoe.no. You can also suggest features or report bugs in the discussion forum and the issue tracker.

To build the project you need to have Expression Blend or/and Expression Design installed. The add-in has a dependency on Microsoft.Expression.Framework.dll, which in turn has a dependency on Microsoft.Expression.Diagnostics.dll, Microsoft.Expression.Interop.dll and Microsoft.Expression.Licensing.dll. For licensing reasons these assemblies are not checked into the source control three.

If you want to run the add-in from Visual Studio I recommend running Visual Studio 2008 as administrator and then change the output directory of your debug build to the installation folder of Blend/Design. Then change the startup application to the Blend.exe/Design.exe with the correct startup arguments. That way you can hit F5 inside Visual Studio to launch Blend/Design in debug mode. You can set breakpoints in your code and test/debug the add-in this way.

Happy coloring!

Monday, September 29, 2008 7:19:11 PM (W. Europe Daylight Time, UTC+02:00)
Thanks Jonas for this good job ! It's really a cool and useful addin for Blend and Design.
I've just added a post in my blog to tell how much this addin is a must have..
Thanks also for publishing this project on CodePlex. Hopping this will incite people creating other addins for Blend and Design, two fantastic tools not as famous as they worth.
Tuesday, September 30, 2008 4:56:25 AM (W. Europe Daylight Time, UTC+02:00)
Hi Oliver,

Thanks for the great feedback! I saw you post, and the Google translator did a decent job of translating it into English. Got most of it ;)

I too hope this add-in can provide a basis for developers who want to extend Design and Tool. Hopefully Microsoft will release some documentation of the add-in API soon, as most of the work now is based around trail and error, and digging around the API using Reflector.

I plan to wrote some blog-posts showing how to do basic add-ins to Blend/Design.

PS: There is currently a bug in the Adobe Kuler API (getting a server error) when calling their API with an API-key specified. I've updated the code to first try using the key, then just skip the key (you can access the service without a key as well). The 1.0.1 release on Codeplex got this fix.

Cheers,
Jonas
Thursday, October 16, 2008 3:02:43 PM (W. Europe Daylight Time, UTC+02:00)
Thanks for so quickly updating this useful utility to RTW. I have a curious question - what technique did you use for providing the Expression look-and-feel for the standalone app? Are there Blend styles somewhere I haven't discovered?

cheers, and hoping life is good both above and below the surface
Rob
Friday, October 17, 2008 5:53:15 AM (W. Europe Daylight Time, UTC+02:00)
Hi Rob,

I'm using an "Expression Clone" theme from Hadi Eskandari:
http://blog.hightech.ir/2008/04/expression-clone.html

I haven't found an official resource file from Microsoft with the Expression Look and feel, but you might be able to extract something from Expression Studio using a tool like Reflector.

I currently only support the Dark Theme, so if you change to Light Theme in Expression Studio the Add-In will look a little bit off.. But they do expose events when the theme changes so that I could easily load a lighter look and feel. It's on the feature list for the add-in.

The add-in API is not documented or supported in anyway, so currently there is no recommended way of making sure the add-in has the right look&feel, but using this theme worked out all right :)

---

Life down under is great - had a fantastic week of diving in July. Got do to a shark feed at osphrey reef, and swim with 7-8 Minkie Whales at the GBR. Amazing stuff - photos on Heges Flickr.

What about you? All good? Going to the PDC

Cheers,
Jonas
Wednesday, November 26, 2008 8:53:44 AM (W. Europe Standard Time, UTC+01:00)
I am just trying to figure out how I can reference or get to a reference to the main artboard of expression design/ Xaml or whatever is being stored behind the scenes. XAML would be the obvious format I am looking to get at. I would like to loop through my selected items and output some html in the desired format. I used your addin as a reference to build a simple addin. I have no problem hooking up the execution code but my wpf skills are limited so far and I don't understand exactly how the canvas relates to the executing code thus far. Any tips would be greatly appreciated.

Friday, November 28, 2008 3:32:51 AM (W. Europe Standard Time, UTC+01:00)
Hi Jamie,

The Expression Studio AddIn API is unsupported and undocumented... So we're stumbling in the blind in many ways. I assume what you want to do is do some processing on what ever is available on the art board.

I actually don't think the internal representation of Design is XAML. I think it is using some other format internally to represent the data, but it allows you to export/copy it to multiple formats, like XAML or Adobe Illustrator.

I don't know how to get access to the "inner workings" of Blend or Design. I worked my way around it using drag-and-drop and the clipboard. So I'm actually not interacting with the design surface when dragging stuff onto it, I'm simply putting Adobe Illustrator formatted data on the clipboard. This is a format Design knows how to paste - or handle in a cross application drag-drop operation...

Could you explain more about your scenario? If you want to build a custom XAML to HTML exporter there might be ways to change the workflow a little, and have the user select everything, copy it as XAML and then you can just deal with the XAML using plain XML parsing... I know this wouldn't be an ideal work flow, but as I said this is an unofficial API so it's hard to work things out...

Another tips would be to use Reflector to decompile the code and try to work it out like that.
Monday, January 05, 2009 5:31:05 AM (W. Europe Standard Time, UTC+01:00)
Hey Jonas, another great tool you've shown us how to create.

I am wondering now if I can make a quick add-in to do batch file conversions. The UI is simple, directory dialog and input file type wildcard, then just load and export to XAML. Something lots of people are begging for to convert .AI files :-) I looked briefly but I don't see how to hook into the right places for import/export in the Designer.Framework.dll any tips would be appreciated.
Steele Price
Tuesday, January 06, 2009 12:52:16 PM (W. Europe Standard Time, UTC+01:00)
Hi Steele,

I'm not 100% what kind of hooks you would need to make something like that happen... Designer can import and export AI files, right? You just want to batch automate this? Also, what should be the output of the process? XAML files opened in the design surface? Or simply stored to the same output folder?

My best suggestion is to use reflection and try to figure out what code gets executed when you export to AI. Remember, you can reference more DLL's than just the Designer.Framework.dll. So the AI file support is probably not part of the Framework, but some other assembly. Once you've worked out which assembly is needed, you can probably either just reference it, or use some kind of reflection if the class is marked as internal...

Good luck!

Monday, February 23, 2009 1:10:36 PM (W. Europe Standard Time, UTC+01:00)
Hi Jonas, just a quick note that the command line instructions for the addin are slightly incorrect, the -addin:Colorful... should be /addin:Colorful. I've noted this to the codeplex page as well. As a Designer/Developer I have to push that we treat our Designers with some kid gloves when it comes to command lines, especially when the instructions are wrong on all the sites referring to the add in.

Thanks!
Wednesday, February 25, 2009 2:42:26 PM (W. Europe Standard Time, UTC+01:00)
clipkilla: Thanks for clarifying! What a bummer :P Thanks for commenting on Codeplex. Will have it fixed for the 1.5 release. And yeah - I agree that wee need to handle designers gently in a XAML world, and not scare them away by messing around in the command line ;)
Thursday, July 16, 2009 2:05:28 AM (W. Europe Daylight Time, UTC+02:00)
How are you. How are you feeling. Help me! Looking for sites on: Mudd brand shoes floppy. I found only this - <a href="http://www.primariadichiseni.ro/Members/Shoes">mudd Shoes gretchen</a>. Wholesale skechers shoes mobile red shoes wing cat mudd shoes top woman wearing sexy shoes. Craigslist clothing accessories classifieds for wichita mudd shoes wichita pic. With respect :eek:, Lotus from Zambia.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title, strike) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910