Vector layers
Style your points, lines and polygons by customizing style properties to create engaging Felt maps.
The style editor provides different options for styling points, lines, and polygons, allowing you to control color, size, opacity, and many other visual properties. You can create simple maps or data-driven visualizations that vary based on attributes.
The style editor
Once your data is uploaded to Felt you can style your layers with the style editor.

To open the style editor, click on the layer you want to customize from the legend
Choosing your map type
Depending on the geometry of your vector layer (point, line or polygon), you will have different visualization options. To select your visualization choose it from the Type dropdown in the General section of the style editor.

Simple
The default style when you upload a data layer — a single color for all features. Available for point, line and polygon layers.

Categories
A categorical visualization maps a distinct color for every unique value of your chosen data attribute. A common type of categorical visualization are landuse maps where each landuse type is set to a distinct color. Available for point, line and polygon layers.

Color range
A color range visualization maps numeric data values to a gradient of colors, making patterns immediately visible. Traditionally used for choropleth maps with polygons, Felt extends this to points and lines as well. Colors can be applied continuously in direct proportion to values or grouped into distinct classes using various classification methods.

Size range
A size range visualization scales points and lines based on numeric values, emphasizing differences in magnitude. Sizes can be applied continuously in direct proportion to values or grouped into distinct classes using various classification methods. Available for point and line layers.

Heatmap
A heatmap visualization uses color gradients to represent point density, highlighting areas of higher and lower concentration. Colors transition smoothly to reflect varying densities, with options to adjust intensity, radius, and color scheme. Available for point layers.

H3
A H3 visualization groups points into hexagons, displaying point counts or aggregated numeric attributes (sum, average, max, or min). Choose a fixed H3 resolution for a consistent view across zoom levels or allow the resolution to adjust dynamically. Use popups to reveal additional aggregated values on hover or click. Available for point layers.
Check out this video to learn more about H3 visualizations.

Icons
Customize your point data with a variety of icons to make your map more intuitive and visually appealing. Select from Felt's built-in icon library, emojis or upload custom icons by clicking the Icon dropdown in the Point section of the style editor. Available for point layers.

Custom icons
Upload your own icon sets to Felt to personalize your maps, highlight key features, or align them with your organization's branding. Icons are a powerful way to visually differentiate categories or other attributes within your point data, helping viewers quickly interpret the information. With Felt, you can organize your icons into Themes, making it easy to manage and apply them consistently across projects. Plus, shared access within your workspace ensures seamless collaboration and a unified look for your maps.
Uploading custom icons
Felt supports a wide variety of image formats, including .png, .jpg, .svg, and other common image file types. To add icons, click the Upload icons button from the Custom tab of a point layer’s Icon picker.

You can upload icons one at a time, or you can select many icons to upload at once by selecting them in the file picker.

Add icons to a single map, or make them available across all maps by adding them to your workspace. When you have many icons, you can assign icons themes to make browsing and searching more manageable.

Once icons have been uploaded, you can edit or delete them via the Edit icons button on the Custom tab of the Icon picker.

Fill patterns
Fill polygons with a repeating pattern instead of a solid color — hatching for disputed areas, dots for soil types, and other classic cartographic textures. Available for polygon layers using the Simple visualization type.
To apply a pattern:
Click Fill in the Polygon section of the style editor
In the Fill style section below the color picker, choose a style: Solid, Hatch, Reverse hatch, Cross-hatch, Horizontal lines, Vertical lines, or Dots
Adjust Spacing to control the gap between lines or dots, and Thickness to control their weight
Felt draws the pattern in the layer's fill color, and the basemap shows through between the strokes. The legend and the Fill chip both update to match the pattern on the map. Patterns also follow zoom-based fill colors, so a pattern can change color as viewers zoom in or out.
Labelling
Good labeling give maps meaning by improving clarity, directing attention, and maintaining visual balance. A well-labeled map helps users quickly find what they need without feeling cluttered or overwhelming.
To turn labels on for a layer, choose the attribute from the Label by dropdown

