Setting font  Descriptionsproperties will be among the most common uses of style
sheets. Unfortunately, there exists no well-defined and  @font-face 15.3.2 Descriptorsuniversally
accepted taxonomy for  Selecting a Font: 'font-family' , 'font-style' , 'font-variant' , 'font-weight' , 'font-stretch'classifying fonts, and  'font-size' 15.3.3 Descriptors forterms that apply to one
font  Data Qualification: 'unicode-range' 15.3.4 Descriptor for Numeric Values: 'units-per-em' 15.3.5 Descriptor for Referencing: 'src' 15.3.6 Descriptors for Matching: 'panose-1' , 'stemv' , 'stemh' , 'slope' , 'cap-height' , 'x-height' , 'ascent' , and 'descent' 15.3.7 Descriptors for Synthesis: 'widths' , 'bbox' and 'definition-src' 15.3.8 Descriptorsfamily may not be appropriate for  Alignment: 'baseline' , 'centerline' , 'mathline' , and 'topline' 15.3.9 Examples 15.4 Font Characteristics 15.4.1 Introducing Font Characteristics 15.4.2 Full font name 15.4.3 Coordinate units on the em square 15.4.4 Central Baseline 15.4.5 Font Encoding 15.4.6others. E.g. 'italic' is
commonly used to label slanted text, but slanted text may also be
labeled as being Oblique, Slanted, Incline, Cursive or
Kursiv. Therefore it is not a simple problem to map typical
font  family name 15.4.7 Glyph widths 15.4.8 Horizontal stem width 15.4.9 Height of uppercase glyphs 15.4.10 Height of lowercase glyphs 15.4.11 Lower Baseline 15.4.12 Mathematical Baseline 15.4.13 Maximal bounding box 15.4.14 Maximum unaccented height 15.4.15 Maximum unaccented depth 15.4.16 Panose-1 number 15.4.17 Range of ISO 10646 characters 15.4.18 Top Baseline 15.4.19 Vertical stem width 15.4.20 Vertical stroke angle 15.5selection properties to a specific font.
 15.5.1 Mapping font weight values to font names 15.5.2 ExamplesBecause there is no accepted, universal taxonomy of font
