Tobago provide several layout options.
For many components, a label attribute is available, which place a label in front of the according component.
label
<?xml version="1.0" encoding="UTF-8"?> <!-- * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. --> <ui:composition template="/main.xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:tc="http://myfaces.apache.org/tobago/component" xmlns:ui="http://java.sun.com/jsf/facelets"> <ui:param name="title" value="#{demoBundle.layout}"/> <p>Tobago provide several layout options.</p> <tc:section label="#{demoBundle.flow_layout}"> <tc:flowLayout> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> </tc:flowLayout> </tc:section> <tc:section label="#{demoBundle.flex_layout}"> <tc:flexLayout columns="200px auto 1fr 3fr 1fr"> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> </tc:flexLayout> </tc:section> <tc:section label="#{demoBundle.segment_layout}"> <tc:segmentLayout medium="4seg 4seg 4seg"> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> <tc:button label="Button"/> </tc:segmentLayout> </tc:section> <tc:section label="#{demoBundle.labeled_layout}"> <p>For many components, a <code>label</code> attribute is available, which place a label in front of the according component.</p> <tc:in label="Input"/> </tc:section> </ui:composition>