You can then fine-tune them in the following ways:
Size: choose between small, medium and large sizes.
Color: choose a color from the color picker or directly input an RGB, hex or HSL value.
Halo: choose a color and width for the halo surrounding the label text.
Style: many more options to customize your labels, including:
Weight: regular, medium, bold and italic weights, or a combination of these.
Case: convert labels to lower or uppercase.
Letter spacing: spacing between letters, in pixels.
Line spacing: spacing between lines, in pixels.
Max length: max character length for labels.
Placement: choose between automatic placement or prefer a certain direction (top, right, etc).
Offset: the offset between the feature and label, in pixels.
Padding: label padding is the amount of transparent pixels to add around your label items. Increasing this amount will result in fewer labels in the map.
Formatting labels
Labels use the column's formatting automatically. When a column is set to display as currency, a percentage, or a fixed number of decimals, its labels update to match, with no style override needed. A revenue column formatted as currency labels each feature $1,234,567 instead of 1234567.
To change how a label's values are formatted:
Open the table view and click the column name, then choose Format
Pick a Number, Percent, Distance, Area, or Custom format and adjust the decimals, units, or thousands separators
The label on the map updates to match, along with the same column in the table, popups, and components
To combine several attributes into one label, add literal text, or split a label across lines, use a text-field MapLibre style override.
Zoom-based styling
One of the more challenging aspects of digital cartography is ensuring your maps look good at all zoom levels. Felt gives you control over what your visualizations look like at each zoom by letting you not only control visibility of features and labels but also interpolate styling properties between zoom levels.
The legend will always sync to the style that matches the current zoom level of the map. This ensures a viewer always sees accurate symbology between the legend and map.
Setting Visibility
Adjust feature and label visibility by setting a visible zoom range for each using the Limit visibility option. This helps maintain visual hierarchy and readability, ensuring labels and features appear only at the zoom levels where they are most effective.

Interpolating style properties
Zoom-based styling in Felt allows you to adjust visual elements like line thickness, opacity, and color at different zoom levels, creating maps that reveal appropriate details as users zoom in or out. This technique enables features like roads to appear thinner at zoomed-out views and thicker when zoomed in, or polygons to gradually fade in as the user zooms closer to a specific area.


Check out this video to learn more about interpolating style properties.
Customizing your legend
Add a caption, retouch colors and display names in the Legend tab.
Style multiple layers at once
Select two or more layers to style them all at once from the Legend or List view. Use Shift+click to select a range or Cmd+click (Mac) / Ctrl+click (Windows) to add layers individually.
With multiple layers selected, the style panel opens with the same controls as the single-layer Style tab, and every edit you make applies to the whole selection. This is the fastest way to turn off popups or legends for a batch of layers, or to give them all the same color or label style.
Controls are grouped by geometry type, so a mixed selection of points, lines, and polygons shows a section for each (heatmaps get their own section too). The following apply across the whole selection:
Geometry styling — fill (including patterns), stroke, casing, size, opacity, icons, and position
Labels — all label controls
Legend visibility (show/hide)
Popup interaction
Visibility range
Mixed values
When the selected layers don't already share the same value for a control, that control reads Mixed instead of showing a value. Setting a new value from Mixed applies it to every layer in the selection. Each change you make — including one made from Mixed — is a single undo step across the whole selection.
Label by
The Label by dropdown lists only the columns every selected layer has, so any column you choose can be applied to all of them. If the layers currently label by different columns, it reads Mixed. If the layers share no columns at all, the dropdown has nothing to offer, but the label section stays open and the rest of the label styling remains editable across the selection.
What stays per layer
A few settings are still edited one layer at a time, even within a multi-layer selection: classification and categories, color-by, legend contents, per-band raster settings, and popup contents. These follow one representative layer from your selection.
Resetting layer styles
If at any point you want to go back to a layer's original style, click Actions > Reset styles from a layer’s overflow (···) menu.
Copy and paste layers
Copying and pasting layers between maps streamlines your workflow when working with multiple maps and ensures consistent visualization across your projects. This is particularly useful when you want to bring an already styled layer, multiple layers or a layer group onto another map or quickly use template layers across multiple maps. All styling, layer filters, components, popup and legend configurations are copied over.
Copy and paste a single layer
Click on the layer's ··· menu and choose the option to Copy (or use the keyboard shortcut Ctrl+C (Windows) or Cmd+C (Mac))

Navigate to the destination map and right-click anywhere on the map canvas and choose the option Paste here (or use the keyboard shortcut Ctrl+V (Windows) or
Cmd+V(Mac))

The copied layer will appear with all its original styling and configurations intact

Copy and paste multiple layers
Select multiple layers to copy and paste them to another map at once from the Legend or List view.
Use Shift+click to select a range of layers or Cmd+click (Mac) / Ctrl+click (Windows) to add layers individually, then right-click and choose Copy (or use the keyboard shortcut Ctrl+C (Windows) or Cmd+C (Mac))

Navigate to the destination map and right-click anywhere on the map canvas and choose the option to Paste here (or use the keyboard shortcut Ctrl+V (Windows) or
Cmd+V(Mac))

