Flat Design Definition - user-interface

I mainly work on back-end but I have a good deal of interest in UI design too.
While going through Bootstrap 3 documentation and other tutorials, I got confused with the term "Flat Design".
What is it anyway? Can someone please explain with proper example?
Thanks in advance.

Flat design is a UI design type which uses minimalistic type elements but gives a three dimensional feel and uses flat colors.
what are flat colours?
Flat colours are colours without any shading or highlighting. Just the plain colours. You can find these in the windows start menu. All the backgrounds of each application are in a single colour, no shades, no highlights, just the plain colour.

I would describe "flat design" as 2D, as an opposite of 3D or "realistic design". (I'm not a designer, so I'm probably far from using the right terms)
This (graphics-heavy!) website shows the difference between them both in a funny way:
http://www.flatvsrealism.com/
Edit 2018
above link is no longer working, but you can find an impression here:
https://www.youtube.com/watch?v=AtLz5WTxO5w

Related

Eclipse GEF Shapes Look and Feel

I am creating a gef editor for bpmn2 notations. I am able to create figures in editors, but i am lacking in look and feel of the shapes but i tried applying patterns for draw2d figures but its not same as expected one. Please tell any samples or links for gef shapes with good look and feel.
GEF figures are draw2d figures and have no "look and feel" whatsoever. If you want the figures to look differently, you have to create them differently - setting borders, colors, linestyles, etc.

Image comparison (edges/shape only, no color) - How to distinguish cat from cat with prey

What is the easiest open source implementation of an image comparison algorithm that can produce a similarity score for a black white picture / edges ?
It doesn't need to generic, i could teach it with a couple of images.
Background:
I am working on a cat flap, that only opens when my cat approaches without prey.
I found similar but dead project: Flo Control
Thanks for help.
This field is known in the research literature as classification, and the algorithms as an "Image classifier". Googling for one of these phrases will give you lots of hits, and adding the words "open source" and your programming language will probably give you what you want.
WND-CHARM seems popular, but there are lots.
PS, if you are using Java, you might find the following question helpful. Image Classification Algorithms Using Java

How does Content-Aware fill work?

In the upcoming version of Photoshop there is a feature called Content-Aware fill.
This feature will fill a selection of an image based on the surrounding image - to the point it can generate bushes and clouds while being seamless with the surrounding image.
See http://www.youtube.com/watch?v=NH0aEp1oDOI for a preview of the Photoshop feature I'm talking about.
My question is:
How does this feature work algorithmically?
I am a co-author of the PatchMatch paper previously mentioned here, and I led the development of the original Content-Aware Fill feature in Photoshop, along with Ivan Cavero Belaunde and Eli Shechtman in the Creative Technologies Lab, and Jeff Chien on the Photoshop team.
Photoshop's Content-Aware Fill uses a highly optimized, multithreaded variation of the algorithm described in the PatchMatch paper, and an older method called "SpaceTime Video Completion." Both papers are cited on the following technology page for this feature:
http://www.adobe.com/technology/projects/content-aware-fill.html
You can find out more about us on the Adobe Research web pages.
I'm guessing that for the smaller holes they are grabbing similarly textured patches surrounding the area to fill it in. This is described in a paper entitled "PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing" by Connelly Barnes and others in SIGGRAPH 2009. For larger holes they can exploit a large database of pictures with similar global statistics or texture, as describe in "Scene Completion Using Millions of Photographs". If they somehow could fused the two together I think it should work like in the video.
There is very similar algorithm for GIMP for a quite long time. It is called resynthesizer and probably you should be able to find a source for it (maybe at the project site)
EDIT
There is also source available at the ubuntu repository
And here you can see processing the same images with GIMP: http://www.youtube.com/watch?v=0AoobQQBeVc&feature=related
Well, they are not going to tell for the obvious reasons. The general name for the technique is "inpainting", you can look this up.
Specifically, if you look at what Criminisi did while in Microsoft http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.67.9407 and what Todor Georgiev does now at Adobe http://www.tgeorgiev.net/Inpainting.html, you'll be able to make a very good guess. A 90% guess, I'd say, which should be good enough.
I work on a similar problem. From what i read they use "PatchMatch" or "non-parametric patch sampling" in general.
PatchMatch: A Randomized Correspondence Algorithm
for Structural Image Editing
As a guess (and that's all that it would be) I'd expect that it does some frequency analysis (some like a Fourier transform) of the image. By looking only at the image at the edge of the selection and ignoring the middle, it could then extrapolate back into the middle. If the designers choose the correct color plains and what not, they should be able to generate a texture that seamlessly blends into the image at the edges.
edit: looking at the last example in the video; if you look at the top of the original image on either edge you see that the selection line runs right down a "gap" in the clouds and that right in the middle there is a "bump". These are the kind of artifacts I'd expect to see if my guess is correct. (OTOH, I'd also expect to see them is it was using some kind of sudo-mirroring across the selection boundary.)
The general approach is either content-aware fill or seam-carving. Ariel Shamir's group is responsible for the seminal work here, which was presented in SIGGRAPH 2007. See:
http://www.faculty.idc.ac.il/arik/site/subject-seam-carve.asp
Edit: Please see answer from the co-author of Content-Aware fill. I will be deleting this soon.