properties, matching  15.1 Introduction When a document's text isof properties to  be displayed visually, characters (abstract information elements)font faces must be  mapped to abstract glyphs . One or more characters may be depicted by one or more abstract glyphs,done
carefully. The properties are matched in a  possibly context-dependent fashion. A glyph iswell-defined order to
insure that the  actual artistic representationresults of  an abstract glyph, in some typographic style, inthis matching process are as consistent as
possible across UAs (assuming that the  formsame library of  outlines or bitmaps that may be drawn on the screen or paper. Afont faces is
presented to each of them).
- The User Agent makes (or accesses) a  setdatabase of relevant CSS 2.1
properties ofglyphs,allobservingthesamebasicmotifaccordingtodesign,size,appearance,andotherattributesassociatedfonts of which the UA is aware. 
If there are two fonts with exactly the same properties, theentireset,andamappingfromcharacterstoabstractglyphs.Avisualuser
agentmustaddressthefollowingissuesbeforeactuallyrenderingselects one of them.
- At a  character:Isthere,directlyorbyinheritance,given element and for each character in that element, the UA
assembles the font properties applicable to that element. Using the
complete set of properties, the UA uses the 'font-family' property to
choose a tentative fontspecifiedfamily. The remaining properties are tested
against the family according to the matching criteria described with
each property. If there are matches forthischaracter?Doesall theuseragenthavethisremaining properties,
then that is the matching fontavailable?face for the given element.
- If  so,whatglyph(s)doesthischaracterorsequenceofcharactersmapto?there is no matching font face within the 'font-family' being
processed by step 2, and ifnot,whatshouldbedone?Shouldthere is adifferentnext alternative 'font-family'
in the fontbesubstituted?Canset, then repeat step 2 with the next alternative
'font-family'.
- If there is a matching font  besynthesized?Canface, but itberetrievedfromdoesn't contain a glyph
for theWeb?InbothCSS1current character, andCSS2,authorsspecifyfontcharacteristicsviaif there is aseriesofnext alternative
'font-family' in the fontproperties.Howsets, then repeat step 2 with theuseragenthandlestheseproperties,whennext
alternative 'font-family'.
- If there is no  matchingfontonwithin theclienthasexpandedbetweenCSS1andCSS2.family selected inCSS1,allfontswereassumedtobepresentontheclientsystem2, then use a
UA-dependent default 'font-family' andwereidentifiedsolelybyname.Alternatefontscouldbespecifiedthroughtheproperties,butbeyondthat,useragentshadnowaytoproposeotherfontstorepeat step 2, using theuser(evenstylisticallysimilarfontsbest
match that can be obtained within theuseragenthadavailable)otherthangenericdefaultfonts.CSS2changesallthat,andallowsmuchgreaterlibertyfor:stylesheetauthors,todescribethefontstheywanttobeuseduseragents,inselectingfont.
If afontwhenanauthor'srequestedfontisnotimmediatelyavailable.CSS2improvesclient-sidefontmatching,enablesfontsynthesisandprogressiverendering,andenablesfontstoparticular character cannot bedownloadedovertheWeb.Theseenhancedcapabilitiesarereferredtoas'WebFonts'IntheCSS2fontmodel,asinCSS1,eachuseragenthasa"fontdatabase"atitsdisposition.CSS1referredtodisplayed using thisdatabasebutgavenodetailsaboutwhatwasinit.CSS2definestheinformationinthatdatabaseandallowsstylesheetauthorstocontributetoit.Whenaskedtodisplayacharacterwithaparticularfont, 
then theuseragentfirstidentifiestheUA has no suitable fontinthedatabasefor that"bestfits"thespecifiedfont(accordingtocharacter. 
Thefontmatchingalgorithm)OnceUA should map each character for which it hasidentifiedno suitable font 
to afont,itretrievesvisible symbol chosen by thefontdatalocallyorUA, preferably a "missing character" 
glyph fromtheWeb,andmaydisplaythecharacterusingthoseglyphs.Inlightone ofthismodel,wehaveorganizedthespecificationintotwosections.Thefirstconcernsthe fontspecificationmechanism,wherebyauthorsspecifywhichfontstheywouldlikefaces available tohaveused.thesecondconcernsUA.
(The above algorithm can be optimized to avoid having to revisit
the  font selection mechanism , wherebyCSS 2.1 properties for each character.)
The  client's user agent identifies and loadsper-property matching rules from (2) above are as follows:
- 'font-style' is tried first. 'italic'
will be satisfied if there is either a  fontthatbestfitstheauthor'sspecification.Howtheuseragentconstructsface in the UA's font databaseliesoutsidelabeled with thescopeofthisspecificationsinceCSS keyword 'italic' (preferred) or 'oblique'.
Otherwise thedatabase'simplementationdependsonsuchfactorsvalues must be matched exactly or font-style will fail.
- 'font-variant' is tried next. 'normal'
matches a font not labeled as  theoperatingsystem,thewindowingsystem,andtheclient.15.2'small-caps'; 'small-caps' matches (1) a
fontspecificationThefirstphaseoftheCSSlabeled as 'small-caps', (2) a fontmechanismconcernshowstylesheetauthorsspecifyin whichfontsshouldbeusedbyauseragent.Atfirst,itseemthattheobviouswaytospecifysmall caps are
synthesized, or (3) a fontiswhere all lowercase letters are replaced byit'sname,upper case letters. Asinglestring-whichappearstobeseparatedintodistinctparts;forexample"BTSwiss721HeavyItalic".Unfortunately,thereexistsnowell-definedanduniversallyacceptedtaxonomyforclassifyingfontsbasedontheirnames,andtermsthatapplytoonesmall-caps fontfamilynamemaynotbeappropriateforothers.Forexample,theterm'italic'iscommonlyusedtolabelslantedtext,butslantedtextmayalsobelabeledOblique,Slanted,Incline,Cursive,orKursiv.Similarly,fontnamestypicallycontaintermsthatdescribethe"weight"ofsynthesized by
electronically scaling uppercase letters from a normal font.
-  Theprimaryroleofthesenames'font-weight' istodistinguishfacesofdifferingdarknessmatched next, it will
never fail. (See 'font-weight' below.)
- 'font-size' must be matched within a
 singlefontfamily.Thereisnoaccepted,universalmeaningUA-dependent margin of tolerance. (Typically, sizes for scalable fonts
are rounded totheseweightnamesandusagevarieswidely.the nearest whole pixel, while the tolerance forexampleafontthatyoumightthinkofasbeingboldmightbitmapped fonts could bedescribedasbeingRegular,Roman,Book,Medium,Semi-orDemi-Bold,Bold,orBlack,dependinglarge as 20%.) Further computations, e.g.
by 'em' values in other properties, are based onhowblackthe"normal"facecomputed value ofthe'font-size'.
The  general case, to generate a modified font face name that differs invalue is a  particular way, such as being bolder. Becauseprioritized list of  this,font family names and/or generic
family names. Unlike most other CSS  usesproperties, values are separated
by a  different model . Fontscomma to indicate that they are  requestedalternatives:
body { font-family: Gill, Helvetica, sans-serif }
Although many fonts provide the "missing character" glyph,
  typically an open box, as its name implies this should not  throughbe
  considered a  single font name but through settingmatch
  for characters that cannot be found in the font. (It should,
however, be considered a  series of font properties. These property values formmatch for U+FFFD, the  basis"missing character"
character's code point).
There are two types of  the user agent'sfont  selection mechanism.family names:
- <family-name>
- The name of a font  propertiescanbeindividuallymodified,forexampletoincreasefamily of choice. In theboldness,last example, "Gill"
andthenewsetof"Helvetica" are fontpropertyvalueswillthenbeusedtoselectfromfamilies.
- <generic-family>
- In the  fontdatabaseagain.example above, theresultlast value isanincreaseinregularityfora generic family name. The
following generic families are defined:
- 'serif' (e.g. Times)
- 'sans-serif' (e.g. Helvetica)
- 'cursive' (e.g. Zapf-Chancery)
- 'fantasy' (e.g. Western)
- 'monospace' (e.g. Courier)
 Style sheet  authorsandimplementors,andanincreaseinrobustness.15.2.1FontspecificationpropertiesCSS2specifiesfontsaccordingdesigners are encouraged tothesecharacteristics:FontfamilyTheoffer a generic font familyspecifieswhichas a last alternative.  Generic font familyistonames are keywords and must NOT beusedtorenderthetext.Aquoted.
 
If an unquoted font family  is a group of fonts,designed toname contains 
parentheses, brackets, and/or braces, they must still be  used in combinationeither balanced or 
escaped per CSS grammar rules.  Similarly, quote marks, semicolons, 
exclamation marks and  exhibiting similarities in design. One member of thecommas within unquoted font family  maynames must be  italic, another bold, another condensedescaped. 
Font names containing any such characters or  using small caps.whitespace should be quoted:
Font  familynames  include "Helvetica",containing whitespace should be quoted:
body { font-family: "New Century Schoolbook", serif }
  
<BODY STYLE="font-family: 'My own font', fantasy">
If quoting is omitted, any whitespace characters before and  "Kyokasho ICA L".after
the font  family namesname are  not restricted to Latin characters. Font families may be grouped into different categories: those with or without serifs, those whoseignored and any sequence of whitespace characters
 are or are not proportionally spaced, those that resemble handwriting, those that are fantasy fonts, etc. Font styleinside the font  style specifies whether the textname is converted to  be rendered using a normal, italic, or oblique face. Italic isa  more cursive companion face tosingle space.
- 
'font-style'
- 
| Value: | normal face,butnotsocursiveastomakeitascriptface.| italic | obliqueisaslantedformofthe| inherit |  | Initial: | normal |  | face,andismorecommonlyusedApplies to: | all elements |  | Inherited: | yes |  | Percentages: | N/A |  | Media: | visual |  | Computed value: | as acompanionfacetosans-serif.Thisdefinitionavoidshavingtolabelslightlyslantedspecified |  
 
 
The 'font-style' property selects between normal  faces(sometimes
referred to as  oblique,"roman" or  normal Greek"upright"), italic and oblique faces  as italic.within
a font  variant Thefamily.
A value of 'normal' selects a font  variant indicates whether the textthat is  to be rendered usingclassified as 'normal'
in the  normal glyphs for lowercase characters or using small-caps glyphs for lowercase characters.UA's font database, while 'oblique' selects a  particularfont  may contain only normal, only small-caps, or both types of glyph; this propertythat is
 used to request an appropriatelabeled 'oblique'. A value of 'italic' selects a font  and,that is labeled
'italic', or, if that is not available, one labeled 'oblique'.
The font  contains both variants, the appropriate glyphs. Font weightthat is labeled 'oblique' in the UA's font  weight refers to the boldness or lightness of the glyphs used to render the text, relative to otherdatabase may
actually have been generated by electronically slanting a normal font.
Fonts with Oblique, Slanted or Incline in their names will
typically be labeled 'oblique' in the  same font family. Font stretch TheUA's font  stretch indicates the desired amount of condensingdatabase. Fonts with
Italic, Cursive or  expansionKursiv in their names will
typically be labeled 'italic'.
h1, h2, h3 { font-style: italic }
h1 em { font-style: normal }
In the  glyphs used to render the text, relative to other fontsexample above, emphasized text within 'H1' will appear in a
normal face.
- 
'font-variant'
- 
| Value: | normal | small-caps | inherit |  | Initial: | normal |  | Applies to: | all elements |  | Inherited: | yes |  | Percentages: | N/A |  | Media: | visual |  | Computed value: | as specified |  
 
 
Another type of variation within a font  sizefamily is the small-caps.
In a small-caps font  size refersthe lower case letters look similar to the
uppercase ones, but in a smaller size  ofand with slightly different
proportions. The 'font-variant' property selects that font.
A value of 'normal' selects a font  from baseline to baseline, when set solid (in CSS terms, thisthat is  whennot a small-caps font,
'small-caps' selects a small-caps font. It is acceptable (but not
required) in CSS 2.1 if the  'font-size'small-caps font is a created by taking a
normal font and  'line-height' properties havereplacing the  same value). On all properties except 'font-size' , 'em' and 'ex' length values refer to the font size of the current element.lower case letters by scaled uppercase
characters. As a last resort, uppercase letters will be used as
replacement for  'font-size' , these length units refer to the font size of the parent element. Please consulta small-caps font.
The  section on length units for more information.following example results in an 'H3' element in small-caps,
with any emphasized words in oblique, and any emphasized words within 
an 'H3' oblique small-caps:
h3 { font-variant: small-caps }
em { font-style: oblique }
There may be other variants in the  CSSfont family as well, such as
fonts with old-style numerals, small-caps numerals, condensed or
expanded letters, etc. CSS 2.1 has no properties  are used to describe the desired appearance ofthat select those.
Note: insofar as this property causes text  in the document. The font descriptors, in contrast, are usedto  describe the characteristics of fonts, so that a suitable font canbe
 chosentransformed to  createuppercase, the  desired appearance.same considerations as for  information about the classification of fonts, please consult the section on font descriptors . 15.2.2'text-transform' apply.
- 
 'font-family''font-weight'
- 
| Value: | [[<family-name>normal |<generic-family>],]*[<family-name>bold |<generic-family>]bolder | lighter | 100 | 200 | 300 | 400 | 500 |
600 | 700 | 800 | 900 | inherit |  | Initial: | dependsonuseragentnormal |  | Applies to: | all elements |  | Inherited: | yes |  | Percentages: | N/A |  | Media: | visual |  | ThisComputed value: | see text |  
 
 
The 'font-weight' property  specifies a prioritized listselects the weight of  font family names and/or generic family names. To deal withthe  problem that a single font may not contain glyphs to display allfont. The
 characters in a document, or that not all fonts are available on all systems, this property allows authorsvalues '100' to  specify'900' form an ordered sequence, where each number
indicates a  list of fonts, all of the same style and size,weight that  are tried in sequence to see if they contain a glyph for a certain character. This listis  called a font set . Example(s): For example, text that contains English words mixed with mathematical symbols may need a font set of two fonts, one containing Latin letters and digits,at least as dark as its predecessor. The
 other containing mathematical symbols. Herekeyword 'normal' is  an example of a font set suitable for a text thatsynonymous with '400', and 'bold' is  expectedsynonymous
with '700'. Keywords other than 'normal' and 'bold' have been shown to
 contain textbe often confused with  Latin characters, Japanese characters,font names and  mathematical symbols: BODYa numerical scale was therefore
chosen for the 9-value list.
p {  font-family: Baskerville, "Heisi Mincho W3", Symbol, seriffont-weight: normal }   /* 400 */
h1 { font-weight: 700 }     /* bold */
The  glyphs available in the "Baskerville" font (a'bolder' and 'lighter' values select font weights that  covers only Latin characters) will be taken from that font, Japanese glyphs will be taken from "Heisi Mincho W3", andare
relative to the  mathematical symbol glyphs will come from "Symbol". Any others will comeweight inherited from the  generic font family 'serif'.parent:
strong { font-weight: bolder }
Child elements inherit the  genericresultant weight, not the keyword value.
Fonts (the font  family will be used ifdata) typically have one or more properties whose
values are names that are descriptive of the  other fonts in"weight" of a  font setfont. There
is  unavailable. Although many fonts provide the "missing character" glyph, typically an open box, as its name implies this should not be considered a match except for the last font inno accepted, universal meaning to these weight names. Their primary
role is to distinguish faces of differing darkness within a single
font  set. There are two types offamily. Usage across font  family names: <family-name> The name offamilies is quite variant; for example, 
a font  family of choice. In the previous example, "Baskerville", "Heisi Mincho W3", and "Symbol" are font families. Font family names containing whitespace shouldthat one might think of as being bold might be  quoted. If quoting is omitted, any whitespace characters before and afterdescribed as
being Regular, Roman, Book, Medium, Semi- or DemiBold,
Bold, or Black, depending on how black the  font name are ignored and any sequence"normal" face
of  whitespace characters insidethe font  nameis  converted to a single space. <generic-family>within the  following generic families are defined: 'serif', 'sans-serif', 'cursive', 'fantasy', and 'monospace'. Please seedesign. Because there is no standard usage
of names, the  sectionweight property values in CSS 2.1 are given on  generic font familiesa numerical
scale in which the value '400' (or 'normal') corresponds to the
"normal" text face for  descriptionsthat family. The weight name associated with
that face will typically be Book, Regular, Roman, Normal or
sometimes Medium.
The association of  these families. Generic fontother weights within a family  names are keywords, and therefore must not be quoted. Authors are encouragedto  offer a genericthe numerical
weight values is intended only to preserve the ordering of darkness
within that family. However, the following heuristics tell how the
assignment is done in typical cases:
- If the font family  asalready uses alastalternative,forimprovedrobustness.Forexample:<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0//EN"><HTML><HEAD><TITLE>Fonttest</TITLE><STYLEtype="text/css">BODY{font-family:"newcenturyschoolbook",serif}</STYLE></HEAD><BODY><H1style="font-family:'Myownfont',fantasy">Test</H1><P>What'sup,Doc?</BODY></HTML>Example(s):numerical scale with nine values
(like e.g. OpenType does), thericherselectorsyntaxofCSS2mayfont weights should beusedtocreatelanguage-sensitivetypography.Forexample,someChinesemapped
directly.
- If there is both a face labeled Medium and  Japanesecharactersareunifiedone labeled
Book, Regular, Roman or Normal, then the
Medium is normally assigned tohavethesameUnicodecodepoint,although'500'.
- The  abstractglyphsarenotfont labeled "Bold" will often correspond to thesameweight value '700'.
- If there are fewer then 9 weights in the  twolanguages.*:lang(ja-jp){font:90014pt/16pt"HeiseiMinchoW9",serif}*:lang(zh-tw){font:80014pt/16.5pt"LiSung",serif}Thisselectsanyelementthathasthegivenlanguage-JapaneseorTraditionalChinese-andrequeststheappropriatefont.15.2.3Fontstyling:the'font-style','font-variant','font-weight'and'font-stretch'properties'font-style'Value:  normal|italic|oblique|inheritInitial:  normalAppliesto:  allelementsInherited:  yesPercentages:  N/AMedia:  visualfamily, the'font-style'propertyrequestsnormal(sometimesreferredtoas"roman"or"upright"),italic,andobliquefaceswithinafontfamily.Valueshavedefault
algorithm for filling thefollowingmeanings:normalSpecifiesafontthat"holes" isclassifiedas'normal'intheUA'sfontdatabase.obliqueSpecifiesafontthatfollows. If '500' isclassifiedas'oblique'intheUA'sfontdatabase.FontswithOblique,Slanted,orInclineintheirnamesunassigned, it willtypicallybelabeled'oblique'inassigned the same fontdatabase.Afontthatislabeled'oblique'inas '400'. If any of theUA'sfontdatabasemayactuallyhavebeengeneratedbyelectronicallyslantinganormalfont.italicSpecifiesafontthatisclassifiedvalues '600', '700', '800' or '900' remains unassigned, they are
assigned to the same face as'italic'intheUA'sfontdatabase,or,next darker assigned keyword, ifthatisnotavailable,onelabeled'oblique'.FontswithItalic,Cursive,any,
orKursivintheirnameswilltypicallybelabeled'italic'.Example(s):Inthisexample,normaltextinanH1,H2,the next lighter one otherwise. If any of '300', '200' orH3elementwillbedisplayedwithanitalicfont.However,emphasizedtext(EM)withinanH1willappearinanormalface.H1,H2,H3{font-style:italic}H1EM{font-style:normal}'font-variant'Value:  normal|small-caps|inheritInitial:  normalAppliesto:  allelementsInherited:  yesPercentages:  N/AMedia:  visualInasmall-capsfont,theglyphsforlowercaseletterslooksimilartotheuppercaseones,butinasmallersizeandwithslightlydifferentproportions.The'font-variant'propertyrequestssuchafontforbicameral(havingtwocases,aswithLatinscript).Thispropertyhasnovisibleeffectforscriptsthatareunicameral(havingonlyonecase,aswithmostoftheworld'swritingsystems).Valueshavethefollowingmeanings:normalSpecifiesafontthatisnotlabeledasasmall-capsfont.small-capsSpecifiesafontthatislabeledasasmall-capsfont.Ifagenuinesmall-capsfontisnotavailable,useragentsshouldsimulateasmall-capsfont,forexamplebytakinganormalfontandreplacingthelowercaselettersbyscaleduppercasecharacters.Asalastresort,unscaleduppercaseletterglyphsinanormalfontmayreplaceglyphsinasmall-capsfontsothatthetextappearsinalluppercaseletters.Example(s):ThefollowingexampleresultsinanH3elementinsmall-caps,withemphasizedwords(EM)inobliquesmall-caps:H3{font-variant:small-caps}EM{font-style:oblique}Insofarasthispropertycausestexttobetransformedtouppercase,thesameconsiderationsasfor'text-transform'apply.'font-weight'Value:  normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inheritInitial:  normalAppliesto:  allelementsInherited:  yesPercentages:  N/AMedia:  visualThe'font-weight'propertyspecifiestheweightofthefont.Valueshavethefollowingmeanings:100to900Thesevaluesformanorderedsequence,whereeachnumberindicatesaweightthatisatleastasdarkasitspredecessor.normalSameas'400'.boldSameas'700'.bolderSpecifiesthenextweightthatisassignedtoafontthatisdarkerthantheinheritedone.Ifthereisnosuchweight,itsimplyresultsinthenextdarkernumericalvalue(andthefontremainsunchanged),unlesstheinheritedvaluewas'900',inwhichcasetheresultingweightisalso'900'.lighterSpecifiesthenextweightthatisassignedtoafontthatislighterthantheinheritedone.Ifthereisnosuchweight,itsimplyresultsinthenextlighternumericalvalue(andthefontremainsunchanged),unlesstheinheritedvaluewas'100',inwhichcasetheresultingweightisalso'100'.Example(s):P{font-weight:normal}/*400*/H1{font-weight:700}/*bold*/BODY{font-weight:400}STRONG{font-weight:bolder}/*500ifavailable*/Childelementsinheritthecomputedvalueoftheweight.'font-stretch'Value:  normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|inheritInitial:  normalAppliesto:  allelementsInherited:  yesPercentages:  N/AMedia:  visualThe'font-stretch'propertyselectsanormal,condensed,orextendedfacefromafontfamily.Absolutekeywordvalueshavethefollowingordering,fromnarrowesttowidest:ultra-condensedextra-condensedcondensedsemi-condensednormalsemi-expandedexpandedextra-expandedultra-expandedTherelativekeyword'wider'setsthevaluetothenextexpandedvalueabovetheinheritedvalue(whilenotincreasingitabove'ultra-expanded');therelativekeyword'narrower'setsthevaluetothenextcondensedvaluebelowtheinheritedvalue(whilenotdecreasingitbelow'ultra-condensed').15.2.4Fontsize:the'font-size'and'font-size-adjust'properties'font-size'Value:  <absolute-size>|<relative-size>|<length>|<percentage>|inheritInitial:  mediumAppliesto:  allelementsInherited:  yes,thecomputedvalueisinheritedPercentages:  refertoparentelement'sfontsizeMedia:  visualThispropertydescribesthesizeofthefontwhensetsolid.Valueshavethefollowingmeanings:<absolute-size>An<absolute-size>keywordreferstoanentryinatableoffontsizescomputedandkeptbytheuseragent.Possiblevaluesare:[xx-small|x-small|small|medium|large|x-large|xx-large]Onacomputerscreenascalingfactorof1.2issuggestedbetweenadjacentindexes;ifthe'medium'fontis12pt,the'large'fontcouldbe14.4pt.Differentmediamayneeddifferentscalingfactors.Also,theuseragentshouldtakethequalityandavailabilityoffontsintoaccountwhencomputingthetable.Thetablemaybedifferentfromonefontfamilytoanother.Note.InCSS1,thesuggestedscalingfactorbetweenadjacentindexeswas1.5whichuserexperienceprovedtobetoolarge.<relative-size>A<relative-size>keywordisinterpretedrelativetothetableoffontsizesandthefontsizeoftheparentelement.Possiblevaluesare:[larger|smaller]Forexample,iftheparentelementhasafontsizeof'medium',avalueof'larger'willmakethefontsizeofthecurrentelementbe'large'.Iftheparentelement'ssizeisnotclosetoatableentry,theuseragentisfreetointerpolatebetweentableentriesorroundofftotheclosestone.Theuseragentmayhavetoextrapolatetablevaluesifthenumericalvaluegoesbeyondthekeywords.<length>Alengthvaluespecifiesanabsolutefontsize(thatisindependentoftheuseragent'sfonttable).Negativelengthsareillegal.<percentage>Apercentagevaluespecifiesanabsolutefontsizerelativetotheparentelement'sfontsize.Useofpercentagevalues,orvaluesin'em's,leadstomorerobustandcascadablestylesheets.Theactualvalueofthispropertymaydifferfromthecomputedvaluedueanumericalvalueon'font-size-adjust'andtheunavailabilityofcertainfontsizes.Childelementsinheritthecomputed'font-size'value(otherwise,theeffectof'font-size-adjust'wouldcompound).Example(s):P{font-size:12pt;}BLOCKQUOTE{font-size:larger}EM{font-size:150%}EM{font-size:1.5em}'font-size-adjust'Value:  <number>|none|inheritInitial:  noneAppliesto:  allelementsInherited:  yesPercentages:  N/AMedia:  visualInbicameralscripts,thesubjectiveapparentsizeandlegibilityofafontarelessdependentontheir'font-size'valuethanonthevalueoftheir'x-height',or,moreusefully,ontheratioofthesetwovalues,calledtheaspectvalue(fontsizedividedbyx-height).Thehighertheaspectvalue,themorelikelyitisthatafontatsmallersizeswillbelegible.Inversely,faceswithaloweraspectvaluewillbecomeillegiblemorerapidlybelowagiventhresholdsizethanfaceswithahigheraspectvalue.Straightforwardfontsubstitutionthatreliesonfontsizealonemayleadtoillegiblecharacters.Forexample,thepopularfontVerdanahasanaspectvalueof0.58;whenVerdana'sfontsize100units,itsx-heightis58units.Forcomparison,TimesNewRomanhasanaspectvalueof0.46.VerdanawillthereforetendtoremainlegibleatsmallersizesthanTimesNewRoman.Conversely,Verdanawilloftenlook'toobig'ifsubstitutedforTimesNewRomanatachosensize.Thispropertyallowsauthorstospecifyanaspectvalueforanelementthatwillpreservethex-heightofthefirstchoicefontinthesubstitutefont.Valueshavethefollowingmeanings:noneDonotpreservethefont'sx-height.<number>Specifiestheaspectvalue.Thenumberreferstotheaspectvalueofthefirstchoicefont.Thescalingfactorforavailablefontsiscomputedaccordingtothefollowingformula:y(a/a')=cwhere:y='font-size'offirst-choicefonta'=aspectvalueofavailablefontc='font-size'toapplytoavailablefontExample(s):Forexample,if14pxVerdana(withanaspectvalueof0.58)wasunavailableandanavailablefonthadanaspectvalueof0.46,thefont-sizeofthesubstitutewouldbe14*(0.58/0.46)=17.65px.Fontsizeadjustmentstakeplacewhencomputingtheactualvalueof'font-size'.Sinceinheritanceisbasedonthecomputedvalue,childelementswillinheritunadjustedvalues.Thefirstimagebelowshowsseveraltypefacesrasterizedatacommonfontsize(11pt.at72ppi),togetherwiththeiraspectvalues.Notethatfaceswithhigheraspectvaluesappearlargerthanthosewithlower.Faceswithverylowaspectvaluesareillegibleatthesizeshown.Thenextimageshowstheresultsof'font-size-adjust'whereVerdanahasbeentakenasthe"firstchoice",togetherwiththescalingfactorapplied.Asadjusted,theapparentsizesarenearlylinearacrossfaces,thoughtheactual(em)sizesvarybymorethan100%.Notethat'font-size-adjust'tendstostabilizethehorizontalmetricsoflines,aswell.15.2.5Shorthandfontproperty:the'font'property'font'Value:  [[<'font-style'>||<'font-variant'>||<'font-weight'>]?<'font-size'>[/<'line-height'>]?<'font-family'>]|caption|icon|menu|message-box|small-caption|status-bar|inheritInitial:  seeindividualpropertiesAppliesto:  allelementsInherited:  yesPercentages:  allowedon'font-size'and'line-height'Media:  visualThe'font'propertyis,exceptasdescribedbelow,ashorthandpropertyforsetting'font-style','font-variant','font-weight','font-size','line-height',and'font-family',atthesameplaceinthestylesheet.Thesyntaxofthispropertyisbasedonatraditionaltypographicalshorthandnotationtosetmultiplepropertiesrelatedtofonts.Allfont-relatedpropertiesarefirstresettotheirinitialvalues,includingthoselistedintheprecedingparagraphplus'font-stretch'and'font-size-adjust'.Then,thosepropertiesthataregivenexplicitvaluesinthe'font'shorthandaresettothosevalues.Foradefinitionofallowedandinitialvalues,seethepreviouslydefinedproperties.Forreasonsofbackwardscompatibility,itisnotpossibletoset'font-stretch'and'font-size-adjust'tootherthantheirinitialvaluesusingthe'font'shorthandproperty;instead,settheindividualproperties.Example(s):P{font:12pt/14ptsans-serif}P{font:80%sans-serif}P{font:x-large/110%"newcenturyschoolbook",serif}P{font:bolditaliclargePalatino,serif}P{font:normalsmall-caps120%/120%fantasy}P{font:oblique12pt"HelveticaNue",serif;font-stretch:condensed}Inthesecondrule,thefontsizepercentagevalue('80%')referstothefontsizeoftheparentelement.Inthethirdrule,thelineheightpercentage('110%')referstothefontsizeoftheelementitself.Thefirstthreerulesdonotspecifythe'font-variant'and'font-weight'explicitly,sothesepropertiesreceivetheirinitialvalues('normal').Noticethatthefontfamilyname"newcenturyschoolbook",whichcontainsspaces,isenclosedinquotes.Thefourthrulesetsthe'font-weight'to'bold',the'font-style'to'italic',andimplicitlysets'font-variant'to'normal'.Thefifthrulesetsthe'font-variant'('small-caps'),the'font-size'(120%oftheparent'sfontsize),the'line-height'(120%ofthefontsize)andthe'font-family'('fantasy').Itfollowsthatthekeyword'normal'appliestothetworemainingproperties:'font-style'and'font-weight'.Thesixthrulesetsthe'font-style','font-size',and'font-family',theotherfontpropertiesbeingsettotheirinitialvalues.Itthensets'font-stretch'to'condensed'sincethatpropertycannotbesettothatvalueusingthe'font'shorthandproperty.Thefollowingvaluesrefertosystemfonts:captionThefontusedforcaptionedcontrols(e.g.,buttons,drop-downs,etc.).iconThefontusedtolabelicons.menuThefontusedinmenus(e.g.,dropdownmenusandmenulists).message-boxThefontusedindialogboxes.small-captionThefontusedforlabelingsmallcontrols.status-barThefontusedinwindowstatusbars.Systemfontsmayonlybesetasawhole;thatis,thefontfamily,size,weight,style,etc.areallsetatthesametime.Thesevaluesmaythenbealteredindividuallyifdesired.Ifnofontwiththeindicatedcharacteristicsexistsonagivenplatform,theuseragentshouldeitherintelligentlysubstitute(e.g.,asmallerversionofthe'caption'fontmightbeusedforthe'smallcaption'font),orsubstituteauseragentdefaultfont.Asforregularfonts,if,forasystemfont,anyoftheindividualpropertiesarenotpartoftheoperatingsystem'savailableuserpreferences,thosepropertiesshouldbesettotheirinitialvalues.Thatiswhythispropertyis"almost"ashorthandproperty:systemfontscanonlybespecifiedwiththisproperty,notwith'font-family'itself,so'font'allowsauthorstodomorethanthesumofitssubproperties.However,theindividualpropertiessuchas'font-weight'arestillgivenvaluestakenfromthesystemfont,whichcanbeindependentlyvaried.Example(s):BUTTON{font:300italic1.3em/1.7em"FBArmada",sans-serif}BUTTONP{font:menu}BUTTONPEM{font-weight:bolder}Ifthefontusedfordropdownmenusonaparticularsystemhappenedtobe,forexample,9-pointCharcoal,withaweightof600,thenPelementsthatweredescendantsofBUTTONwouldbedisplayedasifthisrulewereineffect:BUTTONP{font:6009ptCharcoal}Becausethe'font'shorthandresetstoitsinitialvalueanypropertynotexplicitlygivenavalue,thishasthesameeffectasthisdeclaration:BUTTONP{font-style:normal;font-variant:normal;font-weight:600;font-size:9pt;line-height:normal;font-family:Charcoal}15.2.6GenericfontfamiliesGenericfontfamiliesareafallbackmechanism,ameansofpreservingsomeofthestylesheetauthor'sintentintheworstcasewhennoneofthespecifiedfontscanbeselected.Foroptimumtypographiccontrol,particularnamedfontsshouldbeusedinstylesheets.AllfivegenericfontfamiliesaredefinedtoexistinallCSSimplementations(theyneednotnecessarilymaptofivedistinctactualfonts).Useragentsshouldprovidereasonabledefaultchoicesforthegenericfontfamilies,whichexpressthecharacteristicsofeachfamilyaswellaspossiblewithinthelimitsallowedbytheunderlyingtechnology.Useragentsareencouragedtoallowuserstoselectalternativechoicesforthegenericfonts.serifGlyphsofseriffonts,asthetermisusedinCSS,havefinishingstrokes,flaredortaperingends,orhaveactualserifedendings(includingslabserifs).Seriffontsaretypicallyproportionately-spaced.Theyoftendisplayagreatervariationbetweenthickandthinstrokesthanfontsfromthe'sans-serif'genericfontfamily.CSSusestheterm'serif'toapplytoafontforanyscript,althoughothernamesmaybemorefamiliarforparticularscripts,suchasMincho(Japanese),SungorSong(Chinese),TotumorKodig(Korean).Anyfontthatissodescribedmaybeusedtorepresentthegeneric'serif'family.Examplesoffontsthatfitthisdescriptioninclude:LatinfontsTimesNewRoman,Bodoni,Garamond,MinionWeb,ITCStoneSerif,MSGeorgia,BitstreamCyberbitGreekfontsBitstreamCyberbitCyrillicfontsAdobeMinionCyrillic,ExcelciorCyrillicUpright,MonotypeAlbion70,BitstreamCyberbit,ERBukinstHebrewfontsNewPeninim,Raanana,BitstreamCyberbitJapanesefontsRyuminLight-KL,KyokashoICA,FutoMinA101ArabicfontsBitstreamCyberbitCherokeefontsLoCiceroCherokeesans-serifGlyphsinsans-seriffonts,asthetermisusedinCSS,havestrokeendingsthatareplain--withoutanyflaring,crossstroke,orotherornamentation.Sans-seriffontsaretypicallyproportionately-spaced.Theyoftenhavelittlevariationbetweenthickandthinstrokes,comparedtofontsfromthe'serif'family.CSSusestheterm'sans-serif'toapplytoafontforanyscript,althoughothernamesmaybemorefamiliarforparticularscripts,suchasGothic(Japanese),Kai(Chinese),orPathang(Korean).Anyfontthatissodescribedmaybeusedtorepresentthegeneric'sans-serif'family.Examplesoffontsthatfitthisdescriptioninclude:LatinfontsMSTrebuchet,ITCAvantGardeGothic,MSArial,MSVerdana,Univers,Futura,ITCStoneSans,GillSans,AkzidenzGrotesk,HelveticaGreekfontsAttika,TypikoNewEra,MSTahoma,MonotypeGillSans571,HelveticaGreekCyrillicfontsHelveticaCyrillic,ERUnivers,LucidaSansUnicode,BastionHebrewfontsArialHebrew,MSTahomaJapanesefontsShinGo,HeiseiKakuGothicW5ArabicfontsMSTahomacursiveGlyphsincursivefonts,asthetermisusedinCSS,generallyhaveeitherjoiningstrokesorothercursivecharacteristicsbeyondthoseofitalictypefaces.Theglyphsarepartiallyorcompletelyconnected,andtheresultlooksmorelikehandwrittenpenorbrushwritingthanprintedletterwork.Fontsforsomescripts,suchasArabic,arealmostalwayscursive.CSSusestheterm'cursive'toapplytoafontforanyscript,althoughothernamessuchasChancery,Brush,SwingandScriptarealsousedinfontnames.Examplesoffontsthatfitthisdescriptioninclude:LatinfontsCaflischScript,AdobePoetica,Sanvito,ExPonto,SnellRoundhand,Zapf-ChanceryCyrillicfontsERArchitektHebrewfontsCorsivaArabicfontsDecoTypeNaskh,MonotypeUrdu507fantasyFantasyfonts,asusedinCSS,areprimarilydecorativewhilestillcontainingrepresentationsofcharacters(asopposedtoPiorPicturefonts,whichdonotrepresentcharacters).Examplesinclude:LatinfontsAlphaGeometrique,Critter,Cottonwood,FBReactor,StudzmonospaceThesolecriterionofamonospacefontisthatallglyphshavethesamefixedwidth.(Thiscanmakesomescripts,suchasArabic,lookmostpeculiar.)Theeffectissimilartoamanualtypewriter,andisoftenusedtosetsamplesofcomputercode.Examplesoffontswhichfitthisdescriptioninclude:LatinfontsCourier,MSCourierNew,Prestige,EversonMonoGreekFontsMSCourierNew,EversonMonoCyrillicfontsERKurier,EversonMonoJapanesefontsOsakaMonospacedCherokeefontsEversonMono15.3FontselectionThesecondphaseoftheCSS2fontmechanismconcernstheuseragent'sselectionofafontbasedonauthor-specifiedfontproperties,availablefonts,etc.Thedetailsofthefontmatchingalgorithmareprovidedbelow.Therearefourpossiblefontselectionactions:namematching,intelligentmatching,synthesis,anddownload.fontnamematchingInthiscase,theuseragentusesanexisting,accessiblefontthathasthesamefamilynameastherequestedfont.(Notethattheappearanceandthemetricsmightnotnecessarilymatch,ifthefontthatthedocumentauthorusedandthefontontheclientsystemarefromdifferentfoundries).ThematchinginformationisrestrictedtotheCSSfontproperties,includingthefamilyname.ThisistheonlymethodusedbyCSS1.intelligentfontmatchingInthiscase,theuseragentusesanexisting,accessiblefontthatistheclosestmatchinappearancetotherequestedfont.(Notethatthemetricsmightnotmatchexactly).Thematchinginformationincludesinformationaboutthekindoffont(textorsymbol),natureofserifs,weight,capheight,xheight,ascent,descent,slant,etc.fontsynthesisInthiscase,theuseragentcreatesafontthatisnotonlyaclosematchinappearance,butalsomatchesthemetricsoftherequestedfont.Thesynthesizinginformationincludesthematchinginformationandtypicallyrequiresmoreaccuratevaluesfortheparametersthanareusedforsomematchingschemes.Inparticular,synthesisrequiresaccuratewidthmetricsandcharactertoglyphsubstitutionandpositioninformationifallthelayoutcharacteristicsofthespecifiedfontaretobepreserved.fontdownloadFinally,theuseragentmayretrieveafontovertheWeb.Thisissimilartotheprocessoffetchingimages,sounds,orappletsovertheWebfordisplayinthecurrentdocument,andlikewisecancausesomedelaybeforethepagecanbedisplayed.Progressiverenderingisacombinationofdownloadandoneoftheothermethods;itprovidesatemporarysubstitutefont(usingnamematching,intelligentmatching,orsynthesis)toallowcontenttobereadwhiletherequestedfontdownloads.Oncetherealfonthasbeensuccessfullydownloaded,itreplacesthetemporaryfont,hopefullywithouttheneedtoreflow.Note.Progressiverenderingrequiresmetricinformationaboutthefontinordertoavoidre-layoutofthecontentwhentheactualfonthasbeenloadedandrendered.Thismetricinformationissufficientlyverbosethatitshouldonlybespecifiedatmostonceperfontinadocument.15.3.1FontDescriptionsand@font-faceThefontdescriptionprovidesthebridgebetweenanauthor'sfontspecificationandthefontdata,whichisthedataneededtoformattextandtorendertheabstractglyphstowhichthecharactersmap-theactualscalableoutlinesorbitmaps.Fontsarereferencedbystylesheetproperties.Thefontdescriptionisaddedtothefontdatabaseandthenusedtoselecttherelevantfontdata.ThefontdescriptioncontainsdescriptorssuchasthelocationofthefontdataontheWeb,andcharacterizationsofthatfontdata.Thefontdescriptorsarealsoneededtomatchthestylesheetfontpropertiestoparticularfontdata.Thelevelofdetailofafontdescriptioncanvaryfromjustthenameofthefontuptoalistofglyphwidths.Fontdescriptorsmaybeclassifiedintothreetypes:thosethatprovidethelinkbetweentheCSSusageofthefontandthefontdescription(thesehavethesamenamesasthecorrespondingCSSfontproperties),theURIforthelocationofthefontdata,thosethatfurthercharacterizethefont,toprovidealinkbetweenthefontdescriptionandthefontdata.Allfontdescriptionsarespecifiedviaa@font-faceat-rule.Thegeneralformis:@font-face{<font-description>}wherethe<font-description>hastheform:descriptor:value;descriptor:value;[...]descriptor:value;Each@font-facerulespecifiesavalueforeveryfontdescriptor,eitherimplicitlyorexplicitly.Thosenotgivenexplicitvaluesintheruletaketheinitialvaluelistedwitheachdescriptorinthisspecification.Thesedescriptorsapplysolelywithinthecontextofthe@font-faceruleinwhichtheyaredefined,anddonotapplytodocumentlanguageelements.Thus,thereisnonotionofwhichelementsthedescriptorsapplyto,orwhetherthevaluesareinheritedbychildelements.Theavailablefontdescriptorsaredescribedinlatersectionsofthisspecification.Forexample,herethefont'RobsonCeltic'isdefinedandreferencedinastylesheetcontainedinanHTMLdocument.<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0//EN"><HTML><HEAD><TITLE>Fonttest</TITLE><STYLETYPE="text/css"MEDIA="screen,print">@font-face{font-family:"RobsonCeltic";src:url("http://site/fonts/rob-celt")}H1{font-family:"RobsonCeltic",serif}</STYLE></HEAD><BODY><H1>ThisheadingisdisplayedusingRobsonCeltic</H1></BODY></HTML>Thestylesheet(intheSTYLEelement)containsaCSSrulethatsetsallH1elementstousethe'RobsonCeltic'fontfamily.ACSS1implementationwillsearchtheclientforafontwhosefamilynameandotherpropertiesmatch'RobsonCeltic'and,ifitfailstofindit,willusetheUA-specificfallbackseriffont(whichisdefinedtoexist).AuseragentimplementingCSS2willfirstexamine@font-facerulesinsearchofafontdescriptiondefining'RobsonCeltic'.Thisexamplecontainsarulethatmatches.Althoughthisruledoesn'tcontainmuchfontdata,itdoeshaveaURIwherethefontcanberetrievedforrenderingthisdocument.Downloadedfontsshouldnotbemadeavailabletootherapplications.Ifnomatching@font-faceisfound,theuseragentwillattemptthesamematchasauseragentimplementingCSS1.Notethatifthefont'RobsonCeltic'hadbeeninstalledontheclientsystem,thiswouldhavecausedtheUAtoaddanentryinthefontdatabasefortheinstalledcopyasdescribedinthesectiononthefontmatchingalgorithm.Theinstalledcopywouldhavebeenmatchedbeforethedownloadablefontintheexampleabove.CSS1implementations,whichdonotunderstandthe@font-facerule,willencountertheopeningcurlybracketsandwillignoreforwarduntilthematchingclosingcurlybrackets.Thisat-ruleconformswiththeforward-compatibleparsingrequirementofCSS.Parsersmayignoretheseruleswithouterror.Havingthefontdescriptorsseparatefromthefontdatahasabenefitbeyondbeingabletodofontselectionand/orsubstitution.Thedataprotectionandreplicationrestrictionsonthefontdescriptorsmaybemuchweakerthanonthefullfontdata.Thus,itmaybepossibletoinstallthefontdefinitionlocally,oratleasttohaveitinalocalcacheifitoccursinacommonlyreferencedstylesheet;thiswouldnotrequireaccessingthefullfontdefinitionovertheWebmorethanoncepernamedfont.Ifafontdescriptorisduplicated,thelastoccurringdescriptorwinsandtherestmustbeignored.Also,anydescriptorsthatarenotrecognizedorusefultotheuseragentmustbeignored.FutureversionsofCSSmayallowadditionaldescriptorsforthepurposeofbetterfontsubstitution,matching,orsynthesis.15.3.2DescriptorsforSelectingaFont:'font-family','font-style','font-variant','font-weight','font-stretch'and'font-size'ThefollowingdescriptorshavethesamenamesasthecorrespondingCSS2fontproperties,andtakeasinglevalueorcomma-separatedlistofvalues.Thevalueswithinthatlistare,exceptasexplicitlynoted,thesameasthoseforthecorrespondingCSS2property.Ifthereisasinglevalue,thatisthevaluethatmustbematched.Ifthereisalist,anylistitemconstitutesamatch.Ifthedescriptorisomittedfromthe@font-face,theinitialvalueforthedescriptorisused.'font-family'(Descriptor)Value:  [<family-name>|<generic-family>][,[<family-name>|<generic-family>]]*Initial:  dependsonuseragentMedia:  visualThisisthedescriptorforthefontfamilynameofafontandtakesthesamevaluesasthe'font-family'property.'font-style'(Descriptor)Value:  all|[normal|italic|oblique][,[normal|italic|oblique]]*Initial:  allMedia:  visualThisisthedescriptorforthestyleofafontandtakesthesamevaluesasthe'font-style'property,exceptthatacomma-separatedlistispermitted.'font-variant'(Descriptor)Value:  [normal|small-caps][,[normal|small-caps]]*Initial:  normalMedia:  visualThisistheCSSindicationofwhetherthisfaceisthesmall-capsvariantofafont.Ittakesthesamevaluesasthe'font-variant'propertyexceptthatacomma-separatedlistispermitted.Note.Cyrillicpryamoĭfacesmaybelabeledwitha'font-variant'ofsmall-caps,whichwillgivebetterconsistencywithLatinfaces(andthecompanionkursivfacelabeledwith'font-style'italicforthesamereason).'font-weight'(Descriptor)Value:  all|[normal|bold|100|200|300|400|500|600|700|800|900][,[normal|bold|100|200|300|400|500|600|700|800|900]]*Initial:  allMedia:  visualThisisthedescriptorfortheweightofafacerelativetoothersinthesamefontfamily.Ittakesthesamevaluesasthe'font-weight'propertywiththreeexceptions:relativekeywords(bolder,lighter)arenotpermitted.acomma-separatedlistofvaluesispermitted,forfontsthatcontainmultipleweights.anadditionalkeyword,'all'ispermitted,whichmeansthatthefontwillmatchforallpossibleweights;eitherbecauseitcontainsmultipleweights,orbecausethatfaceonlyhasasingleweight.'font-stretch'(Descriptor)Value:  all|[normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded][,[normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded]]*Initial:  normalMedia:  visualThisistheCSSindicationofthecondensedorexpandednatureofthefacerelativetoothersinthesamefontfamily.Ittakesthesamevaluesasthe'font-stretch'propertyexceptthat:relativekeywords(wider,narrower)arenotpermittedacomma-separatedlistispermittedThekeyword'all'ispermitted'font-size'(Descriptor)Value:  all|<length>[,<length>]*Initial:  allMedia:  visualThisisthedescriptorforthesizesprovidedbythisfont.Onlyabsolutelengthunitsarepermitted,incontrasttothe'font-size'property,whichallowsbothrelativeandabsolutelengthsandsizes.Acomma-separatedlistofabsolutelengthsispermitted.Theinitialvalueof'all'issuitableformostscalablefonts,sothisdescriptorisprimarilyforuseinan@font-faceforbitmapfonts,orscalablefontsdesignedtoberasterisedatarestrictedrangeoffontsizes.15.3.3DescriptorsforFontDataQualification:'unicode-range'Thefollowingdescriptorisoptionalwithinafontdefinition,butisusedtoavoidcheckingordownloadingafontthatdoesnothavesufficientglyphstorenderaparticularcharacter.'unicode-range'(Descriptor)Value:  <urange>[,<urange>]*Initial:  U+0-7FFFFFFFMedia:  visualThisisthedescriptorfortherangeofISO10646characterscoveredbythefont.Thevaluesof<urange>areexpressedusinghexadecimalnumbersprefixedby"U+",correspondingtocharactercodepositionsinISO10646([ISO10646]).Forexample,U+05D1istheISO10646character'Hebrewletterbet'.ForvaluesoutsidetheBasicMultilingualPlane(BMP),additionalleadingdigitscorrespondingtotheplanenumberareadded,alsoinhexadecimal,likethis:U+A1234whichisthecharacteronPlane10athexadecimalcodeposition1234.AtthetimeofwritingnocharactershadbeenassignedoutsidetheBMP.Leadingzeros(forexample,0000004D)arevalid,butnotrequired.TheinitialvalueofthisdescriptorcoversnotonlytheentireBasicMultilingualPlane(BMP),whichwouldbeexpressedasU+0-FFFF,butalsothewholerepertoireofISO10646.Thus,theinitialvaluesaysthatthefontmayhaveglyphsforcharactersanywhereinISO10646.Specifyingavaluefor'unicode-range'providesinformationtomakesearchingefficient,bydeclaringaconstrainedrangeinwhichthefontmayhaveglyphsforcharacters.Thefontneednotbesearchedforcharactersoutsidethisrange.Valuesmaybewrittenwithanynumberofdigits.Forsinglenumbers,thecharacter'?'isassumedtomean'anyvalue'whichcreatesarangeofcharacterpositions.Thus,usingasinglenumber:unicode-range:U+20A7nowildcards-itindicatesasinglecharacterposition(theSpanishpesetacurrencysymbol)unicode-range:U+215?onewildcard,coverstherange2150to215F(thefractions)unicode-range:U+00??twowildcards,coverstherange0000to00FF(Latin-1)unicode-range:U+E??twowildcards,covers0E00to0EFF(theLaoscript)Apairofnumbersinthisformatcanbecombinedwiththedashcharactertoindicatelargerranges.Forexample:unicode-range:U+AC00-D7FFtherangeisAC00toD7FF(theHangulSyllablesarea)Multiple,discontinuousrangescanbespecified,separatedbyacomma.Aswithothercomma-separatedlistsinCSS,anywhitespacebeforeorafterthecommaisignored.Forexample:unicode-range:U+370-3FF,U+1F??Thiscoverstherange0370to03FF(ModernGreek)plus1F00to1FFF(AncientpolytonicGreek).unicode-range:U+3000-303F,U+3100-312F,U+32??,U+33??,U+4E00-9FFF,U+F9000-FAFF,U+FE30-FE4FSomethingofaworstcaseintermsofverbosity,thisverypreciselyindicatesthatthis(extremelylarge)fontcontainsonlyChinesecharactersfromISO10646,withoutincludinganycharactersthatareuniquelyJapaneseorKorean.Therangeis3000to303F(CJKsymbolsandpunctuation)plus3100to312F(Bopomofo)plus3200to32FF(enclosedCJKlettersandmonths)plus3300to33FF(CJKcompatibilityzone)plus4E00to9FFF(CJKunifiedIdeographs)plusF900toFAFF(CJKcompatibilityideographs)plusFE30toFE4F(CJKcompatibilityforms).AmorelikelyrepresentationforatypicalChinesefontwouldbe:unicode-range:U+3000-33FF,U+4E00-9FFFunicode-range:U+11E00-121FFThisfontcoversaproposedregistrationforAztecpictograms,coveringtherange1E00to21FFinplane1.unicode-range:U+1A00-1A1FThisfontcoversaproposedregistrationforIrishOghamcoveringtherange1A00to1A1F15.3.4DescriptorforNumericValues:'units-per-em'Thefollowingdescriptorspecifiesthenumberof"units"perem;theseunitsmaybeusedbyseveralotherdescriptorstoexpressvariouslengths,so'units-per-em'isrequiredifotherdescriptorsdependonit.'units-per-em'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorforthenumberofthecoordinateunitsontheemsquare,thesizeofthedesigngridonwhichglyphsarelaidout.15.3.5DescriptorforReferencing:'src'Thisdescriptorisrequiredforreferencingactualfontdata,whetherdownloadableorlocallyinstalled.'src'(Descriptor)Value:  [<uri>[format(<string>[,<string>]*)]|<font-face-name>][,<uri>[format(<string>[,<string>]*)]|<font-face-name>]*Initial:  undefinedMedia:  visualThisisaprioritized,comma-separatedlistofexternalreferencesand/orlocallyinstalledfontfacenames.TheexternalreferencepointstothefontdataontheWeb.ThisisrequirediftheWebFontistobedownloaded.Thefontresourcemaybeasubsetofthesourcefont,forexampleitmaycontainonlytheglyphsneededforthecurrentpageorforasetofpages.TheexternalreferenceconsistsofaURI,followedbyanoptionalhintregardingtheformatoffontresourcetobefoundatthatURI,andthisinformationshouldbeusedbyclientstoavoidfollowinglinkstofontsinformatstheyareunabletouse.Aswithanyhypertextreference,theremaybeotherformatsavailable,buttheclienthasabetterideaofwhatislikelytobethere,inamorerobustwaythantryingtoparsefilenameextensionsinURIs.Theformathintcontainsacomma-separatedlistofformatstringsthatdenotewell-knownfontformats.Theuseragentwillrecognizethenameoffontformatsthatitsupports,andwillavoiddownloadingfontsinformatsthatitdoesnotrecognize.Aninitiallistofformatstringsdefinedbythisspecificationandrepresentingformatslikelytobeusedbyimplementationsonvariousplatformsis:StringFontFormatExamplesofcommonextensions"truedoc-pfr"TrueDoc™PortableFontResource.pfr"embedded-opentype"EmbeddedOpenType.eot"type-1"PostScript™Type1.pfb,.pfa"truetype"TrueType.ttf"opentype"OpenType,includingTrueTypeOpen.ttf"truetype-gx"TrueTypewithGXextensions"speedo"Speedo"intellifont"IntellifontAswithotherURIsinCSS,theURImaybepartial,inwhichcaseitisresolvedrelativetothelocationofthestylesheetcontainingthe@font-face.Thelocally-installed<font-face-name>isthefullfontnameofalocallyinstalledfont.Thefullfontnameisthenameofthefontasreportedbytheoperatingsystemandisthenamemostlikelytobeusedinreaderstylesheets,browserdefaultstylesheetsorpossiblyauthorstylesheetsonanintranet.Adornmentssuchasbold,italic,andunderlineareoftenusedtodifferentiatefaceswithinafontfamily.Formoreinformationaboutfullfontnamespleaseconsultthenotesbelow.Thenotationfora<font-face-name>isthefullfontname,whichmustbequotedsinceitmaycontainanycharacter,includingspacesandpunctuation,andalsomustbeenclosedin"local("and")".Example(s):src:url("http://foo/bar")afullURIandnoinformationaboutthefontformat(s)availabletheresrc:local("BTCentury751No.2SemiBoldItalic")referencesaparticularfaceofalocallyinstalledfontsrc:url("../fonts/bar")format("truedoc-pfr")apartialURIwhichhasafontavailableinTrueDocformatsrc:url("http://cgi-bin/bar?stuff")format("opentype","intellifont")afullURI,inthiscasetoascript,whichcangeneratetwodifferentformats-OpenTypeandIntellifontsrc:local("T-26TypekaMix"),url("http://site/magda-extra")format("type-1")twoalternativesaregiven,firstlyalocallyinstalledfontandsecondlyadownloadablefontavailableinType1format.Accesstolocallyinstalledfontsisviathe<font-face-name>.Thefontfacenameisnottrulyunique,norisittrulyplatformorfontformatindependent,butatthemomentitisthebestwaytoidentifylocallyinstalledfontdata.Theuseofthefontfacenamecanbemademoreaccuratebyprovidinganindicationoftheglyphcomplementrequired.ThismaybedonebyindicatingtherangeofISO10646characterpositionsforwhichthefontprovidessomeglyphs(see'unicode-range').15.3.6DescriptorsforMatching:'panose-1','stemv','stemh','slope','cap-height','x-height','ascent',and'descent'ThesedescriptorsareoptionalforaCSS2definition,butmaybeusedifintelligentfontmatchingorfontsizeadjustmentisdesiredbytheauthor.'panose-1'(Descriptor)Value:  [<integer>]{10}Initial:  0000000000Media:  visualThisisthedescriptorforthePanose-1numberandconsistsoftendecimalintegers,separatedbywhitespace.Acomma-separatedlistisnotpermittedforthisdescriptor,becausethePanose-1systemcanindicatethatarangeofvaluesarematched.Theinitialvalueiszero,whichmeans"any",foreachPANOSEdigit;allfontswillmatchthePanosenumberifthisvalueisused.UseofthePanose-1descriptorisstronglyrecommendedforlatinfonts.Forfurtherdetails,seeAppendixC.'stemv'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorfortheverticalstemwidthofthefont.Ifthevalueisundefined,thedescriptorisnotusedformatching.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.'stemh'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorforthehorizontalstemwidthofthefont.Ifthevalueisundefined,thedescriptorisnotusedformatching.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.'slope'(Descriptor)Value:  <number>Initial:  0Media:  visualThisisthedescriptorfortheverticalstrokeangleofthefont.'cap-height'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorforthenumberoftheheightofuppercaseglyphsofthefont.Ifthevalueisundefined,thedescriptorisnotusedformatching.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.'x-height'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorfortheheightoflowercaseglyphsofthefont.Ifthevalueisundefined,thedescriptorisnotusedformatching.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.Thisdescriptorcanbeveryusefulwhenusingthe'font-size-adjust'property,becausecomputationofthezvalueofcandidatefontsrequiresboththefontsizeandthex-height;itisthereforerecommendedtoincludethisdescriptor.'ascent'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorforthemaximumunaccentedheightofthefont.Ifthevalueisundefined,thedescriptorisnotusedformatching.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.'descent'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorfortheMaximumunaccenteddepthofthefont.Ifthevalueisundefined,thedescriptorisnotusedformatching.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.15.3.7DescriptorsforSynthesis:'widths','bbox'and'definition-src'Synthesizingafontmeans,atminimum,matchingthewidthmetricsofthespecifiedfont.Therefore,forsynthesis,thismetricinformationmustbeavailable.Similarly,progressiverenderingrequireswidthmetricsinordertoavoidreflowofthecontentwhentheactualfonthasbeenloaded.AlthoughthefollowingdescriptorsareoptionalforaCSS2definition,somearerequiredifsynthesizing(orreflow-freeprogressiverendering)isdesiredbytheauthor.Shouldtheactualfontbecomeavailable,thesubstituteshouldbereplacedbytheactualfont.Anyofthesedescriptorsthatarepresentwillbeusedtoprovideabetterorfasterapproximationoftheintendedfont.Ofthesedescriptors,themostimportantarethe'widths'descriptorand'bbox'whichareusedtopreventtextreflowshouldtheactualfontbecomeavailable.Inaddition,thedescriptorsinthesetofdescriptorsusedformatchingcanbeusedtoprovideabettersynthesisoftheactualfontappearance.'widths'(Descriptor)Value:  [<urange>]?[<number>]+[,[<urange>]?<number>]+]Initial:  undefinedMedia:  visualThisisthedescriptorfortheglyphwidths.Thevalueisacomma-separatedlistof<urange>valueseachfollowedbyoneormoreglyphwidths.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.Ifthe<urange>isomitted,arangeofU+0-7FFFFFFFisassumedwhichcoversallcharactersandtheirglyphs.Ifnotenoughglyphwidthsaregiven,thelastinthelistisreplicatedtocoverthaturange.Iftoomanywidthsareprovided,theextrasareignored.Example(s):Forexample:widths:U+4E00-4E1F173618741692widths:U+1A??1490,U+215?1473183819271684135617921815184818701492171517451584199219781770Inthefirstexamplearangeof32charactersisgiven,from4E00to4E1F.Theglyphcorrespondingtothefirstcharacter(4E00)hasawidthof1736,thesecondhasawidthof1874andthethird,1692.Becausenotenoughwidthshavebeenprovided,thelastwidthreplicatestocovertherestofthespecifiedrange.Thesecondexamplesetsasinglewidth,1490,foranentirerangeof256glyphsandthenexplicitwidthsforarangeof16glyphs.Thisdescriptorcannotdescribemultipleglyphscorrespondingtoasinglecharacter,orligaturesofmultiplecharacters.Thus,thisdescriptorcanonlybeusedforscriptsthatdonothavecontextualformsormandatoryligatures.Itisneverthelessusefulinthosesituations.Scriptsthatrequireaone-to-manyormany-to-manymappingofcharacterstoglyphscannotatpresentusethisdescriptortoenablefontsynthesisalthoughtheycanstillusefontdownloadingorintelligentmatching.'bbox'(Descriptor)Value:  <number>,<number>,<number>,<number>Initial:  undefinedMedia:  visualThisisthedescriptorforthemaximalboundingboxofthefont.Thevalueisacomma-separatedlistofexactlyfournumbersspecifying,inorder,thelowerleftx,lowerlefty,upperrightx,andupperrightyoftheboundingboxforthecompletefont.'definition-src'(Descriptor)Value:  <uri>Initial:  undefinedMedia:  visualThefontdescriptorsmayeitherbewithinthefontdefinitioninthestylesheet,ormaybeprovidedwithinaseparatefontdefinitionresourceidentifiedbyaURI.Thelatterapproachcanreducenetworktrafficwhenmultiplestylesheetsreferencethesamefonts.15.3.8DescriptorsforAlignment:'baseline','centerline','mathline',and'topline'Theseoptionaldescriptorsareusedtoalignrunsofdifferentscriptswithoneanother.'baseline'(Descriptor)Value:  <number>Initial:  0Media:  visualThisisthedescriptorforthelowerbaselineofafont.Ifthisdescriptorisgivenanon-default(non-zero)value,the'units-per-em'descriptormustalsobeused.'centerline'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorforthecentralbaselineofafont.Ifthevalueisundefined,theUAmayemployvariousheuristicssuchasthemidpointoftheascentanddescentvalues.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.'mathline'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorforthemathematicalbaselineofafont.Ifundefined,theUAmayusethecenterbaseline.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.'topline'(Descriptor)Value:  <number>Initial:  undefinedMedia:  visualThisisthedescriptorforthetopbaselineofafont.Ifundefined,theUAmayuseanapproximatevaluesuchastheascent.Ifthisdescriptorisused,the'units-per-em'descriptormustalsobeused.15.3.9ExamplesExample(s):Giventhefollowinglistoffonts:Swiss721lightlight&lightitalicSwiss721roman,bold,italic,bolditalicSwiss721mediummedium&mediumitalicSwiss721heavyheavy&heavyitalicSwiss721blackblack,blackitalic,&black#2Swiss721Condensedroman,bold,italic,bolditalicSwiss721Expandedroman,bold,italic,bolditalicThefollowingfontdescriptionscouldbeusedtomakethemavailablefordownload.@font-face{font-family:"Swiss721";src:url("swiss721lt.pfr");/*Swiss721light*/font-style:normal,italic;font-weight:200;}@font-face{font-family:"Swiss721";src:url("swiss721.pfr");/*TheregularSwiss721*/}@font-face{font-family:"Swiss721";src:url("swiss721md.pfr");/*Swiss721medium*/font-style:normal,italic;font-weight:500;}@font-face{font-family:"Swiss721";src:url("swiss721hvy.pfr");/*Swiss721heavy*/font-style:normal,italic;font-weight:700;}@font-face{font-family:"Swiss721";src:url("swiss721blk.pfr");/*Swiss721black*/font-style:normal,italic;font-weight:800,900;/*notetheinterestingproblemthatthe900weightitalicdoesn'texist*/}@font-face{font-family:"Swiss721";src:url(swiss721.pfr);/*ThecondensedSwiss721*/font-stretch:condensed;}@font-face{font-family:"Swiss721";src:url(swiss721.pfr);/*TheexpandedSwiss721*/font-stretch:expanded;}15.4FontCharacteristics15.4.1IntroducingFontCharacteristicsInthissectionarelistedthefontcharacteristicsthathavebeenfoundusefulforclient-sidefontmatching,synthesis,anddownloadforheterogeneousplatformsaccessingtheWeb.ThedatamaybeusefulforanymediumthatneedstousefontsontheWebbysomeothermeansthanphysicalembeddingofthefontdatainsidethemedium.Thesecharacteristicsareusedtocharacterizefonts.TheyarenotspecifictoCSS,ortostylesheets.InCSS,eachcharacteristicisdescribedbyafontdescriptor.ThesecharacteristicscouldalsobemappedontoVRMLnodes,orCGMApplicationStructures,oraJavaAPI,oralternativestylesheetlanguages.Fontsretrievedbyonemediumandstoredinaproxycachecouldbere-usedbyanothermedium,savingdownloadtimeandnetworkbandwidth,ifacommonsystemoffontcharacteristicsareusedthroughout.Anon-exhaustivelistofexamplesofsuchmediaincludes:2-DvectorformatsComputerGraphicsMetafileSimpleVectorFormat3-DgraphicsformatsVRML3DMFObjectembeddingtechnologiesJavaActive-XObliq15.4.2FullfontnameThisisthefullnameofaparticularfaceofafontfamily.Ittypicallyincludesavarietyofnon-standardizedtextualqualifiersoradornmentsappendedtothefontfamilyname.Itmayalsoincludeafoundrynameorabbreviation,oftenprependedtothefontfamilyname.Itisonlyusedtorefertolocallyinstalledfonts,becausetheformatoftheadornednamecanvaryfromplatformtoplatform.Itmustbequoted.Forexample,thefontfamilynameoftheTrueTypefontandthePostScriptnamemaydifferintheuseofspacecharacters,punctuation,andintheabbreviationofsomewords(e.g.,tomeetvarioussystemorprinterinterpreterconstraintsonlengthofnames).Forexample,spacesarenotallowinaPostScriptname,butarecommoninfullfontnames.TheTrueTypenametablecanalsocontainthePostScriptname,whichhasnospaces.Thenameofthefontdefinitionisimportantbecauseitisthelinktoanylocallyinstalledfonts.Itisimportantthatthenameberobust,bothwithrespecttoplatformandapplicationindependence.Forthisreason,thenameshouldbeonethatisnotapplication-orlanguage-specific.Theidealsolutionwouldbetohaveanamethatuniquelyidentifieseachcollectionoffontdata.Thisnamedoesnotexistincurrentpracticeforfontdata.Fontswiththesamefacenamecanvaryoveranumberofdescriptors.Someofthesedescriptors,suchasdifferentcomplementsofglyphsinthefont,maybeinsignificantiftheneededglyphsareinthefont.Otherdescriptors,suchasdifferentwidthmetrics,makefontswiththesamenameincompatible.Itdoesnotseempossibletodefinearulethatwillalwaysidentifyincompatibilities,butwillnotpreventtheuseofaperfectlysuitablelocalcopyofthefontdatawithagivenname.Therefore,onlytherangeofISO10646characterswillbeusedtoqualifymatchesforthefontfacename.Sinceaprimegoalofthefontfacenameinthefontdefinitionistoallowauseragenttodeterminewhenthereisalocalcopyofthespecifiedfontdata,thefontfacenamemustbeanamethatwillbeinalllegitimatecopiesofthefontdata.Otherwise,unnecessaryWebtrafficmaybegeneratedduetomissedmatchesforthelocalcopy.15.4.3CoordinateunitsontheemsquareCertainvalues,suchaswidthmetrics,areexpressedinunitsthatarerelativetoanabstractsquarewhoseheightistheintendeddistancebetweenlinesoftypeinthesametypesize.Thissquareiscalledtheemsquareanditisthedesigngridonwhichtheglyphoutlinesaredefined.ThevalueofthisdescriptorspecifieshowmanyunitstheEMsquareisdividedinto.Commonvaluesareforexample250(Intellifont),1000(Type1)and2048(TrueType,TrueTypeGXandOpenType).Ifthisvalueisnotspecified,itbecomesimpossibletoknowwhatanyfontmetricsmean.Forexample,onefonthaslowercaseglyphsofheight450;anotherhassmalleronesofheight890!Thenumbersareactuallyfractions;thefirstfonthas450/1000andthesecondhas890/2048whichisindeedsmaller.15.4.4CentralBaselineThisgivesthepositionintheemsquareofthecentralbaseline.Thecentralbaselineisusedbyideographicscriptsforalignment,justasthebottombaselineisusedforLatin,Greek,andCyrillicscripts.15.4.5FontEncodingEitherexplicitlyorimplicitly,eachfonthasatableassociatedwithit,thefontencodingtable,thattellswhatcharactereachglyphrepresents.Thistableisalsoreferredtoasanencodingvector.Infact,manyfontscontainseveralglyphsforthesamecharacter.Whichofthoseglyphsshouldbeuseddependseitherontherulesofthelanguage,oronthepreferenceofthedesigner.InArabic,forexample,alllettershavefour(ortwo)differentshapes,dependingonwhethertheletterisusedatthestartofaword,inthemiddle,attheend,orinisolation.Itisthesamecharacterinallcases,andthusthereisonlyonecharacterinthesourcedocument,butwhenprinted,itlooksdifferenteachtime.Therearealsofontsthatleaveittothegraphicdesignertochoosefromamongvariousalternativeshapesprovided.Unfortunately,CSS2doesn'tyetprovidethemeanstoselectthosealternatives.Currently,itisalwaysthedefaultshapethatischosenfromsuchfonts.15.4.6FontfamilynameThisspecifiesthefamilynameportionofthefontfacename.Forexample,thefamilynameforHelvetica-BoldisHelveticaandthefamilynameofITCStoneSerifSemiboldItalicisITCStoneSerif.Somesystemstreatadornmentsrelatingtocondensedorexpandedfacesasiftheywerepartofthefamilyname.15.4.7GlyphwidthsThisisalistofwidths,onthedesigngrid,fortheglyphcorrespondingtoeachcharacter.ThelistisorderedbyISO10646codepoint.Widthscannotusefullybespecifiedwhenmorethanoneglyphmapstothesamecharacterorwhentherearemandatoryligatures.15.4.8HorizontalstemwidthThisvaluereferstothedominantstemofthefont.Theremaybetwoormoredesignedwidths.Forexample,themainverticalstemsofRomancharacterswilldifferfromthethinstemsonserifed"M"and"N",plustheremaybedifferentwidthsforuppercaseandlowercasecharactersinthesamefont.Also,eitherbydesignorbyerror,allstemsmayhaveslightlydifferentwidths.15.4.9HeightofuppercaseglyphsThismeasurementisthey-coordinateofthetopofflatuppercaselettersinLatin,Greek,andCyrillicscripts,measuredfromthebaseline.Thisdescriptorisnotnecessarilyusefulforfontsthatdonotcontainanyglyphsfromthesescripts.15.4.10HeightoflowercaseglyphsThismeasurementisthey-coordinateofthetopofunaccented,non-ascendinglowercaselettersinLatin,GreekandCyrillicscripts,measuredfromthebaseline.Flat-toppedlettersareused,ignoringanyopticalcorrectionzone.Thisisusuallyusedasaratiooflowercasetouppercaseheightsasameanstocomparefontfamilies.Thisdescriptorisnotusefulforfontsthatdonotcontainanyglyphsfromthesescripts.Sincetheheightsoflowercaseanduppercaselettersareoftenexpressedasaratioforcomparingdifferentfonts,itmaybeusefultosetboththelowercaseanduppercaseheightstothesamevalueforunicameralscriptssuchasHebrew,whereformixedLatinandHebrewtext,theHebrewcharactersaretypicallysetataheightmidwaybetweentheuppercaseandlowercaseheightsoftheLatinfont.15.4.11LowerBaselineThisgivesthepositionintheemsquareofthelowerbaseline.ThelowerbaselineisusedbyLatin,Greek,andCyrillicscriptsforalignment,justastheupperbaselineisusedforSanscrit-derivedscripts.15.4.12MathematicalBaselineThisgivesthepositionintheemsquareofthemathematicalbaseline.Themathematicalbaselineisusedbymathematicalsymbolsforalignment,justasthelowerbaselineisusedforLatin,Greek,andCyrillicscripts.15.4.13MaximalboundingboxThemaximalboundingboxisthesmallestrectangleenclosingtheshapethatresultsifallglyphsinthefontareplacedwiththeiroriginscoincident,andthenpainted.Ifadynamicallydownloadablefonthasbeengeneratedbysubsettingaparentfont,thebboxshouldbethatoftheparentfont.15.4.14MaximumunaccentedheightThismeasurement,ontheemsquare,isfromthebaselinetothehighestpointreachedbyanyglyph,excludinganyaccentsordiacriticalmarks.15.4.15MaximumunaccenteddepthThismeasurement,ontheemsquare,isfromthebaselinetothelowestpointreachedbyanyglyph,excludinganyaccentsordiacriticalmarks.15.4.16Panose-1numberPanose-1isanindustrystandardTrueTypefontclassificationandmatchingtechnology.ThePANOSEsystemconsistsofasetoftennumbersthatcategorizethekeyattributesofaLatintypeface,aclassificationprocedureforcreatingthosenumbers,andMappersoftwarethatdeterminestheclosestpossiblefontmatchgivenasetoftypefaces.Thesystemcould,withmodification,alsobeusedforGreekandCyrillic,butisnotsuitableforunicameralandideographicscripts(Hebrew,Armenian,Arabic,Chinese/Japanese/Korean).15.4.17RangeofISO10646charactersThisindicatestheglyphrepertoireofthefont,relativetoISO10646(Unicode).Sincethisissparse(mostfontsdonotcoverthewholeofISO10646)thisdescriptorlistsblocksorrangesthatdohavesomecoverage(nopromiseismadeofcompletecoverage)andisusedtoeliminateunsuitablefonts(onesthatwillnothavetherequiredglyphs).Itdoesnotindicatethatthefontdefinitelyhastherequiredglyphs,onlythatitisworthdownloadingandlookingatthefont.See[ISO10646]forinformationaboutusefuldocuments.ThismethodisextensibletofutureallocationofcharactersinUnicode,withoutchangeofsyntaxandwithoutinvalidatingexistingcontent.Fontformatsthatdonotincludethisinformation,explicitlyorindirectly,maystillusethischaracteristic,butthevaluemustbesuppliedbythedocumentorstylesheetauthor.Thereareotherclassificationsintoscripts,suchastheMonotypesystem(see[MONOTYPE])andaproposedISOscriptsystem.Thesearenotreadilyextensible.Becauseofthis,classificationofglyphrepertoiresbytherangeofISO10646charactersthatmayberepresentedwithaparticularfontisusedinthisspecification.Thissystemisextensibletocoveranyfutureallocation.15.4.18TopBaselineThisgivesthepositionintheemsquareofthetopbaseline.ThetopbaselineisusedbySanscrit-derivedscriptsforalignment,justasthebottombaselineisusedforLatin,Greek,andCyrillicscripts.15.4.19VerticalstemwidthThisisthewidthofvertical(ornear-vertical)stemsofglyphs.Thisinformationisoftentiedtohinting,andmaynotbedirectlyaccessibleinsomefontformats.Themeasurementshouldbeforthedominantverticalsteminthefontbecausetheremightbedifferentgroupingsofverticalstems(e.g.,onemainone,andonelighterweightoneasforanuppercaseMorN).15.4.20VerticalstrokeangleThisistheangle,indegreescounterclockwisefromthevertical,ofthedominantverticalstrokesofthefont.Thevalueisnegativeforfontsthatslopetotheright,asalmostallitalicfontsdo.Thisdescriptormayalsobespecifiedforobliquefonts,slantedfonts,scriptfonts,andingeneralforanyfontwhoseverticalstrokesarenotpreciselyvertical.Anon-zerovaluedoesnotofitselfindicateanitalicfont.15.5FontmatchingalgorithmThisspecificationextendsthealgorithmgivenintheCSS1specification.ThisalgorithmreducesdowntothealgorithmintheCSS1specificationwhentheauthorandreaderstylesheetsdonotcontainany@font-facerules.Matchingofdescriptorstofontfacesmustbedonecarefully.Thedescriptorsarematchedinawell-definedordertoinsurethattheresultsofthismatchingprocessareasconsistentaspossibleacrossUAs(assumingthatthesamelibraryoffontfacesandfontdescriptionsispresentedtoeachofthem).Thisalgorithmmaybeoptimized,providedthatanimplementationbehavesasifthealgorithmhadbeenfollowedexactly.Theuseragentmakes(oraccesses)adatabaseofrelevantfont-facedescriptorsofallthefontsofwhichtheUAisaware.Iftherearetwofontswithexactlythesamedescriptors,oneofthemisignored.TheUAmaybeawareofafontbecause:ithasbeeninstalledlocallyitisdeclaredusingan@font-faceruleinoneofthestylesheetslinkedtoorcontainedinthecurrentdocumentitisusedintheUAdefaultstylesheet,whichconceptuallyexistsinallUAsandisconsideredtohavefull@font-facerulesforallfontswhichtheUAwillusefordefaultpresentation,plus@font-facerulesforthefivespecialgenericfontfamilies(see'font-family')definedinCSS2Atagivenelementandforeachcharacterinthatelement,theUAassemblesthefontpropertiesapplicabletothatelement.Usingthecompletesetofproperties,theUAusesthe'font-family'descriptortochooseatentativefontfamily.Thus,matchingonafamilynamewillsucceedbeforematchingonsomeotherdescriptor.Theremainingpropertiesaretestedagainstthefamilyaccordingtothematchingcriteriadescribedwitheachdescriptor.Iftherearematchesforalltheremainingproperties,thenthatisthematchingfontfaceforthegivenelement.Ifthereisnomatchingfontfacewithinthe'font-family'beingprocessedbystep2,UAsthatimplementintelligentmatchingmayproceedtoexamineotherdescriptorssuchasx-height,glyphwidths,andpanose-1toidentifyadifferenttentativefontfamily.Iftherearematchesforalltheremainingdescriptors,thenthatisthematchingfontfaceforthegivenelement.The'font-family'descriptorthatisreflectedintotheCSS2propertiesisthefontfamilythatwasrequested,notwhatevernametheintelligentlymatchedfontmayhave.UAsthatdonotimplementintelligentmatchingareconsideredtofailatthisstep.Ifthereisnomatchingfontfacewithinthe'font-family'beingprocessedbystep3,UAsthatimplementfontdownloadingmayproceedtoexaminethe'src'descriptorofthetentativefontfaceidentifiedinstep2or3toidentifyanetworkresourcethat'100'
remains unassigned, it isavailable,andofassigned to thecorrectformat.next lighter assigned
keyword, iftherearematchesforalltheremainingdescriptors,thenthatisthematchingfontfaceforany, or thegivenelementandnext darker otherwise.
The  UA may attempt to download this font resource.following two examples show typical mappings.
Assume four weights in the  UA may choose to block on this download or may choose to proceed"Rattlesnake" family, from lightest to
darkest: Regular, Medium, Bold, Heavy.
First example of font-weight mapping
| Available faces | Assignments | Filling the nextstepwhileholes | 
|---|
| "Rattlesnake Regular" | 400 | 100, 200, 300 | 
| "Rattlesnake Medium" | 500 |  | 
| "Rattlesnake Bold" | 700 | 600 | 
| "Rattlesnake Heavy" | 800 | 900 | 
 
