diff --git a/CHANGELOG.md b/CHANGELOG.md
index 777fbad..ddcceae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,26 @@
# Changelog
These are the release notes for the TextMesh Pro UPM package which was first introduced with Unity 2018.1. Please see the following link for the Release Notes for prior versions of TextMesh Pro. http://digitalnativestudios.com/forum/index.php?topic=1363.0
+## [3.2.0-pre.2] - 2021-10-31
+### Changes
+- Fixed incorrect character spacing when using the <scale> tag. See [forum post](https://forum.unity.com/threads/inconsistent-spacing-between-characters-when-scaling-width.1156967/) for details.
+- Added Unicode code point range for Arabic Mark glyphs. See [forum post](https://forum.unity.com/threads/no-kerning-pairs-on-tmp-font-import.620587/#post-7428380) for details.
+- Added support for creating multiple Sprite Assets at once by selecting multiple sprite textures and using the "Create - TextMeshPro - Sprite Asset" context menu.
+- Added new class definition type to the glyph class. This new property will only be visible when included in a new release of the Unity Editor.
+- Fixed incorrect update of SDF Scale when text object scale is zero. The previous optimization where SDF Scale only gets updated when lossy scale change exceeds 20% of the previous value remains. See [forum post](https://forum.unity.com/threads/3-2-0-pre-1-text-as-squares-in-rare-case.1164875/) for details.
+- Fixed text objects not being visible when using a mixture of <TextMeshPro> objects with ≶TextMeshProUGUI> objects in Screenspace Overlay when these objects share the same material preset. See [forum post](https://forum.unity.com/threads/text-missing-on-apple-m1-mac-builds.1021987/) for details.
+- Updated TMP Essential Resources to include updated shaders to address texture mapping issue with one of the SDF shaders.
+- Fixed a few inspector issues related to fallback glyph caching when adding, deleting and reordering fallback font asset lists.
+- Minor change to the Font Asset Creator to prevent setting a face size of zero when using Auto Sizing mode. Case #1368638.
+- Fixed incorrect selection of font face in the Font Asset Creator when using the "Update Atlas Texture" button in the Font Asset inspector. Case #1366468.
+- Fixed incorrect Character Set selection being recalled when using the "Update Atlas Texture" button in the Font Asset inspector. Case #1368517.
+- Fixed scene remaining dirty after undoing a change to a TMP text component which dirtied the scene. Case #1296400
+- Improved Android / Chrome OS hardware keyboard support.
+- Fixed incorrect parsing of invalid UTF16 and UTF32 character sequences. Case #1367695
+- Added new example to the TMP Examples & Extras to showcase new HDRP shaders and inspector.
+- Added support for GameCore platform support in the TMP Input Field.
+- Added new Ligature Table to Font Assets allowing users to manually define Ligatures. This is a first pass at adding support for Ligatures.
+
## [3.2.0-pre.1] - 2021-08-06
## [2.2.0-preview.1] - 2021-08-06
## [1.6.0-preview.1] - 2021-08-06
diff --git a/Documentation~/ColorGradients.md b/Documentation~/ColorGradients.md
new file mode 100644
index 0000000..88e6c16
--- /dev/null
+++ b/Documentation~/ColorGradients.md
@@ -0,0 +1,42 @@
+# Color Gradients
+
+You can apply gradients of up to four colors to TextMesh Pro GameObjects. When you add a gradient, TextMesh Pro applies it to each character in the text individually. It stores gradient colors as in each character sprite's vertex colors.
+
+![](images/TMP_ColorGradient_4-Corner-no-legend.png)
+
+_TextMesh Pro text with a four-color gradient_
+
+Because each character sprite consists of two triangles, gradients tend to have a dominant direction. This is most obvious in diagonal gradients.
+
+For example, the dominant direction in gradient below favors the red and black colors in the bottom-left and top-right corners
+
+![](images/TMP_ColorGradient_3-Corner-YBRY_half.png)
+
+When you reverse the gradient colors, so both the top-right and bottom-left corners are yellow, the dominant color changes.
+
+![](images/TMP_ColorGradient_3-Corner-RYYB_half.png)
+
+
+TextMesh Pro multiplies gradient colors with the text's main vertex color (**Main Settings > Vertex Color** in the TextMesh Pro Inspector). If the main vertex color is white you see only the gradient colors. If it’s black you don’t see the gradient colors at all.
+
+## Applying a Gradient
+
+To apply a gradient to a TextMesh Pro GameObject, edit the [Gradient properties](TMPObjectUIText.md#color) in the Inspector.
+
+> [!NOTE]
+> - To apply a gradient to only a portion of the text, use the [gradient](RichTextGradient.md) rich text tag.
+> - To apply a gradient to multiple text objects, use a [gradient preset](ColorGradientsPresets.md).
+
+![](images/TMP_ColorGradientInspector.png)
+
+**To apply a color gradient to a TextMesh Pro GameObject:**
+
+1. Enable the **Main Settings > Color Gradient** property.
+
+1. Set **Main Settings > Color Gradient > Color Mode** to the [type of gradient](ColorGradientsTypes.md) you want to apply.
+
+1. Use the **Main Settings > Color Gradient > Colors** settings to choose colors for the gradient. For each color you can:
+
+ - Click the color swatch to open a [Color Picker](https://docs.unity3d.com/Manual/EditingValueProperties.html).
+ - Use the eyedropper to pick a color from anywhere on your screen.
+ - Enter the color’s hexadecimal value directly in the text field.
\ No newline at end of file
diff --git a/Documentation~/ColorGradientsPresets.md b/Documentation~/ColorGradientsPresets.md
new file mode 100644
index 0000000..d3a6e02
--- /dev/null
+++ b/Documentation~/ColorGradientsPresets.md
@@ -0,0 +1,36 @@
+# Gradient Presets
+
+Use gradient presets to reuse the same color gradients across text objects. A gradient preset overrides the text’s local gradient type and colors.
+
+You have to store Gradient presets in a specific folder so TextMesh Pro can find them and include them in builds. You can change the folder from the [TextMesh Pro settings](Settings.md#color-gradient-presets).
+
+## Creating gradient presets
+
+To create a gradient preset, choose **Assets > Create > TextMesh Pro > Color Gradient** from the menu.
+
+This adds a new TextMesh Pro Color Gradient Asset to the Scene, and opens it in the Inspector.
+
+![](images/TMP_ColorGradientPresetCreator.png)
+
+You can then select a [gradient type](ColorGradientTypes.md) from the **Color Mode** dropdown, and set the gradient **Colors**.
+
+## Applying gradient presets
+
+You apply a gradient preset to text from the TextMesh Pro Inspector.
+
+**To apply a gradient preset:**
+
+1. Enable the **Main Settings > Color Gradient** property.
+
+1. Open the Object Picker (circle icon) for **Main Settings > Color Preset**, and choose choose a preset
+
+When you apply a gradient preset, the Inspector overrides the text's gradient type and colors with the values from the preset.
+
+> [!CAUTION]
+> If you modify the gradient settings in the TextMesh Pro Inspector after you apply a preset, it affects the preset itself. Changes affect every object that uses the same preset.
+
+## Removing gradient presets
+
+To remove a gradient preset, open the Object Picker (circle icon) for **Main Settings > Color Preset**, and choose **None**.
+
+When you remove the preset, the text reverts to its local gradient properties.
diff --git a/Documentation~/ColorGradientsTypes.md b/Documentation~/ColorGradientsTypes.md
new file mode 100644
index 0000000..68f86b1
--- /dev/null
+++ b/Documentation~/ColorGradientsTypes.md
@@ -0,0 +1,81 @@
+# Color Gradient Types
+
+You can apply the following types of gradients to text.
+
+- **[Single](#single-color):** A single color that is TextMesh Pro multiplies with the text object's vertex color.
+
+- **[Horizontal](#horizontal-gradients):** A two-color side-to-side gradient.
+
+- **[Vertical](#vertical-gradients):** A two-color up-and-down gradient.
+
+- **[Four Corner](#four-corner-gradients):** A four-color gradient. Each color radiates from one corner.
+
+![](images/TMP_ColorGradientInspector.png)
+_The TexMesh Pro color gradient settings_
+
+The number of colors available in the **Colors** settings depends on the type of gradient you choose. Each swatch corresponds to the color's origin on a character sprite.
+
+The image above shows a the settings for a four color gradient. Each color originates in the corresponding corner of the sprite (top-left, top-right, bottom-left, bottom-right). IT produces the following gradient:
+
+![](images/TMP_ColorGradient_4-Corner-YBRG_half.png)
+
+
+## Single Color
+
+The **Single** gradient type applies a single color.
+
+![](images/TMP_ColorGradient_Single-Y_half.png)
+
+## Horizontal Gradients
+
+The **Horizontal** gradient type applies two colors, and produces a side to side transition between them on each character.
+
+![](images/TMP_ColorGradient_Horiz-YB_half.png)
+
+![](images/TMP_ColorGradient_Horiz-BY_half.png)
+
+## Vertical Gradients
+
+The **Vertical** gradient type consists of two colors, and produces an up and down transition between the two on each character.
+
+![](images/TMP_ColorGradient_Vert-BY_half.png)
+
+![](images/TMP_ColorGradient_Vert-YB_half.png)
+
+## Four Corner Gradients
+
+The **Four Corner** gradient type applies four colors. Each one radiates out from its assigned corner of each character.
+
+![](images/TMP_ColorGradient_4-Corner-YBRG_half.png)
+
+![](images/TMP_ColorGradient_4-Corner-YBRO_half.png)
+
+This is the most versatile gradient type. By varying some colors and keeping others identical, you can create different kinds of gradients. For example:
+
+- Give three corners one color and the fourth a different color.
+
+![](images/TMP_ColorGradient_1-Corner-BYYY_half.png)
+
+- Give pairs of adjacent corners the same color to create horizontal or vertical gradients.
+
+![](images/TMP_ColorGradient_2-Corner-BYBY_half.png)
+
+![](images/TMP_ColorGradient_2-Corner-BBYY_half.png)
+
+- Give pairs of diagonally opposite corners the same color to create diagonal gradients.
+
+![](images/TMP_ColorGradient_2-Corner-BYYB_half.png)
+
+- Create horizontal and vertical 3-color gradients with a dominant color at one end and a transition between two colors at the other.
+
+![](images/TMP_ColorGradient_3-Corner-YRYB_half.png)
+
+![](images/TMP_ColorGradient_3-Corner-YYRB_half.png)
+
+- Give two diagonally opposite corners same color and give the other two corners different colors to create a diagonal stripe 3-color gradient.
+
+![](images/TMP_ColorGradient_3-Corner-RYYB_half.png)
+
+![](images/TMP_ColorGradient_3-Corner-YBRY_half.png)
diff --git a/Documentation~/CustomStyles.md b/Documentation~/CustomStyles.md
new file mode 100644
index 0000000..e3a8cbb
--- /dev/null
+++ b/Documentation~/CustomStyles.md
@@ -0,0 +1,27 @@
+# Styles
+
+Use styles to apply additional formatting to some or all of the text in a TextMesh Pro object. A style is a combination of opening and closing [rich text tags](RichText.md), and can also include leading and trailing characters.
+
+* To define styles, use a TextMesh Pro [style sheet](StyleSheets.md).
+
+* To apply styles to your text, use the [``
+
+Not only does that make the text easier to read in the editor, you can now update all of the headings in your text just by changing the style.
diff --git a/Documentation~/DebugTool.md b/Documentation~/DebugTool.md
new file mode 100644
index 0000000..81798a3
--- /dev/null
+++ b/Documentation~/DebugTool.md
@@ -0,0 +1,36 @@
+# Debugging TextMesh Pro text
+
+Use the Text Info Debug Tool to display diagnostic information about a TextMesh Pro GameObject in the Scene view and the Inspector.
+
+For example, you can display lines that indicate font metrics such as the line height, or the offset for superscript and subscript text. This can help you diagnose problems with fonts you import.
+
+![](images/TMP_DebugToolChars.png)
+_The TextMesh Pro debug tool set to show character bounding boxes and font metrics_
+
+>[NOTE!]
+>The debug tool is part of the TextMesh Pro Examples & Extras package. You can install the package from the menu (select **Window > TextMesh Pro > Import TMP Examples and Extras**) or the [TextMesh Pro settings](Settings.md).
+
+To use the debug tool:
+
+1. Open a TextMesh Pro GameObject in the Inspector.
+
+2. [Add](https://docs.unity3d.com/Manual/UsingComponents.html) a **TMP_TextInfoDebugTool** component.
+
+3. From the **TMP_Text Info Debug Tool** section, turn debug [settings](#text-info-debug-tool-properties) on and off. You can see the results in the Scene view.
+
+
+## Text Info Debug Tool properties
+
+![](images/TMP_DebugTool.png)
+
+|Property:|Function:|
+|-|-|
+|**Show Characters** | Displays each character's bounding box, as well as reference lines for font metrics, in the Scene view. |
+|**Show Words** | Displays the bounding box for each word in the Scene view. |
+|**Show Links** | Displays the bounding box for each link in the Scene view. |
+|**Show Lines** | Displays the bounding box for line of text word in the Scene view. |
+|**Show Mesh Bounds** | Displays the bounding box for the entire block of text in the Scene view. |
+|**Show Text Bounds** | Displays the boundary of the area that text can occupy, as defined by the font metrics, in the Scene view. |
+|**Object Stats** | Shows statistics about the TextMesh Pro GameObject, such as the number of characters, words, lines, and spaces. |
+|**Text Component** | Links to the TextMesh Pro GameObject's Text component. |
+|**Transform** | Links to the TextMesh Pro GameObject's RectTransform component. |
diff --git a/Documentation~/Debugging.md b/Documentation~/Debugging.md
new file mode 100644
index 0000000..31344d1
--- /dev/null
+++ b/Documentation~/Debugging.md
@@ -0,0 +1 @@
+# Debugging TextMesh Pro text
\ No newline at end of file
diff --git a/Documentation~/FontAssets.md b/Documentation~/FontAssets.md
new file mode 100644
index 0000000..6f12d0f
--- /dev/null
+++ b/Documentation~/FontAssets.md
@@ -0,0 +1,26 @@
+# Font Assets
+
+To use different fonts with TextMesh Pro, you need to create font assets. TextMesh Pro has its own font Asset format that is distinct from, but related to, [Unity's regular font Asset format](https://docs.unity3d.com/2019.1/Documentation/Manual/class-Font.html). You create TextMesh Pro font assets _from_ Unity font assets.
+
+Every TextMesh Pro font Asset has two sub-Assets:
+
+* **Font atlas:** a black and white or grayscale texture file that contains all of the characters included in the font Asset.
![](images/FontAtlasExample.png) _Example of a font atlas_
+* **Font material:** a material that controls the appearance of TextMesh Pro text using one of the [TextMesh Pro shaders](Shaders.md).
+
+Font assets must be in a specific folder so TextMesh Pro can find them and include them in builds. To change the default folder for font assets, got to the [TextMesh Pro settings](Settings.md) and set the **Default Font Asset > Path** option.
+
+## Creating Font Assets
+
+To create a TextMesh Pro font Asset, use the TexMesh Pro [Font Asset Creator](FontAssetsCreator.md).
+
+You can also create an empty TextMesh Pro font Asset from the Unity main menu. An empty font asset does not contain any characters by default, you must add them later. To create an empty TextMesh Pro font asset, select a Unity font Asset and then select **Asset > Create > TextMeshPro > Font Asset** from the menu.
+
+## Types of font atlas
+
+Font Assets can have the following types of font atlas:
+
+* **Distance Field:** This type of atlas contains [signed distance field (SDF)](FontAssetsSDF.md) information.
This is the recommended Font Asset type for most applications because SDF atlases produce text that is smooth when transformed.
+
+* **Smooth/Hinted Smooth:** This type of atlas is an antialiased bitmap texture. A Hinted smooth atlas aligns glyph pixels with texture pixels to produce a smoother result.
Smooth atlases work well for static text that is viewed head on, in situations where there is a good correspondence between texture pixels and screen pixels. Transforming text generated from a smooth atlas blurs the text edges.
+
+* **Raster/Raster Hinted:** Raster atlases are un-smoothed bitmap textures. They almost always produce text with jagged, pixellated edges. The Hinted rater atlases align glyph pixels with texture pixels to produce a smoother result.
diff --git a/Documentation~/FontAssetsCreator.md b/Documentation~/FontAssetsCreator.md
new file mode 100644
index 0000000..3e03862
--- /dev/null
+++ b/Documentation~/FontAssetsCreator.md
@@ -0,0 +1,86 @@
+## Font Asset Creator
+
+The Font Asset Creator converts [Unity font assets](FontAssets.md) into TextMesh Pro font assets. You can use it to create both Signed [Distance Field (SDF)](FontAssetsSDF.md) fonts and bitmap fonts.
+
+When you create a new font Asset, TextMesh Pro generates the Asset itself, as well as the atlas texture and material for the font.
+
+After you create a TextMesh Pro font Asset, you can delete the Unity font Asset you used as a source, although you may want to keep it in the Scene in case you need to regenerate the TextMesh Pro font Asset.
+
+## Creating a font Asset
+
+Before you start, make sure that you've already imported the font (usually a TrueType .ttf file) you want to use into the project. For more information about importing fonts into Unity, see the documentation on [Fonts](https://docs.unity3d.com/Manual/class-Font.html) in the Unity manual.
+
+**To create a TextMesh Pro font Asset:**
+
+1. From the menu, choose: **Window > TextMesh Pro > Font Asset Creator** to open the Font Asset Creator.
+
+1. Choose a **Source Font File**. This the Unity font Asset that you want to convert into a TextMesh Pro font Asset.
+
+1. Adjust the **[Font Settings](#FontAssetCreatorSettings)** as needed, then click **Generate Font Atlas** to create the atlas texture
The atlas, and information about the font Asset appear in the texture preview area.
IMAGE
+
+1. Continue adjusting the settings and regenerating the atlas until you're satisfied with the result.
+
+1. Click **Save** or **Save as...** to save the font Asset to your project.
You must save the Asset to a **Resources** folder to make it accessible to TextMesh Pro.
+
+
+## Font Asset Creator Settings:
+
+|Property:||Function:|
+|-|-|-|
+|**Source Font File**||Select a font from which to generate a Text Mesh Pro font Asset.
This font is not included in project builds, unless you use it elsewhere in the project, or put it in a Resources folder.
You can use one of the default TextMesh Pro font assets, or [import your own](https://docs.unity3d.com/Manual/class-Font.html).|
+|**Sampling Point Size**||Set the font size, in points, used to generate the font texture.|
+|**Auto Sizing**||Use the largest point size possible while still fitting all characters on the texture.
This is the usual setting for SDF fonts.|
+|**Custom Size**||Use a custom point size. Enter the desired size in the text box.
Use this setting to achieve pixel-accurate control over bitmap-only fonts.|
+|**Padding**||Specify the space, in pixels, between characters in the font texture.
Padding provides the space required to render character separately, and to generate the SDF gradient (See the documentation on [Font Assets](FontAssetsSDF.md) for details).
The larger the padding, the smoother the transition, which allows for higher-quality rendering and larger effects, like thick outlines.
A padding of 5 is often fine for a 512x512 texture.|
+|**Packing Method**||Specify how to fit the characters into the font texture.|
+||Optimum|Finds the largest possible automatic font size that still fits all characters in the texture.
Use this setting to generate the final font texture.
+||Fast|Computes character packing more quickly, but may use a smaller font size than Optimum mode.
Use this setting when testing out font Asset creation settings.|
+|**Atlas Resolution**||Set the size width and height of the font texture, in pixels.
A resolution of 512 x 512 is fine for most fonts, as long as you are only including ASCII characters. Fonts with more characters may require larger resolutions, or multiple atlases.
When using an SDF font, a higher resolution produces finer gradients, and therefore higher quality text.|
+|**Character Set**||The characters in a font file aren't included in the font Asset automatically. You have to specify which ones you need. You can select a predefined character set, provide a list of characters to include, or include all of the characters in an existing font Asset or text Asset.|
+||ASCII|Includes the visible characters in the ASCII character set.|
+||Extended ASCII|Includes the visible characters in the extended ASCII character set.|
+||ASCII Lowercase|Includes only visible lower-case characters from the ASCII character set.|
+||ASCII Uppercase|Includes only visible upper-case characters from the ASCII character set.|
+||Numbers + Symbols|Includes only the visible numbers and symbols from the ASCII character set.|
+||Custom Range|Includes a range of characters that you define.
Enter a sequence of decimal values, or ranges of values, to specify which characters to include.
Use a hyphen to separate the first and last values of a range. Use commas to separate values and ranges (for example `32-126,160,8230`).
You can also choose an existing font Asset to include the characters in that Asset.|
+||Unicode Range (Hex)|Includes a range of characters that you define.
Enter a sequence of unicode hexadecimal values, or ranges of values, to specify which characters to include.
Use a hyphen to separate the first and last values of a range. Use commas to separate values and ranges (for example `20-7E,A0,2026`).
You can also choose an existing font Asset to include the characters in that Asset.|
+||Custom Characters|Includes a range of characters that you define.
Enter a sequence of characters to specify which characters to include.
Enter characters one after the other, with no spaces or delimiting characters in between (for example `abc123*#%`).
You can also choose an existing font Asset to include the characters in that Asset.|
+||Characters from File|Includes all the characters in a text Asset that you specify.
Use this option when you want to save your character set.|
+|**Font Style**||Apply basic font styling when creating a bitmap-only font Asset.
For SDF fonts, you configure the styling in the shader rather than the font Asset.|
+||Normal|Generates characters with no styling.|
+||Bold, Italic, Bold_Italic|Generates the font Asset with bold characters, italicized characters, or both.
With these settings, you can set a strength value that applied to bolding and italicization|
+||Outline|Generates the font Asset with outline characters.|
+||Bold_Sim|Generates the font Asset with ????|
+|**Render Mode**||Specify the render mode to use when outputting the font atlas.|
+||SMOOTH|Renders the atlas to an antialiased bitmap.|
+||RASTER|Renders the atlas to a non-antialiased bitmap.|
+||SMOOTH_HINTED|Renders the atlas to an antialiased bitmap, and aligns character pixels with texture pixels for a crisper result.|
+||RASTER_HINTED|Renders the atlas to a non-antialiased bitmap and aligns character pixels with texture pixels for a crisper result.|
+| |SDF| Renders the atlas using a slower, but more accurate SDF generation mode, and no oversampling. |
+| |SDFAA| Renders the atlas using a faster, but less accurate SDF generation mode. It produces font atlases that are sufficient for most situations.|
+| |SDFAA_HINTED| Renders the atlas using a faster, but less accurate SDF generation mode, and aligns character pixels with texture pixels for a crisper result.. It produces font atlases that are sufficient for most situations |
+| |SDF8| Renders the atlas using a slower, but more accurate SDF generation mode, and 8x oversampling. |
+| |SDF16| Renders the atlas using a slower, but more accurate SDF generation mode, and 16x oversampling. |
+| |SDF32| Renders the atlas using a slower, but more accurate SDF generation mode, and 32x oversampling. Use this setting for fonts with complex or small characters. |
+|**Get Kerning Pairs**||Enable this option to copy the kerning data from the font.
Kerning data is used to adjust the spacing between specific character pairs to produce a more visually pleasing result.
**Note:** It isn't always possible to import kerning data. Some fonts store kerning pairs in their glyph positioning (GPOS) table, which is not supported by FreeType, the font engine used by TextMesh Pro. Other fonts do not store kerning pairs at all.|
+|**Generate Font Atlas**||Generate the font atlas texture.|
+|**Save**||Save the current font atlas.|
+|**Save As**||Save the current font atlas as a new font Asset.|
+
+## Tips for creating font assets
+
+
+
+
+
+
+
+
+
+
+Characters in the font texture need some padding between them so they can be rendered separately. This padding is specified in pixels.
+Padding also creates room for the SDF gradient. The larger the padding, the smoother the transition, which allows for higher-quality rendering and larger effects, like thick outlines. A padding of 5 is often fine for a 512x512 texture.
+
+
+For most fonts, a 512x512 texture resolution is fine when including all ASCII characters.
+When you need to support thousands of character, you will have to use large textures. But even at maximum resolution, you might not be able to fit everything. In that case, you can split the characters by creating multiple font assets. Put the most often used characters in a main font Asset, and the others in a fallback font assets.
diff --git a/Documentation~/FontAssetsDynamicFonts.md b/Documentation~/FontAssetsDynamicFonts.md
new file mode 100644
index 0000000..820032e
--- /dev/null
+++ b/Documentation~/FontAssetsDynamicFonts.md
@@ -0,0 +1,62 @@
+
+# Dynamic fonts assets
+Normally when you generate a font Asset using the Font Asset Creator, you choose which characters to include, and bake them into a Font Atlas texture.
+
+Dynamic font assets work the other way around. Instead of baking characters into an atlas in advance, you start with an empty atlas to which characters are added automatically as you use them.
+
+This makes dynamic fonts assets more flexible, but that flexibility comes at a cost.
+
+* Dynamic fonts require more computational resources than static fonts.
+
+* Dynamic font assets maintain a link to the original font file used to created them. That means:
+
+ * During development, you must keep the font file in the project. You cannot delete it as you can the source fonts of static font assets.
+
+ * Source fonts of any dynamic font assets in your game are included in builds, which can increase build size.
+
+
+This has several uses, for example:
+
+* Use dynamic fonts during development to capture characters you forgot to include in your baked font assets.
+
+* At runtime, use
+
+## Working with dynamic font assets
+
+### Creating a dynamic font Asset
+
+Empty font assets are dynamic by default. To create one:
+
+* From Unity's main menu, choose **Assets > Create > TextMeshPro > Font Asset** or press **Ctrl/Cmd + Shift + F12**.
+
+To make an existing font Asset dynamic:
+
+1. Select Asset and open it in the Inspector.
+
+1. Set the **Generation Settings > Atlas Population Mode** property to **Dynamic**.
+
+### Modifying dynamic font Asset settings
+
+### Resetting a dynamic font Asset
+
+You reset TextMesh Pro dynamic font assets, the same way you reset other components: by choosing **Reset** from the gear icon menu or context menu in the Inspector.
+
+[IMAGE]
+
+However, instead of resetting all of the Asset's properties to their default values, the command affects only:
+
+* The Font Atlas
+* The Character Table
+* The Glyph Table
+* The Glyph Adjustment Table (kerning)
+
+These are reset to include only the characters/glyphs used by TextMesh Pro text objects that use the font Asset.
+
+If the Asset is currently unused, TextMesh Pro resizes the atlas texture to 0 x 0 pixels.
+
+**NOTE:** Resetting a static font Asset leaves the atlas texture as-is, but empties the character-, glyph-, and glyph adjustment tables.
+
+
+### Updating/Baking a dynamic font Asset
+
+
diff --git a/Documentation~/FontAssetsFallback.md b/Documentation~/FontAssetsFallback.md
new file mode 100644
index 0000000..20d1649
--- /dev/null
+++ b/Documentation~/FontAssetsFallback.md
@@ -0,0 +1,34 @@
+# Fallback font assets
+
+A font atlas, and by extension a font Asset, can only contain a certain number of glyphs. The exact number depends on the font, the size of the atlas texture, and the settings you use when generating the atlas. The fallback font system allows you to specify other font assets to search when TextMesh Pro can't find a glyph in a text object's font Asset.
+
+This is useful in a variety of situations, including:
+* Working with languages that have very large alphabets (Chinese, Korean, and Japanese, for example). Use fallback fonts to distribute an alphabet across several assets.
+
+* Designing for mobile devices, where an imposed maximum texture size prevents you from fitting an entire set of glyphs in a single atlas of sufficient quality.
+
+* Including special characters from other alphabets in your text.
+
+## Local and general fallback font assets
+
+Every font Asset can have its own list of fallback font assets. You set these in the [font Asset properties](FontAssetsProperties.md).
+
+You can also set general fallback font assets that apply to every TextMesh Pro font Asset in your project. You set these in the [TextMesh Pro settings](Settings.md).
+
+## The fallback chain
+
+In addition to a text object's fallback fonts, TextMesh Pro searches several other assets for missing glyphs. Together, these assets form the fallback chain.
+
+The table below lists the assets in the fallback chain in the order in which they are searched.
+
+|Position:| Asset: | Defined in:|Notes:|
+|:-:|-|-||
+|1 | TextMesh Pro object's primary **Font Asset** | [Text object properties](TMPObjects.md) ||
+|2 | Primary font assets **Fallback Font Assets** | [Font Asset properties](FontAssetsProperties.md) |TexMesh Pro searches these assets in the order they're listed in the [font Asset properties](FontAssetsProperties.md).
The search is recursive, and includes each fallback Asset's fallback assets. |
+|3 | Text object's **Sprite Asset** | [Text object properties](TMPObjects.md) |When searching sprite assets, TextMesh Pro looks for sprites with an assigned unicode value that matches the missing character's unicode value.|
+|4 | General **Fallback Font Assets** | [TextMesh Pro settings](Settings.md) |TexMesh Pro searches these assets in the order they're listed in the [font Asset properties](FontAssetsProperties.md).
The search is recursive, and includes each fallback Asset's fallback assets. |
+|5 | **Default Sprite Asset** | [TextMesh Pro settings](Settings.md) |When searching sprite assets, TextMesh Pro looks for sprites with an assigned unicode value that matches the missing character's unicode value.|
+|6 | **Default Font Asset** | [TextMesh Pro settings](Settings.md) | |
+|7 | **Missing glyphs** character | [TextMesh Pro settings](Settings.md) | |
+
+The fallback chain search is designed to detect circular references so each Asset in the chain is only searched once.
diff --git a/Documentation~/FontAssetsLineMetrics.md b/Documentation~/FontAssetsLineMetrics.md
new file mode 100644
index 0000000..d9c5024
--- /dev/null
+++ b/Documentation~/FontAssetsLineMetrics.md
@@ -0,0 +1,26 @@
+# Line metrics.
+
+TextMesh Pro sets line metrics automatically when you generate a font Asset.
+
+If the generated values produce strange or incorrect results, you can tweak the line metrics settings to fine-tune the font.
+
+Most line metric values are relative to the **Baseline**, which is the horizontal line that characters sit on.
+
+- Values for above-the-baseline metrics, such as the **Ascender** height, are greater that the **Baseline** value.
+- Values for below-the-baseline metrics, such as the **Descender** height, are less than **Baseline** value.
+
+![](images/TMP_LineMetrics.png)
+
+|Metric:|Function:|
+|-|-|
+|**Line Height**|The distance between the tops of consecutive lines.
If you set the line height to a value greater than the combined size of the **Ascender** and **Descender**, it creates a gap between lines.
If you set a line height to a value less than the combined size of the ascender and descender results in potential overlap between characters on different lines.|
+|**Ascender**|The ascender height, which specifies how far characters can extend above the baseline. It corresponds to the top of a line.|
+|**Cap Height**|The height of capital letters from the baseline.|
+|**Baseline**|The baseline height.
The baseline is the horizontal line that characters sit on.|
+|**Descender**|The descender height, which specifies how far characters can extend below the baseline.|
+|**Underline Offset**|The position of underlines relative to the baseline.|
+|**Strikethrough Offset**|The position of strikethrough lines relative to the baseline.|
+|**Superscript/ Subscript Offset**|Adjust the baseline for superscript and subscript text.|
+|**Super/ Subscript Size**|The scale of superscript and subscript text relative to the normal font size.|
+|**Padding**|The amount of padding between characters in the font atlas texture.
TextMesh Pro sets this value when you generate the font Asset. It is not editable.|
+|**Width/Height**|The font atlas texture's width and height, in pixels.
TextMesh Pro sets these values when you generate the font Asset. They are not editable.|
\ No newline at end of file
diff --git a/Documentation~/FontAssetsProperties.md b/Documentation~/FontAssetsProperties.md
new file mode 100644
index 0000000..432cfaf
--- /dev/null
+++ b/Documentation~/FontAssetsProperties.md
@@ -0,0 +1,157 @@
+# Font Asset Properties
+
+
+## Properties
+
+![](images/TMP_FontAsset_Inspector.png)
+
+Properties are divided into the following sections:
+
+||||
+|-|-|-|
+|**A** | **[Face Info](#face-info)** ||
+|**B** | **[Generation Settings](#generation-settings)** ||
+|**C** | **[Atlas & Material](#atlas-material)** ||
+|**D** | **[Font Weights](#font-weights)** ||
+|**E** | **[Fallback Font Assets](#fallback-font-assets)** ||
+|**F** | **[Character Table](#character-table)** | |
+|**G** | **[Glyph Table](#glyph-table)** ||
+|**H** | **[Glyph Adjustment Table](#glyph-adjustment-table)** ||
+
+### Face Info
+
+The Face Info properties control the font's line metrics. They also include read-only properties that the [Font Asset Creator](FontAssetsCreator.md) generates when you create the Asset.
+
+![](images/TMP_FontAssetLineMetrics.png)
+_Line metrics_
+
+|Property:|Function:|
+|-|-|
+|**Update Texture Atlas**|Open the [Font Asset Creator](FontAssetsCreator.md) pre-configured to modify and regenerate this font Asset.|
+|**Family Name**|The name of the font used to create this font Asset.
TextMesh Pro sets this value when you generate the font Asset. You cannot change it manually.|
+|**Style Name**|The style of the font used to create this font Asset. For example, **Regular**, **Bold**, **Italic**, and so on.
TextMesh Pro sets this value when you generate the font Asset. You cannot change it manually.|
+|**Point Size**|The font size in points.
TextMesh Pro bakes this value into the atlas texture when you generate the font Asset. You cannot change it manually.|
+|**Scale**|Scales the font by this amount. For example, a value of **1.5** scales glyphs to 150% of their normal size.|
+|**Line Height**|Controls the distance between the tops of consecutive lines.
If you set a line height greater than the sum of the **Ascent Line** and **Descent Line** values, it creates in a gap between lines.
If you set a line height greater than the sum of the **Ascent Line** and **Descent Line** values, characters on different lines might overlap.|
+|**Ascent Line**|Controls the maximum distance that glyphs can extend above the baseline. It corresponds to the top of a line.|
+|**Cap Line**|Controls the distance between the base line and the tops of uppercase glyphs.|
+|**Mean Line**|Controls the maximum height for non-ascending lowercase glyphs (for example. "a" and "c", but not "b" and "d," which have ascenders).
The tops of rounded glyphs sometimes extend a slightly above the mean line.|
+|**Baseline**|Controls the height of the baseline.
The baseline is the horizontal line that characters sit on.|
+|**Descent Line**|Controls the maximum distance that glyphs can extend below the baseline.|
+|**Underline Offset**|Controls the position of underlines relative to the baseline.|
+|**Underline Thickness** | Controls the thickness of underlines. |
+|**Strikethrough Offset**|Controls the position of strikethrough lines relative to the baseline.|
+|**Superscript Offset**| Offsets superscript text from the baseline.|
+|**Superscript Size**|Scales superscript text relative to the normal font size.|
+|**Subscript Offset**| Offsets subscript text from the baseline.|
+|**Subscript Size**|Scales subscript text relative to the normal font size.|
+| **Tab Width** | Specifies the width of a TAB character. |
+
+### Generation Settings
+
+The [Font Asset Creator](FontAssetsCreator.md) generates these values when you generate the Font Asset.
+
+> [!NOTE]
+> When the **Atlas Population Mode** is set to **Dynamic**, you can change the atlas size without regenerating the atlas.
+
+|Property:||Function:|
+|-|-|-|
+|**Source Font File** || |
+|**Atlas Population Mode** || |
+| |Dynamic| |
+| |Static| |
+|**Atlas Render Mode** || |
+||SMOOTH|Renders the atlas to an antialiased bitmap.|
+||RASTER|Renders the atlas to a non-antialiased bitmap.|
+||SMOOTH_HINTED|Renders the atlas to an antialiased bitmap, and aligns character pixels with texture pixels for a crisper result.|
+||RASTER_HINTED|Renders the atlas to a non-antialiased bitmap and aligns character pixels with texture pixels for a crisper result.|
+| |SDF| Renders the atlas using a slower, but more accurate SDF generation mode, and no oversampling. |
+| |SDFAA| Renders the atlas using a faster, but less accurate SDF generation mode. It produces font atlases that are sufficient for most situations.|
+| |SDFAA_HINTED| Renders the atlas using a faster, but less accurate SDF generation mode, and aligns character pixels with texture pixels for a crisper result.. It produces font atlases that are sufficient for most situations |
+| |SDF8| Renders the atlas using a slower, but more accurate SDF generation mode, and 8x oversampling. |
+| |SDF16| Renders the atlas using a slower, but more accurate SDF generation mode, and 16x oversampling. |
+| |SDF32| Renders the atlas using a slower, but more accurate SDF generation mode, and 32x oversampling. Use this setting for fonts with complex or small characters. |
+|**Sampling Point Size** || The size, in points, of characters in the font texture. |
+|**Padding**||The amount of padding between characters in the font atlas texture.
This value is set when you generate the font Asset, and is not editable.|
+|**Atlas Width/Height**||The width and height the font atlas texture.
Choose for each dimension, choose one of the available values from the drop-down menu.|
+|**Multi Atlas Textures** | | |
+
+
+### Atlas & Material
+
+This section lists the sub-assets that the [Font Asset Creator](FontAssetsCreator.md) creates when you generate the Asset. Do not edit these directly.
+
+|Property:|Function:|
+|-|-|
+|Font Atlas|The font texture atlas created when you generated the font Asset.|
+|Font Material|The font material created when you generated the font Asset.|
+
+### Font Weights
+
+The Font Weights options control the appearance of bold and italicized text. There are two ways of doing this:
+
+1. Create different bold and italic variants of the font Asset, and add them to the **Font Table**.
You can specify regular and italic fonts for weights ranging from 100 (Thin) to 900 (Black).
+
+1. Define "fake" bolding and italicization by setting the **Font Weight > Italic Style** and **Bold Weight** properties.
These settings tell TextMesh Pro how to adjust characters in the current font Asset when you bold or italicize text.
+
+
+|Property:||Function:|
+|-|-|-|
+|**Font Table**||Specify font assets to use for the following font variants.
100 - Thin 200 - Extra-Light 300 - Light 400 - Regular (italic only) 500 - Medium 600 - Semi-Bold 700 - Bold 800 - Heavy 900 - Black
* **400 - Regular > Regular Typeface** is the current font Asset. You cannot change it.
If you don't specify font assets, TextMesh Pro "fakes" bolding and italicization according to the rest of the the **Font Weights** settings. Using "faked" font weights limits you to regular and italic versions of normal and bold text (equivalent to weights of 400 and 700 respectively). |
+|**Normal Weight**||Set the regular font weight to use when no font Asset is available.|
+|**Bold Weight**||Set the bold font weight assumed when no font Asset is available.|
+|**Spacing Offset**||Add space between characters when using the normal text style.|
+|**Bold Spacing**||Add space between characters when using the fake bold text style (meaning you haven’t specified a Bold font Asset).|
+|**Italic Style**||If you don’t specify a font Asset for **400 - Regular > Italic Style** variant, TextMeshPro slanting the character sprites in the Normal Style font Asset by an amount defined in the **Italic Style** setting.
Set this value to control the |
+|**Tab Multiple**||Set the tab size. This value is multiplied by the width of the font's space character to calculate the tab size used.|
+
+
+### Fallback Font Assets
+
+Each font Asset contains a limited number of characters. When you use a character that the current Font Asset does not contain, TextMesh Pro searches the fallback font list until it finds a font Asset that includes it. The text object then uses that font to render the character.
+
+You can use this feature to distribute fonts over multiple textures, or use different fonts for specific characters. Be aware that searching the list for missing characters requires extra computing resources, and that using additional fonts requires additional draw calls.
+
+For more information about how fallback fonts work, see [The Fallback font chain](FontAssetsFallback.md).
+
+|Property:|Function:|
+|-|-|
+|**Fallback Font Asset list**|Manage the fallback fonts for this font Asset.
Click **+** and **-** to add and remove font slots.
Click the circle icon next to a font to open an Object Picker where you can choose a font Asset.
Drag the handles on the left side of any font Asset to reorder the list.|
+
+### Character Table
+
+
+
+### Glyph Table
+
+The glyph table contains information about each of the glyphs in the Font Asset. You can adjust the attributes of individual glyphs, which is useful when you need to correct problems that can occur when TextMesh Pro imports font data.
+
+|Property:||Function:|
+|-|-|-|
+|**Glyph Search**||Search the character list by character, ASCII value, or Hex value.
Search results are ordered by ASCII value, lowest to highest.|
+|**Previous Page/Next Page**||Long character lists are split into pages, which you can navigate using these buttons (also located at the bottom of the section).|
+|**Glyph Properties**||Displays a single glyph’s properties. Each glyph has its own entry.
Click an entry to make it active. You can then edit the glyph, copy it, or remove it from the list.|
+||Ascii|Displays the character’s ASCII decimal value.|
+||Hex|Displays the character’s Unicode Hex value.|
+||Char|Displays the character.|
+||X, Y, W, H|Define the rectangular area the character occupies in the font atlas.|
+||OX, OY|Control the placement of the character's sprite, defined at its top-left corner relative to its origin on the baseline.|
+||ADV|Specify how far to advance along the baseline before placing the next character.|
+||SF|Change this scaling factor value to adjust the size of the character.|
+|**Copy to**||Duplicate this glyph.
To make a copy, enter an unused Unicode (Hex) ID in the text field and click **Copy to**.|
+|**Remove**||Remove this glyph from the list.|
+
+### Glyph Adjustment Table
+
+The glyph adjustment table controls spacing between specific pairs of characters. Some fonts include kerning information, which is imported automatically. You can add kerning pairs for fonts that don’t include them.
+
+|Property:||Function:|
+|-|-|-|
+|**Adjustment Pair Search**||Search the adjustment table by character or ASCII value.
Search results include entries where either the left or right character matches the search string.
Search results are ordered by the ASCII value of the left character, lowest to highest.|
+|**Previous Page/Next Page**||Long adjustment tables are split into pages, which you can navigate using these buttons (also located at the bottom of the section).|
+|**Glyph Properties**||Displays a single glyph’s properties. Each glyph has its own entry.
Click an entry to make it active. You can then edit the glyph, copy it, or remove it from the list.|
+||Char (left and right)|Display the left and right characters for the kerning pair.
When you add anew kerning pair, you can specify the left and right characters to use by typing them in these fields.|
+||ID (left and right)|Display the left and right characters’ ASCII decimal values.
When you add anew kerning pair, you can specify the left and right characters to use by typing their ASCII values in these fields.|
+||OX, OY|For each character in the kerning pair, set the horizontal (**X**) and vertical (**Y**) offset relative to the character's initial position.|
+||AX|For each character in the kerning pair, specify how far to advance along the baseline before placing the next character.
Practically speaking, the left **AX** value controls the distance between the characters in the kerning pair, while the right **AX** value controls the distance between the kerning pair and the next character.|
+|**Add New Kerning Pair**||Add a new entry to the Glyph Adjustment Table.
You cannot duplicate an existing entry.|
diff --git a/Documentation~/FontAssetsSDF.md b/Documentation~/FontAssetsSDF.md
new file mode 100644
index 0000000..de0acc3
--- /dev/null
+++ b/Documentation~/FontAssetsSDF.md
@@ -0,0 +1,16 @@
+## About SDF fonts
+
+TextMesh Pro takes advantage of Signed Distance Field (SDF) rendering to generate font assets that look crisp when you transform and magnify them, and support effects such as outlines and drop shadows.
+
+Unlike black and white bitmap font textures, SDF font assets contain contour distance information. In font atlases, this information looks like grayscale gradients running from the middle of each glyph to a point past its edge. The gradient's mid-point corresponds to the edge of the glyph.
+
+The images below show bitmap and SDF font assets and the rendered text they produce. Notice that the bitmap fonts produce text whose edges are more or less jagged/blurry, depending on how far the text is from the camera, and how it is transformed/distorted. The SDF font, on the other hand produces text with completely smooth edges regardless of the distance from the camera.
+
+![](images/TMP_FontAsssetBMPRaster.png)
+_A bitmap font, atlas texture and rendered result_
+
+![](images/TMP_FontAsssetBMPSmooth.png)
+_A smoothed bitmap, atlas texture and rendered result_
+
+![](images/TMP_FontAsssetSDF.png)
+_An SDF font, atlas texture and rendered result_
\ No newline at end of file
diff --git a/Documentation~/RichText.md b/Documentation~/RichText.md
new file mode 100644
index 0000000..4f900c9
--- /dev/null
+++ b/Documentation~/RichText.md
@@ -0,0 +1,88 @@
+# Rich Text
+
+Rich text tags alter the appearance and layout of text by supplementing or overriding TextMesh Pro GameObject properties. For example, you can use rich text tags to change the color or alignment of some, or all of your text without modifying its properties or material.
+
+**To use rich text tags:**
+* Enter any [supported rich text tags](RichTextSupportedTags.md) in the TextMeshPro [**Text** input field](TMPObjectUIText.md#text), inline with the text you want to display.
+
+**To disable rich text for a TextMesh Pro object:**
+* Open the TextMesh Pro GameObject in the Inspector, and disable the **Text Mesh Pro > Extra Settings > Rich Text** property.
+
+## Rich Text Tags
+
+Rich text tags are similar to HTML or XML tags, but have less strict syntax.
+
+A simple tag consists of only the tag name, and looks like this:
+
+``
+
+For example, the `` tag makes text bold, while the `` tag underlines it.
+
+### Tag attributes and values
+
+Some tags have additional values or attributes, and look like this:
+
+ `` or ``
+
+For example `` makes text red. `Red` is the `color` tag’s value.
+
+ Similarly `` inserts the fourth sprite from the default Sprite Asset. `index` is an attribute of the `sprite` tag, and its value is `3`.
+
+A tag, including its attributes, can be up to 128 characters long.
+
+The table below lists possible attribute/value types.
+
+|Attribute/value type:|Example|
+|-------------|-------------|
+|Decimals|`0.5`|
+|Percentages|`25%`|
+|Pixel values|`5px`|
+|Font units|`1.5em`|
+|Hex color values|`#FFFFFF` (RGB) `#FFFFFFFF` (RGBA) `#FF` (A)|
+|Names|Both `` and `` are valid.|
+
+## Tag scope and nested tags
+
+Tags have a scope that defines how much of the text they affect. Most of the time, a tag added to a given point in the text affects all of the text from that point forward.
+
+For example, adding the tag `` at the beginning of the text affects the entire text block:
+
+`This text is red`
+
+![](images/TMP_RichTextExample1.png)
+_Successive color tags_
+
+Adding the same tag in the middle of the text block affects only the text between the tag and the end of the block :
+
+`This text turns red`
+
+![](images/TMP_RichTextExample2.png)
+_Successive color tags_
+
+If you use the same tag more than once in a text block, the last tag supersedes all previous tags of the same type.
+
+`This text goes from red to green`
+
+![](images/TMP_RichTextExample3.png)
+_Successive color tags_
+
+You can also limit the scope of most tags using a closing tag. Closing tags contain only a forward slash and the tag name, like this: ``
+
+Tags can also be _nested_ so one tag’s scope is within another tag’s scope. For example:
+
+```
+This text is mostly red.
+```
+
+![](images/TMP_RichTextExample4.png)
+_Successive color tags_
+
+The first `` tag’s scope is the entire text block. The the second `` tag has a closing tag that limits its scope to one word.
+
+When you nest tags, you don't have to close their scopes in the same order that you started them.
+
+## Rich-text tags and right-to-left text
+
+TextMesh Pro's right-to-left editor does not distinguish between regular text and rich text tags. Rich text tags that you enter in the right-to-left editor do not work unless you type them right-to-left as well.
+
+The easiest way to apply rich text tags to right-to-left text is to type the text in the right-to-left editor, and then apply the tags in the regular editor.
diff --git a/Documentation~/RichTextAlignment.md b/Documentation~/RichTextAlignment.md
new file mode 100644
index 0000000..e06caf5
--- /dev/null
+++ b/Documentation~/RichTextAlignment.md
@@ -0,0 +1,24 @@
+# Text Alignment
+
+Each text object has an overall alignment, but you can override this with `` tags. All [horizontal alignment options](TMPObjectUIText.md#alignment) are available except for **Geometry Center**.
+
+Normally you put these tags at the start of a paragraph. Successive alignment scopes don't stack. If you put multiple alignment tags on the same line, the last one overrides the others.
+
+The closing `` tag reverts back to the object's overall alignment.
+
+**Example:**
+
+```
+Left-aligned
+
+Center-aligned
+
+Right-aligned
+
+Justified: stretched to fill the display area (except for the last line)
+
+Flush: stretched to fill the display area (including the last line)
+```
+
+![](images/TMP_RichTextAlignment.png)
+_Text Alignment_
diff --git a/Documentation~/RichTextBoldItalic.md b/Documentation~/RichTextBoldItalic.md
new file mode 100644
index 0000000..c62442a
--- /dev/null
+++ b/Documentation~/RichTextBoldItalic.md
@@ -0,0 +1,14 @@
+# Bold and Italic
+
+You can apply bold and italic styling to your text with the `` and `` tags respectively. The [font Asset](FontAssetsProperties.md) defines how bold and italicized text looks when rendered.
+
+The closing `` and `` tags revert to the text's normal appearance.
+
+**Example:**
+
+```
+The quick brown fox jumps over the lazy dog.
+```
+
+![](images/TMP_RichTextBoldItalic.png)
+_Bold and italic._
diff --git a/Documentation~/RichTextCharacterSpacing.md b/Documentation~/RichTextCharacterSpacing.md
new file mode 100644
index 0000000..f68c8b5
--- /dev/null
+++ b/Documentation~/RichTextCharacterSpacing.md
@@ -0,0 +1,16 @@
+# Character Spacing
+
+The `` tag allows you to adjust character spacing, either absolute or relative to the original font Asset. You can use pixels or font units.
+
+Postive adjustments push the characters apart, negative adjustments pull them together.
+
+The closing `` tag reverts back to the font's normal spacing.
+
+**Example:**
+
+```
+Spacing is just as important as timing.
+```
+
+![](images/TMP_RichTextSpacing.png)
+_Character spacing_
diff --git a/Documentation~/RichTextColor.md b/Documentation~/RichTextColor.md
new file mode 100644
index 0000000..0027236
--- /dev/null
+++ b/Documentation~/RichTextColor.md
@@ -0,0 +1,25 @@
+# Text Color
+
+There are two ways to change text color with color tags:
+
+* Use named colors, as in ``
+ The following color names are supported: `black`, `blue`, `green`, `orange`, `purple`, `red`, `white`, and `yellow`.
+* Use hexadecimal values, as in `` or `` if you also want to define the alpha value.
+
+If you apply successive `` tags in the same text, the last one takes precedence over the others until you either add another ``tage or use a closing `` tag to end the current color's scope.
+
+**Example:**
+
+```
+Red Dark Green <#0000FF>Blue Semitransparent Red
+```
+
+![](images/TMP_RichTextColors.png)
+_Successive color tags_
+
+```
+Red, Blue, and red again.
+```
+
+![](images/TMP_RichTextColorClosing.png)
+_Closing color tag_
diff --git a/Documentation~/RichTextFont.md b/Documentation~/RichTextFont.md
new file mode 100644
index 0000000..9e3a667
--- /dev/null
+++ b/Documentation~/RichTextFont.md
@@ -0,0 +1,20 @@
+# Font
+
+You can switch to a different font using ``.
+
+The font you specify replaces the default font until you insert a closing `` tag. Font tags can be nested.
+
+You can also use the `material` attribute to switch between different materials for a single font. Font and material assets must be placed in specified in the TextMesh Pro settings Asset.
+
+To revert to the default font:
+* Close all open font tags using `` tag
+* Use another `` tag and set the font Asset name to `default`
+
+**Example:**
+
+```
+Would you like a different font? or just a different material?
+```
+
+![](images/TMP_RichTextFont.png)
+_Mixing fonts and materials_
diff --git a/Documentation~/RichTextFontWeight.md b/Documentation~/RichTextFontWeight.md
new file mode 100644
index 0000000..0c9b81a
--- /dev/null
+++ b/Documentation~/RichTextFontWeight.md
@@ -0,0 +1,26 @@
+# Font weight
+
+Use the `` tag to switch between the font weights available for the current [Font Asset](FontAssets.md).
+
+You specify the weight using its numeric value, for example `400` for **normal**, `700` for **bold**, and so on.
+
+You can only apply font weights defined in the [Font Asset properties](FontAssetsProperties.md#FontWeights). If you have not defined any font weights, you can still use values of **400** and **700** to apply the multipliers set in the **Normal Weight** and **Bold Weight** properties.
+
+The closing `` tag reverts to the original font specified for the TextMesh Pro object.
+
+**Example:**
+
+```
+Thin
+Extra-Light
+Light
+Regular
+Medium
+Semi-Bold
+Bold
+Heavy
+Black
+```
+
+![](images/TMP_RichTextFontWeight.png)
+_Font weights_
diff --git a/Documentation~/RichTextGradient.md b/Documentation~/RichTextGradient.md
new file mode 100644
index 0000000..b8669de
--- /dev/null
+++ b/Documentation~/RichTextGradient.md
@@ -0,0 +1,36 @@
+# Gradient
+
+The `` tag applies a pre-defined gradient preset to text.
+
+For more information about creating gradient presets, see the documentation on [Gradient Presets](ColorGradientsPresets.md).
+
+The closing `` tag reverts to the TextMesh pro object's original color.
+
+**Example:**
+
+```
+Apply
+any
+gradient
+preset
+to your text
+```
+
+![](images/TMP_RichTextGradient.png)
+_Successive gradient tags ended with a closing ``_
+
+**Note:** When you apply a gradient using this tag, it's multiplied by the TextMesh Pro object's current vertex colors.
+
+```
+This Light to Dark Green gradient is tinted by the red vertex color
+```
+![](images/TMP_RichTextGradientTinted.png)
+_Applying a green gradient to red text_
+
+To apply the pure gradient to a selection of text, you can use a `` tag to "reset" the color to white before applying the gradient.
+
+```
+This Light to Dark Green gradient is no longer tinted by the red vertex color
+```
+![](images/TMP_RichTextGradientTintCorrected.png)
+_"Resetting" the text's vertex color before applying a gradient_
diff --git a/Documentation~/RichTextIndentation.md b/Documentation~/RichTextIndentation.md
new file mode 100644
index 0000000..b46d7de
--- /dev/null
+++ b/Documentation~/RichTextIndentation.md
@@ -0,0 +1,17 @@
+# Indentation
+
+The `` tag controls the horizontal caret position the same way the [``](RichTextPos.md) tag does, but the effect persists across lines.
+
+Use this tag to create text patterns, such as bullet points, that work with word-wrapping.
+
+You specify indentation in pixels, font units, or percentages.
+
+**Example:**
+
+```
+1. It is useful for things like bullet points.
+2. It is handy.
+```
+
+![](images/TMP_RichTextIndentation.png)
+_Using indentation to make a list._
diff --git a/Documentation~/RichTextLetterCase.md b/Documentation~/RichTextLetterCase.md
new file mode 100644
index 0000000..ba583d6
--- /dev/null
+++ b/Documentation~/RichTextLetterCase.md
@@ -0,0 +1,20 @@
+# Lowercase, Uppercase, and Smallcaps
+
+The ``, ``, `` and `` tags alter the capitalization of your text before rendering. The text in the **Text** field remains as you entered it.
+
+* The `` and `` tags work as you would expect, converting to all capitals or no capitals before rendering.
+
+* The `` tag is functionally identical to ``.
+
+* The `` tag works like ``, but also reduces the size of all characters that you entered in lowercase.
+
+**Example:**
+
+```
+Alice and Bob watched TV.
+Alice and Bob watched TV.
+Alice and Bob watched TV.
+Alice and Bob watched TV.
+```
+![](images/TMP_RichTextLetterCase.png)
+_Modifying capitalization._
diff --git a/Documentation~/RichTextLineBreak.md b/Documentation~/RichTextLineBreak.md
new file mode 100644
index 0000000..5a33990
--- /dev/null
+++ b/Documentation~/RichTextLineBreak.md
@@ -0,0 +1,14 @@
+# Line Break
+
+Use the ` ` tag to force a line break in text.
+
+**Example:**
+
+```
+Add line breaks wherever you want
+
+Add line breaks wherever you want
+```
+
+![](images/TMP_RichTextLineBreak.png)
+_Adding line breaks_
diff --git a/Documentation~/RichTextLineHeight.md b/Documentation~/RichTextLineHeight.md
new file mode 100644
index 0000000..7ab2395
--- /dev/null
+++ b/Documentation~/RichTextLineHeight.md
@@ -0,0 +1,22 @@
+# Line Height
+
+Use the `` tag to manually control line height. The line-height controls how far down from the current line the next line starts. It does not change the current line.
+
+Smaller values pull lines closer together. Larger values push them farther apart.
+
+You can specify the line height in pixels, font units, or percentages.
+
+Adjustments you make using this tag are relative to the line-height specified in the [Font Asset](FontAssetsProperties.md#FaceInfo). The `` closing tag reverts to this height.
+
+**Example:**
+
+```
+Line height at 100%
+Line height at 50%
+Rather cozy.
+Line height at 150%
+Such distance!
+```
+
+![](images/TMP_RichTextLineHeight.png)
+_Different line heights_
diff --git a/Documentation~/RichTextLineIndentation.md b/Documentation~/RichTextLineIndentation.md
new file mode 100644
index 0000000..e0d3619
--- /dev/null
+++ b/Documentation~/RichTextLineIndentation.md
@@ -0,0 +1,16 @@
+# Line Indentation
+
+The `` tag inserts horizontal space directly after it, and before the start of each new line. It only affects manual line breaks (including line breaks created with the [` ` tag](RichTextLineBreak.md), not word-wrapped lines.
+
+You can specify the indentation in pixels, font units, or percentages.
+
+The `` closing tag ends the indentation of lines.
+
+**Example:**
+
+```
+This is the first line of this text example.
+This is the second line of the same text.
+```
+![](images/TMP_RichTextLineIndent.png)
+_Indent every new line, with one tag_
diff --git a/Documentation~/RichTextLink.md b/Documentation~/RichTextLink.md
new file mode 100644
index 0000000..37c2349
--- /dev/null
+++ b/Documentation~/RichTextLink.md
@@ -0,0 +1,7 @@
+# Text Link
+
+You can use `my link` to add link metadata to a text segment. The link ID should be unique to allow you to retrieve its ID and link text content when the user interacts with your text.
+
+You do not have to give each link a unique ID. You can reuse IDs when it makes sense, for example when linking to the same data multiple times. The `linkInfo` array contains each ID only once.
+
+While this link enables user interaction, it does not change the appearance of the linked text. You have to use other tags for that.
diff --git a/Documentation~/RichTextMargins.md b/Documentation~/RichTextMargins.md
new file mode 100644
index 0000000..d1a04e8
--- /dev/null
+++ b/Documentation~/RichTextMargins.md
@@ -0,0 +1,19 @@
+# Margin
+
+You can increase the horizontal margins of the text with the `` tag.
+
+If you only want to adjust the left or right margin, you can use the `` or `` tag.
+
+You can specify the margins in pixels, font units, and percentages. Negative values have no effect.
+
+Adjustments you make using this tag are relative to the margins specified in the [TexMesh Pro object](TMPObjectUIText.md#extra-settings). The `` closing tag reverts to this value.
+
+**Example:**
+
+```
+Our margins used to be very wide.
+But those days are long gone.
+```
+
+![](images/TMP_RichTextMargins.png)
+_Adjusting margins_
diff --git a/Documentation~/RichTextMark.md b/Documentation~/RichTextMark.md
new file mode 100644
index 0000000..782e6a2
--- /dev/null
+++ b/Documentation~/RichTextMark.md
@@ -0,0 +1,16 @@
+# Mark
+
+The `` tag adds an overlay on top of the text. You can use it to highlight portions of your text.
+
+Because markings are overlaid on the text, you have to give them a semitransparent color for the text to show through. You can do this by specifying the color using a hex value that includes Alpha.
+
+You cannot combine marks. Each tag affects the text between itself and the next `` tag or a closing `` tag.
+
+**Example:**
+
+```
+Text can be marked with an overlay.
+```
+
+![](images/TMP_RichTextMark.png)
+_Marked text_
diff --git a/Documentation~/RichTextMonospace.md b/Documentation~/RichTextMonospace.md
new file mode 100644
index 0000000..7c79ccd
--- /dev/null
+++ b/Documentation~/RichTextMonospace.md
@@ -0,0 +1,16 @@
+# Monospacing
+
+You can override a font's character spacing and turn it into a monospace font with the `` tag. This gives all characters the same amount of horizontal space.
+
+You can specify the character width in pixels or font units.
+
+The `` closing tag clears all monospace overrides.
+
+**Example:**
+
+```
+Any font can become monospace, if you really want it.
+```
+
+![](images/TMP_RichTextMonospace.png)
+_Treating a font as monospace_
diff --git a/Documentation~/RichTextNoBreak.md b/Documentation~/RichTextNoBreak.md
new file mode 100644
index 0000000..72378c3
--- /dev/null
+++ b/Documentation~/RichTextNoBreak.md
@@ -0,0 +1,16 @@
+# No Break
+
+Use the `` tag to keep specific words together, and not be separated by word wrapping.
+
+The closing `` tag reverts to the default behavior of allowing words to break where the line wraps.
+
+If you apply the `` tag to a segment of text that is too big to fit on one line, the segment will break wherever the line wraps.
+
+**Example:**
+
+```
+You don't want I M P O R T A N T things to be broken up.
+```
+
+![](images/TMP_RichTextNoBreak.png)
+_The important parts stay together_
diff --git a/Documentation~/RichTextNoParse.md b/Documentation~/RichTextNoParse.md
new file mode 100644
index 0000000..04a767f
--- /dev/null
+++ b/Documentation~/RichTextNoParse.md
@@ -0,0 +1,14 @@
+# Noparse
+
+The `` tag creates a scope that TextMesh Pro does not parse.
+
+This is useful for rendering text that TextMesh Pro normally interprets as a rich text tag, without disabling rich text tags.
+
+**Example:**
+
+```
+Use for bold text.
+```
+
+![](images/TMP_RichTextNoParse.png)
+_Prevent parsing of some tags_
diff --git a/Documentation~/RichTextOpacity.md b/Documentation~/RichTextOpacity.md
new file mode 100644
index 0000000..b9b73c1
--- /dev/null
+++ b/Documentation~/RichTextOpacity.md
@@ -0,0 +1,12 @@
+# Text Opacity (Alpha)
+
+Use the `` tag to change text opacity. It works with hexadecimal values.
+
+**Example:**
+
+```
+FF CC AA 88 66 44 22 00
+```
+
+![](images/TMP_RichTextAlpha.png)
+_Successive `` tags_
diff --git a/Documentation~/RichTextPageBreak.md b/Documentation~/RichTextPageBreak.md
new file mode 100644
index 0000000..a04b948
--- /dev/null
+++ b/Documentation~/RichTextPageBreak.md
@@ -0,0 +1,5 @@
+# Page Break
+
+You can use the `` tag to insert page breaks in your text. This cuts the text into separate blocks.
+
+For page breaks to work, you must set the TextMesh Pro object's [**Overflow** mode](TMPObjectUIText.md#wrapping) to **Page**.
diff --git a/Documentation~/RichTextPos.md b/Documentation~/RichTextPos.md
new file mode 100644
index 0000000..3be5f5b
--- /dev/null
+++ b/Documentation~/RichTextPos.md
@@ -0,0 +1,21 @@
+# Horizontal Position
+
+The `` tag gives you direct control over the horizontal caret position. This works best with horizontal alignment.
+
+The `` tag's position in the line has no effect on the caret position.
+
+This tag is best used with left alignment.
+
+You can specify the horizontal position in pixels, font units, or percentages.
+
+**Example:**
+
+```
+at 75%
+at 25%
+at 50%
+at 0%
+```
+
+![](images/TMP_RichTextPos.png)
+_Setting caret positions_
diff --git a/Documentation~/RichTextRotate.md b/Documentation~/RichTextRotate.md
new file mode 100644
index 0000000..dd0087c
--- /dev/null
+++ b/Documentation~/RichTextRotate.md
@@ -0,0 +1,28 @@
+# Rotate
+
+Use the `` tag to rotate each character about its center. Specify the amount of rotation in degrees. Positive values rotate characters counter-clockwise. Negative values rotate them clockwise.
+
+Rotation affects the spacing between characters, and may cause characters to overlap in some cases. Use the [``](RichTextCharacterSpacing) tag to correct character spacing as needed.
+
+**Example:**
+
+```
+Rotate text counter-clockwise or clockwise
+```
+
+![](images/TMP_RichTextRotate.png)
+_Text rotated counter-clockwise (left) and clockwise (right)_
+
+```
+Rotate text counter-clockwise
+```
+
+![](images/TMP_RichTextRotateOverlap.png)
+_More rotation makes it more likely that characters overlap_
+
+```
+Rotate text counter-clockwise
+```
+
+![](images/TMP_RichTextRotateOverlapCorrected.png)
+_The `` tag adjusts character spacing, and can help correct overlap caused by rotation_
diff --git a/Documentation~/RichTextSize.md b/Documentation~/RichTextSize.md
new file mode 100644
index 0000000..d96ba25
--- /dev/null
+++ b/Documentation~/RichTextSize.md
@@ -0,0 +1,16 @@
+# Font Size
+
+Use the `` tag to adjust the font size of your text.
+
+You can specify the new size in pixels, font units, or percentage.
+
+Pixel adjustments can be absolute (`5px`, `10px`, and so on) or relative (`+1` or `-1`, for example). Relative sizes are based on the original font size, so they're not cumulative.
+
+**Example:**
+
+```
+Echo Echo Echo Echo Echo
+```
+
+![](images/TMP_RichTextSize.png)
+_Adjusting font size_
diff --git a/Documentation~/RichTextSpace.md b/Documentation~/RichTextSpace.md
new file mode 100644
index 0000000..e032116
--- /dev/null
+++ b/Documentation~/RichTextSpace.md
@@ -0,0 +1,16 @@
+# Horizontal Space
+
+The `` tag inserts a horizontal offset, as if you inserted multiple spaces.
+
+You can specify the offset in pixels or font units.
+
+When the `` tag touches adjacent text, it appends or prepends the offset to that text, which affects how the text wraps. If you do not want the offset to wrap independently of adjacent text, make sure to add a space character on either side of the `` tag.
+
+**Example:**
+
+```
+Give me some space.
+```
+
+![](images/TMP_RichTextSpace.png)
+_Adding some space_
diff --git a/Documentation~/RichTextSprite.md b/Documentation~/RichTextSprite.md
new file mode 100644
index 0000000..3fa77de
--- /dev/null
+++ b/Documentation~/RichTextSprite.md
@@ -0,0 +1,18 @@
+# Sprite
+
+The `` tag inserts images from a [Sprite Asset](Sprites.md) into your text. Sprite assets must be located in the folder specified in the [TextMesh Pro settings](Settings.md).
+
+You can access sprites from the default sprite assets by index `` or by name ``. When accessing a sprite from the default Asset by index, you can also use the index shorthand, ``,
+
+To use sprites from a different Asset, specify the Asset before accessing the sprites by index `` or by name ``.
+
+Adding the `tint=1` attribute to the tag tints the sprite with the [TextMesh Pro object's](TMPObjectUIText.md#Color) **Vertex Color**. You can choose a different color by adding a `color` attribute to the tag (`color=#FFFFFF`).
+
+**Example:**
+
+```
+Sprites! More sprites! And even more!
+```
+
+![](images/TMP_RichTextSprite.png)
+_Inserting sprites from the default sprite asset_
diff --git a/Documentation~/RichTextStrikethroughUnderline.md b/Documentation~/RichTextStrikethroughUnderline.md
new file mode 100644
index 0000000..b3cbac6
--- /dev/null
+++ b/Documentation~/RichTextStrikethroughUnderline.md
@@ -0,0 +1,16 @@
+# Strikethrough and Underline
+
+You can add additional lines that run along your text.
+
+- The `` tag draws the line slightly below the baseline to underline the text. The vertical offset is defined in the [Font Asset](FontAssetsProperties.md#FaceInfo).
+
+- The `` tag places the line slightly above the baseline so it crosses out the text.
+
+**Example:**
+
+```
+The quick brown fox jumps over the lazy dog.
+```
+
+![](images/TMP_RichTextStrikethroughUnderline.png)
+_Strikethrough and underline_
diff --git a/Documentation~/RichTextStyle.md b/Documentation~/RichTextStyle.md
new file mode 100644
index 0000000..414776c
--- /dev/null
+++ b/Documentation~/RichTextStyle.md
@@ -0,0 +1,15 @@
+# Style
+
+Apply custom styles using the `` tag, which simply closes the last style opened.
+
+**Example:**
+
+```
+
+You can create your own.
+```
+
+![](images/TMP_RichTextStyle.png)
+_Applying a custom style_
diff --git a/Documentation~/RichTextSubSuper.md b/Documentation~/RichTextSubSuper.md
new file mode 100644
index 0000000..df564d1
--- /dev/null
+++ b/Documentation~/RichTextSubSuper.md
@@ -0,0 +1,14 @@
+# Subscript and Superscript
+
+Use the `` and `` tags to render text as superscript or subscript. This is often used in scientific notation and ordinal numbering (1st, 2nd, etc.).
+
+Set the offset and size for sub- and superscript in the [Font Asset](FontAssetsProperties.md#FaceInfo).
+
+**Example:**
+
+```
+We have 1m3 of H2O.
+```
+
+![](images/TMP_RichTextSubSuper.png)
+_Subscript and superscript_
diff --git a/Documentation~/RichTextSupportedTags.md b/Documentation~/RichTextSupportedTags.md
new file mode 100644
index 0000000..477da71
--- /dev/null
+++ b/Documentation~/RichTextSupportedTags.md
@@ -0,0 +1,5 @@
+# Supported Rich Text Tags
+
+The following table is a quick reference of supported rich text tags. For details, see the main pages for specific tags.
+
+[!include[](include-rich-text-tags.md)]
\ No newline at end of file
diff --git a/Documentation~/RichTextVOffset.md b/Documentation~/RichTextVOffset.md
new file mode 100644
index 0000000..f273c9c
--- /dev/null
+++ b/Documentation~/RichTextVOffset.md
@@ -0,0 +1,16 @@
+# Vertical Offset
+
+Use the `` tag to offset the text baseline vertically. This adjusts the line height accordingly to accommodate the text's offset position. You can compensate for that adjustment by manually adjusting the line height.
+
+Specify the offset in pixels or font units. The offset is always relative to the original baseline.
+
+The `` closing tag resets the baseline back to its original position.
+
+**Example:**
+
+```
+Up up UP and down we go again.
+```
+
+![](images/TMP_RichTextVOffset.png)
+_Vertical offset_
diff --git a/Documentation~/RichTextWidth.md b/Documentation~/RichTextWidth.md
new file mode 100644
index 0000000..e50453d
--- /dev/null
+++ b/Documentation~/RichTextWidth.md
@@ -0,0 +1,18 @@
+# Text Width
+
+Use the `` tag adjust the horizontal size of text area. The change takes effect on the current line, after the tag. Typically, you place the tag at the start of a paragraph.
+
+If you add more than one `,width>` tag to a line, the last one takes precedence over the others.
+
+You can specify the width in either pixels, font units, or percentages. The adjusted width cannot exceed the TextMesh Pro object's original width.
+
+The closing `` tag reverts to the original width.
+
+**Example:**
+
+```
+I remember when we had lots of space for text.
+But those days are long gone.
+```
+![](images/TMP_RichTextWidth.png)
+_Adjusting text area width_
diff --git a/Documentation~/Settings.md b/Documentation~/Settings.md
new file mode 100644
index 0000000..06ed957
--- /dev/null
+++ b/Documentation~/Settings.md
@@ -0,0 +1,129 @@
+# Settings
+
+TextMesh Pro’s project-wide settings are stored in a special Asset named TMP Settings. This Asset must be stored in a Resources folder. By default it’s in the `Assets/TextMesh` Pro folder.
+
+To edit the settings, either select the Asset in the Project View or open the **Project Settings** window and choose **TextMesh Pro** from the category list.
+
+![](images/TMP_Settings_Inspector.png)
+_TextMesh Pro Settings_
+
+The Settings are divided into the following groups:
+
+|Group:|Function:|
+|-|-|
+|**A** | **[Default Font Asset](#default-font-asset):** Set the default font for text objects. |
+|**B** | **[Fallback Font Assets](#fallback-font-assets):** Choose font assets to search when TexMesh Pro can’t find a character in a text object’s main font Asset. |
+|**C** | **[Fallback Material Settings](#fallback-material-settings):** Set style options for characters retrieved from fallback fonts. |
+|**D** | **[Dynamic Font System Settings](#dynamic-font-system-settings):** Set options for handling missing characters. |
+|**E** | **[Text Container Default Settings](#text-container-default-settings):** Control the size of the text container for new text objects. |
+|**F** | **[Text Component Default Settings](#text-component-default-settings):** Set the basic text formatting options for new text objects. |
+|**G** | **[Default Sprite Asset](#default-sprite-asset):** Choose a default Sprite Asset to use for for rich text sprite tags that do not specify an Asset, and set other sprite-related options. |
+|**H** | **[Default Style Sheet](#default-style-sheet):** Choose a default style sheet. |
+|**I** | **[Color Gradient Presets](#color-gradient-presets):** Choose a location to store color gradient presets. |
+|**J** | **[Line Breaking for Asian Languages](#line-breaking-for-asian-languages):** Define leading and following characters in order to get proper line breaking when using Asian fonts. |
+
+## Default Font Asset
+
+![](images/TMP_Settings_DefaultFontAsset.png)
+
+|Property:|Function:|
+|---------|---------|
+|**Default Font Asset**|Specify the default font used when you create a new text object.
+|**Path**|Specify where to store font assets.
The **Path** must point to a subfolder of a Resources folder.|
+
+## Fallback Font Assets
+
+When a text object contains a character that is not in its font Asset, TextMesh Pro searches these font assets for the glyph. If the object’s font assets has a local fallback font list, TextMesh Pro searches the fonts in that list first.
+
+![](images/TMP_Settings_FallbackFontAssets.png)
+
+|Property:|Function:|
+|-|-|
+|**Fallback Font Assets List**|Manage the global fallback font assets.
Click **+** and **-** to add and remove font slots.
Click the circle icon next to a font to choose a font Asset using the Object Picker.
Drag the handles on the left side of any font Asset to reorder the list.|
+
+## Fallback Material Settings
+
+![](images/TMP_Settings_FallbackMaterialSettings.png)
+
+|Property:|Function:|
+|-|-|
+|**Match Material Presets**|Enable this setting to make glyphs from the fallback font match the style of the main font.
When TextMesh Pro uses a glyph from a fallback font, it creates a material with the same settings as the main font’s material.
This looks best when the main font and the fallback font are similar.|
+
+## Dynamic Font System Settings
+
+These are project-wide settings for handling missing glyphs.
+
+![](images/TMP_Settings_DynamicFontSystemSettings.png)
+
+|Property:|Function:|
+|-|-|
+|**Get Font Features at Runtime** | |
+|**Replacement**|Specify the ID of the character to use when TextMesh Pro cannot find a missing glyph in any of the fallback fonts.
The default value of 0 produces the outline of a square.|
+|**Disable Warnings**|Enable this setting to prevent Unity from logging a warning for every missing glyph.|
+
+## Text Container Default Settings
+
+These settings define the default size for text containers in new text objects.
+
+![](images/TMP_Settings_TextContainerDefaultSettings.png)
+
+|Property:|Function:|
+|-|-|
+|**TextMeshPro**|Set the default size of text containers for new TextMesh Pro 3D GameObjects, in Unity units.|
+|**TextMeshPro UI**|Set the default size of text containers for new TextMesh Pro UI GameObjects, in Unity units.|
+|**Enable Raycast Target** | Enable this option to make TextMesh Pro GameObjects targets for raycasting by default.
When you disable this option, the UI ignores TextMesh Pro GameObjects by default when determining what the cursor interacts with. |
+|**Auto Size Text Container**|Enable this option to automatically size text containers to fit the text when creating new TextMesh Pro UI GameObjects.|
+
+## Text Component Default Settings
+
+These settings define default values for new text objects. After adding a text object to the Scene, you can adjust these settings in the object's TextMesh Pro Inspector.
+
+![](images/TMP_Settings_TextComponentDefaultSettings.png)
+
+|Property:|Function:|
+|-|-|
+|**Default Font Size**|Set the default font size, in points.|
+|**Text Auto Size Ratios**|Set the default **Min** to **Max** size ratio TextMesh Pro uses when it [sets font size automatically](TMPObjectUIText.md#font).|
+|**Word Wrapping**|Enable this option to turn word wrapping on for all new text objects.|
+|**Kerning**|Enable this option to toggle kerning on for all new text objects.
If new objects use a font with no kerning data, enabling this setting has no effect.|
+|**Extra Padding**|Enable this option to add extra padding to character sprites.
TextMesh Pro creates sprites to fit the visible text, but the results aren't always perfect. This setting reduces the chances that glyphs are cut off at the boundaries of their sprites.|
+|**Tint All Sprites**|By default, sprites aren't affected by the text's vertex colors. Enable Tint All Sprites changes this.|
+|**Parse Escape Sequence**|Enable this option to make TextMesh Pro interpret backslash-escaped characters as special characters.
For example `\n` is interpreted as a newline, `\t` as a tab, and so on.
**Note:** This applies to rendered text. In code, escaped characters are already parsed by the compiler.|
+
+## Default Sprite Asset
+
+
+![](images/TMP_Settings_DefaultSpriteAsset.png)
+
+|Property:|Function:|
+|-|-|
+|**Default Sprite Asset** | Choose the [Sprite Asset](Sprites.md) for TextMesh Pro GameObjects to use by default. |
+|**IOS Emoji Support** | Toggle support for iOS emoji. |
+|**Path** | Specify where to store Sprite Assets.
The **Path** must point to a subfolder of a Resources folder. |
+
+## Default Style Sheet
+
+![](images/TMP_Settings_DefaultStyleSheet.png)
+
+|Property:|Function:|
+|-|-|
+|**Default Style Sheet**|You can choose a single [style sheet](StyleSheets.md) Asset, which is used by all text objects in the project.|
+
+## Color Gradient Presets
+
+![](images/TMP_Settings_ColorGradientPresets.png)
+
+|Property:|Function:|
+|-|-|
+|**Path**||
+
+## Line Breaking for Asian Languages
+
+To obtain correct line-breaking behavior for Asian languages, you must specify which characters behave as leading and following characters. This is done via two text assets.
+
+![](images/TMP_Settings_LineBreakingforAsianLanguages.png)
+
+|Property:|Function:|
+|-|-|
+|**Leading Characters**|Specify the text file that contains the list of leading characters.|
+|**Following Characters**|Specify the text file that contains the list of following characters.|
diff --git a/Documentation~/Shaders.md b/Documentation~/Shaders.md
new file mode 100644
index 0000000..28aaa2a
--- /dev/null
+++ b/Documentation~/Shaders.md
@@ -0,0 +1,17 @@
+# Shaders
+
+TextMesh Pro has been designed to take advantage of signed distance field (SDF) rendering and includes a collection of shaders for this purpose. There are also bitmap-only shaders, in case you don't want to use SDF rendering.
+
+All shaders have a desktop and a mobile version. The mobile versions are less demanding and suitable for mobile devices, but support fewer effects. All shaders can be found in the shader menu under TextMeshPro and TextMeshPro / Mobile.
+
+## SDF Shaders
+
+There are three variants of the SDF shader, known as Distance Field, Distance Field (Surface), and Distance Field Overlay. The regular and overlay shaders are unlit, so they don't interact with the Scene lighting. They can support locally simulated lighting effects instead.
+
+The surface shader versions do interact with the Scene lighting. They use Unity's surface shader framework and are quite flexible, but also more demanding on the GPU. They are not physically based shaders.
+
+SDF shaders can use the distance data to generate special effects, like outlines, underlays, and bevels. These effects often increase the visual size of the text. When taken to their extremes, you might see artifacts appear around the edges of character sprites. If this happens, scale down the effects. For example, a soft dilated underlay with large offsets might take things too far.
+
+The artifacts occur because data from adjacent characters in the font atlas will bleed into the current character. You can increase the padding when importing a font to give the effects more space.
+
+## Bitmap Shaders
diff --git a/Documentation~/ShadersBitmap.md b/Documentation~/ShadersBitmap.md
new file mode 100644
index 0000000..1aa6782
--- /dev/null
+++ b/Documentation~/ShadersBitmap.md
@@ -0,0 +1,38 @@
+# Bitmap Shader
+
+The Bitmap shader is designed to use bitmap-only fonts. It treats the font atlas like a regular texture, displaying it directly, and does not support any text effects. Bitmap-textured text becomes blocky when you zoom in on it.
+
+## Properties
+
+![](images/TMP_Shader_Bitmap.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+### Face
+
+Description
+
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** |Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling X/Y** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset X/Y** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface.|
+
+
+### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
diff --git a/Documentation~/ShadersBitmapCustomAtlas.md b/Documentation~/ShadersBitmapCustomAtlas.md
new file mode 100644
index 0000000..0f93cd5
--- /dev/null
+++ b/Documentation~/ShadersBitmapCustomAtlas.md
@@ -0,0 +1,39 @@
+# Bitmap Custom Atlas Shader
+
+The Bitmap shader is designed to use bitmap-only fonts. It treats the font atlas like a regular texture, displaying it directly, and does not support any text effects. Bitmap-textured text becomes blocky when you zoom in on it.
+
+## Properties
+
+![](images/TMP_Shader_BitmapCustomAtlas.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+### Face
+
+Description
+
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** |Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling X/Y** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset X/Y** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface. |
+
+
+### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+|Padding | | ???? |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
diff --git a/Documentation~/ShadersBitmapMobile.md b/Documentation~/ShadersBitmapMobile.md
new file mode 100644
index 0000000..25a4d12
--- /dev/null
+++ b/Documentation~/ShadersBitmapMobile.md
@@ -0,0 +1,38 @@
+# Bitmap Mobile Shader
+
+The mobile Bitmap shader is designed to use bitmap-only fonts. It treats the font atlas like a regular texture, displaying it directly, and does not support any text effects. Bitmap-textured text becomes blocky when you zoom in on it.
+
+Unlike the regular Bitmap shader, the mobile Bitmap shader does not support textures for the text face.
+
+## Properties
+
+![](images/TMP_Shader_BitmapMobile.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+### Face
+
+Description
+
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Diffuse Power** |Increase this value to multiply the text **Color**, which brightens the text. |
+
+
+### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
diff --git a/Documentation~/ShadersDistanceField.md b/Documentation~/ShadersDistanceField.md
new file mode 100644
index 0000000..12eee4e
--- /dev/null
+++ b/Documentation~/ShadersDistanceField.md
@@ -0,0 +1,212 @@
+# Distance Field / Distance Field Overlay Shaders
+
+The Distance Field and Distance Field Overlay shaders are two nearly-identical variants of the TextMesh Pro signed distance field (SDF)shader. The difference between the two is that the Distance Field Overlay variant always renders the TextMesh Pro object on top of everything else in the Scene, while the Distance Field variant renders the Scene normally—objects in front of the TextMesh Pro object are rendered on top of the text.
+
+![](images/IMAGE.png)
+
+Both of these variants are unlit, meaning they do not interact with Scene lighting. Instead, they can simulate local directional lighting effects.
+
+## Properties
+
+The Distance Field and Distance Field Overlay shaders have identical properties, which you can edit in the TextMesh Pro object Inspector.
+
+Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DF_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Adds a colored and/or textured outline to the text.
+
+![](images/Letter_C_half.png) **[Underlay](#Underlay):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[Lighting](#Lighting):** Simulates local directional lighting on the text.
+
+![](images/Letter_E_half.png) **[Glow](#Glow):** Adds a smooth outline to the text in order to simulate glow.
+
+![](images/Letter_F_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+### Face
+
+The Face properties control the overall appearance of the text.
+
+![](images/TMP_Shader_DF_Face.png)
+
+| Property: || Description |
+|--------------|---|-------------|
+| **Color** ||Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** ||Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling X/Y** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset X/Y** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface. |
+| **Speed X/Y** ||Animate the face texture by setting a value greater than **0**.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Softness** ||Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** ||Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+
+
+### Outline
+
+The outline properties allow you to add an outline to the text and control its appearance. The outline is not visible unless you set a **Thickness** value greater than **0**.
+
+![](images/TMP_Shader_DF_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.|
+| **Texture** |Apply a texture to the text outline.
The texture is multiplied with the outline **Color** to produce the final outline color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text outline.|
+| **Tiling** |???? |
+| **Offset** |???? |
+| **Speed** |Animate the outline texture by setting a value greater than 0.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+
+
+### Underlay
+
+Underlay adds an additional rendering of the text underneath the original rendering. You can use it to add a drop-shadow effect.
+
+![](images/TMP_Shader_DF_Underlay.png)
+
+| Property: | | Description |
+|--------------|---|-------------|
+| **Underlay Type** | |Choose the type of underlay to render.|
+| | None |No underlay. |
+| | Normal |Renders the underlay underneath the original text.
This creates a standard drop-shadow style effect.|
+| | Inner |Inverts the underlay and masks it with the original text so it is only visible inside the outline of the original letters.
This creates the type of drop shadow you would see through a cutout of the text.
To see an **Inner** underlay, you must make the text face transparent by setting its Alpha to **0**.|
+| **Color** | |Set the color of the underlay text. The default is a semi-transparent black.|
+| **Offset X/Offset Y** | |Offset the underlay text horizontally and vertically from the original text.
For example, if you’re using the underlay to create a drop shadow, you can position it to suggest a specific lighting direction.|
+| **Dilate** | |Adjust the position of the underlay text contour in the font's [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Softness** | |Adjust the softness of the underlay text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
When using the underlay to create a drop-shadow, you can use this setting to make the shadows harder or softer.|
+
+
+### Lighting
+
+The Distance Field shader does not react to Scene lighting. Instead, it uses the settings in this group to simulate local directional lighting, and light effects.
+
+If you want your text to react to Scene lighting, use the [Distance Field Surface](ShaderDistanceFieldSurface.md) shader.
+
+![](images/TMP_Shader_DF_Lighting.png)
+
+The Lighting properties are grouped into the following sections
+
+![](images/Letter_A_half.png) **[Bevel](#Bevel):**
+
+![](images/Letter_B_half.png) **[Local Lighting](#LocalLighting):**
+
+![](images/Letter_C_half.png) **[Bump Map](#BumpMap):**
+
+![](images/Letter_D_half.png) **[Environment Map](#EnvironmentMap):**
+
+
+
+#### Bevel
+
+A bevel adds the illusion of depth to your text. It works like a normal map, except that the shader calculates the bevel using the font’s signed distance field.
+
+Bevels are prone to showing artifacts, especially when they are too pronounced. These artifacts are more obvious on some materials than on others. Sometimes, artifacts that are more obvious on a simple material are hardly noticeable on a more complex material.
+
+Although bevels work best with text that has an outline, you can apply them to text with no outline. In that case, you must set a positive **Width**, and should set a negative **Offset** to ensure that the whole bevel is visible.
+
+![](images/TMP_Shader_DF_LightingBevel.png)
+
+| Property: | | Description |
+|--------------|-------------|-------------|
+| **Type** | | Choose the type of bevel to apply |
+| | Outer Bevel | Produces raised lettering with sloped sides.
The bevel starts at the outside of the outline and increases in height until it reaches the inside of the outline. |
+| | Inner Bevel | Produces text with a raised outline.
The bevel starts at the outside of the outline, increases in height until it reaches the middle of the outline, and decreases in height until it reaches the inside of the outline. |
+| **Amount** | | Adjust the steepness of the bevel.
This setting defines the apparent difference in height between low and high regions of the bevel. |
+| **Offset** | | Offset the bevel from its usual position so it no longer matches the outline.
Different offsets produce very different bevels.
This is especially useful when you apply a bevel to text with no outline. |
+| **Width** | | Adjust the bevel size.
Set a value of **0** to make the bevel fill the full thickness of the outline.
Set a positive value to make the bevel extend beyond both sides of the outline.
Set a negative value to shrink the bevel toward the middle of the outline.|
+| **Roundness** | | Increase this value to smooth out more angular regions of the bevel. The effect is often quite subtle. |
+| **Clamp** | | Set this value to limit the maximum height of the bevel.
Higher values mean the bevel reaches its maximum height sooner.
Clamped outer bevels end before reaching the inside edge of the outline.
Clamped inner bevels have a larger flat region in the middle of the outline. |
+
+
+#### Local Lighting
+
+These settings control simulated local directional lighting. They work in combination with the Bevel, Bump Map, and Environment Map settings.
+
+
+![](images/TMP_Shader_DF_LightingLocal.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Light Angle** | Adjust the angle, in radians, of the simulated local light illuminating the text.
The default angle is approximately π (pi) radians, which positions the light above the text.|
+| **Specular Color** | Set the tint for specular highlights.
These are the highlights you see when the text directly reflects the simulated local light source. |
+| **Specular Power** | Adjust the appearance of specular highlights. Larger values produce larger and brighter highlights. |
+| **Reflectivity Power** | Adjust the how much the **[Environment Map](#EnvironmentMap)** contributes to the final color of the text.
The higher the value, the more the text appears to reflect the environment map texture and color. |
+| **Diffuse Shadow** | Adjust the overall shadow level.
Higher values produce stronger shadowing, and consequently fewer apparent light effects on the text. |
+| **Ambient Shadow** | Adjust the ambient light level.
Settings lower than **1** darken the text color based on the slope of the text. This is a subtle effect that is only noticeable with strong bevels or normal maps. |
+
+
+#### Bump Map
+
+You can use a normal map as a bump map to add bumpiness to the text. The bump map affects both the text face and outline, but you can control how strongly it affects each one individually. If your text has both a bevel and a bump map, the two mix together.
+
+![](images/TMP_Shader_DF_LightingBump.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Texture** | Select a normal map texture to use as a bump map. |
+| **Face** | Control how much the bump map affects the text face.
A value of **0** shows no effect while a value of **1** shows the full effect of the bump map. |
+| **Outline** | Control how much the bump map affects the text outline.
A value of **0** shows nothing while a value of **1** shows the full effect of the bump map. |
+
+
+#### Environment Map
+
+You can use an environment map to add a reflection effect to your text face or outline, or for special image effects. The environment texture must be a cubemap. You can provide a static cubemap or create one at run time via a script.
+
+![](images/TMP_Shader_DF_LightingEnv.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Face Color** | Choose a color to use to tint reflections on the text face.
This color is multiplied with the environment map before the reflectivity effect is applied to the text face.
When this color is set to black, the environment map has no effect on the text face.
When this color is set to white, the environment map is at full strength on the text face. |
+| **Outline Color** | Choose a color to use to tint reflections on the text outline.
This color is multiplied with the environment map before the reflectivity effect is applied to the text outline.
When this color is set to black, the environment map has no effect on the text outline.
When this color is set to white, the environment map is at full strength on the text outline. |
+| **Texture** | Choose a cubemap texture to use as an environment map. |
+| **Rotation** | Rotate the environment map to control which parts of the texture are visible in the reflection. You can animate the rotation to create a sense of movement. |
+
+
+### Glow
+
+The **Glow** effect adds a smooth outline on top of other text effects, which is typically used to suggest a glow. The effect is additive, so it is more noticeable on dark backgrounds.
+
+When the glow extends beyond the text boundary, the surface shader shades it as if it were part of the solid text, meaning that it gets simulated lighting effects such as specular highlights.
+
+![](images/TMP_Shader_DF_Glow.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Set the tint and strength of the glow effect by adjusting the **Color** and **Alpha** values respectively. |
+| **Offset** | Adjust the center of the glow effect.
A value of **0** places the center of the glow effect right on the text contour.
Positive values move the center out from the contour. Negative values move it in toward the center of the text. |
+| **Inner** | Control how far the glow effect extends inward from the its start point (text contour + **Offset**). |
+| **Outer** | Control how far the glow effect extends outward from the text contour (text contour + Offset). |
+| **Power** | Control how the glow effect falls off from its center to its edges.
A value of **1** produces a strong, bright glow effect with a sharp linear falloff.
Lower values produce a glow effect with a quick drop in intensity followed by a more gradual falloff. |
+
+
+### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DF_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Mask** | | ???? |
+| | Mask Off | ???? |
+| | Mask Hard | ???? |
+| | Mask Soft | ???? |
+| **Mask Bounds** | | ???? |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Match Bounds Renderer** | | ???? |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
diff --git a/Documentation~/ShadersDistanceFieldMaskingMobile.md b/Documentation~/ShadersDistanceFieldMaskingMobile.md
new file mode 100644
index 0000000..8e4c83f
--- /dev/null
+++ b/Documentation~/ShadersDistanceFieldMaskingMobile.md
@@ -0,0 +1,97 @@
+# Distance Field Masking Mobile Shader
+
+The Distance Field and Distance Field Overlay shaders are two nearly-identical variants of the TextMesh Pro signed distance field (SDF)shader. The difference between the two is that the Distance Field Overlay variant always renders the TextMesh Pro object on top of everything else in the Scene, while the Distance Field variant renders the Scene normally—objects in front of the TextMesh Pro object are rendered on top of the text.
+
+![](images/IMAGE.png)
+
+Both of these variants are unlit, meaning they do not interact with Scene lighting. Instead, they can simulate local directional lighting effects.
+
+## Properties
+
+The Distance Field and Distance Field Overlay shaders have identical properties, which you can edit in the TextMesh Pro object Inspector.
+
+Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DFMM_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Adds a colored and/or textured outline to the text.
+
+![](images/Letter_C_half.png) **[Underlay](#Underlay):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+### Face
+
+The Face properties control the overall appearance of the text.
+
+![](images/TMP_Shader_DFMM_Face.png)
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Softness** |Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** |Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+
+
+### Outline
+
+The outline properties allow you to add an outline to the text and control its appearance. The outline is not visible unless you set a **Thickness** value greater than **0**.
+
+![](images/TMP_Shader_DFMM_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+
+
+### Underlay
+
+Underlay adds an additional rendering of the text underneath the original rendering. You can use it to add a drop-shadow effect.
+
+![](images/TMP_Shader_DF_Underlay.png)
+
+| Property: | | Description |
+|--------------|---|-------------|
+| **Underlay Type** | |Choose the type of underlay to render.|
+| | None |No underlay. |
+| | Normal |Renders the underlay underneath the original text.
This creates a standard drop-shadow style effect.|
+| | Inner |Inverts the underlay and masks it with the original text so it is only visible inside the outline of the original letters.
This creates the type of drop shadow you would see through a cutout of the text.
To see an **Inner** underlay, you must make the text face transparent by setting its Alpha to **0**.|
+| **Color** | |Set the color of the underlay text. The default is a semi-transparent black.|
+| **Offset X/Offset Y** | |Offset the underlay text horizontally and vertically from the original text.
For example, if you’re using the underlay to create a drop shadow, you can position it to suggest a specific lighting direction.|
+| **Dilate** | |Adjust the position of the underlay text contour in the font's [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Softness** | |Adjust the softness of the underlay text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
When using the underlay to create a drop-shadow, you can use this setting to make the shadows harder or softer.|
+
+
+### Debug Settings
+
+The debug section contains options for defining and controlling masking. It also exposes some of the shader’s internal properties, which can be helpful for troubleshooting.
+
+
+
+![](images/TMP_Shader_DFMM_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Mask Texture** | | Choose a texture file to use as a mask. Black and white images work best.
By default, black regions of the image mask the text, while white areas reveal it. |
+| **Inverse Mask** | | Invert the mask so that white regions of the image mask the text, while black areas reveal it. |
+| **Edge Color** | | Tint the edge of the mask with a specific color.
The softer the edge, the larger the tinted region. |
+| **Edge Softness** | | Make the edges of the mask softer or harder.
A value of **0.5** applies the mask as-is. Higher values soften the edges. Lower values make them sharper. |
+| **Wipe Position** | | Control the extent to which the text is masked.
A value of **0.5** masks the text exactly as defined by the **Mask Texture**.
A value of **0** fully exposes the text (no masking at all).
A value of **1** hides the text (all of the text is masked). |
+| **Softness X/Softness Y** | | Apply soft masking to the text in either axis.
Increase the **X** value to add soft masking to the left and right sides of the text. Increase the **Y** value to add soft masking at the top and bottom.
This masking is added to any masking defined by the **Mask Texture**.|
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
diff --git a/Documentation~/ShadersDistanceFieldMobile.md b/Documentation~/ShadersDistanceFieldMobile.md
new file mode 100644
index 0000000..5cfb2bc
--- /dev/null
+++ b/Documentation~/ShadersDistanceFieldMobile.md
@@ -0,0 +1,91 @@
+# Distance Field / Distance Field Overlay Mobile Shaders
+
+The Distance Field and Distance Field Overlay shaders are two nearly-identical variants of the TextMesh Pro signed distance field (SDF)shader. The difference between the two is that the Distance Field Overlay variant always renders the TextMesh Pro object on top of everything else in the Scene, while the Distance Field variant renders the Scene normally—objects in front of the TextMesh Pro object are rendered on top of the text.
+
+![](images/IMAGE.png)
+
+Both of these variants are unlit, meaning they do not interact with Scene lighting. Instead, they can simulate local directional lighting effects.
+
+## Properties
+
+The Distance Field and Distance Field Overlay shaders have identical properties, which you can edit in the TextMesh Pro object Inspector.
+
+Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DF_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Adds a colored and/or textured outline to the text.
+
+![](images/Letter_C_half.png) **[Underlay](#Underlay):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+### Face
+
+The Face properties control the overall appearance of the text.
+
+![](images/TMP_Shader_DF_Face.png)
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Softness** |Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** |Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+
+
+### Outline
+
+The outline properties allow you to add an outline to the text and control its appearance. The outline is not visible unless you set a **Thickness** value greater than **0**.
+
+![](images/TMP_Shader_DF_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+
+
+### Underlay
+
+Underlay adds an additional rendering of the text underneath the original rendering. You can use it to add a drop-shadow effect.
+
+![](images/TMP_Shader_DF_Underlay.png)
+
+| Property: | | Description |
+|--------------|---|-------------|
+| **Underlay Type** | |Choose the type of underlay to render.|
+| | None |No underlay. |
+| | Normal |Renders the underlay underneath the original text.
This creates a standard drop-shadow style effect.|
+| | Inner |Inverts the underlay and masks it with the original text so it is only visible inside the outline of the original letters.
This creates the type of drop shadow you would see through a cutout of the text.
To see an **Inner** underlay, you must make the text face transparent by setting its Alpha to **0**.|
+| **Color** | |Set the color of the underlay text. The default is a semi-transparent black.|
+| **Offset X/Offset Y** | |Offset the underlay text horizontally and vertically from the original text.
For example, if you’re using the underlay to create a drop shadow, you can position it to suggest a specific lighting direction.|
+| **Dilate** | |Adjust the position of the underlay text contour in the font's [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Softness** | |Adjust the softness of the underlay text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
When using the underlay to create a drop-shadow, you can use this setting to make the shadows harder or softer.|
+
+
+### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DF_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
diff --git a/Documentation~/ShadersDistanceFieldSurface.md b/Documentation~/ShadersDistanceFieldSurface.md
new file mode 100644
index 0000000..b663b7e
--- /dev/null
+++ b/Documentation~/ShadersDistanceFieldSurface.md
@@ -0,0 +1,158 @@
+# Distance Field (Surface) Shader
+
+The Distance Field (Surface) surface shader is similar to the Distance Field shader, but rather than simulating local directional lighting, it interacts with Scene lighting. It is not a physically based shader.
+
+This shader uses Unity's surface shader framework, which makes it quite flexible, but also more demanding on the GPU.
+
+## Properties
+![](images/TMP_Shader_DFS_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the appearance of the text face.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Controls the appearance of the text outline.
+
+![](images/Letter_C_half.png) **[Bevel](#Bevel):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[SurfaceLighting](#SurfaceLighting):** Controls the appearance of locally simulated lighting on the text.
+
+![](images/Letter_E_half.png) **[Bump Map](#BumpMap):** Adds bumpiness to the text face and/or outline using a normal map texture.
+
+![](images/Letter_F_half.png) **[Environment Map](#EnvironmentMap):** Adds a reflection effect to the text face and/or outline using a normal map texture
+
+![](images/Letter_G_half.png) **[Glow](#Glow):** Adds a smooth outline to the text in order to simulate glow.
+
+![](images/Letter_H_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+### Face
+
+You edit Distance Field Surface shader properties in the TextMesh Pro object Inspector. Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DFS_Face.png)
+
+| Property: || Description |
+|--------------|----|-------------|
+| **Color** ||Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** ||Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's Horizontal Mapping and Vertical Mapping properties. |
+| **Offset** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface.|
+| **Speed** ||Animate the face texture by setting a value greater than **0**.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Softness** ||Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** ||Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Gloss** ||Adjust the glossiness of the text face.
Glossiness determines the appearance of specular highlights when light hits the text. Higher values produce smaller specular highlights.|
+
+
+### Outline
+
+Description
+
+![](images/TMP_Shader_DFS_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.
Tthe outline is not visible unless you set a **Thickness** value greater than **0**.|
+| **Texture** |Apply a texture to the text outline.
The texture is multiplied with the outline **Color** to produce the final outline color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text outline.|
+| **Tiling** |???? |
+| **Offset** |???? |
+| **Speed** |Animate the outline texture by setting a value greater than 0.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+| **Gloss** |Adjust the glossiness of the text outline.
Glossiness determines the appearance of specular highlights when light hits the text. Higher values produce smaller specualr highlights.|
+
+
+### Bevel
+
+A bevel adds the illusion of depth to your text. It works like a normal map, except that the shader calculates the bevel sing the font’s signed distance field.
+
+Bevels are prone to showing artifacts, especially when they are too pronounced. These artifacts are more or less obvious, depending on the material you use. Sometimes, artifacts that are more obvious on a simple material are hardly noticeable on a more complex material.
+
+Although bevels work best with text that has an outline, you can apply them to text without an outline as well.
+
+![](images/TMP_Shader_DFS_Bevel.png)
+
+| Property: | | Description |
+|--------------|-------------|-------------|
+| **Type** | | Choose the type of bevel to apply |
+| | Outer Bevel | Produces raised lettering with sloped sides.
The bevel starts at the outside of the outline and increases in height until it reaches the inside of the outline. |
+| | Inner Bevel | Produces text with a raised outline.
The bevel starts at the outside of the outline, increases in height until it reaches the middle of the outline, and decreases in height until it reaches the inside of the outline. |
+| **Amount** | | Adjust the steepness of the bevel.
This setting defines the apparent difference in height between low and high regions of the bevel. |
+| **Offset** | | Offset the bevel from its usual position so it no longer matches the outline.
Different offsets produce very different bevels.
This is especially useful when you apply a bevel to text with no outline. |
+| **Width** | | Adjust the bevel size.
Set a value of **0** to make the bevel fill the full thickness of the outline.
Set a positive value to make the bevel extend beyond both sides of the outline.
Set a negative value to shrink the bevel toward the middle of the outline.
If you are setting a bevel for text with no outline, you must set a positive **Width**. You should also set a negative **Offset** to ensure that the whole bevel is visible. |
+| **Roundness** | | Increase this value to smooth out more angular regions of the bevel. The effect is often quite subtle. |
+| **Clamp** | | Set this value to limit the maximum height of the bevel.
Higher values mean the bevel reaches its maximum height sooner.
Clamped outer bevels end before reaching the inside edge of the outline.
Clamped inner bevels have a larger flat region in the middle of the outline. |
+
+
+### Surface Lighting
+
+These settings control simulated local directional lighting. They work in combination with the Bevel, Bump Map, and Environment Map settings.
+
+
+![](images/TMP_Shader_DFS_SurfaceLighting.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Specular Color** | Set the tint for specular highlights.
These are the highlights you see when the text directly reflects the simulated local light source. |
+
+
+### Bump Map
+
+You can use a normal map as a bump map to add bumpiness to the text. The bump map affects both the text face and outline, but you can control how strongly it affects each one individually. If your text has both a bevel and a bump map, the two mix together.
+
+![](images/TMP_Shader_DFS_Bump.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Texture** | Select a normal map texture to use as a bump map. |
+| **Face** | Control how much the bump map affects the text face.
A value of **0** shows no effect while a value of **1** shows the full effect of the bump map. |
+| **Outline** | Control how much the bump map affects the text outline.
A value of **0** shows nothing while a value of **1** shows the full effect of the bump map. |
+
+
+### Environment Map
+
+An environment map can be used to add a reflection effect to your text face or outline. You can either use it for reflections of a static Scene or for special image effects. The mobile shaders do not support this.The environment texture is a cubemap. You can either provide a static cubemap or create one at run time via a script.
+
+![](images/TMP_Shader_DFS_EnvMap.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Face Color** | Choose a color to use to tint reflections on the text face.
This color is multiplied with the environment map before the reflectivity effect is applied to the text face.
When this color is set to black, the environment map has no effect on the text face.
When this color is set to white, the environment map is at full strength on the text face. |
+| **Outline Color** | Choose a color to use to tint reflections on the text outline.
This color is multiplied with the environment map before the reflectivity effect is applied to the text outline.
When this color is set to black, the environment map has no effect on the text outline.
When this color is set to white, the environment map is at full strength on the text outline. |
+| **Texture** | Choose a cubemap texture to use as an environment map. |
+| **Rotation** | Rotate the environment map to control which parts of the texture are visible in the reflection. You can animate the rotation to create a sense of movement. |
+
+
+### Glow
+
+The **Glow** effect adds a smooth outline on top of other text effects, which is typically used to suggest a glow. The effect is additive, so it is more noticeable on dark backgrounds.
+
+When the glow extends beyond the text boundary, the surface shader shades it as if it were part of the solid text, meaning that it gets simulated lighting effects such as specular highlights.
+
+![](images/TMP_Shader_DFS_Glow.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Set the tint and strength of the glow effect by adjusting the **Color** and **Alpha** values respectively. |
+| **Offset** | Adjust the center of the glow effect.
A value of **0** places the center of the glow effect right on the text contour.
Positive values move the center out from the contour. Negative values move it in toward the center of the text. |
+| **Inner** | Control how far the glow effect extends inward from the its start point (text contour + **Offset**). |
+| **Outer** | Control how far the glow effect extends outward from the text contour (text contour + Offset). |
+| **Power** | Control how the glow effect falls off from its center to its edges.
A value of **1** produces a strong, bright glow effect with a sharp linear falloff.
Lower values produce a glow effect with a quick drop in intensity followed by a more gradual falloff. |
+
+
+### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DFS_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
diff --git a/Documentation~/ShadersDistanceFieldSurfaceMobile.md b/Documentation~/ShadersDistanceFieldSurfaceMobile.md
new file mode 100644
index 0000000..db175b3
--- /dev/null
+++ b/Documentation~/ShadersDistanceFieldSurfaceMobile.md
@@ -0,0 +1,89 @@
+# Distance Field (Surface) Mobile Shader
+
+The Distance Field (Surface) surface shader is similar to the Distance Field shader, but rather than simulating local directional lighting, it interacts with Scene lighting. It is not a physically based shader.
+
+This shader uses Unity's surface shader framework, which makes it quite flexible, but also more demanding on the GPU.
+
+## Properties
+![](images/TMP_Shader_DFS_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the appearance of the text face.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Controls the appearance of the text outline.
+
+![](images/Letter_C_half.png) **[Glow](#Glow):** Adds a smooth outline to the text in order to simulate glow.
+
+![](images/Letter_D_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+### Face
+
+You edit Distance Field Surface shader properties in the TextMesh Pro object Inspector. Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DFS_Face.png)
+
+| Property: || Description |
+|--------------|---|-------------|
+| **Color** ||Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** ||Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface.|
+| **Speed** ||Animate the face texture by setting a value greater than **0**.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Softness** ||Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** ||Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Gloss** ||Adjust the glossiness of the text face.
Glossiness determines the appearance of specular highlights when light hits the text. Higher values produce smaller specular highlights.|
+
+
+### Outline
+
+Description
+
+![](images/TMP_Shader_DFS_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.
Tthe outline is not visible unless you set a **Thickness** value greater than **0**.|
+| **Texture** |Apply a texture to the text outline.
The texture is multiplied with the outline **Color** to produce the final outline color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text outline.|
+| **Tiling** |???? |
+| **Offset** |???? |
+| **Speed** |Animate the outline texture by setting a value greater than 0.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+| **Gloss** |Adjust the glossiness of the text outline.
Glossiness determines the appearance of specular highlights when light hits the text. Higher values produce smaller specualr highlights.|
+
+
+### Glow
+
+The **Glow** effect adds a smooth outline on top of other text effects, which is typically used to suggest a glow. The effect is additive, so it is more noticeable on dark backgrounds.
+
+When the glow extends beyond the text boundary, the surface shader shades it as if it were part of the solid text, meaning that it gets simulated lighting effects such as specular highlights.
+
+![](images/TMP_Shader_DFS_Glow.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Set the tint and strength of the glow effect by adjusting the **Color** and **Alpha** values respectively. |
+| **Offset** | Adjust the center of the glow effect.
A value of **0** places the center of the glow effect right on the text contour.
Positive values move the center out from the contour. Negative values move it in toward the center of the text. |
+| **Inner** | Control how far the glow effect extends inward from the its start point (text contour + **Offset**). |
+| **Outer** | Control how far the glow effect extends outward from the text contour (text contour + Offset). |
+| **Power** | Control how the glow effect falls off from its center to its edges.
A value of **1** produces a strong, bright glow effect with a sharp linear falloff.
Lower values produce a glow effect with a quick drop in intensity followed by a more gradual falloff. |
+
+
+### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DFS_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
diff --git a/Documentation~/ShadersSprite.md b/Documentation~/ShadersSprite.md
new file mode 100644
index 0000000..a1e0f02
--- /dev/null
+++ b/Documentation~/ShadersSprite.md
@@ -0,0 +1,26 @@
+# Sprite Shader
+
+
+
+## Properties
+
+|Property:||Function:|
+|--|--|--|
+|**Sprite Texture** | | |
+|**Tiling X/Y** | | |
+|**Offset X/Y** | | |
+|**Tint** | | |
+|**Stencil Comparison** | | |
+|**Stencil ID** | | |
+|**Stencil Operation** | | |
+|**Stencil Write Mask** | | |
+|**Stencil Read Mask** | | |
+|**Color Mask** | | |
+|**Clip Rect** | | |
+|**Use Alpha Clip** | | |
+|**Render Queue** | | |
+| |From Shader | |
+| |Geometry | |
+| |Alpha Test | |
+| |Transparent | |
+|Double Sided Global Illumination | | |
diff --git a/Documentation~/Sprites.md b/Documentation~/Sprites.md
new file mode 100644
index 0000000..836aa06
--- /dev/null
+++ b/Documentation~/Sprites.md
@@ -0,0 +1,91 @@
+# Sprites
+
+TextMesh Pro allows you to include sprites in your text via [rich text tags](RichTextSprite.md).
+
+To use sprites in your Scene, you need a Sprite Asset. You create sprite assets from atlas textures that each contain a given set of sprites.
+
+![](images/TMP_SpriteAtlas.png)
+_A sprite atlas texture_
+
+You can use as many sprite atlases and assets as you like, but keep in mind that using multiple atlases per text object results in multiple draw calls for that object, which consumes more system resources. As a rule, try to stick to one atlas per object.
+
+**Note:** Sprites are regular bitmap textures, so make sure that their resolution is high enough to display correctly on your target platforms.
+
+## Using Sprite Assets
+
+To use a sprite Asset in your project, put it in a `Resources/Sprites` folder. This allows TextMesh Pro to find it.
+
+Once you've added/created your sprite assets, you can set one as the default source for sprites in the project. You set the default sprite Asset in the [TextMesh Pro Settings](Settings.md#DefaultSprite).
+
+You can also choose sprite assets to use with specific text objects. Edit a [TexMesh Pro 3D]() or [TextmeshPro UI]() Asset to specify a sprite Asset to use with the font.
+
+## Creating a Sprite Asset
+
+You create sprite assets from atlas textures. Although sprite assets and their source textures are separate entities, you must keep the source textures in the project after creating the sprite assets.
+
+1. Select the texture you want to use for the Sprite Asset.
+
+1. In the Inspector, change the following Texture Importer properties.
+
+ * Set the **Texture Type** to **Sprite (2D and UI)**.
+
+ * Set the **Sprite Mode** to **Multiple**.
![](images/TMP_InspectorSpriteTexture.png)
+
+1. Open the Sprite Editor from the Inspector, or choose **Window > 2D > Sprite Editor** from the menu, and use it to divide the texture into individual sprites.
+
+1. With the texture still selected, choose **Asset > Create > TextMesh Pro > Sprite Asset** from the menu to create a new sprite Asset.
+
+After creating the sprite Asset, you can revert the atlas texture's **Texture Type**
+to its original setting.
+
+## Sprite Asset Properties
+
+![](images/TMP_InspectorSpriteAsset.png)
+
+The Sprite Asset properties are divided into the following groups:
+
+![](images/Letter_A_half.png) **[Sprite Info](#SpriteInfo):** Provides references to the sprite Asset's material and source texture.
+
+![](images/Letter_B_half.png) **[Fallback Sprite Assets](#FallbackSpriteAssets):** Provides references to the sprite Asset's material and source texture.
+
+![](images/Letter_C_half.png) **[Sprite List](#SpriteList):** Provides references to the sprite Asset's material and source texture.
+
+
+### Sprite Info
+
+![](images/TMP_InspectorSpriteAssetSpriteInfo.png)
+
+|Property:|Function:|
+|-|-|
+|**Sprite Atlas**|A reference to the sprite Asset's source texture.|
+|**Default Material**|A reference to the sprite Asset's material, which it uses to render sprites.|
+
+
+### Fallback Sprite Assets
+
+![](images/TMP_InspectorSpriteAssetFallback.png)
+
+When TextMesh Pro can't find a glyph in this sprite assets, it searches the fallback sprite assets that you specify here.
+
+|Property:|Function:|
+|-|-|
+|**Fallback Sprite Asset List**|Manage the fallback sprite assets.
Click **+** and **-** to add and remove font slots.
Click the circle icon next to a font to choose a font Asset using the Object Picker.
Drag the handles on the left side of any font Asset to reorder the list.|
+
+
+### Sprite List
+
+![](images/TMP_InspectorSpriteAssetSpriteList.png)
+
+|Property:||Function:|
+|-|-|-|
+|**Sprite Search**||Search the sprite list by **ID** or **Name**.
Search results are ordered by **ID**, lowest to highest.|
+|**Previous Page / Next Page**||Long sprite lists are split into pages, which you can navigate using these buttons (also located at the bottom of the section).|
+|**Sprite Properties**||Manage the sprites in this Asset.
Click a sprite to make it active.
Click **Up** or **Down** to move the sprite up or down in the list.
Enter an **ID** in the text field and click **Goto** to move the sprite to that position in then list.
**Note:** Moving a sprite updates its **ID** and the **ID**s of all preceding sprites accordingly.
Click **+** to add a copy of the sprite to the list.
Click **-** to remove the sprite from the list.|
+||ID|A unique ID for the sprite, based on its portion in the list.
You can use this value in [rich text tags](RichTextSprite.md) tags to add this sprite to text.
Reordering the list updates the **ID**s of any affected sprites|
+||Unicode|????|
+||Name|A unique name for the sprite.
You can change this value, but it must be unique in the list
You can use this value in [rich text tags](RichTextSprite.md) to add this sprite to text.|
+||X, Y, W, H|The rectangular area the character occupies in the sprite atlas.|
+||OX, OY|Control the placement of the sprite, defined at its top-left corner relative to its origin on the baseline.|
+||Adv.|Specify how far to advance along the baseline before placing the next sprite.|
+||SF|Change this scaling factor value to adjust the size of the sprite.|
+|**Global Offsets & Scale**||Use these settings to override the following values for all sprites in the Asset: **OX**, **OY**, **ADV.**, and **SF.**|
diff --git a/Documentation~/StyleSheets.md b/Documentation~/StyleSheets.md
new file mode 100644
index 0000000..6ab676b
--- /dev/null
+++ b/Documentation~/StyleSheets.md
@@ -0,0 +1,46 @@
+# Style Sheets
+
+Use style sheets to create custom text styles that you can apply to text using the [``
+
+
+## The default style sheet
+
+The default style sheet is the style sheet that every TextMesh Pro object in your
+
+TextMesh Pro ships with a default style sheet stored in the **TextMesh Pro > Resources > Style Sheets** folder, but you can set any style sheet to be the default.
+
+To change the default style sheet, set the **Default Style Sheet > Default Style Sheet** option in the [TextMesh Pro settings](Settings.md).
+
+## Per-object style sheets
+
+
+
+## Creating custom style sheets
+
+To create a new style sheet, choose **Assets > Create > TextMesh Pro > Style Sheet** from the menu.
+
+This adds a new TextMesh Pro style sheet to the Project. Open it in the Inspector to add custom styles.
+
+### Adding new styles
+
+
+
+### Removing styles
diff --git a/Documentation~/TMPObject3DText.md b/Documentation~/TMPObject3DText.md
new file mode 100644
index 0000000..3159468
--- /dev/null
+++ b/Documentation~/TMPObject3DText.md
@@ -0,0 +1,49 @@
+# 3D Text GameObjects
+
+By default, a TextMesh Pro 3D Text GameObject has the following components:
+
+* **Rect Transform:** Controls the GameObject's position and size. For more information, see the [Rect Transform](https://docs.unity3d.com/Manual/class-RectTransform.html) documentation in the Unity Manual.
+
+> [!NOTE]
+> **Note:** If you want to use the Rect Transform component's anchoring system, the TextMesh Pro component's parent GameObject must also have a Rect Transform component.
+
+* **Mesh Renderer:** Renders the GameObject. For more information, see the [Mesh Renderer](https://docs.unity3d.com/Manual/class-MeshRenderer.html) documentation in the Unity Manual.
+* **TextMesh Pro UGUI (Script):** Contains the text to display, and the properties that control its appearance and behavior. These properties are described [below](#properties).
+* **Material:** A Unity material that uses one of the TextMesh Pro shaders to further control the text's appearance. For more information see the [Shaders](Shaders.md) section.
+
+## Properties Overview
+
+![](images/TMP_Object_3DInspector.png)
+
+[!include[](include-tmpobject-legend.md)]
+
+[!include[](include-tmpobject-text.md)]
+
+[!include[](include-tmpobject-main-settings.md)]
+
+[!include[](include-tmpobject-font.md)]
+
+[!include[](include-tmpobject-color.md)]
+
+[!include[](include-tmpobject-spacing.md)]
+
+[!include[](include-tmpobject-alignment.md)]
+
+[!include[](include-tmpobject-wrapping.md)]
+
+[!include[](include-tmpobject-uv-mapping.md)]
+
+[!include[](include-tmpobject-extra-settings-3d.md)]
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation~/TMPObjectUIText.md b/Documentation~/TMPObjectUIText.md
new file mode 100644
index 0000000..6169641
--- /dev/null
+++ b/Documentation~/TMPObjectUIText.md
@@ -0,0 +1,33 @@
+# UI Text GameObjects
+
+By default, a TextMesh Pro UI Text GameObject has the following components:
+
+* **Rect Transform:** Controls the GameObject's position and size on the canvas. For more information, see the [Rect Transform](https://docs.unity3d.com/Manual/class-RectTransform.html) documentation in the Unity Manual.
+* **Canvas Renderer:** Renders the GameObject on the canvas. For more information, see the [Canvas Renderer](https://docs.unity3d.com/Manual/class-CanvasRenderer.html) documentation in the Unity Manual.
+* **TextMesh Pro UGUI (Script):** Contains the text to display, and the properties that control its appearance and behavior. These properties are described [below](properties).
+* **Material:** A Unity material that uses one of the TextMesh Pro shaders to further control the text's appearance. For more information see the [Shaders](Shaders.md) section.
+
+## Properties Overview
+
+![](images/TMP_Object_UIInspector.png)
+
+[!include[](include-tmpobject-legend.md)]
+
+[!include[](include-tmpobject-text.md)]
+
+[!include[](include-tmpobject-main-settings.md)]
+
+[!include[](include-tmpobject-font.md)]
+
+[!include[](include-tmpobject-color.md)]
+
+[!include[](include-tmpobject-spacing.md)]
+
+[!include[](include-tmpobject-alignment.md)]
+
+[!include[](include-tmpobject-wrapping.md)]
+
+[!include[](include-tmpobject-uv-mapping.md)]
+
+[!include[](include-tmpobject-extra-settings-ui.md)]
+
diff --git a/Documentation~/TMPObjects.md b/Documentation~/TMPObjects.md
new file mode 100644
index 0000000..f898aff
--- /dev/null
+++ b/Documentation~/TMPObjects.md
@@ -0,0 +1,37 @@
+# Creating text
+
+To create text, add TextMesh Pro GameObjects to a Scenes. There are two types of TextMesh Pro GameObject:
+
+- [TextMesh Pro UI Text GameObjects](TMPObjectUIText.md) use [Unity's UI system](https://docs.unity3d.com/Manual/UISystem.html), and are designed for use on a [Canvas](https://docs.unity3d.com/Manual/UICanvas.html).
+
+- [TextMesh Pro 3D Text GameObjects](TMPObject3DText.md) behave like regular 3D GameObjects in the Scene.
+
+
+## TextMesh Pro UI Text GameObjects
+
+TextMesh Pro UI text objects use [Unity's UI system](https://docs.unity3d.com/Manual/UISystem.html). When you create one, it is placed on a [Canvas](https://docs.unity3d.com/Manual/UICanvas.html) in the Scene. If the Scene does not have a canvas, Unity creates one automatically when you create the TexMesh Pro UI text GameObject.
+
+**To create a new TextMesh Pro UI Text GameObject:**
+
+1. From the menu, choose **GameObject > UI > TextMesh Pro - Text**.
+1. In the **TextMesh Pro (UGUI)** Inspector, enter your text.
+1. Adjust the [UI text properties](TMPObjectUIText.md) as needed.
+
+### Other TextMesh Pro UI GameObjects
+
+In addition to the UI text GameObject, you can create TextMesh Pro **Dropdown** and **Input Field** components from the **GameObject > UI** menu.
+
+These components are nearly identical to regular Unity UI components, but have a few key differences:
+
+* The TextMesh Pro Dropdown GameObject uses [TextMesh Pro font assets](FontAssets.md) instead of regular Unity font assets.
For more information about Unity dropdowns, see the [Dropdown](https://docs.unity3d.com/Manual/script-Dropdown.html) documentation in the Unity manual.
+* The TextMesh Pro Input Field GameObject uses uses [TextMesh Pro font assets](FontAssets.md) instead of regular Unity font assets, and has more options for defining the input field.
For more information about Unity input fields, see the [Input Field](https://docs.unity3d.com/Manual/script-InputField.html) documentation in the Unity manual.
+
+## TextMesh Pro 3D Text GameObjects
+
+TextMesh Pro 3D text objects are nearly identical to their UI counterparts, but rather than being positioned on a Canvas, they behave like regular 3D objects in the Scene.
+
+**To create a new TextMesh Pro 3D Text GameObject:**
+
+1. From the menu, choose **GameObject > 3D GameObject > TextMesh Pro - Text**.
+1. In the **TextMesh Pro** Inspector, enter your text.
+1. Adjust the [3D text properties](TMPObject3DText.md) as needed.
diff --git a/Documentation~/TableOfContents.md b/Documentation~/TableOfContents.md
new file mode 100644
index 0000000..dcdf510
--- /dev/null
+++ b/Documentation~/TableOfContents.md
@@ -0,0 +1,68 @@
+* [Home](index)
+* [Creating text](TMPObjects)
+ * [UI Text GameObjects](TMPObjectUIText)
+ * [3D Text GameObjects](TMPObject3DText)
+* [Font Assets](FontAssets)
+ * [Font Asset Properties](FontAssetsProperties)
+ * [Font Asset Creator](FontAssetsCreator)
+ * [Line Metrics](FontAssetsLineMetrics)
+ * [Signed Distance Fields](FontAssetsSDF)
+ * [Dynamic Fonts](FontAssetsDynamicFonts)
+ * [The Fallback Chain](FontAssetsFallback)
+* [Rich Text Tags](RichText)
+ * [Supported Tags](RichTextSupportedTags)
+ * [](RichTextAlignment)
+ * [](RichTextLetterCase)
+ * [](RichTextOpacity)
+ * [](RichTextBoldItalic)
+ * [](RichTextColor)
+ * [](RichTextCharacterSpacing)
+ * [](RichTextFont)
+ * [](RichTextFontWeight)
+ * [](RichTextGradient)
+ * [](RichTextBoldItalic)
+ * [](RichTextIndentation)
+ * [](RichTextLineHeight)
+ * [](RichTextLineIndentation)
+ * [](RichTextLink)
+ * [](RichTextLetterCase)
+ * [](RichTextMargins)
+ * [](RichTextMark)
+ * [](RichTextMonospace)
+ * [](RichTextNoBreak)
+ * [](RichTextNoParse)
+ * [](RichTextPageBreak)
+ * [](RichTextPos)
+ * [](RichTextRotate)
+ * [](RichTextStrikethroughUnderline)
+ * [](RichTextSize)
+ * [](RichTextLetterCase)
+ * [](RichTextSpace)
+ * [](RichTextSprite)
+ * [` tag, which simply closes the last style opened.
+
+**Example:**
+
+```
+
+You can create your own.
+```
+
+![](images/TMP_RichTextStyle.png)
+_Applying a custom style_
+
+
+----
+_NEW FILE:_ RichTextSubSuper.md
+
+
+
+## Subscript and Superscript
+
+Use the `` and `` tags to render text as superscript or subscript. This is often used in scientific notation and ordinal numbering (1st, 2nd, etc.).
+
+Set the offset and size for sub- and superscript in the [Font Asset](FontAssetsProperties.md#FaceInfo).
+
+**Example:**
+
+```
+We have 1m3 of H2O.
+```
+
+![](images/TMP_RichTextSubSuper.png)
+_Subscript and superscript_
+
+
+----
+_NEW FILE:_ RichTextSubSuper.md
+
+
+
+## Subscript and Superscript
+
+Use the `` and `` tags to render text as superscript or subscript. This is often used in scientific notation and ordinal numbering (1st, 2nd, etc.).
+
+Set the offset and size for sub- and superscript in the [Font Asset](FontAssetsProperties.md#FaceInfo).
+
+**Example:**
+
+```
+We have 1m3 of H2O.
+```
+
+![](images/TMP_RichTextSubSuper.png)
+_Subscript and superscript_
+
+
+----
+_NEW FILE:_ RichTextStrikethroughUnderline.md
+
+
+
+## Strikethrough and Underline
+
+You can add additional lines that run along your text.
+
+- The `` tag draws the line slightly below the baseline to underline the text. The vertical offset is defined in the [Font Asset](FontAssetsProperties.md#FaceInfo).
+
+- The `` tag places the line slightly above the baseline so it crosses out the text.
+
+**Example:**
+
+```
+The quick brown fox jumps over the lazy dog.
+```
+
+![](images/TMP_RichTextStrikethroughUnderline.png)
+_Strikethrough and underline_
+
+
+----
+_NEW FILE:_ RichTextLetterCase.md
+
+
+
+## Lowercase, Uppercase, and Smallcaps
+
+The ``, ``, `` and `` tags alter the capitalization of your text before rendering. The text in the **Text** field remains as you entered it.
+
+* The `` and `` tags work as you would expect, converting to all capitals or no capitals before rendering.
+
+* The `` tag is functionally identical to ``.
+
+* The `` tag works like ``, but also reduces the size of all characters that you entered in lowercase.
+
+**Example:**
+
+```
+Alice and Bob watched TV.
+Alice and Bob watched TV.
+Alice and Bob watched TV.
+Alice and Bob watched TV.
+```
+![](images/TMP_RichTextLetterCase.png)
+_Modifying capitalization._
+
+
+----
+_NEW FILE:_ RichTextVOffset.md
+
+
+
+## Vertical Offset
+
+Use the `` tag to offset the text baseline vertically. This adjusts the line height accordingly to accommodate the text's offset position. You can compensate for that adjustment by manually adjusting the line height.
+
+Specify the offset in pixels or font units. The offset is always relative to the original baseline.
+
+The `` closing tag resets the baseline back to its original position.
+
+**Example:**
+
+```
+Up up UP and down we go again.
+```
+
+![](images/TMP_RichTextVOffset.png)
+_Vertical offset_
+
+
+----
+_NEW FILE:_ RichTextWidth.md
+
+
+
+## Text Width
+
+Use the `` tag adjust the horizontal size of text area. The change takes effect on the current line, after the tag. Typically, you place the tag at the start of a paragraph.
+
+If you add more than one `,width>` tag to a line, the last one takes precedence over the others.
+
+You can specify the width in either pixels, font units, or percentages. The adjusted width cannot exceed the TextMesh Pro object's original width.
+
+The closing `` tag reverts to the original width.
+
+**Example:**
+
+```
+I remember when we had lots of space for text.
+But those days are long gone.
+```
+![](images/TMP_RichTextWidth.png)
+_Adjusting text area width_
+
+
+----
+_NEW FILE:_ StyleSheets.md
+
+
+
+# Style Sheets
+
+Use style sheets to create custom text styles that you can apply to text using the [``
+
+
+## The default style sheet
+
+The default style sheet is the style sheet that every TextMesh Pro object in your
+
+TextMesh Pro ships with a default style sheet stored in the **TextMesh Pro > Resources > Style Sheets** folder, but you can set any style sheet to be the default.
+
+To change the default style sheet, set the **Default Style Sheet > Default Style Sheet** option in the [TextMesh Pro settings](Settings.md).
+
+## Per-object style sheets
+
+
+
+## Creating custom style sheets
+
+To create a new style sheet, choose **Assets > Create > TextMesh Pro > Style Sheet** from the menu.
+
+This adds a new TextMesh Pro style sheet to the Project. Open it in the Inspector to add custom styles.
+
+### Adding new styles
+
+
+
+### Removing styles
+
+
+----
+_NEW FILE:_ Sprites.md
+
+
+
+# Sprites
+
+TextMesh Pro allows you to include sprites in your text via [rich text tags](RichTextSprite.md).
+
+To use sprites in your Scene, you need a Sprite Asset. You create sprite assets from atlas textures that each contain a given set of sprites.
+
+![](images/TMP_SpriteAtlas.png)
+_A sprite atlas texture_
+
+You can use as many sprite atlases and assets as you like, but keep in mind that using multiple atlases per text object results in multiple draw calls for that object, which consumes more system resources. As a rule, try to stick to one atlas per object.
+
+**Note:** Sprites are regular bitmap textures, so make sure that their resolution is high enough to display correctly on your target platforms.
+
+## Using Sprite Assets
+
+To use a sprite Asset in your project, put it in a `Resources/Sprites` folder. This allows TextMesh Pro to find it.
+
+Once you've added/created your sprite assets, you can set one as the default source for sprites in the project. You set the default sprite Asset in the [TextMesh Pro Settings](Settings.md#DefaultSprite).
+
+You can also choose sprite assets to use with specific text objects. Edit a [TexMesh Pro 3D]() or [TextmeshPro UI]() Asset to specify a sprite Asset to use with the font.
+
+## Creating a Sprite Asset
+
+You create sprite assets from atlas textures. Although sprite assets and their source textures are separate entities, you must keep the source textures in the project after creating the sprite assets.
+
+1. Select the texture you want to use for the Sprite Asset.
+
+1. In the Inspector, change the following Texture Importer properties.
+
+ * Set the **Texture Type** to **Sprite (2D and UI)**.
+
+ * Set the **Sprite Mode** to **Multiple**.
![](images/TMP_InspectorSpriteTexture.png)
+
+1. Open the Sprite Editor from the Inspector, or choose **Window > 2D > Sprite Editor** from the menu, and use it to divide the texture into individual sprites.
+
+1. With the texture still selected, choose **Asset > Create > TextMesh Pro > Sprite Asset** from the menu to create a new sprite Asset.
+
+After creating the sprite Asset, you can revert the atlas texture's **Texture Type**
+to its original setting.
+
+## Sprite Asset Properties
+
+![](images/TMP_InspectorSpriteAsset.png)
+
+The Sprite Asset properties are divided into the following groups:
+
+![](images/Letter_A_half.png) **[Sprite Info](#SpriteInfo):** Provides references to the sprite Asset's material and source texture.
+
+![](images/Letter_B_half.png) **[Fallback Sprite Assets](#FallbackSpriteAssets):** Provides references to the sprite Asset's material and source texture.
+
+![](images/Letter_C_half.png) **[Sprite List](#SpriteList):** Provides references to the sprite Asset's material and source texture.
+
+
+### Sprite Info
+
+![](images/TMP_InspectorSpriteAssetSpriteInfo.png)
+
+|Property:|Function:|
+|-|-|
+|**Sprite Atlas**|A reference to the sprite Asset's source texture.|
+|**Default Material**|A reference to the sprite Asset's material, which it uses to render sprites.|
+
+
+### Fallback Sprite Assets
+
+![](images/TMP_InspectorSpriteAssetFallback.png)
+
+When TextMesh Pro can't find a glyph in this sprite assets, it searches the fallback sprite assets that you specify here.
+
+|Property:|Function:|
+|-|-|
+|**Fallback Sprite Asset List**|Manage the fallback sprite assets.
Click **+** and **-** to add and remove font slots.
Click the circle icon next to a font to choose a font Asset using the Object Picker.
Drag the handles on the left side of any font Asset to reorder the list.|
+
+
+### Sprite List
+
+![](images/TMP_InspectorSpriteAssetSpriteList.png)
+
+|Property:||Function:|
+|-|-|-|
+|**Sprite Search**||Search the sprite list by **ID** or **Name**.
Search results are ordered by **ID**, lowest to highest.|
+|**Previous Page / Next Page**||Long sprite lists are split into pages, which you can navigate using these buttons (also located at the bottom of the section).|
+|**Sprite Properties**||Manage the sprites in this Asset.
Click a sprite to make it active.
Click **Up** or **Down** to move the sprite up or down in the list.
Enter an **ID** in the text field and click **Goto** to move the sprite to that position in then list.
**Note:** Moving a sprite updates its **ID** and the **ID**s of all preceding sprites accordingly.
Click **+** to add a copy of the sprite to the list.
Click **-** to remove the sprite from the list.|
+||ID|A unique ID for the sprite, based on its portion in the list.
You can use this value in [rich text tags](RichTextSprite.md) tags to add this sprite to text.
Reordering the list updates the **ID**s of any affected sprites|
+||Unicode|????|
+||Name|A unique name for the sprite.
You can change this value, but it must be unique in the list
You can use this value in [rich text tags](RichTextSprite.md) to add this sprite to text.|
+||X, Y, W, H|The rectangular area the character occupies in the sprite atlas.|
+||OX, OY|Control the placement of the sprite, defined at its top-left corner relative to its origin on the baseline.|
+||Adv.|Specify how far to advance along the baseline before placing the next sprite.|
+||SF|Change this scaling factor value to adjust the size of the sprite.|
+|**Global Offsets & Scale**||Use these settings to override the following values for all sprites in the Asset: **OX**, **OY**, **ADV.**, and **SF.**|
+
+
+----
+_NEW FILE:_ ColorGradients.md
+
+
+
+# Color Gradients
+
+You can apply gradients of up to four colors to TextMesh Pro GameObjects. When you add a gradient, TextMesh Pro applies it to each character in the text individually. It stores gradient colors as in each character sprite's vertex colors.
+
+![](images/TMP_ColorGradient_4-Corner-no-legend.png)
+
+_TextMesh Pro text with a four-color gradient_
+
+Because each character sprite consists of two triangles, gradients tend to have a dominant direction. This is most obvious in diagonal gradients.
+
+For example, the dominant direction in gradient below favors the red and black colors in the bottom-left and top-right corners
+
+![](images/TMP_ColorGradient_3-Corner-YBRY_half.png)
+
+When you reverse the gradient colors, so both the top-right and bottom-left corners are yellow, the dominant color changes.
+
+![](images/TMP_ColorGradient_3-Corner-RYYB_half.png)
+
+
+TextMesh Pro multiplies gradient colors with the text's main vertex color (**Main Settings > Vertex Color** in the TextMesh Pro Inspector). If the main vertex color is white you see only the gradient colors. If it’s black you don’t see the gradient colors at all.
+
+## Applying a Gradient
+
+To apply a gradient to a TextMesh Pro GameObject, edit the [Gradient properties](TMPObjectUIText.md#color) in the Inspector.
+
+> [!NOTE]
+> - To apply a gradient to only a portion of the text, use the [gradient](RichTextGradient.md) rich text tag.
+> - To apply a gradient to multiple text objects, use a [gradient preset](ColorGradientsPresets.md).
+
+![](images/TMP_ColorGradientInspector.png)
+
+**To apply a color gradient to a TextMesh Pro GameObject:**
+
+1. Enable the **Main Settings > Color Gradient** property.
+
+1. Set **Main Settings > Color Gradient > Color Mode** to the [type of gradient](ColorGradientsTypes.md) you want to apply.
+
+1. Use the **Main Settings > Color Gradient > Colors** settings to choose colors for the gradient. For each color you can:
+
+ - Click the color swatch to open a [Color Picker](https://docs.unity3d.com/Manual/EditingValueProperties.html).
+ - Use the eyedropper to pick a color from anywhere on your screen.
+ - Enter the color’s hexadecimal value directly in the text field.
+
+
+----
+_NEW FILE:_ ColorGradientsTypes.md
+
+
+
+## Color Gradient Types
+
+You can apply the following types of gradients to text.
+
+- **[Single](#single-color):** A single color that is TextMesh Pro multiplies with the text object's vertex color.
+
+- **[Horizontal](#horizontal-gradients):** A two-color side-to-side gradient.
+
+- **[Vertical](#vertical-gradients):** A two-color up-and-down gradient.
+
+- **[Four Corner](#four-corner-gradients):** A four-color gradient. Each color radiates from one corner.
+
+![](images/TMP_ColorGradientInspector.png)
+_The TexMesh Pro color gradient settings_
+
+The number of colors available in the **Colors** settings depends on the type of gradient you choose. Each swatch corresponds to the color's origin on a character sprite.
+
+The image above shows a the settings for a four color gradient. Each color originates in the corresponding corner of the sprite (top-left, top-right, bottom-left, bottom-right). IT produces the following gradient:
+
+![](images/TMP_ColorGradient_4-Corner-YBRG_half.png)
+
+
+### Single Color
+
+The **Single** gradient type applies a single color.
+
+![](images/TMP_ColorGradient_Single-Y_half.png)
+
+### Horizontal Gradients
+
+The **Horizontal** gradient type applies two colors, and produces a side to side transition between them on each character.
+
+![](images/TMP_ColorGradient_Horiz-YB_half.png)
+
+![](images/TMP_ColorGradient_Horiz-BY_half.png)
+
+### Vertical Gradients
+
+The **Vertical** gradient type consists of two colors, and produces an up and down transition between the two on each character.
+
+![](images/TMP_ColorGradient_Vert-BY_half.png)
+
+![](images/TMP_ColorGradient_Vert-YB_half.png)
+
+### Four Corner Gradients
+
+The **Four Corner** gradient type applies four colors. Each one radiates out from its assigned corner of each character.
+
+![](images/TMP_ColorGradient_4-Corner-YBRG_half.png)
+
+![](images/TMP_ColorGradient_4-Corner-YBRO_half.png)
+
+This is the most versatile gradient type. By varying some colors and keeping others identical, you can create different kinds of gradients. For example:
+
+- Give three corners one color and the fourth a different color.
+
+![](images/TMP_ColorGradient_1-Corner-BYYY_half.png)
+
+- Give pairs of adjacent corners the same color to create horizontal or vertical gradients.
+
+![](images/TMP_ColorGradient_2-Corner-BYBY_half.png)
+
+![](images/TMP_ColorGradient_2-Corner-BBYY_half.png)
+
+- Give pairs of diagonally opposite corners the same color to create diagonal gradients.
+
+![](images/TMP_ColorGradient_2-Corner-BYYB_half.png)
+
+- Create horizontal and vertical 3-color gradients with a dominant color at one end and a transition between two colors at the other.
+
+![](images/TMP_ColorGradient_3-Corner-YRYB_half.png)
+
+![](images/TMP_ColorGradient_3-Corner-YYRB_half.png)
+
+- Give two diagonally opposite corners same color and give the other two corners different colors to create a diagonal stripe 3-color gradient.
+
+![](images/TMP_ColorGradient_3-Corner-RYYB_half.png)
+
+![](images/TMP_ColorGradient_3-Corner-YBRY_half.png)
+
+
+----
+_NEW FILE:_ ColorGradientsPresets.md
+
+
+
+## Gradient Presets
+
+Use gradient presets to reuse the same color gradients across text objects. A gradient preset overrides the text’s local gradient type and colors.
+
+You have to store Gradient presets in a specific folder so TextMesh Pro can find them and include them in builds. You can change the folder from the [TextMesh Pro settings](Settings.md#color-gradient-presets).
+
+### Creating gradient presets
+
+To create a gradient preset, choose **Assets > Create > TextMesh Pro > Color Gradient** from the menu.
+
+This adds a new TextMesh Pro Color Gradient Asset to the Scene, and opens it in the Inspector.
+
+![](images/TMP_ColorGradientPresetCreator.png)
+
+You can then select a [gradient type](ColorGradientTypes.md) from the **Color Mode** dropdown, and set the gradient **Colors**.
+
+### Applying gradient presets
+
+You apply a gradient preset to text from the TextMesh Pro Inspector.
+
+**To apply a gradient preset:**
+
+1. Enable the **Main Settings > Color Gradient** property.
+
+1. Open the Object Picker (circle icon) for **Main Settings > Color Preset**, and choose choose a preset
+
+When you apply a gradient preset, the Inspector overrides the text's gradient type and colors with the values from the preset.
+
+> [!CAUTION]
+> If you modify the gradient settings in the TextMesh Pro Inspector after you apply a preset, it affects the preset itself. Changes affect every object that uses the same preset.
+
+### Removing gradient presets
+
+To remove a gradient preset, open the Object Picker (circle icon) for **Main Settings > Color Preset**, and choose **None**.
+
+When you remove the preset, the text reverts to its local gradient properties.
+
+
+----
+_NEW FILE:_ Shaders.md
+
+
+
+# Shaders
+
+TextMesh Pro has been designed to take advantage of signed distance field (SDF) rendering and includes a collection of shaders for this purpose. There are also bitmap-only shaders, in case you don't want to use SDF rendering.
+
+All shaders have a desktop and a mobile version. The mobile versions are less demanding and suitable for mobile devices, but support fewer effects. All shaders can be found in the shader menu under TextMeshPro and TextMeshPro / Mobile.
+
+## SDF Shaders
+
+There are three variants of the SDF shader, known as Distance Field, Distance Field (Surface), and Distance Field Overlay. The regular and overlay shaders are unlit, so they don't interact with the Scene lighting. They can support locally simulated lighting effects instead.
+
+The surface shader versions do interact with the Scene lighting. They use Unity's surface shader framework and are quite flexible, but also more demanding on the GPU. They are not physically based shaders.
+
+SDF shaders can use the distance data to generate special effects, like outlines, underlays, and bevels. These effects often increase the visual size of the text. When taken to their extremes, you might see artifacts appear around the edges of character sprites. If this happens, scale down the effects. For example, a soft dilated underlay with large offsets might take things too far.
+
+The artifacts occur because data from adjacent characters in the font atlas will bleed into the current character. You can increase the padding when importing a font to give the effects more space.
+
+## Bitmap Shaders
+
+
+----
+_NEW FILE:_ ShadersDistanceField.md
+
+
+
+### Distance Field / Distance Field Overlay Shaders
+
+The Distance Field and Distance Field Overlay shaders are two nearly-identical variants of the TextMesh Pro signed distance field (SDF)shader. The difference between the two is that the Distance Field Overlay variant always renders the TextMesh Pro object on top of everything else in the Scene, while the Distance Field variant renders the Scene normally—objects in front of the TextMesh Pro object are rendered on top of the text.
+
+![](images/IMAGE.png)
+
+Both of these variants are unlit, meaning they do not interact with Scene lighting. Instead, they can simulate local directional lighting effects.
+
+#### Properties
+
+The Distance Field and Distance Field Overlay shaders have identical properties, which you can edit in the TextMesh Pro object Inspector.
+
+Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DF_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Adds a colored and/or textured outline to the text.
+
+![](images/Letter_C_half.png) **[Underlay](#Underlay):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[Lighting](#Lighting):** Simulates local directional lighting on the text.
+
+![](images/Letter_E_half.png) **[Glow](#Glow):** Adds a smooth outline to the text in order to simulate glow.
+
+![](images/Letter_F_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+The Face properties control the overall appearance of the text.
+
+![](images/TMP_Shader_DF_Face.png)
+
+| Property: || Description |
+|--------------|---|-------------|
+| **Color** ||Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** ||Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling X/Y** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset X/Y** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface. |
+| **Speed X/Y** ||Animate the face texture by setting a value greater than **0**.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Softness** ||Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** ||Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+
+
+##### Outline
+
+The outline properties allow you to add an outline to the text and control its appearance. The outline is not visible unless you set a **Thickness** value greater than **0**.
+
+![](images/TMP_Shader_DF_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.|
+| **Texture** |Apply a texture to the text outline.
The texture is multiplied with the outline **Color** to produce the final outline color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text outline.|
+| **Tiling** |???? |
+| **Offset** |???? |
+| **Speed** |Animate the outline texture by setting a value greater than 0.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+
+
+##### Underlay
+
+Underlay adds an additional rendering of the text underneath the original rendering. You can use it to add a drop-shadow effect.
+
+![](images/TMP_Shader_DF_Underlay.png)
+
+| Property: | | Description |
+|--------------|---|-------------|
+| **Underlay Type** | |Choose the type of underlay to render.|
+| | None |No underlay. |
+| | Normal |Renders the underlay underneath the original text.
This creates a standard drop-shadow style effect.|
+| | Inner |Inverts the underlay and masks it with the original text so it is only visible inside the outline of the original letters.
This creates the type of drop shadow you would see through a cutout of the text.
To see an **Inner** underlay, you must make the text face transparent by setting its Alpha to **0**.|
+| **Color** | |Set the color of the underlay text. The default is a semi-transparent black.|
+| **Offset X/Offset Y** | |Offset the underlay text horizontally and vertically from the original text.
For example, if you’re using the underlay to create a drop shadow, you can position it to suggest a specific lighting direction.|
+| **Dilate** | |Adjust the position of the underlay text contour in the font's [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Softness** | |Adjust the softness of the underlay text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
When using the underlay to create a drop-shadow, you can use this setting to make the shadows harder or softer.|
+
+
+##### Lighting
+
+The Distance Field shader does not react to Scene lighting. Instead, it uses the settings in this group to simulate local directional lighting, and light effects.
+
+If you want your text to react to Scene lighting, use the [Distance Field Surface](ShaderDistanceFieldSurface.md) shader.
+
+![](images/TMP_Shader_DF_Lighting.png)
+
+The Lighting properties are grouped into the following sections
+
+![](images/Letter_A_half.png) **[Bevel](#Bevel):**
+
+![](images/Letter_B_half.png) **[Local Lighting](#LocalLighting):**
+
+![](images/Letter_C_half.png) **[Bump Map](#BumpMap):**
+
+![](images/Letter_D_half.png) **[Environment Map](#EnvironmentMap):**
+
+
+
+###### Bevel
+
+A bevel adds the illusion of depth to your text. It works like a normal map, except that the shader calculates the bevel using the font’s signed distance field.
+
+Bevels are prone to showing artifacts, especially when they are too pronounced. These artifacts are more obvious on some materials than on others. Sometimes, artifacts that are more obvious on a simple material are hardly noticeable on a more complex material.
+
+Although bevels work best with text that has an outline, you can apply them to text with no outline. In that case, you must set a positive **Width**, and should set a negative **Offset** to ensure that the whole bevel is visible.
+
+![](images/TMP_Shader_DF_LightingBevel.png)
+
+| Property: | | Description |
+|--------------|-------------|-------------|
+| **Type** | | Choose the type of bevel to apply |
+| | Outer Bevel | Produces raised lettering with sloped sides.
The bevel starts at the outside of the outline and increases in height until it reaches the inside of the outline. |
+| | Inner Bevel | Produces text with a raised outline.
The bevel starts at the outside of the outline, increases in height until it reaches the middle of the outline, and decreases in height until it reaches the inside of the outline. |
+| **Amount** | | Adjust the steepness of the bevel.
This setting defines the apparent difference in height between low and high regions of the bevel. |
+| **Offset** | | Offset the bevel from its usual position so it no longer matches the outline.
Different offsets produce very different bevels.
This is especially useful when you apply a bevel to text with no outline. |
+| **Width** | | Adjust the bevel size.
Set a value of **0** to make the bevel fill the full thickness of the outline.
Set a positive value to make the bevel extend beyond both sides of the outline.
Set a negative value to shrink the bevel toward the middle of the outline.|
+| **Roundness** | | Increase this value to smooth out more angular regions of the bevel. The effect is often quite subtle. |
+| **Clamp** | | Set this value to limit the maximum height of the bevel.
Higher values mean the bevel reaches its maximum height sooner.
Clamped outer bevels end before reaching the inside edge of the outline.
Clamped inner bevels have a larger flat region in the middle of the outline. |
+
+
+###### Local Lighting
+
+These settings control simulated local directional lighting. They work in combination with the Bevel, Bump Map, and Environment Map settings.
+
+
+![](images/TMP_Shader_DF_LightingLocal.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Light Angle** | Adjust the angle, in radians, of the simulated local light illuminating the text.
The default angle is approximately π (pi) radians, which positions the light above the text.|
+| **Specular Color** | Set the tint for specular highlights.
These are the highlights you see when the text directly reflects the simulated local light source. |
+| **Specular Power** | Adjust the appearance of specular highlights. Larger values produce larger and brighter highlights. |
+| **Reflectivity Power** | Adjust the how much the **[Environment Map](#EnvironmentMap)** contributes to the final color of the text.
The higher the value, the more the text appears to reflect the environment map texture and color. |
+| **Diffuse Shadow** | Adjust the overall shadow level.
Higher values produce stronger shadowing, and consequently fewer apparent light effects on the text. |
+| **Ambient Shadow** | Adjust the ambient light level.
Settings lower than **1** darken the text color based on the slope of the text. This is a subtle effect that is only noticeable with strong bevels or normal maps. |
+
+
+###### Bump Map
+
+You can use a normal map as a bump map to add bumpiness to the text. The bump map affects both the text face and outline, but you can control how strongly it affects each one individually. If your text has both a bevel and a bump map, the two mix together.
+
+![](images/TMP_Shader_DF_LightingBump.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Texture** | Select a normal map texture to use as a bump map. |
+| **Face** | Control how much the bump map affects the text face.
A value of **0** shows no effect while a value of **1** shows the full effect of the bump map. |
+| **Outline** | Control how much the bump map affects the text outline.
A value of **0** shows nothing while a value of **1** shows the full effect of the bump map. |
+
+
+###### Environment Map
+
+You can use an environment map to add a reflection effect to your text face or outline, or for special image effects. The environment texture must be a cubemap. You can provide a static cubemap or create one at run time via a script.
+
+![](images/TMP_Shader_DF_LightingEnv.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Face Color** | Choose a color to use to tint reflections on the text face.
This color is multiplied with the environment map before the reflectivity effect is applied to the text face.
When this color is set to black, the environment map has no effect on the text face.
When this color is set to white, the environment map is at full strength on the text face. |
+| **Outline Color** | Choose a color to use to tint reflections on the text outline.
This color is multiplied with the environment map before the reflectivity effect is applied to the text outline.
When this color is set to black, the environment map has no effect on the text outline.
When this color is set to white, the environment map is at full strength on the text outline. |
+| **Texture** | Choose a cubemap texture to use as an environment map. |
+| **Rotation** | Rotate the environment map to control which parts of the texture are visible in the reflection. You can animate the rotation to create a sense of movement. |
+
+
+##### Glow
+
+The **Glow** effect adds a smooth outline on top of other text effects, which is typically used to suggest a glow. The effect is additive, so it is more noticeable on dark backgrounds.
+
+When the glow extends beyond the text boundary, the surface shader shades it as if it were part of the solid text, meaning that it gets simulated lighting effects such as specular highlights.
+
+![](images/TMP_Shader_DF_Glow.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Set the tint and strength of the glow effect by adjusting the **Color** and **Alpha** values respectively. |
+| **Offset** | Adjust the center of the glow effect.
A value of **0** places the center of the glow effect right on the text contour.
Positive values move the center out from the contour. Negative values move it in toward the center of the text. |
+| **Inner** | Control how far the glow effect extends inward from the its start point (text contour + **Offset**). |
+| **Outer** | Control how far the glow effect extends outward from the text contour (text contour + Offset). |
+| **Power** | Control how the glow effect falls off from its center to its edges.
A value of **1** produces a strong, bright glow effect with a sharp linear falloff.
Lower values produce a glow effect with a quick drop in intensity followed by a more gradual falloff. |
+
+
+##### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DF_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Mask** | | ???? |
+| | Mask Off | ???? |
+| | Mask Hard | ???? |
+| | Mask Soft | ???? |
+| **Mask Bounds** | | ???? |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Match Bounds Renderer** | | ???? |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
+
+
+----
+_NEW FILE:_ ShadersDistanceField.md
+
+
+
+### Distance Field / Distance Field Overlay Shaders
+
+The Distance Field and Distance Field Overlay shaders are two nearly-identical variants of the TextMesh Pro signed distance field (SDF)shader. The difference between the two is that the Distance Field Overlay variant always renders the TextMesh Pro object on top of everything else in the Scene, while the Distance Field variant renders the Scene normally—objects in front of the TextMesh Pro object are rendered on top of the text.
+
+![](images/IMAGE.png)
+
+Both of these variants are unlit, meaning they do not interact with Scene lighting. Instead, they can simulate local directional lighting effects.
+
+#### Properties
+
+The Distance Field and Distance Field Overlay shaders have identical properties, which you can edit in the TextMesh Pro object Inspector.
+
+Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DF_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Adds a colored and/or textured outline to the text.
+
+![](images/Letter_C_half.png) **[Underlay](#Underlay):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[Lighting](#Lighting):** Simulates local directional lighting on the text.
+
+![](images/Letter_E_half.png) **[Glow](#Glow):** Adds a smooth outline to the text in order to simulate glow.
+
+![](images/Letter_F_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+The Face properties control the overall appearance of the text.
+
+![](images/TMP_Shader_DF_Face.png)
+
+| Property: || Description |
+|--------------|---|-------------|
+| **Color** ||Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** ||Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling X/Y** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset X/Y** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface. |
+| **Speed X/Y** ||Animate the face texture by setting a value greater than **0**.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Softness** ||Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** ||Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+
+
+##### Outline
+
+The outline properties allow you to add an outline to the text and control its appearance. The outline is not visible unless you set a **Thickness** value greater than **0**.
+
+![](images/TMP_Shader_DF_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.|
+| **Texture** |Apply a texture to the text outline.
The texture is multiplied with the outline **Color** to produce the final outline color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text outline.|
+| **Tiling** |???? |
+| **Offset** |???? |
+| **Speed** |Animate the outline texture by setting a value greater than 0.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+
+
+##### Underlay
+
+Underlay adds an additional rendering of the text underneath the original rendering. You can use it to add a drop-shadow effect.
+
+![](images/TMP_Shader_DF_Underlay.png)
+
+| Property: | | Description |
+|--------------|---|-------------|
+| **Underlay Type** | |Choose the type of underlay to render.|
+| | None |No underlay. |
+| | Normal |Renders the underlay underneath the original text.
This creates a standard drop-shadow style effect.|
+| | Inner |Inverts the underlay and masks it with the original text so it is only visible inside the outline of the original letters.
This creates the type of drop shadow you would see through a cutout of the text.
To see an **Inner** underlay, you must make the text face transparent by setting its Alpha to **0**.|
+| **Color** | |Set the color of the underlay text. The default is a semi-transparent black.|
+| **Offset X/Offset Y** | |Offset the underlay text horizontally and vertically from the original text.
For example, if you’re using the underlay to create a drop shadow, you can position it to suggest a specific lighting direction.|
+| **Dilate** | |Adjust the position of the underlay text contour in the font's [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Softness** | |Adjust the softness of the underlay text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
When using the underlay to create a drop-shadow, you can use this setting to make the shadows harder or softer.|
+
+
+##### Lighting
+
+The Distance Field shader does not react to Scene lighting. Instead, it uses the settings in this group to simulate local directional lighting, and light effects.
+
+If you want your text to react to Scene lighting, use the [Distance Field Surface](ShaderDistanceFieldSurface.md) shader.
+
+![](images/TMP_Shader_DF_Lighting.png)
+
+The Lighting properties are grouped into the following sections
+
+![](images/Letter_A_half.png) **[Bevel](#Bevel):**
+
+![](images/Letter_B_half.png) **[Local Lighting](#LocalLighting):**
+
+![](images/Letter_C_half.png) **[Bump Map](#BumpMap):**
+
+![](images/Letter_D_half.png) **[Environment Map](#EnvironmentMap):**
+
+
+
+###### Bevel
+
+A bevel adds the illusion of depth to your text. It works like a normal map, except that the shader calculates the bevel using the font’s signed distance field.
+
+Bevels are prone to showing artifacts, especially when they are too pronounced. These artifacts are more obvious on some materials than on others. Sometimes, artifacts that are more obvious on a simple material are hardly noticeable on a more complex material.
+
+Although bevels work best with text that has an outline, you can apply them to text with no outline. In that case, you must set a positive **Width**, and should set a negative **Offset** to ensure that the whole bevel is visible.
+
+![](images/TMP_Shader_DF_LightingBevel.png)
+
+| Property: | | Description |
+|--------------|-------------|-------------|
+| **Type** | | Choose the type of bevel to apply |
+| | Outer Bevel | Produces raised lettering with sloped sides.
The bevel starts at the outside of the outline and increases in height until it reaches the inside of the outline. |
+| | Inner Bevel | Produces text with a raised outline.
The bevel starts at the outside of the outline, increases in height until it reaches the middle of the outline, and decreases in height until it reaches the inside of the outline. |
+| **Amount** | | Adjust the steepness of the bevel.
This setting defines the apparent difference in height between low and high regions of the bevel. |
+| **Offset** | | Offset the bevel from its usual position so it no longer matches the outline.
Different offsets produce very different bevels.
This is especially useful when you apply a bevel to text with no outline. |
+| **Width** | | Adjust the bevel size.
Set a value of **0** to make the bevel fill the full thickness of the outline.
Set a positive value to make the bevel extend beyond both sides of the outline.
Set a negative value to shrink the bevel toward the middle of the outline.|
+| **Roundness** | | Increase this value to smooth out more angular regions of the bevel. The effect is often quite subtle. |
+| **Clamp** | | Set this value to limit the maximum height of the bevel.
Higher values mean the bevel reaches its maximum height sooner.
Clamped outer bevels end before reaching the inside edge of the outline.
Clamped inner bevels have a larger flat region in the middle of the outline. |
+
+
+###### Local Lighting
+
+These settings control simulated local directional lighting. They work in combination with the Bevel, Bump Map, and Environment Map settings.
+
+
+![](images/TMP_Shader_DF_LightingLocal.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Light Angle** | Adjust the angle, in radians, of the simulated local light illuminating the text.
The default angle is approximately π (pi) radians, which positions the light above the text.|
+| **Specular Color** | Set the tint for specular highlights.
These are the highlights you see when the text directly reflects the simulated local light source. |
+| **Specular Power** | Adjust the appearance of specular highlights. Larger values produce larger and brighter highlights. |
+| **Reflectivity Power** | Adjust the how much the **[Environment Map](#EnvironmentMap)** contributes to the final color of the text.
The higher the value, the more the text appears to reflect the environment map texture and color. |
+| **Diffuse Shadow** | Adjust the overall shadow level.
Higher values produce stronger shadowing, and consequently fewer apparent light effects on the text. |
+| **Ambient Shadow** | Adjust the ambient light level.
Settings lower than **1** darken the text color based on the slope of the text. This is a subtle effect that is only noticeable with strong bevels or normal maps. |
+
+
+###### Bump Map
+
+You can use a normal map as a bump map to add bumpiness to the text. The bump map affects both the text face and outline, but you can control how strongly it affects each one individually. If your text has both a bevel and a bump map, the two mix together.
+
+![](images/TMP_Shader_DF_LightingBump.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Texture** | Select a normal map texture to use as a bump map. |
+| **Face** | Control how much the bump map affects the text face.
A value of **0** shows no effect while a value of **1** shows the full effect of the bump map. |
+| **Outline** | Control how much the bump map affects the text outline.
A value of **0** shows nothing while a value of **1** shows the full effect of the bump map. |
+
+
+###### Environment Map
+
+You can use an environment map to add a reflection effect to your text face or outline, or for special image effects. The environment texture must be a cubemap. You can provide a static cubemap or create one at run time via a script.
+
+![](images/TMP_Shader_DF_LightingEnv.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Face Color** | Choose a color to use to tint reflections on the text face.
This color is multiplied with the environment map before the reflectivity effect is applied to the text face.
When this color is set to black, the environment map has no effect on the text face.
When this color is set to white, the environment map is at full strength on the text face. |
+| **Outline Color** | Choose a color to use to tint reflections on the text outline.
This color is multiplied with the environment map before the reflectivity effect is applied to the text outline.
When this color is set to black, the environment map has no effect on the text outline.
When this color is set to white, the environment map is at full strength on the text outline. |
+| **Texture** | Choose a cubemap texture to use as an environment map. |
+| **Rotation** | Rotate the environment map to control which parts of the texture are visible in the reflection. You can animate the rotation to create a sense of movement. |
+
+
+##### Glow
+
+The **Glow** effect adds a smooth outline on top of other text effects, which is typically used to suggest a glow. The effect is additive, so it is more noticeable on dark backgrounds.
+
+When the glow extends beyond the text boundary, the surface shader shades it as if it were part of the solid text, meaning that it gets simulated lighting effects such as specular highlights.
+
+![](images/TMP_Shader_DF_Glow.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Set the tint and strength of the glow effect by adjusting the **Color** and **Alpha** values respectively. |
+| **Offset** | Adjust the center of the glow effect.
A value of **0** places the center of the glow effect right on the text contour.
Positive values move the center out from the contour. Negative values move it in toward the center of the text. |
+| **Inner** | Control how far the glow effect extends inward from the its start point (text contour + **Offset**). |
+| **Outer** | Control how far the glow effect extends outward from the text contour (text contour + Offset). |
+| **Power** | Control how the glow effect falls off from its center to its edges.
A value of **1** produces a strong, bright glow effect with a sharp linear falloff.
Lower values produce a glow effect with a quick drop in intensity followed by a more gradual falloff. |
+
+
+##### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DF_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Mask** | | ???? |
+| | Mask Off | ???? |
+| | Mask Hard | ???? |
+| | Mask Soft | ???? |
+| **Mask Bounds** | | ???? |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Match Bounds Renderer** | | ???? |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
+
+
+----
+_NEW FILE:_ ShadersDistanceFieldSurface.md
+
+
+
+### Distance Field (Surface) Shader
+
+The Distance Field (Surface) surface shader is similar to the Distance Field shader, but rather than simulating local directional lighting, it interacts with Scene lighting. It is not a physically based shader.
+
+This shader uses Unity's surface shader framework, which makes it quite flexible, but also more demanding on the GPU.
+
+#### Properties
+![](images/TMP_Shader_DFS_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the appearance of the text face.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Controls the appearance of the text outline.
+
+![](images/Letter_C_half.png) **[Bevel](#Bevel):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[SurfaceLighting](#SurfaceLighting):** Controls the appearance of locally simulated lighting on the text.
+
+![](images/Letter_E_half.png) **[Bump Map](#BumpMap):** Adds bumpiness to the text face and/or outline using a normal map texture.
+
+![](images/Letter_F_half.png) **[Environment Map](#EnvironmentMap):** Adds a reflection effect to the text face and/or outline using a normal map texture
+
+![](images/Letter_G_half.png) **[Glow](#Glow):** Adds a smooth outline to the text in order to simulate glow.
+
+![](images/Letter_H_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+You edit Distance Field Surface shader properties in the TextMesh Pro object Inspector. Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DFS_Face.png)
+
+| Property: || Description |
+|--------------|----|-------------|
+| **Color** ||Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** ||Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's Horizontal Mapping and Vertical Mapping properties. |
+| **Offset** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface.|
+| **Speed** ||Animate the face texture by setting a value greater than **0**.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Softness** ||Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** ||Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Gloss** ||Adjust the glossiness of the text face.
Glossiness determines the appearance of specular highlights when light hits the text. Higher values produce smaller specular highlights.|
+
+
+##### Outline
+
+Description
+
+![](images/TMP_Shader_DFS_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.
Tthe outline is not visible unless you set a **Thickness** value greater than **0**.|
+| **Texture** |Apply a texture to the text outline.
The texture is multiplied with the outline **Color** to produce the final outline color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text outline.|
+| **Tiling** |???? |
+| **Offset** |???? |
+| **Speed** |Animate the outline texture by setting a value greater than 0.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+| **Gloss** |Adjust the glossiness of the text outline.
Glossiness determines the appearance of specular highlights when light hits the text. Higher values produce smaller specualr highlights.|
+
+
+##### Bevel
+
+A bevel adds the illusion of depth to your text. It works like a normal map, except that the shader calculates the bevel sing the font’s signed distance field.
+
+Bevels are prone to showing artifacts, especially when they are too pronounced. These artifacts are more or less obvious, depending on the material you use. Sometimes, artifacts that are more obvious on a simple material are hardly noticeable on a more complex material.
+
+Although bevels work best with text that has an outline, you can apply them to text without an outline as well.
+
+![](images/TMP_Shader_DFS_Bevel.png)
+
+| Property: | | Description |
+|--------------|-------------|-------------|
+| **Type** | | Choose the type of bevel to apply |
+| | Outer Bevel | Produces raised lettering with sloped sides.
The bevel starts at the outside of the outline and increases in height until it reaches the inside of the outline. |
+| | Inner Bevel | Produces text with a raised outline.
The bevel starts at the outside of the outline, increases in height until it reaches the middle of the outline, and decreases in height until it reaches the inside of the outline. |
+| **Amount** | | Adjust the steepness of the bevel.
This setting defines the apparent difference in height between low and high regions of the bevel. |
+| **Offset** | | Offset the bevel from its usual position so it no longer matches the outline.
Different offsets produce very different bevels.
This is especially useful when you apply a bevel to text with no outline. |
+| **Width** | | Adjust the bevel size.
Set a value of **0** to make the bevel fill the full thickness of the outline.
Set a positive value to make the bevel extend beyond both sides of the outline.
Set a negative value to shrink the bevel toward the middle of the outline.
If you are setting a bevel for text with no outline, you must set a positive **Width**. You should also set a negative **Offset** to ensure that the whole bevel is visible. |
+| **Roundness** | | Increase this value to smooth out more angular regions of the bevel. The effect is often quite subtle. |
+| **Clamp** | | Set this value to limit the maximum height of the bevel.
Higher values mean the bevel reaches its maximum height sooner.
Clamped outer bevels end before reaching the inside edge of the outline.
Clamped inner bevels have a larger flat region in the middle of the outline. |
+
+
+##### Surface Lighting
+
+These settings control simulated local directional lighting. They work in combination with the Bevel, Bump Map, and Environment Map settings.
+
+
+![](images/TMP_Shader_DFS_SurfaceLighting.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Specular Color** | Set the tint for specular highlights.
These are the highlights you see when the text directly reflects the simulated local light source. |
+
+
+##### Bump Map
+
+You can use a normal map as a bump map to add bumpiness to the text. The bump map affects both the text face and outline, but you can control how strongly it affects each one individually. If your text has both a bevel and a bump map, the two mix together.
+
+![](images/TMP_Shader_DFS_Bump.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Texture** | Select a normal map texture to use as a bump map. |
+| **Face** | Control how much the bump map affects the text face.
A value of **0** shows no effect while a value of **1** shows the full effect of the bump map. |
+| **Outline** | Control how much the bump map affects the text outline.
A value of **0** shows nothing while a value of **1** shows the full effect of the bump map. |
+
+
+##### Environment Map
+
+An environment map can be used to add a reflection effect to your text face or outline. You can either use it for reflections of a static Scene or for special image effects. The mobile shaders do not support this.The environment texture is a cubemap. You can either provide a static cubemap or create one at run time via a script.
+
+![](images/TMP_Shader_DFS_EnvMap.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Face Color** | Choose a color to use to tint reflections on the text face.
This color is multiplied with the environment map before the reflectivity effect is applied to the text face.
When this color is set to black, the environment map has no effect on the text face.
When this color is set to white, the environment map is at full strength on the text face. |
+| **Outline Color** | Choose a color to use to tint reflections on the text outline.
This color is multiplied with the environment map before the reflectivity effect is applied to the text outline.
When this color is set to black, the environment map has no effect on the text outline.
When this color is set to white, the environment map is at full strength on the text outline. |
+| **Texture** | Choose a cubemap texture to use as an environment map. |
+| **Rotation** | Rotate the environment map to control which parts of the texture are visible in the reflection. You can animate the rotation to create a sense of movement. |
+
+
+##### Glow
+
+The **Glow** effect adds a smooth outline on top of other text effects, which is typically used to suggest a glow. The effect is additive, so it is more noticeable on dark backgrounds.
+
+When the glow extends beyond the text boundary, the surface shader shades it as if it were part of the solid text, meaning that it gets simulated lighting effects such as specular highlights.
+
+![](images/TMP_Shader_DFS_Glow.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Set the tint and strength of the glow effect by adjusting the **Color** and **Alpha** values respectively. |
+| **Offset** | Adjust the center of the glow effect.
A value of **0** places the center of the glow effect right on the text contour.
Positive values move the center out from the contour. Negative values move it in toward the center of the text. |
+| **Inner** | Control how far the glow effect extends inward from the its start point (text contour + **Offset**). |
+| **Outer** | Control how far the glow effect extends outward from the text contour (text contour + Offset). |
+| **Power** | Control how the glow effect falls off from its center to its edges.
A value of **1** produces a strong, bright glow effect with a sharp linear falloff.
Lower values produce a glow effect with a quick drop in intensity followed by a more gradual falloff. |
+
+
+##### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DFS_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
+
+
+----
+_NEW FILE:_ ShadersDistanceFieldMobile.md
+
+
+
+### Distance Field / Distance Field Overlay Mobile Shaders
+
+The Distance Field and Distance Field Overlay shaders are two nearly-identical variants of the TextMesh Pro signed distance field (SDF)shader. The difference between the two is that the Distance Field Overlay variant always renders the TextMesh Pro object on top of everything else in the Scene, while the Distance Field variant renders the Scene normally—objects in front of the TextMesh Pro object are rendered on top of the text.
+
+![](images/IMAGE.png)
+
+Both of these variants are unlit, meaning they do not interact with Scene lighting. Instead, they can simulate local directional lighting effects.
+
+#### Properties
+
+The Distance Field and Distance Field Overlay shaders have identical properties, which you can edit in the TextMesh Pro object Inspector.
+
+Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DF_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Adds a colored and/or textured outline to the text.
+
+![](images/Letter_C_half.png) **[Underlay](#Underlay):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+The Face properties control the overall appearance of the text.
+
+![](images/TMP_Shader_DF_Face.png)
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Softness** |Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** |Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+
+
+##### Outline
+
+The outline properties allow you to add an outline to the text and control its appearance. The outline is not visible unless you set a **Thickness** value greater than **0**.
+
+![](images/TMP_Shader_DF_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+
+
+##### Underlay
+
+Underlay adds an additional rendering of the text underneath the original rendering. You can use it to add a drop-shadow effect.
+
+![](images/TMP_Shader_DF_Underlay.png)
+
+| Property: | | Description |
+|--------------|---|-------------|
+| **Underlay Type** | |Choose the type of underlay to render.|
+| | None |No underlay. |
+| | Normal |Renders the underlay underneath the original text.
This creates a standard drop-shadow style effect.|
+| | Inner |Inverts the underlay and masks it with the original text so it is only visible inside the outline of the original letters.
This creates the type of drop shadow you would see through a cutout of the text.
To see an **Inner** underlay, you must make the text face transparent by setting its Alpha to **0**.|
+| **Color** | |Set the color of the underlay text. The default is a semi-transparent black.|
+| **Offset X/Offset Y** | |Offset the underlay text horizontally and vertically from the original text.
For example, if you’re using the underlay to create a drop shadow, you can position it to suggest a specific lighting direction.|
+| **Dilate** | |Adjust the position of the underlay text contour in the font's [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Softness** | |Adjust the softness of the underlay text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
When using the underlay to create a drop-shadow, you can use this setting to make the shadows harder or softer.|
+
+
+##### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DF_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
+
+
+----
+_NEW FILE:_ ShadersDistanceFieldMaskingMobile.md
+
+
+
+### Distance Field Masking Mobile Shader
+
+The Distance Field and Distance Field Overlay shaders are two nearly-identical variants of the TextMesh Pro signed distance field (SDF)shader. The difference between the two is that the Distance Field Overlay variant always renders the TextMesh Pro object on top of everything else in the Scene, while the Distance Field variant renders the Scene normally—objects in front of the TextMesh Pro object are rendered on top of the text.
+
+![](images/IMAGE.png)
+
+Both of these variants are unlit, meaning they do not interact with Scene lighting. Instead, they can simulate local directional lighting effects.
+
+#### Properties
+
+The Distance Field and Distance Field Overlay shaders have identical properties, which you can edit in the TextMesh Pro object Inspector.
+
+Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DFMM_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Adds a colored and/or textured outline to the text.
+
+![](images/Letter_C_half.png) **[Underlay](#Underlay):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+The Face properties control the overall appearance of the text.
+
+![](images/TMP_Shader_DFMM_Face.png)
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Softness** |Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** |Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+
+
+##### Outline
+
+The outline properties allow you to add an outline to the text and control its appearance. The outline is not visible unless you set a **Thickness** value greater than **0**.
+
+![](images/TMP_Shader_DFMM_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+
+
+##### Underlay
+
+Underlay adds an additional rendering of the text underneath the original rendering. You can use it to add a drop-shadow effect.
+
+![](images/TMP_Shader_DF_Underlay.png)
+
+| Property: | | Description |
+|--------------|---|-------------|
+| **Underlay Type** | |Choose the type of underlay to render.|
+| | None |No underlay. |
+| | Normal |Renders the underlay underneath the original text.
This creates a standard drop-shadow style effect.|
+| | Inner |Inverts the underlay and masks it with the original text so it is only visible inside the outline of the original letters.
This creates the type of drop shadow you would see through a cutout of the text.
To see an **Inner** underlay, you must make the text face transparent by setting its Alpha to **0**.|
+| **Color** | |Set the color of the underlay text. The default is a semi-transparent black.|
+| **Offset X/Offset Y** | |Offset the underlay text horizontally and vertically from the original text.
For example, if you’re using the underlay to create a drop shadow, you can position it to suggest a specific lighting direction.|
+| **Dilate** | |Adjust the position of the underlay text contour in the font's [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Softness** | |Adjust the softness of the underlay text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
When using the underlay to create a drop-shadow, you can use this setting to make the shadows harder or softer.|
+
+
+##### Debug Settings
+
+The debug section contains options for defining and controlling masking. It also exposes some of the shader’s internal properties, which can be helpful for troubleshooting.
+
+
+
+![](images/TMP_Shader_DFMM_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Mask Texture** | | Choose a texture file to use as a mask. Black and white images work best.
By default, black regions of the image mask the text, while white areas reveal it. |
+| **Inverse Mask** | | Invert the mask so that white regions of the image mask the text, while black areas reveal it. |
+| **Edge Color** | | Tint the edge of the mask with a specific color.
The softer the edge, the larger the tinted region. |
+| **Edge Softness** | | Make the edges of the mask softer or harder.
A value of **0.5** applies the mask as-is. Higher values soften the edges. Lower values make them sharper. |
+| **Wipe Position** | | Control the extent to which the text is masked.
A value of **0.5** masks the text exactly as defined by the **Mask Texture**.
A value of **0** fully exposes the text (no masking at all).
A value of **1** hides the text (all of the text is masked). |
+| **Softness X/Softness Y** | | Apply soft masking to the text in either axis.
Increase the **X** value to add soft masking to the left and right sides of the text. Increase the **Y** value to add soft masking at the top and bottom.
This masking is added to any masking defined by the **Mask Texture**.|
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
+
+
+----
+_NEW FILE:_ ShadersDistanceFieldMobile.md
+
+
+
+### Distance Field / Distance Field Overlay Mobile Shaders
+
+The Distance Field and Distance Field Overlay shaders are two nearly-identical variants of the TextMesh Pro signed distance field (SDF)shader. The difference between the two is that the Distance Field Overlay variant always renders the TextMesh Pro object on top of everything else in the Scene, while the Distance Field variant renders the Scene normally—objects in front of the TextMesh Pro object are rendered on top of the text.
+
+![](images/IMAGE.png)
+
+Both of these variants are unlit, meaning they do not interact with Scene lighting. Instead, they can simulate local directional lighting effects.
+
+#### Properties
+
+The Distance Field and Distance Field Overlay shaders have identical properties, which you can edit in the TextMesh Pro object Inspector.
+
+Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DF_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Adds a colored and/or textured outline to the text.
+
+![](images/Letter_C_half.png) **[Underlay](#Underlay):** Adds a second rendering of the text underneath the original rendering, for example to add a drop shadow.
+
+![](images/Letter_D_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+The Face properties control the overall appearance of the text.
+
+![](images/TMP_Shader_DF_Face.png)
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Softness** |Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** |Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+
+
+##### Outline
+
+The outline properties allow you to add an outline to the text and control its appearance. The outline is not visible unless you set a **Thickness** value greater than **0**.
+
+![](images/TMP_Shader_DF_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+
+
+##### Underlay
+
+Underlay adds an additional rendering of the text underneath the original rendering. You can use it to add a drop-shadow effect.
+
+![](images/TMP_Shader_DF_Underlay.png)
+
+| Property: | | Description |
+|--------------|---|-------------|
+| **Underlay Type** | |Choose the type of underlay to render.|
+| | None |No underlay. |
+| | Normal |Renders the underlay underneath the original text.
This creates a standard drop-shadow style effect.|
+| | Inner |Inverts the underlay and masks it with the original text so it is only visible inside the outline of the original letters.
This creates the type of drop shadow you would see through a cutout of the text.
To see an **Inner** underlay, you must make the text face transparent by setting its Alpha to **0**.|
+| **Color** | |Set the color of the underlay text. The default is a semi-transparent black.|
+| **Offset X/Offset Y** | |Offset the underlay text horizontally and vertically from the original text.
For example, if you’re using the underlay to create a drop shadow, you can position it to suggest a specific lighting direction.|
+| **Dilate** | |Adjust the position of the underlay text contour in the font's [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Softness** | |Adjust the softness of the underlay text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
When using the underlay to create a drop-shadow, you can use this setting to make the shadows harder or softer.|
+
+
+##### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DF_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
+
+
+----
+_NEW FILE:_ ShadersDistanceFieldSurfaceMobile.md
+
+
+
+### Distance Field (Surface) Mobile Shader
+
+The Distance Field (Surface) surface shader is similar to the Distance Field shader, but rather than simulating local directional lighting, it interacts with Scene lighting. It is not a physically based shader.
+
+This shader uses Unity's surface shader framework, which makes it quite flexible, but also more demanding on the GPU.
+
+#### Properties
+![](images/TMP_Shader_DFS_Inspector.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the appearance of the text face.
+
+![](images/Letter_B_half.png) **[Outline](#Outline):** Controls the appearance of the text outline.
+
+![](images/Letter_C_half.png) **[Glow](#Glow):** Adds a smooth outline to the text in order to simulate glow.
+
+![](images/Letter_D_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+You edit Distance Field Surface shader properties in the TextMesh Pro object Inspector. Properties are divided into several sections, some of which you must enable in order to activate the property group.
+
+![](images/TMP_Shader_DFS_Face.png)
+
+| Property: || Description |
+|--------------|---|-------------|
+| **Color** ||Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** ||Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface.|
+| **Speed** ||Animate the face texture by setting a value greater than **0**.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Softness** ||Adjust the softness of the text edges.
A value of **0** produces crisp, anti-aliased edges.
Values greater than **0** produce increasingly soft/blurry edges.
This setting applies to both the text face and the outline.|
+| **Dilate** ||Adjust the position of the text contour in the font [distance field](FontAssetsSDF.md).
A value of **0** places the contour halfway, which corresponds to the contour of the original font.
Negative values thin the characters, while positive values thicken them.|
+| **Gloss** ||Adjust the glossiness of the text face.
Glossiness determines the appearance of specular highlights when light hits the text. Higher values produce smaller specular highlights.|
+
+
+##### Outline
+
+Description
+
+![](images/TMP_Shader_DFS_Outline.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Adjust the color for the text outline.
Tthe outline is not visible unless you set a **Thickness** value greater than **0**.|
+| **Texture** |Apply a texture to the text outline.
The texture is multiplied with the outline **Color** to produce the final outline color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text outline.|
+| **Tiling** |???? |
+| **Offset** |???? |
+| **Speed** |Animate the outline texture by setting a value greater than 0.
The resulting animation is a scrolling effect as the texture’s UV coordinates change over time.
**Note:** To see this effect in the Scene view, you must enable **Animated Materials** from the Effects menu in the [Scene view control bar](https://docs.unity3d.com/Manual/ViewModes.html).|
+| **Thickness** |Adjust the thickness of the outline. The higher the value, the thicker the line.
The outline is drawn on the text contour, with half its thickness inside the contour and half of it outside the contour.
You can pull it farther in or push it farther out by adjusting the **Face > Dilate** property.|
+| **Gloss** |Adjust the glossiness of the text outline.
Glossiness determines the appearance of specular highlights when light hits the text. Higher values produce smaller specualr highlights.|
+
+
+##### Glow
+
+The **Glow** effect adds a smooth outline on top of other text effects, which is typically used to suggest a glow. The effect is additive, so it is more noticeable on dark backgrounds.
+
+When the glow extends beyond the text boundary, the surface shader shades it as if it were part of the solid text, meaning that it gets simulated lighting effects such as specular highlights.
+
+![](images/TMP_Shader_DFS_Glow.png)
+
+| Property: |Description |
+|--------------|------------|
+| **Color** |Set the tint and strength of the glow effect by adjusting the **Color** and **Alpha** values respectively. |
+| **Offset** | Adjust the center of the glow effect.
A value of **0** places the center of the glow effect right on the text contour.
Positive values move the center out from the contour. Negative values move it in toward the center of the text. |
+| **Inner** | Control how far the glow effect extends inward from the its start point (text contour + **Offset**). |
+| **Outer** | Control how far the glow effect extends outward from the text contour (text contour + Offset). |
+| **Power** | Control how the glow effect falls off from its center to its edges.
A value of **1** produces a strong, bright glow effect with a sharp linear falloff.
Lower values produce a glow effect with a quick drop in intensity followed by a more gradual falloff. |
+
+
+##### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+
+![](images/TMP_Shader_DFS_Debug.png)
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Gradient Scale** | |Represents the spread / range of the font’s [signed distance field](FontAssetsSDF.md).
This determines the effective range of material properties such as **Outline > Width** and **Underlay > Offset X/Y**.
This value is equal to Padding +1, with Padding being the **Padding** value set when the font Asset was created.
**Note:** This value is displayed for debugging purposes. You should not edit it manually. |
+| **Texture Width/Texture Height** | | Displays the texture atlas width and height specified in the **Atlas Resolution** settings when the font Asset was created. |
+| **Scale X/Scale X** | | Set multipliers for the SDF scale.
When set to **0**, characters are rendered as blocks.
Negative values soften the characters, while positive values make them appear sharper. |
+| **Perspective Filter** | | When using a perspective camera, adjust this setting to make text look softer when viewed at sharp angles.
The default setting of **0.875** is adequate in most cases.
When using orthographic cameras, set this to **0**. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Use Ratios** | | ???? |
+| **Scale Ratio A** | | ???? |
+| **Scale Ratio B** | | ???? |
+| **Scale Ratio C** | | ???? |
+
+
+----
+_NEW FILE:_ ShadersBitmap.md
+
+
+
+### Bitmap Shader
+
+The Bitmap shader is designed to use bitmap-only fonts. It treats the font atlas like a regular texture, displaying it directly, and does not support any text effects. Bitmap-textured text becomes blocky when you zoom in on it.
+
+#### Properties
+
+![](images/TMP_Shader_Bitmap.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+Description
+
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** |Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling X/Y** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset X/Y** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface.|
+
+
+##### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+
+
+----
+_NEW FILE:_ ShadersBitmapCustomAtlas.md
+
+
+
+### Bitmap Custom Atlas Shader
+
+The Bitmap shader is designed to use bitmap-only fonts. It treats the font atlas like a regular texture, displaying it directly, and does not support any text effects. Bitmap-textured text becomes blocky when you zoom in on it.
+
+#### Properties
+
+![](images/TMP_Shader_BitmapCustomAtlas.png)
+
+![](images/Letter_A_half.png) **[Face](#Face):** Controls the text's overall appearance.
+
+![](images/Letter_B_half.png) **[Debug Settings](#DebugSettings):** Exposes internal shader properties that are sometimes useful for troubleshooting.
+
+
+##### Face
+
+Description
+
+
+| Property: | Description |
+|--------------|-------------|
+| **Color** |Adjust the face color of the text.
The value you set here is multiplied with the vertex **Colors** you set in the TextMeshPro component.
Set this to white to use the original vertex colors.
Set this to black to cancel out the vertex colors.
Similarly, setting the Alpha to **1** uses the original vertex-color alpha, while setting it to **0** removes any alpha set in the original vertex colors.|
+| **Texture** |Apply a texture to the text face.
The texture is multiplied with the face **Color** and the vertex colors in the TextMesh Pro component to produce the final face color.
The **Horizontal Mapping** and **Vertical Mapping** properties in the TextMesh Pro component determine how TextMesh Pro fits the texture to the text face.|
+| **Tiling X/Y** ||Increase these values to repeat the texture across the text surface, in accordance with the TextMesh Pro object's **Horizontal Mapping** and **Vertical Mapping** properties.|
+| **Offset X/Y** ||Adjust these values to change the texture's relative position, horizontally or vertically, on the text surface. |
+
+
+##### Debug Settings
+
+The debug section exposes some of the shader’s internal properties. They can be helpful for troubleshooting problems you encounter with the shader.
+
+| Property: | | Description |
+|----------------------------------|-----------|-------------|
+| **Font Atlas** | | Points to the atlas texture used by the font Asset. |
+|Padding | | ???? |
+| **Offset X/Offset Y** | | Offset the vertex positions of each character in X and Y.
You can change these values using a script to create simulated crawl or scrolling FX. |
+| **Softness X/Softness Y** | | When **Mask** is set to **Soft**, set these to adjust the softness of the edge of the text. |
+| **Clip Rect** | | Clip Rect defines the Left (**L**), Bottom (**B**), Right (**R**) and Top (**T**) world space coordinates of the masking rectangle.
This is normally set automatically by the **2D RectMask**. However when using a normal **TextMeshPro** component, this allows you to set / control the masking region. |
+| **Stencil ID** | | ???? |
+| **Stencil Comp** | | ???? |
+
+
+----
+_NEW FILE:_ Shaders.md
+
+
+
+### Shaders
+
+TextMesh Pro has been designed to take advantage of signed distance field (SDF) rendering and includes a collection of shaders for this purpose. There are also bitmap-only shaders, in case you don't want to use SDF rendering.
+
+All shaders have a desktop and a mobile version. The mobile versions are less demanding and suitable for mobile devices, but support fewer effects. All shaders can be found in the shader menu under TextMeshPro and TextMeshPro / Mobile.
+
+#### SDF Shaders
+
+There are three variants of the SDF shader, known as Distance Field, Distance Field (Surface), and Distance Field Overlay. The regular and overlay shaders are unlit, so they don't interact with the Scene lighting. They can support locally simulated lighting effects instead.
+
+The surface shader versions do interact with the Scene lighting. They use Unity's surface shader framework and are quite flexible, but also more demanding on the GPU. They are not physically based shaders.
+
+SDF shaders can use the distance data to generate special effects, like outlines, underlays, and bevels. These effects often increase the visual size of the text. When taken to their extremes, you might see artifacts appear around the edges of character sprites. If this happens, scale down the effects. For example, a soft dilated underlay with large offsets might take things too far.
+
+The artifacts occur because data from adjacent characters in the font atlas will bleed into the current character. You can increase the padding when importing a font to give the effects more space.
+
+#### Bitmap Shaders
+
+
+----
+_NEW FILE:_ ShadersSprite.md
+
+
+
+### Sprite Shader
+
+
+
+#### Properties
+
+|Property:||Function:|
+|--|--|--|
+|**Sprite Texture** | | |
+|**Tiling X/Y** | | |
+|**Offset X/Y** | | |
+|**Tint** | | |
+|**Stencil Comparison** | | |
+|**Stencil ID** | | |
+|**Stencil Operation** | | |
+|**Stencil Write Mask** | | |
+|**Stencil Read Mask** | | |
+|**Color Mask** | | |
+|**Clip Rect** | | |
+|**Use Alpha Clip** | | |
+|**Render Queue** | | |
+| |From Shader | |
+| |Geometry | |
+| |Alpha Test | |
+| |Transparent | |
+|Double Sided Global Illumination | | |
+
+
+----
+_NEW FILE:_ Settings.md
+
+
+
+# Settings
+
+TextMesh Pro’s project-wide settings are stored in a special Asset named TMP Settings. This Asset must be stored in a Resources folder. By default it’s in the `Assets/TextMesh` Pro folder.
+
+To edit the settings, either select the Asset in the Project View or open the **Project Settings** window and choose **TextMesh Pro** from the category list.
+
+![](images/TMP_Settings_Inspector.png)
+_TextMesh Pro Settings_
+
+The Settings are divided into the following groups:
+
+|Group:|Function:|
+|-|-|
+|**A** | **[Default Font Asset](#default-font-asset):** Set the default font for text objects. |
+|**B** | **[Fallback Font Assets](#fallback-font-assets):** Choose font assets to search when TexMesh Pro can’t find a character in a text object’s main font Asset. |
+|**C** | **[Fallback Material Settings](#fallback-material-settings):** Set style options for characters retrieved from fallback fonts. |
+|**D** | **[Dynamic Font System Settings](#dynamic-font-system-settings):** Set options for handling missing characters. |
+|**E** | **[Text Container Default Settings](#text-container-default-settings):** Control the size of the text container for new text objects. |
+|**F** | **[Text Component Default Settings](#text-component-default-settings):** Set the basic text formatting options for new text objects. |
+|**G** | **[Default Sprite Asset](#default-sprite-asset):** Choose a default Sprite Asset to use for for rich text sprite tags that do not specify an Asset, and set other sprite-related options. |
+|**H** | **[Default Style Sheet](#default-style-sheet):** Choose a default style sheet. |
+|**I** | **[Color Gradient Presets](#color-gradient-presets):** Choose a location to store color gradient presets. |
+|**J** | **[Line Breaking for Asian Languages](#line-breaking-for-asian-languages):** Define leading and following characters in order to get proper line breaking when using Asian fonts. |
+
+## Default Font Asset
+
+![](images/TMP_Settings_DefaultFontAsset.png)
+
+|Property:|Function:|
+|---------|---------|
+|**Default Font Asset**|Specify the default font used when you create a new text object.
+|**Path**|Specify where to store font assets.
The **Path** must point to a subfolder of a Resources folder.|
+
+## Fallback Font Assets
+
+When a text object contains a character that is not in its font Asset, TextMesh Pro searches these font assets for the glyph. If the object’s font assets has a local fallback font list, TextMesh Pro searches the fonts in that list first.
+
+![](images/TMP_Settings_FallbackFontAssets.png)
+
+|Property:|Function:|
+|-|-|
+|**Fallback Font Assets List**|Manage the global fallback font assets.
Click **+** and **-** to add and remove font slots.
Click the circle icon next to a font to choose a font Asset using the Object Picker.
Drag the handles on the left side of any font Asset to reorder the list.|
+
+## Fallback Material Settings
+
+![](images/TMP_Settings_FallbackMaterialSettings.png)
+
+|Property:|Function:|
+|-|-|
+|**Match Material Presets**|Enable this setting to make glyphs from the fallback font match the style of the main font.
When TextMesh Pro uses a glyph from a fallback font, it creates a material with the same settings as the main font’s material.
This looks best when the main font and the fallback font are similar.|
+
+## Dynamic Font System Settings
+
+These are project-wide settings for handling missing glyphs.
+
+![](images/TMP_Settings_DynamicFontSystemSettings.png)
+
+|Property:|Function:|
+|-|-|
+|**Get Font Features at Runtime** | |
+|**Replacement**|Specify the ID of the character to use when TextMesh Pro cannot find a missing glyph in any of the fallback fonts.
The default value of 0 produces the outline of a square.|
+|**Disable Warnings**|Enable this setting to prevent Unity from logging a warning for every missing glyph.|
+
+## Text Container Default Settings
+
+These settings define the default size for text containers in new text objects.
+
+![](images/TMP_Settings_TextContainerDefaultSettings.png)
+
+|Property:|Function:|
+|-|-|
+|**TextMeshPro**|Set the default size of text containers for new TextMesh Pro 3D GameObjects, in Unity units.|
+|**TextMeshPro UI**|Set the default size of text containers for new TextMesh Pro UI GameObjects, in Unity units.|
+|**Enable Raycast Target** | Enable this option to make TextMesh Pro GameObjects targets for raycasting by default.
When you disable this option, the UI ignores TextMesh Pro GameObjects by default when determining what the cursor interacts with. |
+|**Auto Size Text Container**|Enable this option to automatically size text containers to fit the text when creating new TextMesh Pro UI GameObjects.|
+
+## Text Component Default Settings
+
+These settings define default values for new text objects. After adding a text object to the Scene, you can adjust these settings in the object's TextMesh Pro Inspector.
+
+![](images/TMP_Settings_TextComponentDefaultSettings.png)
+
+|Property:|Function:|
+|-|-|
+|**Default Font Size**|Set the default font size, in points.|
+|**Text Auto Size Ratios**|Set the default **Min** to **Max** size ratio TextMesh Pro uses when it [sets font size automatically](TMPObjectUIText.md#font).|
+|**Word Wrapping**|Enable this option to turn word wrapping on for all new text objects.|
+|**Kerning**|Enable this option to toggle kerning on for all new text objects.
If new objects use a font with no kerning data, enabling this setting has no effect.|
+|**Extra Padding**|Enable this option to add extra padding to character sprites.
TextMesh Pro creates sprites to fit the visible text, but the results aren't always perfect. This setting reduces the chances that glyphs are cut off at the boundaries of their sprites.|
+|**Tint All Sprites**|By default, sprites aren't affected by the text's vertex colors. Enable Tint All Sprites changes this.|
+|**Parse Escape Sequence**|Enable this option to make TextMesh Pro interpret backslash-escaped characters as special characters.
For example `\n` is interpreted as a newline, `\t` as a tab, and so on.
**Note:** This applies to rendered text. In code, escaped characters are already parsed by the compiler.|
+
+## Default Sprite Asset
+
+
+![](images/TMP_Settings_DefaultSpriteAsset.png)
+
+|Property:|Function:|
+|-|-|
+|**Default Sprite Asset** | Choose the [Sprite Asset](Sprites.md) for TextMesh Pro GameObjects to use by default. |
+|**IOS Emoji Support** | Toggle support for iOS emoji. |
+|**Path** | Specify where to store Sprite Assets.
The **Path** must point to a subfolder of a Resources folder. |
+
+## Default Style Sheet
+
+![](images/TMP_Settings_DefaultStyleSheet.png)
+
+|Property:|Function:|
+|-|-|
+|**Default Style Sheet**|You can choose a single [style sheet](StyleSheets.md) Asset, which is used by all text objects in the project.|
+
+## Color Gradient Presets
+
+![](images/TMP_Settings_ColorGradientPresets.png)
+
+|Property:|Function:|
+|-|-|
+|**Path**||
+
+## Line Breaking for Asian Languages
+
+To obtain correct line-breaking behavior for Asian languages, you must specify which characters behave as leading and following characters. This is done via two text assets.
+
+![](images/TMP_Settings_LineBreakingforAsianLanguages.png)
+
+|Property:|Function:|
+|-|-|
+|**Leading Characters**|Specify the text file that contains the list of leading characters.|
+|**Following Characters**|Specify the text file that contains the list of following characters.|
diff --git a/Documentation~/images/FontAtlasExample.png b/Documentation~/images/FontAtlasExample.png
new file mode 100644
index 0000000..8c57161
Binary files /dev/null and b/Documentation~/images/FontAtlasExample.png differ
diff --git a/Documentation~/images/Letter_A_half.png b/Documentation~/images/Letter_A_half.png
new file mode 100644
index 0000000..fa959bd
Binary files /dev/null and b/Documentation~/images/Letter_A_half.png differ
diff --git a/Documentation~/images/Letter_B_half.png b/Documentation~/images/Letter_B_half.png
new file mode 100644
index 0000000..5828bef
Binary files /dev/null and b/Documentation~/images/Letter_B_half.png differ
diff --git a/Documentation~/images/Letter_C_half.png b/Documentation~/images/Letter_C_half.png
new file mode 100644
index 0000000..14ef482
Binary files /dev/null and b/Documentation~/images/Letter_C_half.png differ
diff --git a/Documentation~/images/Letter_D_half.png b/Documentation~/images/Letter_D_half.png
new file mode 100644
index 0000000..fb5d61a
Binary files /dev/null and b/Documentation~/images/Letter_D_half.png differ
diff --git a/Documentation~/images/Letter_E_half.png b/Documentation~/images/Letter_E_half.png
new file mode 100644
index 0000000..3b7538d
Binary files /dev/null and b/Documentation~/images/Letter_E_half.png differ
diff --git a/Documentation~/images/Letter_F_half.png b/Documentation~/images/Letter_F_half.png
new file mode 100644
index 0000000..4db56b2
Binary files /dev/null and b/Documentation~/images/Letter_F_half.png differ
diff --git a/Documentation~/images/Letter_G_half.png b/Documentation~/images/Letter_G_half.png
new file mode 100644
index 0000000..9104c85
Binary files /dev/null and b/Documentation~/images/Letter_G_half.png differ
diff --git a/Documentation~/images/Letter_H_half.png b/Documentation~/images/Letter_H_half.png
new file mode 100644
index 0000000..db67255
Binary files /dev/null and b/Documentation~/images/Letter_H_half.png differ
diff --git a/Documentation~/images/Letter_I_half.png b/Documentation~/images/Letter_I_half.png
new file mode 100644
index 0000000..aabb2ff
Binary files /dev/null and b/Documentation~/images/Letter_I_half.png differ
diff --git a/Documentation~/images/Letter_J_half.png b/Documentation~/images/Letter_J_half.png
new file mode 100644
index 0000000..cd1cca5
Binary files /dev/null and b/Documentation~/images/Letter_J_half.png differ
diff --git a/Documentation~/images/Letter_K_half.png b/Documentation~/images/Letter_K_half.png
new file mode 100644
index 0000000..eb31757
Binary files /dev/null and b/Documentation~/images/Letter_K_half.png differ
diff --git a/Documentation~/images/Letter_L_half.png b/Documentation~/images/Letter_L_half.png
new file mode 100644
index 0000000..dd17a75
Binary files /dev/null and b/Documentation~/images/Letter_L_half.png differ
diff --git a/Documentation~/images/Letter_M_half.png b/Documentation~/images/Letter_M_half.png
new file mode 100644
index 0000000..bc47acb
Binary files /dev/null and b/Documentation~/images/Letter_M_half.png differ
diff --git a/Documentation~/images/Letter_N_half.png b/Documentation~/images/Letter_N_half.png
new file mode 100644
index 0000000..fe34595
Binary files /dev/null and b/Documentation~/images/Letter_N_half.png differ
diff --git a/Documentation~/images/Letter_O_half.png b/Documentation~/images/Letter_O_half.png
new file mode 100644
index 0000000..dc74f60
Binary files /dev/null and b/Documentation~/images/Letter_O_half.png differ
diff --git a/Documentation~/images/Letter_P_half.png b/Documentation~/images/Letter_P_half.png
new file mode 100644
index 0000000..1bd4175
Binary files /dev/null and b/Documentation~/images/Letter_P_half.png differ
diff --git a/Documentation~/images/Letter_Q_half.png b/Documentation~/images/Letter_Q_half.png
new file mode 100644
index 0000000..b337aea
Binary files /dev/null and b/Documentation~/images/Letter_Q_half.png differ
diff --git a/Documentation~/images/Letter_R_half.png b/Documentation~/images/Letter_R_half.png
new file mode 100644
index 0000000..7cebaae
Binary files /dev/null and b/Documentation~/images/Letter_R_half.png differ
diff --git a/Documentation~/images/Letter_S_half.png b/Documentation~/images/Letter_S_half.png
new file mode 100644
index 0000000..2b056cd
Binary files /dev/null and b/Documentation~/images/Letter_S_half.png differ
diff --git a/Documentation~/images/Letter_T_half.png b/Documentation~/images/Letter_T_half.png
new file mode 100644
index 0000000..4e3b047
Binary files /dev/null and b/Documentation~/images/Letter_T_half.png differ
diff --git a/Documentation~/images/Letter_U_half.png b/Documentation~/images/Letter_U_half.png
new file mode 100644
index 0000000..e39859a
Binary files /dev/null and b/Documentation~/images/Letter_U_half.png differ
diff --git a/Documentation~/images/Letter_V_half.png b/Documentation~/images/Letter_V_half.png
new file mode 100644
index 0000000..5fa89c1
Binary files /dev/null and b/Documentation~/images/Letter_V_half.png differ
diff --git a/Documentation~/images/Letter_W_half.png b/Documentation~/images/Letter_W_half.png
new file mode 100644
index 0000000..320fa7a
Binary files /dev/null and b/Documentation~/images/Letter_W_half.png differ
diff --git a/Documentation~/images/Letter_X_half.png b/Documentation~/images/Letter_X_half.png
new file mode 100644
index 0000000..6781292
Binary files /dev/null and b/Documentation~/images/Letter_X_half.png differ
diff --git a/Documentation~/images/Letter_Y_half.png b/Documentation~/images/Letter_Y_half.png
new file mode 100644
index 0000000..1a39fe0
Binary files /dev/null and b/Documentation~/images/Letter_Y_half.png differ
diff --git a/Documentation~/images/Letter_Z_half.png b/Documentation~/images/Letter_Z_half.png
new file mode 100644
index 0000000..e60721b
Binary files /dev/null and b/Documentation~/images/Letter_Z_half.png differ
diff --git a/Documentation~/images/Numeral_0_half.png b/Documentation~/images/Numeral_0_half.png
new file mode 100644
index 0000000..d970397
Binary files /dev/null and b/Documentation~/images/Numeral_0_half.png differ
diff --git a/Documentation~/images/Numeral_1_half.png b/Documentation~/images/Numeral_1_half.png
new file mode 100644
index 0000000..94e5e10
Binary files /dev/null and b/Documentation~/images/Numeral_1_half.png differ
diff --git a/Documentation~/images/Numeral_2_half.png b/Documentation~/images/Numeral_2_half.png
new file mode 100644
index 0000000..199e399
Binary files /dev/null and b/Documentation~/images/Numeral_2_half.png differ
diff --git a/Documentation~/images/Numeral_3_half.png b/Documentation~/images/Numeral_3_half.png
new file mode 100644
index 0000000..f31a921
Binary files /dev/null and b/Documentation~/images/Numeral_3_half.png differ
diff --git a/Documentation~/images/Numeral_4_half.png b/Documentation~/images/Numeral_4_half.png
new file mode 100644
index 0000000..ef9c48b
Binary files /dev/null and b/Documentation~/images/Numeral_4_half.png differ
diff --git a/Documentation~/images/Numeral_5_half.png b/Documentation~/images/Numeral_5_half.png
new file mode 100644
index 0000000..e6c6ef0
Binary files /dev/null and b/Documentation~/images/Numeral_5_half.png differ
diff --git a/Documentation~/images/Numeral_6_half.png b/Documentation~/images/Numeral_6_half.png
new file mode 100644
index 0000000..18ed380
Binary files /dev/null and b/Documentation~/images/Numeral_6_half.png differ
diff --git a/Documentation~/images/Numeral_7_half.png b/Documentation~/images/Numeral_7_half.png
new file mode 100644
index 0000000..4168bfd
Binary files /dev/null and b/Documentation~/images/Numeral_7_half.png differ
diff --git a/Documentation~/images/Numeral_8_half.png b/Documentation~/images/Numeral_8_half.png
new file mode 100644
index 0000000..dc49844
Binary files /dev/null and b/Documentation~/images/Numeral_8_half.png differ
diff --git a/Documentation~/images/Numeral_9_half.png b/Documentation~/images/Numeral_9_half.png
new file mode 100644
index 0000000..f470c31
Binary files /dev/null and b/Documentation~/images/Numeral_9_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradientInspector.png b/Documentation~/images/TMP_ColorGradientInspector.png
new file mode 100644
index 0000000..cbd16b1
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradientInspector.png differ
diff --git a/Documentation~/images/TMP_ColorGradientPresetCreator.png b/Documentation~/images/TMP_ColorGradientPresetCreator.png
new file mode 100644
index 0000000..adbb424
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradientPresetCreator.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_1-Corner-BYYY_half.png b/Documentation~/images/TMP_ColorGradient_1-Corner-BYYY_half.png
new file mode 100644
index 0000000..819ba91
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_1-Corner-BYYY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_1-Corner-YBYY_half.png b/Documentation~/images/TMP_ColorGradient_1-Corner-YBYY_half.png
new file mode 100644
index 0000000..0269bc9
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_1-Corner-YBYY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_1-Corner-YYBY_half.png b/Documentation~/images/TMP_ColorGradient_1-Corner-YYBY_half.png
new file mode 100644
index 0000000..fca3c53
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_1-Corner-YYBY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_1-Corner-YYYB_half.png b/Documentation~/images/TMP_ColorGradient_1-Corner-YYYB_half.png
new file mode 100644
index 0000000..a5ddf44
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_1-Corner-YYYB_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_2-Corner-BBYY_half.png b/Documentation~/images/TMP_ColorGradient_2-Corner-BBYY_half.png
new file mode 100644
index 0000000..d5cdc65
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_2-Corner-BBYY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_2-Corner-BYBY_half.png b/Documentation~/images/TMP_ColorGradient_2-Corner-BYBY_half.png
new file mode 100644
index 0000000..5d8837d
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_2-Corner-BYBY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_2-Corner-BYYB_half.png b/Documentation~/images/TMP_ColorGradient_2-Corner-BYYB_half.png
new file mode 100644
index 0000000..a778635
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_2-Corner-BYYB_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_2-Corner-YBBY_half.png b/Documentation~/images/TMP_ColorGradient_2-Corner-YBBY_half.png
new file mode 100644
index 0000000..91bf3f9
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_2-Corner-YBBY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_2-Corner-YBYB_half.png b/Documentation~/images/TMP_ColorGradient_2-Corner-YBYB_half.png
new file mode 100644
index 0000000..86a72db
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_2-Corner-YBYB_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_2-Corner-YYBB_half.png b/Documentation~/images/TMP_ColorGradient_2-Corner-YYBB_half.png
new file mode 100644
index 0000000..4dc92e3
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_2-Corner-YYBB_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_3-Corner-RBYY_half.png b/Documentation~/images/TMP_ColorGradient_3-Corner-RBYY_half.png
new file mode 100644
index 0000000..34f865c
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_3-Corner-RBYY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_3-Corner-RYBY_half.png b/Documentation~/images/TMP_ColorGradient_3-Corner-RYBY_half.png
new file mode 100644
index 0000000..774d2c8
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_3-Corner-RYBY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_3-Corner-RYYB_half.png b/Documentation~/images/TMP_ColorGradient_3-Corner-RYYB_half.png
new file mode 100644
index 0000000..2bb76ca
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_3-Corner-RYYB_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_3-Corner-YBRY_half.png b/Documentation~/images/TMP_ColorGradient_3-Corner-YBRY_half.png
new file mode 100644
index 0000000..8257b87
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_3-Corner-YBRY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_3-Corner-YRYB_half.png b/Documentation~/images/TMP_ColorGradient_3-Corner-YRYB_half.png
new file mode 100644
index 0000000..a7950fa
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_3-Corner-YRYB_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_3-Corner-YYRB_half.png b/Documentation~/images/TMP_ColorGradient_3-Corner-YYRB_half.png
new file mode 100644
index 0000000..a320048
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_3-Corner-YYRB_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_4-Corner-YBRG_half.png b/Documentation~/images/TMP_ColorGradient_4-Corner-YBRG_half.png
new file mode 100644
index 0000000..89b3ba1
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_4-Corner-YBRG_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_4-Corner-YBRO_half.png b/Documentation~/images/TMP_ColorGradient_4-Corner-YBRO_half.png
new file mode 100644
index 0000000..1f7e247
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_4-Corner-YBRO_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_4-Corner-no-legend.png b/Documentation~/images/TMP_ColorGradient_4-Corner-no-legend.png
new file mode 100644
index 0000000..95e64a3
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_4-Corner-no-legend.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_Horiz-BY_half.png b/Documentation~/images/TMP_ColorGradient_Horiz-BY_half.png
new file mode 100644
index 0000000..f102165
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_Horiz-BY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_Horiz-YB_half.png b/Documentation~/images/TMP_ColorGradient_Horiz-YB_half.png
new file mode 100644
index 0000000..b110552
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_Horiz-YB_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_Single-Y_half.png b/Documentation~/images/TMP_ColorGradient_Single-Y_half.png
new file mode 100644
index 0000000..a446898
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_Single-Y_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_Vert-BY_half.png b/Documentation~/images/TMP_ColorGradient_Vert-BY_half.png
new file mode 100644
index 0000000..1c4995d
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_Vert-BY_half.png differ
diff --git a/Documentation~/images/TMP_ColorGradient_Vert-YB_half.png b/Documentation~/images/TMP_ColorGradient_Vert-YB_half.png
new file mode 100644
index 0000000..1f5d065
Binary files /dev/null and b/Documentation~/images/TMP_ColorGradient_Vert-YB_half.png differ
diff --git a/Documentation~/images/TMP_DebugTool.png b/Documentation~/images/TMP_DebugTool.png
new file mode 100644
index 0000000..7fb5b55
Binary files /dev/null and b/Documentation~/images/TMP_DebugTool.png differ
diff --git a/Documentation~/images/TMP_DebugToolChars.png b/Documentation~/images/TMP_DebugToolChars.png
new file mode 100644
index 0000000..7282c85
Binary files /dev/null and b/Documentation~/images/TMP_DebugToolChars.png differ
diff --git a/Documentation~/images/TMP_FontAssetLineMetrics.png b/Documentation~/images/TMP_FontAssetLineMetrics.png
new file mode 100644
index 0000000..b46400e
Binary files /dev/null and b/Documentation~/images/TMP_FontAssetLineMetrics.png differ
diff --git a/Documentation~/images/TMP_FontAsset_Inspector.png b/Documentation~/images/TMP_FontAsset_Inspector.png
new file mode 100644
index 0000000..b9d18e3
Binary files /dev/null and b/Documentation~/images/TMP_FontAsset_Inspector.png differ
diff --git a/Documentation~/images/TMP_FontAsset_InspectorFaceInfo.png b/Documentation~/images/TMP_FontAsset_InspectorFaceInfo.png
new file mode 100644
index 0000000..7e96a43
Binary files /dev/null and b/Documentation~/images/TMP_FontAsset_InspectorFaceInfo.png differ
diff --git a/Documentation~/images/TMP_FontAsset_InspectorFallbackFontAssets.png b/Documentation~/images/TMP_FontAsset_InspectorFallbackFontAssets.png
new file mode 100644
index 0000000..9fe889d
Binary files /dev/null and b/Documentation~/images/TMP_FontAsset_InspectorFallbackFontAssets.png differ
diff --git a/Documentation~/images/TMP_FontAsset_InspectorFontSubAssets.png b/Documentation~/images/TMP_FontAsset_InspectorFontSubAssets.png
new file mode 100644
index 0000000..13228a8
Binary files /dev/null and b/Documentation~/images/TMP_FontAsset_InspectorFontSubAssets.png differ
diff --git a/Documentation~/images/TMP_FontAsset_InspectorFontWeights.png b/Documentation~/images/TMP_FontAsset_InspectorFontWeights.png
new file mode 100644
index 0000000..fcfc727
Binary files /dev/null and b/Documentation~/images/TMP_FontAsset_InspectorFontWeights.png differ
diff --git a/Documentation~/images/TMP_FontAsset_InspectorGlyphAdjustmentTable.png b/Documentation~/images/TMP_FontAsset_InspectorGlyphAdjustmentTable.png
new file mode 100644
index 0000000..4df9e38
Binary files /dev/null and b/Documentation~/images/TMP_FontAsset_InspectorGlyphAdjustmentTable.png differ
diff --git a/Documentation~/images/TMP_FontAsset_InspectorGlyphTable.png b/Documentation~/images/TMP_FontAsset_InspectorGlyphTable.png
new file mode 100644
index 0000000..e0e4bac
Binary files /dev/null and b/Documentation~/images/TMP_FontAsset_InspectorGlyphTable.png differ
diff --git a/Documentation~/images/TMP_FontAsssetBMPRaster.png b/Documentation~/images/TMP_FontAsssetBMPRaster.png
new file mode 100644
index 0000000..7891df2
Binary files /dev/null and b/Documentation~/images/TMP_FontAsssetBMPRaster.png differ
diff --git a/Documentation~/images/TMP_FontAsssetBMPSmooth.png b/Documentation~/images/TMP_FontAsssetBMPSmooth.png
new file mode 100644
index 0000000..ad74537
Binary files /dev/null and b/Documentation~/images/TMP_FontAsssetBMPSmooth.png differ
diff --git a/Documentation~/images/TMP_FontAsssetSDF.png b/Documentation~/images/TMP_FontAsssetSDF.png
new file mode 100644
index 0000000..f60974d
Binary files /dev/null and b/Documentation~/images/TMP_FontAsssetSDF.png differ
diff --git a/Documentation~/images/TMP_InspectorSpriteAsset.png b/Documentation~/images/TMP_InspectorSpriteAsset.png
new file mode 100644
index 0000000..09dc111
Binary files /dev/null and b/Documentation~/images/TMP_InspectorSpriteAsset.png differ
diff --git a/Documentation~/images/TMP_InspectorSpriteAssetFallback.png b/Documentation~/images/TMP_InspectorSpriteAssetFallback.png
new file mode 100644
index 0000000..e07017f
Binary files /dev/null and b/Documentation~/images/TMP_InspectorSpriteAssetFallback.png differ
diff --git a/Documentation~/images/TMP_InspectorSpriteAssetGlobalOffsets.png b/Documentation~/images/TMP_InspectorSpriteAssetGlobalOffsets.png
new file mode 100644
index 0000000..d8d14ba
Binary files /dev/null and b/Documentation~/images/TMP_InspectorSpriteAssetGlobalOffsets.png differ
diff --git a/Documentation~/images/TMP_InspectorSpriteAssetSpriteInfo.png b/Documentation~/images/TMP_InspectorSpriteAssetSpriteInfo.png
new file mode 100644
index 0000000..d90c2ed
Binary files /dev/null and b/Documentation~/images/TMP_InspectorSpriteAssetSpriteInfo.png differ
diff --git a/Documentation~/images/TMP_InspectorSpriteAssetSpriteList.png b/Documentation~/images/TMP_InspectorSpriteAssetSpriteList.png
new file mode 100644
index 0000000..d846fd0
Binary files /dev/null and b/Documentation~/images/TMP_InspectorSpriteAssetSpriteList.png differ
diff --git a/Documentation~/images/TMP_InspectorSpriteTexture.png b/Documentation~/images/TMP_InspectorSpriteTexture.png
new file mode 100644
index 0000000..30728d0
Binary files /dev/null and b/Documentation~/images/TMP_InspectorSpriteTexture.png differ
diff --git a/Documentation~/images/TMP_LineMetrics.png b/Documentation~/images/TMP_LineMetrics.png
new file mode 100644
index 0000000..b46400e
Binary files /dev/null and b/Documentation~/images/TMP_LineMetrics.png differ
diff --git a/Documentation~/images/TMP_Object_3DInspector.png b/Documentation~/images/TMP_Object_3DInspector.png
new file mode 100644
index 0000000..374708d
Binary files /dev/null and b/Documentation~/images/TMP_Object_3DInspector.png differ
diff --git a/Documentation~/images/TMP_Object_Alignment.png b/Documentation~/images/TMP_Object_Alignment.png
new file mode 100644
index 0000000..5cca84a
Binary files /dev/null and b/Documentation~/images/TMP_Object_Alignment.png differ
diff --git a/Documentation~/images/TMP_Object_Color.png b/Documentation~/images/TMP_Object_Color.png
new file mode 100644
index 0000000..a66660f
Binary files /dev/null and b/Documentation~/images/TMP_Object_Color.png differ
diff --git a/Documentation~/images/TMP_Object_Extra3D.png b/Documentation~/images/TMP_Object_Extra3D.png
new file mode 100644
index 0000000..14e0348
Binary files /dev/null and b/Documentation~/images/TMP_Object_Extra3D.png differ
diff --git a/Documentation~/images/TMP_Object_ExtraUI.png b/Documentation~/images/TMP_Object_ExtraUI.png
new file mode 100644
index 0000000..ab13eaa
Binary files /dev/null and b/Documentation~/images/TMP_Object_ExtraUI.png differ
diff --git a/Documentation~/images/TMP_Object_Font.png b/Documentation~/images/TMP_Object_Font.png
new file mode 100644
index 0000000..9488abd
Binary files /dev/null and b/Documentation~/images/TMP_Object_Font.png differ
diff --git a/Documentation~/images/TMP_Object_Spacing.png b/Documentation~/images/TMP_Object_Spacing.png
new file mode 100644
index 0000000..d36837b
Binary files /dev/null and b/Documentation~/images/TMP_Object_Spacing.png differ
diff --git a/Documentation~/images/TMP_Object_Text.png b/Documentation~/images/TMP_Object_Text.png
new file mode 100644
index 0000000..aff847e
Binary files /dev/null and b/Documentation~/images/TMP_Object_Text.png differ
diff --git a/Documentation~/images/TMP_Object_UIInspector.png b/Documentation~/images/TMP_Object_UIInspector.png
new file mode 100644
index 0000000..1c99b17
Binary files /dev/null and b/Documentation~/images/TMP_Object_UIInspector.png differ
diff --git a/Documentation~/images/TMP_Object_UVMapping.png b/Documentation~/images/TMP_Object_UVMapping.png
new file mode 100644
index 0000000..6e3d73f
Binary files /dev/null and b/Documentation~/images/TMP_Object_UVMapping.png differ
diff --git a/Documentation~/images/TMP_Object_Wrapping.png b/Documentation~/images/TMP_Object_Wrapping.png
new file mode 100644
index 0000000..3575c51
Binary files /dev/null and b/Documentation~/images/TMP_Object_Wrapping.png differ
diff --git a/Documentation~/images/TMP_RichTextAlign.png b/Documentation~/images/TMP_RichTextAlign.png
new file mode 100644
index 0000000..1d1e5d7
Binary files /dev/null and b/Documentation~/images/TMP_RichTextAlign.png differ
diff --git a/Documentation~/images/TMP_RichTextAlignment.png b/Documentation~/images/TMP_RichTextAlignment.png
new file mode 100644
index 0000000..e174cf5
Binary files /dev/null and b/Documentation~/images/TMP_RichTextAlignment.png differ
diff --git a/Documentation~/images/TMP_RichTextAlpha.png b/Documentation~/images/TMP_RichTextAlpha.png
new file mode 100644
index 0000000..022bc4c
Binary files /dev/null and b/Documentation~/images/TMP_RichTextAlpha.png differ
diff --git a/Documentation~/images/TMP_RichTextBoldItalic.png b/Documentation~/images/TMP_RichTextBoldItalic.png
new file mode 100644
index 0000000..0a52122
Binary files /dev/null and b/Documentation~/images/TMP_RichTextBoldItalic.png differ
diff --git a/Documentation~/images/TMP_RichTextColorClosing.png b/Documentation~/images/TMP_RichTextColorClosing.png
new file mode 100644
index 0000000..7e421e1
Binary files /dev/null and b/Documentation~/images/TMP_RichTextColorClosing.png differ
diff --git a/Documentation~/images/TMP_RichTextColors.png b/Documentation~/images/TMP_RichTextColors.png
new file mode 100644
index 0000000..17bed2f
Binary files /dev/null and b/Documentation~/images/TMP_RichTextColors.png differ
diff --git a/Documentation~/images/TMP_RichTextExample1.png b/Documentation~/images/TMP_RichTextExample1.png
new file mode 100644
index 0000000..d6c0675
Binary files /dev/null and b/Documentation~/images/TMP_RichTextExample1.png differ
diff --git a/Documentation~/images/TMP_RichTextExample2.png b/Documentation~/images/TMP_RichTextExample2.png
new file mode 100644
index 0000000..f753dbf
Binary files /dev/null and b/Documentation~/images/TMP_RichTextExample2.png differ
diff --git a/Documentation~/images/TMP_RichTextExample3.png b/Documentation~/images/TMP_RichTextExample3.png
new file mode 100644
index 0000000..2b3bda1
Binary files /dev/null and b/Documentation~/images/TMP_RichTextExample3.png differ
diff --git a/Documentation~/images/TMP_RichTextExample4.png b/Documentation~/images/TMP_RichTextExample4.png
new file mode 100644
index 0000000..b0e7d46
Binary files /dev/null and b/Documentation~/images/TMP_RichTextExample4.png differ
diff --git a/Documentation~/images/TMP_RichTextFont.png b/Documentation~/images/TMP_RichTextFont.png
new file mode 100644
index 0000000..4e9d85d
Binary files /dev/null and b/Documentation~/images/TMP_RichTextFont.png differ
diff --git a/Documentation~/images/TMP_RichTextFontWeight.png b/Documentation~/images/TMP_RichTextFontWeight.png
new file mode 100644
index 0000000..95ea653
Binary files /dev/null and b/Documentation~/images/TMP_RichTextFontWeight.png differ
diff --git a/Documentation~/images/TMP_RichTextGradient.png b/Documentation~/images/TMP_RichTextGradient.png
new file mode 100644
index 0000000..3f667be
Binary files /dev/null and b/Documentation~/images/TMP_RichTextGradient.png differ
diff --git a/Documentation~/images/TMP_RichTextGradientTintCorrected.png b/Documentation~/images/TMP_RichTextGradientTintCorrected.png
new file mode 100644
index 0000000..d2d7db0
Binary files /dev/null and b/Documentation~/images/TMP_RichTextGradientTintCorrected.png differ
diff --git a/Documentation~/images/TMP_RichTextGradientTinted.png b/Documentation~/images/TMP_RichTextGradientTinted.png
new file mode 100644
index 0000000..23ee210
Binary files /dev/null and b/Documentation~/images/TMP_RichTextGradientTinted.png differ
diff --git a/Documentation~/images/TMP_RichTextIndentation.png b/Documentation~/images/TMP_RichTextIndentation.png
new file mode 100644
index 0000000..0d9b62b
Binary files /dev/null and b/Documentation~/images/TMP_RichTextIndentation.png differ
diff --git a/Documentation~/images/TMP_RichTextIntro1.png b/Documentation~/images/TMP_RichTextIntro1.png
new file mode 100644
index 0000000..b79e10f
Binary files /dev/null and b/Documentation~/images/TMP_RichTextIntro1.png differ
diff --git a/Documentation~/images/TMP_RichTextIntro2.png b/Documentation~/images/TMP_RichTextIntro2.png
new file mode 100644
index 0000000..399b0ea
Binary files /dev/null and b/Documentation~/images/TMP_RichTextIntro2.png differ
diff --git a/Documentation~/images/TMP_RichTextIntro3.png b/Documentation~/images/TMP_RichTextIntro3.png
new file mode 100644
index 0000000..1cba629
Binary files /dev/null and b/Documentation~/images/TMP_RichTextIntro3.png differ
diff --git a/Documentation~/images/TMP_RichTextIntro4.png b/Documentation~/images/TMP_RichTextIntro4.png
new file mode 100644
index 0000000..a921334
Binary files /dev/null and b/Documentation~/images/TMP_RichTextIntro4.png differ
diff --git a/Documentation~/images/TMP_RichTextLetterCase.png b/Documentation~/images/TMP_RichTextLetterCase.png
new file mode 100644
index 0000000..2ea6f0c
Binary files /dev/null and b/Documentation~/images/TMP_RichTextLetterCase.png differ
diff --git a/Documentation~/images/TMP_RichTextLineBreak.png b/Documentation~/images/TMP_RichTextLineBreak.png
new file mode 100644
index 0000000..95a332c
Binary files /dev/null and b/Documentation~/images/TMP_RichTextLineBreak.png differ
diff --git a/Documentation~/images/TMP_RichTextLineHeight.png b/Documentation~/images/TMP_RichTextLineHeight.png
new file mode 100644
index 0000000..5e2eb5b
Binary files /dev/null and b/Documentation~/images/TMP_RichTextLineHeight.png differ
diff --git a/Documentation~/images/TMP_RichTextLineIndent.png b/Documentation~/images/TMP_RichTextLineIndent.png
new file mode 100644
index 0000000..0c86dd4
Binary files /dev/null and b/Documentation~/images/TMP_RichTextLineIndent.png differ
diff --git a/Documentation~/images/TMP_RichTextMargins.png b/Documentation~/images/TMP_RichTextMargins.png
new file mode 100644
index 0000000..089c2dd
Binary files /dev/null and b/Documentation~/images/TMP_RichTextMargins.png differ
diff --git a/Documentation~/images/TMP_RichTextMark.png b/Documentation~/images/TMP_RichTextMark.png
new file mode 100644
index 0000000..0207a43
Binary files /dev/null and b/Documentation~/images/TMP_RichTextMark.png differ
diff --git a/Documentation~/images/TMP_RichTextMonospace.png b/Documentation~/images/TMP_RichTextMonospace.png
new file mode 100644
index 0000000..4ee39cf
Binary files /dev/null and b/Documentation~/images/TMP_RichTextMonospace.png differ
diff --git a/Documentation~/images/TMP_RichTextNoBreak.png b/Documentation~/images/TMP_RichTextNoBreak.png
new file mode 100644
index 0000000..88757a8
Binary files /dev/null and b/Documentation~/images/TMP_RichTextNoBreak.png differ
diff --git a/Documentation~/images/TMP_RichTextNoParse.png b/Documentation~/images/TMP_RichTextNoParse.png
new file mode 100644
index 0000000..ff9cc29
Binary files /dev/null and b/Documentation~/images/TMP_RichTextNoParse.png differ
diff --git a/Documentation~/images/TMP_RichTextPos.png b/Documentation~/images/TMP_RichTextPos.png
new file mode 100644
index 0000000..0f561da
Binary files /dev/null and b/Documentation~/images/TMP_RichTextPos.png differ
diff --git a/Documentation~/images/TMP_RichTextRotate.png b/Documentation~/images/TMP_RichTextRotate.png
new file mode 100644
index 0000000..5ee96ff
Binary files /dev/null and b/Documentation~/images/TMP_RichTextRotate.png differ
diff --git a/Documentation~/images/TMP_RichTextRotateOverlap.png b/Documentation~/images/TMP_RichTextRotateOverlap.png
new file mode 100644
index 0000000..59ce66d
Binary files /dev/null and b/Documentation~/images/TMP_RichTextRotateOverlap.png differ
diff --git a/Documentation~/images/TMP_RichTextRotateOverlapCorrected.png b/Documentation~/images/TMP_RichTextRotateOverlapCorrected.png
new file mode 100644
index 0000000..3ec8880
Binary files /dev/null and b/Documentation~/images/TMP_RichTextRotateOverlapCorrected.png differ
diff --git a/Documentation~/images/TMP_RichTextSize.png b/Documentation~/images/TMP_RichTextSize.png
new file mode 100644
index 0000000..578f97c
Binary files /dev/null and b/Documentation~/images/TMP_RichTextSize.png differ
diff --git a/Documentation~/images/TMP_RichTextSpace.png b/Documentation~/images/TMP_RichTextSpace.png
new file mode 100644
index 0000000..06b146e
Binary files /dev/null and b/Documentation~/images/TMP_RichTextSpace.png differ
diff --git a/Documentation~/images/TMP_RichTextSpacing.png b/Documentation~/images/TMP_RichTextSpacing.png
new file mode 100644
index 0000000..ddfe46d
Binary files /dev/null and b/Documentation~/images/TMP_RichTextSpacing.png differ
diff --git a/Documentation~/images/TMP_RichTextSprite.png b/Documentation~/images/TMP_RichTextSprite.png
new file mode 100644
index 0000000..049433f
Binary files /dev/null and b/Documentation~/images/TMP_RichTextSprite.png differ
diff --git a/Documentation~/images/TMP_RichTextStrikethroughUnderline.png b/Documentation~/images/TMP_RichTextStrikethroughUnderline.png
new file mode 100644
index 0000000..07e880b
Binary files /dev/null and b/Documentation~/images/TMP_RichTextStrikethroughUnderline.png differ
diff --git a/Documentation~/images/TMP_RichTextStyle.png b/Documentation~/images/TMP_RichTextStyle.png
new file mode 100644
index 0000000..4eed0d2
Binary files /dev/null and b/Documentation~/images/TMP_RichTextStyle.png differ
diff --git a/Documentation~/images/TMP_RichTextSubSuper.png b/Documentation~/images/TMP_RichTextSubSuper.png
new file mode 100644
index 0000000..ef40d85
Binary files /dev/null and b/Documentation~/images/TMP_RichTextSubSuper.png differ
diff --git a/Documentation~/images/TMP_RichTextVOffset.png b/Documentation~/images/TMP_RichTextVOffset.png
new file mode 100644
index 0000000..2701851
Binary files /dev/null and b/Documentation~/images/TMP_RichTextVOffset.png differ
diff --git a/Documentation~/images/TMP_RichTextWidth.png b/Documentation~/images/TMP_RichTextWidth.png
new file mode 100644
index 0000000..b45011b
Binary files /dev/null and b/Documentation~/images/TMP_RichTextWidth.png differ
diff --git a/Documentation~/images/TMP_Settings_ColorGradientPresets.png b/Documentation~/images/TMP_Settings_ColorGradientPresets.png
new file mode 100644
index 0000000..4d51063
Binary files /dev/null and b/Documentation~/images/TMP_Settings_ColorGradientPresets.png differ
diff --git a/Documentation~/images/TMP_Settings_DefaultFontAsset.png b/Documentation~/images/TMP_Settings_DefaultFontAsset.png
new file mode 100644
index 0000000..5bfd216
Binary files /dev/null and b/Documentation~/images/TMP_Settings_DefaultFontAsset.png differ
diff --git a/Documentation~/images/TMP_Settings_DefaultSpriteAsset.png b/Documentation~/images/TMP_Settings_DefaultSpriteAsset.png
new file mode 100644
index 0000000..4c48e7f
Binary files /dev/null and b/Documentation~/images/TMP_Settings_DefaultSpriteAsset.png differ
diff --git a/Documentation~/images/TMP_Settings_DefaultStyleSheet.png b/Documentation~/images/TMP_Settings_DefaultStyleSheet.png
new file mode 100644
index 0000000..ad76ba7
Binary files /dev/null and b/Documentation~/images/TMP_Settings_DefaultStyleSheet.png differ
diff --git a/Documentation~/images/TMP_Settings_DynamicFontSystemSettings.png b/Documentation~/images/TMP_Settings_DynamicFontSystemSettings.png
new file mode 100644
index 0000000..e8bcd1f
Binary files /dev/null and b/Documentation~/images/TMP_Settings_DynamicFontSystemSettings.png differ
diff --git a/Documentation~/images/TMP_Settings_FallbackFontAssets.png b/Documentation~/images/TMP_Settings_FallbackFontAssets.png
new file mode 100644
index 0000000..2f4f550
Binary files /dev/null and b/Documentation~/images/TMP_Settings_FallbackFontAssets.png differ
diff --git a/Documentation~/images/TMP_Settings_FallbackMaterialSettings.png b/Documentation~/images/TMP_Settings_FallbackMaterialSettings.png
new file mode 100644
index 0000000..f2c79db
Binary files /dev/null and b/Documentation~/images/TMP_Settings_FallbackMaterialSettings.png differ
diff --git a/Documentation~/images/TMP_Settings_Inspector.png b/Documentation~/images/TMP_Settings_Inspector.png
new file mode 100644
index 0000000..a1ee2e6
Binary files /dev/null and b/Documentation~/images/TMP_Settings_Inspector.png differ
diff --git a/Documentation~/images/TMP_Settings_LineBreakingforAsianLanguages.png b/Documentation~/images/TMP_Settings_LineBreakingforAsianLanguages.png
new file mode 100644
index 0000000..133b54b
Binary files /dev/null and b/Documentation~/images/TMP_Settings_LineBreakingforAsianLanguages.png differ
diff --git a/Documentation~/images/TMP_Settings_TextComponentDefaultSettings.png b/Documentation~/images/TMP_Settings_TextComponentDefaultSettings.png
new file mode 100644
index 0000000..d31ef6d
Binary files /dev/null and b/Documentation~/images/TMP_Settings_TextComponentDefaultSettings.png differ
diff --git a/Documentation~/images/TMP_Settings_TextContainerDefaultSettings.png b/Documentation~/images/TMP_Settings_TextContainerDefaultSettings.png
new file mode 100644
index 0000000..e7ec392
Binary files /dev/null and b/Documentation~/images/TMP_Settings_TextContainerDefaultSettings.png differ
diff --git a/Documentation~/images/TMP_Shader_Bitmap.png b/Documentation~/images/TMP_Shader_Bitmap.png
new file mode 100644
index 0000000..88157e8
Binary files /dev/null and b/Documentation~/images/TMP_Shader_Bitmap.png differ
diff --git a/Documentation~/images/TMP_Shader_BitmapCustomAtlas.png b/Documentation~/images/TMP_Shader_BitmapCustomAtlas.png
new file mode 100644
index 0000000..8e2d9a4
Binary files /dev/null and b/Documentation~/images/TMP_Shader_BitmapCustomAtlas.png differ
diff --git a/Documentation~/images/TMP_Shader_BitmapMobile.png b/Documentation~/images/TMP_Shader_BitmapMobile.png
new file mode 100644
index 0000000..2cf4608
Binary files /dev/null and b/Documentation~/images/TMP_Shader_BitmapMobile.png differ
diff --git a/Documentation~/images/TMP_Shader_DFMM_Debug.png b/Documentation~/images/TMP_Shader_DFMM_Debug.png
new file mode 100644
index 0000000..b0c0f4e
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFMM_Debug.png differ
diff --git a/Documentation~/images/TMP_Shader_DFMM_Face.png b/Documentation~/images/TMP_Shader_DFMM_Face.png
new file mode 100644
index 0000000..ec065da
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFMM_Face.png differ
diff --git a/Documentation~/images/TMP_Shader_DFMM_Inspector.png b/Documentation~/images/TMP_Shader_DFMM_Inspector.png
new file mode 100644
index 0000000..8f09200
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFMM_Inspector.png differ
diff --git a/Documentation~/images/TMP_Shader_DFMM_Outline.png b/Documentation~/images/TMP_Shader_DFMM_Outline.png
new file mode 100644
index 0000000..f712359
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFMM_Outline.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_Bevel.png b/Documentation~/images/TMP_Shader_DFS_Bevel.png
new file mode 100644
index 0000000..261a44f
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_Bevel.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_Bump.png b/Documentation~/images/TMP_Shader_DFS_Bump.png
new file mode 100644
index 0000000..fec880f
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_Bump.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_Debug.png b/Documentation~/images/TMP_Shader_DFS_Debug.png
new file mode 100644
index 0000000..d3e72e4
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_Debug.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_EnvMap.png b/Documentation~/images/TMP_Shader_DFS_EnvMap.png
new file mode 100644
index 0000000..84e6ad7
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_EnvMap.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_Face.png b/Documentation~/images/TMP_Shader_DFS_Face.png
new file mode 100644
index 0000000..0f87006
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_Face.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_Glow.png b/Documentation~/images/TMP_Shader_DFS_Glow.png
new file mode 100644
index 0000000..c7284c5
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_Glow.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_Inspector.png b/Documentation~/images/TMP_Shader_DFS_Inspector.png
new file mode 100644
index 0000000..2a02f9b
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_Inspector.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_Outline.png b/Documentation~/images/TMP_Shader_DFS_Outline.png
new file mode 100644
index 0000000..1961367
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_Outline.png differ
diff --git a/Documentation~/images/TMP_Shader_DFS_SurfaceLighting.png b/Documentation~/images/TMP_Shader_DFS_SurfaceLighting.png
new file mode 100644
index 0000000..dbd9daa
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DFS_SurfaceLighting.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_Debug.png b/Documentation~/images/TMP_Shader_DF_Debug.png
new file mode 100644
index 0000000..3ac22ee
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_Debug.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_Face.png b/Documentation~/images/TMP_Shader_DF_Face.png
new file mode 100644
index 0000000..e209b83
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_Face.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_Glow.png b/Documentation~/images/TMP_Shader_DF_Glow.png
new file mode 100644
index 0000000..c7284c5
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_Glow.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_Inspector.png b/Documentation~/images/TMP_Shader_DF_Inspector.png
new file mode 100644
index 0000000..32da607
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_Inspector.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_Lighting.png b/Documentation~/images/TMP_Shader_DF_Lighting.png
new file mode 100644
index 0000000..f3117ac
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_Lighting.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_LightingBevel.png b/Documentation~/images/TMP_Shader_DF_LightingBevel.png
new file mode 100644
index 0000000..745a552
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_LightingBevel.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_LightingBump.png b/Documentation~/images/TMP_Shader_DF_LightingBump.png
new file mode 100644
index 0000000..8c0ee3c
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_LightingBump.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_LightingEnv.png b/Documentation~/images/TMP_Shader_DF_LightingEnv.png
new file mode 100644
index 0000000..176af04
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_LightingEnv.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_LightingLocal.png b/Documentation~/images/TMP_Shader_DF_LightingLocal.png
new file mode 100644
index 0000000..fdcbc5b
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_LightingLocal.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_Outline.png b/Documentation~/images/TMP_Shader_DF_Outline.png
new file mode 100644
index 0000000..b33a6c4
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_Outline.png differ
diff --git a/Documentation~/images/TMP_Shader_DF_Underlay.png b/Documentation~/images/TMP_Shader_DF_Underlay.png
new file mode 100644
index 0000000..47f3c49
Binary files /dev/null and b/Documentation~/images/TMP_Shader_DF_Underlay.png differ
diff --git a/Documentation~/images/TMP_SpriteAtlas.png b/Documentation~/images/TMP_SpriteAtlas.png
new file mode 100644
index 0000000..c94eea0
Binary files /dev/null and b/Documentation~/images/TMP_SpriteAtlas.png differ
diff --git a/Documentation~/images/TMP_StyleSheets_ExampleHeading_Inspector.png b/Documentation~/images/TMP_StyleSheets_ExampleHeading_Inspector.png
new file mode 100644
index 0000000..9e04b7b
Binary files /dev/null and b/Documentation~/images/TMP_StyleSheets_ExampleHeading_Inspector.png differ
diff --git a/Documentation~/images/TMP_StyleSheets_ExampleHeading_Render.png b/Documentation~/images/TMP_StyleSheets_ExampleHeading_Render.png
new file mode 100644
index 0000000..77473cc
Binary files /dev/null and b/Documentation~/images/TMP_StyleSheets_ExampleHeading_Render.png differ
diff --git a/Documentation~/include-rich-text-tags.md b/Documentation~/include-rich-text-tags.md
new file mode 100644
index 0000000..3e8115a
--- /dev/null
+++ b/Documentation~/include-rich-text-tags.md
@@ -0,0 +1,39 @@
+| Tag: | Description: | Notes:|
+|-------------|-------------|-|
+|[``](RichTextAlignment.md)|Changes the text's horizontal alignment.||
+|[``](RichTextAlignment.md)|Converts text to uppercase before rendering.|Functionally identical to ``.|
+|[``](RichTextOpacity.md)|Changes text opacity.||
+|[``](RichTextBoldItalic.md)|Renders text in boldface.||
+|[` `](RichTextLineBreak.md) | Forces a line break in text. | |
+|[``](RichTextColor.md)|Changes text color or color and opacity.||
+|[``](RichTextCharacterSpacing.md)|Changes spacing between characters.||
+|[``](RichTextFont.md)|Changes text font and, optionally, material.||
+|[``](RichTextFontWeight.md) | Changes the text's font weight to any of the weights defined in the [font Asset](FontAssetsProperties.md). | |
+|[``](RichTextGradient.md) | Applies a [gradient preset](ColorGradientsPresets.md) to text. | |
+|[``](RichTextBoldItalic.md)|Renders text in italics.||
+|[``](RichTextIndentation.md)|Indents all text between the tag and the next hard line break.||
+|[``](RichTextLineHeight.md)|Modifies the line height relative to the default line height specified in the font Asset.||
+|[``](RichTextLineIndentation.md)|Indents the first line after every hard line break.|New lines created by word-wrapping are not indented.|
+|[``](RichTextLink.md)|Specifies a link ID for a text segment.||
+|[``](RichTextLetterCase.md)|Converts text to lowercase before rendering.||
+|[``](RichTextMargins.md)|Gives the text horizontal margins.|You can set margins for both sides together or each side individually|
+|[``](RichTextMark.md)|Highlights the text with a colored overlay.|The overlay must be translucent (alpha less than 1) for the text to show through.|
+|[``](RichTextMonospace.md)|Renders the text as monospace.||
+|[``](RichTextNoBreak.md)|Keeps a segment of text together.||
+|[``](RichTextNoParse.md)|Prevents parsing of text that TextMesh Pro would normally interpret as rich text tags.||
+|[``](RichTextPageBreak.md)|Adds a page break to the text.|The text's [**Overflow** mode](TMPObjectUIText.md#wrapping) must be set to **Page** for page breaks to work.|
+|[``](RichTextPos.md)|Sets the horizontal caret position on the current line.||
+|[``](RichTextRotate.md) | Rotates each character about its center. | |
+|[``](RichTextStrikethroughUnderline.md)|Renders a line across the text.||
+|[``](RichTextSize.md)|Adjusts the font size for a specified portion of the text.||
+|[``](RichTextLetterCase.md)|Converts text to uppercase before rendering.||
+|[``](RichTextSpace.md)|Adds a horizontal offset between itself and the rest of the text.||
+|[``](RichTextSprite.md)|Adds a [sprite](Srites.md) to the text.|By default, TextMesh Pro looks in the default sprite assets, but you can use tag attributes to retrieve sprites from other assets.|
+|[``](RichTextStrikethroughUnderline.md) | Draws a line slightly above the baseline so it crosses out the text. ||
+|[`