Fonts | Yext Hitchhikers Platform
Fonts are an important part of a website’s branding. They control how the text on your Search experience is rendered. Although Search will default to system-available fonts, you can update the fonts on your experience through CSS to make it more in line with your brand’s fonts.
Common Font Properties
Here are a few of the CSS properties you’ll be interacting with as you change your fonts.
Font Family
The font family attribute lets you define the font for a given element. The property can hold several fonts as ‘fall-backs’ if a browser isn’t able to render one of the preferred fonts. In the below example, if Arial is not available, the browser will use Helvetica. If neither are available, it’ll use sans-serif, a generic font.
--yxt-font-family: Arial, Helvetica, sans-serif;
Font Weight
This controls the heaviness, or boldness of the font. You can define the font-weight through keywords: normal, bold, bolder, or lighter.
You can also define font-weight using numbers - 100, 200, 300, 400, 500, 600, 700, 800, and 900. 400
is the same as normal
, and 700
is the same as bold
.
a {
font-weight: bold;
&:hover
{
font-weight: normal;
}
}
Font Style
This can be used to italicize fonts.
a {
font-style: italic;
&:hover
{
font-style: normal;
}
}
Font Face
The font face declaration isn’t a property in itself, but rather pulls all the properties of a font together. We define the font-face for every variation of a font we want to use in the fonts.scss
file. You will typically use this property when you
Add Web Fonts
to your Search frontend.
The properties you’ll set are below:
Property | Description |
---|---|
font-family | The name of the font |
src | The URL where the font can be downloaded by the browser. |
font-weight | This records the weight of the font you’re importing |
font-style | This determines if the text is italicized or not |
For the below example, we define Roboto Mono for different font weights (regular and bold) and italics.
@font-face
{
font-family: "Roboto Mono";
src: url('../../assets/fonts/robotomono-bold-webfont.woff') format("woff");
font-weight: $font-weight-bold;
font-style: normal;
}
@font-face
{
font-family: "Roboto Mono";
src: url('../../assets/fonts/robotomono-regular-webfont.woff') format("woff");
font-weight: $font-weight-normal;
font-style: normal;
}
@font-face
{
font-family: "Roboto Mono";
src: url('../../assets/fonts/robotomono-italic-webfont.woff') format("woff");
font-weight: $font-weight-normal;
font-style: italic;
}
Font Variables
Lastly, there are a few variables in the fonts.scss
file that allow you to control the size of the fonts or text in your experience. You can adjust these to impact the fonts across your site.
For example, you can use the --yxt-font-size--
variables to increase the font size across your Search experience. If you want to update other font variables like boldness or height for all of the text (e.g., titles, subtitles) within your experience, you will also edit that here.
$font-weight-bold: 700;
$font-weight-semibold: 600;
$font-weight-medium: 500;
$font-weight-normal: 400;
$font-weight-light: 300;
:root {
--yxt-font-weight-bold: #{$font-weight-bold};
--yxt-font-weight-semibold: #{$font-weight-semibold};
--yxt-font-weight-medium: #{$font-weight-medium};
--yxt-font-weight-normal: #{$font-weight-normal};
--yxt-font-weight-light: #{$font-weight-light};
--yxt-font-size-xs: 10px;
--yxt-font-size-sm: 12px;
--yxt-font-size-md: 14px;
--yxt-font-size-md-lg: 16px;
--yxt-font-size-lg: 18px;
--yxt-font-size-xlg: 20px;
--yxt-font-size-xxlg: 40px;
--yxt-line-height-xs: 1;
--yxt-line-height-sm: 1.2;
--yxt-line-height-md-sm: 4/3;
--yxt-line-height-md: 1.4;
--yxt-line-height-lg: 1.5;
--yxt-line-height-xlg: 5/3;
--yxt-line-height-xxlg: 1.7;
--yxt-font-family: "Open Sans",system-ui,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
}