creating a database scheme for storing information about an item, which option is better?
With the first version the schema design itself forbids having invalid type-color pairs, so I would choose that one.  With the second version you will need an extra mechanism (a trigger for example) to maintain valid state of the items.

From a querying point of view, it means one more JOIN on quite simple tables, I would not expect that causing performance or maintainability problems.

EDIT

Well, I finally realized what could Emmad mean on 'The first answer is not OK, because type information appears in 2 tables' - I silently considered type_name in your line


  types and colors (ID(PK), type_name (FK), color(FK))


a typo, and a foreign key on types.ID instead of name.  With this modification my suggestion is quite the same as Emmad's second diagram.