CSS References
CSS - Reference CSS - Selectors CSS - Functions CSS - Units CSS - Animatable CSS - Entities
All CSS Properties
align-content align-items align-self all animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size border border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing caption-side caret-color @charset clear clip color column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width columns content counter-increment counter-reset cursor direction display empty-cells filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font @font-face font-family font-kerning font-size font-size-adjust font-stretch font-style font-variant font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-rows grid-column grid-column-end grid-column-gap grid-column-start grid-gap grid-row grid-row-end grid-row-gap grid-row-start grid-template grid-template-areas grid-template-columns grid-template-rows hanging-punctuation height hyphens @import isolation justify-content @keyframes left letter-spacing line-height list-style list-style-image list-style-position list-style-type margin margin-bottom margin-left margin-right margin-top max-height max-width @media min-height min-width mix-blend-mode object-fit object-position opacity order outline outline-color outline-offset outline-style outline-width overflow overflow-x overflow-y padding padding-bottom padding-left padding-right padding-top page-break-after page-break-before page-break-inside perspective perspective-origin pointer-events position quotes resize right tab-size table-layout text-align text-align-last text-decoration text-decoration-color text-decoration-line text-decoration-style text-indent text-justify text-overflow text-shadow text-transform top transform transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi user-select vertical-align visibility white-space width word-break word-spacing word-wrap z-index

CSS @font-face Rule

The @font-face rule allows custom fonts to be loaded on a webpage.

Once added to a stylesheet, the rule instructs the browser to download the font from where it is hosted (either a remote server or the user's own computer), then display it as specified in the CSS.

CSS Demo: @font-face

@font-face {
font-family: Tangerine;
src: url(Tangerine.ttf);
}
@font-face {
font-family: 'Indie Flower';
src: url(Indie_Flower.woff);
}
@font-face {
font-family: Orbitron;
src: url(Orbitron.ttf);
}

The @font-face rule should be added to the stylesheet before any styles:

@font-face {
   font-family: MyWebFont;
   src: url('webfont.woff2') format('woff2'),  /* Super Modern Browsers */
        url('webfont.woff') format('woff');    /* Pretty Modern Browsers */
}

To use the font for an HTML element, refer to the name of the font (MyWebFont) through the font-family property:

div {
   font-family: MyWebFont;
}

@font-face cannot be declared within a CSS selector. For example, the following will not work:

.className {
   @font-face {
       font-family: MyWebFont;
       src: url('webfont.woff2') format('woff2'),
            url('webfont.woff') format('woff');
       font-weight: bold;
   }
}


CSS Syntax:

@font-face {
    font-properties
}

Examples

The following example shows how to use @font-face rule:

Run code

Alternative Techniques

While @font-face is excellent for fonts that are hosted on our own servers, there may be situations where a hosted font solution is better. Google Fonts offers this as a way to use their fonts.

The following is an example of using @import to load the "Tangerine" font from Google Fonts:

Run code

Similarly, you could link to the same asset as you would any other CSS filter, in the <head> of the HTML document rather than in the CSS. Using the same example from Google Fonts, this is what we would use:

Run code

Browser compatibility

The numbers in the table specify the first browser version that fully supports the font format:

Font format
TTF/OTF 4 3.5 10 3.1 9
WOFF 6 3.5 11.1 5.1 9
WOFF2 36 35
(with flag)
23 10.2 (Sierra) not supported
SVG 4 not supported 9 3.2 not supported
EOT not supported not supported not supported not supported 6

In Firefox WOFF2 is disabled by default, but can be enabled (need to set a flag to "true" to use WOFF2).

Descriptor Properties

The following table describes the values of @font-face rule:

Descriptors Description
font-family Specifies the name of the font (Required)
src Specifies the resource containing the font data. This can be a URL to a remote font file location or the name of a font on the user's computer (Required)
font-stretch Specifies how the font should be stretched (Optional)
font-style Specifies how the font should be styled (Optional)
font-weight Specifies the boldness of the font (Optional)
initial Sets this property to its default value
inherit Inherits this property from its parent element

See also

CSS @import Rule