1. 序論
この仕様は、 `~level 3$ 仕様に述べられた基本的な~font特能を含み,それを拡張pする。 ◎ This specification includes and expands on the basic font features described in the CSS3 Fonts specification ([CSS-FONTS-3]).
1.1. 値~定義
【 この節の内容は `~CSS日本語訳 共通~page@~CSScommon#values$に移譲。 】
2. 基本的な~font~prop
文字を描画するために利用される,特定0の書体-は、[ その文字を内容に含む要素 ]に適用される ~font族や他の各種~font~propにより,決定される。 この構造により、 これらの設定群の中の各~設定は,互いに独立に変わり得るようになる。 ◎ The particular font face used to render a character is determined by the font family and other font properties that apply to a given element. This structure allows settings to be varied independent of each other.
【 この訳に現れる “~~書体” は、 “`typeface^en(~~活字書体)” ではなく, (より抽象的な) “`face^en” ( “~italic体”, 等々の “体” )の対訳である (加えて、原文の “`font face^en” も訳では “~~書体” と略記する)。 】
2.1. ~font族: `font-family^p ~prop
◎名 `font-family@p ◎値 [ `family-name$t | `generic-family$t ]# ◎初 ~UAに依存する ◎ depends on user agent ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 [ 文字列/ `generic-family$t ~keyword ]たちが成す~list ◎ list, each item a string and/or <generic-family> keywords ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 優先順による[ ~font族~名や汎用~族~名 ]たちが成す~listを指定する。 ~font族は、 様々な[ ~weight, 字幅, 斜傾度 ]を備える書体たちが成す集合を定義する。 ~CSSは、 個々の書体を選定するために,族~名と他の~font~propの組合nを利用する。 ~design~appにおいて よく行われる様な[ ~style名を介する書体の選定-法 ]ではなく,この選定の仕組みにより、 ~fallbackが生じた際でも,ある程度 規則正しい~textな表示を得られるようになる。 ◎ This property specifies a prioritized list of font family names or generic family names. A font family defines a set of faces that vary in weight, width or slope. CSS uses the combination of a family name with other font properties to select an individual face. Using this selection mechanism, rather than selecting a face via the style name as is often done in design applications, allows some degree of regularity in textual display when fallback occurs.
~listを成す各~成分~値は、 ~commaで他と分離され,代替候補を指示する。 ~UAは、[[ 描画される文字~用の~glyph ]を包含するような,可用な~font ]に合致するまで,~listを成す各~族~名を反復する ( `§ ~clusterの照合-法$ を見よ)。 これにより、[ ~platform間での可用な~fontの相違 ], および[ 個々の~fontが~supportする文字~範囲の相違 ]が許容されるようになる。 ◎ Component values are a comma-separated list indicating alternatives. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered. (See § 5.3 Cluster matching.) This allows for differences in available fonts across platforms and for differences in the range of characters supported by individual fonts.
body { font-family: Helvetica, Verdana, sans-serif; }
`Helvetica^F が可用ならば、 それが描画-時に利用されることになる。 `Helvetica^F も `Verdana^F も無い場合、 汎用~font族~sans-serif~fontが利用されることになる。 ◎ If Helvetica is available, it will be used when rendering. If neither Helvetica nor Verdana is present, then the generic font-family sans-serif font will be used.
~font族~名は、 次に挙げる 3 つの型に分けられる — うち最後を除く 2 つは、 この~propに利用できる: ◎ There are three types of font family names, two of which may be used with this property:
- `family-name@t
- 上の例の `Helvetica^F や `Verdana^F など,~font族の名前 ◎ The name of a font family, such as Helvetica or Verdana in the previous example.
- これは、 ~localに`~install済み~font$になる場合も, ~web~fontになる場合もある。 ◎ This might be a locally-instaled font, or might be a web font.
- `generic-family$t
- 各 `generic-family$t ~keywordは、 汎用~font候補を表現し,1 個~以上の[ ~localに`~install済み~font$のうち, 指定された汎用~fontに属するもの ]の別名になり得るものとして挙動する。 `generic-family$t は、 作者による より特定な~font候補が可用でないときの,~fallbackとして利用できる。 ◎ Each <generic-family> keyword represents a generic font choice, and behaves as a potential alias for one or more locally-installed fonts belonging to the specified generic font category. A <generic-family> can thus be used as a fallback for when an author’s more specific font choices are not available.
-
汎用~族には、 次に挙げる種別がある: ◎ There are three types of generic family:
- すべての~Unicode文字に適用されるが、 `常に^em,ある~localに~install済み~fontに合致するもの (例: `ui-monospace$v 【!monospaced】)。 ◎ Generics which apply to all Unicode characters and will always match a locally installed font. For example, monospaced.
- すべての~Unicode文字に適用されるが、 一部の~systemでは,~localに~install済み~fontに合致するとは限らないもの (例: `ui-rounded$v )。 ◎ Generics which apply to all Unicode characters but may not match to a locally installed font on some systems. For example, ui-rounded.
- [ 書記体系に特有な,ある~Unicode文字たちが成す下位集合 ]に限り適用され、 一部の~systemでは,~localに~install済み~fontに合致するとは限らないもの (例: `generic(fangsong)$v )。 ◎ Generics which are writing-system specific, only apply to a subset of Unicode characters, and may not match to a locally installed font on some systems. For example, generic(fangsong).
-
作者には、 次が奨励される: ◎ Authors are encouraged\
- 堅牢性を改善するため, 最後の代替候補として汎用~font族を付加しておく。 ◎ to append a generic font family as a last alternative for improved robustness,\
- 適用-可能ならば, より特定な汎用~font族を利用する — 個々の有名~font族は可用でない場合でも、 特定の~styleを選好するよう。 ◎ and to use a more specific generic font family, if applicable, to prefer a specific style even if the individual named font family is not available.
- `generic-family$t ~keywordは、 引用符で括れないことに注意 (さもなければ、 `family-name$t として解釈される)。 ◎ Note that <generic-family> keywords cannot be quoted (otherwise they are interpreted as a <family-name>).
- 汎用~族~keywordたちが成す集合は、 `§ 汎用~font族@#generic-font-families$ に定義される。 ◎ The set of generic family keywords is defined in § 2.1.5 Generic font families.
- `system-family-name@t
- ~localに~install済みな~system~font。 その利用は、 ある種の拘束の~subjectになる — 特に、 `font-family$p ~propには利用できないが, `font$p 略式~propには利用できる。 ◎ A locally installed system font, whose use is subject to certain constraints. In particular, it may not be used with the font-family property, but can be used with the font shorthand.
-
次に挙げる値が~system~fontを参照rする: ◎ The following values refer to system fonts:
- `caption@v
- ~caption付きの~control (例: ~button, ~drop-down, 等々) 用に利用される~font ◎ The font used for captioned controls (e.g., buttons, drop-downs, etc.).
- 【 利用中の~browserでは、 このように呈示される。 】
- `icon@v
- ~iconに~labelを貼るために利用される~font ◎ The font used to label icons.
- 【 利用中の~browserでは、 このように呈示される。 】
- `menu@v
- ~menu(例: ~drop-down~menuや~menu~list)に利用される~font ◎ The font used in menus (e.g., dropdown menus and menu lists).
- 【 利用中の~browserでは、 このように呈示される。 】
- `message-box@v
- ~dialog~boxに利用される~font ◎ The font used in dialog boxes.
- 【 利用中の~browserでは、 このように呈示される。 】
- `small-caption@v
- 小さな~controlに~labelを貼るために利用される~font ◎ The font used for labeling small controls.
- 【 利用中の~browserでは、 このように呈示される。 】
- `status-bar@v
- ~UIwindowの状態s~barに利用される~font ◎ The font used in window status bars.
- 【 利用中の~browserでは、 このように呈示される。 】
2.1.1. `family-name^t の構文
`family-name$t = `string$t | `custom-ident$t+
`family-name$t【!other than generic families or system font families】 による~font族~名は、 `string$t として引用符で括って与えるか,または[ 1 個以上の `custom-ident$t が成す連列 ]として引用符で括らずに与えなければならない。 ◎ Font family names other than generic families or system font families must either be given quoted as <string>s, or unquoted as a sequence of one or more <custom-ident>.
注記: したがって,引用符で括らない場合、 各~tokenの先頭に在る[ 約物のほとんど/数字 ]は,~escapeする必要がある。 ◎ Note: This means most punctuation characters and digits at the start of each token must be escaped in unquoted font family names.
例えば,次に示す宣言は、 どれも無効になる: ◎ To illustrate this, the following declarations are invalid:
font-family: Red/Black, sans-serif; font-family: "Lucida" Grande, sans-serif; font-family: Ahem!, sans-serif; font-family: test@foo, sans-serif; font-family: #POUND, sans-serif; font-family: Hawaii 5-0, sans-serif;
定義済みな~keywordに誤解釈され得るものは、 `font-family^p の値~定義~内には許容されない。 ◎ Any identifier which could be misinterpreted as a pre-defined keyword in the font-family value definition, or the CSS-wide keywords, is not allowed.
注記: このことは、 ある~fontの名前が,ある[ `generic-family$t / `system-family-name$t /`~CSS全域~keyword$ ]と本当に同じである場合, その名前は引用符で括らなければナラナイことを意味する。 ◎ Note: this means that if you really have a font whose name is the same as one of the <generic-family> names, or the system font names, or the CSS-wide keywords, it must be quoted.
例えば,次に挙げる通例的でない~font族~名は、 引用符で括っているので妥当になる: ◎ To illustrate this, the following unusual font family names are valid because they are quoted:
font-family: "sans-serif", sans-serif; font-family: "default", sans-serif; font-family: "initial", sans-serif; font-family: "inherit", sans-serif;
`family-name$t として識別子たちが成す連列が与えられた場合、 その`算出d値$は,[ 連列を成す各~識別子を 1 個の~spaceを挟んで順に連結して文字列 ]に変換した結果の名前になる。 ◎ If a sequence of identifiers is given as a <family-name>, the computed value is the name converted to a string by joining all the identifiers in the sequence by single spaces.
~escapeの誤記を避けるため、 ~font族~名のうち[ 空白/数字/~hyphen以外の約物 ]を包含するものは,引用符で括ることが推奨される: ◎ To avoid mistakes in escaping, it is recommended to quote font family names that contain white space, digits, or punctuation characters other than hyphens:
~font族を引用符で括れば,~escapeの誤記を防げる: ◎ Quoting font families prevents escaping mistakes.
body { font-family: "New Century Schoolbook", serif } <body style="font-family: '21st Century', fantasy">
`font-family$p ~keyword値 (例: `inherit^v などの`~CSS全域~keyword$や, `serif$v などの `generic-family$t ~keyword) とたまたま同じになる~font族`名^em は、 ~keywordと混同されないよう,引用符で括られなければナラナイ。 ~UA は、 これらの~keywordを[ `family-name$t 型に合致している ]と見なさないモノトスル。 ◎ Font family names that happen to be the same as a font-family keyword value (e.g. CSS-wide keywords such as inherit, or <generic-family> keywords such as serif) must be quoted to prevent confusion with the keywords of the same names. UAs must not consider these keywords as matching the <family-name> type.
2.1.2. `generic-family^t の構文
`generic-family@t = `generic-script-specific$t | `generic-complete$t | `generic-incomplete$t `generic-script-specific@t = `generic(kai)$v | `generic(fangsong)$v | `generic(nastaliq)$v `generic-complete@t = `serif$v | `sans-serif$v | `system-ui$v | `cursive$v | `fantasy$v | `math$v | `monospace$v `generic-incomplete@t = `ui-serif$v | `ui-sans-serif$v | `ui-monospace$v | `ui-rounded$v
構文が【 `family-name$t との】衝突に左右され難くなるよう、 より近過去に定義された汎用~font族は,関数-構文を利用して識別される。 ◎ To make the syntax less succeptible to clashes, more recently defined generic font families are identified using a functional syntax.
body { font-family: "Adobe Fangsong Std R", generic(fangsong), serif}
この例においては: ◎ ↓
- 1 個目の候補( `string^t )は、 特定の有名~font — `Fang Song^F (仿宋)~styleを伴うそれ — である。 その族~名は~space文字を包含するので、 引用符で括られる。 ◎ The first choice in this example is a specific, named font, in Fang Song (仿宋) style. The family name is enclosed in quotes as it contains space characters.\
- 2 個目の候補 `generic(fangsong)$v は、 【この仕様において】近過去に追加された[ 用字系に特有な汎用~font ]であり, ある~Unicode範囲【!unicode-range】に特有になる — なので、 一部の~systemでは,[ 実際に~installされた~fontとして合致するもの ]が無いこともある。 【!; but if it exists it will be an example of the requested style.】 ◎ The second is a recently added script-specific generic font; it is unicode-range specific and so may not match to an actual installed font on some systems; but if it exists it will be an example of the requested style.\
- 3 個目の候補 `serif^v ( `custom-ident^t )は、 普遍的な汎用~fontであり, どの~systemにも合致するものが在ることが保証される。 ◎ The third is a universal generic font, which is guaranteed to match on all systems.
2.1.3. `system-family-name^t の構文
`system-family-name$t = `caption$v | `icon$v | `menu$v | `message-box$v | `small-caption$v | `status-bar$v
2.1.4. 書体と族との関係性
~font族~名は、[ 書体-たちが成す集合に付与された名前 ]のみを指定するものであり,個々の書体は指定しない。 ◎ A font family name only specifies a name given to a set of font faces; it does not specify an individual face.
例えば,次に挙げる~fontが可用である下では、 `Futura^F は合致することになるが,`Futura_Medium^F は合致しない: ◎ For example, given the availability of the fonts below, Futura would match but Futura Medium would not:
注記: ~CSSによる[ ~font選定に利用される~font属性 ]の定義は、 明示的に,[ ~fontの分類法を定義することを意図するもの ]ではない。 活字~designerによる族の~ideaは、 標準な[ ~weight( `font-weight$p )/ 字幅( `font-width$p )/ 傾き( `font-style$p ) ]軸のみならず, 他の軸に沿っても変わり得るような,書体たちが成す集合にまで拡張することが多い。 族は、 それに一意な軸に沿って変わるように,拡張し得る。 ~CSSにおける~font選定の仕組みは、[ 代用が必要yなときに “最も近く合致するもの” を決定する仕方 ]を成す一つを供するものに過ぎない。 ◎ Note: The CSS definition of font attributes used for selection are explicitly not intended to define a font taxonomy. A type designer’s idea of a family can often extend to a set of faces that vary along axes other than just the standard axes of weight (font-weight), width (font-width), and slant (font-style). A family can vary along axes that are unique to that family. The CSS font selection mechanism merely provides a way to determine the “closest” match when substitution is necessary.
注記: ~fontたちが成す集合をいくつかの~font族に~group化する精確な仕方は、 ~platformの~font管理~APIに依存して様々である。 例えば、 ~Windows GDI ~APIにおいては,~groupに許容される書体~数は一つの族につき 4 個までである一方、[ DirectWrite ~API, Core Text ~API, その他の~platform上の~API ]では,種々の[ ~weight, 字幅, 斜傾度 ]を伴う~font族が~supportされる (詳細は、 `§ ~platform~font~propから~CSS~propへの対応付け@#platform-props-to-css$ を見よ)。 ◎ Note: The precise way a set of fonts are grouped into font families varies depending upon the platform font management APIs. For example, the Windows GDI API only allows four faces to be grouped into a family, while the DirectWrite API, Core Text API, and other platforms support font families with a variety of weights, widths, and slopes (see Appendix A: Mapping platform font properties to CSS properties for more details).
~font族~名がどう照合されるかについての情報は、 `§ 地域-化された名前の照合-法$ を見よ。 ◎ See § 5.1 Localized name matching below for information on how font-family names are matched.
2.1.5. 汎用~font族
汎用~font族( `generic-family$t )は, (~CSSにより定義される)標準な名前を持つ~font族であるが、 これらの名前は,[ ~system上に~install済みな既存の~font族 ]用の別名である。 しかしながら,単独の汎用~font族は、[ 文字の~Unicode範囲, 包含している要素の`内容~言語$, 利用者-選好, ~system設定群, 等々 ]に基づいて,複数の活字書体から組成された書体になってもヨイ。 異なる汎用~font族が同じ使用~fontに対応付けられてもヨイ。 ◎ A generic font family is a font family which has a standard name (as defined by CSS), but which is an alias for an existing installed font family present on the system. However, a single generic font family may be a composite face combining different typefaces based on such things as the Unicode range of the character, the content language of the containing element, user preferences, system settings, etc. Different generic font families may map to the same used font.
注記: 通例的に~platformに特有な名前を与える,任意な `family-name$t と違って、 汎用~font族は,多くの~platform上で広く実装されるものと意図されている。 それらは、 ~platformに応じて異なる~fontに対応付けられるものと予期される。 作者は、 これらの汎用~族~名を指定してもヨイ — 多くの~platform上の特定0の~designに~textが従うよう欲していて, それらの~platformで どの特定の~fontが選ばれるか気にしない場合には。 ◎ Note: Generic font families are intended to be widely implemented on many platforms, unlike arbitrary <family-name>s which are usually platform-specific names. They are expected to map to different fonts on different platforms. Authors may specify these generic family names if they desire their text to follow a particular design on many platforms, and are not particular about which specific font is chosen on those platforms.
~UAは、 汎用~font族~用の既定の候補として,[ 下層~技術が許容する制限の中でアリな限り,各~族の特性を表出する ]ような適理なものを いくつか供するベキである。 ~UAには、[ 汎用~font族~用の代替候補を選定すること ]を利用者に許容することが奨励される。 ◎ User agents should provide reasonable default choices for the generic font families, that express the characteristics of each family as well as possible, within the limits allowed by the underlying technology. User agents are encouraged to allow users to select alternative faces for the generic font families.
- `serif@v
- ~serif~fontは、 終筆( `finishing stroke^en )において[ 末広がりな末端/ 先細りな末端/ 実際に~serif化された末端仕上げ( `slab^en ~serifも含む) ]を有する~glyphを表現する。 【 `serif^en — 描線の先端における小さな飾り。】 ~serif~fontは、 概して,均衡字幅にされている。 それらは、 `sans-serif$v 汎用~font族の~fontより, 描線の太さの変動幅が大きく表示されることが多い。 ◎ Serif fonts represent glyphs that have finishing strokes, flared or tapering ends, or have actual serifed endings (including slab serifs). Serif fonts are typically proportionately-spaced. They often display a greater variation between thick and thin strokes than fonts from the sans-serif generic font family.
- 注記: [ `serif$v, `sans-serif$v ]【という名前が持つ意味】が適用される用字系は、 一握りに限られる。 ~CSSにおける汎用~font族としてのそれらの利用は、 歴史的であり, 早期の~Web開発における~Latin中心な資質を反映する。 もっと良いかつ より広く適用-可能な名前は、 例えば "`modulated^v" や "`monoline^v" になったであろう。 しかしながら、 ~Web互換性の理由から,これらの名前は変更し得ない。 ◎ Note: serif and sans-serif only apply to a small handful of writing scripts. Their use as generic font families in CSS is historical, and reflects the Latin-centric nature of early Web development. Better and more widely applicable names would have been, for example, "modulated" and "monoline". However, for reasons of Web compatibility, these names cannot be changed.
- ~CSSにおける用語 “~serif” は、 どの用字系の~fontにも適用されるものとして,利用される。 特定0の用字系においては、 他の名前 — `Mincho^F (~Japanese), `Sung^F, `Song^F (~Chinese), `Batang^F (~Korean) など — の方が馴染まれているかもしれないが。 ~Arabic用には、 `Naskh^F ~styleが `serif^v に対応することになる。 ◎ CSS uses the term "serif" to apply to a font for any script, although other names might be more familiar for particular scripts, such as Mincho (Japanese), Sung or Song (Chinese), Batang (Korean). For Arabic, the Naskh style would correspond to serif.
-
`serif$v は、 常に, 1 個~以上の合致した書体-に対応付けるモノトスル。 ◎ serif must always map to at least one matched font face.
注記: そのような書体-が受持つ文字~~範囲については、 何も保証されない。 したがって, `serif^v は、 すべての内容に利用されるように対応付けられるとは限らない。 ◎ Note: No guarantee is placed on the character coverage of that font face. Therefore, the font serif is mapped to may not end up being used for all content.
- `sans-serif@v
- ~CSS用語としての,~sans-serif【 “~serifの~~無い” 】~fontの~glyphは、 一般に,縦横の画線の太さが概ね一様で, 質素な描線の末端仕上げを備える ([ 末広がり, 画線を横切る細い線【 `cross stroke^en — “t” の横線など】, その他の装飾様式 ]を伴わないような)。 ~sans-serif~fontは、 概して,均衡字幅にされている。 それらは、 `serif$v 族の~fontよりも,描線の太さの変動幅は少ないことが多い。 ~CSSにおける用語 “~sans-serif” は、 どの用字系の~fontにも適用されるものとして,利用される。 特定0の用字系においては、 他の名前 — `Gothic^F (~Japanese), `Hei^F (~Chinese), `Gulim^F (~Korean) など — の方が馴染まれているかもしれないが。 ◎ Glyphs in sans-serif fonts, as the term is used in CSS, are generally low contrast (vertical and horizontal stems have the close to the same thickness) and have stroke endings that are plain (without any flaring, cross stroke, or other ornamentation). Sans-serif fonts are typically proportionately-spaced. They often have little variation between thick and thin strokes, compared to fonts from the serif family. CSS uses the term "sans-serif" to apply to a font for any script, although other names might be more familiar for particular scripts, such as Gothic (Japanese), Hei (Chinese), or Gulim (Korean).
-
`sans-serif$v は、 常に, 1 個~以上の合致した書体-に対応付けるモノトスル。 ◎ sans-serif must always map to at least one matched font face.
注記: そのような書体-が受持つ文字~~範囲については、 何も保証されない。 したがって, `sans-serif^v は、 すべての内容に利用されるように対応付けられるとは限らない。 ◎ Note: No guarantee is placed on the character coverage of that font face. Therefore, the font sans-serif is mapped to may not end up being used for all content.
- `cursive@v
- `cursive^en(~~筆記的)~fontの~glyphは、 一般に,ある用字系~styleを利用する — その結果は、 印刷物よりも,~penや絵筆で手書きされた様な見かけになる。 ~CSSにおける語 “`cursive^en” は、 どの用字系の~fontにも適用されるものとして,利用される。 ~font名には、 他の名前 — `Chancery^F, `Brush^F, `Swing^F, `Script^F など — も利用されるが。 ◎ Glyphs in cursive fonts generally use a script style, and the result looks more like handwritten pen or brush writing than printed letterwork. CSS uses the term "cursive" to apply to a font for any script, although other names such as Chancery, Brush, Swing and Script are also used in font names.
- `fantasy@v
- ~fantasy~fontは、 首に,文字の[ 装飾的/表情豊か ]な表現を包含する~fontである。 [ `Pi^F, `Picture^F ]など,実際の文字を表現しない~fontは、 これらには含まれない。 ◎ Fantasy fonts are primarily decorative or expressive fonts that contain decorative or expressive representations of characters. These do not include Pi or Picture fonts which do not represent actual characters.
- `monospace@v
- 所与の~fontが~monospace(等幅)とされるための判定基準は、[ すべての~glyphが同じ字幅に固定される ]ことの他にない。 これは、 ~computer~codeの見本を描画するために利用されることが多い。 ◎ The sole criterion of a monospace font is that all glyphs have the same fixed width. This is often used to render samples of computer code.
-
`monospace$v は、 常に, 1 個~以上の合致した書体-に対応付けるモノトスル。 ◎ monospace must always map to at least one matched font face.
注記: そのような書体-が受持つ文字~~範囲については、 何も保証されない。 したがって, `monospace^v は、 すべての内容に利用されるように対応付けられるとは限らない。 ◎ Note: No guarantee is placed on the character coverage of that font face. Therefore, the font monospace is mapped to may not end up being used for all content.
- 【! prop: font-weight 】
- `system-ui@v
- この汎用~font族は、[ ~UAが稼働している~platform上の既定の~UI~font ]で~textを描画させる (すべての `§ 汎用~font族@#generic-font-families$と同じく、 ~UI~fontは,組成-~fontの場合もある)。 複数の~platformを~supportする~UAは、 ~platformごとに異なる~fontを利用するベキである。 `system-ui$v の目的は、[ ~OSに~nativeな見かけ&感触を統合する ]ことを~web内容に許容することにある。 ◎ This generic font family lets text render with the default user interface font (which, as with all § 2.1.5 Generic font families may be a composite font) on the platform on which the UA is running. A cross-platform UA should use different fonts on its different supported platforms. The purpose of system-ui is to allow web content to integrate with the look and feel of the native OS.
- 利用される精確な~fontは、 それが受持つ~Unicode~~範囲や内容~言語などの要因に依存することになる。 ◎ The precise font used will depend on factors such as Unicode coverage and the content language.
-
他の汎用~font族と同じく, `system-ui$v を代用することになる特定の`~install済み~font$は、 ~styleの`算出d値$には影響しない。 ◎ As with other generic font families, the substitution of specific installed fonts for system-ui does not affect the computed style.
<div id="system-text" style="font-family: system-ui"></div> ... window.getComputedStyle(document.getElementById("system-text")).getPropertyValue("font-family");
上の~scriptは、[ `system-ui$v が,どう — ~system~UI~fontたちが成す~collectionを含むように — 展開されたか ]についての知識を得るべきでない。 特に,上の~scriptに返される結果は、 どの~platform上でも `system-ui^l なるべきである。 ◎ The script above should not have any knowledge of how system-ui is expanded to include a collection of system user interface fonts. In particular, the above script should yield a result of "system-ui" on every platform.
- `math@v
- この~font族は、 数式~用途に意図されている。 ◎ This font family is intended for use with mathematical expressions.
- そのような~fontは、 方程式~layoutの階層的な処理nを~~補助する,追加的な~dataを含むこともある (例えば, ~OpenType MATH ~table)。 特に、 数学的な方程式を組むときに有用になる[ ~style上の/【字幅が】伸縮された ]~glyph異体字を包含することもある。 ◎ Such fonts may include additional data (for example, the OpenType MATH table) to help with the hierarchical process of equation layout. In particular, they may contain stylistic and stretching glyph variants useful in setting mathematical equations.
- `generic(fangsong)@v
- この~font族は、 ~Chineseの `Fang Song^F (仿宋)活字書体~用に利用される。 `Fang Song^F は、 `Song^F ( `serif$v )と `Kai^F ( `generic(kai)$v )の合いの~~子の様な形である。 概して、 `Song^F ~styleよりも, 横線は~~傾けられ, 線端の~flourishは小さく, 描線の太さの変動幅は少ない。 `Fang Song^F は、 中国政府の公式的な文書に利用されることが多い。 ◎ This font family is used for Fang Song (仿宋) typefaces in Chinese. Fang Song is a relaxed, intermediate form between Song (serif) and Kai (generic(kai)). Typically, the horizontal lines are tilted, the endpoint flourishes are smaller, and there is less variation in stroke width, compared to a Song style. Fang Song is often used for official Chinese Government documents.
- 注記: `generic(fangsong)$v が対応付けられる~localに~install済み~fontは無いかもしれないが、 在るならば,その~fontは `Fang Song^F ~styleを伴うことになる。 ◎ Note: generic(fangsong) might not map to any locally installed font, but if it does, that font will be in Fang Song style.
- `generic(kai)@v
- この~font族は、[ 簡体字/繁体字 ]~Chineseにおいて利用され, ~Chinese~text用の書道的な~styleを供する主要な活字書体である。 それは、 特徴的な手書き特能を示す。 `Kai^F 【楷書】は、 公式的な文書や教本において共通的に利用される。 台湾におけるほとんどの公式的な文書は、 ~~本文において `Kai^F を利用する 。 `Kai^F は、 他の活字書体 — 他の内容と違える必要がある~text(例: 表題, 参照文献, 引用文, 会話)に利用されるそれ — と組合されることもある。 ◎ This font family is used in Simplified & Traditional Chinese. A major typeface, which provides calligraphic styles for Chinese text. It shows notable handwriting features. Kai is commonly used in official documents and textbooks. Most official documents in Taiwan use Kai in full text. Kai can also be combined with other typefaces to be used in text that needs to be differentiated from the rest of the content, for example, headlines, references, quotations, and dialogs.
- 注記: `generic(kai)$v が対応付けられる~localに~install済み~fontは無いかもしれないが、 在るならば,その~fontは `Kai^F ~styleを伴うことになる。 ◎ Note: generic(kai) might not map to any locally installed font, but if it does, that font will be in Kai style.
- `generic(nastaliq)@v
- この~font族は、 ~Urduや~Kashmiriを書くときの標準な仕方であり, ~Persianその他の言語~text用にも — とりわけ,詩集などの文芸において — 選好されることが多い~styleである。 ~~主要な特能として,[ 普通字たちが連結されたときの,斜傾している基底線 ]や[ 基底~普通字と発音区別符~等を組み合わせたときの,複階的な形状付けと位置決め ]が挙げられる。 また、 多くの~glyphや合字~用にも独特な形状がある。 ~Urduや~Kashmiriなどの言語~用には、 それは, `Naskh^F ~styleへ~fall-backしないことが重要である。 ◎ This font family is the standard way of writing Urdu and Kashmiri, and is also often a preferred style for Persian and other language text, especially in literary genres such as poetry. Key features include a sloping baseline for joined letters, and overall complex shaping and positioning for base letters and diacritics alike. There are also distinctive shapes for many glyphs and ligatures. It is important not to fall back to a naskh style for languages such as Urdu and Kashmiri.
- 注記: `generic(nastaliq)$v が対応付けられる~localに~install済み~fontは無いかもしれないが、 在るならば,その~fontは `Nastaliq^F ~styleを伴うことになる。 ◎ Note: generic(nastaliq) might not map to any locally installed font, but if it does, that font will be in Nastaliq style.
- `ui-serif@v
- この~font族は、 ~systemの~UIを成す~serif異体字~用に利用される。 `ui-serif$v の目的は、[ ~OSに~nativeな見かけ&感触を統合する ]ことを~web内容に許容することにある。 ◎ This font family is used for the serif variant of the system’s user interface. The purpose of ui-serif is to allow web content to integrate with the look and feel of the native OS.
- 注記: `ui-serif$v は、 適切な~system~fontが無い~platform上では, どの~fontにも対応付けられないものと予期される。 ◎ Note: ui-serif is not expected to map to any font on platforms without an appropriate system font.
- `ui-sans-serif@v
- この~font族は、 ~system~UIを成す~sans-serif異体字~用に利用される。 `ui-sans-serif$v の目的は、[ ~OSに~nativeな見かけ&感触を統合する ]ことを~web内容に許容することにある。 ◎ This font family is used for the sans-serif variant of the system’s user interface. The purpose of ui-sans-serif is to allow web content to integrate with the look and feel of the native OS.
- 注記: `ui-sans-serif$v は、 適切な~system~fontが無い~platform上では, どの~fontにも対応付けられないものと予期される。 ◎ Note: ui-sans-serif is not expected to map to any font on platforms without an appropriate system font.
- `ui-monospace@v
- この~font族は、 ~systemの~UIを成す `monospaced^en な【等幅化された】異体字~用に利用される。 `ui-monospace$v の目的は、[ ~OSに~nativeな見かけ&感触を統合する ]ことを~web内容に許容することにある。 ◎ This font family is used for the monospaced variant of the system’s user interface. The purpose of ui-monospace is to allow web content to integrate with the look and feel of the native OS.
- 注記: `ui-monospace$v は、 適切な~system~fontが無い~platform上では, どの~fontにも対応付けられないものと予期される。 ◎ Note: ui-monospace is not expected to map to any font on platforms without an appropriate system font.
- `ui-rounded@v
- この~font族は、 ~systemの~UIを成す `rounded^en 【描線の先端が丸められた】異体字~用に利用される。 `ui-rounded$v の目的は、[ ~OSに~nativeな見かけ&感触を統合する ]ことを~web内容に許容することにある。 ◎ This font family is used for the rounded variant of the system’s user interface. The purpose of ui-rounded is to allow web content to integrate with the look and feel of the native OS.
- 注記: `ui-rounded$v は、 適切な~system~fontが無い~platform上では, どの~fontにも対応付けられないものと予期される。 ◎ Note: ui-rounded is not expected to map to any font on platforms without an appropriate system font.
2.2. ~font~weight: `font-weight^p ~prop
◎名 `font-weight@p ◎値 `font-weight-absolute$t | `bolder$v | `lighter$v ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 実数(下を見よ) ◎順 文法に従う ◎ア 算出d値の型による ◎表終`font-weight$p ~propは、 ~font内の~glyphたちの~weight — すなわち,それらの[ ~~黒っぽさ/描線の太さ ] — を指定する。 ◎ The font-weight property specifies the weight of glyphs in the font, their degree of blackness, or stroke thickness.
この~propは、 次に挙げる値を受容する: ◎ This property accepts values of the following:
`font-weight-absolute@t = `normal$v1 | `bold$v | `number[1,1000]$t
各種~値の意味は: ◎ Values have the following meanings:
- `number[1,1000]$t
-
各数が指示する~weightは、 大きいものほど,より小さいもの以上の濃さを表す。 妥当な値は 1 以上, 1000 未満に限られ、 他の値は無効になる。 数量-値は、 概して,共通的に利用される~weight名に対応する: ◎ Each number indicates a weight that is at least as dark as its predecessor. Only values greater than or equal to 1, and less than or equal to 1000, are valid, and all other values are invalid. Numeric values typically correspond to the commonly used weight names below.
- `100^v — Thin 【最も[細い/薄い/軽い]】
- `200^v — Extra Light (Ultra Light)
- `300^v — Light
- `400^v — Normal 【通常】
- `500^v — Medium
- `600^v — Semi Bold (Demi Bold)
- `700^v — Bold
- `800^v — Extra Bold (Ultra Bold)
- `900^v — Black (Heavy) 【最も[太い/濃い/重い]】
- 注記: ~fontは,~weight名への自前の対応付けを内部的に供することもあるが、 そのような対応付けは,~CSSにおいては無視rされる。 ◎ Note: A font might internally provide its own weight name mappings, but those mappings within the font are disregarded in CSS.
- `normal@v1
- `400^v と同じ。 ◎ Same as 400.
- `bold@v
- `700^v と同じ。 ◎ Same as 700.
- `bolder@v
- `継承d値$より~boldな~weightを指定する。 `§ 相対~weight@#relative-weights$ を見よ。 ◎ Specifies a bolder weight than the inherited value. See § 2.2.1 Relative Weights.
- `lighter@v
- `継承d値$より~lightな~weightを指定する。 `§ 相対~weight@#relative-weights$ を見よ。 ◎ Specifies a lighter weight than the inherited value. See § 2.2.1 Relative Weights.
9 段でない`等級^emを利用する~font形式は、 その等級を[ 400 が概ね[ `Regular^F, `Book^F, `Roman^F ]に~labelされる書体に対応し, 700 が概ね[ `Bold^F ]に~labelされる書体に合致する ]ように,~CSSの等級へ対応付けるベキである。 あるいは、 ~style名から,前述の等級に概ね対応する~weightを推定してもヨイ。 等級は相対的であり、 より大きな~weight値を伴う書体は,より~lightに現れないモノトスル。 ~weightの推定-時に,~style名が利用される場合、[ ~localeに渡る,~style名の多様性 ]の取扱いを~careするベキである。 ◎ Font formats that use a scale other than a nine-step scale should map their scale onto the CSS scale so that 400 roughly corresponds with a face that would be labeled as Regular, Book, Roman and 700 roughly matches a face that would be labeled as Bold. Alternately, weights may be inferred from style names that correspond roughly with the scale above. The scale is relative, so a face with a larger weight value must never appear lighter. If style names are used to infer weights, care should be taken to handle variations in style names across locales.
2.2.1. 相対~weight
`指定d値$[ `bolder$v / `lighter$v ]は、 親~要素の~weightに相対的な~weightを指示する。 ~weightの`算出d値$は、 下の表t【!chart】を利用して, `font-weight$p の`継承d値$に基づいて計算される: ◎ Specified values of bolder and lighter indicate weights relative to the weight of the parent element. The computed weight is calculated based on the inherited font-weight value using the chart below.
`継承d値$ | `bolder^v | `lighter^v |
---|---|---|
100 未満 | 400 | 変化しない |
100 以上, 350 未満 | 400 | 100 |
350 以上, 550 未満 | 700 | 100 |
550 以上, 750 未満 | 900 | 400 |
750 以上, 900 未満 | 900 | 700 |
900 以上, | 変化しない | 700 |
注記: 上の表tは、[ ~normal, ~boldに加えて, ~thin, ~heavy書体も包含している~font族 ]が与えられている下での[ 相対的に次に[ ~bold/~light ]な書体 ]の選定-法に等価である。 作者は、 要素に利用される正確な~weight値について,より精緻な制御を欲するなら、 相対~weightの代わりに,数量的な値を利用できる。 ◎ Note: The table above is equivalent to selecting the next relative bolder or lighter face, given a font family containing normal and bold faces along with a thin and a heavy face. Authors who desire finer control over the exact weight values used for a given element can use numerical values instead of relative weights.
2.2.2. 欠落~weight
特定0の~font族~用に可用な~weightが限られた少数しかないことは、 ごく普通にあり得る。 存在しない書体に対する~weightが指定されたときは、 それに近い~weightによる書体が利用される。 一般に、 ~weightが[ ~boldなものは,より重い~weightの書体/ ~lightなものは,より軽い~weightの書体 ]に対応付けられる (精確な定義は、 `§ ~font照合~algo$ を見よ)。 ◎ Quite often there are only a few weights available for a particular font family. When a weight is specified for which no face exists, a face with a nearby weight is used. In general, bold weights map to faces with heavier weights and light weights map to faces with lighter weights. (See the § 5 Font Matching Algorithm for a precise definition.)
次の例に、 各~weightにどの書体が利用されるかを図解する。 灰色なものは、 欲される~weight用の書体が存在しないため, それに近い~weightによる書体が利用されることを指示する: ◎ The examples here illustrate which face is used for different weights. Grey indicates that a face for the desired weight does not exist, so a face with a nearby weight is used.
ほとんどの~UAは、 ~fontは特定0の~weightを持つものとして,~model化する。 それは、 `上に述べた 9 段の等級@#valdef-font-weight-number-1-1000$のうちいずれかに対応することが多い。 このことは,ほとんどの~fontに対し成立するが、 中には,ある範囲の~weightを~supportするために環境設定-可能な~fontもある。 この状況においては、 ~UAは,[ 要請された~weightにアリな限り近い~weight ]を伴う書体を利用する (精確な~algoは、 `§ ~font照合~algo$ を見よ)。 特に,[ ある範囲の~weightを~supportする~font ]を利用している~UAは、[ 範囲~内の個々の~weight用の~fontが在った ]かのように挙動するベキである。 異体を利用する[ ~TrueType/~OpenType ]~font用には、 `wght^tag 異体が様々な~weightを実装するときに利用される。 端数の~weightも妥当である。 ◎ Most user agents model a font as having a particular weight which often corresponds to one of the numbers in the nine-step scale described above. While this is true of most fonts, some fonts might be configurable so as to support a range of weights. In this situation, the user agent uses a face with a weight as close as possible to the weight requested (see § 5 Font Matching Algorithm for the precise algorithm). In particular, a user agent using a font which supports a range of weights should behave the same as if a font is present at each individual weight in the range. For TrueType / OpenType fonts that use variations, the wght variation is used to implement varying weights. Fractional weights are valid.
~typographerたちからは あまり好まれていない実施だが、 ~UAは,[ 実際の~bold体fを欠く族 ]用に~bold体fを合成することが多い。 ~font照合の目的においては、 これらの書体は,それらが当の族の中に存在しているかのように扱うモノトスル。 作者は、 `font-synthesis$p ~propを利用して,この挙動を明示的に避けることもできる。 ◎ Although the practice is not well-loved by typographers, bold faces are often synthesized by user agents for families that lack actual bold faces. For the purposes of font matching, these faces must be treated as if they exist within the family. Authors can explicitly avoid this behavior by using the font-synthesis property.
2.3. ~fontの字幅: `font-width^p ~prop
◎名 `font-width@p ◎値 `normal^v | `percentage [0,∞]$t | `ultra-condensed$v | `extra-condensed$v | `condensed$v | `semi-condensed$v | `semi-expanded$v | `expanded$v | `extra-expanded$v | `ultra-expanded$v ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 解決されない ◎算 百分率 — 下を見よ ◎順 文法に従う ◎ア 算出d値の型による ◎表終`font-width$p ~propは、 ~font族から[ ~normal / ~condensed / ~expanded ]体fを選定する。 値には、 百分率, または 次に定義されるように百分率に対応付けられる各種~keyword を指定できる: ◎ The font-width property selects a normal, condensed, or expanded face from a font family. Values are specified either as percentages or as keywords which map to a percentage as defined in the following table:
絶対~keyword値 ◎ Absolute keyword value | 数量-値 ◎ Numeric value |
---|---|
`ultra-condensed@v | 50% |
`extra-condensed@v | 62.5% |
`condensed@v | 75% |
`semi-condensed@v | 87.5% |
`normal@v1 | 100% |
`semi-expanded@v | 112.5% |
`expanded@v | 125% |
`extra-expanded@v | 150% |
`ultra-expanded@v | 200% |
`percentage [0,∞]$t 値は、 ~glyphの字幅の割合分を表現する。 `100%^v は(~font~designerにより定義された)“通常の( `normal^v )” ~glyph字幅を表現する。 0% 未満の値は`無効$になる。 ◎ <percentage [0,∞]> values represent the fractional width of the glyphs, with 100% representing “normal” glyph widths (as defined by the font designer). Values less than 0% are invalid.
所与の字幅~用の書体が存在しない下では、[ 100% 未満の値は より幅狭な書体 / 他の値は より幅広な書体 ]に対応付けられる(存在するならば)。 逆に言えば、[ 100% 以上の値は より幅広な書体 / 他の値は より幅狭な書体 ]に対応付けられる。 一部の~fontは、 ある範囲の字幅~値を~supportする — 要請された字幅~値が当の~fontには可用でない場合、 同じ対応付け規則を利用して, ~supportする値のうち最も近いものが利用される (精確な~algoは、 `§ ~font照合~algo$ を見よ)。 異体を~supportする[ ~TrueType/~OpenType ]~font用には、 様々な字幅を実装するときに `wdth^tag 異体が利用される。 ◎ When a face does not exist for a given width, values less than 100% map to a narrower face if one exists, otherwise a wider face. Conversely, values greater than or equal to 100% map to a wider face if one exists, otherwise a narrower face. Some fonts might support a range of width values; if the requested width value is not available in the font, the closest supported value is used, using the same mapping rules (see the § 5 Font Matching Algorithm for the precise algorithm). For TrueType / OpenType fonts that support variations, the wdth variation is used to implement varying widths.
下の図に、[ 離散的な,様々な字幅 ]を包含している~font族に対し, 9 種の `font-width$p ~prop設定のそれぞれが~font照合に与える影響を示す — 灰色なものは、 字幅に対応する書体が存在しないため,異なる字幅で代用されることを指示する: ◎ The figure below shows how nine font-width property settings affect font matching for a font family containing a variety of discrete widths. Grey indicates a width for which no face exists and a different width is substituted:
`getComputedStyle()$m は、 `font-width$p の値を常に `percentage$t として直列化する — 作者が当の値を どう指定したかに関わらず,あるいは 当の値に対応付けられる~keywordがあったとしても。 ◎ getComputedStyle() always serializes its value as a <percentage>, regardless of how the value was specified by the author, or whether or not a keyword happens to map to the value.
2.3.1. ~font字幅~用の旧来の別名n: `font-stretch^p
歴史的な理由により、 `font-width$p の`旧来の別名n$として `font-stretch@p ~propが存在し, `font-width$p と一致する仕方で機能する。 ◎ For historical reasons, a font-stretch property exists which is a legacy name alias and functions in the identical way to the font-width.
`h1^e 要素に旧来の `font-stretch$p を利用する例: ◎ For example, here the legacy font-stretch is used on level one headings.
h1 {font-stretch: condensed; }
`h1^e 要素の `font-width$p の指定d値は、 `condensed^v になるよう設定される。 ◎ The specified value of the font-width on those headings becomes set to condensed'.
`h1^e 要素に `font-width$p を利用する例: ◎ For example, here the font-width is used on level one headings.
h1 {font-width: condensed; }
`h1^e 要素の `font-stretch$p の指定d値は、 `condensed^v になるよう設定される。 ◎ The specified value of the font-stretch on those headings becomes set to condensed.
~UAは、[[ ~condensed / ~expanded ]書体を欠いていて,字幅における異体~軸を有さない~font族 ]用には,そのような書体を合成しないモノトスル。 特に、 ~UAは,そのような書体を幾何的に伸縮しないモノトスル。 ◎ User agents must not synthesize condensed or expanded faces for font families which lack such faces and which do not have a width variation axis. In particular, user agents must not geometrically stretch such faces.
2.4. ~font~style: `font-style^p ~prop
◎名 `font-style@p ◎値 `normal$v1 | `italic$v | `oblique$v `angle [-90deg,90deg]$t? ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された~keyword, および `angle^t が指定されていれば `deg^u 単位によるそれ ◎ the keyword specified, plus angle in degrees if specified ◎順 文法に従う ◎ア 算出d値の型による — ただし, `normal^v は `oblique 0deg^v であるかのように~animateする ◎ by computed value type;normal animates as oblique 0deg ◎表終`font-style$p ~propは,[ ~italic体fや~oblique体f ]の選定を可能にする。 一般に、 ~italic形は生来的に筆記的である一方, ~oblique体fは 概して~regular体fの斜傾d~versionである。 ◎ The font-style property allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.
人工的に斜傾dにされた[ `Palatino^F `a^c と `Baskerville^F `N^c ](灰色で示される)と, 実際の~italic~versionとの,描画の比較: ◎ Compare the artificially sloped renderings of Palatino "a" and Baskerville "N" in grey with the actual italic versions:
各種~値の意味は: ◎ Values have the following meanings:
- `normal@v1
- [ ~italic体fでも, ~oblique体fでもない, ~normal体f(“通常~体f”)に分類される書体 ]と照合される。 これは、 ~oblique値 `0^v を表現する。 ◎ Matches against a face that is classified as a normal face, one that is neither italic or obliqued. This represents an oblique value of "0".
- `italic@v
- ~italic体fとして~labelされている~fontと照合され,存在しないときは~oblique体fと照合される。 ◎ Matches against a font that is labeled as an italic face, or an oblique face if one does not exist.
- `oblique@v `angle [-90deg,90deg]$t?
- ~oblique体fとの照合を制御する。 正な `angle^t は時計回りな傾きを表現する。 負な `angle^t は反時計回りな傾きを表現する。 `angle$t が与えられていない場合、 `14deg^v を表現する。 (~fontは,[ ~oblique用に自前の対応付けを内部的に供する ]かもしれないが、 そのような対応付けは無視rされることに注意。) 小数や負な値も受容されるが、 `-90deg^v 以上 `90deg^v 以下に入らない値は`無効$になる。 ~oblique体fは存在しない, かつ `font-synthesis-style$p の値は `auto^v の場合、 合成な~oblique体fが生成されることになる。 ◎ Controls matching against an oblique face. Positive angles represent a clockwise slant; negative angles represent a counter-clockwise slant. The lack of an <angle> represents 14deg. (Note that a font might internally provide its own mapping for "oblique", but the mapping within the font is disregarded.) Fractional and negative values are accepted; however, values less than -90deg or values greater than 90deg are invalid. If no oblique faces exist, and font-synthesis-style has the value auto, a synthetic oblique face will be generated.
~font族は、[ ~italic体f, ~oblique体f ]の片方または両方とも包含しないこともあれば, 斜度が互いに異なる様々な~oblique体fを包含することもある。 ~font照合~algoは、 利用する~fontとして,[ 要請された斜度と正負符号が一致する書体のうち, 要請された斜度に最も近いもの ]を選定することになる。 一般に、 要請された斜度が[ `11deg^v 以上ならば,より大きい斜度/ 他の場合は,より小さい斜度 ]が選好される ( `§ ~font照合~algo$ を見よ)。 異体を利用する[ ~TrueType/~OpenType ]~font用には、 `slnt^tag 異体が~oblique値を実装するために利用され, 値 1 をとる `ital^tag 異体が~italic値を実装するために利用される。 ◎ A font family might contain no italic or oblique faces, only an italic face and no oblique, only an oblique face and no italic, both an oblique and an italic, multiple oblique faces at various angles, or various combinations thereof. The font matching routine will select a font to use which is of the correct sign as the requested angle, and (if there are multiple such faces) closest to the requested angle. In general, for a requested angle greater or equal to 11deg, larger angles are preferred; otherwise, smaller angles are preferred. (See § 5 Font Matching Algorithm.) For TrueType / OpenType fonts that use variations, the slnt variation is used to implement oblique values, and the ital variation with a value of 1 is used to implement the italic values.
注記: ~OpenType `slnt^tag 軸は、 ~CSSとは逆に,正な角度が反時計回りに傾くよう定義されている。 ~CSS実装は、 異体を利用して~oblique体fを生産するときに,これを織り込むことになる。 ◎ Note: the OpenType slnt axis is defined with a positive angle meaning a counter-clockwise slant, the opposite direction to CSS. The CSS implementation will take this into account when using variations to produce oblique faces.
`縦組み$において[ 正な/負な ]~obliqueが斜傾する方向は、 どっちにするべきか? ~~他方の次元において(縦組み用に必要な)斜傾-を達成するにはどうする? ◎ What direction should positive and negative obliques skew in vertical writing mode? How do we achieve skews in the opposite dimension (needed for vertical writing)?
[ ~italic体f, ~oblique体f ]どちらも可用でない場合、 ~oblique体fは[ 非~oblique体fを用いた,人工的な~oblique化~演算を伴う描画 ]により合成してもヨイ。 これらの人工的な~oblique化された書体の利用は、 `font-synthesis$p ~propにより不能化できる。 ◎ If no italic or oblique face is available, oblique faces may be synthesized by rendering non-obliqued faces with an artificial obliquing operation. The use of these artificially obliqued faces can be disabled using the font-synthesis property.
注記: ~oblique体fは,~regular体fの~glyphを人工的に傾けて模造できるが、 これは真の~obliqueと等価ではない — 真の~obliqueは、 外見的な描線~太さを傾きにかかわらず適正に保全する。 合成な~versionに依拠するより,実際の~oblique~fontを利用する方が常に良い。 ◎ Note: While oblique faces can be simulated by artificially sloping the glyphs of the regular face, this is not equivalent to a true oblique, in which optical stroke thicknesses are properly preserved despite the slant. It is always better to use an actual oblique font rather than rely on a synthetic version.
~font照合の目的においては、 ~UAは, `italic$v を `oblique$v の同義語として扱ってもヨイ。 これらの値を別個に扱う~UAは、 `italic^v 用の合成を遂行しないモノトスル。 ◎ For the purposes of font matching, User agents may treat italic as a synonym for oblique. For user agents that treat these values distinctly, synthesis must not be performed for italic.
注記: 作者は、 ~Cyrillicの様な用字系においては,[ 合成-による~~近似が形状として~italic形と著しく異なり,相応でない場合もある ]ことを自覚するべきである。 合成な~versionに依拠するよりも,実際の~italic~fontを利用する方が常に良い。 ◎ Note: Authors should also be aware that synthesized approaches might not be suitable for scripts like Cyrillic, where italic forms are very different in shape. It is always better to use an actual italic font rather than rely on a synthetic version.
注記: 多くの用字系では、 ~normal体fで描画される~text内に筆記的な形を混在させる慣習がない。 [ ~Chinese/~Japanese/~Korean ]の~fontは、 ほとんど常に,~italic体fや~oblique体fを欠いている。 また,用字系の混在を~supportする~fontでは、 ~italic体fの中で~supportされる~glyphたちが成す集合から, ~Arabicなどの特定の用字系が省略されることがある。 ~UAは、 いくつかの~fontにまたがる合成を実装するときには, 各~書体の`文字~map$について何を前提とするか気を付けるべきである — 同じ族~内の~italic体fと `Roman^F 体fの`文字~map$は異なることもあるので。 ◎ Note: Many scripts lack the tradition of mixing a cursive form within text rendered with a normal face. Chinese, Japanese and Korean fonts almost always lack italic or oblique faces. Fonts that support a mixture of scripts will sometimes omit specific scripts, such as Arabic, from the set of glyphs supported in the italic face. User agents should be careful about making character map assumptions across faces when implementing synthesis across fonts, as italic faces in a family can have different character maps than Roman faces.
2.5. ~font~size: `font-size^p ~prop
◎名 `font-size@p ◎値 `absolute-size$t | `relative-size$t | `length-percentage [0,∞]$vt | `math$v1 ◎初 `medium$v ◎適 すべての要素/~text ◎継 される ◎百 親~要素の~font~sizeに相対的 ◎ refer to parent element’s font size ◎算 絶対~長さ ◎ an absolute length ◎順 文法に従う ◎ア 算出d値の型による ◎表終この~propは、 ~fontの~glyphの,欲される高さを指示する。 拡縮-可能な~font用には、 `font-size^p は,~fontの~EM単位に適用される拡縮率を与える。 拡縮-可能でない~font用には、 `font-size^p は,絶対~単位に変換された上で[ ~font内で宣言されている~font-size ]に対して照合される — 両者の値に同じ絶対的な座標~空間を利用する下で。 ◎ This property indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values.
注記: ~glyphが~EM~boxに どこまで近く収まるべきかについての要件は無い。 同じ `font-size$p で描画される下での,~~見かけの~sizeは、 個々の~fontごとに異なる。 加えて、 ~EM~boxから遠く外側へ描画される~glyphもあるかもしれない — そのように~overflowする~glyphは、 `包含塊$において`~ink~overflow$を誘引し得る。 ◎ Note: There is no requirement on how closely a glyph should fit its EM box. Individual fonts can have a different apparent visual size when rendered at the same font-size. Additionally, glyphs might render arbitrarily far outside their EM box; and if they overflow their containing block can induce ink overflow.
各種~値の意味は: ◎ Values have the following meanings:
- `absolute-size@t
- 各種 `absolute-size^t ~keywordは、[ ~UAにより算出され, 保たれる,~font~sizeたちが成す表t (`~size対応付け表t$を見よ) ]の中の,ある~entryを指す。 ◎ An <absolute-size> keyword refers to an entry in a table of font sizes computed and kept by the user agent. See § 2.5.1 Absolute Size Keyword Mapping Table.
-
アリな値は: ◎ Possible values are:
`absolute-size$t = `xx-small$v | `x-small$v | `small$v | `medium$v | `large$v | `x-large$v | `xx-large$v | `xxx-large$v
- `relative-size@t
- `relative-size$t による~keywordは、 親~要素の `font-size$p の`算出d値$に相対的に — および、 場合によっては,`~size対応付け表t$に基づいて — 解釈される。 ◎ A <relative-size> keyword is interpreted relative to the computed font-size of the parent element and possibly the table of font sizes.\
-
アリな値は: ◎ Possible values are:
`relative-size$t = `larger@v | `smaller@v
- 親~要素の~font~sizeが`~size対応付け表t$内のある~keywordに対応している場合、[ `larger^v / `smaller^v ]は,その対応付け表t内の[ 前/後 ]の~keywordに対応する~font~sizeに算出してもヨイ。 例えば,親~要素の `font-size$p が `medium$v の場合、 子~要素の `font-size$p に `larger^v が指定されたときは, `large$v が指定されたかのように算出するなど。 ◎ If the parent element has a keyword font size in the absolute size keyword mapping table, larger may compute the font size to the next entry in the table, and smaller may compute the font size to the previous entry in the table. For example, if the parent element has a font size of font-size:medium, specifying a value of larger may make the font size of the child element font-size:large.
- ~UAは、 前項の対応付け表tに従う代わりに, 単純な比率を利用して親~要素に相対的な~font~sizeを[ 増やして/減らして ]もヨイ。 特定の比率は指定されないが、 1.2 〜 1.5 あたりにするベキである。 この比率は、 要素ごとに変えてもヨイ。 ◎ Instead of using next and previous items in the previous keyword table, User agents may instead use a simple ratio to increase or decrease the font size relative to the parent element. The specific ratio is unspecified, but should be around 1.2–1.5. This ratio may vary across different elements.
- 注記: 弱視-利用者は、 読み易くなるよう,既定より高い比率を利用するよう~UAに要請することもある。 加えて,~UAは、 段落~textを検出したときは — ~title~textに反して — 異なる比率を利用してもヨイ。 ◎ Note: A sight-impaired user may request a user agent use a higher ratio than default, in order to aid readability. In addition, a user agent may choose to use different ratios when it detects paragraph text as opposed to title text.
- `length-percentage [0,∞]$t
- 長さ値は,(`~size対応付け表t$に依存しない)絶対~font~sizeを指定する。 負な長さは無効になる。 ◎ A length value specifies an absolute font size (independent of the user agent’s font table). Negative lengths are invalid.
- 百分率~値は、 親~要素の `font-size$p の`算出d値$に相対的な絶対~font~sizeを指定する。 負な百分率は無効になる。 ◎ A percentage value specifies an absolute font size relative to the parent element’s computed font-size. Negative percentages are invalid.
- 注記: [ 百分率~値, または`~fontに相対的な長さ$ ]の利用は、 ~stylesheetを,より堅牢で~cascade可能なものにする。 ◎ Note: Use of percentage values or font-relative lengths such as ems and rems leads to more robust and cascadable style sheets.
- `math@v1
- `font-size$p ~propの`算出d値$を決定するときには、 特別な`数学用の拡縮~規則@https://w3c.github.io/mathml-core/#the-math-script-level-property$を適用するモノトスル。 ◎ Special mathematical scaling rules must be applied when determining the computed value of the font-size property.
次の~stylesheetは、 ~font~sizeを指定する様々な仕方をデモる ◎ The following style sheet demonstrates various ways of specifying the font size.
p { font-size: 12pt; } blockquote { font-size: larger } em { font-size: 150% } em { font-size: 1.5em }
注記: この~propの`使用~値$は、 `font-size-adjust$p に因り,`算出d値$から相違し得る。 しかしながら,子~要素は `font-size$p の`算出d値$を継承し, `font-size-adjust$p は影響しない (さもなければ、 `font-size-adjust$p による効果は~~複雑になるであろう)。 ◎ Note: The used value of this property can differ from its computed value due to font-size-adjust. However, child elements inherit the computed font-size value, which is not affected by font-size-adjust (otherwise, the effect of font-size-adjust would compound).
注記: この~propの`実際の値$は、 ある種の~font~sizeが可用でないことに因り,`使用~値$から相違し得る。 ◎ The actual value of this property can differ from the used value due to the unavailability of certain font sizes.
~responsiveな~typography用には、 ~font-sizeを切詰めることもできる: ◎ font-size can be clamped, for responsive typography.
font-size: clamp(10px, ..., 36px);
2.5.1. 絶対~size~keywordの対応付け~table
次の表tに、 絶対~sizeの拡縮率を~HTML[ ~heading, 絶対~font-size 【廃用にされた~HTML `font^e 要素の `size^a 属性~値】 ]に対応付けるための,~UA向け指針を供する。 値 `medium$v は,基準~になる中央~値として利用される。 ~UAは、 異なる~fontや異なる型の表示~機器ごとに, これらの値をより精緻に~~調整してもヨイ。 ◎ The following table provides user agent guidelines for the absolute-size scaling factor and their mapping to HTML heading and absolute font-sizes. The medium value is used as the reference middle value. The user agent may fine-tune these values for different fonts or different types of display devices.
`xx-small@v | `x-small@v | `small@v | `medium@v | `large@v | `x-large@v | `xx-large@v | `xxx-large@v | |
---|---|---|---|---|---|---|---|---|
拡縮率 | 3/5 | 3/4 | 8/9 | 1 | 6/5 | 3/2 | 2/1 | 3/1 |
~HTML~heading | `h6^e | `h5^e | `h4^e | `h3^e | `h2^e | `h1^e | ||
~HTML `font$e ~size | `1^v | `2^v | `3^v | `4^v | `5^v | `6^v | `7^v |
注記: CSS1 においては, 隣の~sizeに~~相対的な拡縮率には 1.5 が示唆されていたが、 利用者~体験から,大き過ぎるものと判明した。 CSS2 においては、 ~computer~screen用に示唆される[ 隣の~sizeに~~相対的な拡縮率は 1.2 ]であったが、 依然として,小さな~sizeにおいて~~問題があった。 新たな拡縮率は、 可読性をより良くするため,各~sizeの合間ごとに変わり得る。 ◎ Note: In CSS1, the suggested scaling factor between adjacent indexes was 1.5, which user experience proved to be too large. In CSS2, the suggested scaling factor for computer screen between adjacent indexes was 1.2 which still created issues for the small sizes. The new scaling factor varies between each index to provide a better readability.
可読性を保全するため、 ~UAは,この指針を適用する下でも,[ ~EM単位あたり 9 機器~画素を下回るような~font~size ]を創出しないようにするベキである。 ◎ To preserve readability, an UA applying these guidelines should nevertheless avoid creating font sizes of less than 9 device pixels per EM unit.
2.6. 相対的~sizing: `font-size-adjust^p ~prop
◎名 `font-size-adjust@p ◎値 `none$v1 | `number [0,∞]$vt ◎初 `none$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 実数/~keyword `none^v ◎ a number or the keyword none ◎順 文法に従う ◎ア 算出d値の型による ◎表終所与のどの~font~sizeに対しても、[ ~~見かけの~size/~textの実質的な判読し易さ ]は,~fontごとに様々である。 ~Latinや~Cyrillicなど, 大文字と小文字を区別する `bicameral^en 用字系においては、 小文字の — 対応する大文字に相対的な — 高さが,判読し易さを決定する要因の一つになる。 この比率は、 一般に `~aspect値@ と呼ばれ,[ ~fontの`~x-高さ$を~font~sizeで除算した結果 ]として定義される。 ◎ For any given font size, the apparent size and effective legibility of text varies across fonts. For bicameral scripts such as Latin or Cyrillic that distinguish between upper and lowercase letters, the relative height of lowercase letters compared to their uppercase counterparts is a determining factor of legibility. This is commonly referred to as the aspect value and is equal to the x-height of a font divided by the font size.
注記: 発音区別符を利用する~text用には、 大き過ぎる~x-高さは,実際には判読し難くなる — 発音区別符が切詰められるので。 ◎ Note: For text which uses diacritics, too large an x-height will actually decrease legibility as the diacritics become cramped.
~font~fallbackが生じる状況では、[ ~fallback~fontが,欲された~font族と同じ`~aspect値$を共有しない ]かもしれないので,読み難くなることもある。 `font-size-adjust$p ~propは、 ~font~fallbackが生じたときでも,~textの可読性を保全する仕方を与える。 これは、 ~font-sizeを[ その`~x-高さ$が,利用される~fontに関わらず同じになる ]よう調整することにより行われる。 ◎ In situations where font fallback occurs, fallback fonts might not share the same aspect value as the desired font family and will thus be less readable. The font-size-adjust property is a way to preserve the readability of text when font fallback occurs. It does this by adjusting the font-size so that the x-height is the same regardless of the font used.
下に定義される~styleは, 欲される~font族として `Verdana^F を定義するが、 それが可用でない場合,[ `Futura^F または `Times^F ]が利用されることになる。 段落の一つには `font-size-adjust^p も指定されている: ◎ The style defined below defines Verdana as the desired font family, but if Verdana is not available Futura or Times will be used. One paragraph also has font-size-adjust specified.
p { font-family: Verdana, Futura, Times; } p.adj { font-size-adjust: 0.545; } <p>Lorem ipsum dolor sit amet, ...</p> <p class="adj">Lorem ipsum dolor sit amet, ...</p>
`Verdana^F の`~aspect値$ 0.545 は比較的~高い — すなわち,小文字は大文字に比して背が高い — ので、 小~sizeの~textは,より判読し易く現れる。 `Times^F の`~aspect値$ 0.447 は,それより低いので、 ~fallbackが生じた場合,小~sizeの~textは — `font-size-adjust^p も指定しない限り — `Verdana^F より判読し難くなる。 ◎ Verdana has a relatively high aspect value of 0.545, meaning lowercase letters are relatively tall compared to uppercase letters, so at small sizes text appears legible. Times has a lower aspect value of 0.447, and so if fallback occurs, the text will be less legible at small sizes than Verdana unless font-size-adjust is also specified.
これらの~fontによる~text描画を比較した様子を下に示す。 各~縦列の~textは、 左から順に[ `Verdana^F, `Futura^F, `Times^F ]により描画されている。 `font-size^p 値は,各段ごとに一定であるが、 下半分においては, `Verdana^F の`~x-高さ$が段~全体に渡って保全されるよう[ 実際の~font~sizeを調整する `font-size-adjust$p ~prop ]も 0.545 に設定されている。 最上段と最下段には、 `~x-高さ$の相違を示す赤線が引かれている。 下半分では、 どの列の小さな~textも,判読し易さが比較的 ~~保たれている点に注目。 ◎ How text rendered in each of these fonts compares is shown below, the columns show text rendered in Verdana, Futura and Times. The same font-size value is used across cells within each row and red lines are included to show the differences in x-height. In the upper half, each row is rendered in the same font-size value. The same is true for the lower half, but in this half the font-size-adjust property is also set to 0.545, so that the actual font size is adjusted to preserve the x-height of Verdana across each row. Note how small text remains relatively legible across each row in the lower half.
この~propは、 要素~用の`~aspect値$を指定することを作者に許容する。 それは、 代用されたかどうかを問わず, 第一~候補の~fontの`~x-高さ$を実質的に保全する。 ◎ This property allows authors to specify an aspect value for an element that will effectively preserve the x-height of the first choice font, whether it is substituted or not.\
各種~値の意味は: ◎ Values have the following meanings:
- `none@v1
- ~fontの`~x-高さ$は保全されない ◎ Do not preserve the font’s x-height.
- `number [0,∞]$t
-
`~aspect値$を指定する — それは、 調整-済み~font~sizeの計算~公式に利用される: ◎ Specifies the aspect value used in the calculation below to calculate the adjusted font size:
%c = ( %a ÷ %A ) × %s
ここで:
- %s = `font-size$p の値
- %a = `font-size-adjust$p ~propに指定された`~aspect値$
- %A = ~fontの実際の`~aspect値$
- %c = `font-size$p の調整-後の`使用~値$
- 負な値は無効になる。 ◎ Negative values are invalid.
- この値は,選定されたどの~fontにも適用されるが、 代表的な用法においては,[ ~font族~名~listの中の最初の~fontの`~aspect値$ ]に基づくベキである。 これが正確aに指定された下では、 上の公式の中の項 ( %a ÷ %A ) は,最初の~font用には 1 になり、 調整は実質的に生じない。 値が正確aに指定されていない場合、[ `font-size-adjust$p を~supportしない 古い~UA ]においては,[ 族~listの最初の~fontを利用して描画される~text ]の表示が異なってくる。 ◎ This value applies to any font that is selected but in typical usage it should be based on the aspect value of the first font in the font-family list. If this is specified accurately, the (a/a') term in the formula above is effectively 1 for the first font and no adjustment occurs. If the value is specified inaccurately, text rendered using the first font in the family list will display differently in older user agents that don’t support font-size-adjust.
`font-size-adjust$p の値は, `font-size$p の`使用~値$に影響するが、 `算出d値$には影響しない。 それは、 ~font計量に基づく相対~単位 — `ex$u や `ch$u など — の~sizeには影響するが, `em$u 単位の~sizeには影響しない。 `line-height$p に対する数量-値は, `font-size$p の`算出d値$を参照rするので、 `font-size-adjust$p は, `line-height$p の`使用~値$には影響しない。 ◎ The value of font-size-adjust affects the used value of font-size but does not affect the computed value. It affects the size of relative units that are based on font metrics such as ex and ch but does not affect the size of em units. Since numeric values of line-height refer to the computed size of font-size, font-size-adjust does not affect the used value of line-height.
注記: ~CSSにおいては、 作者は, `line-height$p を `font-size$p の倍数として指定することが多い。 `font-size-adjust$p ~propは, `font-size$p の`使用~値$に影響するので、 作者は,[ `font-size-adjust$p を利用するときは、 行l高さの設定も~careする ]べきである。 この状況では、 行l高さの設定を狭小にし過ぎると,行lどうしが重合するおそれがある。 ◎ Note: In CSS, authors often specify line-height as a multiple of the font-size. Since the font-size-adjust property affects the used value of font-size, authors should take care setting the line height when font-size-adjust is used. Setting the line height too tightly can result in overlapping lines of text in this situation.
作者は、[ 同じ内容を伴うが, `font-size-adjust$p ~propは異なる ] 2 つの区間を比較することにより, 所与の~font用の`~aspect値$を計算できる。 同じ `font-size^p が利用された下での, 2 つの区間は、 その~font用の `font-size-adjust$p 値が正確aであるとき,合致することになる。 ◎ Authors can calculate the aspect value for a given font by comparing spans with the same content but different font-size-adjust properties. If the same font-size is used, the spans will match when the font-size-adjust value is accurate for the given font.
~fontの`~aspect値$を決定するために,~borderを伴う 2 つの区間を利用する例。 両~区間( `span^e )とも `font-size$p は同じにされているが、 右側の `span^e には `font-size-adjust$p ~propも指定されている。 値 0.5 から始めて、 2 つの普通字を囲む~borderが揃うまで,`~aspect値$を調整する: ◎ Two spans with borders are used to determine the aspect value of a font. The font-size is the same for both spans but the font-size-adjust property is specified only for the right span. Starting with a value of 0.5, the aspect value can be adjusted until the borders around the two letters line up.
p { font-family: Futura; font-size: 500px; } span { border: solid 1px red; } .adjust { font-size-adjust: 0.5; } <p><span>b</span><span class="adjust">b</span></p>
図右の~boxは,図左のものより少しだけ大きいので、 この~fontの`~aspect値$は, 0.5 より幾分~小さい。 2 つの~boxが揃うまで値を調整すれば、 ~~正確な値が得られる。 ◎ The box on the right is a bit bigger than the one on the left, so the aspect value of this font is something less than 0.5. Adjust the value until the boxes align.
2.7. ~font略式: `font^p ~prop
◎名 `font@p ◎値 [[ `font-style$tp || `font-variant-css2$t || `font-weight$tp || `font-width-css3$t ]? `font-size$tp [ / `line-height$tp ]? `font-family$tp# ] | `system-family-name$t ◎初 個々の~propを見よ ◎適 すべての要素/~text ◎継 される ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎順 文法に従う ◎ア 個々の~propを見よ ◎表終この~propの構文は、 伝統的な~typographic上の略式~記法に基づいて, ~fontに関係する複数の~propを設定する。 歴史的な理由, および後方-互換性の理由から、 それは,`ほぼ^em略式~propである。 ◎ The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts. For historical and backwards-compatibility reasons, it is almost a shorthand property.
`font$p ~propは、 ~stylesheetの中の同じ場所で[ `font-style$p, `font-variant$p, `font-weight$p, `font-width$p, `font-size$p, `line-height$p, `font-family$p ]をまとめて設定するための,略式~propである — ただし: ◎ The font property is, except as described below, a shorthand property for setting font-style, font-variant, font-weight, font-width, font-size, line-height, font-family at the same place in the stylesheet.
-
`font-variant$p ~prop用の値は、 CSS 2.1 にて~supportされるものに限られる — `font-variant$p 用の値のうち[ `~level 3$, この~level 4 ]仕様にて追加されたものは、 `font$p 略式~propには利用できない: ◎ Values for the font-variant property can also be included but only those supported in CSS 2.1; none of the font-variant values added in CSS Fonts Levels 3 or 4 can be used in the font shorthand:
`font-variant-css2@t = `normal^v | `small-caps^v
-
`font-width$p ~prop用の値は、 `~level 3$ にて~supportされるものに限られる — この仕様にて追加された `font-width$p 用のどの値も, `font$p 略式~propには利用できない: ◎ Values for the font-width property can also be included but only those supported in CSS Fonts level 3, none of the font-width values added in this specification can be used in the font shorthand:
`font-width-css3@t = `normal^v | `ultra-condensed$v | `extra-condensed$v | `condensed$v | `semi-condensed$v | `semi-expanded$v | `expanded$v | `extra-expanded$v | `ultra-expanded$v
したがって、[ ~fontに関係する~prop, それらの `font$p ~propとの相互作用 ]は、 次に挙げるものに分類される: ◎ Therefore we have the following classification of font-related properties and their interaction with the font property:
- `明示的に設定される@ もの ◎ Set Explicitly
- 次に挙げる~propは、 `font$p ~propを利用して設定できる ⇒# `font-family$p, `font-size$p, `font-width$p (`~level 3$ にて~supportされる値に限る)†, `font-style$p, `font-variant-caps$p ( CSS 2 にて~supportされる値に限る), `font-weight$p, `line-height$p ◎ These properties may be set using the font property: • font-family • font-size • font-width (css3) • font-stretch (css3) • font-style • font-variant-caps (css2) • font-weight • line-height
- 【† 原文では、 `font-width^p の旧来の別名 `font-stretch$p も挙げられていて, “~level 3” に関する注釈は後者に添えられているが、 `font^p の構文から,その注釈は `font-width^p に適用されるものと解釈すべきであろう。 】
- `暗黙的に設定し直される@ もの ◎ Reset Implicitly
- 次に挙げる~propは、 設定できないが,各自の初期~値に設定し直される ⇒# `font-feature-settings$p, `font-kerning$p, `font-language-override$p, `font-optical-sizing$p, `font-size-adjust$p, `font-variant-alternates$p, `font-variant-caps$p (`~level 3$ 以降), `font-variant-east-asian$p, `font-variant-emoji$p, `font-variant-ligatures$p, `font-variant-numeric$p, `font-variant-position$p, `font-variation-settings$p ◎ These may not be set, but are reset to their initial values: • font-feature-settings • font-kerning • font-language-override • font-optical-sizing • font-size-adjust • font-variant-alternates • font-variant-caps (css3 and above) • font-variant-east-asian • font-variant-emoji • font-variant-ligatures • font-variant-numeric • font-variant-position • font-variation-settings
- `独立に~cascadeされる@ もの ◎ Cascaded Independently
- 次に挙げる~propは、 `font$p ~propにより[ 設定される/設定し直される ]ことはない ⇒# `font-palette$p, `font-synthesis-weight$p, `font-synthesis-style$p, `font-synthesis-small-caps$p ◎ There are neither set nor reset by the font property: • font-palette • font-synthesis-weight • font-synthesis-style • font-synthesis-small-caps
`font$p ~propの[ `明示的に設定される$/`暗黙的に設定し直される$ ]下位propは,いずれも、 まず,各自の初期~値の設定し直される。 ◎ All subproperties of the font property in the Set Explicitly and Reset Implicitly groups are first reset to their initial values.
次に,`明示的に設定される$もののうち `font$p 略式~内に明示的に値が与えられたものは,その値に設定される。 [ 許容される値/`初期~値$ ]の定義は、 個々の下位propの定義を見よ。 ◎ Then, those properties the Set Explicitly group that are given explicit values in the font shorthand are set to those values. For a definition of allowed and initial values, see the individual longhand property definitions.
p { font: 12pt/14pt 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 } p { font: condensed oblique 12pt "Helvetica Neue", serif; } p { font: condensed oblique 25deg 753 12pt "Helvetica Neue", serif; }
2 個目の規則における~font~size百分率~値( `80%^v )は、 親~要素の `font-size$p の`算出d値$を参照rする。 3 個目の規則における行l高さ百分率( `110%^v )は、 要素~自身の~font~sizeを参照rする。 ◎ In the second rule, the font size percentage value ("80%") refers to the computed font-size of the parent element. In the third rule, the line height percentage ("110%") refers to the font size of the element itself.
最初の 3 個の規則は[ `font-variant$p と `font-weight$p ]を明示的に指定しないので、 これらの~propは,それらの`初期~値$( `normal^v )を受取る。 ~font族~名 `"new century schoolbook"^v は~spaceを包含しているので、 引用符で括られていることに注意。 4 個目の規則は,[ `font-weight$p を `bold$v, `font-style$p を `italic$v ]に設定し, `font-variant$p を暗黙的に `normal^v に設定する ◎ The first three rules do not specify the font-variant and font-weight explicitly, so these properties receive their initial values (normal). Notice that the font family name "new century schoolbook", which contains spaces, is enclosed in quotes. The fourth rule sets the font-weight to bold, the font-style to italic, and implicitly sets font-variant to normal.
5 個目の規則は[ `font-variant$p ( `small-caps^v ), `font-size$p (親の~font~sizeの 120% ), `line-height$p (~font~sizeの 120% ), `font-family$p ( `fantasy$v ) ]を設定する。 従って,~keyword `normal^v は残りの 2 つの~prop[ `font-style$p, `font-weight$p ]に適用される。 ◎ The fifth rule sets the font-variant (small-caps), the font-size (120% of the parent’s font size), the line-height (120% of the font size) and the font-family (fantasy). It follows that the keyword normal applies to the two remaining properties: font-style and font-weight.
6 個目の規則は[ `font-style$p, `font-width$p, `font-size$p, `font-family$p ]を設定する — 他の~font~propは、 各自の`初期~値$に設定される。 ◎ The sixth rule sets the font-style, font-width, font-size, and font-family, the other font properties being set to their initial values.
7 個目の規則は、 `font-style$p を `oblique 25deg^v に, `font-weight$p を `753^v に, `font-width$p を `condensed$v に 設定する。 この規則における `25deg^v は、 `oblique$v ~keywordの直後にしなければナラナイことに注意。 ◎ The seventh rule sets font-style to oblique 25deg, font-weight to 753, and font-width to condensed. Note that the 25deg in this rule must be immediately following the "oblique" keyword.
`font-width$p ~propは CSS 2.1 では定義されていないので、 作者は,[ `font$p 規則~内で `font-width$p 用の値を利用するときは、 古い~UAとも互換な予備の~versionを含める ]ベキである: ◎ Since the font-width property was not defined in CSS 2.1, when using font-width values within font rules, authors should include a extra version compatible with older user agents:
p {
font: 80% sans-serif; /*
古い~UA用
◎
for older user agents
*/
font: condensed 80% sans-serif;
}
~system~fontは一体としてのみ設定できる。 すなわち,[ ~font族, ~size, ~weight, ~style, 等々 ]は、 すべて同時に設定される。 しかる後,欲されるならば、 これらの値は個別に改めれる。 指示された特性を備える~fontが,所与の~platform上に存在しない場合、 ~UAは,適当に代用するか (例: `small-caption$v ~font用には `caption$v ~fontの より小さい~versionを利用するなど), または ~UAによる既定の~fontで代用するベキである。 ~regular~fontのときと同じく、 ~system~fontに対しても,[ 個々の~propのうち,~OSにて可用な利用者-選好の一部を成さないもの ]は,各自の`初期~値$に設定されるベキである。 ◎ System fonts can only be set as a whole; that is, the font family, size, weight, style, etc. are all set at the same time. These values can then be altered individually if desired. If no font with the indicated characteristics exists on a given platform, the user agent should either intelligently substitute (e.g., a smaller version of the caption font might be used for the small-caption font), or substitute a user agent default font. As for regular fonts, if, for a system font, any of the individual properties are not part of the operating system’s available user preferences, those properties should be set to their initial values.
これが、 `font$p ~propが “ほぼ” 略式~propとされている~~理由である: ~system~fontは, `font-family$p 自身ではなく `font^p ~propを通してしか指定し得ないので、 作者は, `font^p ~propにより[ その下位propたちの総和 ]より多くのことを行える。 一方で, `font-weight$p などの個々の~propは、 依然として~system~fontから採られる値が与えられ, 独立に変わり得る。 ◎ That is why this property is "almost" a shorthand property: system fonts can only be specified with this property, not with font-family itself, so font allows authors to do more than the sum of its subproperties. However, the individual properties such as font-weight are still given values taken from the system font, which can be independently varied.
上に挙げられた~system~font用の~keywordは、 先頭に位置するときに限り,~keywordとして扱われる — 他所に位置している場合、 ~font族~名の一部として扱われることに注意: ◎ Note that the keywords used for the system fonts listed above are only treated as keywords when they occur in the initial position, in other positions the same string is treated as part of the font family name:
font: menu; /* ~system~menu用の~font設定群を利用 ◎ use the font settings for system menus */ font: large menu; /* "menu" という名前の~font族を利用 ◎ use a font family named "menu" */
2.8. 合成な書体の制御-法
合成な~font書体は、[ ある~font族が相応しい書体を欠くときに,要請された~fontへの近似を供する ]ための~fallback策である。 ◎ Synthetic font faces are a fallback strategy to provide an approximation to the requested font when a font family lacks a suitable face.
例えば、 ~UAは,次を合成するかもしれない: ◎ For example, a user agent might:
- ~bold体f — 各~glyphの周りに細い描線を描くことにより。 ◎ synthesize a bold face by drawing a thin stroke around each glyph
- 小頭字s/上付-/下付- — ~regular~glyphを より小さい~sizeで描画して,適切に位置することにより。 ◎ synthesize small-caps, superscripts, or subscripts by rendering regular glyphs at a smaller size and positioning them appropriately
- ~oblique体f — 各~glyphを幾何的に~~斜傾することにより。 ◎ synthesize an oblique face by geometrical shearing of each glyph
合成は、 ~fallback策である — それは,たぶん無いよりはましだが、 その結果は,当の目的~用に~designされた書体の品質~levelを満たさないので。 ◎ Synthesis is a fallback strategy because the end result, while perhaps better than nothing at all, does not meet the level of quality of a face designed for the purpose.
可変~fontは、 ~font~designerが異体を成す軸(たち)を供したものであり, ~font合成として`数えられない^em — `font-synthesis$p ~propは、 それらの利用には影響しない。 ◎ Variable fonts, where the font designer has provided one or more axes of variation do not count as font synthesis and their use is not affected by the font-synthesis property.
2.8.1. 合成d~boldの制御-法: `font-synthesis-weight^p ~prop
◎名 `font-synthesis-weight@p ◎値 `auto$v1 | `none$v1 ◎初 `auto$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 ~font族が~bold体fを欠くとき, ~UAがそれを合成するのを許容するかどうかを制御する。 ◎ This property controls whether user agents are allowed to synthesize bold font faces when a font family lacks bold faces.
- `auto@v1
- ~bold体fの合成を許容する。 ◎ Synthesis of bold faces is allowed
- `none@v1
- ~bold体fの合成を許容しない。 ◎ Synthesis of bold faces is not allowed
2.8.2. 合成d~obliqueの制御-法: `font-synthesis-style^p ~prop
◎名 `font-synthesis-style@p ◎値 `auto$v1 | `none$v1 ◎初 `auto$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 ~font族が~oblique体fを欠くとき, ~UAがそれを合成するのを許容するかどうかを制御する。 ◎ This property controls whether user agents are allowed to synthesize oblique font faces when a font family lacks oblique faces.
- `auto@v1
- ~oblique体fの合成を許容する。 ◎ Synthesis of oblique faces is allowed
- `none@v1
- ~oblique体fの合成を許容しない。 ◎ Synthesis of oblique faces is not allowed
縦書き~textにおいては、 当の~glyphは,その[ 行-上面/行-下面 ]辺を — ~oblique斜度に応じて、 正ならば[ 行-右端/行-左端 ]側へ,負ならば[ 行-左端/行-右端 ]側へ — ズラすよう~glyphの中心~周りで斜傾される。 ◎ In vertical text, for positive oblique angles, the glyph is skewed such that the line-over edge shifts towards the line-right side while the line-under edge shifts towards the line-left side. For negative oblique angles, the glyph is skewed such that the line-over edge shifts towards the line-left side while the line-under edge shifts towards the line-right side. Skewing is about the center of the glyph.
2.8.3. 合成d小頭字sの制御-法: `font-synthesis-small-caps^p ~prop
◎名 `font-synthesis-small-caps@p ◎値 `auto$v1 | `none$v1 ◎初 `auto$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 ~font族が小頭字s体fを欠くとき, ~UAがそれを合成するのを許容するかどうかを制御する。 ◎ This property controls whether user agents are allowed to synthesize small caps font faces when a font family lacks small caps faces.
- `auto@v1
- 小頭字s体fの合成を許容する。 ◎ Synthesis of small caps faces is allowed
- `none@v1
- 小頭字s体fの合成を許容しない。 ◎ Synthesis of small caps faces is not allowed
2.8.4. 合成d下上付の制御-法: `font-synthesis-position^p ~prop
◎名 `font-synthesis-position@p ◎値 `auto$v1 | `none$v1 ◎初 `auto$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 ~fontが下上付~glyphを欠くとき, それを `font-variant-position$p 用に合成することが~UAに要求されるどうかを制御する。 ◎ This property controls whether user agents are required to synthesize superscript and subscript glyphs for font-variant-position when a font lacks them.
- `auto@v1
- 下上付~形の合成は要求される。 ◎ Synthesis of superscript and subscript forms is required
- `none@v1
- 下上付~形の合成は許容されない。 ◎ Synthesis of superscript and subscript forms is not allowed
2.8.5. 書体の合成を制御する: `font-synthesis^p 略式~prop
◎名 `font-synthesis@p ◎値 `none^v | [ `weight^v || `style^v || `small-caps^v || `position^v ] ◎初 `weight^v `style^v `small-caps^v `position^v ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された~keyword(たち) ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、[ `font-synthesis-weight$p, `font-synthesis-style$p, `font-synthesis-small-caps$p, `font-synthesis-position$p ]~prop用の略式である。 値は、 次に従って対応付けられる: ◎ This property is a shorthand for the font-synthesis-weight, font-synthesis-style, font-synthesis-small-caps, and font-synthesis-position properties. Values are mapped as following:
- `none^v の場合、 これらの下位propすべてを `none^v に設定する。
-
他の場合、 次の表tの各行に対し, 値が行の 1 列目に挙げる~keywordを[ 含む/含まない ]ならば,行の 2 列目に挙げる下位propを[ `auto^v / `none^v ]に設定する。
~keyword 下位prop `weight^v `font-synthesis-weight$p `style^v `font-synthesis-style$p `small-caps^v `font-synthesis-small-caps$p `position^v `font-synthesis-position$p
次の~style規則は、 合成的に~oblique化された~Arabic体fの利用を不能化する: ◎ The style rule below disables the use of synthetically obliqued Arabic:
*:lang(ar) { font-synthesis: none; }
3. ~font描画の制御
3.1. ~font描画の制御 — 序論
~UAは、 `font-face$at を介して~download可能な`~web~font$を利用するとき, ~fontを読込んでいる最中に何をするか知る必要がある。 ほとんどの~web~browserは、 何らかの形の時間切れを採用している: ◎ When using downloadable Web Fonts via @font-face, the user agent needs to know what to do while the font is actively loading. Most web browsers have adopted some form of timeout:
~browser | 時間切れ | ~fallback | 入替 |
---|---|---|---|
~Chrome 35+ | 3 秒 | する | する |
~Opera | 3 秒 | する | する |
~Firefox | 3 秒 | する | する |
~MSIE | 0 秒 | する | する |
~Safari | 3 秒 | する | する |
- [ ~Chrome/~Firefox ]では、 3 秒で時間切れになる — その時点で、 ~textは~fallback~fontで示される。 最終的には入替が生じる — すなわち、 意図される~fontが可用になり次第,~textは それで描画し直される。 ◎ Chrome and Firefox have a 3 second timeout after which the text is shown with the fallback font. Eventually, a swap occurs: the text is re-rendered with the intended font once it becomes available.
- ~MSIEでは、 0 秒で時間切れになる — その結果,~textは即時に描画される: 要請された~fontがまだ可用でない場合、 ~fallbackが利用される — 要請された~fontが後で可用になり次第,~textは描画し直される。 ◎ Internet Explorer has a 0 second timeout which results in immediate text rendering: if the requested font is not yet available, fallback is used, and text is rerendered later once the requested font becomes available.
これら既定の挙動は適理であるが、 あいにく,各~browser間で一貫でない。 さらには、[[ 現代の利用者~体験, あるいは処理能 ]に気を使う~appに要求される,~~多様な利用事例 ]を受持つに足る,単独の~approachは無い。 ◎ While these default behaviors are reasonable, they’re unfortunately inconsistent across browsers. Worse, no single approach is sufficient to cover the range of use-cases required by modern user-experience– and performance–conscious applications.
`CSS-FONT-LOADING-3$r ~APIは, 上の挙動の一部を上書きすることを開発者に許容するが、 ~scriptingに些細でない量の労が要求され、 結局は,適理な事例`すべて^emを受持つに足る~hookを供するものにならない。 加えて,開発者は、 読込n用の~scriptを自身の~page内に直書きするか, 外部~libraryを読込む必要がある — どちらにせよ、[ ~fontを読込めるようになる前に,追加的な~network待時間をもたらす ]ので,~text描画は遅延される。 ◎ The Font Loading API [CSS-FONT-LOADING-3] allows a developer to override some of the above behaviors, but that requires scripting, a non-trivial amount of effort, and ultimately doesn’t provide sufficient hooks to cover all reasonable cases. Additionally, the developer needs to either inline the loading script into their page or load an external library, introducing additional network latency before the fonts can be loaded and delaying text rendering.
[ 設計/処理能 ]に気を使う~web開発者は、[ 意図される利用者~体験を得るための,所与の`~web~font$の相対的な重要度 ]について,よく知る立場にある。 この仕様は、 ~fontの[ 時間切れ/描画 ]の挙動を制御する能 — 特定的には、 次に挙げるものを定義する能 — を開発者に供する 【特に, `font-display$d 記述子を介して】: ◎ Design/performance-conscious web developers have a good sense for the relative importance of a given Web Font for the intended user experience. This specification provides them the ability to control font timeout and rendering behavior. Specifically, it lets developers:
- 次についての~font表示-施策 ⇒ いつ,~textを塗るに準備済みになるか — それまでは、 塗りを阻むのか, ~fallbackで塗るのか。 ◎ Define the font display policy when text is ready to be painted: block, or paint with fallback.
- 次についての~font表示-施策 ⇒ 欲される~fontが可用になったとき、 ~textを新たな~fontで描画し直すか, ~fallbackのままにしておくか。 ◎ Define the font display policy once the desired font is available: rerender text with the new font, or leave it with the fallback.
- 各~font用の~customな時間切れ値。 ◎ Define custom timeout values for each font.
- 要素ごとの ~customな[ 表示-/時間切れ ]施策。 ◎ Define custom display and timeout policies per element.
3.2. ~font表示-時列線
書体-の `~font~download~timer@ が開始されるのは、 ~UAが,ある~page上で~downloadされた所与の書体-を最初に利用しようと試みた時点になる。 この~timerは、 当の書体-に結付けられる 3 つの期間 — `阻み期間$, `入替~期間$, `失敗~期間$ — を順に経る — それは、 書体-を利用している要素の描画の挙動を規定する: ◎ At the moment the user agent first attempts to use a given downloaded font face on a page, the font face’s font download timer is started. This timer advances through three periods of time associated with the font face—the block period, the swap period, and the failure period—which dictate the rendering behavior of any elements using the font face:
- 最初は, `阻み期間@ になる。 この期間~内に書体-が読込まれなかった場合、 それを利用しようと試みている どの要素も,代わりに `不可視な~fallback書体-で描画する$モノトスル — 成功裡に読込まれた場合、 書体-は通常に利用される。 ◎ The first period is the font block period. During this period, if the font face is not loaded, any element attempting to use it must instead render with an invisible fallback font face. If the font face successfully loads during the block period, the font face is then used normally.
- `阻み期間$の直後から, `入替~期間@ になる。 この期間~内に書体-が読込まれなかった場合、 それを利用しようと試みている どの要素も, `~fallback書体-で描画する$モノトスル — 成功裡に読込まれた場合、 書体-は通常に利用される。 ◎ The second period, occurring immediately after the block period, is the font swap period. During this period, if the font face is not loaded, any element attempting to use it must instead render with a fallback font face. If the font face successfully loads during the swap period, the font face is then used normally.
- `入替~期間$内に書体-が読込まれなかった場合、 その直後から, `失敗~期間@ が開始される — 読込nは失敗したものとされ,通常の~font~fallbackを生じさせる。 他の場合、 書体-は通常に利用される。 ◎ The third period, occurring immediately after the swap period, is the font failure period. If the font face is not yet loaded when this period starts, it’s marked as a failed load, causing normal font fallback. Otherwise, the font face is used normally.
所与の要素~用に `~fallback書体-で描画する@ ときは、 ~UAは,[ 要素の `font-family$p ~listに指定された書体-のうち,すでに読込まれた最初のもの ]を見出して,それを~textの描画に利用するモノトスル。 これを行なうときは、 ~fallback~fontの読込nを誘発しないモノトスル。 ◎ To render with a fallback font face for a given element, the user agent must find the first font face specified in the element’s font-family list which is already loaded, and use that for rendering text. Doing this must not trigger loads of any of the fallback fonts.
所与の要素~用に `不可視な~fallback書体-で描画する@ ときは、[ `~fallback書体-で描画する$ときに従う下で,書体-を見出した ]上で,[ その書体-と同じ計量を伴うが,すべての~glyphは “不可視” である( “~ink” を包含しない) ]ような匿名な書体-を作成して,それを~textの描画に利用する 【言い換えれば、空間を占めるが,~glyphは塗らない】。 これを行なうときは、 ~fallback~fontの読込nを誘発しないモノトスル。 ◎ To render with an invisible fallback font face for a given element, find a font face as per "render with a fallback font face". Create an anonymous font face with the same metrics as the selected font face but with all glyphs "invisible" (containing no "ink"), and use that for rendering text. Doing this must not trigger loads of any of the fallback fonts.
[ `fallback$v / `optional$v ]により、 族~内のある書体が,他のものが~fallbackするよう要求される間に利用-中になる結果、 “脅迫状( `ransom note^en )” のような見かけになり得る。 おそらく、 族~内のすべての~fontが~~一斉に同じに挙動する (すべて入替わるか すべて~fallbackする)必要があるのでは? ~font族~~単位で挙動を制御する `font-feature-values$at も見よ。 ◎ fallback and optional can result in some faces in a family being used while others are required to fallback, giving a "ransom note" look. Perhaps require that all fonts in a family have the same behavior (all swapped in, or all fallback)? See also the @font-feature-values for controlling the behavior on a font family basis.
4. ~font資源
4.1. `font-face^at 規則
`font-face@at 規則は、[ 必要時に自動的に~fetchされた上で作動化される~font ]に向けて,~linkを張ることを許容する。 これは、 ~fontの候補を[ 所与の~platform上で可用な~fontたちが成す集合 ]に制限することなく,[ ~pageの~design目標に近く合致する~fontを選定する ]ことを作者に許容する。 [ この規則が与える,~font記述子たちが成す集合 ]は、 個々の書体の~style特性に沿うような[ ~localな/外部にある ]~font資源の所在を定義する。 複数の `font-face$at 規則を利用して,[ 様々な書体を備える~font族 ]を構築することもできる。 ~UAは — ~CSS~font照合~規則の利用を通して — 所与の~text片に必要な書体のみを,選択的に~downloadできるようになる。 ◎ The @font-face rule allows for linking to fonts that are automatically fetched and activated when needed. This allows authors to select a font that closely matches the design goals for a given page rather than limiting the font choice to a set of fonts available on a given platform. A set of font descriptors define the location of a font resource, either locally or externally, along with the style characteristics of an individual face. Multiple @font-face rules can be used to construct font families with a variety of faces. Using CSS font matching rules, a user agent can selectively download only those faces that are needed for a given piece of text.
その構文は: ◎ Its syntax is:
@font-face { `declaration-list$t }
`font-face$at 規則は、 この仕様にて定義する各種~記述子を受容する。 ◎ The @font-face rule accepts the descriptors defined in this specification.
`font-face$at 規則は、 すべての~font記述子に対し,各自の値を[ 暗黙的に, または明示的に ]指定する。 規則の中で値が明示的に与えられていない記述子は、[ この仕様の中で,各 記述子の定義に挙げられる`初期~値$ ]を値にとる。 これらの記述子は、 もっぱら,[ それが定義される `font-face$at 規則の文脈 ]の下に限り適用され, 文書~言語の要素に【直に】適用されるものではない。 記述子には、[ どの要素に適用されるか/値が子~要素に継承されるかどうか ]を成す観念は存在しない。 所与の `font-face$at 規則の中に,同じ名前を伴う記述子~宣言が複数回~出現したときは、 それらのうち最後の宣言のみが利用され,他の宣言は無視される。 ◎ Each @font-facerule specifies a value for every font descriptor, either implicitly or explicitly. Those not given explicit values in the rule take the initial value listed with each descriptor in this specification. These descriptors apply solely within the context of the @font-face rule in which they are defined, and do not apply to document language elements. There is no notion of which elements the descriptors apply to or whether the values are inherited by child elements. When a given descriptor occurs multiple times in a given @font-face rule, only the last descriptor declaration is used and all prior declarations for that descriptor are ignored.
`Gentium^F と称される~download可能な~fontを利用するためには: ◎ To use a downloadable font called Gentium:
@font-face { font-family: Gentium; src: url(http://example.com/fonts/Gentium.woff); } p { font-family: Gentium, serif; }
~UAは、 `Gentium^F を~downloadした上で,[ `p^e 要素~内の~text ]の描画-時に,それを利用することになる。 何らかの理由で~fontを給している~siteが可用でない場合、 既定の~serif~fontが利用されることになる。 ◎ The user agent will download Gentium and use it when rendering text within paragraph elements. If for some reason the site serving the font is unavailable, the default serif font will be used.
文書が包含する `font-face$at 規則たちが成す集合は、 当の文書において可用な~fontたちが成す集合を定義する。 ~font照合を終えたときは、 これらの規則を利用して定義される~fontが, ~system上の他の可用な~fontより前に考慮される。 ◎ A given set of @font-face rules define a set of fonts available for use within the documents that contain these rules. When font matching is done, fonts defined using these rules are considered before other available fonts on a system.
~downloadされた~fontたちは、 それらを参照する文書に限り,可用になる。 これらの~fontを作動化させる処理nは、 それらを[ 同じ~fontへ直に~linkしていない他の~appや文書 ]からも可用にしないモノトスル。 ~UAの実装者は、[ ~downloadされた~fontを[ `~install済み~font~fallback$手続-の下で,可用な~fontが他に存在しない ]ような他の文書 ]内の文字を描画するために利用すること ]が簡便であると考えるかもしれないが、 ある~pageの内容が他の~pageに影響-可能になれば, 攻撃者からも何らかの攻撃~行路に利用できることになり、 ~security漏洩に至らせかねない。 この制約は、 ~cache法の挙動には影響しない — ~fontは、 他の~web資源が~cacheされるのと同じ仕方で~cacheされる。 ◎ Downloaded fonts are only available to documents that reference them. The process of activating these fonts must not make them available to other applications or to documents that don’t directly link to the same font. User agent implementers might consider it convenient to use downloaded fonts when rendering characters in other documents for which no other available font exists as part of the installed font fallback procedure. However, this would cause a security leak since the contents of one page would be able to affect other pages, something an attacker could use as an attack vector. These restrictions do not affect caching behavior, fonts are cached the same way other web resources are cached.
`font-face$at 規則は: ◎ This at-rule\
- ~CSSの前方-互換な構文解析~規則に従う。 宣言~block内の~propと同様に、 ~UAは、 自身が~supportしない どの記述子に対しても,その宣言を無視するモノトスル。 ◎ follows the forward-compatible parsing rules of CSS. Like properties in a declaration block, declarations of any descriptors that are not supported by the user agent must be ignored.\
- [ `font-family$d, `src$d ]両~記述子が要求される — どちらかが欠落な場合、 当の規則は, `§ ~font照合~algo$ を遂行するときには考慮しないモノトスル。 ◎ @font-face rules require a font-family and src descriptor; if either of these are missing, the @font-face rule must not be considered when performing the font matching algorithm.
- ~UAは、[ ~platform資源が制限されている / ~download可能な~font資源を不能化する能を実装している ]事例では,単純に無視するモノトスル — この仕様にて定義される個々の記述子の挙動は、 改められるベキではない。 ◎ In cases where user agents have limited platform resources or implement the ability to disable downloadable font resources, @font-face rules must simply be ignored; the behavior of individual descriptors as defined in this specification should not be altered.
4.2. ~font族: `font-family^d 記述子
◎述 `font-family@d ◎用 `font-face$at ◎値 `family-name$t ◎初 可用でない ◎表終この記述子は、 すべての[ ~CSS~font族~名の照合 ]に利用されることになる,~font族~名を定義する。 それは、 下層の~font~dataに包含されている~font族~名を上書きする。 すなわち、 ~font族~名が[ 利用者~環境にて可用な~font族の名前 ]と同じ場合、 これは,その下層の~font — この記述子が記された~stylesheetを利用する文書~用の,下層の~font — を実質的に隠す。 これにより,~web作者は、 利用者~環境に在る~font族~名との競合-を気にすることなく,自由に~font族~名を選べるようになる。 同様に、 所与の~font族~名に対しては,~platform代用は利用しないモノトスル。 ◎ This descriptor defines the font family name that will be used in all CSS font family name matching. It overrides the font family names contained in the underlying font data. If the font family name is the same as a font family available in a given user’s environment, it effectively hides the underlying font for documents that use the stylesheet. This permits a web author to freely choose font-family names without worrying about conflicts with font family names present in a given user’s environment. Likewise, platform substitutions for a given font family name must not be used.
4.3. ~font参照: `src^d 記述子
◎述 `src@d ◎用 `font-face$at ◎値 `font-src-list$t ◎初 可用でない ◎表終この記述子は、 ~font~dataを包含している資源を指定する。 その値は、 優先順による[ 外部~参照/~localに~installされた書体-名 ]たちが成す,~commaで分離された~listである。 ~UAは,~fontが必要になったときに、 ~listを成す各~参照を反復して, 成功裡に構文解析して作動化できる最初のものを利用する。 この記述子の構文解析-法は、 他の記述子の構文解析-法より複雑である。 その規則については、 § `src^d 記述子の構文解析-法 を見よ。 ~fontの作動化は、[ ~fileを~downloadするか~diskから読取って, それを構文解析して, たぶん~UAに依存する追加的な手続きも行う ]ことを孕む。 [ 妥当でない~dataを包含している~font/ ~localな書体-が見出されないもの ]は無視され、 ~UAは,~list内で次にある~fontを読込むことになる。 ◎ This descriptor specifies the resource containing font data. Its value is a prioritized, comma-separated list of external references or locally-installed font face names. When a font is needed the user agent iterates over the set of references listed, using the first one it can successfully parse and activate. Parsing this descriptor is more complicated than parsing other descriptors; see § 4.3.1 Parsing the src descriptor for the parsing rules. Activation of a font involves downloading the file or reading it from disk, parsing it, and perhaps additional user-agent-dependent steps. Fonts containing invalid data or local font faces that are not found are ignored and the user agent loads the next font in the list.
4.3.1. `src^d 記述子の構文解析-法
`font-src-list$t 生成規則を構文解析するときは、 `~commaで分離された~listを~CSS文法に則って構文解析する$。 ◎ To parse a <font-src-list> production, parse a list of <font-src>s.
`font-src-list@t = `font-src$t# `font-src@t = `url$t [ format(`font-format$t)]? [ tech(`font-tech$t#)]? | local(`family-name$t) `font-format@t = `string$t | collection | embedded-opentype | opentype | svg | truetype | woff | woff2 `font-tech@t = `font-features-tech$t | `color-font-tech$t | variations | palettes | incremental `font-features-tech@t = features-opentype | features-aat | features-graphite `color-font-tech@t = color-COLRv0 | color-COLRv1 | color-SVG | color-sbix | color-CBDT
~font形式を識別するものには,~keywordが選好されるが、 後方-互換性の理由から, 次に挙げる文字列も受容される — それらの効果は、 等価な現代の構文が利用されたときと同じになる。 ◎ While keywords are preferred to identify font formats, for reasons of backwards compatibility the following strings are also accepted, and have the same effect as if the equivalent modern syntax had been used.
文字列~形 ◎ String form | 等価な構文 ◎ Equivalent syntax |
---|---|
`format("woff2")^v | `format(woff2)^v |
`format("woff")^v | `format(woff)^v |
`format("truetype")^v | `format(truetype)^v |
`format("opentype")^v | `format(opentype)^v |
`format("collection")^v | `format(collection)^v |
`format("woff2-variations")^v | `format(woff2) tech(variations)^v |
`format("woff-variations")^v | `format(woff) tech(variations)^v |
`format("truetype-variations")^v | `format(truetype) tech(variations)^v |
`format("opentype-variations")^v | `format(opentype) tech(variations)^v |
注記: ~CSS~WGは、[ この形式~文字列たちが成す~listが将来に拡張される ]ことはないものと見越している。 ◎ Note: The CSS WG does not anticipate extending this list of format strings in the future.
成分~値が正しく構文解析され, かつ ~UAが~supportする[ `~font形式@#font-format-definitions$【 `font-format$t 】と `~font技術@#font-tech-definitions$【 `font-tech$t 】 ]を成す場合,そのときに限り、 ~supportされる~sourceたちが成す~listに,それを追加する。 ◎ If a component value is parsed correctly and is of a font format or font tech that the UA supports, add it to the list of supported sources. If parsing a component value results in a parsing error or its format or tech are unsupported, do not add it to the list of supported sources.
この処理nの結果,~listに何も追加されなかった場合、 `src$d 記述子の値は構文解析-~errorになるとする。 ◎ If there are no supported entries at the end of this process, the value for the src descriptor is a parse error.
この構文解析~規則は、 特定0の[ ~font技術/~font形式 ]を~supportしない~UA用に,上品な~font~fallbackを許容する。 ◎ These parsing rules allow for graceful fallback of fonts for user agents which don’t support a particular font tech or font format.
例えば,増分的な転送【 `incremental^v 】が~supportされないときは、 最適な処理能を得るため, `woff2^v で圧縮された~versionの~fontが給される。 それから、 ~clientが`増分的な転送@~IFT1$用に — その場で読込まれることになる部位として — 生な未圧縮な~OpenType~fontが供される。 ◎ For example, when incremental transfer is not supported, a woff2 compressed version of the font is supplied, for optimal performance. Then, for incremental transfer, the raw uncompressed OpenType font is provided, portions of which will be loaded on demand.
@font-face { font-family: "MyIncrementallyLoadedWebFont"; src: url("FallbackURLForBrowsersWhichDontSupportIncrementalLoading.woff2") format(woff2); src: url("MyIncrementallyLoadedWebFont.otf") format(opentype) tech(incremental); }
4.3.2. `src^d 記述子~内の個々の~itemの読込n法
~CSSにおける他の~URLと同様に,~URLは相対的にもなり得る — その事例では、[ `font-face$at 規則を包含している~stylesheetの所在 ]から相対的に解決される。 ~SVG~fontの事例では、 ~URLは[ ~SVG~font定義を包含している文書 ]内の要素を指す — 要素~参照が省略されている場合、[ 定義されている~fontのうち,最初のもの ]への参照が含意される。 同様に,~font容器~形式が複数の~fontを包含し得る場合も、 所与の 1 個の `font-face$at 規則~用に読込まれる~fontは,きっかり 1 個になるモノトスル。 素片~識別子は、 どの~fontを読込むかを指示するために利用される — これらは、 `RFC8081$r にて定義される,~fontの~PostScript名を利用する。 ◎ As with other URLs in CSS, the URL can be relative, in which case it is resolved relative to the location of the style sheet containing the @font-face rule. In the case of SVG fonts, the URL points to an element within a document containing SVG font definitions. If the element reference is omitted, a reference to the first defined font is implied. Similarly, font container formats that can contain more than one font must load one and only one of the fonts for a given @font-face rule. Fragment identifiers are used to indicate which font to load; these use the PostScript name of the font as defined in [RFC8081].
適合t~UAは、 そのように参照される資源に対しては,次に従うモノトスル: ◎ Conformant user agents\
- 当の資源からの書体を[ その~PostScript名が所与の素片~識別子に正確に合致する場合 ]を除き,利用しない。 ◎ must not use a face from the resource unless its PostScript name exactly matches the fragment identifier,\
- 所与の素片~識別子が妥当な~PostScript名になり得ない場合には、 当の資源を~downloadすることなく飛ばす。 ◎ and must skip downloading the resource if the given fragment identifier cannot be a valid PostScript name.
src: url(fonts/simple.woff); /* ~stylesheetの所在から相対的な `simple.woff^l を読込む ◎ load simple.woff relative to stylesheet location */ src: url(/fonts/simple.woff); /* 絶対的な所在から `simple.woff^l を読込む ◎ load simple.woff from absolute location */ src: url(fonts/coll.otc#foo); /* ~collection `coll.otc^l から~font `foo^l を読込む ◎ load font foo from collection coll.otc */ src: url(fonts/coll.woff2#foo);/* ~WOFF 2 ~collection `coll.woff2^l から~font `foo^l を読込む ◎ load font foo from woff2 collection coll.woff2 */ src: url(fonts.svg#simple); /* `id^c に `simple^l が付与された~SVG~fontを読込む ◎ load SVG font with id 'simple' */
4.3.3. `src^d 内の~itemたちの選定-法
外部~参照は、[ 1 個の~URL, 後続する省略可能な形式~hint【 `format^f 】 ]からなる。 形式~hintは、 当の~URLが参照する~font資源の形式について述べる。 適合t~UAは、 この形式~hintが[ 自身が~supportしないか未知な~font形式/ 自身が~supportしない~font技術 ]を指示している場合には, 当の~font資源の~download~~処理を飛ばすモノトスル。 形式~hintが給されていない場合、 当の~font資源を~downloadするベキである。 ◎ External references consist of a URL, followed by an optional hint describing the format of the font resource referenced by that URL. Conformant user agents must skip downloading a font resource if the format hint indicates an unsupported or unknown font format, or if any of the font technologies are unsupported by the user agent. If no format hint is supplied, the user agent should download the font resource.
アリなら~WOFF 2 ~fontを読込んで, 他の場合はアリなら~WOFF 1 ~fontを, 他の場合は~OpenType~fontを利用する例: ◎ For example, the following shows how to load a WOFF 2 font if possible, otherwise a WOFF 1, otherwise use an OpenType font
@font-face { font-family: bodytext; src: url(ideal-sans-serif.woff2) format(woff2), url(ideal-sans-serif.woff) format(woff), url(basic-sans-serif.ttf) format(opentype); }
この例では, `woff2^v が~supportされない場合、 未~supportな架空の形式 `zebra^l は飛ばされ, `opentype^v ~fontが~downloadされる: ◎ In this example, if woff2 is not supported, an unsupported and fictitious "zebra" format is skipped and the opentype font is downloaded:
src: url(ideal.woff2) format(woff2),url(unsupported.zeb) format("zebra"), url(basic.ttf) format(opentype);
ここでは, いずれかの~collection内の個々の~instanceが読込まれるが、 どの~collectionも~supportされない場合, 代わりに個々の~fontを~downloadする: ◎ Here an individual instance in a collection is loaded, or if collections are not supported, download an individual font instead.
@font-face { font-family: ~SourceHanSansJP; src: url(SourceHanCodeJP.otc#Regular) format(collection), url(SourceHanCodeJP-Regular.ttf) format(opentype); }
4.3.3.1. ~local~font~fallback
作者は,所与の~fontに対し[ ~localに可用な複製が在るならばそれを利用し,無いならば~downloadする ]ことを選好する場合には、 `local@f を利用できる。 その引数 `family-name$t は、[ ~localに~installされた,より大きな族 ]の中で[ 単独の書体-を一意に識別する ]ような[ 形式に特有な文字列 ]を与える。 この名前は、 任意選択で引用符で括ることもできる。 括られていない場合、 引用符で括られない族~名に対する処理~規約が適用される。 言い換えれば、 名前は`空白$で分離された識別子たちが成す連列でなければナラナイ — それは、[ 各~識別子を 1 個の~spaceで分離して順に連結する ]ことにより,文字列に変換される。 したがって、[ `~CSS全域~keyword$( `inherit$v など)/ `generic-family$t ~keyword( `serif$v など) ]は, `local^f の内側では許容されない。 ◎ When authors would prefer to use a locally available copy of a given font and download it if it’s not, local() can be used. The locally-installed <family-name> argument to local() is a format-specific string that uniquely identifies a single font face within a larger family. The name can optionally be enclosed in quotes. If unquoted, the unquoted font family name processing conventions apply; in other words, the name must be a sequence of identifiers separated by whitespace which is converted to a string by joining the identifiers together separated by a single space; and thus, CSS-wide keywords such as inherit, and <generic-family> keywords such as serif are not allowed inside local().
/* `Gentium^F の~regular体f ◎ regular face of Gentium */ @font-face { font-family: MyGentium; src: local(Gentium), /* `Gentium^F が~localに可用なら,それを選好する ◎ prefer locally available Gentium */ url(Gentium.woff); /* 他の場合は~downloadする ◎ otherwise, download it */ }
例えば、 次のような `local^f の利用は,~errorになる: ◎ For example, this use of local() would be an error:
@font-face { font-family: foo; src: local(inherit); }
~OpenType および~TrueTypeの~fontに対しては、 この文字列が合致する対象は,~localに可用な~fontの`名前~table$の中の[ ~PostScript名/全部的~font名 ]に限られる。 どちらの型の名前が利用されるかは,~platformと~fontに応じて様々なので、 作者は — 各~platformにわたって適正な照合が確約されるよう — これらの名前を両方とも含めるベキである。 所与の~font名に対しては、 ~platform代用は利用ないモノトスル。 ◎ For OpenType and TrueType fonts, this string is used to match only the Postscript name or the full font name in the name table of locally available fonts. Which type of name is used varies by platform and font, so authors should include both of these names to assure proper matching across platforms. Platform substitutions for a given font name must not be used.
/* `Gentium^F の~bold体f ◎ bold face of Gentium */ @font-face { font-family: MyGentium; src: local(Gentium Bold), /* 全部的~font名 ◎ full font name */ local(Gentium-Bold), /* ~PostScript名 ◎ Postscript name */ url(GentiumBold.woff); /* 上のどれも利用できないときは ~downloadする ◎ otherwise, download it */ font-weight: bold; }
`font-face$at 規則が[ 1 個の族~内の単独の~font ]の特性を指定するのとちょうど同じく, `local$f を通して利用される一意な名前は、 ~font族~全体ではなく,単独の~fontを指定する。 ~OpenType~font~dataの用語で述べるなら、 ~PostScript名は,[ ~fontの`名前~table$ ]の中の[ nameID = 6 の name record ]の中から見出される(詳細は `OPENTYPE$r を見よ)。 ~PostScript名が、[ ~MacOSX上では すべての~font / ~Windows上では ~PostScript~CFF~font ]用に共通して利用される~keyである。 全部的~font名( nameID = 4 )は、 ~Windows上では[ ~TrueType~glyphを伴う~font用の一意な~key ]として利用される。 ◎ Just as an @font-face rule specifies the characteristics of a single font within a family, the unique name used with local() specifies a single font, not an entire font family. Defined in terms of OpenType font data, the Postscript name is found in the font’s name table, in the name record with nameID = 6 (see [OPENTYPE] for more details). The Postscript name is the commonly used key for all fonts on OSX and for Postscript CFF fonts under Windows. The full font name (nameID = 4) is used as a unique key for fonts with TrueType glyphs on Windows.
~OpenType~fontのうち[ 地域-化された全部的~font名を複数個~伴うもの ]に対しては、[ ~US~English~versionを成す全部的~font名 ( ~Windows上では ~langID = 0x409, ~MacOSX上では ~langID = 0 ) が可用ならば それ/ 可用でないならば 最初の地域-化 ]を利用するモノトスル ( ~OpenType仕様では `どの~fontにも最低でも~US~English名は含める@~OTSPEC/recom.htm$ことが推奨されている)。 他の全部的~font名`にも^em合致させる~UAは、 不適合tと見なされる (例えば、 現在の~system~localeが~Dutchに設定されている下での,~Dutch名への照合)。 ◎ For OpenType fonts with multiple localizations of the full font name, the US English version must be used (language ID = 0x409 for Windows and language ID = 0 for Macintosh) or the first localization when a US English full font name is not available (the OpenType specification recommends that all fonts minimally include US English names). User agents that also match other full font names, e.g. matching the Dutch name when the current system locale is set to Dutch, are considered non-conformant.
注記: これは、[ ~Englishを選好しない, かつ[ ~fontの~versionや~OSによる地域-化 ]の相違があっても,照合の一貫性は~~保たれる ]ように行われる — ~font~style名(例: "Bold" )は,多くの言語にて常習的に地域-化されており、 可用な地域-化された名前たちが成す集合は,[ 多岐に渡る,~platformや~fontの~version ]間で様々なので。 ◎ Note: This is done, not to prefer English, but to avoid matching inconsistencies across font versions and OS localizations, since font style names (e.g. "Bold") are frequently localized into many languages and the set of localizations available varies widely across platform and font version.
[ 族~名( nameID = 1 )と~style名 ( nameID = 2 ) ]の連結に合致させる~UAも,不適合tと見なされる。 ◎ User agents that match a concatenation of family name (nameID = 1) with style name (nameID = 2) are considered non-conformant.
注記: これはまた、 他の方法では参照し得ない[ より大きな族に属する書体 ]を【直に】参照することも許容する。 ◎ Note: This also allows for referencing faces that belong to larger families that cannot otherwise be referenced.
~localな~fontを利用する, または 別の文書の中の~SVG~fontを参照する: ◎ Use a local font or reference an SVG font in another document:
@font-face { font-family: Headline; src: local(Futura-Medium), url(images/fonts.svg#MyGeometricModern) format(svg); }
異なる~platformにわたって,~localな~Japanese~font用の別名を作成する: ◎ Create an alias for local Japanese fonts on different platforms:
@font-face { font-family: jpgothic; src: local(HiraKakuPro-W3), local(Meiryo), local(IPAPGothic); }
より大きな族~内では合致され得ない 1 個の書体-を参照する: ◎ Reference a font face that cannot be matched within a larger family:
@font-face {
font-family: Hoefler Text Ornaments;
/*
は、
`Hoefler Text Regular^F と同じ~font~propを備える【ので,従来の方法では選定できない(ような例として挙げられている?)】
◎
has the same font properties as Hoefler Text Regular
*/
src: local(HoeflerText-Ornaments);
}
地域-化された全部的~font名は,決して合致しないので、 下の~heading用~style規則を伴う文書は — 特定0の~system~locale~parameterが~Finnishに設定されたかどうかに関わらず,常に — 既定の~serif~fontを利用して描画される: ◎ Since localized fullnames never match, a document with the header style rules below would always render using the default serif font, regardless whether a particular system locale parameter is set to Finnish or not:
@font-face {
font-family: SectionHeader;
src: local("Arial Lihavoitu"); /*
`Arial_Bold^F に対する~Finnishの全部的~font名は失敗するべき
◎
Finnish fullname for Arial Bold, should fail
*/
font-weight: bold;
}
h2 { font-family: SectionHeader, serif; }
適合t~UAは、 下の例の中の~font `gentium.eot^css を決して読込まないことになる — それは `src$d 記述子の最初の定義に含まれており、 同じ `font-face$at 規則の中の 2 個目の定義により上書きされるので: ◎ A conformant user agent would never load the font 'gentium.eot' in the example below, since it is included in the first definition of the src descriptor which is overridden by the second definition in the same @font-face rule:
@font-face { font-family: MainText; src: url(gentium.eot); /* 古い~UA用 ◎ for use with older user agents */ src: local("Gentium"), url(gentium.woff); /* `src^d 定義を上書きする ◎ Overrides src definition */ }
4.4. ~font~prop記述子: `font-style^d , `font-weight^d , `font-width^d 記述子
◎述 `font-style@d ◎用 `font-face$at ◎値 `auto^v | `font-style$tp | `oblique$v `angle[-90deg,90deg]$t{2} 【!auto | normal | italic | oblique [ `angle[-90deg,90deg]$t{1,2} ]?】 ◎初 `auto^v ◎表終 ◎述 `font-weight@d ◎用 `font-face$at ◎値 `auto^v | `font-weight-absolute$t{1,2} ◎初 `auto^v ◎表終 ◎述 `font-width@d ◎用 `font-face$at ◎値 `auto^v | `font-width$tp{1,2} ◎初 `auto^v ◎表終これらの記述子は、 書体-の特性を定義し, ~styleを特定の書体と照合する処理nに利用される。 [ いくつかの `font-face$at 規則 ]により定義される~font族~用には、 ~UAは,次に挙げるいずれかを行える: ◎ These descriptors define the characteristics of a font face and are used in the process of matching styles to specific faces. For a font family defined with several @font-face rules, user agents can either\
- 当の族の中の書体をすべて~downloadする。 ◎ download all faces in the family or\
- これらの記述子を利用して,[ 文書の中で利用される実際の~styleに合致する書体- ]を選択的に~downloadする。 ◎ use these descriptors to selectively download font faces that match actual styles used in document.\
これらの記述子~用の値の意味は、 同じ名前の~font~propがとる値と同じである — ただし: ◎ The meaning of the values for these descriptors are the same as those for the corresponding font properties except that\
- `font-weight$d 記述子には、 相対~keyword[ `bolder$v, `lighter$v ]は許容されない。 ◎ relative keywords are not allowed, bolder and lighter.\
- 省略された記述子については、 `初期~値$をとるものと見做される。 ◎ If these descriptors are omitted, initial values are assumed.\
- `指定d値$が,【次項~以下に述べる値は別として】 同じ名前の~propが受容する値の範囲~外にある場合、 当の記述子は構文解析-~errorとして扱われる。 ◎ If specified values are out of range of the accepted values of the property of the same name, the descriptor is treated as a parse error.
-
これら 3 種の記述子は、
単独の値に代えて, 2 個の値による範囲も受容する
【
…{1,2}
】 。 値のうち小さくない方が範囲の上限を与え,他方は下限を与える。 【!must swap the ... Both endpoints are inclusive.】 単独の値は、[ 上限と下限が その値に一致する範囲 ]と同じ意味になる。 【!Where a single value ... endpoint.】 範囲は、 `§ ~font照合~algo$ にて利用される。 ◎ Ranges are accepted in these three descriptors in place of a single value. Where a single value is specified, it has the same meaning as a range with identical startpoint and endpoint. User agents must swap the computed value of the startpoint and endpoint of the range in order to forbid decreasing ranges. Both endpoints are inclusive. The ranges are used in the Font Matching Algorithm below. -
これら 3 種の記述子は、 値 `auto^v も受容する — その効果は: ◎ The auto values for these three descriptors have the following effects:
- ~font選定の目的においては、 ~fontは,適切な `normal^v 値 ( `normal@#valdef-font-style-normal$v / `normal@#valdef-font-weight-normal$v / `normal@#valdef-font-width-normal$v ) が選ばれていたかのように選定される。 ◎ For font selection purposes, the font is selected as if the appropriate normal value (normal, normal or normal) is chosen
- 異体~軸の切詰法においては、 切詰法は生じない ◎ For variation axis clamping, clamping does not occur
これらの書体-~style属性~用の値は、 下層の~font~dataにより含意される~styleに代えて利用される。 これにより,作者は、 元の~font~dataが異なる~~形に配列されている状況においても, 書体たちを柔軟に組合せることが可能になる。 合成な[ ~bold化/~oblique化 ]を実装する~UAは、 ~font記述子により必要と含意された所に限り, 合成な~style法を適用するモノトスル — [ ~font~dataにより含意される~style属性 ]に基づいてではなく。 しかしながら、 `font-face^at で定義した~fontに適用される各~異体~値は,[ それらの記述子~内に指定された値, ~font~file自身が~supportする値 ]の両者により切詰められることになる。 ◎ The value for these font face style attributes is used in place of the style implied by the underlying font data. This allows authors to combine faces in flexible combinations, even in situations where the original font data was arranged differently. User agents that implement synthetic bolding and obliquing must only apply synthetic styling in cases where the font descriptors imply this is needed, rather than based on the style attributes implied by the font data. However, variation values applied to fonts defined with '@font-face' will be clamped to both the values specified in these descriptors as well as the values supported by the font file itself.
この節にて定義される~font記述子は、[ `font-face$at 規則により,所与の族~用に定義された~fontたちが成す集合 ]の中から,~fontを選定するときに利用される。 ◎ The font descriptors defined in this section are used for selecting a font from within the set of fonts defined by @font-face rules for a given family.
単独の~regular体fのみを包含している族を考える: ◎ Consider a family containing a single, regular face:
@font-face { font-family: BaskervilleSimple; src: url(baskerville-regular.woff2); }
~style付けされていない~textは、[ `font-face$at 規則の中で定義された~regular体f ]を利用して表示されることになる: ◎ Unstyled text would display using the regular face defined in the @font-face rule:
しかしながら、 ~italic~textには,別々に定義された~italic体fは無いので、 大多数の~UAは,~regular体fからの~glyphを合成的に~oblique化して表示することになる: ◎ However, italic text would display in most user agents using synthetically obliqued glyphs from the regular face, since a separate italic face is not defined:
次に、 実際に~italic体fが定義されている族を考える: ◎ Now consider a family for which an actual italic face is defined:
@font-face { font-family: BaskervilleFull; src: url(baskerville-regular.woff2); } @font-face { font-family: BaskervilleFull; src: url(baskerville-italic.woff2); font-style: italic; }
2 個目の `font-face$at 規則は、 各~style属性に[ ~italic`-style^d, ~normal`-weight^d, ~normal`-stretch^d ]を伴う~font資源 `baskerville-italic.woff2^v を定義する。 ~italic~textを表示するときは、 ~UAは,[ ~italic~textに最も近く合致する,この~font ]を利用することになる。 したがって、 ~textは,活字~designerにより~designされた~glyphを利用して表示される — ~regular体fからの~glyphを合成的に~oblique化するのではなく: ◎ The second @font-face rule defines the font resource baskerville-italic.woff to have style attributes of normal weight, normal stretch and italic style. When displaying italic text, the user agent will use this font, since it’s the closest match for italic text. Thus, the text will display using glyphs designed by a type designer rather than using synthetically obliqued glyphs from the regular face:
~font族の中から特定0の書体を選定するための処理nについての,より完全な詳細は、 `§ ~font~styleの照合@#font-style-matching$を見よ。 ◎ See the section on font matching for more complete details of the process used to select a particular face within a font family.
~fontは、 自身が互換な[[ `font-weight$p / `font-width$p / `font-style$p ]の範囲 ]を広告することもある。 ◎ Fonts may advertise the range of font-weight, font-width, and font-style they are compatible with.
@font-face { font-family: Lastima; src: url(lastima-varfont.woff2); font-weight: 100 399; }
上の `font-face$at 規則は、
`font-weight$p が範囲 { `100^v 〜 `399^v } に入るときには,
`lastima-varfont.woff^v が利用されるべきであることを指示する。
`font-family$d: `Lastima^v
を指定する `font-face^at 規則が他にも在る場合、[
この範囲の外側にある値をとる `font-weight^p
]用にも `lastima-varfont.woff^v が利用されるかもしれない。
より詳細は、
`§ ~font照合~algo$
を見よ。
◎
The above @font-face rule indicates that lastima-varfont.woff should be used when font-weight is between 100 and 399. Depending on if there are any other @font-face rules which specify font-family: Lastima, lastima-varfont.woff might be used for values of font-weight outside of the 100 - 399 range. For more details, see the § 5 Font Matching Algorithm.
`上述した@#ex-descriptors-matching$とおり, 複数個の `font-face$at 規則が 1 個の族に一緒にされ得る — [ `font-weight$p / `font-width$p / `font-style$p ]の複数個の範囲にわたるよう: ◎ As above, multiple @font-face rules may be joined together into a single family, spanning multiple ranges of font-weight, font-width, and/or font-style:
@font-face { font-family: Lastima; src: url(lastima-varfont-lightrange.woff2); font-weight: 100 399; } @font-face { font-family: Lastima; src: url(lastima-varfont-heavyrange.woff2); font-weight: 400 700; }
上の `font-face$at 規則は、 `font-weight$p が ⇒# { `100^v 〜 `399^v } に入るときは `lastima-varfont-lightrange.woff^v / { `400^v 〜 `700^v } に入るときは `lastima-varfont-heavyrange.woff^v ◎終 が利用されるべきであることを指示する。 ◎ The above @font-face rules indicate that lastima-varfont-lightrange.woff should be used when font-weight is between 100 and 399, whereas lastima-varfont-heavyrange.woff should be used when font-weight is between 400 and 700.
4.4.1. ~font字幅~用の旧来の別名n: `font-stretch^d
歴史的な理由により、 `font-width$d の`旧来の別名n$として `font-stretch@d 記述子が存在し, `font-width$d と一致する仕方で機能する。 ◎ For historical reasons, a font-stretch descriptor exists which is a legacy name alias and functions in the identical way to the font-width.
4.5. 文字~範囲: `unicode-range^d 記述子
◎述 `unicode-range@d ◎用 `font-face$at ◎値 `urange$t# ◎初 `U+0-10FFFF^v ◎表終この記述子を宣言することにより、 書体-が~supportし得る~Unicode符号位置たちが成す集合を定義できる。 記述子は、 ~Unicode範囲( `urange$t )たちが成す,~commaで区切られた~listを値にとる。 符号位置たちが成す集合は、 これらの範囲の和集合として定義され, ~UAが[ 所与の~text連なり用に~font資源を~downloadするかどうか ]を裁定する際の~hintになる。 ◎ This descriptor defines the set of Unicode codepoints that may be supported by the font face for which it is declared. The descriptor value is a comma-delimited list of Unicode range (<urange>) values. The union of these ranges defines the set of codepoints that serves as a hint for user agents when deciding whether or not to download a font resource for a given text run.
各 `urange@t ~tokenは、 接頭辞[ `U+^css / `u+^css ]と後続する符号位置~範囲からなる。 符号位置~範囲は、 次に挙げる 3 種いずれかの形をとる — この形に収まらないものは無効になり,当の宣言は無視されることになる: ◎ Each <urange> value is a UNICODE-RANGE token made up of a "U+" or "u+" prefix followed by a codepoint range in one of the three forms listed below. Ranges that do not fit one of these forms are invalid and cause the declaration to be ignored.
【 `urange$t は、 `CSS-SYNTAX-3$r にて定義されていたが,廃された — 代わる用語は `unicode-range-token$t になろう。 】
- 1 個の符号位置 (例: `U+416^v ) ◎ single codepoint (e.g. U+416)
- 1 〜 6 個の 16 進~数字として表現される, 1 個の~Unicode符号位置のみからなる範囲 ◎ a Unicode codepoint, represented as one to six hexadecimal digits
- 区間範囲 (例: `U+400-4ff^v ) ◎ interval range (e.g. U+400-4ff)
- ~hyphenで分離された 2 個の 16 進~数字~列として表現される範囲 — 2 個の数字~列は、 順に,範囲の[ 始端, 終端 ]を指示する。 ◎ represented as two hyphen-separated Unicode codepoints indicating the inclusive start and end codepoints of a range
- ~wildcard範囲 (例: `U+4??^v ) ◎ wildcard range (e.g. U+4??)
- [ 尾部の各 文字 `?^css が任意の 16 進~数字を表す ]とするときの,符号位置たちが成す集合として定義される範囲。 ◎ defined by the set of codepoints implied when trailing '?' characters signify any hexadecimal digit
ここで: ◎ ↓
- 個々の符号位置は、 `~Unicode文字~符号位置@https://www.unicode.org/charts/$に対応する 16 進~値で記される。 ◎ Individual codepoints are written using hexadecimal values that correspond to Unicode character codepoints.\
- いずれにせよ、 符号位置を与える各 数字は,`~ASCII大小無視$であり、 指示される符号位置は,範囲 { 0 〜 10FFFF } に入らなければナラナイ。 ◎ Unicode codepoint values must be between 0 and 10FFFF inclusive. Digit values of codepoints are ASCII case-insensitive.\
- 区間範囲における終端の符号位置は、 始端の符号位置~以上でなければナラナイ。 ◎ For interval ranges, the start and end codepoints must be within the range noted above and the end codepoint must be greater than or equal to the start codepoint.
- 先頭の数字を欠いている~wildcard範囲 (例: `U+???^v ) も妥当であり, 先頭に数字 `0^css を付与した~wildcard範囲 (例: `U+0???^v , すなわち `U+0000-0FFF^v ) と等価になる。 ~Unicode符号位置の範囲に~~収まり切らない~wildcard範囲は無効になる。 したがって、 ~wildcard範囲は 6 桁まで受容するが, その尾部を成す~wildcard文字 `?^css は 5 個までになる。 ◎ Wildcard ranges specified with ‘?’ that lack an initial digit (e.g. "U+???") are valid and equivalent to a wildcard range with an initial zero digit (e.g. "U+0???" = "U+0000-0FFF"). Wildcard ranges that extend beyond the range of Unicode codepoints are invalid. Because of this, the maximum number of trailing '?' wildcard characters is five, even though the UNICODE-RANGE token accepts six.
`unicode-range$d 記述子の宣言に含まれる~Unicode範囲~list【! ~comma-delimited~list】においては、 複数の範囲が重合してもヨイ。 これらの範囲の和集合が、 対応している~fontから利用され得る[ 符号位置たちが成す集合 ]を定義する。 ~UAは、 この集合に入らない符号位置に対しては,当の~fontを[ ~downloadしない/利用しない ]モノトスル。 ~UAは、 範囲~listを[ 同じ[ 符号位置たちが成す集合 ]を表現する異なる~list ]に正規化してもヨイ。 ◎ Within the comma-delimited list of Unicode ranges in a unicode-range descriptor declaration, ranges may overlap. The union of these ranges defines the set of codepoints for which the corresponding font may be used. User agents must not download or use the font for codepoints outside this set. User agents may normalize the list of ranges into a list that is different but represents the same set of codepoints.
当の~fontは、[ `unicode-range$d 記述子が定義する[ 符号位置たちが成す集合 ]]の一部に対し,対応する~glyphを包含しないかもしれない。 ~fontが利用されるときの `有効~文字~map@ とは、[ `unicode-range$d により定義される符号位置たちが成す集合, ~fontの`文字~map$ ]の交差集合(積集合)として定義される。 これにより,作者は、 下層の~fontが~supportする符号位置の精確な範囲を気にすることなく, ~supportされる範囲を おおまかな範囲で定義できるようになる。 ◎ The associated font might not contain glyphs for the entire set of codepoints defined by the unicode-range descriptor. When the font is used, the effective character map is the intersection of the codepoints defined by unicode-range with the font’s character map. This allows authors to define supported ranges in terms of broad ranges without worrying about the precise codepoint ranges supported by the underlying font.
4.5.1. 組成-~fontを定義するための文字~範囲の利用-法
複数の `font-face$at 規則 — 同じ[ 族, [ 各~style記述子の値 ]たちが成す集合 ]に対し,異なる `unicode-range$d を伴うそれら — を利用して、 組成-~font — 用字系に応じて異なる~fontたちからの~glyphを混合する~font — を創出できる。 これを,いくつかの[ 単独の用字系 (例: ~Latin/~Greek/~Cyrillic) 用の~glyphのみを包含する~font ]を組合せる~~目的に利用できる。 あるいは,作者はこれを、 ~fontを[ 共通的に利用される文字~用の~font ]と[ さほど利用されない文字~用の~font ]に区分する仕方として利用できる。 ~UAは,必要な~fontのみを取り寄せることになるので、 ~page帯域幅を抑制する助けにもなる。 ◎ Multiple @font-face rules with different unicode ranges for the same family and style descriptor values can be used to create composite fonts that mix the glyphs from different fonts for different scripts. This can be used to combine fonts that only contain glyphs for a single script (e.g. Latin, Greek, Cyrillic) or it can be used by authors as a way of segmenting a font into fonts for commonly used characters and less frequently used characters. Since the user agent will only pull down the fonts it needs this helps reduce page bandwidth.
同じ[ 族, [ 各~style記述子の値 ]たちが成す集合 ]を伴う複数の `font-face$at 規則において, `unicode-range$d が重合している場合、 それらの規則が検査される順序は,それらが定義された順序の逆順になる。 したがって、 最後に定義されている規則が,所与の文字に対し最初に検査される。 ◎ If the unicode ranges overlap for a set of @font-face rules with the same family and style descriptor values, the rules are ordered in the reverse order they were defined; the last rule defined is the first to be checked for a given character.
特定の[ 言語たち/文字たち ]用の範囲を与える例: ◎ Example ranges for specific languages or characters:
- `unicode-range^d: `U+A5^v;
- 単独の符号位置 — [円/元]通貨記号 ◎ a single code point, the yen/yuan symbol
- `unicode-range^d: `U+0-7F^v;
- 基本~ASCII文字~用の符号範囲 ◎ code range for basic ASCII characters
- `unicode-range^d: `U+590-5ff^v;
- ~Hebrew文字~用の符号範囲 ◎ code range for Hebrew characters
- `unicode-range^d: `U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F^v;
- ~Japanese[ 漢字, 平仮名, 片仮名 ]文字, および[円/元]通貨記号~用の符号範囲 ◎ code range for Japanese kanji, hiragana and katakana characters plus yen/yuan symbol
BBC はニュースサービスを様々な言語で供しているが、 その多くは,すべての~platformに渡りきちんと~supportされているとは限らない。 `font-face$at 規則を利用すれば、 BBC は,これらのどの言語~用の~fontも[ 手動による~font~downloadにより すでに行われていた ]かのように,供せるようになろう。 ◎ The BBC provides news services in a wide variety of languages, many that are not well supported across all platforms. Using an @font-face rule, the BBC could provide a font for any of these languages, as it already does via a manual font download.
@font-face { font-family: BBCBengali; src: url(fonts/BBCBengali.woff) format(woff); unicode-range: U+00-FF, U+980-9FF; }
技術-文書では、 多岐に渡る記号を要することが多い。 STIX ~font~projectは、[ 標準~化された仕方で,多岐に渡る技術用の植字-法を~supportするための~font ]を供することを目指している~projectの一つである。 下の例に,[ ~Unicode内の多数の[ 数学-記号/技術-記号 ]用の~glyph ]を供する~fontの利用を示す: ◎ Technical documents often require a wide range of symbols. The STIX Fonts project is one project aimed at providing fonts to support a wide range of technical typesetting in a standardized way. The example below shows the use of a font that provides glyphs for many of the mathematical and technical symbol ranges within Unicode:
@font-face { font-family: STIXGeneral; src: local(STIXGeneral), url(/stixfonts/STIXGeneral.otf); unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF; }
次の例は、 作者が,[ ~Japanese~fontの中で利用される~Latin文字 ]の~glyphを[ 異なる~fontからの~glyph ]で上書きする方法を示している。 1 個目の規則は、 範囲を指定していないので,既定で全~範囲になる。 2 個目の規則の中で指定される範囲は,重合することになるが、 より後の方で定義されているので,より優先される。 ◎ This example shows how an author can override the glyphs used for Latin characters in a Japanese font with glyphs from a different font. The first rule specifies no range so it defaults to the entire range. The range specified in the second rule overlaps but takes precedence because it is defined later.
@font-face {
font-family: JapaneseWithGentium;
src: local(MSMincho);
/*
範囲は指定されていないので、既定で全~範囲になる。
◎
no range specified, defaults to entire range
*/
}
@font-face {
font-family: JapaneseWithGentium;
src: url(../fonts/Gentium.woff);
unicode-range: U+0-2FF;
}
[ ~Latin, ~Japanese, その他 ]の文字を — 帯域幅を最適化するために — それぞれ異なる~font~fileに分離して構築される,ある族を考える: ◎ Consider a family constructed to optimize bandwidth by separating out Latin, Japanese and other characters into different font files:
/* ~fallback~font — ~size: 4.5MB ◎ fallback font - size: 4.5MB */ @font-face { font-family: DroidSans; src: url(DroidSansFallback.woff); /* 範囲は指定されていないので、 既定で全~範囲になる。 ◎ no range specified, defaults to entire range */ } /* ~Japanese~glyph — ~size: 1.2MB ◎ Japanese glyphs - size: 1.2MB */ @font-face { font-family: DroidSans; src: url(DroidSansJapanese.woff); unicode-range: U+3000-9FFF, U+ff??; } /* いくつかの約物と記号も伴われた ~Latin, ~Greek, ~Cyrillic — ~size: 190KB ◎ Latin, Greek, Cyrillic along with some punctuation and symbols - size: 190KB */ @font-face { font-family: DroidSans; src: url(DroidSans.woff); unicode-range: U+000-5FF, U+1e00-1fff, U+2000-2300; }
単純な~Latin~text用には、 ~Latin文字~用の~fontのみが~downloadされる: ◎ For simple Latin text, only the font for Latin characters is downloaded:
body { font-family: DroidSans; } <p>This is that</p>
この場合、 ~UAは,最初に[ ~Latin文字を包含している~font( DroidSans.woff ) ]に対し `unicode-range$d を検査する。 上に示した文字~すべては,範囲 U+0-5FF に入るので、 ~UAは,その~fontを~downloadした上で,~textをその~fontにより描画する。 ◎ In this case the user agent first checks the unicode-range for the font containing Latin characters (DroidSans.woff). Since all the characters above are in the range U+0-5FF, the user agent downloads the font and renders the text with that font.
次に、 矢印~文字( ⇨ )を利用する~textを考える: ◎ Next, consider text that makes use of an arrow character (⇨):
<p>This ⇨ that<p>
ここでも、 ~UAは,最初に[ ~Latin文字を包含している~font ]の `unicode-range$d を検査する。 矢印の符号位置( `21E8^U )は範囲 `U+2000-2300^v に入るので、~UAは,その~fontを~downloadする。 しかしながら,~Latin~fontには この文字に合致している~glyphは無いので、 この符号位置は[ ~font照合~用に利用される有効 `unicode-range^d ]から除外される。 次に、 ~UAは,~Japanese~fontを評価する。 ~Japanese~fontに対する `unicode-range^d は[ `U+3000-9FFF^v, および `U+ff??^v ]であり, `21E8^U は含まれていないので、 ~UAは,その~Japanese~fontを~downloadしない。 次に、 ~fallback~fontが考慮される。 ~fallback~font用の `font-face$at 規則は, `unicode-range^d を定義していないので、 その値は,既定の値 — すべての~Unicode符号位置が成す集合 — になる。 ~fallback~fontが,矢印~文字を描画するために~downloadされて利用される。 ◎ The user agent again first checks the unicode-range of the font containing Latin characters. Since U+2000-2300 includes the arrow code point (U+21E8), the user agent downloads the font. For this character however the Latin font does not have a matching glyph, so the effective unicode-range used for font matching excludes this code point. Next, the user agent evaluates the Japanese font. The unicode-range for the Japanese font, U+3000-9FFF and U+ff??, does not include U+21E8, so the user agent does not download the Japanese font. Next the fallback font is considered. The @font-face rule for the fallback font does not define unicode-range so its value defaults to the range of all Unicode code points. The fallback font is downloaded and used to render the arrow character.
4.6. ~font特能: `font-feature-settings^d, `font-variation-settings^d 記述子
◎述 `font-feature-settings@d ◎用 `font-face$at ◎値 `normal^v | `feature-tag-value$t# ◎初 `normal^v ◎表終 ◎述 `font-variation-settings@d ◎用 `font-face$at ◎値 `normal^v | [ `string$t `number$t ]# ◎初 `normal^v ◎表終これらの記述子は、[ `font-face$at 規則により定義される~font ]の描画-時に適用される初期~設定群を定義する。 これらは、 ~fontの選定には影響しない。 各種 値は、 `~CSS全域~keyword$は~~除外されることを除き,対応する[ `font-feature-settings$p, `font-variation-settings$p ]~prop用に定義されるものに一致する。 複数の[ ~font特能[ 記述子/~prop/ 異体 ], および省略可能な`有名~instance$ ]が利用されるときの[ ~text描画における累積的な効果 ]についての詳細は、 `§ ~font特能と異体の解決$ にて。 ◎ These descriptors define initial settings that apply when the font defined by an @font-face rule is rendered. They do not affect font selection. Values are identical to those defined for the corresponding font-feature-settings and font-variation-settings properties defined below except that the CSS-wide keywords are omitted. When multiple font feature descriptors, properties, or variations are used, optionally along with a named instance, the cumulative effect on text rendering is detailed in the section § 7 Font Feature and Variation Resolution below.
これらの記述子は、 要素~全体ではなく, `font-face$at 規則が表現する~font~objに対し[ 特能, 異体 ]値を設定する。 したがって,これらの記述子を利用した場合、 `§ ~clusterの照合-法$に因り, 要素~内の一部の~glyphしか その特能で描画されないこともある。 ◎ These descriptors set features and variation values on the font object which the @font-face rule represents, rather than on an entire element. Therefore, when using these descriptors, only some glyphs in an element may be rendered with that feature, due to § 5.3 Cluster matching.
4.7. 可変~fontからの有名~instanceの利用-法: `font-named-instance^d 記述子
【 この節に現れる “有名~instance( `named instance^en )” の概念が何を意味するのかは、 何も述べられていない。 】
◎述 `font-named-instance@d ◎用 `font-face$at ◎値 `auto^v | `string$t ◎初 `auto^v ◎表終`font-named-instance$d 記述子が `auto^v 以外の値に設定されている場合、 `§ ~font特能と異体の解決$ における適切な段階にて,~font~fileを検分して、[ ~font内の`有名~instance$ ]のうち[ その地域-化された名前は、 `§ 地域-化された名前の照合-法$ による規則に則って,所与の `string$t に等しいもの ]のうち,最初のものを見出す。 そのような有名~instanceは存在しない場合、 この記述子は値 `auto^v にされていたかのように扱われる。 他の場合、 この有名~instanceの異体~軸~値は, `§ ~font特能と異体の解決$ 内の この位置【?】に適用される。 ◎ If the font-named-instance descriptor is set to a value other than auto, then the appropriate stage in the § 7 Font Feature and Variation Resolution will inspect the font file to find the first named instance in the font which has a localized name equal to the given <string> according to the rules given in § 5.1 Localized name matching. If no such named instance exists, this descriptor is treated as if it has a value of auto. Otherwise, this named instance’s variation axis values are applied to this position in the § 7 Font Feature and Variation Resolution.
例えば,次の `font-face$at ~blockは、 名前 `Grotesque^F の~instanceを適用しつつ, `XHGT^tag 軸の値は 0.7 をとるよう上書きすることになる。 ◎ For example, the following @font-face block will apply the instance named "Grotesque" but will override the "XHGT" axis to have a value of 0.7.
@font-face { font-family: "AccuroVar"; src: url("accurovar.otf") format(opentype); font-named-instance: "Grotesque"; font-variation-settings: "XHGT" 0.7; }
注記: [ `font-weight$p / `font-width$p / `font-style$p ]~prop内に給される異体~軸~値は, `font-named-instance$d 記述子~内の値より前に適用されるので、 `有名~instance$が欲されるときは, それらの~propの値を変更する必要は無い。 ◎ Note: Because the variation axis values supplied in the font-weight, font-width, and font-style properties are applied before the value in the font-named-instance descriptor, there is no need to change the value of those properties when a named instance is desired.
4.8. ~font要請の指針
4.8.1. ~font読込ngの指針
`font-face$at 規則は、 後回し( `lazy^en )な読込ng — ~font資源は、 文書~内で利用されるときに限り~downloadされる — を許容するように設計されている。 ~stylesheetには、[ 選定された集合のみを利用するような,~fontの~library ]用に, `font-face$at 規則を含ませれる。 ~UAは、[ ~style規則~内から参照rされている~font ]のうち,[ 所与の~pageに適用-可能なもの ]に限り~downloadするモノトスル。 [ それらの~fontが~page内で~~実際に利用されるかどうか ]について考慮せずに,[ `font-face$at 規則にて定義される~font ]すべてを~downloadする~UAは、 不適合tと見なされる。 [ 文字~fallbackが生じる場合に~fontが~downloadされ得る ]下では、 ~UAは[[[ 所与の~text連なり用の `font-family$p ]の`算出d値$ ]に包含されている~font ]を~downloadしてもヨイ。 ◎ The @font-face rule is designed to allow lazy loading of font resources that are only downloaded when used within a document. A stylesheet can include @font-face rules for a library of fonts of which only a select set are used; user agents must only download those fonts that are referred to within the style rules applicable to a given page. User agents that download all fonts defined in @font-face rules without considering whether those fonts are in fact used within a page are considered non-conformant. In cases where a font might be downloaded in character fallback cases, user agents may download a font if it’s contained within the computed value of font-family for a given text run.
@font-face { font-family: GeometricModern; src: url(font.woff); } p { /* ~fontは、 `p^e 要素を伴う~pageに対しては~downloadされることになる ◎ font will be downloaded for pages with p elements */ font-family: GeometricModern, sans-serif; } h2 { /* `h2^e 要素を伴う~pageに対しては、 `Futura^F が~localに可用であっても,~fontが~downloadされ得る ◎ font may be downloaded for pages with h2 elements, even if Futura is available locally */ font-family: Futura, GeometricModern, sans-serif; }
~download可能な~fontが可用になる前に,~textな内容が読込まれた所では、 ~UAは,[ `font-face$at ~blockを成す `font-display$d 記述子 ]に則って~textを描画するモノトスル。 ~UAは,~fontの~downloadに失敗した所では、 ~textを可視になるよう表示するモノトスル。 作者には、 アリな所では — 巨大~pageが~flowし直されるのを避けるよう — ~font~list内に[ ~download可能な~fontの計量に近く合致する,~fallback~font ]を利用することを勧める。 ◎ In cases where textual content is loaded before downloadable fonts are available, user agents must render text according to the font-display descriptor of that @font-face block. In cases where the font download fails, user agents must display the text visibly. Authors are advised to use fallback fonts in their font lists that closely match the metrics of the downloadable fonts to avoid large page reflows where possible.
4.8.2. ~font~fetchingに課される要件
(`font-face^at 用に選定された `url$t から) `~fontを~fetchする@ ときは、 所与の ( `url$t %~URL, `font-face$at %規則 ) 対し:
-
%応答の処理n ~LET 所与の ( `応答$ %応答, [ ~NULL/`失敗^i/~byte~stream ] %~stream ) に対し,次を走らす手続き:
- ~IF[ %~stream ~EQ ~NULL ] ⇒ ~RET
- %~stream から,その型に則って~fontを読込む。
- `~style資源を~fetchする$( %~URL, %規則 の`親~stylesheet$, `font^l, `cors^l, %応答の処理n )
注記: このことは,作者にとっては、[ 非同一-生成元からの~fontは、 作者が許可する手続きを特定的に踏まない限り,概ね読込まれなくなる ]ことを含意する。 ~siteは、 `Access-Control-Allow-Origin$h ~HTTP~headerの利用により, 非同一-~siteから~font~dataを読込むことを明示的に許容できる。 他の【 HTTP(S) 以外の 】~schemeに対しては、 `~fetch$~algoにより許可されるものを超えて[ 定義される/要求される ]ような[ 非同一-生成元からの読込ngを許容する明示的な仕組み ]は存在しない。 ◎ Note: The implications of this for authors are that fonts will typically not be loaded cross-origin unless authors specifically take steps to permit cross-origin loads. Sites can explicitly allow cross-site loading of font data using the Access-Control-Allow-Origin HTTP header. For other schemes, no explicit mechanism to allow cross-origin loading, beyond what is permitted by the fetch algorithm, is defined or required.
下に与える例では、 文書の所在は `https://example.com/page.html^v, どの~URLも[ ~UAが~supportする妥当な~font資源 ]へ~linkしているとする。 ◎ For the examples given below, assume that a document is located at https://example.com/page.html and all URLs link to valid font resources supported by the user agent.
下の[ 各種 `src$d 記述子 の値 ]により定義される~fontは、 読込まれることになる: ◎ Fonts defined with the src descriptor values below will be loaded:
/* 同一-生成元 (すなわち,[ ~domain, ~scheme, ~port ]が文書のそれに合致する) ◎ same origin (i.e. domain, scheme, port match document) */ src: url(fonts/simple.woff); /* ~redirectを伴わない `data:^c ~URLは、 同一-生成元として扱われる ◎ data urls with no redirects are treated as same origin */ src: url("data:application/font-woff;base64,..."); /* 非同一-生成元 — ~domainが異なる ◎ cross origin, different domain */ /* が, `Access-Control-Allow-Origin^h 応答~headerは '`*^c' に設定されているとする ◎ Access-Control-Allow-Origin response header set to '*' */ src: url(http://another.example.com/fonts/simple.woff);
下の[ 各種 `src$d 記述子の値 ]により定義される~fontの読込ngは,失敗することになる(いずれも,応答の中に `Access-Control-…^h ~headerは~~無いとする): ◎ Fonts defined with the src descriptor values below will fail to load:
/* 非同一-生成元 — ~schemeが異なる ◎ cross origin, different scheme ◎ no Access-Control-xxx headers in response */ src: url(http://example.com/fonts/simple.woff); /* 非同一-生成元 — ~domainが異なる ◎ cross origin, different domain ◎ no Access-Control-xxx headers in response */ src: url(http://another.example.com/fonts/simple.woff);
4.9. `font-face^at ごとの~font表示-の制御-法: `font-display^d 記述子
`font-face$at 用の `font-display$d 記述子は、 ある書体-を,それが[ ~downloadされたかどうか, いつ利用するに準備済みになったか ]に基づいて,どう表示するかを決定する。 ◎ The font-display descriptor for @font-face determines how a font face is displayed, based on whether and when it is downloaded and ready to use.
◎述 `font-display@d ◎用 `font-face$at ◎値 `auto^v | `block$v | `swap$v | `fallback$v | `optional$v ◎初 `auto^v ◎表終注記: ~UAは、 これらのどの値に対しても, `font-display$d 構文では直に表出できないような[ 少し異なる所要時間 / より洗練された挙動 ]を利用して,利用者にとってより有用な挙動を供してもヨイ。 また、[ 作者が選んだ挙動を何か より望ましい挙動で上書きする能 ]を利用者に供してもヨイ — 例えば、 すべての~fontに対し,`阻み期間$を 0 秒にするよう強制するなど。 ◎ Note: For all of these values, user agents may use slightly different durations, or more sophisticated behaviors that can’t be directly expressed in the font-display syntax, in order to provide more useful behavior for their users. They may also provide the ability for users to override author-chosen behavior with something more desirable; for example, forcing all fonts to have a 0s block period.
- `auto^v
- ~UAが,~font表示-施策を定義する。 ◎ The font display policy is user-agent-defined.
- 注記: 多くの~browserは、 `block$v が指定するものと類似な施策を既定にしている。 ◎ Note: Many browsers have a default policy similar to that specified by block.
- `block@v
- 短い`阻み期間$(ほとんどの事例では、 3 秒が推奨される)と無限な`入替~期間$を, 書体-に与える。 ◎ Gives the font face a short block period (3s is recommended in most cases) and an infinite swap period.
- 注記: 言い換えれば, ~browserは、[ 読込まれていない場合は、先ず “不可視” ~textを描く ]が,書体-が読込まれ次第 入替える。 ◎ Note: In other words, the browser draws "invisible" text at first if it’s not loaded, but swaps the font face in as soon as it loads.
- この値を利用するのは、[ ~pageが利用-可能になるためには、 特定0の~fontで~textを描画することが要求される ]とき,それも小さな~text片に限られなければナラナイ。 ◎ This value must only be used when rendering text in a particular font is required for the page to be usable. It must only be used for small pieces of text.
-
例えば,不良に設計された “~icon~font” は、 "⎙" (印刷機)~iconを "P" の様な無関係な文字に結付けるかもしれない。 そのようなとき,~textが~fallback~fontで表示される場合、 欲される~iconでなく,意味不明な普通字が~pageに散在することになる。 この事例では、 一時的に虫食いにした方が~fallback~fontを利用するより良くなる。 ◎ For example, badly designed "icon fonts" might associate a "⎙" (printer) icon with an unrelated character like "P", so if the text is displayed with a fallback font instead there will be confusing letters scattered around the page rather than the desired icon. In this case, temporary blank spots are better than using a fallback font.
(しかしながら、 `最終的には^em ~fallback~fontが利用される — ~linkその他が まったく示されないより,~pageに意味不明な普通字が散在する方が良いので) ◎ (However, the fallback font is used eventually, as having confusing letters scattered around the page is better than having links and such never show up at all.)
もっと良い解決策は、 `§ ~accessibilityの考慮点@#a11y$にて述べられる。 ◎ A better solution is described in the Accessibility Considerations section.
- `swap@v
- 極めて短い`阻み期間$(ほとんどの事例では、 0.1 秒~以下が推奨される)と無限な`入替~期間$を, 書体-に与える。 ◎ Gives the font face an extremely small block period (100ms or less is recommended in most cases) and an infinite swap period.
- 注記: 言い換えれば,~browserは、[ 書体-が読込まれていない場合には、 即時に~fallbackで~textを描く ]が,書体-が読込まれ次第 入替える。 ◎ Note: In other words, the browser draws the text immediately with a fallback if the font face isn’t loaded, but swaps the font face in as soon as it loads.
- この値を利用するのは、[ ~pageにとって特定0の~fontによる~textの描画がごく重要であるが、 どの~fontによる描画も,依然として正しい~messageを~~伝える ]とき,それも小さな~text片に限られるベキである。 ◎ This value should only be used when rendering text in a particular font is very important for the page, but rendering in any font will still get a correct message across. It should only be used for small pieces of text.
- 例えば,ある~web~siteが ~logoの描画~用に~custom~fontを用いる場合、 その~logoを正しく描画することは,~brandingの目的には それなりに重要になるが、 他の~fontで~logoを表示しても,少なくとも~~要点はきちんと~~伝わるとき。 ◎ For example, if a website has a custom font for rendering their logo, rendering that logo correctly is fairly important for branding purposes, but displaying the logo in any font will at least get the point across without confusion.
- `fallback@v
- 極めて短い`阻み期間$(ほとんどの事例では、 0.1 秒~以下が推奨される)と 短い`入替~期間$(ほとんどの事例では、 3 秒が推奨される)を,書体-に与える。 ◎ Gives the font face an extremely small block period (100ms or less is recommended in most cases) and a short swap period (3s is recommended in most cases).
- 注記: 言い換えれば、[ 書体-が読込まれなかった場合は、 先ず~fallbackで描画される ]が,読込まれ次第 入替える。 しかしながら,それまでに時間がかかり過ぎた場合、 それ以降も — 当の~pageが存続する限り — ~fallbackが利用されることになる。 ◎ Note: In other words, the font face is rendered with a fallback at first if it’s not loaded, but it’s swapped in as soon as it loads. However, if too much time passes, the fallback will be used for the rest of the page’s lifetime instead.
- この値は、[ ~fontの利用が有用で欲されるが、 利用者にとって,~fallback~fontで~textを見ることも受容-可能である所 ]で,本文その他の~text用に利用されるベキである。 この値は、 大きな~text片に利用するのが適切になる。 ◎ This value should be used for body text, or any other text where the use of the chosen font is useful and desired, but it’s acceptable for the user to see the text in a fallback font. This value is appropriate to use for large pieces of text.
- 例えば,大きな本文~text片においては、 利用者がアリな限り素早く読み始めれるよう, 単に~textが素早く描画されることが最も重要になる。 更に,利用者が読み始めて以降は、[ 新たな~fontに入替わるに伴い,~textが不意に “ズレる” ]ことにより妨げられるべきでない — 読んでいた箇所を見つけ直すのは、 ~~面倒なので。 ◎ For example, in large pieces of body text, it’s most important just to get the text rendered quickly, so the user can begin to read as quickly as possible. Further, once the user has started reading, they shouldn’t be disturbed by the text suddenly "shifting" as a new font is swapped in, as that’s distracting and annoying to re-find where one was in the text.
- `optional@v
- ~fontが “即時に” (~textの “最初の塗り” に可用になるように)読込めたなら、 その~fontを利用する。 ◎ If the font can be loaded "immediately" (such that it’s available to be used for the "first paint" of the text), the font is used.
- 他の場合、 当の~fontは,その[ `阻み期間$, `入替~期間$ ]どちらも[ 読込nを完遂する前に失効した ]かのように扱われる。 これに因り,当の~fontが利用されない場合、 ~UAは[ ~font~downloadを中止する/ごく低優先度で~downloadする ]ことにしてもヨイ。 ~UAは、 利用者にとって有用になると予見する場合には,[ ~font~downloadを開始するのを避けて, ~fallback~fontを即時に利用する ]ことにしてもヨイ。 ◎ Otherwise, the font is treated as if its block period and swap period both expired before it finished loading. If the font is not used due to this, the user agent may choose to abort the font download, or download it with a very low priority. If the user agent believes it would be useful for the user, it may avoid even starting the font download, and proceed immediately to using a fallback font.
- `optional^v な~fontは、 読込まれたとしても, ~pageの~layoutは決して “~~急変” させないモノトスル。 ~UAは、 そのような~fontを利用している要素の描画を — [ 場合によっては遅い,局所的な~cache ]から読込む時間を与えるため — 少し遅延することにしてもヨイが, ~textが~fallback~fontで~screenに塗られて以降は — ~pageが存続する限り — `optional^v な~fontでは描画しないモノトスル。 ◎ An optional font must never cause the layout of the page to "jump" as it loads in. A user agent may choose to slightly delay rendering an element using an optional font to give it time to load from a possibly-slow local cache, but once the text has been painted to the screen with a fallback font instead, it must not be rendered with the optional font for the rest of the page’s lifetime.
- この値は、[ 選ばれた~fontは純粋に装飾的で, “あったらいい感じ” になる所 ]で,本文その他の~text用に利用されるベキである。 それは、 利用者が~web~pageを最初に訪問したとき[ 何もかもが~~一挙に完璧に見えるまで長く待機するより, 素早く描画する方が重要である ]ときには,いつでも利用されるベキである。 ◎ This value should be used for body text, or any other text where the chosen font is purely a decorative "nice-to-have". It should be used anytime it is more important that the web page render quickly on first visit, than it is that the user wait a longer time to see everything perfect immediately.
-
例えば、 本文~textは,~browserの既定の~fontで完璧に読める — ~download可能な書体-の方が、 より見栄えして,~siteの美観にも良くかみ合うかもしれないが。 ~siteへの初回の訪問者は、 一般に,~siteの表示が~~美麗になることより, 素早く利用-可能になる方をずっと気にする。 `optional$v は、 そのための良好な挙動を供する。 後で再訪したときは、 欲された書体-を~downloadし終えているかもしれず,[ 初回の訪問/後続な訪問 ]を遅めることなく “意図される” 体験を与えれるので。 ◎ For example, body text is perfectly readable in one of the browser default fonts, though a downloadable font face might be more attractive and mesh with the site’s aesthetics better. First time visitors to a site generally care far more about the site being quickly usable than they do about the finer points of its display, and optional provides a good behavior for them. If they return later, the desired font faces might have finished downloading, giving them the "intended" experience without slowing down either their first or subsequent visits.
接続がごく遅い利用者は “意図される” 体験を以後も受取らないかもしれないが、 `optional$v は — 読込むまで長くかかり過ぎたため,あきらめて他所へ行くことなく — ~siteを実際に`利用できる^emことを確保する。 ◎ Users on very slow connections might not ever receive the "intended" experience, but optional ensures they can actually use the site, rather than quitting and going elsewhere because the site takes too long to load.
-
注記: `optional$v な~fontが何らかの~textの描画に利用される時点で可用になる機会cを増やすため、 ~UAには,[ ~accessを速くする/ 当の~textの描画をいつ遅延するに価するか判定する ]ための経験則を使役することが推奨される — 例えば: ~fontは~HTML内で事前に読込まれたかどうか検査する/ ~stylesheet内に見つかり次第,~font~data【!~file】を~memory~cache内の遅い所から速い所へ移動する(~pageに利用されるかどうか既知になる前に)など。 ◎ To increase the chance that an optional font will be available in time to use for rendering some text, it is recommended that the user agent employ heuristics to make it faster to access or to judge when it would be worthwhile to delay rendering some text, such as checking if the font is preloaded in HTML, or moving the file from slower to faster in-memory caches as soon as it is seen in a stylesheet (before it’s known whether it will be used on the page).
しかしながら,作者は、 これらの経験則には依拠できない — `optional$v 値は、[ 当の~fontが決して利用されない結果にもなり得る ]ものと解さなければならない。 ~fontが利用される確約をいくぶん高くする必要がある作者は、 `fallback$v 値を利用すること考慮するベキである。 ◎ These heuristics cannot be relied upon by authors, however; it must be understood that the optional value can result in the font never being used. If a somewhat higher assurance of the font being used is needed, authors should consider using the fallback value.
4.9.1. `font-feature-values^at 介する,~font族ごとの~font表示の制御-法
`font-feature-values$at 用の `~font-displayFV$d 記述子は、[ 同じ~font族を~targetにしている各 `font-face$at 規則 ]用に “既定の” `font-display$d 値を設定することにより, ~font族がどう表示されるかを決定する。 `font-face^at 規則~内で `font-display$d が省略されたときは、 ~UAは,[ `font-feature-values$at を介して `font-display^d 値が設定されている ]ならば,それを関連な~font族~用に利用する — 他の場合、 `font-display$d は,既定の `auto^v になる。 ◎ The font-display descriptor for @font-feature-values determines how a font family is displayed, by setting the "default" font-display value for @font-face rules targeting the same font family. When font-display is omitted in an @font-face rule, the user agent uses the font-display value set via @font-feature-values for the relevant font-family if one is set, and otherwise defaults to font-display: auto.
この仕組みは、 ~font族~全体 用の既定の表示-施策を設定するために利用できる — 開発者は、 自身が直に制御していない `font-face$at 規則~用に表示-施策を設定-可能になる。 例えば,~fontが第三者-主体~font鋳造所( `foundry^en )から~serveされているとき、 開発者は `font-face^at 規則を制御しなくとも, 供された~font族~用に既定の `font-display^d 施策を設定-可能になる。 また,既定の表示-施策は~font族~全体に適用されるので、 それを設定する能は, “脅迫状” 効果 (すなわち,文字たちが不釣り合いな書体-で表示される) を避けるためにも有用になる。 ◎ This mechanism can be used to set a default display policy for an entire font-family, and enables developers to set a display policy for @font-face rules that are not directly under their control. For example, when a font is served by a third-party font foundry, the developer does not control the @font-face rules but is still able to set a default font-display policy for the provided font-family. The ability to set a default policy for an entire font-family is also useful to avoid the ransom note effect (i.e. mismatched font faces) because the display policy is then applied to the entire font family.
◎述 `~font-displayFV@d ◎用 `font-feature-values$at ◎値 `auto^v | `block^v | `swap^v | `fallback^v | `optional^v ◎初 `auto^v ◎表終4.10. 既定の~font言語の上書き法: `font-language-override^d 記述子
◎述 `font-language-override@d ◎用 `font-face$at ◎値 `normal^v | `string$t ◎初 `normal^v ◎表終この記述子は、[ `font-face@at 規則により定義された~fontが,描画されるとき ]に適用する初期~設定群を定義する。 それは、 ~font選定には影響しない。 各種 値は、 `~CSS全域~keyword$は~~除外されることを除き, `font-language-override$p ~prop用に定義されるものに一致する。 複数の[ ~font特能[ 記述子/~prop/ 異体 ]]が利用されるときの[ ~text描画における累積的な効果 ]についての詳細は、 `§ ~font特能と異体の解決$ にて。 ◎ This descriptor defines initial settings that apply when the font defined by an @font-face rule is rendered. It does not affect font selection. Values are identical to those defined for the font-language-override property defined below except that the value inherit is omitted. When multiple font feature descriptors, properties, or variations are used, the cumulative effect on text rendering is detailed in the section § 7 Font Feature and Variation Resolution below.
4.11. 既定の~font計量の上書き法: `ascent-override^d, `descent-override^d, `line-gap-override^d 記述子
◎述 `ascent-override@d ◎用 `font-face$at ◎値 `normal^v | `percentage [0,∞]$t ◎初 `normal^v ◎表終 ◎述 `descent-override@d ◎用 `font-face$at ◎値 `normal^v | `percentage [0,∞]$t ◎初 `normal^v ◎表終 ◎述 `line-gap-override@d ◎用 `font-face$at ◎値 `normal^v | `percentage [0,∞]$t ◎初 `normal^v ◎表終[ `ascent-override$d / `descent-override$d / `line-gap-override$d ]記述子は、当の~fontの[ `~ascent計量$/ `~descent計量$/ `行l隙間~計量$ ]を定義する。 ◎ The ascent-override, descent-override and line-gap-override descriptors define the ascent metric, descent metric and line gap metric of the font, respectively.
記述子の値が `normal^v の場合、 対応する計量~値は~font~fileから直に得される。 ◎ When the descriptor value is normal, the corresponding metric value is obtained from the font file directly.
注記: ~UAは、 計量~値としての~dataを当の~font~fileとは異なる所から[ 取り出すこともある/してもよい ]【?】 — その結果は異なる~text~layoutになる。 ◎ Note: User agents may draw data from different places from the font file as the metric values, which results in different text layouts.
記述子の値が百分率の場合、 対応する計量~値は,使用~font~sizeに所与の百分率を乗算して解決される。 負な値は、 構文解析-時に無効になる。 ◎ When the descriptor value is a percentage, the corresponding metric value is resolved as the given percentage multiplied by the used font size. Negative values are invalid at parse time.
百分率は、 要素ごとに異なる~font~sizeに解決される。 ◎ The percentage is resolved against different font sizes for different elements.
@font-face { font-family: overridden-font; ascent-override: 50%; ... } <span style="font-family: overridden-font; font-size: 20px;"> 外縁 span の内容 <span style="font-size: 150%;"> 内縁 span の内容 </span> </span>
外縁 `span^e は `~ascent計量$に値 `10px^v を利用する一方で、 内縁 `span^e は `15px^v を利用することになる。 ◎ The outer span uses an ascent value of 10px, whereas the inner span uses 15px.
~localな~fallback~fontの計量を,首な~web~fontに合致するよう上書きすることもできる。 そうすれば、 ~fallbackから首な~fontへ切替わっても, ~layoutがズレるのは抑制される。 ◎ We may override the metrics of a local fallback font to match the primary font, which is a web font. This reduces layout shifting when switching from fallback to the primary font.
@font-face {
font-family: cool-web-font;
src: url("https://example.com/font.woff");
}
@font-face {
font-family: fallback-to-local;
src: local(Some Local Font);
/*
計量~値を `cool-web-font^v に合致するよう上書きする
◎
Override metric values to match cool-web-font
*/
ascent-override: 125%;
descent-override: 25%;
line-gap-override: 0%;
}
<div style="font-family: cool-web-font, fallback-to-local">画像~titleはここに【!Title goes here】</div>
<img src="https://example.com/largeimage" alt="ズレないことが求まれる大きな画像【!A large image that you don’t want to shift】">
~UAが~web~fontの読込ngを完遂して,それを利用するよう切替えても、 画像は縦方向にズラされない。 ◎ The image will not be vertically shifted when the user agent finishes loading and switches to use the web font.
5. ~font照合~algo
個々の~text連なりが,どのようにして~fontに結付けられるかは、 以下の~algoに述べられる。 ~text連なりの中の各~文字ごとに,[ その文字~用の~glyphを包含している~font族 ]が選ばれ,特定0の書体-が選定される。 ◎ The algorithm below describes how fonts are associated with individual runs of text. For each character in the run a font family is chosen and a particular font face is selected containing a glyph for that character.
~font照合~algoにて可用な`~install済み~font$たちが成す集合は、 明示的に未定義とする。 ◎ The set of installed fonts available to the Font Matching Algorithm is explicitly undefined.
~install済み~fontたちが成す既定の集合は、[ ~UA, ~platform, ~locale ]に応じて変わる — 利用者が次を~custom化-可能になることが重要である ⇒# ~install済み~fontのうち,どれが~web~pageの描画~用に可用になるか/ 可用になるもののうち,どれが汎用~font族に対応付けられるか ◎ The default set of installed fonts will vary by UA, platform, and locale; it is important that users be able to customise which installed fonts are available for rendering web pages and to which generic font families, if any, these fonts are mapped.
~UAは、 次のいずれを選んでもヨイ: ◎ ↓
- ~install済み~fontをすべて~webに公開する — 当の~fontがどう~installされたかに関わらず。 そうすれば、 利用者の首な言語が利用者の~OSに伴って出荷された どの~fontからも~supportされない場合でも, 利用者にとって国際-化は良くなる見込みが高い。 ◎ UAs may choose to expose all installed fonts to the web, regardless of how that font was installed; doing so is likely to have good internationalization properties for users whose primary language is not supported by fonts shipping with their operating system.
- 初期~時は、 利用者が~installした~fontを公開しない — ~web上の~privacyを援助するため。 利用者が~installした~install済み~fontたちが成す集合は、 ~webをまたがって利用者を追跡するために追跡~行路として利用されることが多い。 この集合は、 利用者が — 各自の必要に則って — ~fontを[ 追加-, 除去- ]可能になるべきである。 ◎ UAs may alternatively choose to not initially expose any user-installed fonts to aid privacy on the web; for the set of installed fonts a user has installed is often used as a tracking vector to track users across the web. Users should then be able to add to or remove fonts from that set, according to their needs.
- 折衷な~approach — 初期~時は、 利用者が~installした~fontのうち一部を国際-化~用に公開して,他は公開しない。 ここでも,この開始-時の集合は、 利用者が~custom化-可能になるべきである。 ◎ UAs may choose a hybrid approach, where some user-installed fonts are initially exposed for internationalization, but others aren’t. Again, users should be able to customise this starting set.
~UAには、 次が期待される: ◎ ↓
- 国際-化と~privacyの間で~balanceをとるよう, 情報【利用者の選好など】を得た上で[ 既定では,どの~fontを~webに公開するか ]について裁定を下す。 ◎ UAs are expected to make informed decisions on which fonts they expose to the web by default, so as to balance between internationalization and privacy.\
- 各自の特定0の必要に見合うよう, ~fontを追加したり外すための簡便な手段を利用者に供する。 ◎ UAs are expected to also provide a convenient means for users to add and subtract fonts to meet their particular needs.
5.1. 地域-化された名前の照合-法
一部の~font~file形式では、 書体-が複数の[[ 特定0の文字列 (例:族~名や`有名~instance$) ]の地域-化~version ]を持つことも許容されている。 ~UAは、 それを認識した上で,[ 下層~platformによる地域-化, 利用する~system~API, 文書の符号化法 ]からは独立に, これらの名前~すべてを正しく照合するモノトスル。 ◎ Some font file formats allow font faces to carry multiple localizations of a particular string (e.g. family name or named instance). User agents must recognize and correctly match all of these names independent of the underlying platform localization, system API used, or document encoding.
例えば、 下に挙げる各~fontに対し,作者は `font-family$p ~prop内で[ ~Latin名, 地域-化された名前 ]のどちらも利用でき、 その結果は,すべての~system上で一致することになる: ◎ For example, for each of the fonts listed below, the author can use either the Latin name or the localized name in the font-family property, and the results will be identical on all systems:
~Latin名 | 地域-化された名前 |
---|---|
GulimChe | 굴림체 |
Hiragino Kaku Gothic Pro | ヒラギノ角ゴ Pro |
Meiryo | メイリオ |
MingLiu | 細明體 |
MS Mincho | MS 明朝 |
Raanana | רעננה |
~UAは、 これらの名前を, ~Unicode仕様 `UNICODE$r にて要旨されている[ “`Default Caseless Matching^en” ~algo ]を利用して,文字大小無視の下で照合するモノトスル。 この~algoの詳細は、 その仕様の[ § 3.13 “`Default Case Algorithms^en” ]に示されている。 特に,この~algoを適用するときは、[ 文字列を正規化しない,かつ 言語に特有な いかなる誂えも適用しない ]モノトスル。 この~algoが指定する大文字正規化~methodは、[ Unicode Character Database の~file "CaseFolding.txt" ]の中の[ "status" ~fieldに[ "C" または "F" ]が伴われた,文字大小~対応付け ]を利用する。 ◎ User agents must match these names case insensitively, using the "Default Caseless Matching" algorithm outlined in the Unicode specification [UNICODE]. This algorithm is detailed in section 3.13 entitled "Default Case Algorithms". Specifically, the algorithm must be applied without normalizing the strings involved and without applying any language-specific tailorings. The case folding method specified by this algorithm uses the case mappings with status field "C" or "F" in the CaseFolding.txt file of the Unicode Character Database.
注記: このことは,作者にとっては、 次を意味する: ~font族~名は、 その名前が[ ~platform~fontの中, [ ~stylesheetに包含されている `font-face$at 規則 ]の中 ]どちらに存在するかを問わず,文字大小無視の下で照合される。 作者は、 特に[ 発音区別符などの結合~文字 ]を利用しているときは,[ 当の名前が,実際の~font族~名に整合な文字~並びを成す ]ことを確保するよう~careするべきである。 例えば、 ある族~名が[ 小文字の "a" ( `0061^U ), `COMBINING RING ABOVE^cn ( `030A^U ) ]が成す並びを包含する場合、 その結合~文字~並びに代えて[ 合成済みな,小文字の ring 文字 ( `00E5^U, "å" ) ]を利用する名前とは — 見かけ上は一致するが — 合致しないことになる。 ◎ Note: For authors this means that font family names are matched case insensitively, whether those names exist in a platform font or in the @font-face rules contained in a stylesheet. Authors should take care to ensure that names use a character sequence consistent with the actual font family name, particularly when using combining characters such as diacritical marks. For example, a family name that contains a lowercase a (U+0061) followed by a combining ring (U+030A) will not match a name that looks identical but which uses the precomposed lowercase a-ring character (U+00E5) instead of the combining sequence.
注記: 実装者は、[ 所与の[ 大小無し文字列~比較の実装 ]が,この精確な~algoを利用しているかどうか ]を検証yして,[ 所与の[ ~platformの文字列~照合~algo ]が,それに従っている ]ものと見做さないよう~careするべきである — これらの多くが、[ ~localeに特有な挙動を伴う/ 何らかの~levelの文字列~正規化を利用している ]ので。 ◎ Note: Implementors should take care to verify that a given caseless string comparison implementation uses this precise algorithm and not assume that a given platform string matching routine follows it, as many of these have locale-specific behavior or use some level of string normalization.
5.2. ~font~styleの照合-法
~text連なり内の所与の文字~用に~fontを選ぶための手続-は,概略的には、 `font-family$p ~propの値を成す各~名前を 【合致する~fontが見出されるまで】 反復して,名前に対応する~font族に対し次を遂行する: ◎ The procedure for choosing a font for a given character in a run of text consists of iterating over the font families named by the font-family property,\
- 他の~font~propに基づいて, 適切な~styleを伴う書体-を選定する。 ◎ selecting a font face with the appropriate style based on other font properties\
- 所与の文字~用の~glyphが存在するかどうかを決定する。 これは、 ~fontの `文字~map@ — 各~文字を それ用の既定の~glyphに対応付ける~data — を利用して行われる。 ◎ and then determining whether a glyph exists for the given character. This is done using the character map of the font, data which maps characters to the default glyph for that character.\
~fontは、 ~AND↓ を満たすならば,所与の文字 %文字 を `~support@ するものと見なされる: ◎ A font is considered to support a given character if\
- %文字 は~fontの`文字~map$に包含されている。 ◎ (1) the character is contained in the font’s character map and\
- %文字 を包含している用字系から要求される場合は、 その文字~用の形状付け情報が【当の~fontにて】可用である。 ◎ (2) if required by the containing script, shaping information is available for that character.
旧来の~fontには、 所与の文字を`文字~map$の中に含みつつ,[ その文字を包含している~text連なり ]を正しく描画するために必要yな,形状付け情報 (例: `~OpenType~layout~table@~OTSPEC/ttochap1$ / `~Graphite~table@https://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_techAbout$) を欠いているものもある。 ◎ Some legacy fonts might include a given character in the character map but lack the shaping information (e.g. OpenType layout tables or Graphite tables) necessary for correctly rendering text runs containing that character.
[ 基底~文字, 1 個以上の結合~文字 ]からなる符号位置~連列の扱いは、 少し異なる — それについては、 `§ ~clusterの照合-法$ を見よ。 ◎ Codepoint sequences consisting of a base character followed by a sequence of combining characters are treated slightly differently, see the section on cluster matching below.
この手続-においては、 所与の~font族~用の `既定の書体@ は,[ すべての~font~style~propが,各自の初期~値に設定されている ]としたとき選定される書体として定義される。 ◎ For this procedure, the default face for a given font family is defined to be the face that would be selected if all font style properties were set to their initial value.
手続-は、 ~text連なり内の所与の文字に対し, 以下に従うモノトスル: ◎ ↓
-
~text連なりに適用される `font-family$p ~propの算出d値を成す ~EACH( %族~名 ) に対し: ◎ Using the computed font property values for a given element,\
-
%族~名 に合致する~font族を次に従って見出すよう試みる: ◎ the user agent starts with the first family name specified by the font-family property.
- %族~名 は汎用~族~keywordである場合 ⇒ 利用することになる適切な~font族~名を検索した結果 — 利用する汎用~font族を[ 包含している要素の言語や, 所与の文字が属する~Unicode範囲 ]に基づいて,選んでもヨイ。 ◎ If the family name is a generic family keyword, the user agent looks up the appropriate font family name to be used. User agents may choose the generic font family to use based on the language of the containing element or the Unicode range of the character.
-
他の場合,[ `font-face$at 規則を介して定義される~font ]たちのうち, %族~名 に合致する族を `§ 地域-化された名前の照合-法$ にて要旨したとおり見出すよう試みる: ◎ For other family names, the user agent attempts to find the family name among fonts defined via @font-face rules and then among available installed fonts (this may include font aliases), matching names with a § 5.1 Localized name matching as outlined in the section above.\
- [ `font-face$at 規則の中で与えられた書体 ]用に定義されている~font資源が,[ 可用でない, または 無効な~font~dataを包含している ]場合 ⇒ その書体は,その族の中に無いものと扱うべきである。 ◎ If the font resources defined for a given face in an @font-face rule are either not available or contain invalid font data, then the face should be treated as not present in the family.\
- [ `font-face$at 規則を介して定義される族 ]用の書体が無い場合 ⇒ その族は,欠落なものと扱うベキであり、 同じ名前の~platform~font【`~install済み~font$】とは照合しないモノトスル。 ◎ If no faces are present for a family defined via @font-face rules, the family should be treated as missing; matching a platform font with the same name must not occur in this case.
- 前項にて,合致する族を見出せなかった場合 ⇒ 可用な`~install済み~font$ (これは~font別名を含むこともある) の中から, %族~名 に合致する族を `§ 地域-化された名前の照合-法$ にて要旨したとおり見出すよう試みる ◎ ↑
~IF[ 合致する~font族は見出されなかった ] ⇒ ~CONTINUE ◎ ↑
-
この段は、 合致した~font族 %~font族 内の書体-たちが成す集合 %書体~群 を組立てた上で、 他の~font~propを利用して, %書体~群 から単独の書体へ狭める。 ◎ ↓
%書体~群 内には, ある範囲の[ `font-width$p, `font-style$p, `font-weight$p ]~propを~supportできる書体-が在るかもしれない。 その事例では、 この~algoは,[ 各~supportされる値の組合nが, %書体~群 内で一意な~fontである ]かのように続行する。 そのような~fontがこの~algoにより最終的に選定された場合には、[ `font-width$p, `font-style$p, `font-weight$p ]用の特定0の値たちを[ ~layout/描画 ]が生じる前に,[ `§ ~font特能と異体の解決@font-feature-variation-resolution$にて詳細される, `~font異体を適用する段@#apply-font-matching-variations$ ]にて適用するモノトスル。 ◎ If a font family match occurs, the user agent assembles the set of font faces in that family and then narrows the set to a single face using other font properties in the order given below.\ Fonts might be present in this group which can support a range of font-width, font-style, or font-weight properties. In this case, the algorithm proceeds as if each supported combination of values is a unique font in the set.\ If such a font is ultimately selected by this algorithm, particular values for font-width, font-style, and font-weight must be applied before any layout or rendering occurs.\ The application of these values must be applied in the Apply font matching variations step detailed in § 7 Font Feature and Variation Resolution.\
[ `font-face$at 規則を介して定義される書体 ]のうち[ `unicode-range$d のみ異なり,他の記述子の値は互いに一致するもの ]たちが成す~groupは、 この段においては, `組成-体f@ と称される単独の書体を成すものと見なされる。 ◎ A group of faces defined via @font-face rules with identical font descriptor values but differing unicode-range values are considered to be a single composite face for this step:
- %書体~群 を `font-width$p に基づいて狭める… 【以下、この段の内容は未訳。】 ◎ font-width is tried first. …
- %書体~群 を `font-style$p に基づいて狭める… 【以下、この段の内容は未訳。】 ◎ font-style is tried next. …
- %書体~群 を `font-weight$p に基づいて狭める… 【以下、この段の内容は未訳。】 ◎ font-weight is matched next. …
-
%書体~群 を `font-size$p に基づいて狭める ⇒ %書体~群 から次を満たすもの以外の書体を除去する ⇒ ~sizeが[ ~UAに依存する許容差 ]の中で `font-size$p に合致する
(概して、 拡縮-可能な~font用の~sizeは,最も近い[ ~pixelの整数倍~size ]に丸められる一方、 ~bitmap化された~font用の許容差は 20% くらいの大きさになる)。 更なる算出 — 例:他の~propにおける `em^u 値による~size — は、 `font-size$p の指定d値ではなく,使用~値に基づく。
◎ font-size must be matched within a UA-dependent margin of tolerance. (Typically, sizes for scalable fonts are rounded to the nearest whole pixel, while the tolerance for bitmapped fonts could be as large as 20%.) Further computations, e.g., by em values in other properties, are based on the font-size value that is used, not the one that is specified. - ~IF[ %書体~群 は空である ] ⇒ ~CONTINUE ◎ ↓↓
- %書体~群 を成す書体-たちから一つを選ぶ — どの書体-が選ばれるかは,~UAや~OS~platformごとに相違し得るが、 同じ文書~内の要素どうしでは,相違しないモノトスル。 ◎ Note that more than one font might be remaining in the matching set after performing the above steps. If so, the user agent must choose a single font from the matching set and continue these steps with it. The choice of which font to choose can differ between multiple user agents and multiple operating system platforms; however, it must not differ between two elements in the same document.
-
~IF[ 前~段により選ばれた書体 %書体 は所与の文字~用の~glyphを包含する ]: ◎ ↓↓
-
%書体 は `font-face$at 規則を介して定義されている場合、 次の手続-を利用して,単独の書体-【!~font】を選定する: ◎ If the matched face is defined via @font-face rules, user agents must use the procedure below to select a single font:
- [ %書体 用の資源は,まだ読込まれていない ]かつ[ 所与の文字は `unicode-range$d 記述子の値により定義される文字~範囲に含まれている ]場合 ⇒ その資源を読込む ◎ If the font resource has not been loaded and the range of characters defined by the unicode-range descriptor value includes the character in question, load the font.
- ~downloadした後, %書体 の`有効~文字~map$が所与の文字を~supportする場合 ⇒ その書体-【!~font】を選定する ◎ After downloading, if the effective character map supports the character in question, select that font.
合致した書体が`組成-体f$である場合、 `組成-体f$を成す各~書体に対し[ それらに対応する `font-face$at 規則~定義たち【の出現順序】の逆順 ]に上の手続-を適用する。 ◎ When the matched face is a composite face, user agents must use the procedure above on each of the faces in the composite face in reverse order of @font-face rule definition.
~downloadしている間は、 次のどちらかに従うモノトスル: ◎ While the download occurs, user agents must either\
- ~downloadし終えるまで待機する ◎ wait until the font is downloaded\
- まずは代用された~font計量の下で描画してから、 ~download後に描画し直す ◎ or render once with substituted font metrics and render again once the font is downloaded.
-
-
~ELSE ⇒ ~CONTINUE ◎ ↑ If no matching face exists or the matched face does not contain a glyph for the character to be rendered,\ the next family name is selected and the previous three steps repeated.\
ただし,例外として、[ 当の族の中の他の書体からの~glyphは所与の~glyphを~supportする ]かつ[ `font-synthesis$p ~propの値により,これらの書体の合成は許可される ]場合には,[ `既定の書体$を合成的に~oblique化した~version ]で代用してもヨイ — 例えば,~italic体fが[ ~Arabic用の~glyph ]を~supportしていない場合、[ ~regular体fの合成な~italic~version ]を利用してもヨイ。 ◎ Glyphs from other faces in the family are not considered. The only exception is that user agents may optionally substitute a synthetically obliqued version of the default face if that face supports a given glyph and synthesis of these faces is permitted by the value of the font-synthesis property. For example, a synthetic italic version of the regular face might be used if the italic face doesn’t support glyphs for Arabic.
-
-
どの~font族にも,合致する書体を見出せなかった場合: ◎ If there are no more font families to be evaluated and no matching face has been found,\
- 【実装定義な】 `~install済み~font~fallback@ 手続-を遂行して, 【`~install済み~font$から】 所与の文字に最良に合致する書体を見出す — その結果は、 ~UAごとに変わり得る。 ◎ then the user agent performs an installed font fallback procedure to find the best match for the character to be rendered. The result of this procedure can vary across user agents.
-
所与の文字が,どの~fontを利用しても表示できない場合、 次のいずれかを行うべきである:
- 何らかの手段により,[ 象徴的な表現を成す欠落用~glyph ]を表示する (例: `Last Resort Font@https://en.wikipedia.org/wiki/Last_resort_font$en を利用して)。
- 既定の~fontから欠落用~文字~glyphを利用して,所与の文字が表示されていないことを指示する。
この処理nの最適化は、 実装がこの~algoに正確に従ったかのように挙動する限り,許容される。 同じ[ 可用な~fontたちが成す集合, 描画~技術 ]の組合nの下で現れる結果が, アリな限り~UA間で一致することを確保するため、 照合は,きちんと定義された 【すなわち,この~algoと矛盾しない】 順序で生じるようにすること。 ◎ Optimizations of this process are allowed provided that an implementation behaves as if the algorithm had been followed exactly. Matching occurs in a well-defined order to ensure that the results are as consistent as possible across user agents, given an identical set of available fonts and rendering tech.
【所与の~text連なりに】 `可用な最初の~font@ は、[ 【当の~text連なりに適用される】 `font-family$p ~list内に与えられた~font族 ]内で可用な~fontのうち[ 文字 `0020^U `SPACE^cn は `unicode-range$d により除外されていないもの† ]は[ 在るならば それらのうち最初のもの / 無いならば ~UAの既定の~font ]として定義される。 これは、 例えば[ `ex$u などの`~fontに相対的な長さ$ / `line-height$p ~propなどの定義 ]から利用される。 ◎ The first available font, used for example in the definition of font-relative lengths such as ex or in the definition of the line-height property, is defined to be the first font for which the character U+0020 (space) is not excluded by a unicode-range, given the font families in the font-family list (or a user agent’s default font if none are available).
† `font-face$at 規則を介してではなく,族~名により直に参照された`~install済み~font$においては、[ その `unicode-range$d は、 ~Unicode~code空間~全体を受持つ ]ものと見なされる。 ◎ Installed fonts referenced directly by family name, rather than via @font-face rules, are considered to have a unicode-range that covers the entire Unicode code space.
注記: 当の~fontが実際に~space文字~用の~glyphを有するかどうかは、 問わない。 ◎ Note: it does not matter whether that font actually has a glyph for the space character.
5.3. ~clusterの照合-法
~textが結合符などの文字を包含するとき、 理想的には,それらの~markは基底~文字と同じ~fontを利用して描画されるべきである。 これにより、 ~markの適正な配置が確約される。 この理由から、 ~cluster用の~font照合~algoは, 単独の文字を照合する一般~事例よりも特化されている。 異体~選択子 【`参考@https://ja.wikipedia.org/wiki/%E7%95%B0%E4%BD%93%E5%AD%97%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%BF$】 — それは、 所与の文字に利用する精確な~glyphを指示する — を包含している連列に対しては、 ~UAは — 適切な~glyphを見出すため — 基底~文字の既定の~glyphを利用するに先立って, 常に`~install済み~font~fallback$を試みる。 ◎ When text contains characters such as combining marks, ideally the base character should be rendered using the same font as the mark, this assures proper placement of the mark. For this reason, the font matching algorithm for clusters is more specialized than the general case of matching a single character by itself. For sequences containing variation selectors, which indicate the precise glyph to be used for a given character, user agents always attempt installed font fallback to find the appropriate glyph before using the default glyph of the base character.
[ 結合符, その他の `modifier^en【 Unicode Modifier Letter (修飾字)?】 ]を包含している符号位置~連列は、 書記素~clusterと呼ばれる (より完全な記述は `CSS3TEXT$r, `UAX29$r を見よ)。 [ 基底~文字, 後続する 1 個~以上の結合~文字 ]からなる書記素~cluster %~cluster に対しては、 ~UAは,次の手続きを利用して照合するモノトスル: ◎ A sequence of codepoints containing combining mark or other modifiers is termed a grapheme cluster (see [CSS3TEXT] and [UAX29] for a more complete description). For a given cluster containing a base character, b and a sequence of combining characters c1, c2…, the entire cluster is matched using these steps:
-
~font~list内の各~font族に対し,順に、 前~節に定義した~style選定~規則を利用して書体を選ぶ下で: ◎ For each family in the font list, a face is chosen using the style selection rules defined in the previous section.
- ~IF[ ~font【内の同じ書体】は、 %~cluster を成す すべての文字を完全に~supportしている ] ⇒# %~cluster 用には、その~fontを選定する; ~RET ◎ If all characters in the sequence b + c1 + c2 … are completely supported by the font, select this font for the sequence.
- ~IF[ 【 %cluster の頭部を成す】 複数個の符号位置が成す連列が,単独の文字 %x に正準的に等価であって、 ~fontは %x を`~support$する ] ⇒# その~fontを %~cluster 全体~用に選定した上で, %x 用の~glyphを利用する; ~RET ◎ If a sequence of multiple codepoints is canonically equivalent to a single character and the font supports that character, select this font for the sequence and use the glyph associated with the canonically equivalent character for the entire cluster.
-
~IF[ 前~段の~font~list内に条件を満たす~fontは見出されなかった ]: ◎ If no font was found in the font list in step 1:
-
~IF[ %~cluster を成す最初の結合~文字 %c1 は、 異体~選択子である `UNICODE$r ]:
-
`~install済み~font~fallback$を利用する下で:
- ~IF[ ~system上のある~fontは[ 基底~文字, %c1 ]が成す並びを`~support$する ] ⇒ その~fontを選定する
- ~ELSE ⇒ 基底~文字に[ 単独の文字を照合する通常の手続- ]を適用する — 異体~選択子は無視する
- ~RET
注記: %~cluster に複数個の異体~選択子が伴われる場合でも、 符号化-時の~errorとして扱った上で, 残りの異体~選択子は無視するモノトスル。
◎ If c1 is a variation selector, system fallback must be used to find a font that supports the full sequence of b + c1. If no font on the system supports the full sequence, match the single character b using the normal procedure for matching single characters and ignore the variation selector. Note: a sequence with more than one variation selector must be treated as an encoding error and the trailing selectors must be ignored. [UNICODE] -
- 任意選択で ⇒ `~install済み~font~fallback$を利用して, %~cluster を`~support$する~fontに合致させる ◎ Otherwise, the user agent may optionally use installed font fallback to match a font that supports the entire cluster.
-
- %残り ~LET 空~文字列 ◎ ↓
-
~WHILE %~cluster は空でない:
- %~cluster から最後の符号位置を除去して,それを %残り に付加する
- %~cluster に対し最初の段と同じ手続きを適用する ⇒ ~IF[ %~cluster 用に~fontが選定された ] ⇒ ~BREAK
- %残り を成す ~EACH( %文字 ) に対し ⇒ %文字 に[ 単独の文字を照合する通常の手続- ]を適用する ◎ attempt to match the remaining combining characters separately using the rules for single characters.
5.4. 文字の取扱いの課題
~CSS~font照合は,常に[ ~Unicode文字 `UNICODE$r を包含している~text連なり ]に対し遂行されるので、 旧来の符号化法を利用している文書は, ~fontを照合する前に符号変換されているものと見做される。 ~fontが,~Unicode用の他に旧来の符号化法~用の`文字~map$も包含していても、 そのような`文字~map$の内容は,~font照合~処理nの結果には影響しないモノトスル。 ◎ CSS font matching is always performed on text runs containing Unicode characters [UNICODE], so documents using legacy encodings are assumed to have been transcoded before matching fonts. For fonts containing character maps for both legacy encodings and Unicode, the contents of the legacy encoding character map must have no effect on the results of the font matching process.
~font照合~処理nは、 ~text連なりが正規化d形か否か,どちらにも見做さない(詳細は `CHARMOD-NORM$r を見よ)。 ~fontは[ 基底~文字, 結合符たち ]が成す連列に分解された形を~supportせずに, 合成済みな形のみを~supportしてもヨイ。 作者は、 内容の文字~streamが正規化d形か否かも常に~~考慮に入れて, ~fontの候補を誂えるベキである。 ◎ The font matching process does not assume that text runs are in either normalized or denormalized form (see [CHARMOD-NORM] for more details). Fonts may only support precomposed forms and not the decomposed sequence of base character plus combining marks. Authors should always tailor their choice of fonts to their content, including whether that content contains normalized or denormalized character streams.
所与の文字の符号位置が,~Unicode私用領域に属する場合、 ~UAは: ◎ If a given character is a Private-Use Area Unicode codepoint,\
- [ `font-family$p ~list内で名前が付与された,汎用~族~以外の~font族 ]のみと照合するモノトスル。 ◎ user agents must only match font families named in the font-family list that are not generic families.\
- `font-family$p ~list内で名前が付与されたどの族も, その符号位置~用の~glyphを包含していない場合 ⇒ その符号位置~用に`~install済み~font~fallback$を試みることなく, その文字~用に[ 何らかの形の欠落用~glyph記号 ]を表示するモノトスル。 ◎ If none of the families named in the font-family list contain a glyph for that codepoint, user agents must display some form of missing glyph symbol for that character rather than attempting installed font fallback for that codepoint.\
置換~文字 `FFFD^U に対する照合に際しては、 ~UAは,~font照合~処理nを飛ばして[ 何らかの形の欠落用~glyph記号 ]を即時に表示してもヨイ。 それらについては、[ ~font照合~処理nにより選定されることになる~font ]からの~glyphを表示することは要求されない。 ◎ When matching the replacement character U+FFFD, user agents may skip the font matching process and immediately display some form of missing glyph symbol, they are not required to display the glyph from the font that would be selected by the font matching process.
一般に,所与のある族~用の~fontたちは、 どれも,同じか類似な`文字~map$を持つことになる。 ここに要旨する処理nは、[ ~font族が~~多様な`文字~map$を伴う書体を包含しているとき ]でも取扱えるように設計されている。 しかしながら、 そのような族の利用は期待されない結果にも至り得ることも, 作者に忠告しておく。 ◎ In general, the fonts for a given family will all have the same or similar character maps. The process outlined here is designed to handle even font families containing faces with widely variant character maps. However, authors are cautioned that the use of such families can lead to unexpected results.
6. ~font特能~prop
現代の~font技術は、 様々な[ 先進的な~typographic/言語に特有な~font特能 ]を~supportする。 これらの特能を利用して,単独の~fontが[ 多岐に渡る合字, 文脈的な~style上の代替-, [ 一定幅/~old-style ]の数字f, 小頭字【“小さく” された大文字】, 自動的~分数, ~swash, 所与の言語に特有な代替- ]用の~glyphを供せる。 これらの~font能力に対する制御を作者に許容するため、 `font-variant$p ~propは拡張pされた。 それは今や、[ ~fontの各種~style上の特能に対する制御を供する各種~prop ]用の略式~propとして機能する。 ◎ Modern font technologies support a variety of advanced typographic and language-specific font features. Using these features, a single font can provide glyphs for a wide range of ligatures, contextual and stylistic alternates, tabular and old-style figures, small capitals, automatic fractions, swashes, and alternates specific to a given language. To allow authors control over these font capabilities, the font-variant property has been expanded. It now functions as a shorthand for a set of properties that provide control over stylistic font features.
6.1. ~glyphの選定と位置決め
◎非規範的~Latin~textの表示に利用される単純な~fontは、 ごく基本的な処理~modelを利用する。 ~fontは、 各~文字をその文字~用の【! 1 個の?】~glyphに対応付ける,`文字~map$を包含する。 後続な文字~用の~glyphは、 単純に,~text連なりに沿って他の文字の後に置かれる。 現代の~font形式 — ~OpenTypeや~AAT( Apple Advanced Typography )など — は、 より多彩な処理~modelを利用する。 所与の文字~用の~glyphは、 文字~自身の符号位置のみならず,[ 隣接する文字や[ 言語, 用字系, ~textに対し可能化された各種 特能 ]]に基づいて[ 選ばれ, 位置され ]得る。 ~font特能は、 特定の用字系~用に要求されることもあれば, 既定で可能化されるよう推奨されることもあれば, 作者による制御~用として意味された~style上の特能のこともある。 全般的な~text処理~演算(~text変形n, ~text方位, ~text整列など)において, ~font選定, 位置決めがどこで起こるかについては、 `CSS3TEXT$r `§ 各種~text演算の処理~順序@~CSSTEXT#order$ にて述べられる。 ◎ Simple fonts used for displaying Latin text use a very basic processing model. Fonts contain a character map which maps each character to a glyph for that character. Glyphs for subsequent characters are simply placed one after the other along a run of text. Modern font formats such as OpenType and AAT (Apple Advanced Typography) use a richer processing model. The glyph for a given character can be chosen and positioned not just based on the codepoint of the character itself, but also on adjacent characters as well as the language, script, and features enabled for the text. Font features may be required for specific scripts, or recommended as enabled by default or they might be stylistic features meant to be used under author control. The point at which font selection and positioning happens in the overall order of text processing operations (such as text transformation, text orientation and text alignment) is described in CSS Text 3 § A Text Processing Order of Operations.
~OpenType~font用の~glyph処理の詳細な記述は、 `WINDOWS-GLYPH-PROC$r を見よ。 ◎ For a detailed description of glyph processing for OpenType fonts, see [WINDOWS-GLYPH-PROC].
~fontの~style上の特能は、 大きく 2 つに分類できる: 一つは[ 字詰め, 合字 ]特能などの[ ~glyphの形状と, 周囲の文脈との調和 ]に影響するもの、 もう一つは[ 小頭字s, 下上付-, 代替- ]特能などの形状の選定に影響するものである。 ◎ Stylistic font features can be classified into two broad categories: ones that affect the harmonization of glyph shapes with the surrounding context, such as kerning and ligature features, and ones such as the small-caps, subscript/superscript and alternate features that affect shape selection.
以下に挙げられる[ `font-variant$p の下位propたち ]が、 これらの[ ~fontの~style上の特能 ]を制御するために利用される。 それらは、 ある種の用字系の表示に要求される特能 — ~Arabicや~Indicの言語~textを表示する際に利用される各種~OpenType特能など — は,制御しない。 それらは、 ~glyphの[ 選定と位置決め ]に影響するが, `§ ~font照合~algo$ に述べた~font選定には影響しない (ただし, CSS 2.1 との互換性を得るために要求される場合は除く)。 ◎ The subproperties of font-variant listed below are used to control these stylistic font features. They do not control features that are required for displaying certain scripts, such as the OpenType features used when displaying Arabic or Indic language text. They affect glyph selection and positioning, but do not affect font selection as described in the font matching section (except in cases required for compatibility with CSS 2.1).
各~UAにわたって挙動の一貫性を確約するため、 個々の~propに対し,等価な[ ~OpenType~prop設定群 ]が挙げられ,規範的とされる。 他の~font形式の利用に際しては、 これらは,各種[ ~CSS~font特能~prop値 ]を特定の~font特能へ対応付けるための指針として利用されるベキである。 ◎ To assure consistent behavior across user agents, the equivalent OpenType property settings are listed for individual properties and are normative. When using other font formats these should be used as a guideline to map CSS font feature property values to specific font features.
6.2. 言語に特有な表示
~OpenTypeは、 言語が特定の[ 表示の挙動 ]を規定する所では,それに従って~textを正しく表示できるよう、 言語に特有な,~glyphの[ 選定と位置決め ]も~supportする。 多くの言語が同じ用字系を共有するが、 ある種の普通字の形状は,言語ごとに変わり得る。 例えば,ある種の~Cyrillic普通字の形状は、 ~Russian~textと~Bulgarian~textとでは互いに異なる。 ~Latin~textにおいては、 "fi" は[ 小文字 "i" の上の~dotを欠く明示的な fi-合字 ]で共通的に描画される。 しかしながら,[ ~dot付き "i" と~dotなし "i" の両者を利用する~Turkish ]などの言語においては、 この合字を利用しないか, あるいは[ "i" の上に~dotを包含する,特化された~versionの合字 ]を利用することが重要になる。 ◎ OpenType also supports language-specific glyph selection and positioning, so that text can be displayed correctly in cases where the language dictates a specific display behavior. Many languages share a common script, but the shape of certain letters can vary across those languages. For example, certain Cyrillic letters have different shapes in Russian text than in Bulgarian. In Latin text, it’s common to render "fi" with an explicit fi-ligature that lacks a dot on the "i". However, in languages such as Turkish which uses both a dotted-i and a dotless-i, it’s important to not use this ligature or use a specialized version that contains a dot over the "i".
以下の例に、[ ~Spanish, ~Italian, ~French ]の正書法にて見出される[ ~style上の伝統様式に基づく,言語に特有な異体 ]を示す: ◎ The example below shows language-specific variations based on stylistic traditions found in Spanish, Italian and French orthography:
言語に特有な形 — ~Spanish ◎ language specific forms, spanish
言語に特有な形 — ~Italian ◎ language specific forms, italian
言語に特有な形 — ~French ◎ language specific forms, french
要素の`内容~言語$が`文書~言語$の規則に則って既知である場合、 ~UAには,[ `内容~言語$から~OpenType言語~systemを推定した上で、 ~OpenType~fontを利用する~glyphの[ 選定-法と位置決め ]に,その言語~systemを利用する ]ことが要求される。 `書記体系$が明示的に指定されている場合、 慣例の[ `内容~言語$による暗黙な内容~言語 ]より優先させるモノトスル。 ◎ If the content language of the element is known according to the rules of the document language, user agents are required to infer the OpenType language system from the content language and use that when selecting and positioning glyphs using an OpenType font. If a writing system has been explicitly specified, it must take precedence over the customary one implied by the content language.
~OpenType~font用には、[ 利用する~OpenType言語の明示的な宣言 ]が必要yな事例もある — 例えば、[ 別の言語の~typographic規約を利用する~textを,所与の言語で表示させるとき ]や[ ~fontが所与の言語を明示的に~supportしていないが, 同じ~typographic規約を共有する言語は~supportするとき ]など。 `font-language-override$p ~propが,この目的に利用される。 ◎ For OpenType fonts, in some cases it may be necessary to explicitly declare the OpenType language to be used, for example when displaying text in a given language that uses the typographic conventions of another language or when the font does not explicitly support a given language but supports a language that shares common typographic conventions. The font-language-override property is used for this purpose.
6.3. 字詰め: `font-kerning^p ~prop
◎名 `font-kerning@p ◎値 `auto$v1 | `normal$v1 | `none$v1 ◎初 `auto$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終字詰めとは、 文脈的な,~glyph間の間隔調整【(アキ組)】である。 この~propは、 計量~字詰め — ~fontに包含されている調整~用の~dataも用立てる字詰め — を制御する。 ◎ Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.
- `auto@v1
- 字詰めの適用は、 ~UAの裁量に任せることを指定する。 ◎ Specifies that kerning is applied at the discretion of the user agent
- `normal@v1
- 字詰めは適用することを指定する。 ◎ Specifies that kerning is applied
- `none@v1
- 字詰めは適用しないことを指定する。 ◎ Specifies that kerning is not applied
字詰め~dataが含まれない~fontに対しては、 この~propによる可視~効果はないことになる。 ~OpenType~fontによる描画の下では、 `OPENTYPE$r 仕様から,字詰めは既定で可能化されるものと示唆されている。 字詰めが可能化されている下では、 関連な~OpenType字詰め特能 (`~typographic~mode$に応じて,[ 横書き(`縦組み$における`側転~植字$も含む)用には `kern^tag 特能 / 縦書き(`縦組み$における`正立~植字$)用には `vkrn^tag 特能 ])が可能化される。 ~UAは、[ `kern^tag ~font~tableに包含されている~dataを介してのみ, 字詰めを~supportする~font (詳細は~OpenType仕様にて) ]も,~supportするモノトスル。 `letter-spacing$p ~propが定義されている場合、 字詰めは,既定の間隔調整の一部を成すと見なされ、 普通字の間隔調整は,字詰めを適用した後に為される。 ◎ For fonts that do not include kerning data this property will have no visible effect. When rendering with OpenType fonts, the [OPENTYPE] specification suggests that kerning be enabled by default. When kerning is enabled, the relevant OpenType kerning features are enabled (for horizontal typographic modes and for sideways typesetting in vertical typographic modes, the kern feature; for upright typesetting in vertical typographic modes, the vkrn feature. User agents must also support fonts that only support kerning via data contained in a kern font table, as detailed in the OpenType specification. If the letter-spacing property is defined, kerning adjustments are considered part of the default spacing and letter spacing adjustments are made after kerning has been applied.
`kerning-auto^v に設定されているときは、 ~UAは,字詰めを適用するかどうかを[ ~text~size, 用字系, ~text処理の速度に波及する他の要因 ]に基づいて決定できる。 適正な字詰めを求める作者は、 字詰めを明示的に可能化するために, `normal$v1 を利用するベキである。 反対に、 精確な外観より処理能が重要な状況では, 字詰めの不能化-を選好する作者もいるかもしれない。 しかしながら、 現代の きちんと設計された実装の下では, 字詰めの利用が~text描画の速度に大きく響くことはない。 ◎ When set to auto, user agents can determine whether to apply kerning or not based on a number of factors: text size, script, or other factors that influence text processing speed. Authors who want proper kerning should use normal to explicitly enable kerning. Likewise, some authors may prefer to disable kerning in situations where performance is more important than precise appearance. However, in well-designed modern implementations the use of kerning generally does not have a large impact on text rendering speed.
6.4. 合字: `font-variant-ligatures^p ~prop
◎名 `font-variant-ligatures@p ◎値 `normal$v1 | `none$v1 | [ `common-lig-values$t || `discretionary-lig-values$t || `historical-lig-values$t || `contextual-alt-values$t ] ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終合字, および文脈的な形( `contextual form^en )は、 より調和した形を生産するために,~glyphを結合する仕方である。 ◎ Ligatures and contextual forms are ways of combining glyphs to produce more harmonized forms.
`common-lig-values@t = `common-ligatures$v | `no-common-ligatures$v `discretionary-lig-values@t = `discretionary-ligatures$v | `no-discretionary-ligatures$v `historical-lig-values@t = `historical-ligatures$v | `no-historical-ligatures$v `contextual-alt-values@t = `contextual$v | `no-contextual$v
各種~値の意味は: ◎ Individual values have the following meanings:
- `normal@v1
- 共通的な既定の特能を可能化することを指定する — 詳細は、 `§ ~font特能と異体の解決$ にて述べられる。 ~OpenType~font用には、[ 共通-合字, 文脈的な形 ]は既定で可能化され, 随意~合字と歴史的な合字はそうでない。 ◎ A value of normal specifies that common default features are enabled, as described in detail in the next section. For OpenType fonts, common ligatures and contextual forms are on by default, discretionary and historical ligatures are not.
- `none@v1
- この~propが受持つすべての種類の[ 合字, 文脈的な形 ]を明示的に不能化することを指定する。 合字を考慮する~必要がない状況では、 これにより~text描画の速度が改善し得る。 ◎ Specifies that all types of ligatures and contextual forms covered by this property are explicitly disabled. In situations where ligatures are not considered necessary, this may improve the speed of text rendering.
- `common-ligatures@v
- 共通-合字 (~OpenType特能: `liga^tag, `clig^tag ) による表示を可能化する。 ~OpenType~fontに対しては、 共通-合字は,既定で可能化される。 ◎ Enables display of common ligatures (OpenType features: liga, clig). For OpenType fonts, common ligatures are enabled by default.
-
共通的な合字の例 ◎ common ligature example
- `no-common-ligatures@v
- 共通-合字 (~OpenType特能: `liga^tag, `clig^tag ) による表示を不能化する。 ◎ Disables display of common ligatures (OpenType features: liga, clig).
- `discretionary-ligatures@v
- 随意~合字 (~OpenType特能: `dlig^tag ) による表示を可能化する。 どの合字が[ 随意または任意選択【 `discretionary or optional^en — 同じ意味?】 ]かは,活字~designerが裁定するので、 作者は,[ 所与の~fontについての文献を参照rして, どの合字が随意と見なされているか理解する ]必要があることになる。 ◎ Enables display of discretionary ligatures (OpenType feature: dlig). Which ligatures are discretionary or optional is decided by the type designer, so authors will need to refer to the documentation of a given font to understand which ligatures are considered discretionary.
-
随意~合字の例 ◎ discretionary ligature example
- `no-discretionary-ligatures@v
- 随意~合字 (~OpenType特能: `dlig^tag ) による表示を不能化する。 ◎ Disables display of discretionary ligatures (OpenType feature: dlig).
- `historical-ligatures@v
- 歴史的な合字 (~OpenType特能: `hlig^tag ) による表示を可能化する。 ◎ Enables display of historical ligatures (OpenType feature: hlig).
-
歴史的な合字の例 ◎ historical ligature example
- `no-historical-ligatures@v
- 歴史的な合字 (~OpenType特能: `hlig^tag ) による表示を不能化する。 ◎ Disables display of historical ligatures (OpenType feature: hlig).
- `contextual@v
- 文脈的な代替- (~OpenType特能: `calt^tag ) による表示を可能化する。 この特能は,厳密には合字~特能ではないが、 合字と同様に,~glyphの形状と周囲の文脈を調和させるために利用される点で共通する。 ~OpenType~fontに対しては、 この特能は既定でオンである。 ◎ Enables display of contextual alternates (OpenType feature: calt). Although not strictly a ligature feature, like ligatures this feature is commonly used to harmonize the shapes of glyphs with the surrounding context. For OpenType fonts, this feature is on by default.
-
文脈的な代替-の例 ◎ contextual alternate example
- `no-contextual@v
- 文脈的な代替- (~OpenType特能: `calt^tag ) による表示を不能化する。 ◎ Disables display of contextual alternates (OpenType feature: calt).
複階的な用字系を正しく描画するために必要yな,必須な合字 (~OpenType特能: `rlig^tag ) は、 上の設定群からは影響されない — `none$v1【!#valdef-font-size-adjust-none】 の場合も。 ◎ Required ligatures, needed for correctly rendering complex scripts, are not affected by the settings above, including none (OpenType feature: rlig).
6.5. 下上付~形: `font-variant-position^p ~prop
◎名 `font-variant-position@p ◎値 `normal$v1 | `sub$v | `super$v ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 ~typographic下上付~glyphを可能化するために利用される。 これらは、 既定の~glyphと同じ em-box 内で~designされた代替-~glyphであり, 既定の~glyphと同じ基底線~上に — ~sizeし直したり,基底線を位置し直すことなく — ~lay-outする用途に意図されている。 これらは、[ 行l高さへの影響を伴わずに周囲の~textと釣り合う, かつより読み易くなる ]よう,明示的に~designされたものである。 ◎ This property is used to enable typographic subscript and superscript glyphs. These are alternate glyphs designed within the same em-box as default glyphs and are intended to be laid out on the same baseline as the default glyphs, with no resizing or repositioning of the baseline. They are explicitly designed to match the surrounding text and to be more readable without affecting the line height.
各種~値の意味は: ◎ Individual values have the following meanings:
- `normal@v1
- 下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
- `sub@v
- 下付~異体字 (~OpenType特能: `subs^tag ) による表示を可能化する。 ◎ Enables display of subscript variants (OpenType feature: subs).
- `super@v
- 上付~異体字 (~OpenType特能: `sups^tag ) による表示を可能化する。 ◎ Enables display of superscript variants (OpenType feature: sups).
下上付-の意味論上の資質から、 所与の【!連続的】~text連なり用の値が[ `sub$v / `super$v ]である下で,その~text連なりの中に[ 異体字~glyphが可用でない文字 ]が一つでもある場合、 すべての文字に対し,模造された~glyph — この特能が適用されなかったとするとき利用される~glyphに還元された形を利用する~glyph — が合成されるベキである。 これは、[ 異体字~glyphと合成されたものとの混在 — その場合、 正しく揃わないことになる ]を避けるため,~text連なりごとに行うとする。 所与の文字~用の下上付~glyphを欠いた~OpenType~fontの場合、 ~UAは,適切な下上付~glyphを合成するモノトスル。 ◎ Because of the semantic nature of subscripts and superscripts, when the value is either sub or super for a given contiguous run of text, if a variant glyph is not available for all the characters in the run, simulated glyphs should be synthesized for all characters using reduced forms of the glyphs that would be used without this feature applied. This is done per run to avoid a mixture of variant glyphs and synthesized ones that would not align correctly. In the case of OpenType fonts that lack subscript or superscript glyphs for a given character, user agents must synthesize appropriate subscript and superscript glyphs.
~text装飾が[ 下上付~glyphを包含している~text連なり ]のみに適用される状況【?】においては、 装飾の配置に伴う問題を避けるために,合成した~glyphを利用してもヨイ。 ◎ In situations where text decorations are only applied to runs of text containing superscript or subscript glyphs, the synthesized glyphs may be used, to avoid problems with the placement of decorations.
過去においては、 ~UAは,[ `sub^e / `sup^e ]要素~用の下上付-を模造するために,[ `font-size^p と `vertical-align^p ]を利用していた。 後方-互換な仕方による下上付-の定義-法を許容するため、 作者には,[ 古い~UAが,依然として古い仕組みを介して下上付-を描画することになる ]よう,条件付き規則 `CSS3-CONDITIONAL$r を利用することが推奨される。 ◎ In the past, user agents have used font-size and vertical-align to simulate subscripts and superscripts for the sub and sup elements. To allow a backwards compatible way of defining subscripts and superscripts, it is recommended that authors use conditional rules [CSS3-CONDITIONAL] so that older user agents will still render subscripts and superscripts via the older mechanism.
これらの要素には
`font-size$p: `smaller^v
が利用されることが多いので、
下上付-に適用される実質的な拡縮率は,~sizeに依存して変わる
— 要素の~text~sizeが大きいときは,約 3 分の 1 削減されることが多い一方で、
~sizeが小さいときの削減量は,下上付-を読み易くするため,ずっと少ない。
~UAは、
下上付~glyphを合成する方法を裁定するときに,これを考慮するベキである。
◎
Because font-size: smaller is often used for these elements, the effective scaling factor applied to subscript and superscript text varies depending upon the size. For larger text, the font size is often reduced by a third but for smaller text sizes, the reduction can be much less. This allows subscripts and superscripts to remain readable even within elements using small text sizes. User agents should consider this when deciding how to synthesize subscript and superscript glyphs.
OpenType ~font形式は,下上付-の計量を `OS/2 ~table@~OTSPEC/os2$ `OPENTYPE$r にて定義しているが、 実施においては常に正確aとは限らないので, 下上付-を合成するときには依拠できない。 ◎ The OpenType font format defines subscript and superscript metrics in the OS/2 table [OPENTYPE] but these are not always accurate in practice and so cannot be relied upon when synthesizing subscript and superscript glyphs.
作者は、 ~fontが供する下上付-用の~glyphは,概して[ ~fontが~supportする文字のうち,一部に限られる ]ことに留意するベキである。 例えば,下上付~glyphは、 ~Latin数字n用には可用なことが多い一方, 約物や普通字~文字~用の~glyphが供されることは さほど多くはない。 この~prop用に定義される[ 合成な~fallback規則 ]により,下上付-が常に現れることを確保するよう試行されるが、 利用される~fontが[ 下上付-に包含されている文字のうち,どれか一つでも適切な代替-~glyphを供していない場合 ]の外観は,作者の期待に合致しなくなろう。 ◎ Authors should note that fonts typically only provide subscript and superscript glyphs for a subset of all characters supported by the font. For example, while subscript and superscript glyphs are often available for Latin numbers, glyphs for punctuation and letter characters are less frequently provided. The synthetic fallback rules defined for this property try to ensure that subscripts and superscripts will always appear but the appearance may not match author expectations if the font used does not provide the appropriate alternate glyph for all characters contained in a subscript or superscript.
この~propは累積的でない。 この~propが下上付-内の要素に適用されても、 下上付~glyphの配置が入子にされることはない — この~propの値が[ `sub$v / `super$v ]にされていても、 ~text連なり内に包含されるイメージは, 値が `normal$v1 であったときと同じに描かれることになる。 ◎ This property is not cumulative. Applying it to elements within a subscript or superscript won’t nest the placement of a subscript or superscript glyph. Images contained within text runs where the value of this property is sub or super will be drawn just as they would if the value was normal.
これらの制限があるため、 ~UA~stylesheet用途には, `font-variant-position$p は推奨されない。 作者は、 この~propを[ 下上付-が,指定した~fontが~supportする狭い範囲の文字のみ包含する ]ことになる所に限って利用するベキである。 ◎ Because of these limitations, font-variant-position is not recommended for use in user agent stylesheets. Authors should use it in cases where subscripts or superscripts will only contain the narrow range of characters supported by the fonts specified.
注記: 異体字~glyphは、 既定の~glyphと同じ基底線を利用する。 配置の際に,基底線によりズラされることはないので、 異体字~glyphの利用により[ 行内~boxの高さが影響される/行l~boxの高さが改められる ]ことはない。 したがって、 下上付~異体字は, 行間が一定に~~揃うことが重要になる状況 — `複-柱~layout$など — においては理想的なものになる。 ◎ The variant glyphs use the same baseline as the default glyphs would use. There is no shift in the placement along the baseline, so the use of variant glyphs doesn’t affect the height of the inline box or alter the height of the linebox. This makes superscript and subscript variants ideal for situations where it’s important that leading remain constant, such as in multi-column layout.
`sub^e 要素~用の,代表的な既定の~UA~style: ◎ A typical user agent default style for the sub element:
sub { vertical-align: `sub$v; font-size: smaller; line-height: normal; }
古い~UAにおいても依然として下付-が示されるよう,~typographic下付-を指定するための、 `font-variant-position$p の利用-法: ◎ Using font-variant-position to specify typographic subscripts in a way that will still show subscripts in older user agents:
@supports ( font-variant-position: sub ) { sub { vertical-align: baseline; font-size: 100%; line-height: inherit; font-variant-position: sub; } }
`font-variant-position$p ~propを~supportする~UAは、 下付~異体字~glyphを選定して, 基底線や~font-sizeの調整-法を伴わずに それを描画することになる。 【!Older】~supportしない~UAは、 `font-variant-position$p ~prop定義を無視して, 下付-用の標準な既定を利用することになる。 ◎ User agents that support the font-variant-position property will select a subscript variant glyph and render this without adjusting the baseline or font-size. Older user agents will ignore the font-variant-position property definition and use the standard defaults for subscripts.
6.6. 頭字~化: `font-variant-caps^p ~prop
◎名 `font-variant-caps@p ◎値 `normal$v1 | `small-caps$v | `all-small-caps$v | `petite-caps$v | `all-petite-caps$v | `unicase$v | `titling-caps$v ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、[[ 小頭字や極小-頭字, あるいは題字 ]用に利用される代替-~glyph ]の選定を可能にする。 これらの~glyphは、 周囲の通常の~glyphに自然に溶け込むよう,特定的に~designされている — ~weight, および[ 単純に,この目的に適するよう~textを~sizeし直した場合に損なわれる可読性 ]を保守するために。 ◎ This property allows the selection of alternate glyphs used for small or petite capitals or for titling. These glyphs are specifically designed to blend well with the surrounding normal glyphs, to maintain the weight and readability which suffers when text is simply resized to fit this purpose.
各種~値の意味は: ◎ Individual values have the following meanings:
- `normal@v1
- 下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
- `small-caps@v
- 小頭字 (~OpenType特能: `smcp^tag ) による表示を可能化する。 小頭字s~glyphには,概して大文字の形が利用されるが、 その~sizeは小文字に抑制される。 ◎ Enables display of small capitals (OpenType feature: smcp). Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.
-
小頭字sの例 ◎ small-caps example
- `all-small-caps@v
- 大文字と小文字どちらにも,小頭字 (~OpenType特能: `c2sc^tag, `smcp^tag ) による表示を可能化する。 ◎ Enables display of small capitals for both upper and lowercase letters (OpenType features: c2sc, smcp).
- `petite-caps@v
- 極小-頭字 (~OpenType特能: `pcap^tag ) による表示を可能化する。 ◎ Enables display of petite capitals (OpenType feature: pcap).
- `all-petite-caps@v
- 大文字と小文字どちらにも,極小-頭字 (~OpenType特能: `c2pc^tag, `pcap^tag ) による表示を可能化する。 ◎ Enables display of petite capitals for both upper and lowercase letters (OpenType features: c2pc, pcap).
- `unicase@v
- [ 大文字~用の小頭字と, 通常の小文字 ]の混在 (~OpenType特能: `unic^tag ) による表示を可能化する。 【大小~alphabetの一部は大文字の,残りは小文字の形に “~~統一” した上で(その結果,見かけ上の大小の区別が無くなる)、それらの大きさが一定に~~揃えられた書体】 ◎ Enables display of mixture of small capitals for uppercase letters with normal lowercase letters (OpenType feature: unic).
- `titling-caps@v
- 題字用~頭字 (~OpenType特能: `titl^tag ) による表示を可能化する。 大文字~glyphは、 小文字と併用されるように~designされることが多い。 それらが大文字ばかりの題字【タイトルバックなど】に利用された場合、 ~~強く現れ過ぎになることがある。 題字用~頭字は、 この状況~用に特定的に~designされている。 ◎ Enables display of titling capitals (OpenType feature: titl). Uppercase letter glyphs are often designed for use with lowercase letters. When used in all uppercase titling sequences they can appear too strong. Titling capitals are designed specifically for this situation.
これらの~glyphの可用性は、[ 所与の特能が,~fontの特能~listの中に定義されているかどうか ]に基づく。 ~UAは, 任意選択で用字系ごとにこれを裁定できるが、 文字ごとには,明示的に裁定するベキでない。 ◎ The availability of these glyphs is based on whether a given feature is defined or not in the feature list of the font. User agents can optionally decide this on a per-script basis but should explicitly not decide this on a per-character basis.
一部の~fontには、 この~propに述べられた特能のうち[ 一部に限り~supportする/まったく~supportしない ]ものもある。 CSS 2.1 との後方-互換性を得るため、[ `small-caps$v / `all-small-caps$v ]が指定されつつ,所与の~font用の小頭字s~glyphが可用でない場合、 ~UAは,小頭字s~fontを模造するベキである — 例えば、 通常の~fontから,大文字~用の~glyphを取り出して、 その縮小~versionにより,小文字~glyphを ( `all-small-caps$v の場合は大文字の~glyphも) 置換するなど。 ◎ Some fonts may only support a subset or none of the features described for this property. For backwards compatibility with CSS 2.1, if small-caps or all-small-caps is specified but small-caps glyphs are not available for a given font, user agents should simulate a small-caps font, for example by taking a normal font and replacing the glyphs for lowercase letters with scaled versions of the glyphs for uppercase characters (replacing the glyphs for both upper and lowercase letters in the case of all-small-caps).
`font-feature-settings$p ~propは、 ( `~level 3$ と違って)模造された小頭字s~fontを利用するかどうかの裁定にも影響する。 ◎ The font-feature-settings property also affects the decision of whether or not to use a simulated small-caps font (unlike CSS Fonts 3).
#example1 { font-variant-caps: small-caps; } #example2 { font-variant-caps: small-caps; font-feature-settings: 'smcp' 0; }
小頭字sを~supportしない~font用には、[ `#example1^css, `#example2^css ]どちらも合成された小頭字sで描画されるベキである。 一方で,小頭字sを~supportする~font用には、[ `#example1^css は~nativeな小頭字s / `#example2^css は(~nativeな/合成された)小頭字sなし ]で描画されるベキである。 ◎ For fonts which don’t support small caps, both #example1 and #example2 should be rendered with synthesized small caps. However, for fonts which do support small caps, #example1 should be rendered with native small caps, while #example2 should be rendered without any small-caps (native or synthesized).
周囲の~textと釣り合うようにするため、 ~fontは,これらの特能が可能化されたときに[ 大小無し文字~用の代替-~glyph ]を供することがあるが、 ~UAが小頭字を模造するときは,[ 大小無しと見なされている符号位置~用の代替- ]を模造しようと試みないモノトスル。 ◎ To match the surrounding text, a font may provide alternate glyphs for caseless characters when these features are enabled but when a user agent simulates small capitals, it must not attempt to simulate alternates for codepoints which are considered caseless.
これらの特能を~supportしない~fontに対し[ `petite-caps$v / `all-petite-caps$v ]が指定された場合、 この~propは,[ `small-caps$v / `all-small-caps$v ](同順)が指定されていたかのように挙動する。 その特能を~supportしない~fontに対し `unicase$v が指定された場合、 この~propは, `small-caps$v が[ “小文字化された”大文字 ]にのみ適用されていたかのように挙動する 【どの大文字が “小文字化された”ものと見なされる?(次の~~段落に従う?)】 。 この特能を~supportしない~fontに `titling-caps$v が指定された場合、 この~propによる可視~効果はない。 模造された小頭字~glyphが利用される下では、 大文字と小文字を欠く用字系に対しては,[ `small-caps$v, `all-small-caps$v, `petite-caps$v, `all-petite-caps$v, `unicase$v ]による可視~効果はない。 ◎ If either petite-caps or all-petite-caps is specified for a font that doesn’t support these features, the property behaves as if small-caps or all-small-caps, respectively, had been specified. If unicase is specified for a font that doesn’t support that feature, the property behaves as if small-caps was applied only to lowercased uppercase letters. If titling-caps is specified with a font that does not support this feature, this property has no visible effect. When simulated small capital glyphs are used, for scripts that lack uppercase and lowercase letters, small-caps, all-small-caps, petite-caps, all-petite-caps and unicase have no visible effect.
小頭字を模造するために利用する大小変換は、 `text-transform$p ~propに利用されるものに合致するそれを利用するモノトスル。 ◎ When casing transforms are used to simulate small capitals, the casing transformations must match those used for the text-transform property.
最終的な結果として,~normal~fontの中の縮小された大文字~glyphが、 ~textがすべて大文字として現れるよう,小頭字s~fontの中の~glyphを置換し得る。 ◎ As a last resort, unscaled uppercase letter glyphs in a normal font may replace glyphs in a small-caps font so that the text appears in all uppercase letters.
~italic化されて描画される引用文は、 最初の行lでは,小頭字sにもされる: ◎ Quotes rendered italicized, with small-caps on the first line:
blockquote { font-style: italic; } blockquote:first-line { font-variant: small-caps; } <blockquote>`I’ll be honor-bound to slap them like a haddock.@https://lists.w3.org/Archives/Public/www-style/2009Dec/0036.html$</blockquote>
6.7. 数量的な整形: `font-variant-numeric^p ~prop
◎名 `font-variant-numeric@p ◎値 `normal$v1 | [ `numeric-figure-values$t || `numeric-spacing-values$t || `numeric-fraction-values$t || `ordinal$v || `slashed-zero$v ] ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終数量的な形に対する制御を指定する。 下の例に、これらの値のいくつかを組合せて,[ これらの特能を~supportする~fontによる,~table状の~dataの描画 ]に波及させる方法を示す。 通常の段落~text内では,均衡幅な数字nが利用される一方で、[ 数字nの縦列 ]たちを適正に~~整列するよう,一定幅な数字nが利用される: ◎ Specifies control over numerical forms. The example below shows how some of these values can be combined to influence the rendering of tabular data with fonts that support these features. Within normal paragraph text, proportional numbers are used while tabular numbers are used so that columns of numbers line up properly:
可能な組合nは: ◎ Possible combinations:
`numeric-figure-values@t = `lining-nums$v | `oldstyle-nums$v `numeric-spacing-values@t = `proportional-nums$v | `tabular-nums$v `numeric-fraction-values@t = `diagonal-fractions$v | `stacked-fractions$v
各種~値の意味は: ◎ Individual values have the following meanings:
- `normal@v1
- 下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
- `lining-nums@v
- ~lining数詞 (~OpenType特能: `lnum^tag ) による表示を可能化する。 ◎ Enables display of lining numerals (OpenType feature: lnum).
- `oldstyle-nums@v
- ~old-style数詞 (~OpenType特能: `onum^tag ) による表示を可能化する。 ◎ Enables display of old-style numerals (OpenType feature: onum).
- `proportional-nums@v
- 均衡幅な数詞 (~OpenType特能: `pnum^tag ) による表示を可能化する。 ◎ Enables display of proportional numerals (OpenType feature: pnum).
- `tabular-nums@v
- 一定幅な数詞 (~OpenType特能: `tnum^tag ) による表示を可能化する。 ◎ Enables display of tabular numerals (OpenType feature: tnum).
- `diagonal-fractions@v
- 斜括線を伴う分数 (~OpenType特能: `frac^tag ) による表示を可能化する。 ◎ Enables display of lining diagonal fractions (OpenType feature: frac).
-
斜括線の例 ◎ diagonal fraction example
- `stacked-fractions@v
- 水平括線を伴う分数 (~OpenType特能: `afrc^tag ) による表示を可能化する。 ◎ Enables display of lining stacked fractions (OpenType feature: afrc).
-
水平括線の例 ◎ stacked fraction example
- `ordinal@v
- 序数を伴なう普通字~形 (~OpenType特能: `ordn^tag ) による表示を可能化する。 ◎ Enables display of letter forms used with ordinal numbers (OpenType feature: ordn).
-
序数の例 ◎ ordinals example
- `slashed-zero@v
- ~slashを伴うゼロ (~OpenType特能: `zero^tag ) による表示を可能化する。 ◎ Enables display of slashed zeros (OpenType feature: zero).
-
~slashを伴うゼロの例 ◎ slashed zero example
`ordinal$v においては、 序数~形が上付~形と同じになることが多いが,それらの~markupは異なる。 ◎ In the case of ordinal, although ordinal forms are often the same as superscript forms, they are marked up differently.
上付-に対しては、 異体字~propは,その上付-を包含している下位~要素にのみ適用される。 ◎ For superscripts, the variant property is only applied to the sub-element containing the superscript:
sup { font-variant-position: super; } x<sup>2</sup>
序数に対しては、 異体字~propは,接尾辞のみならず,序数~全体(または包含している段落)に適用される: ◎ For ordinals, the variant property is applied to the entire ordinal number rather than just to the suffix (or to the containing paragraph):
.ordinal { font-variant-numeric: ordinal; } <span class="ordinal">17th</span>
この事例では、 "th" のみが序数~形で現れることになり,数字は不変のままにされる。 所与の言語に利用されている~typographic伝統様式に依存して、 序数~形は,上付~形から異なり得る。 例えば,~Italianにおいては、 序数~形の~designに下線が含められることがある。 ◎ In this case only the "th" will appear in ordinal form, the digits will remain unchanged. Depending upon the typographic traditions used in a given language, ordinal forms may differ from superscript forms. In Italian, for example, ordinal forms sometimes include an underline in the ordinal design.
自動的な分数と~old-style数詞により描画される,単純なレシピ: ◎ A simple flank steak marinade recipe, rendered with automatic fractions and old-style numerals:
.amount { font-variant-numeric: oldstyle-nums diagonal-fractions; } <h4>脇腹肉のステーキマリネ:</h4> <ul> <li><span class="amount">2</span> tbsp. オリーブ油</li> <li><span class="amount">1</span> tbsp. レモン汁</li> <li><span class="amount">1</span> tbsp. しょうゆ</li> <li><span class="amount">1 1/2</span> tbsp. タマネギのみじん切り</li> <li><span class="amount">2 1/2</span> tsp. イタリア系~香草類</li> <li>塩, こしょう</li> </ul> <p>肉とマリネードを混ぜ,覆いを掛けて冷蔵庫に数時間か一晩程~置く。</p>
分数の特能は、
段落~全体でない所に限り適用されることに注意。
~fontは、
この特能を[
~slash( /
)文字の利用に基づく文脈的な規則
]を利用して実装することが多い。
そのようなわけで、
それは,段落~levelの~style用途には相応でない。
◎
Note that the fraction feature is only applied to values not the entire paragraph. Fonts often implement this feature using contextual rules based on the use of the slash ('/') character. As such, it’s not suitable for use as a paragraph-level style.
6.8. 代替-と~swash: `font-variant-alternates^p ~prop
◎名 `font-variant-alternates@p ◎値 `normal$v1 | [ `stylistic$v(`feature-value-name$t) || `historical-forms$v || `styleset$v(`feature-value-name$t#) || `character-variant$v(`feature-value-name$t#) || `swash$v(`feature-value-name$t) || `ornaments$v(`feature-value-name$t) || `annotation$v(`feature-value-name$t) ] ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終`feature-value-name@t = `ident$t
~fontは、 所与のどの文字に対しても — その文字~用の既定の~glyphに加えて — 様々な代替-~glyphを供し得る。 この~propは、 これらの代替-~glyphの選定に対する制御を供する。 ◎ For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.
下に挙げる~prop値の多くに対し, いくつかの異なる代替-~glyphが可用になる。 可用な代替-の[ 個数, それぞれが表現するもの ]は,~fontに特有なので、 これらはそれぞれ,下の各種 ~値~定義の中で `~fontに特有@ と記される。 これらの代替-は,その資質から~fontに特有なので、 【作者は】特定の[ 一つ以上の~font族たちが成す集合 ]用に, `font-feature-values$at 規則を利用して[ ~fontに特有な数量-`特能~index$と ~customな`特能~値~名$との結び付け ]をいくつか定義した上で、 それらの~custom名を,この~propにおける特定の代替-を選定するために利用する: ◎ For many of the property values listed below, several different alternate glyphs are available. How many alternates are available and what they represent is font-specific, so these are each marked font specific in the value definitions below. Because the nature of these alternates is font-specific, the @font-feature-values rule is used to define values for a specific font family or set of families that associate a font-specific numeric <feature-index> with a custom <feature-value-name>, which is then used in this property to select specific alternates:
@font-feature-values Noble Script { @swash { swishy: 1; flowing: 2; } }
p {
font-family: Noble Script;
font-variant-alternates: swash(flowing); /*
~swashの 2 番目の代替-を利用する
◎
use swash alternate #2
*/
}
特定0の`特能~値~名$が[ 所与の族, あるいは 特定0の特能~型 ]用に定義されていないときの, `font-variant-alternates$p の`算出d値$は、 それが定義されていたとするときの`算出d値$と同じになるモノトスル。 しかしながら,~UAは、 ~glyphを選ぶ際には, そのような未定義な`特能~値~名$を包含する~prop値を無視するモノトスル。 ◎ When a particular <feature-value-name> has not been defined for a given family or for a particular feature type, the computed value must be the same as if it had been defined. However, property values that contain these undefined <feature-value-name> identifiers must be ignored when choosing glyphs.
次の 2 つの~style規則は、 実質的に同じになる: ◎ /* these two style rules are effectively the same */
p { font-variant-alternates: swash(unknown-value); } /*
定義された値でないので、
無視される
◎
not a defined value, ignored
*/
p { font-variant-alternates: normal; }
これにより、 値は,所与の[ ~font族たちが成す集合 ]用には定義されて利用される一方、 ~fallbackが生じたときには,~font族~名が異なるので無視されるようになる。 所与の値が,所与の~fontが~supportする範囲に入らない場合、 その値は無視される。 これらの値は、 汎用~font族には決して適用されない。 ◎ This allows values to be defined and used for a given set of font families but ignored if fallback occurs, since the font family name would be different. If a given value is outside the range supported by a given font, the value is ignored. These values never apply to generic font families.
各種~値の意味は: ◎ Individual values have the following meanings:
- `normal@v1
- 下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
- `historical-forms@v
- 歴史的な形 (~OpenType特能: `hist^tag ) による表示を可能化する。 ◎ Enables display of historical forms (OpenType feature: hist).
-
歴史的な形の例 ◎ historical form example
- `stylistic@v(`feature-value-name$t)
- ~style上の代替- (`~fontに特有$, ~OpenType特能: `salt^tag `feature-index$t ) による表示を可能化する。 ◎ Enables display of stylistic alternates (font specific, OpenType feature: salt <feature-index>).
-
~style上の代替-の例 ◎ stylistic alternate example
- `styleset@v(`feature-value-name$t#)
- ~style上の~~設定( “`stylistic sets^en” ) (`~fontに特有$, ~OpenType特能: `ss^tag `feature-index$t ) による表示を可能化する( ~OpenTypeは 現在 `ss01^tag から `ss20^tag までを定義している)。 ◎ Enables display with stylistic sets (font specific, OpenType feature: ss<feature-index> OpenType currently defines ss01 through ss20).
-
~style上の~~設定の例 ◎ styleset example
- `character-variant@v(`feature-value-name$t#)
- 特定の異体文字 (`~fontに特有$, ~OpenType特能: `cv^tag `feature-index$t ) による表示を可能化する( ~OpenTypeは 現在 `cv01^tag から `cv99^tag までを定義している)。 ◎ Enables display of specific character variants (font specific, OpenType feature: cv<feature-index> OpenType currently defines cv01 through cv99).
- `swash@v(`feature-value-name$t)
- ~swash~glyph (`~fontに特有$, ~OpenType特能: `swsh^tag `feature-index$t, `cswh^tag `feature-index$t ) による表示を可能化する。 ◎ Enables display of swash glyphs (font specific, OpenType feature: swsh <feature-index>, cswh <feature-index>).
-
~swashの例 ◎ swash example
- `ornaments@v(`feature-value-name$t)
- ~fontにて供されているならば、 既定の~glyphに対する,装飾体による置換を可能化する (`~fontに特有$, ~OpenType特能: `ornm^tag `feature-index$t )。 ~fontには、 広範囲な文字たちが成す~collection用に,代替-として装飾体~glyphを提供するものもある。 しかしながら, 恣意的な範囲の文字(例:英数字)を装飾体として表示させることは、 ~dataの意味論を歪めるので,拙い実施である。 ~font~designerには、 作者が `ornaments()^v を利用して 欲する~glyphを選定できるよう, すべての装飾体 (~Unicode~Dingbats~block【 `2700^U 〜 `27BF^U 】の中で明示的に符号化されたもの, 等々を除く) を[ ~bullet文字 ( `2022^U )用の代替- ]として符号化しておくことが奨励される。 ◎ Enables replacement of default glyphs with ornaments, if provided in the font (font specific, OpenType feature: ornm <feature-index>). Some fonts may offer ornament glyphs as alternates for a wide collection of characters; however, displaying arbitrary characters (e.g., alphanumerics) as ornaments is poor practice as it distorts the semantics of the data. Font designers are encouraged to encode all ornaments (except those explicitly encoded in the Unicode Dingbats blocks, etc.) as alternates for the bullet character (U+2022) to allow authors to select the desired glyph using ornaments().
-
装飾体の例 ◎ ornaments example
- `annotation@v(`feature-value-name$t)
- 代替-~annotation形 (`~fontに特有$, ~OpenType特能: `nalt^tag `feature-index$t ) による表示を可能化する。 ◎ Enables display of alternate annotation forms (font specific, OpenType feature: nalt <feature-index>).
-
代替-~annotation形の例 ◎ alternate annotation form example
6.9. ~fontに特有な代替-の定義-法: `font-feature-values@at 規則
上に挙げた,`font-variant-alternates$p にアリな値のうちいくつかは、 `~fontに特有$とされている。 ~fontは、 当の特能~用にアリな異体字~glyphを, 1 個と限らず `複数個^em 定義し得る — それぞれに,どれをオンにするか選ぶための数量-~indexを結付けた上で。 ◎ Several of the possible values of font-variant-alternates listed above are labeled as font specific; a font can define not just a single glyph for the feature, but multiple possible glyph variants, and associate each one with a numeric index to let you choose which to turn on.
これらの数量-~indexは、 書体ごとに不揃いである: 特能 `swsh 1^tag は、 ある書体-では頭字 "Q" の~swash~versionをオンにする一方で, 別の書体-では "&" の~swash~versionをオンにするかもしれない。 したがって、 `font-feature-settings$p 内に~indexを指定することは,[ どの要素にどの~fontが利用されるか`正確に知る^emこと ]を作者に要求する。 (~font~fallbackにより異なる~fontが選定されることに因り) 間違いになる場合、[ 求まれるものと まったく異なる,望ましくない特能 ]をオンにする結果になるであろう。 それはまた、 作者は,[ 異なる~fontを伴う要素たち用に,類似な特能を容易にオンにできない ]ことも意味する — 要素ごとに,[ 欲される特能~用の正しい数量-~indexを利用する,異なる `font-feature-settings$p 値 ]を個別に設定する必要がある。 ◎ These numeric indexes are idiosyncratic to each face; a swsh 1 feature on one font face might turn on the swash version of capital Q, while on another font face it turns on the swash version of the &. Thus, specifying the index in font-feature-settings requires that the author know exactly which font will be used on an element; if they get it wrong (due to font fallback selecting a different font) they might end up turning on an entirely different, and undesirable, feature to what they wanted! It also means that the author can’t easily turn on similar features for elements with different fonts; they have to individually set different font-feature-settings values for each that uses the correct numeric indexes for the desired features.
`font-feature-values$at 規則は、 この課題に~~対処するためにあり, 作者が[ 各~書体-に特有な`特能~index$に対し,ヒトに~friendlyな名前をアテガう ]ことを~~可能にする。 作者は、 ~friendlyな名前を利用して — 利用-中にある~fontに関わらず — 類似な特能を容易にオンにでき (どの~font用にも,その名前が定義-済みであれば)、 無関係な特能が不用意にオンにされないようにもなる (当の特能~用にその名前を定義していない~fontの下では、 単純に何もしなくなるので)。 ◎ To fix this issue, the @font-feature-values rule lets an author assign, for each font face, a human-friendly name to specific feature indexes. Using these friendly names, an author can easily turn on similar features regardless of the font in use (if they’ve defined that name for all the fonts), and be sure they’re not accidentally turning on unrelated features (as fonts without those names defined for them simply won’t do anything).
各~fontに共通な`特能~値~名$を利用することにより、 作者は,下層の異体~選択子が~fontごとに異なるときでも, 単独の~style規則に受持たすことが~~可能になる。 下の例における いずれかの~fontが見出されたなら、 丸囲み数字n~glyphが利用されることになる: ◎ Using a commonly named value allows authors to use a single style rule to cover a set of fonts for which the underlying selector is different for each font. If either font in the example below is found, a circled number glyph will be used:
@font-feature-values Otaru Kisa {
@annotation { circled: 1; black-boxed: 3; }
}
@font-feature-values Taisho Gothic {
@annotation { boxed: 1; circled: 4; }
}
h3.title {
/*
両~font用に定義される丸囲み形
◎
circled form defined for both fonts
*/
font-family: Otaru Kisa, Taisho Gothic;
font-variant: annotation(circled);
}
`font-feature-values$at を利用して, ~font用に丸囲み( `circled^css )形を明示的にオンにしようと試行するためには、 作者は,どの~fontが利用されるか確かに知ること要する。 作者が `Otaru Kisa^F を期待して `font-feature-values: nalt 1;^css と書いた場合、 `Otara Kisa^F において丸囲み文字をオンにするが、 ~systemが `Taisho Gothic^F に~fall-backした場合, 四角囲み( `boxed^css )文字をオンにする — `Taisho Gothic^F 内では、 それが `nalt 1^tag に結付けられるので。 ◎ Trying to turn on the "circled" forms for either font explicitly, using font-feature-values, would require the author know for certain which font will be used; if they expected "Otaru Kisa" and wrote font-feature-values: nalt 1;, it would turn on "circled" characters in Otara Kisa, but would instead turn on boxed characters if the system fell back to Taisho Gothic, as that’s what Taisho Gothic associates with nalt 1!
6.9.1. 基本的な構文
`font-feature-values$at 規則は、 導入部を成す[ ~font族~名たちが成す~list ], それに後続する~blockからなる。 ~blockは、 `特能~値~block$( `font-feature-value-type$t )たちを包含する。 各 `特能~値~block$は、 特別な型の従属的な~at-規則であり, `特能~値~種別$と後続する[ 宣言たちを包含する~block ]からなる。 各 宣言 — `~font特能~値~宣言$ — は、[ 作者が選んだ,ヒトに~friendlyな名前( "`flowing^en" など) ]を[ 結付けられた特能~用の`特能~index$ ]へ対応付ける。 ◎ An @font-feature-values rule’s prelude contains a list of font family names, followed by a block containing multiple feature-value-blocks, a special type of subsidiary at-rule. Each feature-value-block' contains declarations mapping author-chosen human-friendly names (such as "flowing") to feature indexes for the associated feature.
各 `font-feature-value^t 【?】の意味は、 `font-variant-alternates$p ~prop用の対応する値と同じである。 ◎ Each <font-feature-value> has the same meaning as the corresponding value of the font-variant-alternates property.
`font-feature-values$at = @font-feature-values `family-name$t# { `declaration-rule-list$t } `font-feature-value-type@t = `stylistic$tat | `historical-forms$tat | `styleset$tat | `character-variant$tat | `swash$tat | `ornaments$tat | `annotation$tat `stylistic@at = @stylistic { `declaration-list$t } `historical-forms@at = @historical-forms { `declaration-list$t } `styleset@at = @styleset { `declaration-list$t } `character-variant@at = @character-variant { `declaration-list$t } `swash@at = @swash { `declaration-list$t } `ornaments@at = @ornaments { `declaration-list$t } `annotation@at = @annotation { `declaration-list$t }
`font-feature-values$at の導入部は、 ~commaで区切られた[ `font-family$p ~prop用の `family-name$t の定義に合致する~font族~名 ]たちが成す~listである。 したがって、 有名~font族のみが許容され, 汎用~fontや~system~fontは構文~errorになる。 しかしながら,~UAが汎用~fontを[ 特定の有名~font(例: `Helvetica^F ) ]であるものと定義する場合、 その族~名に結付けられた設定群が利用されることになる。 この~list内に構文~errorがある場合、 当の `font-feature-values^at 規則は, 全体が無効になり,無視されるモノトスル。 ◎ The @font-feature-values prelude is a comma-delimited list of font family names that match the definition of <family-name> for the font-family property. This means that only named font families are allowed; rules that include generic or system fonts in the list of font families are syntax errors. However, if a user agent defines a generic font to be a specific named font (e.g. Helvetica), the settings associated with that family name will be used. If syntax errors occur within the <family-name> list, the entire rule @font-feature-values rule is invalid and must be ignored.
導入部に後続する~blockは、 その内容として `declaration-rule-list$t を受容する。 この~listを成す各~itemは、[ `特能~値~block$/ `~font-displayFV$d 記述子 ]いずれかになる。
`特能~値~block@ は、 `~at-規則$であり, `特能~値~種別@ — `font-feature-value-type$t を成すいずれかの~at-~keyword~token — により命名される。 同じ`特能~値~種別$を複数回~指定しても妥当になり、 それらの内容は,一緒に~cascadeされる。
◎ The @font-feature-values block accepts <declaration-rule-list> as its contents; these list items are either: • at-rules named by one of the <font-feature-value-type> at-keyword tokens ◎ or • the font-display descriptor. ◎ Specifying the same <font-feature-value-type> more than once is valid; their contents are cascaded together.\`特能~値~block$を成す`宣言~群$dBは、 0 個以上の `~font特能~値~宣言@ を受容する。 各`~font特能~値~宣言$を成す名前, 値は:
- 名前は、 `特能~値~名@ ( `feature-value-name$t )を与える。 これらの名前は,どの識別子も受容するが、 標準な~CSS構文~規則による`~CSS識別子$でなければナラナイ。 また、 `文字大小は区別する$モノトスル (なので, `foo: 1^v と `FOO: 2^v は、 2 つの異なる特能を定義する)。
- 値は、 `特能~index@ ( `feature-index^t )を与える。 それは、負でない整数からなる~listであり,文法 `integer [0,∞]$t+ に合致しなければナラナイ — さもなければ、 宣言は無効になり,無視されるモノトスル。
注記: 各 `特能~値~名$は、 同じ`特能~値~block$の中に限り一意になる。 [ 異なる`特能~値~block$どうしや, 別々の `font-feature-values$at 規則~内にある[ 同じ`特能~値~種別$を伴う`特能~値~block$ ]どうし ]では、同じ名前を衝突することなく再利用できる。 ◎ Note: Each feature name is unique only within a single <feature-value-block>. Between different <feature-value-block>s, or the same type of <feature-value-block>s in separate @font-feature-values rules, names can be reused without colliding.
`font-feature-values$at 導入部~内の各 `family-name$t に対し、 各`~font特能~値~宣言$は, ( 族~名, `特能~値~種別$, `特能~値~名$ ) が成す~tupleから`特能~index$への対応付けを定義する†。 文書~内に同じ~tupleが複数回~出現する場合、 最後に定義されたものが利用される (それらが単独の~block内にあったかのように)。 ◎ For each <family-name> in the @font-feature-values prelude, each font feature value declaration defines a mapping between a (family name, feature block name, declaration name) tuple and the list of one or more integers from the declaration’s value. If the same tuple appears more than once in a document (such as if a single block), the last-defined one is used.
【† 下の例で言えば、 ( `foo^F, `swash^at, `pretty^v ) が成す~tupleは,~index `1^v に対応付けられ、 `pretty^v を `cool^v に代えた~tupleは,~index `2^v に対応付けられる。 】
例えば,次が定義する[ ~font特能~値たちが成す集合 ]は、 どれも正確に同じになる: ◎ For example, the following all define the exact same set of font feature values:
/* 既定 ◎ Default */ @font-feature-values foo { @swash { pretty: 1; cool: 2; } } /* 同じ宣言~名が繰返されている ◎ Repeated declaration names */ @font-feature-values foo { @swash { pretty: 0; pretty: 1; cool: 2; } } /* 同じ特能~値~種別を伴う~blockが複数ある ◎ Multiple blocks of the same type */ @font-feature-values foo { @swash { pretty: 1; } @swash { cool: 2; } } /* 同じ族~用の規則が複数ある ◎ Multiple rules for the same family */ @font-feature-values foo { @swash { pretty: 1; } } @font-feature-values foo { @swash { cool: 2; } }
`~font特能~値~宣言$の中に構文~errorがある場合、 宣言は無効になり無視されるが、 それを含んでいる`特能~値~block$は無効~化されない。 `font-feature-values$at を成す~blockの中の[ 未知な`特能~値~種別$ (定義済みな許容される~at-~keywordでないもの) を伴う~at-規則 ]は,無効になり無視されるが、 `font-feature-values^at 規則は無効~化されない。 ◎ A syntax error within a font feature value declaration makes the declaration invalid and ignored, but does not invalidate the font feature value block it occurs in. An unknown at-rule within a @font-feature-values block (not using one of the predefined list of allowed at-keywords) makes that at-rule invalid and ignored, but does not invalidate the @font-feature-values rule.
構文~errorが含まれている規則: ◎ Rules that are equivalent given syntax error handling:
@font-feature-values Bongo {
@swash { ornate: 1; }
annotation { boxed: 4; } /*
@annotation
とされるべき
◎
should be @annotation!
*/
@swash { double-loops: 1; flowing: -1; } /*
値が負である
◎
negative value
*/
@ornaments ; /*
不完全な定義
◎
incomplete definition
*/
@styleset { double-W: 14; sharp-terminals: 16 1 } /*
~semicolon( `;^l )が抜けている
◎
missing ;
*/
redrum /*
でたらめな編集時の誤り
◎
random editing mistake
*/
}
上の例は次と等価になる: ◎ The example above is equivalent to:
@font-feature-values Bongo { @swash { ornate: 1; } @swash { double-loops: 1; } @styleset { double-W: 14; sharp-terminals: 16 1; } }
所与の族~用に,複数の `font-feature-values$at 規則が定義されている場合、 結果の[ 値~定義 ]は,これらの規則に包含されている定義たちが成す和集合になる。 これにより、[ 所与の~font族~用の`特能~値~名$たちが成す集合 ]を[ ~site用の大域的なもの, ~page別の特定の追加 ]に分けて定義できるようになる。 ◎ If multiple @font-feature-values rules are defined for a given family, the resulting values definitions are the union of the definitions contained within these rules. This allows a set of named values to be defined for a given font family globally for a site and specific additions made per-page.
~site全体, および ~pageごとの特能~値の利用-法: ◎ Using both site-wide and per-page feature values:
/* ~site用の~style ◎ site.css: */ @font-feature-values Mercury Serif { @styleset { stacked-g: 3; /* "g", "a" の“二階建て” ~version ◎ "two-storey" versions of g, a */ stacked-a: 4; } }
/* ある~page用の~style ◎ page.css: */ @font-feature-values Mercury Serif { @styleset { geometric-m: 7; /* "m" の代替-~version ◎ alternate version of m */ } } body { font-family: Mercury Serif, serif; /* stacked "g" と代替- "m" の両者の利用を可能化する: ◎ enable both the use of stacked g and alternate m */ font-variant-alternates: styleset(stacked-g, geometric-m); }
6.9.2. 複数個の値をとれる特能~値の定義
`font-variant-alternates$p ~prop用の[ `~fontに特有$な関数形の値 ]のうち,ほとんどは、 1 個の引数をとり(例: `swash$v ), 当の特能を可能化する。 ◎ Most font specific functional values of the font-variant-alternates property take a single value (e.g. swash()) which enables the feature.
@font-feature-values Jupiter Serif { @swash { swishy: 5; /* `ss05^tag = 1 を含意する ◎ implies ss05 = 1 */ swirly: 2; /* `ss02^tag = 1 を含意する ◎ implies ss02 = 1 */ } }
[ `font-variant-alternates$p ~prop用の値 `character-variant$f / `character-variant$at 用の記述子 ]は、 2 個の値を許容する — それは、 1 個目の値が指す特能を可能化して,それを 2 個目の値に設定する。 ◎ The character-variant() property value and the @character-variant descriptor allow two values, which enables a feature (from the first value) and sets it to a given (second) value.
@font-feature-values MM Greek { @character-variant { alpha-2: 1 2; } /* `cv01^tag = 2 を含意する ◎ implies cv01 = 2 */ @character-variant { beta-3: 2 3; } /* `cv02^tag = 3 を含意する ◎ implies cv02 = 3 */ }
[ `font-variant-alternates$p ~prop用の値 `styleset$f / `styleset$at 用の記述子 ]は、 1 個以上の値を許容し,可能化される~styleたちが成す集合を指示する。 1 から 99 までの値は,[ `ss01^tag から `ss99^tag まで ]の ~OpenType特能を可能化する。 ただし,~OpenType標準が公式的に定義するのは[ `ss01^tag から `ss20^tag まで ]である。 ~OpenType~fontに対しては、 値が[ 0 または 99 を超える ]場合でも,構文解析-時に構文~errorは生成されないが、 いかなる~OpenType特能も可能化されない。 ◎ For the styleset() property value and @styleset rule, multiple values indicate the style sets to be enabled. Values between 1 and 99 enable OpenType features ss01 through ss99. However, the OpenType standard only officially defines ss01 through ss20. For OpenType fonts, values greater than 99 or equal to 0 do not generate a syntax error when parsed but enable no OpenType features.
@font-feature-values Mars Serif { @styleset { alt-g: 1; /* `ss01^tag = 1 を含意する ◎ implies ss01 = 1 */ curly-quotes: 3; /* `ss03^tag = 1 を含意する ◎ implies ss03 = 1 */ code: 4 5; /* `ss04^tag = 1, `ss05^tag = 1 を含意する ◎ implies ss04 = 1, ss05 = 1 */ } @styleset { dumb: 125; /* 99 を超えるので無視される ◎ >99, ignored */ } @swash { swishy: 3 5; /* ~swashに対する複数個の値は、 構文~error ◎ more than 1 value for swash, syntax error */ } } p.codeblock { /* `ss03^tag = 1, `ss04^tag = 1, `ss05^tag = 1 を含意する ◎ implies ss03 = 1, ss04 = 1, ss05 = 1 */ font-variant-alternates: styleset(curly-quotes, code); }
`character-variant$at 用の記述子は、 2 個までの値を許容する。 1 個目として与えられた[ 1 から 99 まで ]の値は,対応する[ `cv01^tag から `cv99^tag まで ]の~OpenType特能を可能化するよう指示する。 ~OpenType~fontに対しては、[ 0 / 99 を超える値 ]は無視され,構文解析-時に構文~errorは生成されないが、 いかなる~OpenType特能も可能化されない。 2 個目の値も与えられたときは、 それが当の特能に渡される【省略時は 1 が渡される】。 3 個~以上の値がアテガわれた場合、 構文~errorになり,当の`~font特能~値~宣言$は無視される。 ◎ For <@character-variant>, a single value between 1 and 99 indicates the enabling of OpenType feature cv01 through cv99. For OpenType fonts, values greater than 99 or equal to 0 are ignored but do not generate a syntax error when parsed but enable no OpenType features. When two values are listed, the first value indicates the feature used and the second the value passed for that feature. If more than two values are assigned to a given name, a syntax error occurs and the entire feature value definition is ignored.
@font-feature-values MM Greek { @character-variant { alpha-2: 1 2; } /* `cv01^tag = 2 を含意する ◎ implies cv01 = 2 */ @character-variant { beta-3 : 2 3; } /* `cv02^tag = 3 を含意する ◎ implies cv02 = 3 */ @character-variant { epsilon: 5 3 6; } /* 3 個の値, 構文~error, 定義は無視される ◎ more than 2 values, syntax error, definition ignored */ @character-variant { gamma : 12; } /* `cv12^tag = 1 を含意する ◎ implies cv12 = 1 */ @character-variant { zeta : 20 3; } /* `cv20^tag = 3 を含意する ◎ implies cv20 = 3 */ @character-variant { zeta-2 : 20 2; } /* `cv20^tag = 2 を含意する ◎ implies cv20 = 2 */ @character-variant { silly : 105; } /* 99 を超えるので無視される ◎ >99, ignored */ @character-variant { dumb : 323 3; } /* 99 を超えるので無視される ◎ >99, ignored */ } #title { /* 3 番の代替- beta, 1 番の代替- gamma を利用 ◎ use the third alternate beta, first alternate gamma */ font-variant-alternates: character-variant(beta-3, gamma); } p { /* zeta-2, zeta の並び, `cv20^tag = 2 を含意する ◎ zeta-2 follows zeta, implies cv20 = 2 */ font-variant-alternates: character-variant(zeta, zeta-2); } .special { /* zeta, zeta-2 の並び `cv20^tag = 3 を含意する ◎ zeta follows zeta-2, implies cv20 = 3 */ font-variant-alternates: character-variant(zeta-2, zeta); }
上の図の~~赤い~textは、[[[ 西暦 8 世紀の `Byzantine seal^en に見出される文字~形 ]を真似る異体文字 ]を包含している~font ]を利用して描画されたものである。 その下の~~黒い 2 行lは、 同じ~textを異体字を伴わない~fontで表示したものである。 `Byzantine seal^en に対しては、 "U" 用, "N" 用に 2 個の異体字が利用されていることに注意。 ◎ In the figure above, the text in red is rendered using a font containing character variants that mimic the character forms found on a Byzantine seal from the 8th century A.D. Two lines below is the same text displayed in a font without variants. Note the two variants for U and N used on the seal.
@font-feature-values Athena Ruby { @character-variant { leo-B: 2 1; leo-M: 13 3; leo-alt-N: 14 1; leo-N: 14 2; leo-T: 20 1; leo-U: 21 2; leo-alt-U: 21 4; } } p { font-variant: discretionary-ligatures character-variant(leo-B, leo-M, leo-N, leo-T, leo-U); } span.alt-N { font-variant-alternates: character-variant(leo-alt-N); } span.alt-U { font-variant-alternates: character-variant(leo-alt-U); } <p>ENO....UP͞RSTU<span class="alt-U">U</span>͞<span class="alt-U">U</span>ΚΑΙTỤẠG̣IUPNS</p> <p>LEON|ΚΑΙCONSTA|NTI<span class="alt-N">N</span>OS..|STOIBAṢ.|LIṢROM|AIO<span class="alt-N">N</span></p>
6.10. 東Asian~textの描画: `font-variant-east-asian^p ~prop
◎名 `font-variant-east-asian@p ◎値 `normal$v1 | [ `east-asian-variant-values$t || `east-asian-width-values$t || `ruby$v ] ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終東Asian~textにおける~glyphの[ 代用と~sizing ]の制御を可能にする。 ◎ Allows control of glyph substitution and sizing in East Asian text.
`east-asian-variant-values@t = `jis78$v | `jis83$v | `jis90$v | `jis04$v | `simplified$v | `traditional$v `east-asian-width-values@t = `full-width$v | `proportional-width$v
各種~値の意味は: ◎ Individual values have the following meanings:
- `normal@v1
- 下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
- `jis78@v
- JIS78 形 (~OpenType特能: `jp78^tag ) の描画を可能化する。 ◎ Enables rendering of JIS78 forms (OpenType feature: jp78).
-
JIS78 形の例 ◎ JIS78 form example
- `jis83@v
- JIS83 形 (~OpenType特能: `jp83^tag ) の描画を可能化する。 ◎ Enables rendering of JIS83 forms (OpenType feature: jp83).
- `jis90@v
- JIS90 形 (~OpenType特能: `jp90^tag ) の描画を可能化する。 ◎ Enables rendering of JIS90 forms (OpenType feature: jp90).
- `jis04@v
- JIS2004 形 (~OpenType特能: `jp04^tag ) の描画を可能化する。 ◎ Enables rendering of JIS2004 forms (OpenType feature: jp04).
- ~Japaneseの各種 国家-標準にて定義される~glyph形が,様々な JIS 異体字に反映される。 ~fontは、 一般に[ ~~最新な国家-標準により定義される~glyphを含む ]が, より古い異体字の利用が — 例えば, `signage^en【標識?】 に合致させるために — 必要yなこともある。 ◎ The various JIS variants reflect the glyph forms defined in different Japanese national standards. Fonts generally include glyphs defined by the most recent national standard, but it’s sometimes necessary to use older variants, to match signage for example.
- `simplified@v
- 簡略d形 (~OpenType特能: `smpl^tag ) の描画を可能化する。 ◎ Enables rendering of simplified forms (OpenType feature: smpl).
- `traditional@v
- 伝統-形 (~OpenType特能: `trad^tag ) の描画を可能化する。 ◎ Enables rendering of traditional forms (OpenType feature: trad).
- 値 `simplified$v と `traditional$v は,[[[ 時を経て簡略化されてきた形であるが、 一部の文脈においては,より古い伝統的な形も依然として利用されている ]ような文字 ]用の~glyph形 ]に対する制御を可能にする。 [ 文字と~glyph形 ]たちが成す正確な集合は、 所与の~fontが~designされた文脈により, ある程度~変わり得ることになる。 ◎ The simplified and traditional values allow control over the glyph forms for characters which have been simplified over time but for which the older, traditional form is still used in some contexts. The exact set of characters and glyph forms will vary to some degree by the context for which a given font was designed.
-
伝統-形の例 ◎ traditional form example
- `full-width@v
- 全角~異体字 (~OpenType特能: `fwid^tag ) の描画を可能化する。 ◎ Enables rendering of full-width variants (OpenType feature: fwid).
- `proportional-width@v
- 均衡幅な異体字 (~OpenType特能: `pwid^tag ) の描画を可能化する。 ◎ Enables rendering of proportionally-spaced variants (OpenType feature: pwid).
-
均衡幅な~Japaneseの例 ◎ proportionally spaced Japanese example
- `ruby@v
- ~ruby異体字~glyph (~OpenType特能: `ruby^tag ) による表示を可能化する。 ~ruby~textは、 一般に,それに結付けられる本文~textより小さいので、 ~font~designerは,~ruby用に[[ 既定の~glyphの縮小~version ]より読み易い,特別な~glyph ]を~designすることがある。 ~glyph選定のみが影響され、[ 結付けられた~fontの拡縮/ ~text行lの~layoutに影響するような他の変化 ]は生じない。 ◎ Enables display of ruby variant glyphs (OpenType feature: ruby). Since ruby text is generally smaller than the associated body text, font designers can design special glyphs for use with ruby that are more readable than scaled down versions of the default glyphs. Only glyph selection is affected, there is no associated font scaling or other change that affects line layout.
-
下の赤い~ruby~textに[ 既定の~glyphによるもの(上段), ~ruby異体字~glyphによるもの(下段) ]を示す。 描線の太さに若干の相違があることに注意。 ◎ The red ruby text below is shown with default glyphs (top) and with ruby variant glyphs (bottom). Note the slight difference in stroke thickness.
~ruby異体字の例 ◎ ruby variant example
6.11. ~font描画~用の全般的な略式: `font-variant^p ~prop
◎名 `font-variant@p ◎値 `normal$v1 | `none$v1 | [ [ `common-lig-values$t || `discretionary-lig-values$t || `historical-lig-values$t || `contextual-alt-values$t ] || [ `small-caps$v | `all-small-caps$v | `petite-caps$v | `all-petite-caps$v | `unicase$v | `titling-caps$v ] || [ `stylistic$v(`feature-value-name$t) || `historical-forms$v || `styleset$v(`feature-value-name$t#) || `character-variant$v(`feature-value-name$t#) || `swash$v(`feature-value-name$t) || `ornaments$v(`feature-value-name$t) || `annotation$v(`feature-value-name$t) ] || [ `numeric-figure-values$t || `numeric-spacing-values$t || `numeric-fraction-values$t || `ordinal$v || `slashed-zero$v ] || [ `east-asian-variant-values$t || `east-asian-width-values$t || `ruby$v ] || [ `sub$v | `super$v ] || [ `text^v | `emoji^v | `unicode^v ] ] ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終`font-variant$p ~propは、[ 次に挙げる,そのすべての下位prop ]用の略式~propである ⇒# `font-variant-ligatures$p, `font-variant-position$p, `font-variant-caps$p, `font-variant-numeric$p, `font-variant-alternates$p, `font-variant-east-asian$p, `font-variant-emoji$p ◎ The font-variant property is a shorthand for all font-variant subproperties: • font-variant-ligatures • font-variant-position • font-variant-caps • font-variant-numeric • font-variant-alternates • font-variant-east-asian • font-variant-emoji
値 `normal@v1 は、 `font-variant$p の下位propすべてを各自の`初期~値$に設定し直す。 値 `none@v1 は、 `font-variant-ligatures$p を `none$v1 に設定し, 他の~font特能~propすべてを各自の`初期~値$に設定し直す。 他の略式~propと同様に、 `font-variant$p の利用-時に指定しなかった `font-variant$p の下位propは, 各自の`初期~値$に設定し直される。 ◎ The value normal resets all subproperties of font-variant to their initial value. The none value sets font-variant-ligatures to none and resets all other font feature properties to their initial value. Like other shorthands, using font-variant resets unspecified font-variant subproperties to their initial values.
この~propは、[ `font-language-override$p / `font-feature-settings$p / `font-variation-settings$p ]用の値を設定し直すことはない。 ◎ It does not reset the values of font-language-override, font-feature-settings or font-variation-settings.
6.12. 低~levelな~font特能~設定群の制御: `font-feature-settings^p ~prop
◎名 `font-feature-settings@p ◎値 `normal$v1 | `feature-tag-value$t# ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 ~OpenType~font特能に対する低~levelな制御を供する。 これには、[ 広く利用されてはいないが,特定0の利用事例には必要になるような~font特能 ]への~accessを供する用途が意図されている。 ◎ This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.
作者は、 下の表tに挙げる~font特能に対しては, `font-feature-settings$p を利用して設定する`べきでない^em。 代わりに,[ その置換を成す より高~levelな~prop ]を利用されたし — 何故なら: ◎ Authors should not use font-feature-settings to set any of the font features in the table below. Instead, please use the higher-level replacement properties, because:
- より高~levelな~propは、 個別に~cascadeする。 `font-feature-settings$p に~list全体を設定することなく,一つだけを設定できる ◎ The higher-level properties cascade individually. You can set one without setting the whole font-feature-settings list
- より高~levelな~propには、[ 当の~font特能を~supportしない~font ]用に合成され得るものもある。 ◎ Some higher-level properties can be synthesized for fonts that do not support the font feature.
この列に挙げる~font特能を設定したいと求める場合、 | `font-feature-settings$p に`代えて^em,この列に挙げるものを利用すること。 | 注記 |
---|---|---|
字詰め( `kern^tag )/縦書き字詰め( `vkrn^tag ) | `font-kerning$p: `normal@#valdef-font-kerning-normal$v
| `font-kerning$p ~propが[ `kern^tag, `vkrn^tag ]どちらの特能を設定するかは、 `writing-mode$p に依存する。 |
標準~合字( `liga^tag )/文脈的な合字( `clig^tag ) | `font-variant-ligatures$p: `common-ligatures$v
| |
随意~合字( `dlig^tag ) | `font-variant-ligatures$p: `discretionary-ligatures$v
| |
歴史的~合字( `hlig^tag ) | `font-variant-ligatures$p: `historical-ligatures$v
| |
文脈的な代替-( `calt^tag ) | `font-variant-ligatures$p: `contextual$v
| |
下付-( `subs^tag ) | `font-variant-position$p: `sub$v
| |
上付-( `sups^tag ) | `font-variant-position$p: `super$v
| |
小頭字( `smcp^tag ) | `font-variant-caps$p: `small-caps$v
| |
頭字 → 小頭字( `c2sc^tag ) | `font-variant-caps$p: `all-small-caps$v
| |
極小-頭字( `pcap^tag ) | `font-variant-caps$p: `petite-caps$v
| |
頭字 → 極小-頭字( `c2pc^tag ) | `font-variant-caps$p: `all-petite-caps$v
| |
~unicase( `unic^tag ) | `font-variant-caps$p: `unicase$v
| |
題字用( `titl^tag ) | `font-variant-caps$p: `titling-caps$v
| |
~lining数字f( `lnum^tag ) | `font-variant-numeric$p: `lining-nums$v
| |
~old-style数字f( `onum^tag ) | `font-variant-numeric$p: `oldstyle-nums$v
| |
均衡幅な数字f( `pnum^tag ) | `font-variant-numeric$p: `proportional-nums$v
| |
一定幅な数字f( `tnum^tag ) | `font-variant-numeric$p: `tabular-nums$v
| |
分数( `frac^tag ) | `font-variant-numeric$p: `diagonal-fractions$v
| |
代替な分数( `afrc^tag ) | `font-variant-numeric$p: `stacked-fractions$v
| |
序数( `ordn^tag ) | `font-variant-numeric$p: `ordinal$v
| |
~slashを伴うゼロ( `zero^tag ) | `font-variant-numeric$p: `slashed-zero$v
| |
歴史的な形( `hist^tag ) | `font-variant-alternates$p: `historical-forms$v
| |
~style上の代替-( `salt^tag ) | `font-variant-alternates$p: `stylistic$v()
| どの代替-を利用させるかは、 `font-feature-values$at 規則により定義する |
異体文字 1 〜 99( `cv01^tag 〜 `cv99^tag ) | `font-variant-alternates$p: `character-variant$v()
| どの異体文字を利用させるかは、 `font-feature-values$at 規則により定義する |
~swash( `swsh^tag )/文脈的な~swash( `cswh^tag ) | `font-variant-alternates$p: `swash$v()
| どの~swashを利用させるかは、 `font-feature-values$at 規則により定義する |
装飾体( `ornm^tag ) | `font-variant-alternates$p: `ornaments$v()
| どの装飾体を利用させるかは、 `font-feature-values$at 規則により定義する |
代替-~annotation形( `nalt^tag ) | `font-variant-alternates$p: `annotation$v()
| どの~annotationを利用させるかは、 `font-feature-values$at 規則により定義する |
JIS78 形( `jp78^tag ) | `font-variant-east-asian$p: `jis78$v
| |
JIS83 形( `jp83^tag ) | `font-variant-east-asian$p: `jis83$v
| |
JIS90 形( `jp90^tag ) | `font-variant-east-asian$p: `jis90$v
| |
JIS2004 形( `jp04^tag ) | `font-variant-east-asian$p: `jis04$v
| |
簡略d形( `smpl^tag ) | `font-variant-east-asian$p: `simplified$v
| |
伝統的な形( `trad^tag ) | `font-variant-east-asian$p: `traditional$v
| |
全角( `fwid^tag ) | `font-variant-east-asian$p: `full-width$v
| |
均衡幅( `pwid^tag ) | `font-variant-east-asian$p: `proportional-width$v
| |
~ruby記法~形( `ruby^tag ) | `font-variant-east-asian$p: `ruby$v
|
例えば、 科学用下付数字 ( `scientific inferior^en ) (化学式に利用される小さな数詞) を制御する `font-variant^p 値は無い。 それらを利用すれば,可読性は強化されるが、 可能化するには, `font-feature-settings^p を利用しなければならない: ◎ For example, there is no font-variant value to control Scientific Inferiors (small numerals used in chemical formulae). Readability is enhanced by using them, so they must be enabled using font-feature-settings:
.chem { font-feature-settings: 'sinf' }
注記: この~propの値は、 一度に全体が設定される。 `font-variant^p ~propと違って、 個々の特能を追加したり除去して`継承d値$を改変する仕方は無い。 ◎ The entire property value is set at once. Unlike the font-variant properties, there is no way to modify the inherited value by adding or removing individual features.
値 `normal@v1 は、 この~propに因り,~glyph選定や位置決めが変わることはないことを意味する。 ◎ A value of normal means that no change in glyph selection or positioning occurs due to this property.
特能~tag値の構文は次で与えられる: ◎ Feature tag values have the following syntax:
`feature-tag-value@t = `opentype-tag$t [ `integer [0,∞]$t | `on^v | `off^v ]? `opentype-tag@t = `string$t
`opentype-tag$t は~OpenType特能~tagであり,文字大小は区別される。 ~OpenType仕様 `OPENTYPE$r による指定に従い, 特能~tagは 4 個の~ASCII文字を包含する。 ~tag文字列は、[ ~~長さが 4 文字に一致しない / 符号位置~範囲 { `0020^U 〜 `007E^U } 【! U+20–7E】 に入らない文字を包含している ]場合には,無効になる。 特能~tagは,[ ~fontの中で定義される特能~tag ]に合致させるのみで十分なので、 それらは[ 明示的に登録されている ~OpenType特能 ]に制限されない。 ~custom特能~tagを定義する~fontは、 ~OpenType仕様 `OPENTYPE-FEATURES$r に定義される`~tag名~規則@~OTSPEC/featuretags$に従うベキである。 ◎ The <opentype-tag> is a case-sensitive OpenType feature tag. As specified in the OpenType specification [OPENTYPE], feature tags contain four ASCII characters. Tag strings longer or shorter than four characters, or containing characters outside the U+20–7E codepoint range are invalid. Feature tags need only match a feature tag defined in the font, so they are not limited to explicitly registered OpenType features. Fonts defining custom feature tags should follow the tag name rules defined in the OpenType specification [OPENTYPE-FEATURES].
~font内に無い特能~tagは、 無視される — ~UAは、[ そのような特能~tagに基づく,~fallbackの挙動 ]を合成しようと試みないモノトスル。 唯一の例外として,~UAは、[[ `kern^tag ~tableの~~形で字詰め~dataを包含するが, `GPOS^tag ~tableの中では `kern^tag 特能の~supportを欠いている ]ような~font ]による `kern^tag 特能を,合成的に~supportしてもヨイ。 ◎ Feature tags not present in the font are ignored; a user agent must not attempt to synthesize fallback behavior based on these feature tags. The one exception is that user agents may synthetically support the kern feature with fonts that contain kerning data in the form of a kern table but lack kern feature support in the GPOS table.
注記: 一般に,字詰めを明示的に[ 可能化する/不能化する ]ためには、 作者は `font-kerning$p ~propを利用するべきである。 この~propは、 常に,どちらの種類の字詰め~dataを伴う~fontにも影響するので。 ◎ In general, authors should use the font-kerning property to explicitly enable or disable kerning since this property always affects fonts with either type of kerning data.
特能~tagが~font内に在るならば、 `integer^t 値は,~glyph選定~用に利用される~indexを指示する。 値は 0 以上でなければナラナイ。 値 `0^v は、 特能を不能化することを指示する。 真偽-特能に対する値 `1^v は、 当の特能を可能化する。 それ以外の特能に対する 1 以上の値は、 当の特能を可能化すると同時に, その特能~選定~indexを指示する。 値[ `on^v は `1^v / `off^v は `0^v ]と同義である。 省略された場合の値は、 `1^v と見做される。 ◎ If present, a value indicates an index used for glyph selection. An <integer> value must be 0 or greater. A value of 0 indicates that the feature is disabled. For boolean features, a value of 1 enables the feature. For non-boolean features, a value of 1 or greater enables the feature and indicates the feature selection index. A value of on is synonymous with 1 and off is synonymous with 0. If the value is omitted, a value of 1 is assumed.
`font-feature-settings$p の`算出d値$は~mapなので、 `指定d値$内の重複は保全しないモノトスル。 同じ特能~tagを与える複数個の `feature-tag-value$t が出現した場合、 それらのうち最後のものが他を~~上書きする。 ◎ The computed value of font-feature-settings is a map, so any duplicates in the specified value must not be preserved. If the same feature tag appears more than once, the value associated with the last appearance supersedes any previous value for that axis.
算出d値は、 特能~tagたちを — 重複が無くされ,`符号単位$の昇順で~sortされた上で — 包含する。 ◎ The computed value contains the de-duplicated feature tags, sorted in ascending order by code unit.
font-feature-settings: "sinf" 1; /* `sinf^tag=1 は、 科学用下付数字を可能化する ◎ sinf=1 enable Scientific Inferiors */ font-feature-settings: "sinf" on; /* `sinf^tag=1 は、 科学用下付数字を可能化する ◎ sinf=1 enable Scientific Inferiors */ font-feature-settings: 'sinf'; /* `sinf^tag=1 は、 科学用下付数字を可能化する ◎ sinf=1 enable Scientific Inferiors */ font-feature-settings: "sinf" off; /* `sinf^tag=0 は、 科学用下付数字を可能化する ◎ sinf=0 disable Scientific Inferiors */ font-feature-settings: "sinf", 'twid'; /* `sinf^tag=1 は、 科学用下付数字を可能化する/ `twid^tag=1 は、 三分角( `third width^en )を可能化する ◎ sinf=1, twid=1 enable Scientific Inferiors and Third Widths */ font-feature-settings: "sinf" "twid"; /* 無効 — ~commaで区切られた~listにする必要がある ◎ invalid, need a comma-delimited list */ font-feature-settings: "silly" off; /* 無効 — ~tagが長過ぎる ◎ invalid, tag too long */ font-feature-settings: "PKRN"; /* `PKRN^tag=1 は~custom特能を可能化する ◎ PKRN=1 enable custom feature */ font-feature-settings: sinf; /* 無効 — ~tagは【識別子ではなく,】文字列でなければナラナイ ◎ invalid, tag must be a string */
[ ~fontが~supportする範囲 ]より大きい値が指定されているときの挙動は、 明示的に未定義になる。 真偽-特能に対しては、 これらは一般に,その特能を可能化することになる。 それ以外の特能に対しては、 範囲~外の値は,一般に値 0 と等価になる。 しかしながら,いずれの場合も、 正確な挙動は,~fontがどの仕方で~designされているか (特定的には、 特能が どの種別の検索を利用して定義されているか) に依存することになる。 ◎ When values greater than the range supported by the font are specified, the behavior is explicitly undefined. For boolean features, in general these will enable the feature. For non-boolean features, out of range values will in general be equivalent to a 0 value. However, in both cases the exact behavior will depend upon the way the font is designed (specifically, which type of lookup is used to define the feature).
実装は、 ~OpenType仕様においては常に必須とされている特能 — 必須な合字 `rlig^tag など — をオフにして無視することを選んでもヨイ ◎ Implementations may choose to ignore turning off features which the OpenType specification says are always required, such as required ligatures "rlig".
特能~tagは,特定的に~OpenType特能~tag用に定義されているが、 将来においては,[ ~font特能を~supportする他の現代の~font形式 ]用に特能~tagが追加され得る。 アリな所では,他の~font形式~用に定義される特能は、 登録された~OpenType~tagの~patternに従うよう試みるベキである。 ◎ Although specifically defined for OpenType feature tags, feature tags for other modern font formats that support font features may be added in the future. Where possible, features defined for other font formats should attempt to follow the pattern of registered OpenType tags.
下の~Japanese~textは、 半角カナ文字により描画されることになる: ◎ The Japanese text below will be rendered with half-width kana characters:
body { font-feature-settings: "hwid"; /* 半角~OpenType特能 ◎ Half-width OpenType feature */ } <p>毎日`カレー@https://www.google.com/search?q=カレー&tbm=isch$食べてるのに、飽きない</p>
6.13. ~font言語の上書き: `font-language-override^p ~prop
◎名 `font-language-override@p ◎値 `normal$v1 | `string$vt ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された文字列 / ~keyword `normal^v ◎ specified string or the keyword none ◎順 文法に従う ◎ア 離散的 ◎表終`§ 言語に特有な表示@#language-specific-support$ にて述べたとおり、 作者は,通常は[ 要素の`内容~言語$ ]の設定を通して[ 言語に特有な[ ~glyph代用と位置決め ]]の利用を制御できる: ◎ Normally, authors can control the use of language-specific glyph substitutions and positioning by setting the content language of an element, as described above:
`S’gaw Karen^en 【カレン諸語の一つ,スゴウ=ブゲ諸語】に特有な特能を利用して~textを表示する: ◎ <!-- Display text using S’gaw Karen specific features -->
<p lang="ksw">...</p>
一部の事例では、作者は,`内容~言語$と異なる言語~systemを指定する必要が生じ得る — 例えば、 別の言語の~typographic伝統様式を真似るために。 `font-language-override$p ~propは、 [ `内容~言語$により含意される言語~system ]を上書きして[ ~fontの言語~systemを明示的に指定する ]ことを作者に許容する。 ◎ In some cases, authors may need to specify a language system that differs from the content language, for example due to the need to mimic another language’s typographic traditions. The font-language-override property allows authors to explicitly specify the language system of the font, overriding the language system implied by the content language.
各種~値の意味は: ◎ Values have the following meanings:
- `normal@v1
- ~OpenType~fontで描画するために, ~OpenType言語~systemを推定するときには、 要素の`内容~言語$を利用するものと指定する。 ◎ specifies that when rendering with OpenType fonts, the content language of the element is used to infer the OpenType language system
- `string$t
- [ 要素の言語により含意される言語~system ]の代わりに利用する,~OpenType`言語~system~tag@~OTSPEC/languagetags.htm$を指定する。 それは、 4 文字からなる文字列であり,文字大小は区別される — 4 文字より短い場合、 4 文字になるよう末尾に `0020^U `SPACE^cn たちを~~付加した上で†照合される。 【†これは、`算出d値$には影響しないと思われる(原文は、そのようにも解釈できそうで紛らわしいが)。】 ◎ single four-character case-sensitive OpenType language system tag, specifies the OpenType language system to be used instead of the language system implied by the language of the element. If the string is shorter than four characters, it is padded at the end with space (U+0020) characters such that the length is 4, before being matched.
未知な~OpenType言語~system~tagは、 黙って無視され,~glyphの[ 選定と配置 ]には影響しない。 ◎ Unknown OpenType language system tags are silently ignored, and do not affect glyph selection and placement.
7. ~font特能と異体の解決
前~節にて述べた様に、~fontの特能と異体は,[ ~style規則の中, あるいは`font-face$at 規則~内 ]における[ `font-variant$p / `font-feature-settings$p / `font-variation-settings$p ]の利用を介して,様々な仕方で可能化され得る。 これらの設定の和集合に対する解決の順序は、 以下に定義される。 ~CSS~propを介して定義される各種~特能は、 ~layout~engineの既定の特能の上層で適用される。 ◎ As described in the previous section, font features and variations can be enabled in a variety of ways, either via the use of font-variant, font-feature-settings, fontfont-variation-settings in a style rule or within an @font-face rule. The resolution order for the union of these settings is defined below. Features defined via CSS properties are applied on top of layout engine default features.
7.1. 既定の特能
~OpenType~fontに対しては、 ~UAは,[ ~OpenType の文献にて,所与の[ 用字系, および書字~mode ]用に定義されている既定の特能 ]を可能化するモノトスル。 要求される[ 合字, 共通-合字, 文脈的な形 (~OpenType特能: `rlig^tag, `liga^tag, `clig^tag, `calt^tag ) ]は、[ 地域-化された形 (~OpenType特能: `locl^tag ) ], および[[ 組にされた[ 文字や~mark (~OpenType特能: `ccmp^tag, `mark^tag, `mkmk^tag ) ]の適正な表示 ]のために要求される特能 ]に沿うよう,既定で可能化するモノトスル。 これらの特能は、[ `font-variant$p, `font-feature-settings$p ]~propの値が `normal^v のときでも, 常に可能化するモノトスル。 個々の特能は、 作者から明示的に上書きされたとき — 例: `font-variant-ligatures$p が `no-common-ligatures$v に設定されたときなど — に限り,不能化される。 ◎ For OpenType fonts, user agents must enable the default features defined in the OpenType documentation for a given script and writing mode. Required ligatures, common ligatures and contextual forms must be enabled by default (OpenType features: rlig, liga, clig, calt), along with localized forms (OpenType feature: locl), and features required for proper display of composed characters and marks (OpenType features: ccmp, mark, mkmk). These features must always be enabled, even when the value of the font-variant and font-feature-settings properties is normal. Individual features are only disabled when explicitly overridden by the author, as when font-variant-ligatures is set to no-common-ligatures.
[ `~Arabic@~OTFNTDEV/arabicot/features.aspx$, `~Mongolian@~OTFNTDEV/mongolot/features.htm$, `~Devanagari@~OTFNTDEV/devanot/features.aspx$ ]などの複階的な用字系を取扱うためには、 追加的な特能が要求される。 縦書きな~text連なり内の正立( `upright^en )~text用には、 縦書き用の代替- ( ~OpenType特能: `vert^tag ) を可能化するモノトスル。 【例えば括弧類は、横書き用のそれと異ならせる必要がある。】 ◎ For handling complex scripts such as Arabic, Mongolian or Devanagari additional features are required. For upright text within vertical text runs, vertical alternates (OpenType feature: vert) must be enabled.
7.2. 特能と異体の優先順位
[ 一般的/`~fontに特有$ ]な~font特能~prop設定群は、 以下に与える順序で解決される — 後のものほど、 優先順位は高くなる【より前に現れる規則を上書きし得る】。 この順序付けは、 所与の~text連なりに影響するような[ 一つに組合された,~font特能たちが成す~list ]を構築するために利用される。 ◎ General and font specific font feature property settings are resolved in the order below, in ascending order of precedence. This ordering is used to construct a combined list of font features that affect a given text run.
- 既定で可能化される~font特能は、 所与の用字系に要求される特能も含め,適用する。 `§ 既定の特能@#default-features$を見よ。 ◎ Font features enabled by default are applied, including features required for a given script. See § 7.1 Default features for a description of these.
-
[ `font-weight$p, `font-width$p, `font-style$p ]~propにより可能化される~font異体を適用する: ◎ Font variations as enabled by the font-weight, font-width, and font-style properties are applied.
- `font-style$p により可能化される値の適用には、 ~font選定も影響する — この~propは、 ~italicや~oblique~fontを選定することもあるので。 `§ ~font~styleの照合-法@#font-style-matching$ により決定される値に最も近く合致する値を適用する。 ~UAは、 `font-style^p ~propに因る値のうち適用するのは, 1 個までにするモノトスル — `ital^l, `slnt^l 両~値とも設定しないモノトスル。 ◎ The application of the value enabled by font-style is affected by font selection, because this property might select an italic or an oblique font. The value applied is the closest matching value as determined by the font matching algorithm. User agents must apply at most one value due to the font-style property; both "ital" and "slnt" values must not be set together.
- 選定された~fontが `font-face$at 規則~内に定義されるものである場合、 この段に適用する値は,その規則~内の[ `font-weight$d, `font-width$d, `font-style$d ]記述子の値で切詰められるベキである。 ◎ If the selected font is defined in an @font-face rule, then the values applied at this step should be clamped to the value of the font-weight, font-width, and font-style descriptors in that @font-face rule.
- さらに、 この段にて適用する値は,当の~fontが~supportする値に切詰められるベキである。 ◎ Then, the values applied in this step should be clamped (possibly again) to the values that are supported by the font.
- 継承した `lang^a / `xml:lang^a 値により指定される言語を適用する。 ◎ The language specified by the inherited value of lang/xml:lang is applied.
-
~fontが `font-face$at 規則を介して定義されている場合: ◎ ↓
- [ その規則の中の `font-language-override$d 記述子 ]により含意される~font言語~上書きを適用する。 ◎ If the font is defined via an @font-face rule, the font language override implied by the font-language-override descriptor in the @font-face rule is applied.
- [ その規則は、 `none^v 以外の値をとる妥当な `font-named-instance$d 記述子を 1 個は含む ]かつ[ 読込まれた~font資源は、 `§ 地域-化された名前の照合-法$ による規則に則って,その名前の`有名~instance$を含む ]場合、 その有名~instanceが表現する すべての異体~値を適用する。 これらの値は、 当の~fontが~supportする値に切詰める。 ◎ If the font is defined via an @font-face rule, that @font-face rule includes at least one valid font-named-instance descriptor with a value other than none, and the loaded font resource includes a named instance with that name according to the § 5.1 Localized name matching rules, then all the variation values represented by that named instance are applied. These values are clamped to the values that are supported by the font.
- [ その規則の中の `font-variation-settings$d 記述子 ]により含意される~font異体を適用する。 ◎ If the font is defined via an @font-face rule, the font variations implied by the font-variation-settings descriptor in the @font-face rule are applied.
- [ その規則の中の `font-feature-settings$d 記述子 ]により含意される~font特能を適用する。 ◎ If the font is defined via an @font-face rule, the font features implied by the font-feature-settings descriptor in the @font-face rule are applied.
- `font-language-override$p ~propの値により含意される~font言語~上書きを適用する。 ◎ The font language override implied by the value of the font-language-override property is applied.
- `font-optical-sizing$p ~propの値により含意される~font異体を適用する。 ◎ Font variations implied by the value of the font-optical-sizing property are applied.
- 次に挙げる~propの値により含意される~font特能を適用する ⇒# `font-variant$p ~propとその各種 下位prop, OpenType特能を利用する他の~CSS~prop(例: `font-kerning$p ~prop) ◎ Font features implied by the value of the font-variant property, the related font-variant subproperties and any other CSS property that uses OpenType features (e.g. the font-kerning property) are applied.
- [ `font-variant$p や `font-feature-settings$p ]以外の~propにより決定される特能~設定群を適用する。 例えば、 `letter-spacing$p ~propに既定でない値を設定すると, 任意選択~合字【随意~合字】は不能化される。 ◎ Feature settings determined by properties other than font-variant or font-feature-settings are applied. For example, setting a non-default value for the letter-spacing property disables optional ligatures.
- `font-variation-settings$p ~propの値により含意される~font異体を適用する。 これらの値は、当の~fontが~supportする値に切詰めるベキである。 ◎ Font variations implied by the value of the font-variation-settings property are applied. These values should be clamped to the values that are supported by the font.
- `font-feature-settings$p ~propの値により含意される~font特能を適用する。 ◎ Font features implied by the value of font-feature-settings property are applied.
この順序付けは、[ `font-face$at 規則の中の~font用に,一般の各種~既定を設定しておいた上で、 特定の要素に対しては,~prop設定群で それらを上書きする ]ことを作者に許容する。 一般~prop設定群は, `font-face$at 規則の中の設定群を上書きし、 低~levelな~font特能~設定群は, `font-variant$p ~prop設定群を上書きする。 ◎ This ordering allows authors to set up a general set of defaults for fonts within their @font-face rules, then override them with property settings for specific elements. General property settings override the settings in @font-face rules and low-level font feature settings override font-variant property settings.
[ 一つに組合された,~font特能たちが成す~list ]が,同じ特能~用の値を複数個~包含する状況では、 その最後の値が利用される。 ~fontが[ 所与の下層の~font特能 ]用の~supportを欠いているときは、 ~textは[ 単純に,その~font特能は可能化されなかった ]かのように描画される — 特定の~prop用に明示的に定義されている所を除き、 ~font~fallbackが生じることも,特能の合成しようと試みられることもない。 ◎ For situations where the combined list of font feature settings contains more than one value for the same feature, the last value is used. When a font lacks support for a given underlying font feature, text is simply rendered as if that font feature was not enabled; font fallback does not occur and no attempt is made to synthesize the feature except where explicitly defined for specific properties.
7.3. 特能の優先順位の例
【 この節の中で利用される `font-variant^d 記述子は、 `この仕様から除去された@https://github.com/w3c/csswg-drafts/commit/d3db8697852a6ccc1c8dafcb4aff1f516198bb50$。 】
下に挙げる~styleたちにより,数字nたちは、 段落~内で利用されるときは均衡幅に描画される一方で, 価格表( table.prices )の中では一定幅な形で示される。 ◎ With the styles below, numbers are rendered proportionally when used within a paragraph but are shown in tabular form within tables of prices:
body { font-variant-numeric: proportional-nums; } table.prices td { font-variant-numeric: tabular-nums; }
`font-face$at 規則は、[ `font-face$at 定義の`src$d 記述子における `local$f の利用 ]を介して[ ~localに可用にされた~font ]の中の~font特能に~accessするために利用することもできる: ◎ The @font-face rule can also be used to access font features in locally available fonts via the use of local() in the src descriptor of the @font-face definition:
@font-face {
font-family: BodyText;
src: local("HiraMaruPro-W4");
font-variant: proportional-width;
font-feature-settings: "ital"; /*
~CJK~text特能~内の~Latin~italic
◎
Latin italics within CJK text feature
*/
}
body { font-family: BodyText, serif; }
可用なら、 ~Japanese~font "`Hiragino_Maru_Gothic^F" が利用されることになる。 ~text描画が生じたときは、 ~Japanese仮名は均衡幅に~spaceが~~空けられ, ~Latin~textは~italic化されることになる。 ~fallback~serif~fontにより描画される~textは、 既定の描画~propを利用することになる。 ◎ If available, a Japanese font "Hiragino Maru Gothic" will be used. When text rendering occurs, Japanese kana will be proportionally spaced and Latin text will be italicized. Text rendered with the fallback serif font will use default rendering properties.
下の例の中の随意~合字は、 ~download可能な~font用に限り可能化されるが,[ ~class `special^css の `span^e ]内では不能化される: ◎ In the example below, discretionary ligatures are enabled only for a downloadable font but are disabled within spans of class "special":
@font-face { font-family: main; src: url(fonts/ffmeta.woff) format(woff); font-variant: discretionary-ligatures; } body { font-family: main, Helvetica; } span.special { font-variant-ligatures: no-discretionary-ligatures; }
随意~合字を可能化するために, `font-feature-settings$p を利用して規則を追加したとする: ◎ Suppose one adds a rule using font-feature-settings to enable discretionary ligatures:
body { font-family: main, Helvetica; } span { font-feature-settings: "dlig"; } span.special { font-variant-ligatures: no-discretionary-ligatures; }
この事例では、 随意~合字は,[ ~class `special^css の `span^e ]内で`描画される^emことになる。 何故なら、 これらの `span^e には[ `font-feature-settings$p, `font-variant-ligatures$p ]両~propが適用されるので。 `font-variant-ligatures$p の設定 `no-discretionary-ligatures^v は, ~OpenType `dlig^tag 特能を実質的に不能化するが、 `font-feature-settings$p は その後に解決されるので, 値 `dlig^v が随意~合字を可能化し直すことになる。 ◎ In this case, discretionary ligatures will be rendered within spans of class "special". This is because both the font-feature-settings and font-variant-ligatures properties apply to these spans. Although the no-discretionary-ligatures setting of font-variant-ligatures effectively disables the OpenType "dlig" feature, because the font-feature-settings is resolved after that, the "dlig" value reenables discretionary ligatures.
8. ~font異体~prop
注記: この節にて利用される技術は、 “~font異体( `font variations^en )” と総称される。 そのような技術を~supportする個々の~fontは、 “可変~font( `variable font^en )” と呼ばれる。 ◎ Note: The technology in use in this section is named "font variations." An instance of one such font as a "variable font."
8.1. 外見的~sizingを制御する: `font-optical-sizing^p ~prop
◎名 `font-optical-sizing@p ◎値 `auto$v1 | `none$v1 ◎初 `auto^v ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終異なる~sizeで描画された~textは、 視覚的な表現を少し違えることで,~typographic的に便益が得られることが多い。 例えば,~sizeが小さな~textは、 読み易くなるよう,描線は太く~serifも大きくされることが多い。 対して,より大きい~textは、 より優美で描線の太さの対比が~~強い造形にされることが多い。 ◎ Typographically, text rendered at different sizes often benefits from slightly different visual representations. For example, to aid reading at small text sizes, strokes are often thicker with larger serifs. Larger text often has a more delicate figure with more contrast between thicker and thinner strokes.
- `auto@v1
- ~UAは、 ~font-sizeと~screenの画素~密度に基づいて,~glyphが成す形状を改変してもヨイ。 ~font異体を利用している[ ~OpenType/~TrueType ]~font用には、 これは `opsz^tag ~font異体を利用して行われることが多い。 ◎ The user agent may modify the shape of glyphs based on the font-size and the pixel density of the screen. For OpenType and TrueType fonts using font variations, this is often done by using the "opsz" font variation.
- `none@v1
- ~UAは、 ~glyphの形状を外見的~sizeに応じて改変しないモノトスル。 ◎ The user agent must not modify the shape of glyphs for optical size.
`opsz^tag 軸~用に異体~値を選定するときには、 `font-size$p も考慮するモノトスル — また、 他の~~設定を考慮してもヨイ。 ◎ font-size must be considered when selecting a variation value for the "opsz" axis, but other signals may also be considered.
注記: ~UAには、 `opsz^tag 軸~用の値として, `font-size$p の`使用~値$に近いものを給することが期待される。 しかしながら,~UAは、 他の要因も考慮したいと望むであろう —[ ~screenの画素~密度 / 閲覧者の目からの~textの立体角 【すなわち,当の~textを成す文字の実際の~sizeは、(視野角を参照rする) `px^u 単位でいくつになるか】 ]などの。 しかしながら,~UAがこの値を選定するときは、[ これらの他の副次的な要因は無視rして, `font-size^p のみ利用する ]ことが最善な仕方であろうことが, `試験により示されている@~CSSissue/807#issue-195683688$。 ◎ Note: User agents are expected to supply a value for the "opsz" axis which is close to the used value for font-size. However, user agents might wish to consider other factors such as pixel density of the screen, or the solid angle the text subtends in the viewer’s retina. Experiments have shown, however, that disregarding these other ancillary factors and using only font-size might be the best way for a user agent to select this value.
[ 画素~密度/~textの視覚的な~size ]は、 `font-optical-sizing$p 用に選ばれる異体~値に波及し得る。 [ 画素~密度/~textの視覚的な~size ]が利用者-操作oや~style変更に呼応して変化したときは、 ~UAは — その変化が~layoutを呼ぶものでない限り — この異体~値~用に新たな値を選んではナラナイ。 ~UAは、 どの変化が~layoutを呼ぶものになるか決定してもかまわない。 ◎ Pixel density as well as visual size of the text may influence the variation value chosen for font-optical-sizing. When either pixel density or visual size of the text changes in response to a user operation or style change, user agents must not choose a new value for this variation value unless the change is layout-causing. User agents are free to determine which changes are layout-causing.
注記: 利用者-操作oのうち,~textを~flowし直さないものは (例: `pinch-zoom^en 【 “つまんで拡大する” 】)、 ~layoutを呼ぶものでないと見なせる。 しかしながら,~textを~flowし直すものは (例:~accessibilityの目的で,~text~sizeを増やす)、 ~layoutを呼ぶものと見なせる。 同様に, `transform$p ~propは、 ~layoutを呼ぶものでないと見なせる — それによる変形は、 一般に~textを~flowし直さないので。 各~UAは、 各~操作oについて,~layoutを変化させるのか否か裁定してもかまわない。 ◎ Note: Some user operations, such as pinch-zoom, can be considered not-layout-causing if they do not cause text to reflow. However, other user operations, such as increasing text size for accessibility purposes, can be considered layout-causing because they cause text to reflow. Similarly, the transform property can be considered not-layout-causing because transforms generally do not cause text to reflow. Each user-agent is free to decide whether or not each operation is layout-changing or not.
~UAは、 ~fontにより直に遂行されていない外見的~sizingを合成しないモノトスル。 ◎ User agents must not synthesize optical sizing when it is not performed by the font directly.
~UAは、 `opsz^tag 軸~用の値として,[ ~text描画に利用されている~fontが~supportしないもの ]は選定しないモノトスル。 これは、 選ばれた値を~fontが~supportする範囲に切詰めることで成遂げれる。 ◎ User agents must not select a value for the "opsz" axis which is not supported by the font used for rendering the text. This can be accomplished by clamping a chosen value to the range supported by the font.
`font-optical-sizing$p は `font-size-adjust$p と相互作用する。 ~UAは、 前者による外見的~sizingを適用するときに, 後者により調整された~font~size用に適切な外見的~sizing値【上述した異体~値など】を適用するモノトスル — それは、 上述した制約の~subjectになる。 ◎ font-optical-sizing interacts with font-size-adjust. When applying optical sizing, User agents must apply an optical sizing value appropriate for the adjusted font size, subject to the above restrictions.
8.2. 低~levelな~font異体~設定群の制御: `font-variation-settings^p ~prop
◎名 `font-variation-settings@p ◎値 `normal$v1 | [ `opentype-tag$t `number$t ]# ◎初 `normal^v ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 ~keyword `normal^v / ~list — ~listを成す各~itemは[ 文字列, 実数 ]が成す~pair ◎ the keyword normal or a list, each item a string paired with a number ◎順 文法に従う ◎ア (注釈文を見よ) ◎表終この~propは、[ ~OpenType/~TrueType ]~font異体についての低~levelな制御を供する。 [ 広く利用されていないが,特定0の利用事例には必要になる~font異体 ]への~accessを供する仕方として意図されている。 ◎ This property provides low-level control over OpenType or TrueType font variations. It is intended as a way of providing access to font variations that are not widely used but are needed for a particular use case.
作者は、 下の表tに挙げる異体~軸に対しては, `font-variation-settings$p を利用して設定する`べきでない^em。 代わりに,[ その置換を成す より高~levelな~prop ]を利用されたし — 何故なら: ◎ Authors should not use font-variation-settings to set any of the variation axes in the table below. Instead, please use the higher-level replacement properties, because:
- より高~levelな~propは、 個別に~cascadeする。 `font-variation-settings$p に~list全体を設定することなく, 一つだけを設定できる。 ◎ The higher-level properties cascade individually. You can set one without setting the whole font-variation-settings list
- より高~levelな~propには、[ 当の~font異体を~supportしない~font ]用に合成され得るものもある。 ◎ Some higher-level properties can be synthesized for fonts that do not support the font variation.
この列に挙げる異体~軸を設定したいと求める場合、 | `font-variation-settings$p に`代えて^em,この列に挙げるものを利用すること。 | 注記 |
---|---|---|
~weight( `wght^tag ) | `font-weight$p | `font-weight$p ~propは、 `wght^tag 軸が在るならば,それを設定することになる。 |
字幅( `wdth^tag ) | `font-width$p | `font-width$p ~propは、 `wdth^tag 軸が在るならば,それを設定することになる。 |
傾き( `slnt^tag )/~italic( `ital^tag ) | `font-style$p | `font-style$p ~propは、 その値に依存して[ `slnt^tag, `ital^tag ]いずれかの軸を設定することになる。 |
外見的~size( `opsz^tag ) | `font-optical-sizing$p | `font-optical-sizing$p ~propは、 `opsz^tag 軸が在るならば,それを設定することになる。 |
~font異体~設定群の利用は、 ~fallback~fontが利用されることになる所では,~font選定には影響しない — そこでは、 同じ異体~軸~用に利用される~font~propが,~font選定に効果を及ぼすことになる。 ◎ The use of font variation settings does not affect font selection where a fallback font is to be used, where using font properties for the same axis would have an effect on font selection.
作者は、 一般に,アリなときは~font異体に関係する他の~prop( `font-optical-sizing$p など)を利用して、 特別な事例 — [ たまにしか利用されない,特定0の~font異体 ]に~accessする仕方が,他にない事例 — に限り,この~propを利用するベキである。 ◎ When possible, authors should generally use the other properties related to font variations (such as font-optical-sizing), and only use this property for special cases where its use is the only way of accessing a particular infrequently used font variation.
例えば、
`font-variation-settings$p: `"wght" 700^v
【!d】
よりも,
`font-weight$p: `700^v
を利用する方が選好される。
◎
For example, it is preferable to use font-weight: 700 rather than font-variation-settings: "wght" 700.
- `normal@v1
- この値は、 この~propに因り,~glyphの[ 形状 / 照合 / 位置決め ]は変化しないことを意味する。 ◎ A value of normal means that no change in glyph shape, matching, or positioning occurs due to this property.
- `opentype-tag$t `number$t
- [ ~OpenType/~TrueType ]異体~軸の[ 名前, 値 ]を順に与える。 ◎ The <opentype-tag> is a case-sensitive OpenType or TrueType variation axis name.\
-
軸~名は: ◎ ↓
- 文字大小は区別される。 ◎ ↑
- [ ~OpenType/~TrueType ]仕様に指定されるように, 4 個の~ASCII文字からなる。 [ 4 文字でない / 符号位置~範囲 { `0020^U 〜 `007E^U } 【! U+20–7E】 に入らない文字を包含している ]場合、 無効になる。 ◎ As specified in the OpenType / TrueType specifications, axis names contain four ASCII characters.\ Axis name strings longer or shorter than four characters, or containing characters outside the U+20–7E codepoint range are invalid.\
- ~font内に定義された軸~tagに限り合致する必要があるので, 明示的に登録された[ ~OpenType/~TrueType ]異体~軸に制限されない。 ~custom軸~名を定義している~fontは、 ~OpenType仕様に定義される`命名~規則@~OTSPEC/fvar.htm$に従うベキである。 ◎ Axis names need only match an axis tag defined in the font, so they are not limited to explicitly registered OpenType / TrueType variation axes.\ Fonts defining custom axis names should follow the name rules defined in the OpenType specification.
-
軸~値は: ◎ ↓
- 所与の軸~名を~fontが~supportしない場合、 無視され,その効果は無い。 ~UAは、 これらの軸~tagに基づいて,~fallbackの挙動を合成しようと試みないモノトスル。 その場合でも、 同じ `font-variation-settings$p 宣言の中の他の軸~値は, 無視されない。 ◎ If a given axis is not supported by a font, its value setting is ignored and therefore has no effect; a user agent must not attempt to synthesize fallback behavior based on these axis tags. Other axis values within the same CSS font-variation-settings statement are not ignored.
- ~fontが~supportする定義済みな範囲に入らない場合、 その範囲に入る最も近い軸~値に切詰められる。 ◎ If a variation axis is supported by a font but its set value is greater or less than the predefined font range, it will be clamped to the closest value supported by the font.
- 小数や負な値も許容される。 ◎ Values are allowed to be fractional or negative.
注記: 傾いた書体を得するときには、 `font-style$p ~propを利用する方が選好される。 `font-variation-settings$p を介して `slnt^tag 軸を直に利用する場合、 ~CSSとは逆に,正な角度が反時計回りに傾くよう定義されていることに注意。 ◎ Note: it is preferable to obtain slanted faces by using the font-style property. However, if using the slnt axis directly, via font-variation-settings, remember that it is defined with a positive angle meaning a counter-clockwise slant, the opposite direction to CSS.
同じ軸~名が複数回~出現した場合、 その軸~用には,最後の出現に伴われた値のみが利用される(他は~~無視される)。 この~~縮約化は、 この~propの`算出d値$に~accessすれば,観測-可能になる。 ◎ If the same axis name appears more than once, the value associated with the last appearance supersedes any previous value for that axis. This deduplication is observable by accessing the computed value of this property.
算出d値は、 軸~名たちを — 重複が無くされ,`符号単位$の昇順で~sortされた上で — 包含する。 ◎ The computed value contains the de-duplicated axis names, sorted in ascending order by code unit.
異体~軸は,特定的には[ ~OpenType/~TrueType ]異体~用に定義されているが、 将来には,~font異体を~supportする他の現代の~font形式も追加されるかもしれない。 他の~font形式~用に定義される異体は、 登録-済みな異体~軸の~patternに,アリな限り従うよう試みるベキである。 ◎ Although specifically defined for OpenType / TrueType variations, variation axes for other modern font formats that support font variations might be added in the future. Where possible, variations defined for other font formats should attempt to follow the pattern of registered variation axes.
`font-variation-settings^p の~animate法は、 次の仕組みを利用してアリになる: 2 つの `font-feature-settings$p 宣言どうしは、[ 互いの値に出現する軸~名たちが成す集合が 【! ~prop → 軸~名】 — それらの順序, 出現する回数を問わず — 合致する ]ならば,~animateできる — その場合、 各 軸~名ごとに,対応する軸~値の間で~animationが生じる (軸~名が重複する場合、 上述したとおり最後のものだけ利用する)。 他の場合、 ~animationはアリでない — この状況では、 `the "from" values of the animation are swapped to the "to" values at an unspecified time during the animation^en 【`離散的$と同じ意味に思われるが、何か違いがあるのか(例えば `unspecified time^en ),はっきりしない。】 ◎ Animating font-variation-settings is possible using the following mechanism. Two declarations of font-feature-settings can be animated between if they are "like". "Like" declarations are ones where the same set of properties appear (in any order). Because successive duplicate properties are applied instead of prior duplicate properties, two declarations can be "like" even if they have differing number of properties. If two declarations are "like" then animation occurs pairwise between corresponding values in the declarations. Otherwise, animation is not possible. In this situation, the "from" values of the animation are swapped to the "to" values at an unspecified time during the animation.
9. 色~fontの~support
色~font( `color font^en )†は、 ~glyphが成す辺を述べる輪郭のみならず ~glyphの内側に色が在ることも, ~font~fileに許容する。 ◎ Color fonts allow for font files to describe, not just the contours describing the edges of glyphs, but also the colors present inside the glyphs.
【† “色を~supportする~font” — “`colored^en (有色)” とは少し意味合いが異なるようだ。 】
絵文字などの一部の利用-用には、 当の~font内に固定的な色を与えるのは適切になる。 他のもの用には、 利用される色を~stylesheetから制御する必要がある。 ◎ For some uses, such as emoji, having the colors fixed in the font is appropriate. For others, there is a need to control the colors used from a stylesheet.
~CSSは、 これを行う 2 つの仕方を供する。 `font-palette$p ~propは、[ ~font内に包含される いくつか異なる~paletteのうち 1 つを選定する ]ことを許容する。 `font-palette-values$at 規則は、 ~paletteの中の 1 個~以上の色を上書きしたり, まったく異なる~paletteすら作成できるようにする。 ◎ CSS provides two ways to do this. The font-palette property allows selecting one of several different palettes contained in the font. The @font-palette-values rule allows overriding one or more colors from within a palette or even the creation of an entirely different palette.
9.1. 色~font~paletteの制御-法: `font-palette^p ~prop
多くの色~font~file形式では、 ~glyphの中の色の~parameter化が許容されている。 これらの~font内では、 各~glyphの幾何を述べるときに,各~色は~indexで参照される。 これらの~indexは、 ~font内に在る検索~tableを利用して,現在~作動中な~paletteの中で解決される。 しかしながら、 多くの~fontは,複数の~paletteを包含する — それぞれが、 快適な視覚-結果を供するために,[ ~font~designerにより選ばれた補色たちが成す集合 ]を包含しているような。 ◎ Many color font file formats allow colors within glyphs to be parameterized. In these fonts, colors are referenced by index when describing the geometry of each glyph. These indices are resolved within a current active palette using a lookup table present inside the font. However, many fonts contain multiple palettes, each containing a set of complementary colors chosen by the font designer to provide pleasing visual results.
加えて,一部の色~font~file形式は、 定例の有色でない~glyph外形線も,有色~versionとともに供する。 ◎ In addition, some color font file formats provide a regular, uncolored glyph outline as well as the colored versions.
◎名 `font-palette@p ◎値 `normal$v1 | `light$v1 | `dark$v1 | `palette-identifier$t | `palette-mix()$t ◎初 `normal^v ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された[ ~keyword/識別子/ `palette-mix()$t 関数 ]。 `palette-mix()$t は、 結果の~paletteが単独の[ ~keyword/識別子 ]と等価になる場合は,それに単純~化するモノトスル。 ◎ specified keyword, identifier or <palette-mix()> function. <palette-mix> must be simplified to a single keyword or identifier if resulting palette is equivalent. ◎順 文法に従う ◎ア 算出d値の型による ◎表終`palette-mix@f 関数の構文は: ◎ With the palette-mix() function defined as follows:
`palette-mix()$t = palette-mix(`color-interpolation-method$t , [ `font-palette$tp【![normal | light | dark | `palette-identifier$t | `palette-mix()$t ]】 && `percentage [0,100]$t? ]#{2})
- `normal@v1
- `color-scheme$p ~propが `normal^v 以外の値に設定されていた場合、 ~UAは,[ 明な/暗な ]~paletteたち — 値に応じて適切な方のそれら — のうち最初のものを選定するベキである。 他の場合、 ~UAは,当の色~fontを[ 既定の~palette/既定の~glyph色~付け ]で表示する。 ◎ If the color-scheme property is set to a value other than normal', user-agents should select the first light or dark palette as appropriate. Otherwise, user-agents display the color font with the default palette or default glyph colorisation.
- ~UAは、 色~font形式が前景~色の利用を要求する所では, `color$p ~propの`算出d値$を考慮に入れるベキである。 ◎ User-agents should take the computed value of the color property into consideration when a color font format requires use of the foreground color
- `COLR$tag `OPENTYPE$r ~tableにおいては、 色~index 0xFFFF は, `color$p ~propに則って描画されるべきである。 ◎ In the COLR [OPENTYPE] table, color index 0xFFFF should be rendered according the color property.
- [ `COLR$tag / `CPAL^tag ] `OPENTYPE$r ~font用には、 `normal$v1 は,通例的に[ 当の~font内の~index 0 の~paletteで~fontを描画する ]ことを意味する。 ◎ For COLR/CPAL [OPENTYPE] fonts, font-palette: normal usually means rendering the font with the palette in the font at index 0.
- `light@v1
- 一部の色~font形式は、[ ある種の~paletteは、 背景が明な(白に近い)ときに適用-可能である ]と~~定める~metadataを含む。 この~keywordは、[ そのような~paletteのうち,当の~font~file内で最初に可用なもの ]を~UAに利用させる。 [ 当の~font~file形式が この~metadataを織り込まない / 当の~font内に そのような~paletteは無い ]場合、 この値は `normal$v1 として挙動する。 ◎ Some color font formats include metadata marking certain palettes as applicable on a light (close to white) background. This keyword causes the user-agent to use the first available palette in the font file marked this way. If the font file format does not account for this metadata, or no palette in the font is marked this way, this value behaves as normal.
- `dark@v1
- “背景が明な(白に近い)” に代えて “背景が暗な(黒に近い)” とすることを除き, `light$v1 の記述と同じ。 ◎ Some color font formats include metadata marking certain palettes as applicable on a dark (close to black) background. This keyword causes the user-agent to use the first available palette in the font file marked this way. If the font file format does not account for this metadata, or no palette in the font is marked this way, this value behaves as normal.
- `palette-identifier@t
- この値は、 利用する~CSS定義な~paletteを識別する。 作者は、 `font-palette-values$at 規則を利用して~paletteを定義できる。 適用-可能な `font-palette-values^at 規則は無い場合、 この値は `normal$v1 として挙動する。 ◎ This value identifies an CSS-defined palette to use. Users can define a palette by using the @font-palette-values rule. If no applicable @font-palette-values rule is present, this value behaves as normal.
- `palette-identifier$t は、 `dashed-ident$t として構文解析される。 ◎ <palette-identifier> is parsed as a <dashed-ident>.
- 【 値として何を与えるかが述べられていないが、 おそらく, `font-palette-values^at に与えた名前を指定する。 】
- 注記: そのような~CSS定義な~paletteには、 ~font内の既存の~paletteへの参照, または そのような~paletteの改変であるか,まったく新たな~paletteがあり得る ◎ Note: Such a CSS-defined palette may be a reference to an existing palette already present in the font, be a modification of an existing palette already present in the font, or be an entirely new palette.
- `palette-mix()$t
- この値は、 2 個の[ 次に挙げるいずれかにより識別される~palette値 ]を補間して得られる~paletteを定義する ⇒# `palette-identifier$t, ~palette~keyword `normal$v1, `light$v1, `dark$v1 / 別の `palette-mix()$t 値 ◎ This value defines a position in the interpolation between two palette values, identified by <palette-identifier>, by the palette keywords normal, light, dark, or by another <palette-mix()> value.
- 当の~fontを成す~glyphたちは、[ 引数として指定された[ 1 個目の~palette, 2 個目の~palette ]の同じ~indexにある色どうしを【 `percentage^t 引数に基づいて】補間する ]ことにより作成された~paletteで描画するモノトスル — 必要なら `palette-mix()$t 関数を再帰的に解決した上で。 ◎ The glyphs of the font must be rendered with a palette that is created by interpolating for each palette color index between the matching color indices of the first and second palette specified as arguments, recursively resolving <palette-mix()> functions if needed.
- 各~palette色どうしの補間は `color-mix$f 関数の規則に従う。 ◎ For each palette color, the interpolation follows the rules of the <color-mix()> function.
- 百分率は、 `CSS-COLOR-5$r `§ 百分率の正規化@~CSSCOLOR5#color-mix-percent-norm$ に則って正規化される。 ◎ Percentages are normalized according to CSS Color 5 § 3.1 Percentage Normalization.
注記: [ `light^v, `dark^v ]という名前は、 色~palette内の色ではなく, 色~paletteが利用-可能になる`背景^emを述べる。 ◎ Note: The names light and dark describe the background the color palette is usable on, not the colors in the color palette themselves.
暗な~mode下にあるときは、 それ用の~paletteを利用する。 ◎ When dark mode is in effect, use a dark mode palette
@media (prefers-color-scheme: dark) { .banner {font-palette: dark; } }
2 つの~palette間で~animateする例: ◎ Animate between palettes.
@font-palette-values --pink { font-family: Nabla; base-palette: 1; } @font-palette-values --yellow { font-family: Nabla; base-palette: 7; } @keyframes animate-palette { from { font-palette: --yellow; } to { font-palette: --pink; } } p { font-family: Nabla; animation: animate-palette 1.4s infinite alternate linear; }
例と絵図をもっと追加する。 ◎ Add more examples and pictures.
9.2. 利用者~定義な~font色~palette: `font-palette-values^at 規則
`font-palette-values@at 規則は、 色~paletteを定義した上で,その色~paletteを特定の~fontに結付ける。 ~web作者は、色~fontに利用する `color$t を — ~font~file内に予め存在する~paletteに制限されることなく — 任意に選定できるようになる。 ◎ The @font-palette-values rule defines a color palette and associates that color palette with a specific font. This allows a web author to select arbitrary <color>s to use inside a color font rather than being limited to the preexisting palettes inside font files.
注記: ~OpenType `CPAL^tag ~tableは, ~sRGB色に制約される一方で、 `font-palette-values$at 内の `color$t は,どの~CSS色も許容する。 現時点では,一部の実装は、 ~sRGBに制約される~APIを利用するので, 指定された色は~sRGBへ対応付けられ得る。 これは一時的な制限になるものと期待される。 作者は、 この~sRGBへの対応付けに依拠するベキでない。 ◎ Note: The OpenType CPAL table is restricted to sRGB colors. The <color>s in @font-palette-values allow any CSS color. Some implementations currently use APIs which are restricted to sRGB and may therefore map the specified colors to sRGB. This is expected to be a temporary limitation. Authors should not rely on this mapping to sRGB.
加えて、 この規則で特定の~fontに結付けることは,次を許容する ⇒ 同じ要素~内に複数の~font【のうちどれか】が利用されるときに (すなわち、~font~fallback用に), ある~paletteの名前を異なる~fontに 異なるように【元の~paletteと?】適用できるようにして、 類似な色を複数の~fontに渡って利用する。 ◎ In addition, this rule’s association with a specific font allows a name of a palette to apply differently to different fonts, which allows similar colors to be used across multiple fonts when multiple fonts are used in an element (i.e. for font fallback).
注記: ~web作者は、 単独の~font用に複数の~paletteを作成して,自身の~web内容~用に複数の~themeを作成するよう望むこともあれば、 複数の~fontに合致する~paletteを作成して,異なる[ ~fontたちが成す~collection ]に渡って一貫した~designを達成するよう望むこともあろう。 ◎ Note: A web author might wish to create multiple palettes for a single font in order to create multiple themes for their web content. A web author might also wish to create matching palettes for multiple fonts to achieve a consistent design across a collection of different fonts.
`font-palette-values$at 規則は、 ある~fontに利用される色たちが成す~paletteを表現する。 ~paletteは、 順序付けられた色たちが成す~collectionであり, ~web作者に次を許容する ⇒# ~fontの中の既存の~paletteを参照する / 作者~定義な色で拡充された~paletteを作成する / 作者~定義な色で~font内のある~paletteの色を上書きする ◎ A @font-palette-values rule represents a palette of colors used in a font. A palette consists of an ordered collection of colors. Using the @font-palette-values allows a web author to reference a palette existing within a font as well as creating a palette populated with author-defined colors. In addition, it allows overriding a set of colors from a palette in the font with colors described by the web author.
~paletteは、 常に`完全^emになる — すなわち、 欠落~色を伴う~paletteを記述することはアリでない。 欠落~色が生じる場合、 それは,[ `base-palette$d 記述子により識別される~fontの中の~palette ]から採られる。 ◎ A palette is always complete, meaning that it is impossible to describe a palette which has missing colors. If colors would be missing, they are taken from the palette within the font identified by the base-palette descriptor.
`font-palette-values$at 内の記述子の値の中においては、 各種`~math関数$( `calc$f など), `var$f, `env$f も妥当である。 それらは、 および相対~単位も, `根~要素$の文脈の中で評価される。 ◎ Math functions, such as calc(), and also var(), and env(), are valid within descriptor values in a @font-palette-values rule. They are evaluated within the context of the root element. Relative units are also evaluated within the context of the root element.
`font-palette-values$at 規則は、 `font-palette-values^at ~keyword, それに後続する[ 記述子~宣言たちが成す~block ]からなる。 その構文は: ◎ The @font-palette-values rule consists of the @font-palette-values at-keyword followed by a block of descriptor declarations. It has the following syntax:
@font-palette-values `dashed-ident$t { `declaration-list$t }
`font-palette-values$at 規則は、 この仕様に定義される各種~記述子を受容する。 ◎ The @font-palette-values rule accepts the descriptors defined in this specification.
`Bixa Color^F の色~paletteを改変する: ◎ Modify Bixa Color’s color palette.
@font-palette-values --Cooler { font-family: Bixa; base-palette: 1; override-colors: 1 #7EB7E4; }
`Handover Sans^F の色~paletteを改変する例: ◎ Modify Handover Sans’s color palette
@font-palette-values --Augusta { font-family: Handover Sans; base-palette: 3; override-colors: 1 rgb(43, 12, 9), 3 var(--highlight); }
これらの記述子は、 もっぱら,それらを定義した `font-palette-values^at 規則を成す文脈の中で適用され, 文書~言語の要素には適用されない。 同じ名前の記述子が同じ `font-palette-values^at 規則~内に複数個 在る場合、 最後に宣言された記述子のみが利用され,他は無視される。 ◎ These descriptors apply solely within the context of the @font-palette-values rule in which they are defined, and do not apply to document language elements. When a given descriptor occurs multiple times in a given @font-palette-values rule, only the last descriptor declaration is used and all prior declarations for that descriptor are ignored.
これらの各~paletteは、 ある族~名を共有する各 `font-face^at に適用される。 ◎ Each of these palettes are applied to each @font-face that share a family name.
2 つの色~font `Bixxxa^F, `Bungeehee^F を,緑系~paletteにて利用したい — 前者には,利用できる~paletteはすでにあるが、 後者は,緑系~paletteを得るために 1 色だけ上書する必要がある: ◎ I want to use two color fonts in a greenish palette. The first font, Bixxxa, already has palette that I can use, but for Bungeehee I need to overwrite one color to get my green palette.
@font-face { font-family: Bixxxa; src: url('./bixxxa.woff') format(woff); } @font-face { font-family: Bungeehee; src: url('./bungeehee.woff') format(woff); } @font-palette-values --ToxicGreen { font-family: Bixxxa; base-palette: 3; /* これは `Bixxxa^F の緑系~palette ◎ This is Bixxxa’s green palette */ } @font-palette-values --ToxicGreen { font-family: Bungeehee; base-palette: 7; /* これは `Bungeehee^F の緑系~palette… ◎ This is Bungeehee’s green palette... */ override-colors: 2 lime; /* … これが `pink^v であることを除いて — それを `lime^v に上書する ◎ ...except this is pink, which I overwrite to lime */ } h1 { font-family: Bixxxa; font-palette: --ToxicGreen; } h2 { font-family: Bungeehee; font-palette: --ToxicGreen; }
`Roel Nieskens^en 氏による例 ◎ Example by Roel Nieskens
注記: ある族~名が複数の物理的~fontから共有されていて (複合的な~fontが `unicode-range$d を利用して作成されたときなど), それらの~fontが異なる~paletteを有する事例では、 `font-palette-values$at を利用して部分的な~paletteを指定した結果は, 作者が意図するものにならない見込みが高い。 この事例では、 完全な~palette定義を給する方が良い。 ◎ Note: In the case where a family name is shared between multiple physical fonts, (such as when a compound font is created, using unicode-range), and if those fonts have different palettes, the result of specifying a partial palette using @font-palette-values is unlikely to be what the author intended. In this case, it is better to supply a complete palette definition.
上の例では、 異なる 2 つの~font族に対し,互換な有名~paletteを備えるよう設定しておかれたので、 引き続き,次のように書くこともできる: ◎ In the above example, since two different font families have been set up to have compatible named palettes, one could go on to write
h3 { font-family: Bixxxa, Bungeehee; font-palette: --ToxicGreen; }
これは、 各~fontにて,欲される~paletteを — 互いの~palette番号が異なっていても — 正しく適用することになる。 ◎ Which would correctly apply the desired palette in each font even though they have different palette numbers.
所与の `font-palette-values$at 規則たちは、 それらを包含する【参照する】文書の中で可用になる作者~定義な~paletteを定義する。 ◎ A given set of @font-palette-values rules define which author-defined palettes are available for use within the documents that contain these rules.
作者~定義な~font色~paletteが可用になるのは、 それを参照する文書に限るモノトスル。 他所で利用した場合,ある~pageの内容が他の~pageに影響-可能になり、 攻撃者は,~security漏洩を成す何かになる攻撃~行路としても利用できるので。 ◎ An author-defined font color palette must only be available to the documents that reference it. Using an author-defined color palette outside of the documents that reference it would constitute a security leak since the contents of one page would be able to affect other pages, something an attacker could use as an attack vector.
`font-palette-values$at 規則は: ◎ This at-rule\
- ~CSSの前方-互換な構文解析~規則に従う。 宣言~block内の~propと同様に、 ~UAは,自身が~supportしない どの記述子に対しても,その宣言を無視するモノトスル。 ◎ follows the forward-compatible parsing rules of CSS. Like properties in a declaration block, declarations of any descriptors that are not supported by the user agent must be ignored.\
- `~font-familyPV$d 記述子を要求する — 欠落なものは、 無効になり,まるごと無視するモノトスル。 ◎ @font-palette-values rules require a font-family descriptor; if it is missing, the @font-palette-values rule is invalid and must be ignored entirely.
- ~UAが[ ~platform資源が制限されている/ 色~font用の~supportを実装していない / 色~fontを不能化する能を実装している ]事例では、 単純に無視するモノトスル — この仕様に定義される個々の記述子の挙動は、 改められるベキでない。 ◎ In cases where user agents have limited platform resources, do not implement support for color fonts, or implement the ability to disable color fonts, @font-palette-values rules must simply be ignored; the behavior of individual descriptors as defined in this specification should not be altered.
9.2.1. ~font族: `font-family^d 記述子
◎述 `~font-familyPV@d ◎用 `font-palette-values$at ◎値 `family-name$t# ◎初 可用でない ◎表終この記述子は、 `§ ~font照合~algo$ と同じ[ ~font族たちが成す~list ]を利用して,[ 当の `font-palette-values^at 規則が表現する~palette ]を適用する一群の~font族を定義する。 この~paletteは、 値に挙げられた族~名を伴う~font以外には,適用されない。 この記述子の値には、 汎用~fontの名前【 `generic-family$t 】は許容されない — 在る場合、 構文~errorになる。 値に構文~errorがある場合、 この記述子は無視するモノトスル (それでも,~CSSOM内には在るが、 どの~font族にも合致しない)。 ◎ This descriptor defines the font families that this palette applies to, using the same list of font families as § 5 Font Matching Algorithm. This palette will only ever be applied to the fonts with these family names. The value of this descriptor means that only named font families are allowed and rules that include generic fonts in the list of font families are syntax errors. If syntax errors occur within the font family list, the descriptor must be ignored (will still be in the CSS OM, but will not match any font families).
9.2.2. 基底~paletteの指定-法: `base-palette^d 記述子
◎述 `base-palette@d ◎用 `font-palette-values$at ◎値 `light$v1 | `dark$v1 | `integer [0,∞]$t ◎初 可用でない ◎表終- `light@v1
- 一部の色~font形式は、[ ある種の~paletteは、 背景が明な(白に近い)ときに適用-可能である ]と~~定める~metadataを含む。 この~keywordは、[ そのような~paletteのうち, 当の~font~file内で最初に可用なもの ]を識別する。 [ 当の~font~file形式が この~metadataを織り込まない / 当の~font内に そのような~paletteは無い ]場合、 この値は `0^v として挙動する。 ◎ Some color font formats include metadata marking certain palettes as applicable on a light (close to white) background. This keyword identifies the first available palette in the font file marked this way. If the font file format does not account for this metadata, or no palette in the font is marked this way, this value behaves as 0.
- `dark@v1
- “背景が明な(白に近い)” に代えて “背景が暗な(黒に近い)” とすることを除き, `light$v1 の記述と同じ。 ◎ Some color font formats include metadata marking certain palettes as applicable on a dark (close to black) background. This keyword identifies the first available palette in the font file marked this way. If the font file format does not account for this metadata, or no palette in the font is marked this way, this value behaves as 0.
- `integer$t
- 当の~fontの中の ある~paletteを数量-~index( 0 から数える)で識別する。 ◎ Identifies a (zero-based) numerical palette index within the font.
`Banner Flag^F の色~paletteを改変する例: ◎ Modify Banner Flag’s color palette
@font-palette-values --Festival { font-family: Banner Flag; base-palette: 1; override-colors: 0 rgb(123, 64, 27), 1 darkblue, 2 var(--highlight); }
この記述子は、 それを包含している `font-palette-values$at 規則の初期~色~paletteとして, 対象の~font内の[ この記述子の値と同じ~indexを伴う~palette ]を指定する。 当の規則~内の `override-colors$d 記述子の値を成す各~itemは、 初期~色~palette内の 1 個の色を上書きする。 `override-colors^d が無ければ、 当の規則は,初期~色~paletteをそのまま表現することになる。 【! override-colors^t】 ◎ This descriptor specifies a palette in the font which the containing @font-palette-values rule uses as an initial value. If no <override-colors> key is present in the @font-palette-values rule, then the @font-palette-values rule represents the palette in the font with the same index as the value of this descriptor. If a <override-colors> key is present in the @font-palette-values rule, each item in the value of that descriptor overrides a single color in the color palette represented by this @font-palette-values block.
`Handover Sans^F の 3 個目の色~paletteを名付ける: ◎ Rename Handover Sans’s 3rd color palette
@font-palette-values --Augusta { font-family: Handover Sans; base-palette: 3; }
`base-palette$d 記述子が `font-palette-values$at 規則~内に無いか, または[ 在るが、 ~font内には,その値に与えた~indexに対応する~paletteは無い ]場合、 この記述子は `0^v が指定されていたかのように挙動する。 ~fontが色~paletteを 1 つも包含しない場合、 当の `font-palette-values^at 規則が表現する初期~色~paletteは, 0 個の色からなる。 `font-palette-values^at 規則~内で `override-colors$d 記述子を利用すれば、 色~palette内の色を上書きできる。 ◎ If this descriptor is not present in the @font-palette-values, or if the font does not contain a palette at the index of the value of base-palette, it behaves as if 0 were specified. If a font does not contain any color palettes, no colors are included in the initial color palette represented by this @font-palette-values rule. Colors in the palette can be overridden by using the override-color descriptor in the @font-palette-values rule.
9.2.3. ~paletteからの色の上書き法: `override-colors^d 記述子
◎述 `override-colors@d ◎用 `font-palette-values$at ◎値 [ `integer[0,∞]$t `color-base$t ]# ◎初 可用でない ◎表終この記述子は、 当の `font-palette-values$at 規則が表現する初期~色~palette %~palette (規則の `base-palette$d 記述子で指示される) の色を上書きする: ◎ This descriptor overrides colors to the initial color palette represented by this @font-palette-values rule.
- この記述子は、 ~commaで分離された~listを値にとる — ~listを成す各~itemは、[ %~palette 内の ある~entryに対応する~key, それを置換する色 ]が成す~tupleを表現する — 色として指定する値は、 `絶対的な色$でなければナラナイ。 ◎ The specified <color> must be an absolute color. ◎ The override-colors descriptor takes a comma-separated list of palette index entries and colors.\ Each item in the comma-separated list represents a tuple of an entry into the palette and a color to replace it with.
- ~listを成す各~itemに対し、 ~itemの~keyに対応する %~palette 内の~entryの色は, ~itemに指定された色で上書される。 ~keyが %~palette の~index範囲の外側にある場合、 当の~itemは無視される。 ◎ For each key/value pair in the value of this descriptor, the color with that key in the initial palette (i.e. by using the base-palette descriptor) is overwritten by the color specified in this descriptor’s value. A key that is outside the range of indices of the initial palette is ignored.
- ~keyは、 %~palette 内のある~entryの~indexとして与えられる — ~indexは 0 から数える。 ◎ Palette index entries in the override-colors descriptor are a (zero-based) palette index entry. ◎ Integer values are zero-indexed.
- 複数の~itemの~keyが %~palette 内の同じ~entryを識別する場合、 描画の目的においては,それらのうち最後の~itemが利用される。 しかしながら、 直列化の目的においては,それらの~itemすべてが在るものとされる。 ◎ If the keys of multiple distinct key/value pairs identify the same color index (either by name or by integer), the last key is used for the purposes of rendering. However, for serialization purposes, both key/value pairs are present.
注記: 複数の要素に対し `font-palette$p に同じ値( `palette-identifier$t )を指定した場合でも, 利用される~paletteは異なるかもしれない — `font-palette-values$at 規則~内の変数†が,どう適用されるかは、 各~要素の文脈ごとに異なるかもしれないので。 ◎ Note: This means that using font-palette with the same value on two different elements might result in different used palettes because the value of variables inside the @font-palette-values rule might apply differently in the context of those two elements.
【† 何が変数を成すのかは不明。 この段落が更新される前は、 ( `override-colors$d 記述子の値にて指定される色を与える) ~cascade変数( `var$f ) と記されていたが。 】
~CSSから(上書きまたは新たな~entryとして)供される色には、 ~supportされる,どの色空間を利用してもヨイ。 ◎ Colors provided from CSS (as overrides, or as new entries) may use any supported colorspace.
`Blaka Ink^F の色~paletteを改変する例: ◎ Modify Blaka Ink’s color palette
@font-palette-values --Festival { font-family: Blaka Ink; base-palette: 0; override-colors: 0 oklch(0.63 0.12 105.7), 1 color(display-p3 0.23 0.22 0.04), 2 color(prophoto-rgb 0.37 0.27 0.09); }
注記: ~version[ 0 / 1 ]の `CPAL^tag ~table内に指定された色は,~sRGBに属する。 ◎ Note: The colors specified in versions 0 and 1 of the CPAL table are in sRGB.
9.3. ~text呈示~styleの選定-法: `font-variant-emoji^p ~prop
◎名 `font-variant-emoji@p ◎値 `normal$v1 | `text$v1 | `emoji$v1 | `unicode$v1 ◎初 `normal$v1 ◎適 すべての要素/~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、[ ある種の絵文字~符号位置~用に[ 絵文字~呈示, ~text呈示 ]どちらを利用するか選定する ]ことを~web作者に許容する。 これらの呈示~styleは、 伝統的に,ある種の符号位置に異体~選択子[ `FE0E^U `VARIATION SELECTOR-15^cn / `FE0F^U `VARIATION SELECTOR-16^cn ]を付加することにより選定されていた。 この~propは、[ 異体~選択子の代わりになる既定の呈示~styleを設定する ]ことを~web作者に許容する。 ◎ This property allows web authors to select whether emoji presentation or text presentation is used for certain emoji code points. Traditionally, these presentation styles were selected by appending Variation Selector 15 (U+FE0E) or Variation Selector 16 (U+FE0F) to certain code points. However, font-variant-emoji allows web authors to set a default presentation style which can replace the variation selectors.
この~propが影響する符号位置は、~Unicodeにて[ `Unicode emoji Presentation Sequence^en 【“~Unicode絵文字~呈示~列”】 に寄与するものとして `挙げられたもの@https://www.unicode.org/emoji/charts/emoji-variants.html$ ]に限られる。 この仕様においては、これらの文字は `呈示に関与する絵文字~符号位置@ ( `Emoji Presentation Participating Code Points^en )と総称される†。 この~propには、他のどの文字に対しても効果は無い。 ◎ Only the code points listed by Unicode as contributing to a Unicode emoji presentation sequence are affected by this property. Within this CSS specification, these characters are referred to as Emoji Presentation Participating Code Points. This property has no effect on any other characters.
【† `呈示に関与する符号位置@ という似た用語も現れるが、 おそらく,この用語の`略称を意図している@~CSSissue/4166$ (更に広い分類とも受け取れそうだが)。 】
この~propは,~font~fallbackに影響するものと予期されるが、 ~font~fallbackと `font-variant-emoji$p との相互作用の正確な資質は, 明示的に未指定である。 しかしながら、 異体~選択子は — `§ ~clusterの照合-法$にて定義されるとおり — その前にある~cluster内に含めるモノトスル。 この挙動による自然な結果として、 異体~選択子は,その前にある文字と異なる~fontで描画してはナラナイことになる。 したがって,それは、 ~font~fallbackを[ 対応する異体~選択子が意図されていた ]かのように(各~値の記述どおりに)挙動させる。 ~font~fallback — ~cluster~fallback規則も含む — は、 それから遂行され,[ これらの “付加された” 異体~選択子による呈示~選好 ]を織り込むモノトスル。 ◎ This property is expected to affect font fallback; however, the exact nature of the interaction of font fallback with font-variant-emoji is explicitly unspecified. However, a variation selector must be included in a previous cluster as defined by the cluster matching section above. A natural result of this behavior is that a variation selector must not be rendered in a different font than the previous character. It thus causes font fallback to behave as if the respective variation selector was intended (as in the values description); then font fallback, including the cluster fallback rules, is performed, which must take the presentation preference of these "appended" variation selectors into account.
`font-variant-emoji$p が利用されたとしても、 要素の内容に異体~選択子[ `FE0E^U `VARIATION SELECTOR-15^cn / `FE0F^U `VARIATION SELECTOR-16^cn ]が在るならば, `font-variant-emoji^p 内に指定された描画を上書きする。 したがって, `font-variant-emoji^p は、 ~textが描画されるとき~opt-outできるような,既定の呈示を設定する。 ◎ Even when font-variant-emoji is used, the presence of Variation Selector 15 (U+FE0E) or Variation Selector 16 (U+FE0F) in the contents of an element override the rendering specified in font-variant-emoji. Therefore, font-variant-emoji sets a default presentation which the text being rendered can opt out of.
注記: 絵文字~呈示~連列をどう取扱うかは、 ~platformごとに異なる規約がある。 複数の~platformを~supportする~UAは、[ 個々の~platformごとに,その規約に従う ]よう望むこともあれば,[ どの~platformにも,同じ~approachを利用する ]よう望むこともあろう。 【! ~task = ask?】 ~UAは,絵文字~styleの描画を要請されたとき、[ 色~tableを含まない~fontは,無視rする ]よう望むこともあれば,[ どの~clusterにも,機械的に同じ~cluster~fallback~algoを利用する ]よう望むこともあろう。 ◎ Note: Different platforms have different conventions about how to handle emoji presentation sequences. A cross-platform UA might wish to follow the conventions of each individual platform, or it might wish to use the same approach on all platforms. When tasked with a request for an emoji style rendering, a UA might wish to disregard fonts which do not include color tables. A different UA might wish instead to use the same mechanical cluster fallback algorithm that it would use for any arbitrary cluster.
[ `FE0E^U `VARIATION SELECTOR-15^cn, `FE0F^U `VARIATION SELECTOR-16^cn ]以外の異体~選択子は、 ~font選定に影響しないモノトスル — 在ったとしても、 それまでに選定された~fontが それを~supportしないならば,無視される。 ◎ Variation selectors other than FE0E VARIATION SELECTOR-15 and U+FE0F VARIATION SELECTOR-16 must not have any effect on font selection. If one of these variation selectors is present, but unsupported by the font previously selected, the variation selector is ignored.
[ `lang^a / `xml:lang^a ]属性が受容する[ BCP47 による[ 言語~tagに対する `-u-^c 拡張 ]]は、 ~UAが特定0の文字~用に[ 絵文字, ~text ]どちらの呈示を利用するか裁定するときには,考慮されるベキでない。 ◎ BCP47’s -u- extension to the language tag accepted by lang or xml:lang should not be considered when the user-agent decides whether to use emoji presentation or text presentation for a particular character.
- `normal@v1
- ~UAは、 `呈示に関与する符号位置$を[ 絵文字~style, ~text~style ]どちらで描くことも選べる。 ~UAは、 この裁定を遂行するときに,概して~platform規約に従う。 ◎ User agents can choose to draw a Presentation Participating Code Point in either emoji style or text style. User agents typically follow platform conventions when performing this decision.
- `text@v1
- 符号位置~列は、[ どの`呈示に関与する符号位置$にも `FE0E^U `VARIATION SELECTOR-15^cn が付加されていた ]かのように描画される。 ◎ Code points are rendered as if U+FE0E VARIATION SELECTOR-15 was appended to every Presentation Participating Code Point.
- `emoji@v1
- 符号位置~列は、[ どの`呈示に関与する符号位置$にも `FE0F^U `VARIATION SELECTOR-16^cn が付加されていた ]かのように描画される。 ◎ Code points are rendered as if U+FE0F VARIATION SELECTOR-16 was appended to every Presentation Participating Code Point.
- `unicode@v1
- 符号位置~列は、 `UTS51$r に則って描画される — 各 `呈示に関与する符号位置$用の[ `Emoji^uc, `Emoji_Presentation^uc ]~propの値に依存して,次に挙げるいずれかとして ⇒# 絵文字を既定とする( `emoji-default^en )/ ~textを既定とする( `text-default^en )/ ~textのみ( `text-only^en ) ◎ Code points are rendered in accordance with [UTS51] as either emoji-default, text-default, or text-only, depending on the values of the Emoji and Emoji_Presentation properties for each Presentation Participating Code Point.\
- [ `FE0E^U `VARIATION SELECTOR-15^cn / `FE0F^U `VARIATION SELECTOR-16^cn ]は、 在るならば, 個々の`呈示に関与する符号位置$の既定の呈示を上書きすることになる。 ◎ If present, FE0E VARIATION SELECTOR-15 and U+FE0F VARIATION SELECTOR-16 will override the default presentation of individual Presentation Participating Code Points.
`1F6CB^U `COUCH AND LAMP^cn の絵文字~形を示すためには、 次を利用する — `CustomEmoji.ttf^l は、 この文字の絵文字~形の~UAによる~supportに順守しているとする: ◎ To show the emoji form of U+1F6CB COUCH AND LAMP, let CustomEmoji.ttf obey the user agent’s notion of supporting the emoji form of this character, and use the following:
@font-face { font-family: "Custom Emoji"; src: url("CustomEmoji.ttf") format(truetype); } ... <div style="font-family: 'Custom Emoji'; font-variant-emoji: emoji;"> 🛋 <!-- 🛋 --> </div>
10. ~fontの分類法
所与の~fontは、 次のいずれかに大別される: ◎ A given font may belong in one or more of the following categories:
- `~install済み~font@ ◎ 10.1. Installed Fonts
- 利用者の機器~上に大域的に~install済みな~font。 そのような~fontは、 一般に,どの~appからも~access可能になる — ~CSSの概念が無い~appも含め。 ~font~objを保管している~file(たち)は、 ~remote資源ではなく,利用者の機器に存在している。 ◎ A font may be installed globally on a device. Such fonts are generally accessible in any application, even applications which have no concept of CSS. The file or files backing the font object exist on the user’s device, not as a remote resource. ◎ ↑↓ Installed Fonts must not be Web Fonts, and Web Fonts must not be Installed Fonts.
- `~web~font@ ◎ 10.2. Web Fonts
-
~remote資源に~~保管されている~font。 そのような~fontは、 ~UAの資源~fetching基盤を利用して要請するモノトスル。 ~web~fontは、 次に挙げるいずれかの仕組みにより表現される: ◎ A font may be backed by a remote resource, which must be requested using the user agent’s resource fetching infrastructure. Web Fonts are represented by one of two mechanisms:
- `font-face$at 規則 ◎ @font-face rules
- 文書の `FontFaceSet$I を成す各 `FontFace$I ~entry ◎ A FontFace member of the Document’s FontFaceSet
- ~web~fontは、[ それを[ `font-face$at 規則/ 自前の `FontFaceSet$I ]で結付けている文書 ]以外の文書からも, 機器~上の他の~appからも, ~access可能にしないモノトスル。 ◎ A Web Font must not be accessible in any other Document from the one which either is associated with the @font-face rule or owns the FontFaceSet. Other applications on the device must not be able to access Web Fonts. ◎ ↑↓ Installed Fonts must not be Web Fonts, and Web Fonts must not be Installed Fonts.
- ~web~fontは、 `~install済み~font$を隠蔽する — すなわち、[ ある~install済み~font, ある~web~font ]の族~名が一致する場合,前者には~access可能にならなくなる。 ◎ Web Fonts shadow Installed Fonts, so if an Installed Font has the same family name as a Web Font, the Installed Font is not accessible.
`~install済み~font$は、 さらに,次のいずれかに大別される: ◎ 10.3. Preinstalled Fonts and User-Installed Fonts
- `利用者が~installした~font@ ◎ Users can choose to install fonts on their devices.
- 利用者が明示的な動作 — [ “~install” ~buttonを~clickする/ 自身の機器の特定0の~directoryに~fileを複製する ]など — により自身の機器に~installした~font。 ~web内容~作者は、 利用者が~installした~fontが在ることを当てにするベキでない — どの利用者も,特定の~fontを~installする動作を遂行した保証は無いので。 ◎ User-Installed Fonts are installed by an explicit action by the user, such as clicking an "Install" button or copying a file into a particular directory on their device. Such fonts are User-Installed Fonts and also are Installed Fonts. Web content authors should not count on the presence of user-installed fonts, because there is no guarantee any user will have performed the action to install a specific font.
- 利用者が~installした~fontが~font照合~algoと どう相互作用し得るかについては、 `§ ~font照合~algo$を見よ。 ◎ Please see the Font Matching Algorithm description of how user-installed fonts may interact with the font matching algorithm.
- `予め~install済みな~font@ ◎ ↓
- 利用者の機器に予め~install済みな~font。 そのような~fontたちが成す集合は、[ 特定0の~OSの特定0の~version ]ごとに,その利用者~すべてにわたって同じになる見込みが高い。 そのようなわけで、 そのような~OSを~targetにする~web内容~作者は, これらの~fontの族~名を `font-family$p ~propに利用するよう望むこともある。 ◎ Any Installed Font which is not a User-Installed font is a Preinstalled Font. It is likely that all users of a particular version of a particular Operating System will have the same set of Preinstalled Fonts installed. As such, Web content authors targeting these Operating Systems may wish to use these fonts' family names inside font-family properties.
`~system~font@ とは、 `予め~install済みな~font$のうち, 汎用~font族~名 `system-ui$v に利用されるものを指す。 ◎ 10.4. System Font ◎ The System Font is the font which is used by the system-ui generic font family name. It is an example of a Preinstalled Font.
11. ~font技術と~font形式
11.1. ~font技術
【 “~~技術( `technology^en )” は、 原文では — 特に `font-tech$t に関係する それを指す所では,概ね — その略称 `tech^en として記されるが、 この訳では,そのまま “~~技術” と記す (日本語では、 その微妙な差異を自然に表せないので)。 】
[ `features-opentype^v / `features-aat^v / `features-graphite^v ]技術は、[ 次に挙げるものに共通して実装されている~font特能 ]用の~supportを参照rする:
- 次に挙げる~tableを伴う `OPENTYPE$r ⇒ `GSUB$tag, `GPOS$tag
- 次に挙げる~tableを利用している `AAT-FEATURES$r ⇒ `morx$tag, `kerx$tag
- `~Graphite~table形式@https://graphite.sil.org/$ にて文書化されたとおり, 次に挙げる~tableを伴う `GRAPHITE$r ⇒ `Silf^tag, `Glat^tag, `Gloc^tag, `Feat^tag, `Sill^tag
これらの便宜性と相互作用する~propは、 `§ ~font特能~prop@#font-rend-props$ にて述べる。
◎ The features-opentype, features-aat and features-graphite techs refer to support for font features, commonly implemented in [OPENTYPE] with the GSUB and the GPOS tables, as well as in [AAT-FEATURES] using the morx and kerx tables and [GRAPHITE] with the Silf, Glat , Gloc , Feat and Sill tables as documented in the Graphite Table Format.\ The section on § 6 Font Feature Properties describes properties that interact with these facilities.`variations^v 技術は、[ 次に挙げるものに共通して実装されている~font異体 ]用の~supportを参照rする:
- 次に挙げる~tableを伴う `OPENTYPE$r ⇒ `avar$tag, `cvar$tag, `fvar$tag, `gvar$tag, `HVAR$tag, `MVAR$tag, `STAT$tag, `VVAR$tag
- 次に挙げる~tableを利用している `AAT-FEATURES$r ⇒ `avar$tag, `cvar$tag, `gvar$tag, `fvar$tag
これらの便宜性と相互作用する~propは、[ `§ 基本的な~font~prop@#basic-font-props$, `§ ~font異体~prop@#font-variation-props$ ]にて述べる。
◎ The variations tech refers to the support of font variations, commonly implemented in [OPENTYPE] with the avar, cvar, fvar, gvar, HVAR, MVAR, STAT, and VVAR tables, as well as in [AAT-FEATURES] using the avar, cvar, fvar, gvar tables.\ The section on § 2 Basic Font Properties as well as the section on § 8 Font Variation Properties describe properties that interact with these facilities.[ `color-COLRv0^v / `color-COLRv1^v / `color-SVG^v / `color-sbix^v / `color-CBDT^v ]技術は、 様々な色~font~file技術を参照rする。 それぞれ、[[ `OPENTYPE$r または `AAT-FEATURES$r ]~fontの内側にある~table ( `COLR$tag / `SVG$tag / `sbix$tag / `CBDT$tag ) ]を表現する。 ◎ The color-colrv0, color-colrv1, color-svg, color-sbix and color-cbdt technologies refers to various types of color font file technologies. Each one represents a table (COLR, SVG, sbix or CBDT) inside [OPENTYPE] or [AAT-FEATURES] fonts which must be supported to satisfy this requirement.
`palettes^v 技術は、[[ `OPENTYPE$r / `CPAL^tag ~tableを伴う `AAT-FEATURES$r ]にて共通的に実装されている~font~palette ]用の~supportを参照rする。 `§ 色~fontの~support@#color-font-support$ にて,これらの便宜性と相互作用する~propを述べる。 ◎ The palettes tech refers to support for font palettes, commonly implemented in the [OPENTYPE] and [AAT-FEATURES] with the CPAL table. The section on § 9 Color Font Support describes properties that interact with these facilities.
`incremental^v 技術は、 増分的な~font転送 `IFT$r 用の~clientによる~supportを参照rする。 ◎ The incremental tech refers to client support for incremental font transfer [IFT].
これらの背景0については `PFE-report$r を見よ。 ◎ For background on these, see [PFE-report].
~web作者は、 `font-face$at の `src$d 記述子の内側に `tech^f 関数を指定して,[ ~fontを正しく描画するためには,その~supportが要求される ]ことを指示できる。 この仕組みを利用すれば、 要求される~supportが無いときにも, 副次的~fontに上品に~fall-backできる。 ◎ Web authors can specify the tech function inside an @font-face src descriptor to indicate that support is required for correct rendering of a font. This mechanism can be used for gracefully falling back to an ancillary font when requested support is not present.
次の `font-face$at ~blockは、 ~UA上に~supportが在るならば 色~fontを利用し, 無いならば そうでない~fontに~fall-backする方法を示す。 ◎ This @font-face block shows how to use a color font if support is present on the user agent, and falls back to a non-color-font if support is not present.
@font-face { font-family: "Trickster"; src: url("trickster-COLRv1.otf") format(opentype) tech(color-COLRv1), url("trickster-outline.otf") format(opentype); }
11.2. ~font形式
この仕様により定義される形式~文字列は、 以下に従う。 各種 `font-format$t 値は、 下に挙げる形式~用の同義語である。 ◎ Format strings defined by this specification are as follows. The <font-format> values are synonyms for the formats below.
~keyword† | ~font形式 | 共通的な拡張子 | 共通的な~MIME型 |
---|---|---|---|
`collection^v | `~OpenType~collection@~OTDOC/otff#collections$ | `.otc^c, `.ttc^c | `font/collection@~IANA-a/media-types/font/collection$c |
`embedded-opentype^v | `埋込d~OpenType@https://www.w3.org/Submission/2008/SUBM-EOT-20080305/$ | `.eot^c | `application/vnd.ms-fontobject@~IANA-a/media-types/application/vnd.ms-fontobject$c |
`opentype^v | `~OpenType@~OTSPEC/default.htm$ | `.ttf^c, `.otf^c | `font/otf@~IANA-a/media-types/font/otf$c, `font/ttf@~IANA-a/media-types/font/ttf$c |
`svg^v | `~SVG~font@~SVG11/fonts.html$(非推奨d) | `.svg^c, `.svgz^c | `image/svg+xml@~IANA-a/media-types/image/svg+xml$c |
`truetype^v | `~TrueType@~OTSPEC/default.htm$ | `.ttf^c | `font/ttf@~IANA-a/media-types/font/ttf$c |
`woff^v | `~WOFF 1.0 ( Web Open Font Format )@~TR/WOFF/$ | `.woff^c | `font/woff@~IANA-a/media-types/font/woff$c |
`woff2^v | `~WOFF 2.0 ( Web Open Font Format )@~TR/WOFF2/$ | `.woff2^c | `font/woff2@~IANA-a/media-types/font/woff2$c |
【† 原文の表tでは,これらの~keywordは文字列として記されているが(例: `opentype^l )、 実際には~keyword(`~CSS識別子$)として定義されている( `font-format$t )ので, そのように改める。 この仕様の各~例に現れる `format^f 関数の引数においても, これらの~keywordを文字列として与えているが、 同様に改める。 】
~TrueTypeと~OpenTypeの間では,共通的な用法が重合しているので、 形式~hint[ `truetype^v と `opentype^v ]は,同義と見なすモノトスル — 形式~hint `opentype^v は、 ~fontが[ ~PostScript~CFF~style~glyph~data / ~OpenType~layout情報 ]を包含することを含意するわけではない (これについての より深い背景0は、 `付録 A@#platform-props-to-css$ を見よ)。 ◎ Given the overlap in common usage between TrueType and OpenType, the format hints "truetype" and "opentype" must be considered as synonymous; a format hint of "opentype" does not imply that the font contains Postscript CFF style glyph data or that it contains OpenType layout information (see Appendix A for more background on this).
12. ~obj~model
[ `font-face$at / `font-feature-values$at ]規則の内容は、 以下に挙げる CSS Object Model に対する拡張を介して,~accessできる。 ◎ The contents of @font-face and @font-feature-values rules can be accessed via the following extensions to the CSS Object Model.
12.1. `CSSFontFaceRule^I ~interface
`CSSFontFaceRule$I ~interfaceは、 ある `font-face$at 規則を表現する。 ◎ The CSSFontFaceRule interface represents a <@font-face> rule.
[`Exposed$=Window] interface `CSSFontFaceDescriptors@I : `CSSStyleDeclaration$I { attribute [`LegacyNullToEmptyString$] `CSSOMString$ `src@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontFamily@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-family@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontStyle@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-style@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontWeight@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-weight@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontStretch@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-stretch@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontWidth@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-width@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `unicodeRange@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `unicode-range@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontFeatureSettings@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-feature-settings@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontVariationSettings@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-variation-settings@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontNamedInstance@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-named-instance@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontDisplay@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-display@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `fontLanguageOverride@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `font-language-override@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `ascentOverride@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `ascent-override@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `descentOverride@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `descent-override@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `lineGapOverride@mFD; attribute [`LegacyNullToEmptyString$] `CSSOMString$ `line-gap-override@mFD; }; [`Exposed$=Window] interface `CSSFontFaceRule@I : `CSSRule$I { [`SameObject$, `PutForwards$=cssText] readonly attribute `CSSFontFaceDescriptors$I `style@m; };
12.2. `CSSFontFeatureValuesRule^I ~interface
`CSSRule$I ~interfaceは、 次の様に拡張される: ◎ The CSSRule interface is extended as follows:
partial interface `CSSRule$I { const `unsigned short$ `FONT_FEATURE_VALUES_RULE@m = 14; };
`CSSFontFeatureValuesRule$I ~interfaceは、 `font-feature-values$at 規則を表現する。 ◎ The CSSFontFeatureValuesRule interface represents a @font-feature-values rule.
[`Exposed$=Window] interface `CSSFontFeatureValuesRule@I : `CSSRule$I { attribute `CSSOMString$ `fontFamily$m; readonly attribute `CSSFontFeatureValuesMap$I `annotation$m; readonly attribute `CSSFontFeatureValuesMap$I `ornaments$m; readonly attribute `CSSFontFeatureValuesMap$I `stylistic$m; readonly attribute `CSSFontFeatureValuesMap$I `swash$m; readonly attribute `CSSFontFeatureValuesMap$I `characterVariant$m; readonly attribute `CSSFontFeatureValuesMap$I `styleset$m; readonly attribute `CSSFontFeatureValuesMap$I `historicalForms$m; }; [`Exposed$=Window] interface `CSSFontFeatureValuesMap@I { maplike<`CSSOMString$, `sequence$<`unsigned long$>>; `undefined$ `set$m(`CSSOMString$ %featureValueName, (`unsigned long$ or `sequence$<`unsigned long$>) %values); };
- `fontFamily@m ◎ fontFamily of type CSSOMString
- 所与の[ 特能~値たちが成す集合 ]が定義されている 1 個以上の~font族からなる~listを成す,文字列を返す。 ◎ The list of one or more font families for which a given set of feature values is defined.
- `annotation@m
- `ornaments@m
- `stylistic@m
- `swash@m
- `characterVariant@m
- `styleset@m
- `historicalForms@m
- それぞれ、 所与の `font-variant-alternates$p 値~型に対し, `特能~値~名$たちを~fontの特能~値たちに結付けている `CSSFontFeatureValuesMap$I ~objを返す。 ◎ value maps of type CSSFontFeatureValuesMap, readonly ◎ Maps of feature values associated with feature value names for a given font-variant-alternates value type
- `CSSFontFeatureValuesRule$I を成すこれらの[ 値 map を返す属性 ]は、 対応する[ `特能~値~block$を介して定義される値たち ]を反映する — [ `annotation^m / `ornaments^m ]属性は[ `annotation^at / `ornaments^at ]`特能~値~block$に包含された値たちを包含する,等々。 ◎ Each value map attribute of CSSFontFeatureValuesRule reflects the values defined via a corresponding feature value block. Thus, the annotation attribute contains the values contained within a @annotation feature value block, the ornaments attribute contains the values contained with a @ornaments feature value block and so forth.
- `set(featureValueName, values)@m
-
`CSSFontFeatureValuesMap$I ~interfaceは, 各種 `既定の[ map class ]~method@~WEBIDLjs#js-maplike$を利用するが、 `set()^m ~methodだけ,挙動が異なる。 この~methodは: ◎ The CSSFontFeatureValuesMap interface uses the default map class methods but the set method has different behavior.\
- %featureValueName に渡された`特能~値~名$に, %values に渡された無符号~整数たちが成す連列【 ~IDL `sequence^c 型~値】を結付ける。 ◎ It takes a sequence of unsigned integers and associates it with a given featureValueName.\
- %values に単独の無符号~整数が渡された場合には、 それを[ その値 1 個からなる連列 ]として扱うことを除き, 既定の[ map class ]~methodと同じに挙動する。 ◎ The method behaves the same as the default map class method except that a single unsigned long value is treated as a sequence of a single value.\
- 渡された値の個数が妥当でない場合、 例外を投出する。 ◎ The method throws an exception if an invalid number of values is passed in.\
- 結付けられた`特能~値~block$に許容される値の個数に上限がある場合、 入力~連列がその上限を超えたときには, `InvalidAccessError$E 例外を投出する。 この上限についての詳細は、 `§ 複数個の値をとれる特能~値の定義@#multi-value-features$ を見よ。 ◎ If the associated feature value block only allows a limited number of values, the set method throws an InvalidAccessError exception when the input sequence to set contains more than the limited number of values. See the description of multi-valued feature value definitions for details on the maximum number of values allowed for a given type of feature value block.\
- `get()^m ~methodが返す値は、 常に連列になる — 連列が包含する値が 1 個しかない場合でも。 ◎ The get method always returns a sequence of values, even if the sequence only contains a single value.
12.3. `CSSFontPaletteValuesRule^I ~interface
[`Exposed$=Window] interface `CSSFontPaletteValuesRule@I : `CSSRule$I { readonly attribute `CSSOMString$ `name@mP; readonly attribute `CSSOMString$ `fontFamily@mP; readonly attribute `CSSOMString$ `basePalette@mP; readonly attribute `CSSOMString$ `overrideColors@mP; };
[ `basePalette$mP / `overrideColors$mP ]属性は、 適切な~CSS~prop構文に則って構文解析される。 【`name$mP, `fontFamily$mP については、原文には何も述べられていない。】 ◎ The fontFamily and basePalette interfaces are parsed according to the appropriate CSS property syntax.
13. 直列化-法
13.1. ~fontに関係する~propの直列化-法
この~moduleにて定義される~propは、 個々の~prop用に特定的に注記されない限り, `CSSOM-1$r `§ ~CSS値の直列化-法@~CSSOM1#serializing-css-values$ による原則に従う。 ◎ Unless specifically noted for individual properties, the properties defined in this module follow the principles of CSSOM § 6.7.2 Serializing CSS Values.
13.2. ~fontに関係する~at-規則の直列化-法
この~moduleにて~at-規則~用に定義される記述子は、 個々の記述子~用に特定的に注記されない限り, `CSSOM-1$r `§ ~CSS値の直列化-法@~CSSOM1#serializing-css-values$ による原則に従う。 ◎ Unless specifically noted for individual descriptors, the descriptors defined for at-rules in this module follow the principles of CSSOM § 6.7.2 Serializing CSS Values.
特に,表現をより短くする原則に従って: ある範囲の値を受容する記述子~用には、 その始端と終端の値が同じ場合, 当の記述子は範囲としてではなく 1 個の値として直列化される。 ◎ In particular, following the principle of shorter representation: for descriptors which accept a range of values, if the start and end values are the same (the range is zero) the descriptor is serialized as a single value, not a range.
例えば,次の規則は: ◎ For example, the rule
@font-face { font-family: "foo"; font-weight: 200 200; }
次のように直列化されることになる: ◎ would serialize as
@font-face { font-family: "foo"; font-weight: 200; }
また,[ 最後に定義された値に限り維持する原則 ]および[ 最短な表現にする原則 ]に従って、[ 複数~指定された~tuple/複数個の~block ]は,[ 最後に定義された値のみを包含している 1 個の~block ]として直列化される。 ◎ Also, following the principle of retaining only the last-defined value, as well as the principle of shortest representation, multiply-specified tuples and multiple blocks are serialized as a single block containing only the last-defined value.
例えば,次の宣言は: ◎ For example, the declaration:
/*
同じ宣言~名が繰返され,
同じ特能~値~種別を伴う~blockが複数ある
◎
Repeated declaration names, and multiple blocks of the same type
*/
@font-feature-values foo {
@swash { pretty: 0; cool: 2; }
@swash { pretty: 1; }
}
次のように直列化されることになる: ◎ would be serialized as:
/*
正準的な直列化
◎
Canonical serialization
*/
@font-feature-values foo {
@swash { cool: 2; pretty: 1; }
}
付録 A. ~platform~font~propから~CSS~propへの対応付け
【! L3 と同じ】この付録は、 他の節にて述べられた問題と状況の一部を~~説明するための,背景0情報として収録されている。 あくまで参考として読まれるべきである。 ◎ This appendix is included as background for some of the problems and situations that are described in other sections. It should be viewed as informative only.
~CSSにおける~font~propは、 利用される下層の~font形式に依存しないように設計されている — それらは、 共通的な[ ~OpenType/~TrueType ]~fontに加えて[ ~bitmap, ~Type1, ~SVG ]~fontを指定することにも利用できる。 しかしながら,[ ~OpenType/~TrueType ]形式には、 作者の混同を呼び易く, 異なる~platformにわたる実装にも難題を突きつける様相がある。 ◎ Font properties in CSS are designed to be independent of the underlying font formats used; they can be used to specify bitmap fonts, Type1 fonts, SVG fonts in addition to the common TrueType and OpenType fonts. But there are facets of the TrueType and OpenType formats that often cause confusion for authors and present challenges to implementers on different platforms.
元々は~Appleにより開発された~TrueType `TRUETYPE$r は、[ ~screenと印刷 ]両用の~outline~font形式として設計された。 ~Microsoftが~Appleの~TrueType形式の開発ngに~~参加して以来、 ~TrueType~fontは,両~platformで~supportされるようになった。 ~TrueType形式~内の~font~dataは、 共通な[ 4 字で記される~tag名 ]により他と判別される~tableたちが成す集合からなり, 各~tableは特定の型の~dataを包含する。 例えば,著作権や許諾の情報を含む命名~情報は、 `name^tag ~table【 `名前~table$?】に格納される。 `文字~map$( `cmap^tag )~tableは、 文字~符号化法たちから~glyphたちへの対応付けを包含する。 ~Appleは後に, 強化された~typographic機能性を~supportするための~tableを追加した。 これらは今では、 Apple Advanced Typography — 略して~AAT — ~fontと称されている。 ~Microsoftと~Adobeは、 先進的な~typography用に別々な~tableたちが成す集合を開発し, それらの形式を~OpenType `OPENTYPE$r と称した。 ~OpenType仕様は、 ISO にて Open Font Format `OPEN-FONT-FORMAT$r として標準~化された。 ◎ Originally developed at Apple, TrueType [TRUETYPE] was designed as an outline font format for both screen and print. Microsoft joined Apple in developing the TrueType format and both platforms have supported TrueType fonts since then. Font data in the TrueType format consists of a set of tables distinguished with common four-letter tag names, each containing a specific type of data. For example, naming information, including copyright and license information, is stored in the name table. The character map (cmap) table contains a mapping of character encodings to glyphs. Apple later added additional tables for supporting enhanced typographic functionality; these are now called Apple Advanced Typography, or AAT, fonts. Microsoft and Adobe developed a separate set of tables for advanced typography and called their format OpenType [OPENTYPE]. The OpenType specification is standardized at ISO as the Open Font Format [OPEN-FONT-FORMAT].
~TrueType形式においては, 各~platformにわたる多様性が明示的に許容されていたので、 ~Microsoft~Windowsや~Linuxの下で利用される~font~dataは, 多くの事例で[ ~Appleの~MacOSXの下で利用される~data ]と少し異なっている。 これには[ ~font計量, 名前, `文字~map$ ~data ]も含まれる。 ◎ In many cases the font data used under Microsoft Windows or Linux is slightly different from the data used under Apple’s Mac OS X because the TrueType format allowed for explicit variation across platforms. This includes font metrics, names and character map data.
特定的には、 ~font族~名~dataの取扱いは, ~platformごとに異なっている。 [ ~TrueType / ~OpenType ]~fontに対しては、 これらの名前は[ `name^tag ~tableの中の,`nameID^c = 1 の name record ]に包含される。 異なる~locale用に複数の名前を格納させることもできるが、 ~Microsoftは,[ ~fontには、 常に,少なくとも~US~English~versionの名前を含める ]ことを推奨している。 ~Windows上では、 ~Microsoftは — 後方-互換性を得るため — この族~名に対する書体~数を 4 個までに制限するものと裁定を下した。 より大きな~group分け “preferred 族”( `nameID^c = 16 )や “WWS 族” ( `nameID^c = 21 )も利用できる。 ~MacOSXなどの他の~platformには,この制限は無く、 族~名は,アリなすべての~group分けを定義するために利用される。 ◎ Specifically, font family name data is handled differently across platforms. For TrueType and OpenType fonts these names are contained in the name table, in name records with name ID 1. Multiple names can be stored for different locales, but Microsoft recommends fonts always include at least a US English version of the name. On Windows, Microsoft made the decision for backwards compatibility to limit this family name to a maximum of four faces; for larger groupings the "preferred family" (name ID 16) or "WWS family" (name ID 21) can be used. Other platforms such as OSX don’t have this limitation, so the family name is used to define all possible groupings.
`name^tag ~tableを成す他の~dataは、 族~内の特定の書体を一意に識別するための名前を供する。 全部的~font名( `nameID^c = 4 ), および ~PostScript名( `nameID^c = 6 )は、 単独の書体を一意に記述する。 例えば, `Gill_Sans^F 族の~bold体fは、 全部的~font名 `Gill_Sans_Bold^F, および ~PostScript名 `GillSans-Bold^F を持つ。 所与の書体~用の全部的~font名には,地域-化された~versionが複数あり得るが、 ~PostScript名は,常に[ ある~ASCII文字たちが成す集合のみに制限された,一意な名前 ]である。 ◎ Other name table data provides names used to uniquely identify a specific face within a family. The full font name (name ID 4) and the Postscript name (name ID 6) describe a single face uniquely. For example, the bold face of the Gill Sans family has a fullname of "Gill Sans Bold" and a Postscript name of "GillSans-Bold". There can be multiple localized versions of the fullname for a given face, but the Postscript name is always a unique name made from a limited set of ASCII characters.
様々な~platform上で、 ~~同じ~fontを探索する際に,異なる名前が利用されている。 例えば、 ~Windows GDI `CreateIndirectFont^c ~APIにおいては, 書体を検索する際に 族や全部的~font名を利用し得る一方で、 ~MacOSX上では,所与の書体を検索する際に全部的~font名や~PostScript名を利用する `CTFontCreateWithName^c ~API~callが利用される。 ~Linuxの下では、 `fontconfig^c ~APIにより,これらのどの名前を利用する~fontの探索も許容されている。 ~platform~APIによる[ 他の~font候補への自動的な代用- ]がある状況では、[ 返された~fontが所与の名前に合致するかどうか検証yする ]ことも必要yあり得る。 ◎ On various platforms, different names are used to search for a font. For example, with the Windows GDI CreateIndirectFont API, either a family or fullname can be used to lookup a face, while on Mac OS X the CTFontCreateWithName API call is used to lookup a given face using the fullname and Postscript name. Under Linux, the fontconfig API allows fonts to be searched using any of these names. In situations where platform API’s automatically substitute other font choices, it may be necessary to verify a returned font matches a given name.
所与の書体の~weightは、 OS/2 ~tableの `usWeightClass^c ~fieldを介して決定されることもあれば, ~style名 ( `nameID^c = 2 )から推定されることもある。 同様に,字幅も、 OS/2 ~tableの `usWidthClass^c を介して決定されることもあれば, ~style名から推定されることもある。 ~Windows GDI ~APIの下での[ 200 以下の~weightに対する合成な~bold化 ]に関係する歴史的な理由から、 ~font~designerは、 これらの~weightを避けるため, OS/2 ~tableの中の値に手を加えていることがある。 ◎ The weight of a given face can be determined via the usWeightClass field of the OS/2 table or inferred from the style name (name ID 2). Likewise, the width can be determined via the usWidthClass of the OS/2 table or inferred from the style name. For historical reasons related to synthetic bolding at weights 200 or lower with the Windows GDI API, font designers have sometimes skewed values in the OS/2 table to avoid these weights.
[ ~Thai, ~Arabic, ~Devanagariなどの, 文脈的な形状付けを利用する複階的な用字系 ]の描画には、 ~OpenTypeや~AAT~fontにしかない特能を要する。 今では,複階的な用字系の描画は、 ~Windowsおよび~Linuxでは,~OpenType~font特能により~supportされている一方で、 ~MacOSXの下では,[ ~OpenType, ~AAT ]両~font特能が利用されている。 ◎ Rendering complex scripts that use contextual shaping such as Thai, Arabic and Devanagari requires features present only in OpenType or AAT fonts. Currently, complex script rendering is supported on Windows and Linux using OpenType font features while both OpenType and AAT font features are used under Mac OS X.
~securityの考慮点
下の自己-考査~質問票[ `9@#sp209$, `16@#sp216$, `17@#sp217$ ]を見よ。 ◎ See items 9, 16 and 17 in the self-review questionnaire below.
~privacyの考慮点
`~security/~privacyに関する自己-考査~質問票@~SECQ$に従って,および `§ ~fontの分類法@#font-taxonomy$ を利用して: ◎ Following Self-Review Questionnaire: Security and Privacy, and using the § 10 Font Taxonomy:
- この特能は、 情報として何を~web~siteその他の主体に公開し得るか? その公開が必要yな目的は何か? ◎ 15.1. What information might this feature expose to Web sites or other parties, and for what purposes is that exposure necessary?
- この仕様は、 `~web~font$の利用を許容する — それは、 その場で要請され,~installされない。 [ 文書/~stylesheet ]内に異なる生成元に属する`~web~font$がある事例では、 この~network要請は, `Referer$h ~header内に情報を公開する — それは、 ~font~providerにより採取され得る。 ◎ This specification allows the use of Web Fonts, which are requested on demand but are not installed. In the case where the document or stylesheet has a different origin to the Web Font, this network request exposes information in the Referer header, which may be harvested by font providers.
- `~web~font$に加えて,この仕様は、 CSS1 にて導入された`~install済み~font$の利用を許容し続ける (`予め~install済みな~font$, `利用者が~installした~font$どちらも)。 ◎ In addition to Web Fonts, this specification continues to allow the use of Installed Fonts (both Preinstalled Fonts and User-Installed Fonts) as introduced in CSS1.
- `~web~font$には,各~platformにわたって一貫性が得られる利点がある一方、 `~install済み~font$には,~download時間が 0 になる利点がある。 ◎ While Web Fonts have the advantage of consistency across platforms, Installed Fonts have the advantage of zero download time.
- `~install済み~font$は — 特に,[ ~supportに乏しい言語や少数派~言語 ]用のそれは — 一部の事例では — 特に,[ その言語を~supportしている`~web~font$に自由に許諾-可能なものが無い/ 待時間や~download時間が長いため用を為さなくなる ]ことにより — 他では表示できない情報を表示することを許容する — 特に,[ 言語の文字~repertoireが巨大である/ 接続が遅かったり~~従量制である ]ときに。 ◎ In some cases, and particularly for poorly-supported or minority languages, Installed Fonts allow information to be displayed which could not otherwise be displayed because there is no freely licensable Web Font which supports that language or because the latency or download time would make it’s use infeasible, particularly for languages with a large character repertoire, or on slow or metered connections.
- 注記: `§ ~font照合~algo$ にて可用な`~install済み~font$たちが成す集合は、 明示的に未定義である。 可用な~fontたちが成す集合は、 追跡者により,利用者を指紋収集して彼らの~privacyを抑制するために`利用される@https://panopticlick.eff.org$。 しかしながら,一部の`~install済み~font$は、 `利用者が~installした~font$であっても,言語を可読にするために要求される。 ~UAは、 ~install済みな各~fontに対し,それを[[ 言語~support用に/~designの完全性を~~保つ理由で ]可用にする ]ことを選んでも[ ~privacyの理由で可用にしない ]ことを選んでもヨイ。 加えて,~UAは、 この~balanceを精緻に~~調整する追加的な便宜性を備えてもヨイ — 【作者から】要請された ある種の~fontを (たぶん,~siteごとに基づいて) 明示的に可用に[ する/しない ]ための~UIを利用者に~promptするなど。 各~UAが どう~balanceをとるかは、 同じ~OSで稼働していようが,まちまちになることが予期される。 ◎ Note: The set of installed fonts available in the Font Matching Algorithm is explicitly undefined. The available set of fonts is used by trackers to fingerprint users and reduce their privacy. However, some installed fonts, even some user-installed fonts, are required to make languages readable. User Agents may choose to make all installed fonts available for language support and design integrity reasons, or may choose to make some fonts unavailable for privacy reasons. In addition, User Agents may have additional facilities for fine-tuning this balance, such as interfaces which prompt users to explicitly make certain requested fonts available or unavailable (perhaps on a per-site basis). Different User Agents, even running on the same Operating System, are expected to strike different balances here.
- ~UAが局所~資源の描画を遂行する事例 (~HTMLと~CSSから~PDFへの具現化器, ~Webに基づく語句処理器, など) においては、 期待される機能性を供するためには, すべての`~install済み~font$に~accessすることが必要yである (`予め~install済みな~font$, `利用者が~installした~font$どちらも)。 ◎ In the case of user agents which perform rendering of local resources (such as an HTML and CSS to PDF renderer, or a Web-based wordprocessor) access to all Installed Fonts (both Preinstalled Fonts and User-Installed Fonts) is necessary to provide the expected functionality.
- 攻撃者は、 `~install済み~font$を~queryして指紋収集~情報を得することもある。 旧~技術 (特に `Adobe Flash^i が挙げられる — それは、 `~install済み~font$の完全な~listを供して, その情報を~HTTP~header内に送信していた) とは対照的に、 そのような探査-法は, 1 回につき 1 個の~fontに対し — ~font族~名を供して,~fontが読込まれたかどうか検査することを要する (~scriptを介して, あるいは[ `unicode-range$d を利用して、 利用者が[ ある種の文字を~supportする,ある種の名前の~font ]を有するかどうかに応じて,選択的に~web~fontを~downloadする ]ことを介して)。 これには時間がかかり、 数百もの~fontを検査すると,~page描画は目立つほど遅延され得る。 ◎ An attacker may obtain fingerprinting information by querying the Installed Fonts. In contrast to older technologies (notably Adobe Flash, which provided a complete list of Installed Fonts and sent this information in HTTP headers) such probing must be done one font at a time, providing the font family name and then checking (either via script, or by using unicode-range to selectively download webfonts depending on whether the user has a font by a certain name that supports a certain character) whether the font was loaded. This takes time, and checking for more than a few hundred fonts introduces a noticeable delay in page rendering.
-
とりわけ~privacyに敏感な文脈~用には、 次に挙げる~optionもある:
- どの~web~fontも,決して~downloadしない (一部の文字は、[ 不正に描画される/まったく描画されない ]~riskがある)。
- どの~web~fontも,常に~downloadする — 不要なもの含め ( `unicode-range$d は無視して、 ~pageが~viewされる各回に,利用されない大量の~fontを~downloadすることにもなり得る)。
- この仕様は、 特能が力を得る必要最小限な情報を公開しているか? ◎ 15.2. Is this specification exposing the minimum amount of information necessary to power the feature?
- 正しく機能するためには,[ ~UAは,`予め~install済みな~font$は公開するモノトスル ]とする総意は得られたが、[ `利用者が~installした~font$を公開すること ]についての総意は無い。 この仕様は、 `§ ~font照合~algo$ の目的においては, `利用者が~installした~font$を無視することを~UAに許容する。 既存の~UAのうちいくつかは、 すでにそうしている。 ◎ An emerging consensus is that a user agent must expose Preinstalled Fonts for correct functioning, but there is no consensus on exposing User-Installed Fonts. This specification allows a user agent to ignore User-Installed Fonts for the purpose of the Font Matching Algorithm. Several existing user agents already do this.
- 最小限な量は,利用者~~層に応じて変わり、 `現在~討論されている@~CSSissue/4497$。 `利用者が~installした~font$の利用者に関する `有用な分類法があり@~CSSissue/4055#issuecomment-536169515$, `少し拡張されている@~CSSissue/4055#issuecomment-536815201$。 ◎ The minimum amount varies by type of user and is currently being debated. There is a useful taxonomy of User-Installed Font users which has been slightly extended.
- 情報の量を許可する方へ振るほど,指紋収集~情報は さらに公開され得る。 情報の量を制約する方へ振るほど,指紋収集は抑制されるが、 機能性も抑制される — 一部の事例では、 少数派~言語の利用者にとって,~Webを完全に壊すことになろう。 ◎ A permissive amount of information exposes potentially more fingerprinting information; a restrictive amount of information reduces fingerprinting but also reduces functionality and in some cases, for minority languages, would break the Web completely for those users.
- `利用者が~installした~font$のうち どこまで公開するかを[ 利用者ごと, あるいは生成元ごと ]に~opt-inするような,環境設定-可能な何かの可能性が論じられている。 ◎ The possibility of a configurable, per-user opt-in to exposing some or all User-Installed Fonts, or a per-origin opt-in, is being discussed.
- ~~過度に多数の~fontを~testするような悪意的な~web~pageは 罰するか不能化する一方で, 限られた少数の~fontを~testするような無害な~pageは 許容するような、 ~privacy総量規制の可能性も論じられている。 ◎ The possibility of a privacy budget, which would penalize or disable a malicious web page which tested a large number of fonts, but allow a harmless page which tested a much smaller number, has also been discussed.
- 一部の~UAは、[ `Private Browsing^en / `incognito^en / `Resist Fingerprinting^en ]【などの,指紋収集に抗する閲覧】~modeにおいては, `予め~install済みな~font$のうち どれを公開するかを通常~modeより制約する。 ◎ Some user agents expose a more restricted set of Preinstalled Fonts in their Private Browsing, Incognito, or Resist Fingerprinting modes, compared to their normal mode.
- この仕様は、 個人-情報, 個人識別可能な情報, それらから導出される情報をどう処するか? ◎ 15.3. How does this specification deal with personal information or personally-identifiable information or information derived thereof?
- 個人-情報は、 この仕様により公開されることはない。 ◎ Personal information is not exposed by this specification.
- 事例によっては、 個人識別可能な情報は公開され得る。 例えば,日本に居る誰かにとっては、 条件付きで可能化される~Japanese~fontが列挙-可能になっても、 おそらく,さほどの指紋収集~行路にはならない。 一方で、 欧州に居て~text入力~menu内に~Japanese~IMEを備える誰かにとっては,そうなろう。 ◎ Personally identifiable information may be exposed in some cases. For example, for someone in Japan, having conditionally-enabled Japanese fonts enumerable probably isn’t a substantial fingerprinting vector. For someone in Europe who has a Japanese IME in the text input menu, they are.
- この仕様は、 敏感な情報をどう処するか? ◎ 15.4. How does this specification deal with sensitive information?
- `~install済み~font$に対する指紋収集は、 一部の事例では敏感な情報を公開し得る。 例えば,迫害少数民族にとっては、 彼らが利用する言語に要求される~fontを — [ 第三者-主体~serviceからの`~web~font$を要請する/ `予め~install済みな~font$を公開する/ 当の言語に`利用者が~installした~font$が結付けられる ]ことにより — 公開する結果,敏感な情報が漏洩する~riskがある。 ◎ Fingerprinting on Installed Fonts may expose sensitive information in some cases. For example, persecuted minorities risk leaking sensitive information by exposing that they use fonts required for a persecuted minority language; either by requesting a Web Font from a third party service, or exposing Preinstalled Fonts or User-Installed Fonts associated with that language.
- この仕様は、 複数の閲覧~sessionにわたって持続する新たな状態を生成元~用に導入するか? ◎ 15.5. Does this specification introduce new state for an origin that persists across browsing sessions?
- しない。 ◎ No.
- 特定的には、 `~web~font$は[ `font-face$at 規則が結付けられるもの / `FontFaceSet$I を所有するもの ]以外の文書からは,~access可能にしないモノトスル。 当の`~web~font$は、 機器~上の他の~appからは,~access可能にしないモノトスル。 これは、 情報が他の生成元へ漏洩するのを避ける。 ◎ Specifically, Web Fonts must not be accessible in any other Document from the one which either is associated with the @font-face rule or owns the FontFaceSet. Other applications on the device must not be able to access Web Fonts. This avoids information leaking across origins.
- 同様に,~font~palette値が可用になるのは、 `それを参照している文書に限る@#font-palette-values$モノトスル。 作者~定義な色~paletteを それを参照する文書の外側で利用すると、 ~security漏洩を成すことになろう — ある~pageの内容が他の~pageに影響-可能になれば、 攻撃者も何らかの攻撃~行路として利用できることになるので。 ◎ Similarly, font palette values must only be available to the documents that reference it. Using an author-defined color palette outside of the documents that reference it would constitute a security leak since the contents of one page would be able to affect other pages, something an attacker could use as an attack vector.
- この仕様により生成元に公開される下層の~platformからの情報は何か? ◎ 15.6. What information from the underlying platform, e.g. configuration data, is exposed by this specification to an origin?
- `system-ui$v ~keywordは、 ~OSの既定の~system~UI~fontを指紋収集の仕組みに公開する。 ◎ The system-ui keyword exposes the operating system’s default system UI font to fingerprinting mechanisms.
- この仕様は、 利用者の機器~上の~sensorに対する~accessを生成元に許容するか? ◎ 15.7. Does this specification allow an origin access to sensors on a user’s device
- しない。 ◎ No.
- この仕様が生成元に公開する~dataは何か? 同じまたは異なる文脈~内で他の特能が公開する~dataに一致する~dataがあれば、 それも文書化されたし ◎ 15.8. What data does this specification expose to an origin? Please also document what data is identical to data exposed by other features, in the same or different contexts.
- 第三者-主体による`~web~font$が[ ~stylesheetを介して読込まれる/~HTML内に事前に読込まれる ]場合、 当の[ ~stylesheet/文書 ]の生成元は, `Referer$h ~headerを通して第三者-主体に公開され得る。 加えて,様々な[ `unicode-range$d による範囲, `src$d による~URL ]の~pairを作り込むことは、 ~page内でどの文字が利用されているか知ることを第三者-主体に許容する — それは、 ~CJKなどの文字~repertoireが巨大な用字系において, ~privacy~riskになる。 ◎ For third-party Web Fonts loaded via a stylesheet, the stylesheet origin may be exposed to the third party in the Referer header. In addition, careful pairing of unicode-range and distinct src urls allows the third-party to see which characters are used on a page, which is a privacy risk for large character repertoire scripts such as CJK. ◎ For third-party Web Fonts preloaded in the HTML, the document origin may be similarly exposed.
- この仕様は、 ~scriptを[ 実行する/読込む ]新たな仕組みを可能化するか? ◎ 15.9. Does this specification enable new script execution/loading mechanisms?
- しない。 ◎ No.
- 特定的には,~OpenType内の~SVGによる色~fontにおいては、 ~glyph定義~用に利用される~SVGは~script要素を包含しないベキであり, ~script要素が生じても実行されないことになる。 ◎ Specifically, for SVG-in-OpenType color fonts, the SVG used for glyph definitions should not contain script elements, and any script elements that do occur will not be executed.
- この仕様は、 他の機器への~accessを生成元に許容するか? ◎ 15.10. Does this specification allow an origin to access other devices?
- しない。 ◎ No.
- この仕様は、 ~UAの~native~UIに対する何らかの制御を生成元に許容するか? ◎ 15.11. Does this specification allow an origin some measure of control over a user agent’s native UI?
- 攻撃者が[ ~OSを決定して,~OSに適切な~nativeな見かけを伴う~fontを利用する ]ことにより,~nativeな~UI特能を偽装できる~riskがある。 ◎ There is some risk that an attacker can spoof a native UI feature by determining the Operating System and using native-looking fonts appropriate to that Operating System.
- この仕様は、 一時的な識別子を作成し得るか?~webに公開し得るか? ◎ 15.12. What temporary identifiers might this specification create or expose to the web?
- しない。 ◎ None.
- この仕様は、 当事者-主体, 第三者-主体の文脈~間における挙動をどう判別するか? ◎ 15.13. How does this specification distinguish between behavior in first-party and third-party contexts?
- ~UAは、 ~fontを読込むときには, `§ ~font~fetchingに課される要件@#font-fetching-requirements$ に従うモノトスル。 【以下,この段落の内容は、その節に書かれているので省略する。】 ◎ For font loads, user agents must use the potentially CORS-enabled fetch method defined by the [HTML] specification for URLs defined within @font-face rules. When fetching, user agents must use "Anonymous" mode, set the referrer source to the stylesheet’s URL and set the origin to the URL of the containing document.
- したがって,~fontは、 非同一-生成元からは,概して — 作者が非同一-生成元からの読込nを許可する手続きを特定的に踏まない限り — 読込まれないことになる。 ◎ Thus, fonts will typically not be loaded cross-origin unless authors specifically take steps to permit cross-origin loads.
- この仕様は、 ~UAの私的~閲覧~modeの文脈においてどう働くか? ◎ 15.14. How does this specification work in the context of a user agent’s Private Browsing or "incognito" mode?
- この仕様は、 そのような区別は為さない。 ◎ The specification makes no distinction.
- 一部の~UAは、 これらの~modeにおいては, 公開する`~install済み~font$たちが成す集合をもっと制約し得る。 ◎ Some user agents may expose a more restricted set of Installed Fonts in these modes.
- この仕様には、 “§ ~security考慮点”, “§ ~privacy考慮点” はあるか? ◎ 15.15. Does this specification have a "Security Considerations" and "Privacy Considerations" section?
- ある。 ◎ Yes.
- この仕様は、 既定の~security特性の降格を許容するか? ◎ 15.16. Does this specification allow downgrading default security characteristics?
- しない。 ◎ No.
- この質問票には何が尋ねられるベキか? ◎ 15.17. What should this questionnaire have asked?
- 次について尋ねられるベキである ⇒ 悪意的な~payloadは、 ~appや~OS全体を~~実際に~crashさせたり,~remote~codeの実行までにも至らせ得るか? ◎ It should have asked whether a malicious payload could crash the application, or indeed the entire Operating System, or even cause remote code execution.
- この可能性は存在する — 一部の~platformに適するよう細工された~fontが,~installされ, 描画されるときに。 これは、 巷で悪用されている。 ◎ This possibility does exist for suitably crafted fonts on some platforms when fonts are installed and rendered, and this has been exploited in the wild.
- 実施においては,この脆弱性がある~OS上で稼働している~UAは、 ~font無毒化器を利用して,そのような[ 不正形/悪意的 ]な~fontを検出して, それらが利用されるのを防止する。 ◎ In practice, user agents running on Operating Systems with this vulnerability use a font sanitizer to detect such malformed or malicious fonts and prevent their being used.
~accessibilityの考慮点
~textの視覚的な具現化を供するための~fontの利用は、 一般には,~accessibilityには影響iしないはずである。 例えば、 ~screen~readerを利用して~textを発話に具現化する人々は、 ~fontを~downloadしないし,それらの~fontが何を包含していようが影響されない。 ◎ The use of fonts to provide a visual rendering of text should not, in general, impact accessibility. For example, people using a screen reader to render text to speech will not download fonts, and are unaffected by what those fonts would have contained.
しかしながら,このことは、[ 文字により伝達される意味論, ~fontの~glyphにより伝達される意味論 ]が一致していない下では成り立たない。 ◎ However, this assumes that the semantics conveyed by the font glyphs and the semantics conveyed by the characters are the same.
歴史的には、 そのような事例があった。 例えば,草創期の~Webでは、 ~Latin普通字を~Greek~glyph化する~font ( `Symbol^F など(他のもの利用されたが)) を共通的に利用していた。 これは、 視覚的には働いたが, ~screen~readerでは働かない上に,~textを[ 探索する/~indexする ]のも難しくしていた — その対応付けは、 ~fontに特有であったので。 ~Unicodeの台頭に伴い、[ ~Greek~text用には~Greek【!文字】を利用して, ~Greek【!文字】には~font内の~Greek~glyphを対応付ける ]ことは,今や標準な実施である。 ◎ Historically, this has not always been the case. For example, in the early days of the Web it was common to use fonts (such as "Symbol", though others were used) to make Latin letters have Greek glyphs; while this worked visually, it would not work with a screen reader and text was also hard to search or index because the mapping was font-specific. With the rise of Unicode, it is now standard practice to use Greek characters for Greek text, and for Greek glyphs in fonts to map to Greek characters.
残念なことに(避けれることでもあるが)、 この実施は,不良に設計された~icon~fontに持続している。 例えば、 そのような~fontには, ~Latin普通字 "P" が “印刷機( `printer^en )” ~iconに化けるものもある。 この実施は、 ~text内に無意味な普通字を撒き散らすことに加え,~textを[ 探索する/~indexする ]ときにも悪影響を及ぼす — その結果、[ 当の~icon~fontが読込まれない場合, その具現化を理解するのが難しくなる ]ことに加え, ~screen~readerを妨げる。 きちんと設計された~fontは、 そのような~iconを意味論的に有意義な文字にアテガわなければナラナイ。 例えば、 印刷機~iconは,文字列 "印刷機" や~Unicode文字 🖨 `1F5A8^U (`PRINTER^cn) などにアテガわれることになろう。 ◎ Sadly, but avoidably, this practice persists with badly designed icon fonts. For example, such a font might put a "printer" icon on the Latin letter "P". This practice scatters meaningless letters through the text, which negatively affects text searching and indexing, gives hard to understand rendering if the icon font does not load, and impedes screen readers. A well designed font must assign such icons to semantically meaningful characters. For example, the printer icon might be assigned to the string "printer" or to the Unicode character 🖨 U+1F5A8 (PRINTER).
謝辞
~CSS~WGは、 以下に挙げる方々に感謝する: ◎ The CSS Working group would like to thank:
- 言語~修正点を~~分類された `Peter Constable^en 氏に。 ◎ Peter Constable for assorted language fixes.
- `画像@#optical-size-example$の最適な~sizingを準備された `Nick Sherman^en 氏に。 ◎ Optical sizing image prepared by Nick Sherman.
- ~Urduの見本を準備された `Richard Ishida^en 氏に。 ◎ Urdu samples prepared by Richard Ishida.
- `font-palette$p を~animateするための特能を開発された `Munira Tursunova^en, `Dominik Röttsches^en 各氏に。 ◎ Munira Tursunova and Dominik Röttsches developed the features for animating font-palette.
- ~OpenType言語~tagの細部について懇切丁寧に説明して, `Byzantine seal^en に対し~textを表示するための異体文字の用法を成す例を供された `John Hudson^en 氏に。 ◎ John Hudson was kind enough to take the time to explain the subtleties of OpenType language tags and provided the example of character variant usage for displaying text on Byzantine seals.
- `font-feature-values^at 規則~用の初期~設計~案の一部を給された `Elika Etemad^en 氏に。 ◎ Elika Etemad supplied some of the initial design ideas for the '@font-feature-values' rule.
- [ `§ ~font描画の制御@#font-rendering-controls$, § `font-display$d 記述子 ]に~textを供された `Tab Atkins Jr.^en 氏に特別な謝意を。 これらの節を開発するにあたって助力された `Ilya Grigorik^en, `David Kuettel^en 各氏にも特別な謝意を。 ◎ Special thanks to Tab Atkins Jr. for providing the text for the section on Font Rendering Controls as well as the section on the font-display descriptor. Special thanks to Ilya Grigorik and David Kuettel for their help in developing these sections.
変更点
- `2021年 12月 21日 作業草案@~TR/2021/WD-css-fonts-4-20211221/$ からの変更点 ◎ 18.1. Changes from the 21 December 2021 Working Draft
- いくつかの~link切れを正した。 ◎ Corrected some broken links
- ~font照合~algoにおいて, 可変~font `slnt^tag 軸の利用と合成な~oblique化を判別するようにした。 ◎ In font matching algorithm, distinguished use of varfont slnt axis from synthetic obliquing
- ~font異体は,~font合成として数えられないことを明確化した。 ◎ Clarified that font variations do not count as font synthesis
- `font-face$at 【用の`一部の記述子@#font-prop-desc$】に対する `auto^v 値による効果は、 【当の記述子に】適切な `normal^v 値を選定することを明確化した。 ◎ Clarified the effect of auto values on @font-face is to select the appropriate "normal" value
- 異体~選択子を伴う `font-variant-emoji$p に対する~font~fallbackを改善した。 ◎ Improved font fallback on font-variant-emoji with variation selectors
- ~oblique斜度と要請された斜度の正負符号は一致しなければならないことを明確化した。 ◎ Clarified that the oblique angle must be the same sign as requested
- 縦書き~textにおける合成な~obliqueを定義した。 ◎ Defined synthetic oblique in vertical text
- `override-colors$d 用に `CSS-COLOR-5$r に定義される`絶対的な色$を利用した。 ◎ Used CSS Color 5 absolute color definition for override-colors
- `font-stretch$p を`font-width$p 用の旧来の別名nにした。 ◎ Made font-stretch a legacy name alias for font-width
- `palette-mix^f の文法には `color-interpolation-method$t が要求されるので、 それが省略された場合に何を行うか定義している不要な注釈文を除去した。 ◎ The palette-mix() grammar requires color-interpolation-method, so removed leftover prose defining what to do if it is omitted
- `generic(fangsong)$v, `generic(kai)$v 用の見本を追加した。 ◎ Add more generics samples, for fang song and kai
- ~Urduの見本~用に利用される~fontを挙げた。 ◎ Listed fonts used for Urdu samples
- ~web~pageの描画~用に可用な`~install済み~font$たちが成す集合は、 利用者が改変-可能にならなければならないとした。 ◎ Users must be able to modify the set of installed fonts available for rendering web pages
- [ `Nastaliq^F ~font/ ~fallback `Naskh^F ~font ]における~Urdu~textの例を追加した。 ◎ Added examples of Urdu text in nastaliq and in fallback naskh fonts
- `local$f の内側における~keywordは~errorになることを明確化した。 ◎ Clarified that keywords inside local() are an error
- 汎用~font族 `system-ui$v は、 組成-~fontの場合もあり,それが受持つ~Unicode~~範囲や内容~言語により影響されることを明確化した。 ◎ Clarified that the system-ui generic font family may be composite, and is affected by unicode coverage and content language
- [ 特定0の~typographic~styleが正式~性や遊心などの概念を普遍的に伝達する ]とする文化的に特有な主張を除去した。 ◎ Removed culturally specific claims that particular typographic styles universally convey concepts such as formality or playfulness
- ~Urdu, ~Persian, その他の言語~用に, 新たな族 `generic(nastaliq)$v を追加した。 ◎ Added a new generic(nastaliq) family, for Urdu, Persian, and other languages
- [ 簡体字/繁体字 ]~Chinese用に, 新たな族 `generic(kai)$v を追加した。 ◎ Added a new generic(kai) family, for Simplified and Traditional Chinese
- `cursive^en 【筆記体】と `kaiti^en 【楷書体】の意味が一致するとは もはや主張しないようにした。 ◎ No longer claim that cursive and kaiti have identical meanings
- 汎用~font族 `serif$v, `sans-serif$v の利用に関する歴史的な理由について,注記を追加した ◎ Added a note on the historical reasons for the serif and sans-serif generic font families
- 汎用~font族から `emoji^v を落とした — それに欲される機能性は、 `font-variant-emoji$p ~propがもっと良く受持つので。 ◎ Dropped the emoji generic font-family, because the font-variant-emoji property covers the desired functionality better
- ~font形式たちが成す表tに~MIME型を追加した。 ◎ Added Internet Media Types to the table of font formats
- ~install済み~fontによる帰結を `§ ~fontの分類法@#font-taxonomy$ から `§ ~font照合~algo$ の中へ移動した。 ◎ Moved the consequences of installed fonts out of Taxonomy and into Font Matching Algorithm
- [ `font-family$d, `src$d ]記述子が在ることは、 【`font-face$at の】妥当性には,もはや要求されないことを明確化した — それらは、 ~scriptにより後で追加し得るので。 ◎ Clarified that the font-family and src descriptors are no longer required for validity, as they can be added later by script.
- 汎用~font族~名として, `fangsong^v に代えて `generic(fangsong)$v を一貫して利用するようにした。 それは用字系に特有であることを注記した。 ◎ Consistently use generic(fangsong) instead of fangsong, as the generic font family name. Note that it is script-specific
- ~font族~名を成す第 3 の型として, `system-family-name$t を定義した — それは、 どこで指定し得るかに関して ある拘束を伴う。 ◎ Defined a third type of font family name, <system-family-name> which has some constraints on how it can be specified
- `font-feature-values$at の生成規則に,欠落った~at-~keywordを追加した。 ◎ Added a missing at-keword in the production of @font-feature-values
- `font-feature-values$at の文法を~~再構成した。 ◎ Refactored the @font-feature-values grammar
- `~level 3$ からこの仕様の中へ~portするとき落とされた一部の謝辞を復旧した。 ◎ Restored some acknowlegements which had been dropped when porting CSS Fonts 3 into this specification
- `src$d 属性の文法を `font-src-list$t 生成規則を利用するよう定義し直した — “注釈文を見よ” ではなく。 ◎ Redefined the grammar of the src attribute to use a <font-src-list> production, rather than "see prose"
- もはや存在しない,規範的でない参照への~linkを削除した。 ◎ Deleted broken link to an informative reference which no longer exists
- 汎用~font族を成す 3 種の~classを述べた — それらが[ 書記体系(用字系)に特有かどうか, ~localに~install済み~fontと照合するために常に要求されるかどうか ]も含めて。 ◎ Described three classes of generic font families, including whether they are writing system (script) specific and whether they are always required to match to a locally installed font
- 新たな汎用~font族~用の新たな関数-記法として `generic^f を追加した。 ◎ Added a new functional notation, generic(), for new generic font families
- ~platform~APIの制限により,色~fontの描画は~sRGBに制約されるかもしれないことを明確化する注記を追加した。 ◎ Added a clarifying note about platform API limitations which might restrict color font rendering to sRGB
- もはや適用-不能な言及 “有色~glyphは利用しないよう強制する” を除去した。 ◎ Removed leftover, no-longer applicable mention of "forcing colored glyphs not to be used"
- `font-palette$p の算出d値を精緻化した。 ◎ Refined the font-palette computed value
- ~animateされる~paletteを伴う `Nabla^F ~fontの例を追加した。 ◎ Added an example of Nabla font with an animated palette
- 改変された `font-palette$p の構文【 `palette-mix()$t 】を述べた。 その補間と百分率の正規化~用の規則を `CSS-COLOR-5$r を参照しながら述べた。 ◎ Described modified font-palette syntax and rules for interpolation and percentage normalization, referencing the CSS Color specification
- `color-scheme$p の使用~値は、 `font-palette$p 用の値 `normal^v のふるまいに影響することを明確化した。 ◎ Clarified that the used color-scheme affects font-palette: normal
- 【 `oblique$v の】斜傾度を与える `angle$t と `font-feature-settings$p 用の値を成す整数 【 `feature-tag-value$t 】用に欠落った数量-範囲~注釈を追加した。 ◎ Added missing numeric range annotations for slope angle and font-feature-settings integer
- `family-name$t 用の生成規則を定義した。 ◎ Defined a production for <family-name>
-
~localに~install済みな~font用には,
local(`family-name$t)
を利用するようにした。 ◎ For locally installed fonts, used local(<family-name>) - 記述子~用の多義的な自動-~linkを修正した。 ◎ Fixed ambiguous descriptor auto-links
- `family-name$t 生成規則の~markupを修正した ◎ Fixed markup of the <family-name> production
- 特能~名と異体~名を `opentype-tag$t で定義した — 裸な文字列ではなく。 ◎ Defined feature and variation names with <opentype-tag> rather than bare strings
- `font-palette-values$at 用の記述子には、 ( `calc$f のみならず) 一般な`~math関数$が許容されることを明確化した。 ◎ Clarified that general math functions (not just calc) are allowed in @font-palette-values descriptors
- `font-synthesis-position$p ~propを追加した。 ◎ Added the font-synthesis-position property''
- `override-colors$d における非~sRGB色の例を追加した。 ◎ Added an example of a non-sRGB color in override-colors
- 生成規則に `rule-list$t を利用するようにした — 【廃された】 `stylesheet^t ではなく。 ◎ Use rule-list rather than stylesheet in productions
-
[ `crossorigin^v, `referrerpolicy^v, `integrity^v ]用の~URL要請~改変子を追加した。
【 これは、 実際には, `CSS-VALUES-5@~CSSVAL5$r に対する変更 (その `§ 要請~URL改変子@~CSSVAL5#request-url-modifiers$を見よ) (この~moduleにおいて`~fontを~fetchする$ときに間接的に利用される)。 】
◎ Added URL request modifiers for crossorigin, referrerpolicy & integrity - `font-tech$t の増分的な転送~用の~keyword【!たち】 `incremental^v を最新な `IFT$r 仕様に合致するようにした。 ◎ Aligned the incremental tech keywords to match the latest Incremental Font Transfer specification
- [ `font-feature-values$at / `font-feature-values$at ]用には、 最後に定義された値を利用するようにした。 ◎ Use last-defined value for font-feature-values
- [ `font-feature-values$at / `font-feature-values$at ]は、[ 重複が無くされ,`符号単位$の昇順で~sortされる ]ようにした。 ◎ font-feature-values and font-feature-settings are now de-duplicated, and sorted
- 次について利用者に~promptするよう,~UAに示唆した ⇒ ある種の`利用者が~installした~font$を可用にするか否か。 ◎ Suggested user agents prompt users to make certain user-installed fonts available, or unavailable
- § ~privacyの考慮点を改善した — `利用者が~installした~font$に対し,[ ~privacy, 判読し易さ ]の~trade-offに関して~balanceをとることについて。 ◎ Improved the Privacy Considerations, balancing privacy and legibility trade-offs for user-installed fonts
- `font$p 略式~propを明確化した — 次に挙げる用語を利用して ⇒# `明示的に設定される$もの, `暗黙的に設定し直される$もの, `独立に~cascadeされる$もの ◎ Clarified the font shorthand, using the terms set explicitly, reset implicitly and cascade implicitly
- 範囲ゼロな記述子~用の より短い表現について明確化した。 【おそらく,`§ ~at-規則の直列化-法@#serializing-at-rules$】 ◎ Clarified shorter representation for zero ranged descriptors
- `可用な最初の~font$の定義を整備した。 ◎ Tightened definition of first available font
- ~Unicode範囲【!unicode-range】を表す~keywordとして, 【 `font-variant-emoji$p 用の値】 `emoji$v1 を追加した。 ◎ Added emoji as a keyword to unicode-range
- 次を無視することを実装に許容した ⇒ ~OpenType仕様において常に必須とされている~font特能をオフにする要請 ◎ Allowed implementations to ignore requests to turn off font features which the OpenType specification says are always required
- [ `font-feature-settings$p, `font-variation-settings$p ]について,作者~向けに より明瞭な助言を与えた。 ◎ Gave clearer advice to authors about font-feature-settings and font-variation-settings
- `font-variant$p の下位prop用の文法の可読性を改善した。 ◎ Readability improvements to the grammar for font-variant sub-properties
- 一部の例を仕様に再び合致するよう正した。 ◎ Corrections to some examples so they again match the specification
- 無効な `~font-familyPV$d 記述子を無視することが何を意味するかを明確化した。 ◎ Clarified what it means to ignore an invalid font-family descriptor
- `font-palette-values$at の `~font-familyPV$d 記述子が~listをとることも許容した。 ◎ Allowed the font-family descriptor of @font-palette-values to take a list
- `Web Platform Tests coverage^en を追加した。 ◎ Added Web Platform Tests coverage
- `font-palette$p, `font-palette-values$at は、 もはや~risk下でなくなった。 ◎ font-palette and '@font-palette-values' no longer at risk
- ~Web互換性を得るため, 文字列~形による形式~文字列【 `font-format$t 】を — 制限された集合に属するものに限り — 指定することを許容した。 ◎ Allowed limited set of string-form format specifies, for Web compatibility
- 一貫性を得るため, `feature-*^v を `features-*^v に改称した。 ◎ Make feature-* features-* for consistency
- `font-variant-emoji$p の初期~値を `auto^v から `normal^v に変更した — 他の `font-variant-*^p ~propとの一貫性を得るため。 ◎ Changed initial value of font-variant-emoji from auto to normal, for consistency with other font-variant-* properties
- `font-variant$p 略式に `font-variant-emoji$p 用の値を追加した。 ◎ Added values from font-variant-emoji to font-variant shorthand
- `font-variant$p 略式により影響される `font-variant-*^p ~propたちが成す正準的な~listを追加した。 ◎ Added canonical list of font-variant-* properties affected by font-variant shorthand
- ~system~fontとの混同を避けるため、 “~system~font~fallback” を “~install済み~font~fallback” に改称した。 ◎ Renamed "system font fallback" to "installed font fallback to avoid confusion with system font
- [ ~prop/記述子 ]の値に範囲~記法を利用するよう更新した。 ◎ Updated property and descriptor values to use the range notation
- 仕様に合致してなかった一部の例を修正した。 ◎ Fixed some examples which did not match the specification
- 色~fontは、 既定では可能化されないことを明確化した。 ◎ Clarified that color fonts are not enabled by default
- `font-palette$p 用の値[ `light^v / `dark^v ]に対する説明をもっと追加した。 ◎ Added some more explanation to font-palette:light|dark
- `override-colors$d においては, 最後の宣言を成す[ ~key/~palette ]~indexを利用するようにした。 ◎ Use last declaration of key/palette index in override-colors
- `override-colors$d 用の例から `currentcolor^v を除去した。 ◎ Removed currentColor from override-colors example
- 範囲~外の~palette~indexは無視されることを明確化した。 ◎ Clarified that out of range palette indexes are ignored
- 諸々の誤記を正して,~markupを修正した。 ◎ Assorted typo corrections and markup fixes
- `2021年 7月 29日 作業草案@~TR/2021/WD-css-fonts-4-20210729/$ からの変更点 ◎ 18.2. Changes from the 29 July 2021 Working Draft
- ~palette内の[ 関数/相対~長さ ]は、 `根~要素$の文脈の中で評価されることを明確化した。 ◎ Clarified that functions and relative lengths in palettes are evaluated within the root element’s context
- `~level 3$ からの`全般的な変更点@#changes-fonts-3$ を追加した。 ◎ Added new section, overall changes since CSS Fonts 3
- `font-palette-values$at の例をもっと追加した。 ◎ Added more font-palette-values examples
- `technology^en 【~~技術 / `*-technology^v 】を `tech^en に改称した。 ◎ Renamed technology to tech
- `font-size$p に新たな値 `math^v を追加した。 ◎ New math value added to font-size
- [ § ~security/~privacy ]を[ § ~security, § ~privacy ]に分離した。 ◎ Security and Privacy are now separate sections
- [ ~OpenType, ~TrueType, ~Graphite ]~tableの各~定義へ~linkした。 ◎ Linked to OpenType, TrueType and Graphite table definitions
- 旧い `supports^v を利用していた例を更新した。 ◎ Updated examples which had used "supports"
- `src$d 記述子における `format^f から旧い `supports^v 構文を除去して, 新たな `tech^f 関数【!生成規則】に置換した。 ◎ Removed old "supports" from format in src descriptor, replaced with new technology production
- [ `font-technology^t【`font-tech$t】, `font-format$t ]を新たな節へ移動した。 ◎ Moved font-technology & font-format to a new section
- ~fontの~fetchingに適用される[ ~fetch法, 資源~計時の報告-法 ]を正式~化した。 ◎ Formalized fetching and resource timing reporting, applied to fetching fonts
- `override-colors$d と `base-palette$d から `string$t 値を除去した。 ◎ Removed the <string> values from override-color and base-palette
- `override-colors$d が競合しているときの正しい処理を定義した。 ◎ Defined correct processing of conflicting override-colors
- “完全な~palette” の概念を導入した。 ◎ Introduced concept of complete palettes
- `override-colors$d の記述を もっと明瞭にした。 ◎ Clearer description of override-colors
- `VIEWPORT_RULE^c と競合していた `FONT_PALETTE_VALUES_RULE^c を除去した。 【これらは、 `CSSRule$I 内に定義されていた定数(どちらも,今や廃された)。】 【!https://github.com/w3c/csswg-drafts/commit/45bda92646e0438c1fcd44497144aa86f0df1b61】 ◎ Removed conflict between FONT_PALETTE_VALUES_RULE and VIEWPORT_RULE
- `override-colors$d の色を解決するための文脈を定義した — もはや,要素ごとでなくなった。 ◎ Defined context for resolving override-color colors, no longer per-element
- `base-palette$d が[ 暗な( `dark^v ), 明な( `light^v ) ]~paletteを参照するのを許容した。 ◎ Allowed base-palette to reference dark and light palettes
- `CSSFontPaletteValuesRule$I 内の~propを読専に変更した。 ◎ Changed properties in CSSFontPaletteValuesRule to be read-only
- `palette-identifier$t は、 拡張能を得るため, `custom-ident$t ではなく `dashed-ident$t として構文解析するようにした。 ◎ The palette-identifier parses as a dashed-ident rather than custom-ident, for extensibility
- `override-color^d 記述子を `override-colors$d に改称した — それは、 色たちが成す~listを受容するので。 ◎ Renamed override-color descriptor to override-colors, because it accepts a list of colors
- [ `base-palette$d / `override-colors$d ]がとる整数は、 負でないことを明確化した。 ◎ Clarified that base-palette and override-color take non-negative integers
- ~font略式~propの文法を正した。 ◎ Corrected grammar of the font shorthand property
- `CSSFontPaletteValuesRule$I 用の~IDLを,いくつか正した。 ◎ Several corrections to the IDL for CSSFontPaletteValuesRule
- `font-palette$p から値 `none^v を除去した。 ◎ Removed the "none" value from font-palette
- 増分的な転送~用の要件を明確化した。 ◎ Clarified incremental requirement
- 少数の例を加えた。 ◎ A few more examples
- ~supportする~font技術として増分的な転送( `incremental^v )を追加した。 ◎ Added incremental font technology to supports
- ~WG解決により、 ~oblique~font照合~用の~critical斜度を `20deg^v から `11deg^v に抑制した。 ◎ Reduced the critical angle for oblique font matching from 20deg to 11deg, per WG resolution
- `font-feature-values$at 内に `~font-displayFV$d を許容した (注釈文は,それを許容していたが、 文法は,そうでなかった)。 ◎ Allowed font-display in @font-feature-values (the prose allowed it but the grammar did not)
- `2020年 11月 17日 作業草案@~TR/2020/WD-css-fonts-4-20201117/$ からの変更点 ◎ 18.3. Changes from the 17 November 2020 Working Draft
- ~Graphite `GRAPHITE$r への参照を追加した。 ◎ Added Graphite reference
- ~font特能~技術( `font-features-tech$t )用の~keyword[ `opentype^v, `aat^v, `graphite^v ]を追加した。 【加えて、順に, `features-opentype^v, `features-aat^v, `features-graphite^v に改称された。】 ◎ Added font feature technology keywords opentype, aat, and graphite
- 可変~fontは,まだ新たな試験的なものとしていた臆病な言い回しを除去した。 ◎ Removed scary wording about variable fonts being new and experimental
- `§ 序論@#introduction$ 内の`~level 3$ への参照は参考とした。 【!~markupには表現されない】 ◎ Reference to CSS Fonts 3 in introduction is informative
- 【`COLR^v を】 `COLRv1^v と `COLRv0^v に分けた。 【加えて、順に, `color-COLRv1^v, `color-COLRv0^v に改称された。】 ◎ Differentiated COLRv1 from COLRv0
- きちんと設計された~icon~fontと不良に設計されたそれについて、 ~Unicode符号位置の用語で明確化した。 ◎ Clarify well-designed vs badly-designed icon fonts in terms of Unicode codepoints
- `§ ~accessibilityの考慮点@#a11y$ を追加した。 ◎ Added Accessibility Considerations section
- `font-optical-sizing$p は `font-size-adjust$p と相互作用することを明確化した。 ◎ Clarified that font-optical-sizing interacts with font-size-adjust
- 語 "`user agent^en" は、 一貫して小文字のみ【!capitalization】を利用するようにした。 【この訳では、常に “~UA” 】 ◎ Used consistent capitalization for "user agent"
- `font-stretch$p は~keywordではなく[ 実数/百分率 ]に直列化されるベキであることを明確化した。 ◎ Clarified that font-stretch should serialize to a number/percentage, not a keyword
- `optional$v ~fontを読込むために示唆される経験則を与えた。 ◎ Suggested heuristics for loading optional fonts
- 文法~内で繰返された~itemについて明確化した。 ◎ Clarified repeated items in grammars
- 廃用にされた “`potentially CORS-enabled fetch^en” を `FETCH$r への参照に置換した。 ◎ Replaced obsolete “potentially CORS-enabled fetch” with reference to Fetch
- `font-synthesis$p に欠落った `small-caps^v 値を追加した。 ◎ Added missing small-caps value to font-synthesis
- どの~propが~textに適用されるかについて明示的に与えた。 ◎ Be explicit about which properties apply to text
- ~linkを更新した。 ◎ Updated links
- 誤記, 構文~errorを修正した。 ◎ Fixed typos, syntax errors
- `2019年 11月 13日 作業草案@~TR/2019/WD-css-fonts-4-20191113/$ からの変更点 ◎ 18.4. Changes from the 13 November 2019 Working Draft
- 各種~fontによる~Unicode~supportを成す,~JSを用いない探査-法がアリであることを明確化した。 ◎ Clarified that JS-free probing of Unicode support of fonts is possible
- ~OpenType特能~tagは 4 文字であり, 4 文字に満たない分は~spaceが~~付加されることを明確化した。 ◎ Clarified OpenType feature tags are 4 characters, trailing-space padded
- ~font計量を上書きする各種~記述子を追加した。 ◎ Added font metric override descriptors
- ~font特能への~linkは既定で可能化されることを追加した。 ◎ Added link to font features enabled by default
- ~Web~IDL仕様に倣った( `void^c ではなく `undefined^c ) ◎ Aligned with ebIDL specification (undefined, not void)
- 非同一-生成元の例を正した — `https^c ではなく `http^c を利用するよう。 ◎ Corrected cross-origin example to use http not https
- ~OpenTypeに従って, `font-range^en 【?】は 1 〜 999 になることを明確化した。 ◎ Clarified that font-range, per OpenType, is between 1 and 999
- (~privacy) `unicode-range$d の悪用-について言及した。 ◎ (Privacy) added mention of unicode-range privacy exploit
- `kern^tag, `vkrn^tag どちらを利用するか明確化した。 ◎ Clarified use of kern vs. vkrn
- ~font~collectionの形式と例を追加した。 ◎ Added font collection format, example of Font Collection
- 色~fontに `CBDT^v を追加した。 【加えて、 `color-CBDT^v に改称された。】 ◎ Added CBDT color fonts
- § ~securityと~privacyを追加した。 ◎ Added Security & Privacy appendix
- ~palette例を追加した — 暗な~modeも含め。 ◎ Added palette examples, including dark mode
- ~palette~entryが属する色空間を明確化した。 ◎ Clarified colorspace of font palette entries
- 非同一-生成元への~font漏洩eは避けることを絶対要件( `RFC2119$r の `MUST^en )にした。 【!amde = made】 ◎ Avoiding cross-site font leakage amde RFC-2119 MUST
- 単彩色な~fallback色~fontを明確化した。 ◎ Clarified monochromatic fallback on color fonts
- 残っていた[ `min-font-size^css / `max-font-size^css ]への参照を除去した。 ◎ Removed remaining references to min-font-size, max-font-size
- 色~名は~ASCII文字大小無視であることを明確化した。 ◎ Clarified that color names are ASCII case insensitive
- `font-palette$p に値 `none^v を追加した。 ◎ Added the value none to font-palette
- [ `font-palette$p / `font-palette-values$at ]は、 ~risk下にあるものとした。 ◎ Marked font-palette and @font-palette-values as at-risk
- すべての仕様にまたがる値~定義~参照に倣うようにした。 ◎ Aligned value definition reference across all specs.
- `optional$v の挙動を更に明確化した。 ◎ Further clarified the behavior of optional
- 汎用~font族すべてを~fontに対応付ける必要はないことを明確化した。 ◎ Clarified that not all generic font families have to map to a font
- 汎用~font族の序論を再編成した。 ◎ Reorganized generic font family introduction
- 汎用~font族に対する動機を追加した。 ◎ Added some motivation for generic font families
- 汎用~絵文字~族と文字~supportについての注記を追加した。 ◎ Added a note about the generic emoji family and character support
- ~italicは~oblique用の~fallbackではないことを明確化した。 ◎ Clarified that italic is not a fallback for oblique
- 大き過ぎる~x-高さに対する警告を追加した。 ◎ Added warning on too large x-height
- `font-size-adjust$p 用に もっと良い例を追加した。 ◎ Added better example for font-size-adjust
- `ui-sans-serif$v 用の例を追加した。 ◎ Added example for ui-sans-serif
- 諸々の[ 編集上の改善/ 誤記~修正s/ ~link~修正s/ ~markupの改善 ] ◎ Miscellaneous editorial improvements, typo fixes, broken link fixes and markup improvements
- `2018年 9月 20日 作業草案@~TR/2018/WD-css-fonts-4-20180920/$ からの変更点 ◎ 18.5. Changes from the 20 September 2018 Working Draft
- [ 標準~font族~用に,~platformに特有な名前を実装する ]よう,~UAに奨励する注記を追加した。 ◎ Add note encouraging UAs to also implement platform-specific names for standard font families
- 次に挙げる汎用~font族を追加した ⇒ `ui-serif$v, `ui-sans-serif$v, `ui-monospace$v, `ui-rounded$v ◎ Add ui-serif, ui-sans-serif, ui-monospace, and ui-rounded generic font families
- ~WG解決により, `font-face$at 用の `font-variant^d 記述子を除去した。 ◎ Remove font-variant @font-face descriptor per WG resolution
- ~WG解決により,[ `font-min-size^p, `font-max-size^p ]~propを除去した。 ◎ Remove font-min-size and font-max-size per WG resolution
- `font-style$p 用の値 `normal^v は、 `oblique 0deg^v として~animateすることを明確化した。 ◎ Clarify that font-style normal animates as oblique 0deg
- 複合的な~font用に不完全な色~paletteを指定するのは,なぜ不良な案なのかについて、 明確化した。 ◎ Clarify why specifying incomplete color palettes for compound fonts is a bad idea
- 各~interfaceに明示的な [Exposed=Window] を追加した。 ◎ Add explicit [Exposed=Window] on interfaces
- 正しい用語[ `Unicode emoji presentation sequence^en, `Emoji Presentation Participating Code Points^en 【~Unicode絵文字~呈示~列, `呈示に関与する絵文字~符号位置$】 ]を利用するようにした ◎ Use correct terms, Unicode emoji presentation sequence and Emoji Presentation Participating Code Points
- `font-variation-settings$p 内の各~文字列は 1 個の実数と~pairにされることを明確化した。 ◎ Clarify that each string in font-variation-settings is paired with a single number
- `font-variant-numeric$p ~propの定義から,~~余計な `titling-caps^v を除去した。 ◎ Remove stray titling-caps from definition of font-variant-numeric property
- 色~fontの序論をより良くした。 ◎ Better introduction to color fonts
- 複数色による色~fontの基本的な例を追加した。 ◎ Add basic multicolor example
- ~font異体~設定群は、 ~fallback~fontの~font選定には影響しないことを明確化した。 ◎ Clarify that font variation settings do no affect font selection of fallback fonts
- `slnt^tag 軸の方向に関して,~italic斜度を明確化した。 ◎ Clarify italic angle wrt direction of slnt axis
- 汎用~font族[ `emoji^v【今や廃された】, `math$v ]の定義をより良くした ◎ Better define emoji and math generic font families
- `font-size$p に `xxx-large$v を追加した。 ◎ Add font-size: xxx-large
- CSS Values による `ex^u 単位の定義へ~linkした。 ◎ Link to CSS Values definition of ex units
- `font-feature-settings$p の科学用下付数字の例を追加した。 ◎ Add scientific inferiors example of font-feature-settings
- `letter-spacing$p は、 任意選択~合字【随意~合字】を不能化することを明確化した。 ◎ Clarify that letter-spacing disables optional ligatures
- 次に挙げる~propを `~level 3$ から取り込んだ ⇒# `font-feature-settings$p, `font-variant$p 略式, `font-variant-east-asian$p, `font-variant-numeric$p, `font-variant-caps$p, `font-variant-position$p, `font-variant-ligatures$p, `font-kerning$p ◎ Port font-feature-settings property from CSS Fonts 3 ◎ Port font-variant shorthand property from CSS Fonts 3 ◎ Port font-variant-east-asian property from CSS Fonts 3 ◎ Port font-variant-numeric property from CSS Fonts 3 ◎ Port font-variant-caps property from CSS Fonts 3 ◎ Port font-variant-position property from CSS Fonts 3 ◎ Port font-variant-ligatures property from CSS Fonts 3 ◎ Port font-kerning property from CSS Fonts 3
- `CSSFontPaletteValuesRule$I ~interfaceの~IDLを更新した。 ◎ Update IDL of The CSSFontPaletteValuesRule interface
- 各種`~font~prop記述子@#font-prop-desc$の`初期~値$を `normal^v から `auto^v に変更した。 ◎ Changed initial value of font property descriptors from normal to auto
- § ~font照合における `font-stretch$p 用の構文を更新した。 ◎ Update syntax for font-stretch in font matching section
- ~font~style照合の例を更新した。 ◎ Update font style matching examples
- ~font~paletteの記述を明確化した。 ◎ Clarify description of font palettes
- `ch$u は最初に可用な~fontを利用するものとしていたのをやめた。 ◎ Stop claiming that ch uses the first available font
- 諸々の整形/ ~markupや~linkの修正-/ 済んだ課題の除去。 ◎ Assorted formatting and markup fixes, link fixes, removal of inline closed issues
- 規範的な参照文献の最新な~versionへ~linkした。 ◎ Linking to latest versions of normative references
- `2018年 4月 10日 作業草案@~TR/2018/WD-css-fonts-4-20180410/$ からの変更点 ◎ 18.6. Changes from the 10 April 2018 Working Draft
- `font-variant-emoji$p に `unicode^v 値を追加した。 ◎ Added unicode value to font-variant-emoji
- ~prop定義~表tから `media^en 欄を除去した。 ◎ Removed the media entry from property descriptions
- 将来の拡張能を得るため `font-synthesis$p を下位propに分けた。 ◎ Broke up font-synthesis into longhands, for future extensibility
- 色~palette用に `override-colors$d 記述子を追加した。 ◎ Added override-color descriptor for color palettes
- `font-variant-alternates$p 用に `feature-value-name$t を定義した。 ◎ Defined feature-value-name for font-variant-alternates
- `font-face$at 規則の `src$d 記述子の構文解析~規則を明確化した。 ◎ Clarified @font-face src parsing rules
- 可変~fontからの有名~instanceの利用を許容した。 ◎ Allow named instances from variable fonts to be used
- `§ ~platform~font~propから~CSS~propへの対応付け@#platform-props-to-css$ を`~level 3$ から取り込んだ。 ◎ Appendix A: Mapping platform font properties to CSS properties ported over from CSS Fonts 3
- `§ 文字の取扱いの課題@#char-handling-issues$ を`~level 3$ から取り込んだ。 ◎ Character handling issues ported over from CSS Fonts 3
- `§ ~clusterの照合-法$を `~level 3$ から取り込んだ。 ◎ Cluster matching ported over from CSS Fonts 3
- [ `font-weight$d / `font-style$d / `font-stretch$d ]記述子~用に新たな値 `auto^v を追加した。 ◎ Add new auto value for font-weight, font-style and font-stretch descriptors
- `font-display$d 記述子~値の名前を明確化した。 ◎ Clarified font-display descriptor value names
- 有名~palette~entryを~supportした。 ◎ Support named palette entries
- `Fang Song^F 汎用~族についての詳細。 ◎ More details on Fang Song generic family
- ~oblique~fontの既定の斜度を `14deg^v に変更した。 ◎ Changed default angle of oblique fonts to 14deg.
- `font-feature-values$at を `~level 3$ から取り込んだ。 ◎ font-feature-values ported over from CSS Fonts 3
- [ 未知/未~support ]の素片~識別子の取扱いを明確化した。 ◎ Clarified handling of unknown or unsupported fragment identifiers
- ~font~palette内の色~entryに対応する~indexは 0 から数えることを明確化した。 ◎ Clarified that color records in font palettes are zero-indexed
- 新たな汎用~font族を一貫して利用するようにした。 ◎ Consistently use the new generic font families
- 編集上の整理/ 例を明確化した/ ~markupを改善した / ~linkを修正した/ 最新な参照に更新した/ 等々… ◎ Editorial cleanup, clarifying examples, markup improvements, linkfixes, updating to latest references, and so on
- `2018年 9月 20日 CSS Fonts 3 勧告@~TR/2018/REC-css-fonts-3-20180920/$ からの変更点 ◎ 18.7. Changes from the 20 September 2018 CSS Fonts 3 Recommendation
- `~level 3$ から この~level 4 までの変更点を以下に要約する。 ◎ This summarizes the changes in CSS Fonts 4, compared to CSS Fonts 3.
- `font-face$at 用に `font-display$d 記述子を追加した。 ◎ Added font-display descriptor for @font-face
- `font-feature-values$at 規則を追加した。 ◎ Added @font-feature-values rule
- 次を含む,各種~font異体~propを追加した ⇒# `font-optical-sizing$p, `font-variation-settings$p ◎ Added font variation properties, including font-optical-sizing and font-variation-settings
- 色~font用の~supportを追加した。 ◎ Added color font support
- `font-variant-alternates$p 用に `feature-value-name$t を定義した ◎ Defined feature-value-name for font-variant-alternates
- 次に挙げる記述子~用の新たな値として `auto^v を追加した ⇒# `font-weight$d, `font-style$d, `font-stretch$d ◎ Added new auto value for font-weight, font-style and font-stretch descriptors
- 次に挙げる汎用~font族を追加した ⇒# `ui-serif$v, `ui-sans-serif$v, `ui-monospace$v, `ui-rounded$v ◎ Added ui-serif, ui-sans-serif, ui-monospace, and ui-rounded generic font families
- `font-size$p 用の値として `xxx-large$v を追加した。 ◎ Added font-size: xxx-large
- ~font計量を上書きする各種~記述子を追加した。 ◎ Added font metric override descriptors
- 汎用~font族の動機について追加した。 ◎ Added some motivation for generic font families
- ~font特能~技術( `font-features-tech$t )用の~keyword[ `opentype^v, `aat^v, `graphite^v ]を追加した。 ◎ Added font feature technology keywords opentype, aat, and graphite
- `font-size$p 用の値として `math$v を追加した。 ◎ Added math value to font-size