import Font from "@arcgis/core/symbols/Font.js";const Font = await $arcgis.import("@arcgis/core/symbols/Font.js");- Inheritance:
- Font→
Accessor
- Since
- ArcGIS Maps SDK for JavaScript 4.0
The font used to display 2D text symbols and 3D text symbols. This class allows the developer to set the font's family, decoration, size, style, and weight properties. Take note of the "Known Limitations" for each property to understand how they differ depending on the layer type, and if you working with a MapView or SceneView.
Example
let textSymbol = { type: "text", // autocasts as new TextSymbol() color: "white", haloColor: "black", haloSize: "1px", text: "You are here", xoffset: 3, yoffset: 3, font: { // autocasts as new Font() size: 12, family: "Josefin Slab", weight: "bold" }};Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
declaredClass readonly inherited | ||
| | ||
| | ||
| | ||
| | ||
| |
family
- Type
- string
The font family of the text. The possible values are dependent upon the
layer type, and if you are working with a MapView
or a SceneView. See the Labeling guide page
for detailed explanation, or click the Read more below.
Read More
Font families for 3D SceneViews
The supported font families for 3D SceneViews are dependent upon the
fonts installed on the user's computer and web browser. If an app uses a font that is not installed, the
Font class implements a fallback mechanism that will use the default font family value, which is sans-serif.
See these references for instructions on how to install a new font on Windows
or macOS.
Fonts that are not installed locally can also be loaded from a url by defining a @font-face
in a css file and referencing it from the family property in a symbol layer.
Font families for 2D MapImageLayer
The supported font families for MapImageLayers
in a MapView are dependent upon the fonts installed on the
ArcGIS Server
that published the layer. If an app uses a font that is not installed, the Font class implements a fallback
mechanism that will use the default font family value, which is sans-serif.
Font families for 2D FeatureLayer, CSVLayer, StreamLayer, and TextSymbol
The supported font families are based on hosted fonts files in .pbf format.
By default, the fonts available are mostly the same ones used by the Esri Vector Basemaps.
These fonts are available via https://static.arcgis.com/fonts. The URL can be configured to point to your own font resources
by setting the esriConfig.fontsUrl property. If an app uses a font that is not installed,
the Font class implements a fallback mechanism that will use the default font family value, which is sans-serif.
This uses the Arial Unicode MS font file.
A preview of the fonts listed in the following table are available in the Labeling overview page.
List of fonts currently supported in a 2D MapView:
| Font | Style | Weight | Code Snippet |
|---|---|---|---|
| Abril Fatface Regular | normal | normal | font: { family: 'Abril Fatface', style: 'normal', weight: 'normal' } |
| Alegreya Bold | normal | bold | font: { family: 'Alegreya', style: 'normal', weight: 'bold' } |
| Alegreya Bold Italic | italic | bold | font: { family: 'Alegreya', style: 'italic', weight: 'bold' } |
| Alegreya Italic | italic | normal | font: { family: 'Alegreya', style: 'italic', weight: 'normal' } |
| Alegreya Regular | normal | normal | font: { family: 'Alegreya', style: 'normal', weight: 'normal' } |
| Alegreya SC Bold | normal | bold | font: { family: 'Alegreya SC', style: 'normal', weight: 'bold' } |
| Alegreya SC Italic | italic | normal | font: { family: 'Alegreya SC', style: 'italic', weight: 'normal' } |
| Alegreya SC Regular | normal | normal | font: { family: 'Alegreya SC', style: 'normal', weight: 'normal' } |
| Alegreya Sans Italic | italic | normal | font: { family: 'Alegreya Sans', style: 'italic', weight: 'normal' } |
| Amarante Regular | normal | normal | font: { family: 'Amarante', style: 'normal', weight: 'normal' } |
| Amatic SC Bold | normal | bold | font: { family: 'Amatic SC', style: 'normal', weight: 'bold' } |
| Arial Bold | normal | bold | font: { family: 'Arial', style: 'normal', weight: 'bold' } |
| Arial Bold Italic | italic | bold | font: { family: 'Arial', style: 'italic', weight: 'bold' } |
| Arial Italic | italic | normal | font: { family: 'Arial', style: 'italic', weight: 'normal' } |
| Arial Regular | normal | normal | font: { family: 'Arial', style: 'normal', weight: 'normal' } |
| Arial Unicode MS Bold | normal | bold | font: { family: 'Arial Unicode MS', style: 'normal', weight: 'bold' } |
| Arial Unicode MS Regular | normal | normal | font: { family: 'Arial Unicode MS', style: 'normal', weight: 'normal' } |
| Atomic Age Regular | normal | normal | font: { family: 'Atomic Age', style: 'normal', weight: 'normal' } |
| Audiowide Regular | normal | normal | font: { family: 'Audiowide', style: 'normal', weight: 'normal' } |
| Avenir Next LT Pro Bold | normal | bold | font: { family: 'Avenir Next LT Pro', style: 'normal', weight: 'bold' } |
| Avenir Next LT Pro Bold Italic | italic | bold | font: { family: 'Avenir Next LT Pro', style: 'italic', weight: 'bold' } |
| Avenir Next LT Pro Demi Italic | italic | normal | font: { family: 'Avenir Next LT Pro Demi', style: 'italic', weight: 'normal' } |
| Avenir Next LT Pro Italic | italic | normal | font: { family: 'Avenir Next LT Pro', style: 'italic', weight: 'normal' } |
| Avenir Next LT Pro Light | normal | normal | font: { family: 'Avenir Next LT Pro Light', style: 'normal', weight: 'normal' } |
| Avenir Next LT Pro Light Italic | italic | normal | font: { family: 'Avenir Next LT Pro Light', style: 'italic', weight: 'normal' } |
| Avenir Next LT Pro Medium Bold | normal | bold | font: { family: 'Avenir Next LT Pro Medium', style: 'normal', weight: 'bold' } |
| Avenir Next LT Pro Medium Bold Italic | italic | bold | font: { family: 'Avenir Next LT Pro Medium', style: 'italic', weight: 'bold' } |
| Avenir Next LT Pro Regular | normal | normal | font: { family: 'Avenir Next LT Pro', style: 'normal', weight: 'normal' } |
| Avenir Next LT Pro Regular Bold | normal | bold | font: { family: 'Avenir Next LT Pro Regular', style: 'normal', weight: 'bold' } |
| BellTopo Sans Bold | normal | bold | font: { family: 'BellTopo Sans', style: 'normal', weight: 'bold' } |
| BellTopo Sans Bold Italic | italic | bold | font: { family: 'BellTopo Sans', style: 'italic', weight: 'bold' } |
| BellTopo Sans Italic | italic | normal | font: { family: 'BellTopo Sans', style: 'italic', weight: 'normal' } |
| BellTopo Sans Regular | normal | normal | font: { family: 'BellTopo Sans', style: 'normal', weight: 'normal' } |
| Belleza Regular | normal | normal | font: { family: 'Belleza', style: 'normal', weight: 'normal' } |
| Black Ops One Regular | normal | normal | font: { family: 'Black Ops One', style: 'normal', weight: 'normal' } |
| Cabin Sketch Bold | normal | bold | font: { family: 'Cabin Sketch', style: 'normal', weight: 'bold' } |
| Cabin Sketch Regular | normal | normal | font: { family: 'Cabin Sketch', style: 'normal', weight: 'normal' } |
| Coming Soon Regular | normal | normal | font: { family: 'Coming Soon', style: 'normal', weight: 'normal' } |
| FGDC GeoAge Regular | normal | normal | font: { family: 'FGDC GeoAge', style: 'normal', weight: 'normal' } |
| Homemade Apple Regular | normal | normal | font: { family: 'Homemade Apple', style: 'normal', weight: 'normal' } |
| IM FELL DW Pica PRO Italic | italic | normal | font: { family: 'IM FELL DW Pica PRO', style: 'italic', weight: 'normal' } |
| IM FELL DW Pica PRO Regular | normal | normal | font: { family: 'IM FELL DW Pica PRO', style: 'normal', weight: 'normal' } |
| Josefin Sans Regular | normal | normal | font: { family: 'Josefin Sans', style: 'normal', weight: 'normal' } |
| Josefin Sans Semibold Italic | italic | bold | font: { family: 'Josefin Sans Semibold', style: 'italic', weight: 'bold' } |
| Josefin Slab Bold | normal | bold | font: { family: 'Josefin Slab', style: 'normal', weight: 'bold' } |
| Josefin Slab Bold Italic | italic | bold | font: { family: 'Josefin Slab', style: 'italic', weight: 'bold' } |
| Josefin Slab Italic | italic | normal | font: { family: 'Josefin Slab', style: 'italic', weight: 'normal' } |
| Josefin Slab Light Italic | italic | normal | font: { family: 'Josefin Slab Light', style: 'italic', weight: 'normal' } |
| Josefin Slab Regular | normal | normal | font: { family: 'Josefin Slab', style: 'normal', weight: 'normal' } |
| Josefin Slab Semibold Italic | italic | bold | font: { family: 'Josefin Slab Semibold', style: 'italic', weight: 'bold' } |
| Josefin Slab Thin Italic | italic | normal | font: { family: 'Josefin Slab Thin', style: 'italic', weight: 'normal' } |
| Just Another Hand Regular | normal | normal | font: { family: 'Just Another Hand', style: 'normal', weight: 'normal' } |
| Kranky Regular | normal | normal | font: { family: 'Kranky', style: 'normal', weight: 'normal' } |
| Life Savers Bold | normal | bold | font: { family: 'Life Savers', style: 'normal', weight: 'bold' } |
| Loved by the King Regular | normal | normal | font: { family: 'Loved by the King', style: 'normal', weight: 'normal' } |
| Merriweather Bold | normal | bold | font: { family: 'Merriweather', style: 'normal', weight: 'bold' } |
| Merriweather Bold Italic | italic | bold | font: { family: 'Merriweather', style: 'italic', weight: 'bold' } |
| Merriweather Italic | italic | normal | font: { family: 'Merriweather', style: 'italic', weight: 'normal' } |
| Merriweather Regular | normal | normal | font: { family: 'Merriweather', style: 'normal', weight: 'normal' } |
| Montserrat Bold | normal | bold | font: { family: 'Montserrat', style: 'normal', weight: 'bold' } |
| Montserrat Italic | italic | normal | font: { family: 'Montserrat', style: 'italic', weight: 'normal' } |
| Montserrat Medium Italic | italic | normal | font: { family: 'Montserrat Medium', style: 'italic', weight: 'normal' } |
| Montserrat Regular | normal | normal | font: { family: 'Montserrat', style: 'normal', weight: 'normal' } |
| Montserrat Semibold Italic | italic | bold | font: { family: 'Montserrat Semibold', style: 'italic', weight: 'bold' } |
| Noto Sans Bold | normal | bold | font: { family: 'Noto Sans', style: 'normal', weight: 'bold' } |
| Noto Sans Bold Italic | italic | bold | font: { family: 'Noto Sans', style: 'italic', weight: 'bold' } |
| Noto Sans Italic | italic | normal | font: { family: 'Noto Sans', style: 'italic', weight: 'normal' } |
| Noto Sans Regular | normal | normal | font: { family: 'Noto Sans', style: 'normal', weight: 'normal' } |
| Noto Serif Bold | normal | bold | font: { family: 'Noto Serif', style: 'normal', weight: 'bold' } |
| Noto Serif Bold Italic | italic | bold | font: { family: 'Noto Serif', style: 'italic', weight: 'bold' } |
| Noto Serif Italic | italic | normal | font: { family: 'Noto Serif', style: 'italic', weight: 'normal' } |
| Noto Serif Regular | normal | normal | font: { family: 'Noto Serif', style: 'normal', weight: 'normal' } |
| Old Standard TT Bold | normal | bold | font: { family: 'Old Standard TT', style: 'normal', weight: 'bold' } |
| Old Standard TT Italic | italic | normal | font: { family: 'Old Standard TT', style: 'italic', weight: 'normal' } |
| Old Standard TT Regular | normal | normal | font: { family: 'Old Standard TT', style: 'normal', weight: 'normal' } |
| Orbitron Bold | normal | bold | font: { family: 'Orbitron', style: 'normal', weight: 'bold' } |
| Orbitron Regular | normal | normal | font: { family: 'Orbitron', style: 'normal', weight: 'normal' } |
| Oregano Italic | italic | normal | font: { family: 'Oregano', style: 'italic', weight: 'normal' } |
| Oregano Regular | normal | normal | font: { family: 'Oregano', style: 'normal', weight: 'normal' } |
| Oswald Bold | normal | bold | font: { family: 'Oswald', style: 'normal', weight: 'bold' } |
| Oswald Regular | normal | normal | font: { family: 'Oswald', style: 'normal', weight: 'normal' } |
| Pacifico Regular | normal | normal | font: { family: 'Pacifico', style: 'normal', weight: 'normal' } |
| Palatino Linotype Regular | normal | normal | font: { family: 'Palatino Linotype', style: 'normal', weight: 'normal' } |
| Playfair Display Black | normal | normal | font: { family: 'Playfair Display Black', style: 'normal', weight: 'normal' } |
| Playfair Display Bold | normal | bold | font: { family: 'Playfair Display', style: 'normal', weight: 'bold' } |
| Playfair Display Bold Italic | italic | bold | font: { family: 'Playfair Display', style: 'italic', weight: 'bold' } |
| Playfair Display Italic | italic | normal | font: { family: 'Playfair Display', style: 'italic', weight: 'normal' } |
| Playfair Display Regular | normal | normal | font: { family: 'Playfair Display', style: 'normal', weight: 'normal' } |
| Playfair Display SC Bold | normal | bold | font: { family: 'Playfair Display SC', style: 'normal', weight: 'bold' } |
| Playfair Display SC Regular | normal | normal | font: { family: 'Playfair Display SC', style: 'normal', weight: 'normal' } |
| Redressed Regular | normal | normal | font: { family: 'Redressed', style: 'normal', weight: 'normal' } |
| Risque Regular | normal | normal | font: { family: 'Risque', style: 'normal', weight: 'normal' } |
| Roboto Condensed Italic | italic | normal | font: { family: 'Roboto Condensed', style: 'italic', weight: 'normal' } |
| Roboto Condensed Light Italic | italic | normal | font: { family: 'Roboto Condensed Light', style: 'italic', weight: 'normal' } |
| Rye Regular | normal | normal | font: { family: 'Rye', style: 'normal', weight: 'normal' } |
| Special Elite Regular | normal | normal | font: { family: 'Special Elite', style: 'normal', weight: 'normal' } |
| Syncopate Bold | normal | bold | font: { family: 'Syncopate', style: 'normal', weight: 'bold' } |
| Syncopate Regular | normal | normal | font: { family: 'Syncopate', style: 'normal', weight: 'normal' } |
| Tangerine Regular | normal | normal | font: { family: 'Tangerine', style: 'normal', weight: 'normal' } |
| Ubuntu Bold | normal | bold | font: { family: 'Ubuntu', style: 'normal', weight: 'bold' } |
| Ubuntu Bold Italic | italic | bold | font: { family: 'Ubuntu', style: 'italic', weight: 'bold' } |
| Ubuntu Condensed Regular | normal | normal | font: { family: 'Ubuntu Condensed', style: 'normal', weight: 'normal' } |
| Ubuntu Italic | italic | normal | font: { family: 'Ubuntu', style: 'italic', weight: 'normal' } |
| Ubuntu Light | normal | normal | font: { family: 'Ubuntu Light', style: 'normal', weight: 'normal' } |
| Ubuntu Light Bold | normal | bold | font: { family: 'Ubuntu Light', style: 'normal', weight: 'bold' } |
| Ubuntu Light Bold Italic | italic | bold | font: { family: 'Ubuntu Light', style: 'italic', weight: 'bold' } |
| Ubuntu Light Italic | italic | normal | font: { family: 'Ubuntu Light', style: 'italic', weight: 'normal' } |
| Ubuntu Medium Italic | italic | normal | font: { family: 'Ubuntu Medium', style: 'italic', weight: 'normal' } |
| Ubuntu Mono Bold | normal | bold | font: { family: 'Ubuntu Mono', style: 'normal', weight: 'bold' } |
| Ubuntu Mono Bold Italic | italic | bold | font: { family: 'Ubuntu Mono', style: 'italic', weight: 'bold' } |
| Ubuntu Mono Italic | italic | normal | font: { family: 'Ubuntu Mono', style: 'italic', weight: 'normal' } |
| Ubuntu Mono Regular | normal | normal | font: { family: 'Ubuntu Mono', style: 'normal', weight: 'normal' } |
| Ubuntu Regular | normal | normal | font: { family: 'Ubuntu', style: 'normal', weight: 'normal' } |
| UnifrakturCook Bold | normal | bold | font: { family: 'UnifrakturCook', style: 'normal', weight: 'bold' } |
| Vast Shadow Regular | normal | normal | font: { family: 'Vast Shadow', style: 'normal', weight: 'normal' } |
| Walter Turncoat Regular | normal | normal | font: { family: 'Walter Turncoat', style: 'normal', weight: 'normal' } |
- See also
- Default value
- "sans-serif"
Example
let textSymbol = { type: "text", // autocasts as new TextSymbol() text: "Science of Where", font: { // autocasts as new Font() family: "Merriweather", size: 12, style: "italic", weight: "bold" }}; size
- Type
- number
The font size in points. This value may be autocast with a string
expressing size in points or pixels (e.g. 12px).
Known Limitations
- The maximum supported font size is 96 points or 128 pixels.
- In 3D SceneViews, if the TextSymbol3DLayer.size property is set, it will override this size property.
- See also
- Default value
- 9
Examples
// size in pointssymbol.size = 14;// size in pixelssymbol.size = "20px";// size in pointssymbol.size = "14pt"; style
- Type
- FontStyle
The text style. Specifies whether a font should be styled: normal, italic, or oblique.
Known Limitations
oblique is not supported in 2D FeatureLayer, CSVLayer, and StreamLayer labels.
- See also
- Default value
- "normal"
weight
- Type
- FontWeight
The text weight. Specifies the level of boldness.
Known Limitations
bolder and lighter are not supported in 2D FeatureLayer, CSVLayer, and StreamLayer labels.
- See also
- Default value
- "normal"
Methods
fromJSON
- Signature
-
fromJSON (json: any): any
Creates a new instance of this class and initializes it with values from a JSON object
generated from an ArcGIS product. The object passed into the input json
parameter often comes from a response to a query operation in the REST API or a
toJSON()
method from another ArcGIS product. See the Using fromJSON()
topic in the Guide for details and examples of when and how to use this function.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| json | A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. | |
- Returns
- any
Returns a new instance of this class.
clone
- Signature
-
clone (): Font
Creates a deep clone of the font object.
- Returns
- Font
A deep clone of the object that invoked this method.
toJSON
- Signature
-
toJSON (): any
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
- Returns
- any
The ArcGIS portal JSON representation of an instance of this class.