Color Reference: Where do you get your ideas? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am the only dev in a very small IT shop and as such I have no one to turn to when it comes to the look of my applications. I am left to my own devices as to what looks good with what and what matches what.
This got me wondering, where do other programmers get their color ideas?
Am I the only programmer who likes all of his apps in grayscale?
What are some sites, books, apps, tips and tricks to giving your custom built application some vibrance and life that end users MIGHT actually appreciate?
I suggest Adobe's Kuler. You can bring in an image, like a logo, and have it suggest a set of 5 colors that work well together. Lots of different options. Also lets you save your palettes. You can then browse through other people's color combinations.
I too prefer my apps in greyscale, although a hint of colour doesn't hurt. For example, meta.stackoverflow.com looks kinda weird to me after spending a lot of time on stackoverflow. If you're looking for just colour ideas, I'd check out these sites for colour suggestions:
http://www.colourlovers.com/
http://kuler.adobe.com/
For typeography:
http://webtypography.net/
Maybe also pick up some good design books? (I like this one http://www.amazon.com/Designer-Grid-Lucienne-Roberts/dp/2880466784)
Contrast is one of those things that can make or break the design of a site. Some colors don't go well together. Red text on a green background, for example, may seem like it'd be a high contrast and easy to read combination, but it's not. And it's ugly. At the same time, you have to be careful with colors of the same hue as well. Light gray text is hard to read on a white background (that one is a little more obvious).
This page talks a little about contrast ratios and provides a good tool to check for it:
http://snook.ca/technical/colour_contrast/colour.html
They mention that you should shoot for a contrast ratio of 4.5:1 with small text. Any less than that and you risk the possibility of users having trouble reading your site.
There's another tip I can give. Whenever you're choosing 2 colors to go next to eachother, pick a boring color that lacks saturation (white, gray, black, or a really dull color) and then pair that up with a color packed with lots of saturation (blue, orange, red, green, etc). In general, this will look better than trying to put two exciting colors next to eachother in the same design (unless you're designing a comic book site).
And then this site has a cool gallery where you might find some inspiration and good color combinations:
http://www.cwd.dk/
But I'll tell you that my methods have changed drastically since I first started out. A little creativity is good, but I now place more importance on usability than anything. I try to keep every design I do simple and usable... kinda like Stackoverflow. I only mention that because my focus on usability tends to influence my design decisions.
A couple of my favorite sites on usability and optimization are
http://www.useit.com/ and
http://www.websiteoptimization.com/
If you are programming for some platform it is better to follow that particular platform's guidelines. (And not to alter system colors without a reason)
If you are programming for the web you might appreciate following a theme from some major web-application, such as gmail.
I have used this one in the past:
http://colorschemedesigner.com/
I would recommend turning on the tooltips (go to 'About & Help' > 'Show Tooltips') so you can see the descriptions of the different types of color schemes offered when you hover over them.
Personnally, I'm a big fan of UI Frameworks like DevExpress which implements skin technology. So, the user has the possibility to switch to his favorite look. For us, it is just five lines of code and our users are always satisfied to have this option. Vista, Office 2003, Office 2007 are just a small set of different options offered to our customers.
Give your users the most bizarre bling colour scheme
(like a combination of purple, green, glaring red, pink)
and you will be assured of a deluge of suggestions from your users.
Even though your colours are bizarre, you have to ensure that the pages are still technically usable but aesthetically unbearable. Ensure the words and widgets are visible so that lettering should use darker colours like crimson, blue or dark grey on light coloured backgrounds. Pastel the background so that they won't impede the user's sight.
If you wish to defend the reputation for your taste of colours, place a "Contact web master" link which leads to a disclaimer saying your colour scheme is deliberate because you are forcing users to design and submit and vote on a colour scheme. Why not write a cheap lil' web app to facilitate the voting too?
Ask your users. Just that. Just ask them, and take their advice. They're the ones who'll have to be staring at the color scheme for hours or days on end; take their advice.
Update: I'm not suggesting that you give your users the complete range of options; the way this usually works is with a small group of users, generate a few styles of the site that seem reasonable, and ask the small group to pick the one they like the best. That way, there's a coherent look to things, but you still get user input from your end users.
I take you have some users. I suggest asking them what they would like in colors.
Aside from that, to deliver data effectively you have to keep visual clutter to a minimum. Gray is a time-tested agent for helping with that.
I see from your comment that gray is despised. Well, you could spell it "grey" -- British-isms are are classic chic. Seriously, you need to go for three pastels in this situation.
I would say stick to what you're comfortable with and make them grayscale but just add hints and accents of colour.
Adobe Kuler is a good tool for which colours to use.
Stick with greyscale, and use colours only when they can have some meaning. E.g., use bright red for negative dollar amounts, blue for email addresses, bold black text on a yellow background for phone numbers, etc. This sort of thing really helps users find their way around your app, especially when there is alot of information.
Have a look at AVIVADirectory.com
"The Canonical List of Online Color Resources for Designers
(updated periodically with neat stuff)"
Just a massive list of links and resources about pretty colours.
And lets just agree to disagree on the 'u' in colour, ok ; )
Also, a +1 for colorschemedesigner.com mentioned earlier by John Rasch
I asked some friends on the Internet who pretty much represent the userbase for my apps. The general consensus is that certain shades of blue and cyan are nice. Not entirely unlike the default in MSN Messenger 8.5. I then used that to colorize what started as grayscale.
That's where I get my ideas.

Fighting programmer colors

I have a couple of pet projects where I'm the sole designer/programmer and I spend too much time changing the user interface to make it easier to use by real users and avoiding bright yellow and green that is so common on "programmer" designs.
Do you have tips to choose a color scheme when you do not have a graphics designer around? How do you avoid creating the typical "programmer" interface?
kuler has a lot of user submitted colour schemes
edit: just remembered... also try colorlovers
Let me tell you a story.
I have absolutely no confidence in my ability to make aesthetic choices - you only have to look at the way I dress to realize I'm justified in my lack of confidence. Anyway, years ago I was put in charge of writing the gui for a new product (the "Clip Editor" in Cineon, for anybody who knows that). I sketched out a design, but asked my boss, the head of sales and marketing, and various "application specialists" for help choosing the colours. Nobody responded, so I said "to hell with it", and chose a colour scheme so ugly I'm sure the beta testers would recoil in horror and demand a change. But they didn't - so it shipped with it. And I heard that customers loved the "bold colours". And not only that, but a few years later a competitor added a program that looked like a direct rip-off of my Clip Editor to their product, and they copied my colour scheme!
For desktop apps, get the colors from the OS. I, personally, want all of my apps to look and feel the same as my OS.
For web apps, I'm not really sure.
Keep in mind that nearly 10% of the male population of the world have some significant form of color blindness. You should always consider this when choosing interface colors (especially if you need capital - guess what? 1 in 10 male investors might not see your red dots on the green background chart showing risk vs return!).
MSDN has a reasonable overview of this, and there are several website filters that show you what your site (or any site) looks like given any form of colorblindness.
Aside from that, I really like COLOURLovers - not only do they have a great selection of user tagged and defined color schemes, they give them to you in a variety of ways, and you can sign in and track your favorites (or your favorite color scheme producers).
Go check out the fall themes! Can't go wrong with Michigan colors when the leaves change...
-Adam
Colour guides like Kuler are a great start if you have no idea about choosing colours.
Some basic considerations:
Use contrast not colour to differentiate in your design. This is to accommodate colour-blindness and poorly sighted users.
Use as limited a colour palette as you can. Pick one colour as your 'theme' and choose shades of that colour, and then maybe one or two contrasting colours to go with it.
Get advice - doesn't have to be from a designer, you might still know someone who has a good eye for these things. Also, more broad feedback - ask a few people for their opinion, that can help.
Lately I have been using the following website: http://www.nickherman.com/colormatch/
to help me (also a non-designer) pick matching color schemes. I usually find a color that is fairly pleasing, then use the matching colors from this website.
If all else fails, I also ask my wife!
I like using ColourSchemer and EasyRGB.
Some updated resources I use:
Colorotate.org is a nicely designed site with user-contributed palettes of various sizes (unlike kuler that provides only 5 colours per palette). It allows you to see how the combinations look to various type of color-impaired people.
colorschemedesigner.com generates consistent palettes for you using various algorithms (complement, triad, tetrad...)
Adobe's Kuler website has a lot of user-created color schemes uploaded by designers. I normally search for higher ranked schemes first.
There are a lot of "color theme pickers" on the web. If you use these, your colors will at least look like they belong together. The first one I looked at on google: http://www.yafla.com/dforbes/yaflaColor/ColorRGBHSL.aspx?
Aim for pastel colours that are slightly dimmer than their full-blown counterparts, i.e. a pastel red is dimmer than a (255,0,0) red for example. Try to select colours from the same palette, one cheaty way of determining colour schemes I use is to take a screenshot of an Office 2007 app, usually excel, and paste out some colours from their co-ordinated palettes using the colour dropper tool in an app like Paint.NET. In fact this cheaty approach to be extended to 'borrowing' colour schemes from applications that are already out there that have colours schemes you admire :-)
If you pick a "theme" color for your app, you can use Kuler to help flesh out the palette.
Related post:
Web 2.0 Color Combinations
I know I've seen more, but can't find them :)
I tend to use alot of grays, along with black and white, keep things simple and avoid any kind of annoying, bright colors. Seems to me like that's what the SO guys did.
Vitaly Friedman's Essential Bookmarks for web designers & web developers list a lot of online color tools, also a condensed version
There is also a list of color tools on twiki.org that has some additional sites.
I recommend you start by reading up on computational color theory. Wikipedia is actually a fine place to educate yourself on the subject. Try looking up a color by name on Wikipedia. You will find more than you expect. Branch out from there until you've got a synopsis of the field.
As you develop your analytic eye, focus on understanding your favorite (or most despised) interface colors and palettes in terms of their various representations in different colorspaces: RGB, HSB, HSL. Keep Photoshop/GIMP open so you can match the subjective experience of palettes to their quantifiable aspects. See how your colors render on lousy monitors. Notice what always remains readable, and which color combos tend to yield uncharismatic or illegible results. Pay attention to the emotional information conveyed by specific palettes. You will quickly see patterns emerge. For example, you will realize that high saturation colors are best avoided in UI components except for special purposes.
Eventually, you'll be able to analyze the output of the palette generators recommended here, and you'll develop your own theories about what makes a good match, and how much contrast is needed to play well on most displays.
(To avoid potential frustration, you might want to skip over to Pantone's free color perception test. It's best taken on a color calibrated display. If it says you have poor color perception, then numeric analysis is extra important for you.)
Why do programmers think they can't have dsign skills? It's a pet peeve of mine. It's a learnable skill, just like anything else.
http://www.hackification.com/2010/05/16/designing-a-vs2010-color-scheme-consistency-consistency-consistency/

Resources