Felt Style Language blocks

A Felt Markup Language definition includes a version identifier, a datasets block that contains an array of dataset definitions, and an array of visualization objects under the visualizations block, which define a set of visualizations to render from top to bottom.

The basic anatomy of a Felt Style definition is the following:

  "version": "1.2",
  "datasets": [ ... ],
  "visualizations": [ ... ]

Dataset Reference

A dataset block defines which data is shown in the popup and how it's shown. It contains the following properties:

Field name Description
id The dataset id. This will be prepopulated for you.
name Optional. Human readable text.
attributes Optional. An object that defines how data attributes will be shown. See the Attribute definition section below for more information.
keyAttributes Optional. A subset of attributes that will be shown when a user clicks on a feature. If empty, all attributes will be shown.
titleAttribute Optional. The attribute that will be used as the popup title.

Attribute definition

Each attribute is defined as follows:

Field name Description
displayName Optional. How this attribute will be shown in different parts of the Felt UI.
format Optional. A https://github.com/d3/d3-format#d3-format string that encodes how numeric fields should be shown.
  "id": "dataset-id",
  "name": "My dataset",
  "attributes": {
    "A": { "displayName": "First attribute", },
    "B": { "displayName": "Numeric attribute", "format": ".2f" },
    "C": { "displayName": "Text attribute" }
  "keyAttributes": ["A", "B"],
	"titleAttribute": "A"

Visualization Reference

The basic block of a visualization has the following shape

  type: string,
  dataset: ...
  config: ...
  filter: ...
  style: ...
  label: ...
  legend: ...

Where type is the type of visualization, dataset contains the set of dataset ids this viz will apply to, config defines the configuration associated with the given viz type (see config), filter is a description of data filtering to be done in datasets (see filtering), style, label define styling and labeling properties and legend (see legend) defines how this visualization should be shown in the legend panel.

We support two types of visualization: simple, which uses the defined style for all features in the defined datasets, and categorical, which maps style and label values to a set of features depending on the values of the attributes defined in the config block.


The config block is a block that contains configuration options for a given visualization.

The following properties are defined in this block: