Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Letter Spacing Converter (Figma & Adobe to CSS)

Tracking, Figma % and px to CSS em, px and rem — plus line height, with a live preview.

Design No upload Works offline Free, no sign-up

Text

px
In a 72 ppi Photoshop or Illustrator file, the pt size is the same number.
px
For rem: 16 unless your CSS sets html’s font size.

Letter spacing

Type 50, -2%, 0.5px or 0.05em — or paste letter-spacing: -0.02em; from CSS.

CSS letter-spacing 0.05em 50 ÷ 1000 = 0.05em
    Code for each platform

      Line height

      Type 150%, 24px or 1.5. Figma’s Auto and CSS normal depend on the font, so they cannot be converted.

      CSS line-height 1.5 150% ÷ 100 = 1.5 (unitless)
        Code for each platform

          Preview

          letter-spacing: normal

          letter-spacing: 0.05em · line-height: 1.5

          The same values at other sizes

          em and unitless values scale with the text; these are the pixel results.

          Pixel values at common font sizes
          Font sizeLetter spacingLine height

          Next steps

          About the Letter Spacing Converter (Figma & Adobe to CSS)

          Design files and stylesheets measure letter spacing in different units. Adobe InDesign, Illustrator and Photoshop use tracking in thousandths of an em, Figma uses a percentage of the font size or pixels, and CSS wants em, px or rem. Enter the value from the design and the font size, and the converter shows it in every unit at once — with ready-to-paste code for CSS, Tailwind CSS, SwiftUI, Android, Jetpack Compose, Flutter and React Native.

          Line height gets the same treatment: Figma’s 150%, a fixed 24px and CSS’s unitless 1.5 are converted into each other, and a live preview shows the text with your spacing so you can check it before handing it over.

          How to use it

          1. Enter the font size of the text in px (in a Photoshop or Illustrator file set up for screens at 72 ppi, the size in pt is the same number). Change the root font size only if your CSS sets one for html.
          2. Under Letter spacing, type the value from the design and choose its unit — tracking such as 50, Figma’s -2%, or 0.5px. A unit you type (%, px, em, rem) is picked up automatically, and pasted CSS such as letter-spacing: -0.02em; works too.
          3. Read the value in every unit and copy the code line for your platform. em is usually the best choice for CSS: it keeps the spacing in proportion when the font size changes.
          4. Under Line height, enter Figma’s percentage, a pixel value or a unitless number to get the others, then check both in the preview with your own text, font and weight.

          Examples

          Adobe tracking to CSS
          Input
          Tracking 50 at 16px
          Result
          letter-spacing: 0.05em; (0.8px, 5% in Figma)

          Tracking ÷ 1000 = em, and em × font size = px.

          A tight Figma headline
          Input
          Letter spacing -2% at 48px
          Result
          letter-spacing: -0.02em; (-0.96px, tracking -20)
          Figma line height to CSS
          Input
          Line height 150% at 16px
          Result
          line-height: 1.5; (24px)
          Sketch character spacing to CSS
          Input
          1.2 px at 14px
          Result
          letter-spacing: 0.0857em; (tracking 85.7)

          1.2 ÷ 14 = 0.0857 em, rounded to four decimals.

          Common uses

          • Turning tracking values from an InDesign or Illustrator brand guide into CSS for a website.
          • Copying Figma text styles into code, design tokens or a Tailwind theme without guessing.
          • Giving iOS, Android and Flutter developers the right unit for each platform from one design value.
          • Checking what a line height of 140% means in pixels for a baseline grid.

          The formulas

          • Adobe tracking is measured in thousandths of an em (the InDesign scripting reference defines tracking that way), so em = tracking ÷ 1000. Figma’s own help gives the same rule: letter spacing = tracking / 1000.
          • Figma % is a percentage of the font size: em = % ÷ 100, so 5% is 0.05em.
          • px = em × font size, and rem = px ÷ root font size.
          • Line height: a unitless number or em multiplies the font size, % is that number × 100, and px = number × font size. Figma’s percentage line height is also a percentage of the font size.

          Percentages in CSS

          CSS Text Level 3 only allows normal or a length for letter-spacing. CSS Text Level 4 adds percentages of the font size — the same meaning as Figma’s percent — and current Chromium, Firefox and WebKit engines accept letter-spacing: 5%. Browsers that only implement Level 3 drop the whole declaration, so 0.05em remains the safe way to write it.

          Where browsers put the spacing

          The CSS Text specifications place half of the spacing on each side of a letter and none at the start or end of a line. In our tests with current Chromium, Firefox and WebKit engines, the browsers add the whole amount after every letter instead, including the last one — so a 10px spacing makes “abc” 30px wider, not 20px. Centred or right-aligned text with wide spacing therefore sits slightly to the left. To balance it, add margin-right equal to minus the spacing (margin-right: -0.1em for letter-spacing: 0.1em), or the same amount as padding-left.

          Unitless, % or px line height?

          In CSS a unitless line height is inherited as a number, so every child element multiplies it by its own font size. A percentage or em is turned into a fixed length on the element that sets it, and children inherit that length — a small caption inside a line-height: 150% paragraph keeps the paragraph’s pixels (CSS 2.1 line-height). That is why unitless values are recommended. In both CSS and Figma the extra space is shared equally above and below the text.

          Units on other platforms

          Limitations

          • Figma’s “Auto” line height and CSS line-height: normal come from the font’s own metrics, so they have no fixed value to convert. Switch the line height to px in Figma to read the number.
          • Kerning set by hand between two letters (and Adobe’s optical kerning) is not part of tracking and is not converted.
          • The preview uses fonts installed on your device; the exact look depends on the font and the browser.
          • Results are rounded to four decimals for em, rem and unitless values and to three for pixels.

          Privacy

          Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

          Frequently asked questions

          How do I convert Adobe tracking to CSS letter-spacing?

          Divide the tracking value by 1000 and write it in em: tracking 50 is letter-spacing: 0.05em, and tracking -25 is -0.025em. The font size does not matter for em; it only matters if you want px (0.05em at 16px is 0.8px).

          How do I turn Figma’s letter spacing percentage into CSS?

          Divide it by 100 and use em: Figma’s -2% is letter-spacing: -0.02em. If Figma shows px instead, divide by the font size: 0.5px at 20px is 0.025em.

          Should letter-spacing be in em or px?

          Use em in most cases. It is a fraction of the font size, so the spacing stays in proportion when the text is resized, inherited by bigger or smaller text, or zoomed by the reader’s text settings. A px value stays the same at every size.

          Why does my centred, letter-spaced text look off-centre?

          Browsers add the spacing after every letter, including the last one, so the text has extra space on the right. Add margin-right: -0.1em (minus your letter spacing) or the same amount as padding-left to centre it visually.

          What is the difference between line-height: 1.5 and 150%?

          On the element itself both give 1.5 × the font size. The difference is inheritance: children of 1.5 multiply by their own font size, while children of 150% inherit the parent’s fixed pixel value, which can make small text too loose or large text overlap.

          Is anything uploaded?

          No. Every conversion runs in your browser, and the page keeps working offline once it has loaded.

          Quick answers and tool search

          Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.