# Specific UI Functions There are a few functions in CARTO.js for creating, enabling, and disabling pieces of the user interface. ## vis.addOverlay(tooltip) A tooltip is an infowindow that appears when you hover your mouse over a map feature with [`vis.addOverlay(options)`](http://docs.carto.com/carto-engine/carto-js/api-methods/#visaddoverlayoptions). A tooltip appears where the mouse cursor is located on the map. You can customize the position of how the tooltip appears by defining the position options. #### Example ```javascript var tooltip = vis.addOverlay({ type: 'tooltip', template: '
{{variable}}
' // mustache template width: 200, position: 'bottom|right', // top, bottom, left and right are available fields: [{ name: 'name', population: 'pop2005' }] }); ``` **Note:** If you are using `createLayer` for a map object that contains an enabled tooltip, you can disable the tooltip by applying the `false` value. See the [cartodb.createLayer(map, layerSource [, options] [, callback])](https://carto.com/docs/carto-engine/carto-js/api-methods/#cartodbcreatelayermap-layersource--options--callback) `tooltip` description for how to enable/disable an interactive tooltip. ## vis.addOverlay(infobox) Similar to a tooltip, an infobox displays a small box when you hover your mouse over a map feature. When viewing an infobox on a map, _the position of the infobox is fixed_, and always appears in the same position; depending on how you defined the position values for the infobox. #### Example ```javascript var infoBox = layer.leafletMap.viz.addOverlay({ type: 'infobox', template: '{{name_to_display}}
', width: 200, // width of the box position: 'bottom|right' // top, bottom, left and right are available }); ``` ## cartodb.vis.Vis.addInfowindow(_map, layer, fields [, options]_) Infowindows provide additional interactivity for your published map, controlled by layer events. It enables interaction and overrides the layer interactivity. A pop-up information window appears when a viewer clicks on a map feature. #### Arguments Option | Description --- | --- map | native map object or leaflet. layer | cartodb layer (or sublayer). fields | array of column names.