Assume six weights in the
 font downloads. UAs"Ice Prawn" family: Book, Medium, Bold, Heavy, Black,
ExtraBlack. Note that  do not implement font download, or arein this instance the user agent
has decided not  connectedto assign a  network, or wherenumeric
value to "Ice Prawn ExtraBlack".
Second example of font-weight mapping
| Available faces | Assignments | Filling the userpreferenceshavedisabledfontdownload,orwhereholes | 
|---|
| "Ice Prawn Book" | 400 | 100, 200, 300 | 
| "Ice Prawn Medium" | 500 |  | 
| "Ice Prawn Bold" | 700 | 600 | 
| "Ice Prawn Heavy" | 800 |  | 
| "Ice Prawn Black" | 900 |  | 
| "Ice Prawn ExtraBlack" | (none) |  | 
 
Since the intent of the  requested resourcerelative keywords 'bolder' and 'lighter' is
 unavailable for whatever reason,to darken or  wherelighten the  downloaded font cannot be used for whatever reason, are considered to fail at this step. If there is no matching fontface within the  'font-family' being processed by step 3, UAs that implement font synthesis may proceed to examine other descriptors such as 'x-height' , glyph widths,family and  'panose-1' to identifybecause a
 different tentative fontfamily  for synthesis. If there are matches formay not have faces aligned with all the  remaining descriptors, then thatsymbolic weight values,
