Относительно позиционирования CSS:
Мой опыт / знания в качестве бывшего разработчика ядра Vaadin, нынешнего дизайнера / разработчика приложений Vaadin заключается в том, что вам не следует касаться расположения компонентов с помощью CSS, если вы не используете CssLayout или CustomLayout.
Внутри этих макетов вы можете делать практически все, что позволяет CSS (обратите внимание, Vaadin добавляет некоторые встроенные размеры к содержащимся компонентам), но с остальными основными макетами я советую вам не пытаться делать какие-то причудливые трюки, если только вы хорошо знать внутреннюю работу системы макетов:)
Параметры основных макетов см. В дополнениях DashLayout и WeeLayout, которые предоставляют некоторую дополнительную свободу с точки зрения стиля CSS.
Но если вы говорите о позиционировании компонентов с использованием Java API, пожалуйста, поясните немного, на что вы тратите много времени.