Chip represents entities using icons, labels and images.
<style>
.ui-chip.custom-chip {
background: var(--primary-color);
color: var(--primary-color-text);
}
</style>
<div class="card">
<h:form>
<p:growl id="messages" showDetail="true"/>
<h5>Basic</h5>
<div class="flex align-items-center flex-wrap">
<p:chip label="Action" styleClass="mr-2"/>
<p:chip label="Comedy" styleClass="mr-2"/>
<p:chip label="Mystery" styleClass="mr-2"/>
<p:chip label="Thriller" removable="true"/>
</div>
<h5>Icon</h5>
<div class="flex align-items-center flex-wrap">
<p:chip label="Apple" icon="pi pi-apple" styleClass="mr-2"/>
<p:chip label="Facebook" icon="pi pi-facebook" styleClass="mr-2"/>
<p:chip label="Google" icon="pi pi-google" styleClass="mr-2"/>
<p:chip label="Microsoft" icon="pi pi-microsoft" removable="true"/>
</div>
<h5>Image</h5>
<div class="flex align-items-center flex-wrap">
<p:chip label="Amy Elsner" image="../../resources/demo/images/avatar/amyelsner.png" styleClass="mr-2"/>
<p:chip label="Asiya Javayant" image="../../resources/demo/images/avatar/asiyajavayant.png"
styleClass="mr-2"/>
<p:chip label="Onyama Limba" image="../../resources/demo/images/avatar/onyamalimba.png"
styleClass="mr-2"/>
<p:chip label="Xuxue Feng" image="../../resources/demo/images/avatar/xuxuefeng.png"
removable="true"/>
</div>
<h5>Styling</h5>
<div class="flex align-items-center flex-wrap">
<p:chip label="Action" styleClass="mr-2 custom-chip"/>
<p:chip label="Apple" icon="pi pi-apple" styleClass="mr-2 custom-chip"/>
<p:chip label="Onyama Limba" image="../../resources/demo/images/avatar/onyamalimba.png"
styleClass="mr-2 custom-chip"/>
<p:chip label="Xuxue Feng" image="../../resources/demo/images/avatar/xuxuefeng.png"
styleClass="custom-chip" removable="true"/>
</div>
<h5>Event</h5>
<div class="flex align-items-center flex-wrap">
<p:chip label="Action" styleClass="mr-2">
<p:ajax listener="#{chipView.onSelect}" update="messages"/>
</p:chip>
<p:chip label="Apple" icon="pi pi-apple" styleClass="mr-2" removable="true">
<p:ajax listener="#{chipView.onSelect}" update="messages"/>
<p:ajax event="close" listener="#{chipView.onClose}" update="messages"/>
</p:chip>
<p:chip label="Onyama Limba" image="../../resources/demo/images/avatar/onyamalimba.png"
styleClass="mr-2" removable="true">
<p:ajax listener="#{chipView.onSelect}" update="messages"/>
<p:ajax event="close" listener="#{chipView.onClose}" update="messages"/>
</p:chip>
<p:chip label="Xuxue Feng" image="../../resources/demo/images/avatar/xuxuefeng.png"
removable="true">
<p:ajax listener="#{chipView.onSelect}" update="messages"/>
<p:ajax event="close" listener="#{chipView.onClose}" update="messages"/>
</p:chip>
</div>
</h:form>
</div>
package org.primefaces.showcase.view.misc;
import jakarta.enterprise.context.RequestScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.faces.event.AjaxBehaviorEvent;
import jakarta.inject.Named;
import io.quarkus.runtime.annotations.RegisterForReflection;
import org.primefaces.component.chip.Chip;
@Named
@RequestScoped
@RegisterForReflection(serialization = true)
public class ChipView {
public void onSelect(AjaxBehaviorEvent e) {
String label = ((Chip) e.getSource()).getLabel();
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Select Event", label + " selected.");
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void onClose() {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Close Event", "Chip closed.");
FacesContext.getCurrentInstance().addMessage(null, message);
}
}