the matching of 'bolder' is to the  matching fontnext darker face  foravailable on the
 given elementclient within the family and  synthesisthe matching of 'lighter' is to the  faux font may begin. UAs that do not implement font synthesis are considerednext
lighter face within the family. To  fail at this step. If allbe precise, the meaning of  steps 3, 4 and 5 fail,the
relative keywords 'bolder' and 'lighter' is as follows:
- 'bolder' selects the next weight that is assigned to a font that
is darker than the inherited one. If there is  ano such weight, it
simply results in the nextalternative'font-family'darker numerical value (and the font
remains unchanged), unless the inherited value was '900' in which case
the resulting weight is also '900'.
- 'lighter' is similar, but works in the opposite direction: it
selects the next lighter keyword with a different font  set,thenrepeatfromstep2withthe
inherited one, unless there is no such font, in which case it selects
the nextalternative'font-family'.Iflighter numerical value (and keeps the font unchanged).
There is no guarantee that there will be a  matching font face, but it doesn't contain glyph(s)darker face for each of
the  current character(s),'font-weight' values; for example, some fonts may have only a
normal and  ifa bold face, while others may have eight face weights.
There is no guarantee on how a  next alternative 'font-family' in theUA will map font  sets, then repeat from step 2 with the next alternative 'font-family' .faces within a family
to weight values. The  'unicode-range' descriptor mayonly guarantee is that a face of a given value
will be  usedno less dark than the faces of lighter values.
The  correct glyphs. Iffont size corresponds to the  'unicode-range' descriptor indicates thatem square, a  font contains some glyphsconcept used in  the correct range, ittypography.
Note that certain glyphs may  be examined bybleed outside their em squares. Values
have the  UA to see if it has that particular one. If therefollowing meanings:
- <absolute-size>
- An <absolute-size> keyword is  noan index to a table of fontwithinthefamilyselectedin2,thenusetheinheritedorUA-dependent'font-family'valuesizes computed andrepeatfromstep2,usingkept by thebestmatchthatcanbeobtainedwithinthisfont.Ifaparticularcharactercannotbedisplayedusingthisfont,UA. Possible values are: [ xx-small | x-small | small | medium | large | x-large | xx-large ] The  UAshouldindicatethatacharacterisnotbeingdisplayed(forexample,usingfollowing table provides user agent guidelines for the'missingcharacter'glyph).UAsthatimplementprogressiverenderingabsolute-size 
scaling factor andhavependingfontdownloadsmay,oncedownloadissuccessful,usetheir mapping to HTML heading and absolute font-sizes. Thedownloadedfont'medium' value is used asafontfamily.Ifthedownloadedfontismissingsomeglyphsthatreference middle value. Thetemporaryprogressiveuser agent may fine 
tune these values for different fonts or different types of display devices.
 
  
    | CSS absolute-size values | xx-small | x-small | small | medium | large | x-large | xx-large |  |  
    | scaling factor | 3/5 | 3/4 | 8/9 | 1 | 6/5 | 3/2 | 2/1 | 3/1 |  
    | HTML headings | h6 |  | h5 | h4 | h3 | h2 | h1 |  |  
    | HTML font didcontain,sizes | 1 |  | 2 | 3 | 4 | 5 | 6 | 7 |  
 
