Typography

Typography includes typeface, line height, sizing, and spacing considerations that lead to legible and appealing text in the UI.

Primary font: Aeonik

Typography is an essential element of our identity and a powerful tool for
achieving consistent expression in our communication.

Aeonik is selected for its clean lines and contemporary feel, which align
with the SOROS vision of clarity and efficiency. It reflects our commitment
to creating a user experience that’s not only visually appealing but also
inherently functional and accessible.

Use the right font for the job

For our products, we have simplified the fonts used within SOROS in order to quickly orient people to the most important information.

Frame 25

Font weight

We have tokens ranging from Light to Extrabold for font weights. However, our system does not use Light or Bold. We have simplified fonts used within the product to better blend layouts and not add confusion to the visual hierarchy.

Font Weight

Font choices in product

The Display font is perfect for those brand moments

We use Aeonik Medium, paired with a set of large font sizes for creating expressive headings and editorial moments.

Frame 16

                                                        
                                                        
                                                            font-family: var(--Display-Font-Family, Aeonik);
                                                        font-size: var(--Display-H1, 95.37px);
                                                        font-style: normal;
                                                        font-weight: var(--Display-H1-Weight, 500);
                                                        line-height: 100%; /* 95.37px */
                                                        
                                                            
Frame 17

                                                        
                                                        
                                                            font-family: var(--Display-Font-Family, Aeonik);
                                                        font-size: var(--Display-H2, 76.29px);
                                                        font-style: normal;
                                                        font-weight: var(--Display-H2-Weight, 500);
                                                        line-height: 100%; /* 76.29px */
                                                        
                                                            
Frame 18

                                                        
                                                        
                                                            font-family: var(--Display-Font-Family, Aeonik);
                                                        font-size: var(--Display-H3, 61.04px);
                                                        font-style: normal;
                                                        font-weight: var(--Display-H3-Weight, 500);
                                                        line-height: 100%; /* 61.04px */
                                                        
                                                            

We use Heading and Title styles for headings and labels

We like to keep type styles consistent for customers to be able to quickly scan content and create visual hierarchy. In order to do so, we only use Medium for headings and labels.

Frame 19

                                                        
                                                        
                                                            font-family: var(--Heading-Font-Family, Aeonik);
                                                        font-size: var(--Heading-H4, 48.83px);
                                                        font-style: normal;
                                                        font-weight: var(--Heading-H4-Weight, 500);
                                                        line-height: 100%; /* 48.83px */
                                                        
                                                            
Frame 20

                                                        
                                                        
                                                            font-family: var(--Heading-Font-Family, Aeonik);
                                                        font-size: var(--Heading-H5, 39.06px);
                                                        font-style: normal;
                                                        font-weight: var(--Heading-H5-Weight, 400);
                                                        line-height: 100%; /* 39.06px */
                                                        
                                                            
Frame 21

                                                        
                                                        
                                                            font-family: var(--Heading-Font-Family, Aeonik);
                                                        font-size: var(--Heading-H6, 31.25px);
                                                        font-style: normal;
                                                        font-weight: var(--Heading-H6-Weight, 500);
                                                        line-height: 100%; /* 31.25px */
                                                        
                                                            
Frame 19

                                                        
                                                        
                                                            font-family: var(--Body-Font-Family, Aeonik);
                                                        font-size: var(--Body-Large, 25px);
                                                        font-style: normal;
                                                        font-weight: var(--Body-Large-Weight, 400);
                                                        line-height: 100%; /* 25px */
                                                        
                                                            
Frame 20

                                                        
                                                        
                                                            font-family: var(--Body-Font-Family, Aeonik);
                                                        font-size: var(--Body-Medium, 20px);
                                                        font-style: normal;
                                                        font-weight: var(--Body-Medium-Weight, 400);
                                                        line-height: 120%; /* 24px */
                                                        
                                                            
Frame 25

                                                        
                                                        
                                                            font-family: var(--Body-Font-Family, Aeonik);
                                                        font-size: var(--Body-Medium, 20px);
                                                        font-style: normal;
                                                        font-weight: var(--Body-Medium-Strong-Weight, 500);
                                                        line-height: 120%; /* 24px */
                                                        
                                                            

When you have lots to say, use Body Text Regular

In order to create juxtaposition and legibility within our designs, SOROS Regular font weight is used for all body copy. This blends well and gives a nice balance with the headings that are Medium.

Frame 21

                                                        
                                                        
                                                            font-family: var(--Body-Font-Family, Aeonik);
                                                        font-size: var(--Body-Default, 16px);
                                                        font-style: normal;
                                                        font-weight: var(--Body-Default-Weight, 400);
                                                        line-height: 120%; /* 19.2px */
                                                        
                                                            
Frame 24

                                                        
                                                        
                                                            font-family: var(--Body-Font-Family, Aeonik);
                                                        font-size: var(--Body-Strong-Default, 16px);
                                                        font-style: normal;
                                                        font-weight: var(--Body-Default-Strong-Weight, 500);
                                                        line-height: 120%; /* 19.2px */
                                                        
                                                            

Reserve SOROS Label for smaller type