The copied layers will appear with their original styling and configurations intact

Duplicate layers
When working within the same map, you can use the Duplicate option to duplicate a single layer or multiple layers with all styling and configurations preserved.
Click on the layer's ··· menu and choose the option to Duplicate (or use the keyboard shortcut Ctrl+D (Windows) or
Cmd+D(Mac))

To duplicate multiple layers, select them in the List view or the Legend view using Shift+click or Cmd+click (Mac) / Ctrl+click (Windows), then right-click and select the option to Duplicate

The duplicated layers will appear with their original styling and configurations intact
Advanced styling
For more control fine-tuning your visualization or if you prefer writing style through code you can use the advanced style editor.
To open the advanced editor for any layer
Click on the layer's ··· menu and select Actions > Edit style language
Once opened, you’ll see the advanced editor open on the right-hand side of the screen. This panel contains the Felt Style Language (FSL) for the selected layer.
The Felt Style Language (FSL) is a JSON-based specification of Felt styles, and is the single source of truth for a layer’s style. You can check this yourself by making changes in the style editor while having the advanced style editor open:
Learn more about FSL in our Developer docs.
MapLibre style overrides
Use paintPropertyOverrides in the advanced style editor to access any of MapLibre’s paint or layout styling capabilities. This lets you apply advanced effects like icon rotation, drop shadows, and offset geometry, or build custom, data-driven visualizations such as bivariate maps and attribute-based styles. It’s especially useful when you need more control than Felt’s built-in style options.
To apply a MapLibre override
Open the advanced style editor
Inside the
paintblock, add apaintPropertyOverridesobjectInsert any supported MapLibre property
Tips & Best Practices
Property names must match MapLibre's documentation
Overrides take precedence over FSL’s auto-generated properties (for example, if you set the MapLibre
fill-colorproperty it will override the FSLcolorproperty)The legend will not reflect the MapLibre style overrides
Invalid or mismatched properties are silently ignored
Examples
Color based on a column/attribute
If your data includes a field with color values (like
#FF5733), you can use style overrides to color each feature based on its assigned color in the data. In the example below, you can see thatfill-coloroverrides the FSLcolorproperty.
Bivariate styling
A bivariate map visualizes two variables at once - often by combining color (for a categorical attribute) and size (for a numeric attribute). In the example below, each country point is colored by its continent using a categorical style set in the style editor and then sized by its population by adding the MapLibre
circle-radiusproperty in the advanced style editor
Concatenating labels
Style overrides work on labels too. In the label block's paintPropertyOverrides you can set any of MapLibre's text and symbol properties, for finer control than the built-in label options give you. The example below combines several attributes into one label, but the same approach applies to anything MapLibre exposes for label rendering.
A label set through the Label by dropdown already respects the column's formatting: set a column to currency, percent, or a fixed number of decimals and its labels match, with no override needed. To build a label from more than one attribute, override the text-field property.
Two expressions do most of the work here:
concatjoins pieces together: attributes, literal text like"$"or" feet", and line breaks. Use\nto start a new line.number-formatformats a number. Atext-fieldoverride builds the label from scratch, so a raw value like1234567comes through unformatted. Wrap it innumber-formatto get1,234,567.
String + numeric label with formatting
This example puts a product category on the first line and a formatted revenue value below it.

Concatenate multiple attributes
When you are only joining text, no number formatting is needed. concat alone builds a clean multi-line label. The example below concatenates address, city and state attributes.

Percentage
number-format has no percent mode, so multiply the value by 100 yourself and append "%". A rate of 0.873 becomes 87.3%. For a single-attribute label, the column's Percent format does this for you.

Styling vector tiles
Because the data are streaming into Felt from a remote server, you first need to read in attribute values before you can style layers.
Click the layer in the legend to open the style editor
In the detail panel, choose a visualization type
If it is a categorical visualization
Use the Color by dropdown and choose the attribute you want to style by
For the Showing dropdown click Add categories
In the Set Categories panel, click Add all to pull in the attribute values in your current view

If it is a numeric visualization
Use the Color by or Size by dropdown to choose the attribute you want to style by
Click Set steps next to the Steps dropdown
Click Set as range to use values from the current view or manually enter a custom min and max Range

Tips
Attribute values are loaded from the data currently visible in your map view. Zoom or pan to see more, then click Add all again to expand the category list or Set as range to update the min/max.
Because the data are streaming directly from a remote server, some classification methods, the data table, Components and Filters are unavailable.
Frequently asked questions
Last updated
Was this helpful?