Different media may need different scaling factors. Also, the  downloadedfontisnotusedforthatcharacterUA
should take the quality and availability of fonts into account when
computing thetemporaryfontcontinuestobeused.Note.table. Theabovealgorithmcantable may beoptimizeddifferent from one font family
to another.
 Note 1. To preserve readability, a UA applying 
these guidelines should nevertheless avoid  havingcreating font-size resulting
 in less than 9 pixels per EM unit on a computer display.
 Note 2. In CSS1, the suggested
scaling factor between adjacent indexes was 1.5 which user experience
proved to  revisitbe too large. In CSS2, theCSS2propertiessuggested scaling factor for computer 
screen between adjacent indexes was 1.2 which still created issues foreachcharacter.theper-descriptormatchingrulesfrom(2)aboveareasfollows:'font-style'istriedfirst.'italic'willbesatisfiedifthereiseithersmall 
sizes. The new scaling factor varies between each index to provide better 
readability.
 
- <relative-size>
- A  facein<relative-size> keyword is interpreted relative to theUA'stable of fontdatabaselabeledwithsizes and theCSSkeyword'italic'(preferred)or'oblique'.Otherwisefont size of the parent element. Possible
valuesmustbematchedexactlyorfont-stylewillfail.'font-variant'istriednext.'normal'matchesafontnotlabeledas'small-caps';'small-caps'matches(1)afontlabeledas'small-caps',(2)afontinwhichare: [ larger | smaller ]. For example, if thesmallcapsaresynthesized,or(3)parent element
has a fontwherealllowercaselettersarereplacedbyuppercaseletters.size of 'medium', asmall-capsvalue of 'larger' will make the fontmaysize of the current element besynthesizedbyelectronicallyscalinguppercaselettersfromanormalfont.'font-weight''large'. If the parent element's size
ismatchednext,itwillneverfail.(See'font-weight'below.)'font-size'mustbematchedwithinaUA-dependentmarginoftolerance.(Typically,sizesforscalablefontsareroundednot close to a table entry, thenearestwholepixel,whileUA is free to interpolate between
table entries or round off to thetoleranceforbitmappedfontscouldbeaslargeas20%.)Furthercomputations,e.g.,by'em'closest one. The UA may have to
extrapolate table valuesinotherproperties,arebasedonif the'font-size'numerical valuethatisused,goes beyond the
keywords.
Length and percentage values should not take the  one that is specified. 15.5.1 Mappingfont  weight values tosize table
into account when calculating the font  namessize of the  'font-weight' propertyelement.
Negative values are  givennot allowed.
On  a numerical scale in whichall other properties, 'em' and 'ex' length values refer to the
 value '400' (or 'normal') correspondscomputed font size of the current element. On the 'font-size' property, these