Need to display smaller, supplementary text under an image or add a footnote? For captions, we use smaller SOROS regular font weights to anchor small units of type.

Frame 22

                                                        
                                                        
                                                            font-family: var(--Body-Font-Family, Aeonik);
                                                        font-size: var(--Body-Label, 12.8px);
                                                        font-style: normal;
                                                        font-weight: var(--Body-Label-Weight, 400);
                                                        line-height: 100%; /* 12.8px */
                                                        
                                                            
Frame 23

                                                        
                                                        
                                                            font-family: var(--Body-Font-Family, Aeonik);
                                                        font-size: var(--Body-Copy, 10.24px);
                                                        font-style: normal;
                                                        font-weight: var(--Body-Copy-Weight, 400);
                                                        line-height: 100%; /* 10.24px */
                                                        
                                                            

Text and icon colors

Text color tokens are used to define text and icon colors. We’ve created a set of accessible text color tokens to promote legibility and readability to be used on dark and light backgrounds.

Text / Brand
#590dcf
Default
#ffffff
On Brand
#250557
On Brand Secondary
Text / Danger
#ff3200
Default
#ffffff
On Danger
#6b1500
On Danger Secondary
Text / Positive
#03bc00
Default
#ffffff
On Positive
#014f00
On Positive Secondary
Text / Warning
#f9a825
Default
#393939
On Warning
#393939
On Warning Secondary
Text / Disabled
#cdcdcd
Default
#a8a8a8
On Disabled
Text / Utilities
#f7931a
Bitcoin
Text / Default
#000000
Default
#ffffff
Inverse
#a8a8a8
Secondary
Text / Neutral
#ffffff
On Neutral
#000000
On Neutral Secondary
Icon / Default
#000000
Default
#a8a8a8
Secondary
#ffffff
Inverse
Icon / Utilities
#f7931a
Bitcoin
#1f7be7
Security
Icon / Disabled
#cdcdcd
Default
#a8a8a8
On Disabled

Text components

We know how time-consuming it is to fiddle with type styles to get the correct one. This is why we have created type components, so they have style built into them. You can focus on designing full layouts, and we can worry about the nitty-gritty.

Typography
Ag

H1

Token set
-
Ag

H2

Token set
-
Ag

H3

Token set
-
Ag

H4

Token set
-
Ag

H5

Token set
-
Ag

H6

Token set
-
Ag

Body Large

Token set
-
Ag

Body Default

Token set
-
Ag

Body Medium

Token set
-
Ag

Body Label

Token set
-
Ag

Body Copy

Token set
-
Ag

Body Strong Default

Token set
-
Ag

Body Strong Medium

Token set
-

Ever wonder why we make the choices we make when it comes to styling type?

Let’s do a small deep dive into some of our favorite tips for typography.

Alignment

When in doubt, flush left

We suggest using a left alignment for styling UI copy in left-to-right languages. This provides a stronger vertical alignment of your design and a better reading experience while seeing the hierarchy of the content. This also makes it easier to scan content, especially for users of screen magnifiers or higher zoom levels.

Do

Left Align

Don’t

Right Align

When to center type

We don’t suggest centering large groups of text, it’s not always the most effective in information design and legibility. However, it may make sense within a card or under a data visual or image if it's a small amount of content.

Center Align Do

Base alignment

In some instances, it is helpful to bottom align your units of type instead of centering your type. This helps when you have multiple type sizes and gives a unified look. It's that it's easier for humans to scan text content when it's on the same baseline.

Do

Base Align Do

Leading (line height)

Leading helps with legibility in your designs. Having leading too tight or too open can be strenuous on the reader. Lucky for you, SOROS already uses the best line-height tokens within our type-based components to have the perfect leading already built in.

Do

Leading Do

Don’t

Leading Don't

Case styles

All caps

We recommend avoiding forced capitalization. It’s not accessible with screen readers, and in many languages, does not translate. It also tends to be less legible than sentence case.

Do

Case Do

Don’t

Case Don't

In almost all cases in SOROS, use sentence case

Tips on when and when not to capitalize:

  • Avoid setting a single capitalization design rule that fits all languages.
  • In French, Italian, and Spanish (among others) only the first letter should be capitalized for certain words.
  • In German, certain types of nouns, gerunds, and names must start with upper-case.

Developers should avoid using CSS, e.g. text-transform: capitalize; to handle capitalization.

Here’s when you do capitalize every word with title case:

  • Proper nouns – products, people, places.
  • Products include features, programs, or systems that SOROS has given a specific name to.
  • If a brand or product name uses a mix of upper and lower case (TwiML, eBay) use the name's convention.
  • People - named individuals or identifiable roles.

Text wrap (line length)

We want to create comfortable reading for our customers. We suggest no more than 120 characters per line. When working with line lengths we want to create short, but efficient lines of text, so the content is easier to scan, it's readable, and not overwhelming.

Do

Text Wrap Do

Don’t

Text Wrap Don't

It's also good practice to give more padding (space) if your content is within a container. Just like us humans, our type doesn’t like to feel claustrophobic.

Do

Text Wrap Do

Don’t

Text Wrap Don't