[clause 1],而 + [clause 2]
[adjective] + 而 + [adjective]
而 joins two clauses and sets the second against the first, like "whereas" or "while". It stands at the start of the second clause, before its subject. It belongs to writing and careful speech.
但是 says the second half goes against what the first half led you to expect. 而 lays two facts side by side so you can compare them, with no surprise.
Between two adjectives that describe the same thing, 而 means "and" – or "yet", when they pull in different directions. This is written style.
而 does not join two nouns. For "A and B" with people or things, use 和.
A "but" that goes against expectation takes 可是 or 但是, and in conversation 而 sounds stiff anyway.
而 has more jobs in formal writing – linking a cause to its result (因为…而…) and a means to its purpose. Those come with the fuller point on 而.