length units refer to the  "normal" text face for that family.computed font size of the  weight name associated withparent element.
Note that  face will typically be Book, Regular, Roman, Normal or sometimes Medium .an application may reinterpret an explicit size,
depending on the context. E.g., inside a VR scene a font may get a
different size because of perspective distortion.
Examples:
p { font-size: 16px; }
@media print {
	p { font-size: 12pt; }
}
blockquote { font-size: larger }
em { font-size: 150% }
em { font-size: 1.5em }
The  association of other weights within'font' property is,
except as described below, a  family toshorthand property for
setting
'font-style',
'font-variant',
'font-weight',
'font-size',
'line-height' and
'font-family' at the  numerical weight values is intended only to preservesame
place in the  orderingstyle
sheet. The syntax of  weights within that family. User agents must map names to values in a way that preserves visual order; a face mapped to a value must not be lighter than faces mapped to lower values. Therethis property is  no guaranteebased on  how a user agent will map font faces withina  familytraditional
typographical shorthand notation to  weight values. However, the following heuristics tell how the assignment is doneset multiple properties related to
fonts.
All font-related properties are first reset to their initial values, 
including those listed in  typical cases: Ifthe  font family already uses a numerical scale with ninepreceding paragraph. 
Then, those properties that are given explicit values  (as e.g., OpenType does),in the 
 font weights should be mapped directly. If there is both'font' shorthand are set to those values. 
