Also, You can now use GWT Designer, an Eclipse plugin that lets you build UIs graphically.
On the other hand, if you are a familiar with html and css layouts, this all might seem like a big mess, and too much work to do something simple. And you will not like the generated code (many many tables, often).
That's why they created GWT's UIBinder. You can use a html-like code to design the UI. This is much easier than making all the panel.add(widget) stuff in code. And it is a nice compromise, because your front-end designers will understand it. The big downfall is that it needs to be compiled to view the results, and believe me, this can be a cumbersome task.
I have been using it in the scenario where we get all the html and css from the designer, along with the jquery to add some effects. It wasn't easy porting the whole (working!) design to something usable by GWT. But, in the end we got the GWT to generate exactly the same markup.
All in all, there's no such thing as a free lunch.
You don't have to, and you're not necessarily even supposed to. You work with DOM elements and CSS styles just as you would anyway. Every Widget in GWT inherits from the UIObject class. Each instance corresponds to exactly one tag in your DOM, and has methods for getting/setting styles. Your java code would just handle putting the element where you want it in the DOM, and setting the style(s). The layout is in your CSS, just as usual.