For a  face labeled Mediumdefinition of allowed and  one labeled Book, Regular, Roman or Normal, then the Medium is normally assigned to the '500'. The font labeled "Bold" will often correspond toinitial values, see the  weight value '700'. If there are fewer then 9 weightspreviously defined properties.
p { font: 12px/14px sans-serif }
p { font: 80% sans-serif }
p { font: x-large/110% "New Century Schoolbook", serif }
p { font: bold italic large Palatino, serif }
p { font: normal small-caps 120%/120% fantasy }
In the  family, the default algorithm for fillingsecond rule, the  "holes" is as follows. If '500' is unassigned, it will be assignedfont size percentage value ('80%') refers
to the  samefont  as '400'. If anysize of the  values '600', '700', '800', or '900' remains unassigned, they are assigned to the same face asparent element. In the  next darker assigned keyword, if any, orthird rule, the  next lighter one otherwise. If any of '300', '200', or '100' remains unassigned, it is assignedline
height percentage refers to the  next lighter assigned keyword, if any, or the next darker otherwise. There is no guarantee that there will be a darker face for eachfont size of the  'font-weight' values; for example, some fonts may have only a normal and a bold face, others may have eight different face weights. The following two examples show typical mappings. Assume four weightselement itself.
In the  "Rattlesnake" family, from lightest to darkest: Regular, Medium, Bold, Heavy.first  example of font-weight mapping Available faces Assignments Filling the holes "Rattlesnake Regular" 400 100, 200, 300 "Rattlesnake Medium" 500   "Rattlesnake Bold" 700 600 "Rattlesnake Heavy" 800 900 Assume six weights in the "Ice Prawn" family: Book, Medium, Bold, Heavy, Black, ExtraBlack. Note that in this instancethree rules above, the  user agent has decided'font-style', 'font-variant'
and 'font-weight' are not explicitly mentioned, which means they are
all three set to  assign a numerictheir initial value ('normal'). The fourth rule sets
the 'font-weight' to  "Example2 ExtraBlack". Second example of font-weight mapping Available faces Assignments Filling'bold', the 'font-style' to 'italic' and
implicitly sets 'font-variant' to 'normal'.
The fifth rule sets the 'font-variant' ('small-caps'), the
 holes "Ice Prawn Book" 400 100, 200, 300 "Ice Prawn Medium" 500   "Ice Prawn Bold" 700 600 "Ice Prawn Heavy" 800   "Ice Prawn Black" 900   "Ice Prawn ExtraBlack" (none)   15.5.2 Examples'font-size' (120% of the parent's font), the 'line-height' (120% times
the font  matching Example(s):size) and the 'font-family' ('fantasy'). It follows that the
keyword 'normal' applies to the two remaining properties: 'font-style'
and 'font-weight'.
The following  example defines a specific font face, Alabama Italic. A panosevalues refer to system fonts:
- caption
- The font  descriptionandsourceURIused forretrievingatruetypeservercaptioned controls (e.g., buttons, drop-downs, etc.).
- icon
- The font  arealsoprovided.Font-weightandfont-styledescriptorsareprovidedused todescribethefont.label icons.
- menu
- The  declarationsaysthatfont used in menus (e.g., dropdown menus and menu lists).
- message-box
- The  weightwillalsomatchanyrequestfont used in dialog boxes.
- small-caption
- The  range300to500.font used for labeling small controls.
- status-bar
- The font  familyisAlabamaandused in window status bars.
System fonts may only be set as a whole; that is, the  adornedfont
 name is Alabama Italic. @font-face { src: local("Alabama Italic"), url(http://www.fonts.org/A/alabama-italic) format("truetype"); panose-1: 2 4 5 2 5 4 5 9 3 3; font-family: Alabama, serif; font-weight: 300, 400, 500; font-style: italic, oblique; } Example(s):family, size, weight, style, etc. are all set at the  next example definessame time. 
These values may then be altered individually if desired.  If no
font with the indicated characteristics exists on a  family of fonts.given platform,
the user agent should either intelligently substitute (e.g., a  single URI is provided for retrievingsmaller
version of the 'caption' font  data. This data file will contain multiple styles and weights ofmight be used for the  named'small-caption'
font), or substitute a user agent default font.  Once oneAs for regular fonts,
if, for a system font, any of the individual properties are not part
of  these @font-face definitions has been dereferenced,the  data willoperating system's available user preferences, those properties
should be  in the UA cache for other facesset to their initial values.
That  use the same URI. @font-face { src: local("Helvetica Medium"), url(http://www.fonts.org/sans/Helvetica_family) format("truedoc"); font-family: "Helvetica"; font-style: normal } @font-face { src: local("Helvetica Oblique"), url("http://www.fonts.org/sans/Helvetica_family") format("truedoc"); font-family: "Helvetica"; font-style: oblique; slope: -18 } Example(s): The following example groups three physicalis why this property is "almost" a shorthand property: system
fonts  into one virtual fontcan only be specified with  extended coverage. In each case,this property, not with 'font-family' itself, so 'font' allows authors to do more than the
 adorned font name issum of its subproperties. However, the individual properties such as 'font-weight' are still given  invalues taken from the  src descriptor to allow locally installed versions tosystem font, which can be  preferentially used if available. A fourth rule points to a font with the same coverage, but contained in a single resource. @font-face { font-family: Excelsior; src: local("Excelsior Roman"), url("http://site/er") format("intellifont"); unicode-range: U+??; /* Latin-1 */ } @font-faceindependently varied.
Example(s):
button {  font-family: Excelsior; src: local("Excelsior EastA Roman"), url("http://site/ear") format("intellifont"); unicode-range: U+100-220; /* Latin Extended A and B */font: 300 italic 1.3em/1.7em "FB Armada", sans-serif }
 @font-facebutton p {  font-family: Excelsior; src: local("Excelsior Cyrillic Upright"), url("http://site/ecr") format("intellifont"); unicode-range: U+4??; /* Cyrillic */font: menu }
 @font-facebutton p em {  font-family: Excelsior; src: url("http://site/excels") format("truedoc"); unicode-range: U+??,U+100-220,U+4??;font-weight: bolder }
 Example(s): This next example might be found in a UA's default style sheet. It implementsIf the  CSS2 genericfont  family, serif by mapping itused for dropdown menus on a particular system
happened to be, for example, 9-point Charcoal, with a  wide varietyweight of  serif fonts600, then P
elements that  might exist on various platforms. No metrics arewere descendants of BUTTON would be displayed as if
this rule were in effect:
button p { font: 600 9px Charcoal }
Because the 'font' shorthand
property resets any property not explicitly given  since these vary amonga value
to its initial value, this has the  possible alternatives. @font-facesame effect as this declaration:
button p {
   src: local("Palatino"), local("Times New Roman"), local("New York"), local("Utopia"), url("http://somewhere/free/font");font-family:  serif; font-weight: 100, 200, 300, 400, 500;Charcoal;
  font-style: normal;
  font-variant: normal;
  font-weight: 600;
  font-size:  all9px;
  line-height: normal;
}