1
1
mirror of https://github.com/rsms/inter.git synced 2024-11-22 19:14:19 +03:00
This commit is contained in:
Rasmus Andersson 2020-02-08 17:05:32 -08:00
parent 93a2076a34
commit e9ff19a95a
123 changed files with 1563 additions and 767 deletions

View File

@ -1,11 +1,11 @@
- title: Contextual alternates
tag: calt
description:
This feature is enabled by default and causes certain characters to adjust
This feature is usually enabled by default and causes certain characters to adjust
themselves or be replaced depending on the surrounding context.
footer:
There are many more contextual alternates.
samples:
- "3x9"
- "12:34, FEX"
- "4.2"
- "(SEMI)PERMANENT"
@ -15,26 +15,23 @@
- "M@N m@n"
- "Smile :-)"
- title: Standard ligatures
tag: liga
description:
Conversion of common sequences into higher-fidelity glyphs,
like arrows and enclosing graphemes.
samples:
- "3x9"
- "-> --> --->"
- "<- <-- <---"
- "<-> <-->"
- "=> ==> <=="
- "<=> <==>"
footer:
"In addition to standard ligatures, which are usually on by default but can be turned off,
Inter also comes with required/default ligatures as well,
like for instance specialized glyphs for enclosing combining characters like
e.g. U+0041 U+20DD => A\u20DD<br>
More examples:<br>
1\u20DD 2\u20DD 3\u20DD A\u20DD B\u20DD
C\u20DE #\u20DE !\u20DE ?\u20DE →\u20DE"
# - title: Arrows
# tag: calt
# description:
# Arrows are part of Contextual alternates.
# samples:
# - "-> --> --->"
# - "<- <-- <---"
# - "<-> <-->"
# - "=> ==> <=="
# - "<=> <==>"
# footer:
# "In addition to contextual alternates, Inter also provides some ligatures
# like for instance specialized glyphs for enclosing combining glyphs. Examples:<br>
# U+0041 U+20DD => A\u20DD<br>
# U+0023 U+20DE => #\u20DE<br>"
- title: Tabular numbers
tag: tnum
@ -51,6 +48,7 @@
- "1.00, 9.44, 0.13&nbsp;"
- "0.00, 1.13, ~7.12&nbsp;"
- title: Fractions
tag: frac
description:
@ -65,27 +63,6 @@
- "18/29&nbsp; 16/5"
- "1337/591038"
- title: Numerators
tag: numr
samples:
- "Hello 0123"
- title: Denominators
tag: dnom
samples:
- "Hello 0123"
- title: Superscript
tag: sups
samples:
- "X0123 (+)-[=]"
- "Xabcdefghijklmnopqrstuvwxyz"
- title: Subscript
tag: subs
samples:
- "H0123 (+)-[=]"
- "Xabcdefghijklmnopqrstuvwxyz"
- title: Case alternates
tag: case
@ -98,6 +75,55 @@
- "*+÷±×=≠≈•~&lt;&gt;≤≥‹"
- "›→‹ ›←‹ ›⟶‹ ›⟵‹ - ›—‹ :"
- title: Ligatures
tag: rlig
description:
Inter provides just a few ligatures for combining characters for which layout
support in various apps is spotty.
samples:
- "A\u20DD"
- "#\u20DE"
footer:
This means that for instance enclosed glyphs
works everywhere, not just in apps with correct combining character logic.
- title: Discretionary ligatures
tag: dlig
description:
Alternate style for a few chacters. This feature is usually disabled by default.
samples:
- "¡¿What?!"
- "¿¡What!?"
- title: Numerators
tag: numr
samples:
- "Hello 0123"
- title: Denominators
tag: dnom
samples:
- "Hello 0123"
- title: Superscript
tag: sups
samples:
- "X0123 (+)-[=]"
- "Xabcdefghijklmnopqrstuvwxyz"
- title: Subscript
tag: subs
samples:
- "H0123 (+)-[=]"
- "Xabcdefghijklmnopqrstuvwxyz"
- title: "Stylistic set 1: Alternate digits"
tag: ss01
description:
@ -108,6 +134,7 @@
- "1234567890"
- "13469"
- title: "Stylistic set 2: Disambiguation"
tag: ss02
description:
@ -118,6 +145,7 @@
- "Illegal"
- "βeta ßeta Busineß"
- title: "Stylistic set 3: r curves into round neighbors"
tag: ss03
description:
@ -128,20 +156,13 @@
- "ird"
- "Monroe"
- title: Discretionary ligatures
tag: dlig
description:
Alternate glyph set that increases visual difference between
similar-looking characters.
samples:
- "¡¿What?!"
- "¿¡What!?"
- title: Slashed zero
tag: zero
samples:
- "O0123"
- title: Character variants
tag: cvXX
description: "Allows cherry-picking alternate characters."

View File

@ -1,18 +1,18 @@
[
{
"head": {
"checkSumAdjustment": 1950728404,
"created": 3654646194,
"checkSumAdjustment": 3106795359,
"created": 3664050238,
"flags": 27,
"fontDirectionHint": 2,
"fontRevision": 3.011,
"fontRevision": 3.012,
"glyphDataFormat": 0,
"indexToLocFormat": 0,
"lowestRecPPEM": 6,
"macStyle": [],
"macStyle_raw": 0,
"magicNumber": 1594834165,
"modified": 3654646215,
"modified": 3664050265,
"tableVersion": 1.0,
"unitsPerEm": 2816,
"xMax": 7274,
@ -35,7 +35,7 @@
"tableVersion": 65536,
"xMaxExtent": 7274
},
"id": "Inter-Regular:2019:f93a4a705",
"id": "Inter-Regular:2020:f93a4a705",
"name": "Inter-Regular",
"names": {
"#256": "Alternate digits",
@ -52,20 +52,20 @@
"#267": "Flat top three",
"#268": "Captital G with spur",
"#269": "Single storey a",
"copyright": "Copyright 2019 The Inter project authors",
"copyright": "Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter)",
"designer": "Rasmus Andersson",
"designerURL": "https://rsms.me/",
"familyName": "Inter",
"fontId": "Inter-Regular:2019:f93a4a705",
"fontId": "Inter-Regular:2020:f93a4a705",
"fullName": "Inter Regular",
"licenseDescription": "OFL 1.1 (SIL Open Font License, Version 1.1)",
"licenseDescription": "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL",
"licenseURL": "http://scripts.sil.org/OFL",
"manufacturerName": "rsms",
"postscriptName": "Inter-Regular",
"subfamilyName": "Regular",
"trademark": "Inter UI and Inter is a trademark of rsms.",
"vendorURL": "https://rsms.me/",
"version": "Version 3.011;git-f93a4a705"
"version": "Version 3.012;git-f93a4a705"
},
"os/2": {
"achVendID": "RSMS",
@ -132,6 +132,6 @@
"underlinePosition": -464,
"underlineThickness": 192
},
"version": "3.11"
"version": "3.12"
}
]

153
docs/_data/languages.yml Normal file
View File

@ -0,0 +1,153 @@
- category: Cyrillic
languages:
- Azerbaijani
- Belarusian
- Bosnian
- Bulgarian
- Chechen
- Macedonian
- Ossetic
- Russian
- Sakha
- Serbian
- Ukrainian
- Uzbek
- category: Greek
languages:
- Greek
- category: Latin
languages:
- Afrikaans
- Aghem
- Akan
- Albanian
- Asturian
- Asu
- Bafia
- Basaa
- Basque
- Bemba
- Bena
- Breton
- Catalan
- Chiga
- Colognian
- Cornish
- Croatian
- Czech
- Danish
- Duala
- Dutch
- Embu
- English
- Esperanto
- Estonian
- Ewe
- Ewondo
- Faroese
- Filipino
- Finnish
- French
- Friulian
- Fulah
- Galician
- Ganda
- German
- Gusii
- Hawaiian
- Hungarian
- Icelandic
- Igbo
- Inari Sami
- Indonesian
- Irish
- Italian
- Jola-Fonyi
- Kabuverdianu
- Kabyle
- Kako
- Kalaallisut
- Kalenjin
- Kamba
- Kikuyu
- Kinyarwanda
- Koyra Chiini
- Koyraboro Senni
- Kwasio
- Lakota
- Langi
- Latvian
- Lingala
- Lithuanian
- Lower Sorbian
- Luba-Katanga
- Luo
- Luxembourgish
- Luyia
- Machame
- Makhuwa-Meetto
- Makonde
- Malagasy
- Maltese
- Manx
- Masai
- Meru
- Metaʼ
- Morisyen
- Mundang
- Nama
- Ngiemboon
- Ngomba
- North Ndebele
- Northern Sami
- Norwegian Bokmål
- Norwegian Nynorsk
- Nuer
- Nyankole
- Oromo
- Polish
- Portuguese
- Prussian
- Quechua
- Romanian
- Romansh
- Rombo
- Rundi
- Rwa
- Samburu
- Sango
- Sangu
- Scottish Gaelic
- Sena
- Serbian
- Shambala
- Shona
- Slovak
- Slovenian
- Soga
- Somali
- Spanish
- Swahili
- Swedish
- Swiss German
- Tachelhit
- Taita
- Tasawaq
- Teso
- Tongan
- Turkish
- Upper Sorbian
- Uzbek
- Vai
- Vietnamese
- Volapük
- Vunjo
- Walser
- Welsh
- Western Frisian
- Yangben
- Yoruba
- Zarma
- Zulu

View File

@ -0,0 +1,23 @@
{%
if site.safe == false %}{%
assign url_root = "/" %}{% else %}{%
assign url_root = "/inter/" %}{% endif
%}
<!-- style in res/base.css -->
<div class="charset-table">
{% for g in site.data.glyphinfo.glyphs %}
{% comment %}
Ignore empty glyphs and glyphs without unicode mapping.
{% endcomment %}
{% if g[1] == 0 and g[2] %}
<a title="/{{g[0]}} U+{{g[2]}}{%if g[3]%} ({{g[3]}}) {%endif%}"
data-glyphname="{{g[0]}}"
data-cp="{{g[2]}}"
data-ucdescr="{{g[3]}}"
href="{{url_root}}glyphs/?g={{g[0]}}"
>&#x{{g[2]}}</a>
{% endif %}
{% endfor %}
</div>

View File

@ -19,9 +19,9 @@ endfor
<div class="wrapper">
<div class="control popup">
<select data-binding="style">
<option value="thin">Thin (BETA)</option>
<option value="extra-light">Extra Light (BETA)</option>
<option value="light">Light (BETA)</option>
<option value="thin">Thin</option>
<option value="extra-light">Extra Light</option>
<option value="light">Light</option>
<option value="regular" default selected>Regular</option>
<option value="medium">Medium</option>
<option value="semi-bold">Semi Bold</option>
@ -29,9 +29,9 @@ endfor
<option value="extra-bold">Extra Bold</option>
<option value="black">Black</option>
<option disabled>————————————</option>
<option value="thin-italic">Thin Italic (BETA)</option>
<option value="extra-light-italic">Extra Light Italic (BETA)</option>
<option value="light-italic">Light Italic (BETA)</option>
<option value="thin-italic">Thin Italic</option>
<option value="extra-light-italic">Extra Light Italic</option>
<option value="light-italic">Light Italic</option>
<option value="italic">Italic</option>
<option value="medium-italic">Medium Italic</option>
<option value="semi-bold-italic">Semi Bold Italic</option>

View File

@ -5,5 +5,5 @@ assign url_root = "/" %}{% else %}{%
assign url_root = "/inter/" %}{% endif %}{%
assign font_v = site.data.fontinfo[0].version
%}<link rel="preload" href="{{url_root}}font-files/Inter-roman.var.woff2?v=3.11" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="{{url_root}}font-files/Inter-italic.var.woff2?v=3.11" as="font" type="font/woff2" crossorigin="anonymous">
%}<link rel="preload" href="{{url_root}}font-files/Inter-roman.var.woff2?v=3.12" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="{{url_root}}font-files/Inter-italic.var.woff2?v=3.12" as="font" type="font/woff2" crossorigin="anonymous">

View File

@ -85,9 +85,9 @@ endfor
<li class="nav-home"><a href="{{url_root}}">Inter</a></li>
<li class="nav-samples"><a href="{{url_root}}samples/" {% if page.url contains "/samples/" %}class="active"{% endif %}>Samples</a></li>
<li class="nav-glyphs"><a href="{{url_root}}glyphs/" {% if page.url contains "/glyphs/" %}class="active"{% endif %}>Glyphs</a></li>
<li class="nav-dynmetrics"><a href="{{url_root}}dynmetrics/" {% if page.url contains "/dynmetrics/" %}class="active"{% endif %}>Dynamic Metrics</a></li>
<li class="nav-dynmetrics"><a href="{{url_root}}dynmetrics/" {% if page.url contains "/dynmetrics/" %}class="active"{% endif %}>Metrics</a></li>
<li class="nav-lab"><a href="{{url_root}}lab/" {% if page.url contains "/lab/" %}class="active"{% endif %}>Lab</a></li>
<li class="nav-source"><a href="https://github.com/rsms/inter/">Source</a></li>
<!-- <li class="nav-source"><a href="https://github.com/rsms/inter/">Source</a></li> -->
<li class="nav-download"><a href="{{ download_url }}">Download &darr;</a></li>
</ul>
</div>

View File

@ -75,28 +75,28 @@ endfor
</div>
<div class="sidebar controls">
<div class="control">
<img title="Style" class="icon" src="icons/style.svg">
<select data-binding="style">
<option value="thin">Thin (BETA)</option>
<option value="thin-italic">Thin Italic (BETA)</option>
<option value="extra-light">Extra Ligh (BETA)</option>
<option value="extra-light-italic">Extra Light Italic (BETA)</option>
<option value="light">Light (BETA)</option>
<option value="light-italic">Light Italic (BETA)</option>
<option disabled>————————————</option>
<option value="thin">Thin</option>
<option value="extra-light">Extra Ligh</option>
<option value="light">Light</option>
<option value="regular" default selected>Regular</option>
<option value="italic">Italic</option>
<option value="medium">Medium</option>
<option value="medium-italic">Medium Italic</option>
<option value="semi-bold">Semi Bold</option>
<option value="semi-bold-italic">Semi Bold Italic</option>
<option value="bold">Bold</option>
<option value="bold-italic">Bold Italic</option>
<option value="extra-bold">Extra Bold</option>
<option value="extra-bold-italic">Extra Bold Italic</option>
<option value="black">Black</option>
<option disabled>————————————</option>
<option value="thin-italic">Thin Italic</option>
<option value="extra-light-italic">Extra Light Italic</option>
<option value="light-italic">Light Italic</option>
<option value="italic">Italic</option>
<option value="medium-italic">Medium Italic</option>
<option value="semi-bold-italic">Semi Bold Italic</option>
<option value="bold-italic">Bold Italic</option>
<option value="extra-bold-italic">Extra Bold Italic</option>
<option value="black-italic">Black Italic</option>
</select>
</div>
@ -128,9 +128,9 @@ endfor
<input type="range" min="-1" max="0" step="0.01" data-binding="var-c">
<input type="number" min="-1" max="0" step="0.001" data-binding="var-c">
</div>
<hr>
<div class="control">
<label title="Number of ideal matches">ni</label>
<input title="Number of ideal matches" type="number" readonly data-binding="ideal-count">
@ -519,7 +519,7 @@ function updateIdealMatches() {
})
distance = distance / ndistances
bindings.setValue('ideal-distance', distance.toFixed(6))
bindings.setValue('ideal-count', idealCount)
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -10,17 +10,25 @@ body.iframe {
padding:20px 10px;
}
/*body .charset-table { margin-bottom: 3rem; }*/
body.single .row.charset { display: none; }
body .row.intro { display: none; }
body.single .row.intro { display: flex; }
#glyphs {
display: flex;
display: none;
flex-wrap: wrap;
padding-left: 6px;
overflow: hidden;
width:200%;
box-sizing: border-box;
transform-origin: 0 0;
transform: scale(0.5);
/*transform: scale(0.5);*/
transform: scale(1);
justify-content: center;
transition: transform 50ms ease-out;
/*transition: transform 50ms ease-out;*/
margin-bottom: 0px;
}
body.single #glyphs {
justify-content: flex-start;
@ -28,6 +36,7 @@ body.single #glyphs {
margin:0 auto;
padding-left: 0;
overflow: visible;
display: flex;
}
.glyph {
height: 346px;
@ -43,24 +52,21 @@ body.single #glyphs {
text-shadow: none;
}
.glyph .line {
background: rgba(0,0,0,.1);
background: rgba(0,0,0,0.05);
position: absolute;
left:0; right:0;
height: 1px;
z-index:0;
visibility: hidden;
}
.glyph .line.baseline {
background: rgba(0,90,230,.6);
bottom: 64px;
}
.glyph .line.x-height {
background: rgba(230,60,10,.6);
top: 128px;
}
.glyph .line.cap-height {
background: rgba(60,130,20,.6);
top: 76px;
.glyph .line.baseline { bottom: 64px; visibility: visible; }
.glyph .line.x-height { top: 128px; }
.glyph .line.cap-height { top: 76px; }
.glyph:hover .line.baseline { background: rgba(0,90,230,.6); }
.glyph:hover .line.x-height { background: rgba(230,60,10,.6); }
.glyph:hover .line.cap-height { background: rgba(60,130,20,.6); }
.glyph:hover .line {
visibility: visible;
}
.glyph .names {
position: absolute;
@ -82,16 +88,14 @@ body.single #glyphs {
box-sizing: border-box;
position: relative;
width: 1px;
box-shadow: -1px 0 0 0 rgba(0,0,0,0.05), 1px 0 0 0 rgba(0,0,0,0.05);
}
.glyph.zero-width .advance {
background: transparent;
border-left: 1px dashed transparent;
}
.glyph:hover .line {
visibility: visible;
}
.glyph:hover .advance {
background: rgba(0,90,200,0.1);
box-shadow: -1px 0 0 0 rgba(0,0,0,0.15), 1px 0 0 0 rgba(0,0,0,0.15);
}
.glyph.zero-width:hover .advance {
border-color: #aaa;
@ -111,10 +115,15 @@ body.single #glyphs {
body.single .glyph svg {
overflow: visible;
}
.glyph .advancez {
/*.glyph .advance {
display: block;
background: salmon;
z-index:0;
}*/
.glyph.stroke svg path {
stroke-width: 8px;
stroke: black;
fill: none;
}
@ -164,6 +173,39 @@ body.single .intro p {
display: none;
}
body.single .row.styles { display: flex; }
body .row.styles { display: none; }
#style-spectrum {
list-style:none;
/*display: flex;*/
/*flex-wrap: wrap;*/
margin-left:0;
}
#style-spectrum > div {
--size: 5rem;
font-family: "Inter var experimental";
font-size: var(--size);
line-height: 1rem;
display:inline-flex;
align-items: center;
justify-content: center;
min-height: calc(var(--size) * 1.25);
min-width: calc(var(--size) * 1.1);
margin-right:0.1rem;
text-align: center;
cursor: default;
}
#style-spectrum.xl > div {
/* e.g. P.circled */
--size: 4rem;
min-height: calc(var(--size) * 1.7);
min-width: calc(var(--size) * 1.5);
}
.row.kerning {
display: none;
}

View File

@ -58,7 +58,7 @@ function initMetrics(data) {
// We expand the glyph IDs to glyph names here.
var nameIds = data.nameids
// console.log(data)
var metrics = {}
var metrics0 = data.metrics
Object.keys(metrics0).forEach(function (id) {
@ -87,7 +87,7 @@ function initMetrics(data) {
console.error('nameIds missing', t[1])
}
var kerningValue = t[2]
var lm = kerningLeft[leftName]
if (!lm) {
kerningLeft[leftName] = lm = {}
@ -131,7 +131,7 @@ fetchAll(render)
var styleSheet = document.styleSheets[document.styleSheets.length-1]
var glyphRule, lineRule, zeroWidthAdvRule
var currentScale = 0
var currentScale = 1
var defaultSingleScale = 1
var currentSingleScale = 1
var defaultGridScale = 0.4
@ -149,60 +149,7 @@ function updateLayoutAfterChanges() {
}
}
function setScale(scale) {
if (queryString.iframe !== undefined) {
scale = 0.11
} else if (queryString.g) {
scale = Math.min(Math.max(1, scale), 3)
} else {
scale = Math.min(Math.max(0.05, scale), 3)
}
if (currentScale == scale) {
return
}
currentScale = scale
if (queryString.g) {
currentSingleScale = scale
} else {
currentGridScale = scale
}
var hairline = Math.ceil(1 / window.devicePixelRatio / scale)
var spacing = Math.ceil(6 / scale)
var s = glyphs.style
if (queryString.g || queryString.iframe !== undefined) {
s.paddingLeft = null
} else {
s.paddingLeft = spacing + 'px'
}
s.width = (100 / scale) + '%'
s.transform = 'scale(' + scale + ')'
if (!glyphRule) {
glyphRule = styleSheet.cssRules[styleSheet.insertRule('#glyphs .glyph {}', styleSheet.cssRules.length)]
lineRule = styleSheet.cssRules[styleSheet.insertRule('#glyphs .glyph .line {}', styleSheet.cssRules.length)]
zeroWidthAdvRule = styleSheet.cssRules[styleSheet.insertRule('#glyphs .glyph.zero-width .advance {}', styleSheet.cssRules.length)]
}
if (queryString.g) {
glyphRule.style.marginRight = null
glyphRule.style.marginBottom = null
} else {
glyphRule.style.marginRight = Math.ceil(6 / scale) + 'px';
glyphRule.style.marginBottom = Math.ceil(6 / scale) + 'px';
if (queryString.iframe !== undefined) {
glyphRule.style.marginBottom = Math.ceil(16 / scale) + 'px';
}
}
lineRule.style.height = hairline + 'px'
zeroWidthAdvRule.style.borderWidth = (hairline) + 'px'
updateLayoutAfterChanges()
requestAnimationFrame(updateLayoutAfterChanges)
}
function encodeQueryString(q) {
@ -238,8 +185,8 @@ singleInfo.style.display = 'block'
function updateLocation() {
queryString = parseQueryString(location.search)
// console.log("updateLocation. queryString=", queryString)
// var glyphs = document.getElementById('glyphs')
var h1 = document.querySelector('h1')
if (queryString.g) {
if (!glyphNameEl) {
@ -252,26 +199,15 @@ function updateLocation() {
glyphNameEl.innerText = queryString.g
h1.appendChild(glyphNameEl)
document.body.classList.add('single')
setScale(currentSingleScale)
render()
} else {
document.title = baseTitle
if (glyphNameEl) {
h1.removeChild(glyphNameEl)
try { h1.removeChild(glyphNameEl) } catch(_) {}
}
document.body.classList.remove('single')
setScale(currentGridScale)
}
document.querySelector('.row.intro').style.display = (
queryString.iframe !== undefined ? 'none' : null
)
if (queryString.iframe !== undefined) {
document.body.classList.add('iframe')
} else {
document.body.classList.remove('iframe')
}
render()
// render()
}
window.onpopstate = function(ev) {
@ -299,24 +235,29 @@ wrapIntLink(document.querySelector('h1 > a'))
// keep refs to svgs so we don't have to refcount while using
var svgRepository = {}
;(function(){
var svgs = document.getElementById('svgs'), svg, name
for (var i = 0; i < svgs.children.length; ++i) {
svg = svgs.children[i]
name = svg.id.substr(4) // strip "svg-" prefix
svgRepository[name] = svg
var svgRepository = null
function getGlyphSVG(name) {
if (!svgRepository) {
svgRepository = {}
let svgs = document.getElementById('svgs')
for (let i = 0; i < svgs.children.length; ++i) {
let svg = svgs.children[i]
let name = svg.id.substr(4) // strip "svg-" prefix
svgRepository[name] = svg
}
}
})()
return svgRepository[name]
}
// Maps glyphname to glyphInfo. Only links to first found entry for a flyph.
var glyphInfoMap = {}
var needsUpdateGlyphInfoMap = true
function render() {
if (!glyphInfo) {
let glyphname = queryString.g
if (!glyphInfo || !glyphname) {
return
}
@ -326,7 +267,7 @@ function render() {
// glyphinfo.json:
// { "glyphs": [
// [name :string, isEmpty: 1|0, unicode? :string|null,
// [name :string, isEmpty: 1|0, unicode? :string|null,
// unicodeName? :string, color? :string|null],
// ["A", 0, 65, "LATIN CAPITAL LETTER A", "#dbeaf7"],
// ...
@ -339,57 +280,78 @@ function render() {
// ["Delta", 0, "U+8710", "INCREMENT"],
//
var singleGlyph = null
var lastGlyphEl = null
var lastGlyphName = ''
let g;
glyphInfo.forEach(function(g, i) {
var name = g[0]
if (needsUpdateGlyphInfoMap && !glyphInfoMap[name]) {
glyphInfoMap[name] = g
}
if (queryString.g && name != queryString.g) {
// ignore
return
}
var glyph = renderGlyphGraphicG(g, lastGlyphName, lastGlyphEl, singleGlyph)
if (glyph) {
rootEl.appendChild(glyph.element)
lastGlyphEl = glyph.element
lastGlyphName = name
if (queryString.g) {
singleGlyph = glyph
for (let i = 0; i < glyphInfo.length; i++) {
g = glyphInfo[i]
if (glyphname == g[0]) {
let glyph = renderGlyphGraphicG(g)
if (glyph) {
rootEl.appendChild(glyph.element)
renderSingleInfo(glyph)
rootEl.appendChild(singleInfo)
}
break
}
})
needsUpdateGlyphInfoMap = false
if (singleGlyph) {
renderSingleInfo(singleGlyph)
rootEl.appendChild(singleInfo)
}
renderStyleSpectrum(g)
rootEl.style.display = null
updateLayoutAfterChanges()
}
const stringFromCodePoint = String.fromCodePoint || function(c) {
return String.fromCharCode(c)
}
function glyphIsXL(g) {
let m
return glyphMetrics && (m = glyphMetrics.metrics[g[0]]) && m.advance > 3200
// console.log("glyphMetrics.metrics", glyphMetrics.metrics[g[0]])
// return g[0].indexOf(".circled") != -1
}
function renderStyleSpectrum(g) {
// console.log("renderStyleSpectrum", g)
let list = document.querySelector("#style-spectrum")
list.innerText = ""
let s = stringFromCodePoint(parseInt(g[2],16))
list.classList.toggle("xl", glyphIsXL(g))
for (let slant = 0; slant <= 10; slant += 2) {
for (let weight = 100; weight <= 900; weight += 100) {
let el = document.createElement("div")
el.innerText = s
el.title = `wght ${weight}, slnt -${slant}°`
el.style.fontWeight = weight
if (slant > 0) {
el.style.fontStyle = "italic"
}
el.style.webkitFontVariationSettings = el.style.fontVariationSettings =
`'wght' ${weight}, 'slnt' -${slant}`
list.appendChild(el)
}
list.appendChild(document.createElement("br"))
}
}
function renderGlyphGraphic(glyphName) {
var g = glyphInfoMap[glyphName]
return g ? renderGlyphGraphicG(g) : null
}
function renderGlyphGraphicG(g, lastGlyphName, lastGlyphEl, singleGlyph) {
function renderGlyphGraphicG(g /*, lastGlyphName, lastGlyphEl, singleGlyph*/) {
// let [name, isEmpty, uc, ucName, color] = g
let name = g[0], /*isEmpty = g[1],*/ uc = g[2], ucName = g[3], color = g[4]
var names, glyph
var svg = svgRepository[name]
var svg = getGlyphSVG(name)
if (!svg) {
// ignore
@ -416,38 +378,38 @@ function renderGlyphGraphicG(g, lastGlyphName, lastGlyphEl, singleGlyph) {
element: null,
}
if (name == lastGlyphName) {
// additional Unicode code point for same glyph
glyph = lastGlyphEl
names = glyph.querySelector('.names')
names.innerText += ','
if (info.unicode) {
var ucid = ' U+' + info.unicode
names.innerText += ' U+' + info.unicode
if (!queryString.g) {
glyph.title += ucid
}
}
if (info.unicodeName) {
names.innerText += ' ' + info.unicodeName
if (!queryString.g) {
glyph.title += ' (' + info.unicodeName + ')'
}
}
// if (name == lastGlyphName) {
// // additional Unicode code point for same glyph
// glyph = lastGlyphEl
// names = glyph.querySelector('.names')
// names.innerText += ','
// if (info.unicode) {
// var ucid = ' U+' + info.unicode
// names.innerText += ' U+' + info.unicode
// if (!queryString.g) {
// glyph.title += ucid
// }
// }
// if (info.unicodeName) {
// names.innerText += ' ' + info.unicodeName
// if (!queryString.g) {
// glyph.title += ' (' + info.unicodeName + ')'
// }
// }
if (queryString.g) {
if (singleGlyph) {
if (!singleGlyph.alternates) {
singleGlyph.alternates = []
}
singleGlyph.alternates.push(info)
} else {
throw new Error('alternate glyph UC, but appears first in glyphinfo data')
}
}
// if (queryString.g) {
// if (singleGlyph) {
// if (!singleGlyph.alternates) {
// singleGlyph.alternates = []
// }
// singleGlyph.alternates.push(info)
// } else {
// throw new Error('alternate glyph UC, but appears first in glyphinfo data')
// }
// }
return
}
// return
// }
// console.log('svg for', name, svg.width.baseVal.value, '->', svg, '\n', info)
@ -580,7 +542,7 @@ function renderSingleInfo(g) {
colorMark.classList.add('none')
}
var svg = svgRepository[g.name]
var svg = getGlyphSVG(g.name)
var svgFile = e.querySelector('.svgFile')
svgFile.download = g.name + '.svg'
svgFile.href = getSvgDataURI(svg)
@ -613,29 +575,29 @@ function selectKerningPair(id, directly) {
// deselect existing
eachElement('.kernpair.selected', function(kernpair) {
eachElement(kernpair, '.g', function (glyph) {
var svgURI = getSvgDataURI(svgRepository[glyph.dataset.name])
var svgURI = getSvgDataURI(getGlyphSVG(glyph.dataset.name))
glyph.style.backgroundImage = "url('" + svgURI + "')"
})
kernpair.classList.remove('selected')
})
var el = document.getElementById(id)
if (!el) {
history.replaceState({}, '', location.search)
return
}
el.classList.add('selected')
eachElement(el, '.g', function (glyph) {
var svgURI = getSvgDataURI(svgRepository[glyph.dataset.name], 'white')
var svgURI = getSvgDataURI(getGlyphSVG(glyph.dataset.name), 'white')
glyph.style.backgroundImage = "url('" + svgURI + "')"
})
if (!directly) {
el.scrollIntoViewIfNeeded()
}
history.replaceState({}, '', location.search + '#' + id)
}
@ -645,7 +607,7 @@ function renderSingleKerning(g) {
var kerningList = document.getElementById('kerning-list')
kerningList.style.display = 'none'
kerningList.innerText = ''
var thisSvg = svgRepository[g.name]
var thisSvg = getGlyphSVG(g.name)
var thisSvgURI = getSvgDataURI(thisSvg)
if (!thisSvg) {
@ -705,7 +667,7 @@ function renderSingleKerning(g) {
keys.forEach(function(glyphName) {
var kerningValue = kerningInfo[glyphName]
var otherSvg = svgRepository[glyphName]
var otherSvg = getGlyphSVG(glyphName)
var pair = document.createElement('a')
pair.className = 'kernpair ' + side
@ -782,7 +744,7 @@ function renderSingleKerning(g) {
pair.appendChild(link)
}
kerningList.appendChild(pair)
})
@ -824,19 +786,22 @@ function fmthex(cp, minWidth) {
}
document.addEventListener('keydown', function(ev) {
if (!queryString.g && (ev.metaKey || ev.ctrlKey)) {
if (ev.keyCode == 187 || ev.key == '+') {
setScale(parseFloat((currentScale + 0.1).toFixed(2)))
ev.preventDefault()
} else if (ev.keyCode == 189 || ev.key == '-') {
setScale(parseFloat((currentScale - 0.1).toFixed(2)))
ev.preventDefault()
} else if (ev.keyCode == 48 || ev.key == '0') {
setScale(queryString.g ? defaultSingleScale : defaultGridScale)
ev.preventDefault()
}
// hook up glyph table click handlers
function onClickGlyphInTable(ev) {
// let le = ev.target
document.location.href = "?g=" + encodeURI(ev.target.dataset.glyphname)
}
const activeListener = { capture: true }
let cv = document.querySelector('.charset-table').querySelectorAll('c')
for (let i = 0; i < cv.length; i++) {
let c = cv[i]
if (typeof PointerEvent == "undefined") {
c.addEventListener('mousedown', onClickGlyphInTable, activeListener)
} else {
c.addEventListener('pointerdown', onClickGlyphInTable, activeListener)
}
})
}
// document.location.href = "/glyphs/?g=" + encodeURI(ev.target.dataset.glyphname)
updateLocation()
updateLocation()

View File

@ -20,6 +20,43 @@ endfor
%}
<link rel="stylesheet" href="glyphs.css?v={{ glyphs_css_v }}">
<div class="row intro"><div>
<h1><a href="./">Glyphs</a></h1>
<p>
The complete set of glyphs. Tap a glyph to learn more about it.
</p>
</div></div>
<div class="row white charset">
{% include charset-table.html %}
</div>
<div id="glyphs" xstyle="width: 100%; transform: scale(1); margin-bottom: 0px;">
<div id="single-info" style="display:none">
<ul>
<li>Glyph name: <span class="name"></span></li>
<li class="unicode">Unicode: <a><span class="unicodeCodePoint num"></span> <span class="unicodeName"></span></a></li>
<li>Advance width: <span class="advanceWidth num"></span></li>
<li>Left margin: <span class="marginLeft num"></span></li>
<li>Right margin: <span class="marginRight num"></span></li>
<li>Color mark: <span class="colorMark">&nbsp;</span></li>
<li><a class="svgFile">&darr; Download SVG file</a></li>
</ul>
</div>
</div>
<div class="row styles"><div>
<h2 id="styles"><a href="#styles">Style spectrum</a></h2>
<div id="style-spectrum"></div>
</div></div>
<div class="row kerning white"><div>
<h2 id="kerning"><a href="#kerning">Kerning</a></h2>
<p>List of all kerning pairs involving this glyph.</p>
<div id="kerning-list"></div>
</div></div>
<div id="svgs">
<svg id="svg-A" xmlns="http://www.w3.org/2000/svg" width="176" height="350"><path d="M332 0 537.8932 -580H1366.1067L1572 0H1832L1080 -2048H824L72 0ZM615.9907 -800 944 -1724H960L1288.0093 -800Z" transform="translate(-7.2 281.6) scale(0.1)"/></svg>
<svg id="svg-A.circled" xmlns="http://www.w3.org/2000/svg" width="385" height="350"><path d="M1956 900C3019 900 3880 39 3880 -1024C3880 -2087 3019 -2948 1956 -2948C893 -2948 32 -2087 32 -1024C32 39 893 900 1956 900ZM1956 668C1020 668 264 -90 264 -1024C264 -1960 1020 -2716 1956 -2716C2892 -2716 3648 -1960 3648 -1024C3648 -90 2892 668 1956 668ZM1336 0 1541.8933 -580H2370.1067L2576 0H2836L2084 -2048H1828L1076 0ZM1619.9907 -800 1948 -1724H1964L2292.0093 -800Z" transform="translate(-3.2 281.6) scale(0.1)"/></svg>
@ -312,7 +349,7 @@ endfor
<svg id="svg-O.squared" xmlns="http://www.w3.org/2000/svg" width="372" height="350"><path d="M444 832H3468C3692 832 3812 712 3812 488V-2536C3812 -2760 3692 -2880 3468 -2880H444C220 -2880 100 -2760 100 -2536V488C100 712 220 832 444 832ZM410 600C364 600 332 568 332 522V-2570C332 -2616 364 -2648 410 -2648H3502C3548 -2648 3580 -2616 3580 -2570V522C3580 568 3548 600 3502 600ZM2860 -1024C2860 -1672 2480 -2076 1956 -2076C1432 -2076 1052 -1672 1052 -1024C1052 -376 1432 28 1956 28C2480 28 2860 -376 2860 -1024ZM2620 -1024C2620 -492 2328 -204 1956 -204C1584 -204 1292 -492 1292 -1024C1292 -1556 1584 -1844 1956 -1844C2328 -1844 2620 -1556 2620 -1024Z" transform="translate(-10 281.6) scale(0.1)"/></svg>
<svg id="svg-OE" xmlns="http://www.w3.org/2000/svg" width="234" height="350"><path d="M1072 0H2500V-220H1496V-916H2420V-1136H1496V-1828H2484V-2048H1072C532 -2048 168 -1640 168 -1024C168 -412 532 0 1072 0ZM1248 -220H1072C676 -220 408 -544 408 -1024C408 -1508 676 -1828 1072 -1828H1248Z" transform="translate(-16.8 281.6) scale(0.1)"/></svg>
<svg id="svg-OEsmallcap" xmlns="http://www.w3.org/2000/svg" width="209" height="350"><path d="M2316 -216H1508V-644H2196V-864H1508V-1272H2316V-1488H1420C1212 -1488 1072 -1516 908 -1516C492 -1516 232 -1188 232 -760V-728C232 -300 492 28 912 28C1072 28 1212 0 1420 0H2316ZM1232 -209.5281C1123.1572 -202.4198 1030.6034 -192 912 -192C640 -192 508 -440 508 -728V-760C508 -1044 640 -1296 908 -1296C1029.2979 -1296 1122.7825 -1285.5701 1232 -1278.4615Z" transform="translate(-23.2 281.6) scale(0.1)"/></svg>
<svg id="svg-OI" xmlns="http://www.w3.org/2000/svg" width="202" height="350"><path d="M2152 -2004H1940L1572.5629 -1854.7286C1466.0087 -1945.3953 1285.4972 -2032 976 -2032C488 -2032 136 -1676 136 -1072V-932C136 -308 492 28 976 28C1432 28 1608 -160 1680 -272V-1660.95L1876 -1732V572H2152ZM420 -1064V-1072C420 -1536 640 -1800 976 -1800C1264 -1800 1356 -1716 1408 -1656V-344C1356 -288 1264 -200 988 -200C612 -200 420 -492 420 -932Z" transform="translate(-13.6 281.6) scale(0.1)"/></svg>
<svg id="svg-OI" xmlns="http://www.w3.org/2000/svg" width="202" height="350"><path d="M2184 -2004H1972L1604.5629 -1854.7286C1498.0087 -1945.3953 1317.4972 -2032 1008 -2032C520 -2032 168 -1676 168 -1072V-932C168 -308 524 28 1008 28C1464 28 1640 -160 1712 -272V-1660.95L1908 -1732V572H2184ZM452 -1064V-1072C452 -1536 672 -1800 1008 -1800C1296 -1800 1388 -1716 1440 -1656V-344C1388 -288 1296 -200 1020 -200C644 -200 452 -492 452 -932Z" transform="translate(-16.8 281.6) scale(0.1)"/></svg>
<svg id="svg-Oacute" xmlns="http://www.w3.org/2000/svg" width="181" height="350"><path d="M1976 -1024C1976 -1672 1596 -2076 1072 -2076C548 -2076 168 -1672 168 -1024C168 -376 548 28 1072 28C1596 28 1976 -376 1976 -1024ZM1736 -1024C1736 -492 1444 -204 1072 -204C700 -204 408 -492 408 -1024C408 -1556 700 -1844 1072 -1844C1444 -1844 1736 -1556 1736 -1024ZM964 -2256H1172L1484 -2720H1208Z" transform="translate(-16.8 281.6) scale(0.1)"/></svg>
<svg id="svg-Obar" xmlns="http://www.w3.org/2000/svg" width="181" height="350"><path d="M1976 -1024C1976 -1672 1596 -2076 1072 -2076C548 -2076 168 -1672 168 -1024C168 -376 548 28 1072 28C1596 28 1976 -376 1976 -1024ZM1730.0221 -895.9299C1686.7052 -445.9359 1412.9548 -204 1072 -204C722.0664 -204 442.9234 -458.846 411.0381 -931.9128C670.3389 -1020.9531 864.553 -962.9511 1057.1342 -905.4368C1258.8988 -845.1799 1458.871 -785.4583 1730.0221 -895.9299ZM1732.713 -1119.7046C1472.2029 -1028.5635 1277.3884 -1086.7046 1083.8933 -1144.452C883.2284 -1204.3391 683.9821 -1263.8029 414.3531 -1155.905C458.8527 -1603.4385 732.015 -1844 1072 -1844C1421.0405 -1844 1699.6515 -1590.453 1732.713 -1119.7046Z" transform="translate(-16.8 281.6) scale(0.1)"/></svg>
<svg id="svg-Obarredcyrillic" xmlns="http://www.w3.org/2000/svg" width="181" height="350"><path d="M1976 -1024C1976 -1672 1596 -2076 1072 -2076C548 -2076 168 -1672 168 -1024C168 -376 548 28 1072 28C1596 28 1976 -376 1976 -1024ZM1730.0221 -895.9299C1686.7052 -445.9359 1412.9548 -204 1072 -204C722.0664 -204 442.9234 -458.846 411.0381 -931.9128C670.3389 -1020.9531 864.553 -962.9511 1057.1342 -905.4368C1258.8988 -845.1799 1458.871 -785.4583 1730.0221 -895.9299ZM1732.713 -1119.7046C1472.2029 -1028.5635 1277.3884 -1086.7046 1083.8933 -1144.452C883.2284 -1204.3391 683.9821 -1263.8029 414.3531 -1155.905C458.8527 -1603.4385 732.015 -1844 1072 -1844C1421.0405 -1844 1699.6515 -1590.453 1732.713 -1119.7046Z" transform="translate(-16.8 281.6) scale(0.1)"/></svg>
@ -508,12 +545,12 @@ endfor
<svg id="svg-Ydotbelow" xmlns="http://www.w3.org/2000/svg" width="173" height="350"><path d="M72 -2048 812 -844V0H1060V-844L1800 -2048H1516L948 -1092H924L356 -2048ZM936 508C1028 508 1104 436 1104 348C1104 260 1028 188 936 188C844 188 768 260 768 348C768 436 844 508 936 508Z" transform="translate(-7.2 281.6) scale(0.1)"/></svg>
<svg id="svg-Yerudieresiscyrillic" xmlns="http://www.w3.org/2000/svg" width="190" height="350"><path d="M496 -1188V-2048H248V0H1016C1456 0 1696 -248 1696 -604C1696 -960 1456 -1188 1016 -1188ZM496 -968H1016C1296 -968 1452 -804 1452 -608C1452 -408 1296 -216 1016 -216H496ZM2144 -2048H1896V0H2144ZM932 -2216C1024 -2216 1092 -2292 1092 -2376C1092 -2468 1024 -2536 932 -2536C848 -2536 772 -2468 772 -2376C772 -2292 848 -2216 932 -2216ZM1508 -2216C1600 -2216 1668 -2292 1668 -2376C1668 -2468 1600 -2536 1508 -2536C1424 -2536 1348 -2468 1348 -2376C1348 -2292 1424 -2216 1508 -2216Z" transform="translate(-24.8 281.6) scale(0.1)"/></svg>
<svg id="svg-Ygrave" xmlns="http://www.w3.org/2000/svg" width="173" height="350"><path d="M72 -2048 812 -844V0H1060V-844L1800 -2048H1516L948 -1092H924L356 -2048ZM836 -2256H1044L800 -2720H524Z" transform="translate(-7.2 281.6) scale(0.1)"/></svg>
<svg id="svg-Yhook" xmlns="http://www.w3.org/2000/svg" width="186" height="350"><path d="M1572 -1672 1612 -1740C1680 -1860 1772 -1872 1868 -1832L1932 -2032C1736 -2124 1532 -2064 1400 -1844L1356 -1772L951.8857 -1092H928.1147L360 -2048H76L816 -844V0H1064V-844Z" transform="translate(-7.6 281.6) scale(0.1)"/></svg>
<svg id="svg-Yhook" xmlns="http://www.w3.org/2000/svg" width="186" height="350"><path d="M76 -2048 816 -844V0H1064V-844L1612 -1740C1684 -1858 1772 -1872 1868 -1832L1932 -2032C1736 -2124 1532 -2066 1400 -1844L951.9171 -1092H928.1147L360 -2048Z" transform="translate(-7.6 281.6) scale(0.1)"/></svg>
<svg id="svg-Yhookabove" xmlns="http://www.w3.org/2000/svg" width="173" height="350"><path d="M72 -2048 812 -844V0H1060V-844L1800 -2048H1516L948 -1092H924L356 -2048ZM1040 -2256V-2356C1144 -2372 1248 -2428 1248 -2564C1248 -2724 1104 -2828 828 -2828L820 -2676C940 -2676 1036 -2644 1036 -2572C1036 -2508 984 -2480 844 -2472V-2256Z" transform="translate(-7.2 281.6) scale(0.1)"/></svg>
<svg id="svg-Ysmallcap" xmlns="http://www.w3.org/2000/svg" width="144" height="350"><path d="M348 -1488H40L620 -507.0604V0H892V-493.5302L1480 -1488H1172L761.473 -743.0922Z" transform="translate(-4 281.6) scale(0.1)"/></svg>
<svg id="svg-Ytilde" xmlns="http://www.w3.org/2000/svg" width="173" height="350"><path d="M72 -2048 812 -844V0H1060V-844L1800 -2048H1516L948 -1092H924L356 -2048ZM628 -2232C628 -2316 684 -2384 760 -2384C912 -2384 940 -2256 1124 -2256C1296 -2256 1428 -2388 1428 -2596L1248 -2612C1248 -2528 1188 -2460 1112 -2460C968 -2460 900 -2588 748 -2588C576 -2588 444 -2444 444 -2240Z" transform="translate(-7.2 281.6) scale(0.1)"/></svg>
<svg id="svg-Yusbigcyrillic" xmlns="http://www.w3.org/2000/svg" width="203" height="350"><path d="M416 0V-508C416 -808 548 -892 808 -892H989.4694L1008 -861.2203V0H1292V-834.6818L1326.3129 -892H1480C1744 -892 1872 -808 1872 -508V0H2160V-508C2160 -956 1904 -1124 1480 -1124H1465.1973L1992 -2004H320L849.7959 -1124H808C384 -1124 132 -956 132 -508V0ZM1149.1852 -1124 777.1852 -1772H1535.0562L1163.7303 -1124Z" transform="translate(-13.2 281.6) scale(0.1)"/></svg>
<svg id="svg-Yusbigiotifiedcyrillic" xmlns="http://www.w3.org/2000/svg" width="270" height="350"><path d="M1212 0V-508C1212 -808 1344 -892 1604 -892H1785.4694L1804 -861.2203V0H2088V-834.6818L2122.313 -892H2276C2540 -892 2668 -808 2668 -508V0H2956V-508C2956 -956 2700 -1124 2276 -1124H2261.1973L2788 -2004H1116L1645.7959 -1124H524V-904H1033.0851C964.4982 -808.438 928 -678.4958 928 -508V0ZM512 -2048H264V0H512ZM1945.1852 -1124 1573.1852 -1772H2331.0562L1959.7303 -1124Z" transform="translate(-26.4 281.6) scale(0.1)"/></svg>
<svg id="svg-Yusbigiotifiedcyrillic" xmlns="http://www.w3.org/2000/svg" width="270" height="350"><path d="M512 -2048H264V0H512V-904H1033.0851C964.4982 -808.438 928 -678.4958 928 -508V0H1212V-508C1212 -808 1344 -892 1604 -892H1785.4694L1804 -861.2203V0H2088V-834.6818L2122.313 -892H2276C2540 -892 2668 -808 2668 -508V0H2956V-508C2956 -956 2700 -1124 2276 -1124H2261.1973L2788 -2004H1116L1645.7959 -1124H512ZM1945.1852 -1124 1573.1852 -1772H2331.0562L1959.7303 -1124Z" transform="translate(-26.4 281.6) scale(0.1)"/></svg>
<svg id="svg-Yuslittlecyrillic" xmlns="http://www.w3.org/2000/svg" width="168" height="350"><path d="M1436 0H1728L1020 -2004H772L52 0H344L549.3333 -596H744V0H1020V-596H1234.6844ZM1154.9689 -832H630.6398L895.3946 -1600.4766Z" transform="translate(-5.2 281.6) scale(0.1)"/></svg>
<svg id="svg-Yuslittleiotifiedcyrillic" xmlns="http://www.w3.org/2000/svg" width="219" height="350"><path d="M2056 0H2348L1640 -2004H1392L970.9222 -832H412V-2048H164V0H412V-600H887.5688L672 0H964L1169.3334 -596H1364V0H1640V-596H1854.6844ZM1250.6398 -832 1515.3947 -1600.4766 1774.9689 -832Z" transform="translate(-16.4 281.6) scale(0.1)"/></svg>
<svg id="svg-Z" xmlns="http://www.w3.org/2000/svg" width="143" height="350"><path d="M180 0H1592V-220H476L1580 -1868V-2048H168V-1828H1284L180 -180Z" transform="translate(-16.8 281.6) scale(0.1)"/></svg>
@ -1565,7 +1602,7 @@ endfor
<svg id="svg-quoteleft" xmlns="http://www.w3.org/2000/svg" width="38" height="350"><path d="M136 -1408H360V-1592C360 -1740 432 -1868 516 -1988L388 -2092C228 -1964 136 -1752 136 -1588Z" transform="translate(-13.6 281.6) scale(0.1)"/></svg>
<svg id="svg-quotereversed" xmlns="http://www.w3.org/2000/svg" width="38" height="350"><path d="M196 -2048V-1868C196 -1704 288 -1492 448 -1364L576 -1468C492 -1588 420 -1716 420 -1864V-2048Z" transform="translate(-19.6 281.6) scale(0.1)"/></svg>
<svg id="svg-quoteright" xmlns="http://www.w3.org/2000/svg" width="38" height="350"><path d="M424 -2048H200V-1864C200 -1716 128 -1588 44 -1468L172 -1364C332 -1492 424 -1704 424 -1868Z" transform="translate(-4.4 281.6) scale(0.1)"/></svg>
<svg id="svg-quotesinglbase" xmlns="http://www.w3.org/2000/svg" width="38" height="350"><path d="M424 -256H200V-72C200 76 128 204 44 324L172 428C332 300 424 88 424 -76Z" transform="translate(-4.4 281.6) scale(0.1)"/></svg>
<svg id="svg-quotesinglbase" xmlns="http://www.w3.org/2000/svg" width="38" height="350"><path d="M420 -256H196V-72C196 76 124 204 40 324L168 428C328 300 420 88 420 -76Z" transform="translate(-4 281.6) scale(0.1)"/></svg>
<svg id="svg-quotesingle" xmlns="http://www.w3.org/2000/svg" width="22" height="350"><path d="M420 -2048H200V-1344H420Z" transform="translate(-20 281.6) scale(0.1)"/></svg>
<svg id="svg-r" xmlns="http://www.w3.org/2000/svg" width="77" height="350"><path d="M216 0H452V-972C452 -1180 616 -1332 840 -1332C903 -1332 968 -1320 984 -1316V-1556C957 -1558 895 -1560 860 -1560C676 -1560 516 -1456 460 -1304H444V-1536H216Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
<svg id="svg-r.1" xmlns="http://www.w3.org/2000/svg" width="84" height="350"><path d="M216 0H452V-972C452 -1179 616 -1332 840 -1332C899 -1332 943 -1321 976 -1304L1056 -1504C1008 -1538 945 -1560 860 -1560C674 -1560 515 -1456 460 -1304H444V-1536H216Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
@ -1752,7 +1789,7 @@ endfor
<svg id="svg-tesh" xmlns="http://www.w3.org/2000/svg" width="150" height="350"><path d="M320 -1844V-1488H52V-1284H320V-412C320 -140 412 28 684 28C755.4495 28 823.1599 19.2756 876 9.4796V100C876 276 784 372 624 372C576 372 524 368 488 360L476 580C532 592 592 600 648 600C960 600 1148 424 1148 100V-1640C1148 -1816 1244 -1912 1400 -1912C1448 -1912 1500 -1908 1536 -1900L1552 -2120C1492 -2132 1432 -2140 1376 -2140C1064 -2140 876 -1964 876 -1640V-1488H596V-1844ZM876 -1284V-215.7154C836.1365 -209.5252 790.3848 -204 752 -204C636 -204 596 -252 596 -412V-1284Z" transform="translate(-5.2 281.6) scale(0.1)"/></svg>
<svg id="svg-tetsecyrillic" xmlns="http://www.w3.org/2000/svg" width="176" height="350"><path d="M1104 -1536H128V-1316H496V0H1616V440H1860L1888 -220H1704V-1536H1468V-220H732V-1316H1104Z" transform="translate(-12.8 281.6) scale(0.1)"/></svg>
<svg id="svg-theta" xmlns="http://www.w3.org/2000/svg" width="128" height="350"><path d="M1396 -1132C1396 -1756 1148 -2032 760 -2032C376 -2032 124 -1756 124 -1132V-888C124 -260 380 28 764 28C1148 28 1396 -260 1396 -888ZM360 -1108V-1176C360 -1588 528 -1820 760 -1820C996 -1820 1156 -1588 1156 -1176V-1108ZM1156 -844C1156 -432 1000 -184 764 -184C532 -184 360 -432 360 -844V-888H1156Z" transform="translate(-12.4 281.6) scale(0.1)"/></svg>
<svg id="svg-thetasymbolgreek" xmlns="http://www.w3.org/2000/svg" width="142" height="350"><path d="M1584 -1068C1530.2054 -1054.5514 1467.3677 -1042.9114 1404 -1036.7286V-1524C1404 -1848 1224 -2032 936 -2032C664 -2032 468 -1856 468 -1552V-1532C468 -1171.2111 728.73 -884.0399 1132 -818.2242V-600C1132 -332 1008 -200 808 -200C588 -200 456 -352 456 -600V-1064L184 -1060V-600C184 -220 432 28 808 28C1164 28 1404 -196 1404 -600V-808.7396C1471.3855 -815.6353 1538.3955 -830.0554 1596 -852ZM1132 -1053.1947C881.4444 -1116.1665 744 -1311.3033 744 -1528V-1552C744 -1736 824 -1800 936 -1800C1064 -1800 1132 -1720 1132 -1524Z" transform="translate(-18.4 281.6) scale(0.1)"/></svg>
<svg id="svg-thetasymbolgreek" xmlns="http://www.w3.org/2000/svg" width="142" height="350"><path d="M1584 -1068C1530.2054 -1054.5514 1467.3677 -1042.9114 1404 -1036.7286V-1524C1404 -1848 1224 -2032 936 -2032C664 -2032 468 -1856 468 -1552V-1532C468 -1171.2111 728.73 -884.0399 1132 -818.2242V-600C1132 -332 1008 -200 808 -200C588 -200 456 -352 456 -600V-1060H184V-600C184 -220 432 28 808 28C1164 28 1404 -196 1404 -600V-808.7396C1471.3855 -815.6353 1538.3955 -830.0554 1596 -852ZM1132 -1053.1947C881.4444 -1116.1665 744 -1311.3033 744 -1528V-1552C744 -1736 824 -1800 936 -1800C1064 -1800 1132 -1720 1132 -1524Z" transform="translate(-18.4 281.6) scale(0.1)"/></svg>
<svg id="svg-thinspace" xmlns="http://www.w3.org/2000/svg" width="0" height="350"><path d="" transform="translate(-0 281.6) scale(0.1)"/></svg>
<svg id="svg-thirdemspace" xmlns="http://www.w3.org/2000/svg" width="0" height="350"><path d="" transform="translate(-0 281.6) scale(0.1)"/></svg>
<svg id="svg-thook" xmlns="http://www.w3.org/2000/svg" width="83" height="350"><path d="M908 -1488H636V-1736C636 -1896 716 -1952 844 -1952C864 -1952 896 -1948 920 -1940V-2124C880 -2136 824 -2144 784 -2144C556 -2144 360 -2000 360 -1736V-1488H92V-1284H360V-412C360 -96 520 28 708 28C804 28 872 12 912 0V-220C888 -216 836 -204 792 -204C712 -204 636 -248 636 -412V-1284H908Z" transform="translate(-9.2 281.6) scale(0.1)"/></svg>
@ -1811,7 +1848,7 @@ endfor
<svg id="svg-tripleprimerev" xmlns="http://www.w3.org/2000/svg" width="138" height="350"><path d="M480 -1312 408 -2048H140L308 -1312ZM1000 -1312 928 -2048H660L828 -1312ZM1520 -1312 1448 -2048H1180L1348 -1312Z" transform="translate(-14 281.6) scale(0.1)"/></svg>
<svg id="svg-trthook" xmlns="http://www.w3.org/2000/svg" width="83" height="350"><path d="M884 -1536H556V-1904H320V-1536H88V-1336H320V212C320 480 536 608 736 608C824 608 880 592 912 580L864 368C844 372 812 380 760 380C656 380 556 348 556 148V-1336H884Z" transform="translate(-8.8 281.6) scale(0.1)"/></svg>
<svg id="svg-ts" xmlns="http://www.w3.org/2000/svg" width="185" height="350"><path d="M364 -1844V-1488H92V-1284H364V-440C364 -124 524 0 712 0H1360C1708 0 1940 -156 1940 -420C1940 -660 1764 -784 1384 -868C1172 -916 1072 -960 1072 -1084C1072 -1188 1152 -1296 1352 -1296C1544 -1296 1648 -1164 1648 -1048H1924C1924 -1304 1712 -1516 1352 -1516C1277.7908 -1516 1209.24 -1506.049 1147.468 -1488H640V-1844ZM1664 -396C1664 -280 1560 -232 1360 -232H796C716 -232 640 -276 640 -440V-1284H858.1615C817.802 -1221.4152 796 -1150.2931 796 -1076C796 -832 1004 -712 1344 -644C1620 -588 1664 -500 1664 -396Z" transform="translate(-9.2 281.6) scale(0.1)"/></svg>
<svg id="svg-tsecyrillic" xmlns="http://www.w3.org/2000/svg" width="145" height="350"><path d="M1424 -1536H1188V-220H452V-1536H216V0H1424V496H1660V-220H1424Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
<svg id="svg-tsecyrillic" xmlns="http://www.w3.org/2000/svg" width="143" height="350"><path d="M1424 -1536H1188V-220H452V-1536H216V0H1404V496H1640V-220H1424Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
<svg id="svg-tshecyrillic" xmlns="http://www.w3.org/2000/svg" width="156" height="350"><path d="M452 -924C452 -1192 623 -1344 856 -1344C1078 -1344 1212 -1204 1212 -960V0H1448V-976C1448 -1371 1238 -1556 924 -1556C682 -1556 544 -1455 472 -1296H452V-1700H776V-1884H452V-2048H216V-1884H-104V-1700H216V0H452Z" transform="translate(10.4 281.6) scale(0.1)"/></svg>
<svg id="svg-tturn" xmlns="http://www.w3.org/2000/svg" width="83" height="350"><path d="M140 0H468V368H704V0H936V-200H704V-1160C704 -1428 488 -1556 288 -1556C200 -1556 144 -1540 112 -1528L160 -1316C180 -1320 212 -1328 264 -1328C368 -1328 468 -1296 468 -1096V-200H140Z" transform="translate(-11.2 281.6) scale(0.1)"/></svg>
<svg id="svg-tugrik" xmlns="http://www.w3.org/2000/svg" width="154" height="350"><path d="M1392 -1492 1028 -1345.8032V-1828H1672V-2048H136V-1828H780V-1246.1968L416 -1100V-896L780 -1039.2131V-826.1967L416 -680V-476L780 -619.2131V0H1028V-716.7869L1392 -860V-1072L1028 -925.8033V-1136.7869L1392 -1280Z" transform="translate(-13.6 281.6) scale(0.1)"/></svg>
@ -1859,7 +1896,7 @@ endfor
<svg id="svg-uhungarumlaut" xmlns="http://www.w3.org/2000/svg" width="124" height="350"><path d="M1184 -628C1184 -340 964 -208 788 -208C592 -208 452 -352 452 -576V-1536H216V-560C216 -168 424 20 712 20C944 20 1096 -104 1168 -260H1184V0H1420V-1536H1184ZM880 -1704H1088L1452 -2128H1188ZM468 -1704H656L952 -2128H692Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
<svg id="svg-uhungarumlautcyrillic" xmlns="http://www.w3.org/2000/svg" width="138" height="350"><path d="M368 572C581 572 732 459 820 224L1474 -1532L1216 -1536L792 -312H776L352 -1536H96L664 8L620 128C536 358 428 380 256 336L196 544C220 556 288 572 368 572ZM844 -1704H1052L1416 -2128H1152ZM432 -1704H620L916 -2128H656Z" transform="translate(-9.6 281.6) scale(0.1)"/></svg>
<svg id="svg-uinvertedbreve" xmlns="http://www.w3.org/2000/svg" width="121" height="350"><path d="M1184 -628C1184 -340 964 -208 788 -208C592 -208 452 -352 452 -576V-1536H216V-560C216 -168 424 20 712 20C944 20 1096 -104 1168 -260H1184V0H1420V-1536H1184ZM404 -1792H624C624 -1896 676 -1992 820 -1992C956 -1992 1012 -1900 1012 -1792H1232C1232 -2008 1076 -2164 820 -2164C564 -2164 404 -2008 404 -1792Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
<svg id="svg-ukcyrillic" xmlns="http://www.w3.org/2000/svg" width="334" height="350"><path d="M840 32C1256 32 1536 -284 1536 -760C1536 -1240 1256 -1556 840 -1556C424 -1556 144 -1240 144 -760C144 -284 424 32 840 32ZM2968 -1304 2988 -1360C3068 -1584 3124 -1688 3248 -1688C3304 -1688 3364 -1664 3416 -1636L3480 -1800C3412 -1856 3316 -1896 3212 -1896C2964 -1896 2844 -1668 2764 -1444L2744 -1388L2384 -348L1976 -1536H1720L2264 0L2216 136C2152 320 2044 368 1872 368C1804 368 1768 364 1756 360V580C1784 588 1896 600 1936 600C2160 600 2344 464 2428 228ZM840 -180C524 -180 380 -452 380 -760C380 -1068 524 -1344 840 -1344C1156 -1344 1300 -1068 1300 -760C1300 -452 1156 -180 840 -180Z" transform="translate(-14.4 281.6) scale(0.1)"/></svg>
<svg id="svg-ukcyrillic" xmlns="http://www.w3.org/2000/svg" width="334" height="350"><path d="M840 32C1256 32 1536 -284 1536 -760C1536 -1240 1256 -1556 840 -1556C424 -1556 144 -1240 144 -760C144 -284 424 32 840 32ZM1720 -1536 2264 0 2216 136C2152 320 2044 368 1872 368C1804 368 1768 364 1756 360V580C1784 588 1896 600 1936 600C2160 600 2344 464 2428 228L2988 -1360C3067 -1584 3124 -1688 3248 -1688C3304 -1688 3364 -1664 3416 -1636L3480 -1800C3412 -1856 3316 -1896 3212 -1896C2964 -1896 2842 -1668 2764 -1444L2384 -348L1976 -1536ZM840 -180C524 -180 380 -452 380 -760C380 -1068 524 -1344 840 -1344C1156 -1344 1300 -1068 1300 -760C1300 -452 1156 -180 840 -180Z" transform="translate(-14.4 281.6) scale(0.1)"/></svg>
<svg id="svg-umacron" xmlns="http://www.w3.org/2000/svg" width="121" height="350"><path d="M1184 -628C1184 -340 964 -208 788 -208C592 -208 452 -352 452 -576V-1536H216V-560C216 -168 424 20 712 20C944 20 1096 -104 1168 -260H1184V0H1420V-1536H1184ZM1288 -2048H352V-1848H1288Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
<svg id="svg-umacroncyrillic" xmlns="http://www.w3.org/2000/svg" width="138" height="350"><path d="M368 572C581 572 732 459 820 224L1474 -1532L1216 -1536L792 -312H776L352 -1536H96L664 8L620 128C536 358 428 380 256 336L196 544C220 556 288 572 368 572ZM1252 -2048H316V-1848H1252Z" transform="translate(-9.6 281.6) scale(0.1)"/></svg>
<svg id="svg-umacrondieresis" xmlns="http://www.w3.org/2000/svg" width="121" height="350"><path d="M1184 -628C1184 -340 964 -208 788 -208C592 -208 452 -352 452 -576V-1536H216V-560C216 -168 424 20 712 20C944 20 1096 -104 1168 -260H1184V0H1420V-1536H1184ZM1300 -2016H360V-1812H1300ZM372 -2308C372 -2224 428 -2156 532 -2156C636 -2156 688 -2228 688 -2308C688 -2392 632 -2460 532 -2460C428 -2460 372 -2392 372 -2308ZM964 -2304C964 -2220 1016 -2156 1120 -2156C1224 -2156 1280 -2220 1280 -2304C1280 -2388 1224 -2456 1120 -2456C1016 -2456 964 -2388 964 -2304Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
@ -1882,7 +1919,7 @@ endfor
<svg id="svg-uni0221" xmlns="http://www.w3.org/2000/svg" width="195" height="350"><path d="M796 32C1092 32 1192 -152 1244 -236H1264V48L952 368L1104 524L1297.7355 328.2035C1351.4292 464.7839 1472.8867 576 1688 576C1936 576 2092 428 2092 212C2092 -8 1928 -152 1708 -152C1640.9133 -152 1569.7173 -138.028 1500 -110.4566V-336V-2048H1264V-1292H1244C1192 -1372 1100 -1556 800 -1556C412 -1556 144 -1248 144 -764C144 -276 412 32 796 32ZM828 -180C532 -180 380 -440 380 -768C380 -1092 528 -1344 828 -1344C1116 -1344 1268 -1112 1268 -768C1268 -420 1112 -180 828 -180ZM1500 125.1796C1556.6453 75.1978 1626.3655 41.7276 1712 56C1796 68 1848 128 1848 212C1848 304 1784 372 1688 372C1588 372 1500 300 1500 164Z" transform="translate(-14.4 281.6) scale(0.1)"/></svg>
<svg id="svg-uni0222" xmlns="http://www.w3.org/2000/svg" width="156" height="350"><path d="M860 -1232C612 -1232 396 -1292 396 -1532C396 -1704 484 -1772 656 -1816V-2032C356 -2016 112 -1864 112 -1532C112 -1313.9781 225.4698 -1177.1904 396.0381 -1099.6738C221.6005 -998.8185 112 -830.4215 112 -596C112 -176 444 28 872 28H904C1332 28 1664 -176 1664 -600C1664 -831.9907 1554.5245 -999.3513 1380.2606 -1099.8097C1550.6627 -1177.3502 1664 -1314.1055 1664 -1532C1664 -1864 1424 -2016 1120 -2032V-1816C1292 -1772 1380 -1704 1380 -1532C1380 -1292 1168 -1232 916 -1232ZM904 -996C1192 -996 1380 -868 1380 -600C1380 -324 1192 -208 904 -208H872C584 -208 396 -324 396 -596C396 -868 584 -996 872 -996Z" transform="translate(-11.2 281.6) scale(0.1)"/></svg>
<svg id="svg-uni0223" xmlns="http://www.w3.org/2000/svg" width="155" height="350"><path d="M916 -1220H860C612 -1220 392 -1292 392 -1572C392 -1772 484 -1868 656 -1936V-2140C356 -2128 116 -1928 116 -1572C116 -1333.9562 232.1713 -1185.3774 406.6509 -1102.3474C228.0605 -1003.2611 116 -834.4786 116 -596C116 -176 444 28 872 28H904C1332 28 1660 -176 1660 -600C1660 -836.0177 1548.0562 -1003.777 1369.6279 -1102.4802C1543.9525 -1185.5359 1660 -1334.083 1660 -1572C1660 -1928 1420 -2128 1120 -2140V-1936C1292 -1868 1384 -1772 1384 -1572C1384 -1292 1168 -1220 916 -1220ZM904 -1000C1188 -1000 1384 -868 1384 -600C1384 -324 1188 -192 904 -192H872C584 -192 392 -324 392 -596C392 -868 584 -1000 872 -1000Z" transform="translate(-11.6 281.6) scale(0.1)"/></svg>
<svg id="svg-uni0224" xmlns="http://www.w3.org/2000/svg" width="144" height="350"><path d="M1200 0C1340 0 1384 112 1384 228V304H1608V184C1608 -56 1452 -220 1200 -220H476L1580 -1868V-2048H168V-1828H1284L180 -180V0Z" transform="translate(-16.8 281.6) scale(0.1)"/></svg>
<svg id="svg-uni0224" xmlns="http://www.w3.org/2000/svg" width="144" height="350"><path d="M168 -1828H1284L180 -180V0H1200C1340 0 1384 112 1384 228V304H1608V184C1608 -56 1452 -220 1200 -220H476L1580 -1868V-2048H168Z" transform="translate(-16.8 281.6) scale(0.1)"/></svg>
<svg id="svg-uni0226" xmlns="http://www.w3.org/2000/svg" width="176" height="350"><path d="M332 0 537.8932 -580H1366.1067L1572 0H1832L1080 -2048H824L72 0ZM615.9907 -800 944 -1724H960L1288.0093 -800ZM952 -2304C1044 -2304 1120 -2376 1120 -2464C1120 -2552 1044 -2624 952 -2624C860 -2624 784 -2552 784 -2464C784 -2376 860 -2304 952 -2304Z" transform="translate(-7.2 281.6) scale(0.1)"/></svg>
<svg id="svg-uni0227" xmlns="http://www.w3.org/2000/svg" width="123" height="350"><path d="M668 36C936 36 1076 -108 1124 -208H1136V0H1372V-1012C1372 -1500 1000 -1556 804 -1556C572 -1556 308 -1476 188 -1196L412 -1116C464 -1228 587 -1348 812 -1348C1029 -1348 1136 -1233 1136 -1036V-1028C1136 -914 1020 -924 740 -888C455 -851 144 -788 144 -436C144 -136 376 36 668 36ZM704 -176C516 -176 380 -260 380 -424C380 -604 544 -660 728 -684C828 -696 1096 -724 1136 -772V-556C1136 -364 984 -176 704 -176ZM820 -1792C912 -1792 988 -1864 988 -1952C988 -2040 912 -2112 820 -2112C728 -2112 652 -2040 652 -1952C652 -1864 728 -1792 820 -1792Z" transform="translate(-14.4 281.6) scale(0.1)"/></svg>
<svg id="svg-uni0227.1" xmlns="http://www.w3.org/2000/svg" width="136" height="350"><path d="M796 32C1092 32 1192 -152 1244 -236H1272V0H1500V-1536H1264V-1292H1244C1192 -1372 1100 -1556 800 -1556C412 -1556 144 -1248 144 -764C144 -276 412 32 796 32ZM828 -180C532 -180 380 -440 380 -768C380 -1092 528 -1344 828 -1344C1116 -1344 1268 -1112 1268 -768C1268 -420 1112 -180 828 -180ZM860 -1792C952 -1792 1028 -1864 1028 -1952C1028 -2040 952 -2112 860 -2112C768 -2112 692 -2040 692 -1952C692 -1864 768 -1792 860 -1792Z" transform="translate(-14.4 281.6) scale(0.1)"/></svg>
@ -2391,7 +2428,7 @@ endfor
<svg id="svg-uni20B0" xmlns="http://www.w3.org/2000/svg" width="158" height="350"><path d="M100 0H376L600 -436L932 28C1011.8127 -128.6021 1084.4962 -270.0322 1150.3824 -398.3764L1268 -48C1292 28 1316 124 1316 228C1316 320 1260 380 1160 380C1092 380 992 372 888 328V544C980 580 1056 600 1180 600C1440 600 1596 464 1596 276C1596 164 1568 28 1488 -212L1317.0988 -724.7037C1567.7234 -1220.124 1676 -1471.1003 1676 -1692C1676 -1928 1560 -2144 1232 -2144C920 -2144 784 -1932 784 -1692C784 -1476 844 -1316 888 -1180L1041.8895 -721.571L896 -436L564 -876ZM1208.0394 -1051.8816 1148 -1232C1104 -1368 1032 -1548 1032 -1692C1032 -1840 1116 -1924 1232 -1924C1344 -1924 1428 -1840 1428 -1692C1428 -1544.03 1373.938 -1390.6538 1208.0394 -1051.8816Z" transform="translate(-10 281.6) scale(0.1)"/></svg>
<svg id="svg-uni20B6" xmlns="http://www.w3.org/2000/svg" width="130" height="350"><path d="M1408 -1488H1136V-1844H864V-1488H564V-2048H328V-1488H112V-1284H328V0H564V-1284H864V-376C864 -160 944 28 1212 28C1308 28 1372 12 1412 0V-220C1392 -216 1336 -204 1296 -204C1148 -204 1136 -284 1136 -412V-1284H1408Z" transform="translate(-11.2 281.6) scale(0.1)"/></svg>
<svg id="svg-uni20B7" xmlns="http://www.w3.org/2000/svg" width="154" height="350"><path d="M1368 -508C1368 -414.782 1334.0563 -339.4788 1268 -286.6681V-368C1268 -592 1164 -688 1000 -688C894.2487 -688 813.0476 -625.9025 765.0739 -525.1357C725.8962 -637.7512 638.6509 -688 520 -688C422.5716 -688 345.9811 -635.2922 297.014 -548.1974L264 -672H120V164H312V-177.7542C391.9635 -103.3146 490.7137 -53.1518 596 -21.0067V164H788V18.5195C843.3993 25.1158 898.6061 28 952 28C994.8509 28 1036.2311 25.7938 1076 21.4929V164H1268V-19.3228C1509.512 -99.8002 1656 -277.6488 1656 -512C1656 -820 1448 -1008 1020 -1124C748 -1200 548 -1292 548 -1484C548 -1664 672 -1800 940 -1800C1244 -1800 1368 -1632 1368 -1424H1656C1656 -1732 1400 -2032 940 -2032C528 -2032 260 -1792 260 -1480C260 -1176 508 -1004 924 -880C1236 -788 1368 -708 1368 -508ZM788 -213.9256V-368C788 -385.8369 787.3406 -402.8622 786.0439 -419.0921C811.6335 -484.9973 860.2789 -528 936 -528C1020 -528 1076 -476 1076 -332V-209.2762C1038.1923 -203.1518 996.835 -200 952 -200C899.0281 -200 843.4874 -204.7954 788 -213.9256ZM320.1057 -448.8706C347.8842 -497.6512 392.3878 -528 456 -528C544 -528 596 -476 596 -332V-263.6352C476.3192 -306.9749 373.5138 -370.6244 320.1057 -448.8706Z" transform="translate(-12 281.6) scale(0.1)"/></svg>
<svg id="svg-uni20B9" xmlns="http://www.w3.org/2000/svg" width="137" height="350"><path d="M1444 -1564H1160.8171C1143.8193 -1659.9222 1107.2654 -1746.2659 1049.9352 -1818.5574L1376 -1816L1444 -2048H148L80 -1824H356L510.4713 -1822.7885C726.3969 -1811.2382 852.4045 -1717.6151 895.2885 -1564H148L80 -1332H901.7524C861.82 -1151.6682 706.7441 -1064 464 -1064H100L104 -896L836 0H1148V-16L472 -844C922.439 -844 1126.8629 -1058.0649 1165.2249 -1332H1376Z" transform="translate(-8 281.6) scale(0.1)"/></svg>
<svg id="svg-uni20B9" xmlns="http://www.w3.org/2000/svg" width="137" height="350"><path d="M1444 -1564H1160.8171C1143.8193 -1659.9222 1107.2654 -1746.2659 1049.9352 -1818.5574L1376 -1816L1444 -2048H148L80 -1824H356L510.4713 -1822.7885C726.3969 -1811.2382 852.4045 -1717.6151 895.2885 -1564H148L80 -1332H901.7524C861.82 -1151.6682 706.7441 -1064 464 -1064H100L104 -896L836 0H1148V-16L472 -844H478C924.5859 -844 1127.0586 -1059.3942 1165.2216 -1332H1376Z" transform="translate(-8 281.6) scale(0.1)"/></svg>
<svg id="svg-uni20BA" xmlns="http://www.w3.org/2000/svg" width="136" height="350"><path d="M684 -2048H436V-1581.705L136 -1444V-1196L436 -1333.705V-1113.705L136 -976V-728L436 -865.7049V16C492 24 596 28 680 28C1172 28 1492 -264 1492 -896H1244C1244 -370.2583 994.151 -205.4095 684 -204.009V-979.541L1112 -1176V-1424L684 -1227.541V-1447.541L1112 -1644V-1892L684 -1695.541Z" transform="translate(-13.6 281.6) scale(0.1)"/></svg>
<svg id="svg-uni20BB" xmlns="http://www.w3.org/2000/svg" width="213" height="350"><path d="M932 -1568C932 -1784 824 -2000 500 -2000C252 -2000 80 -1848 80 -1636C80 -1396 252 -1268 476 -1268H656V-866.4421L312 -756L456 -496L660.1133 -569.4221C693.0234 -166.7822 926.8351 0 1484 0V-220C1047.8948 -220 934.0085 -341.8145 932.0265 -667.2325L1012 -696L1200 -496L1440 -676L1628 -496C1872 -496 2208 -644 2208 -1000C2208 -1196 2080 -1488 1512 -1488H932ZM932 -1268H1512C1820 -1268 1932 -1160 1932 -1008C1932 -912 1904 -788 1744 -764L1524 -1000L1244 -820L1072 -1000L932 -955.0526ZM656 -1488H508C416 -1488 356 -1552 356 -1636C356 -1716 412 -1780 496 -1780C604 -1780 656 -1712 656 -1628Z" transform="translate(-8 281.6) scale(0.1)"/></svg>
<svg id="svg-uni20BD" xmlns="http://www.w3.org/2000/svg" width="171" height="350"><path d="M1144 -832C1600 -832 1812 -1108 1812 -1440C1812 -1772 1600 -2048 1144 -2048H428V-1052H104V-832H428V-640H104V-420H428V0H676V-420H1128V-640H676V-832ZM676 -1052V-1828H1144C1432 -1828 1568 -1664 1568 -1440C1568 -1216 1432 -1052 1144 -1052Z" transform="translate(-10.4 281.6) scale(0.1)"/></svg>
@ -2508,7 +2545,7 @@ endfor
<svg id="svg-yericyrillic" xmlns="http://www.w3.org/2000/svg" width="168" height="350"><path d="M452 -980V-1536H216V0H860C1220 0 1416 -220 1416 -496C1416 -776 1220 -980 860 -980ZM1660 0H1896V-1536H1660ZM452 -760H860C1047 -760 1180 -646 1180 -484C1180 -329 1047 -220 860 -220H452Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
<svg id="svg-yerudieresiscyrillic" xmlns="http://www.w3.org/2000/svg" width="168" height="350"><path d="M452 -980V-1536H216V0H860C1220 0 1416 -220 1416 -496C1416 -776 1220 -980 860 -980ZM1660 0H1896V-1536H1660ZM452 -760H860C1047 -760 1180 -646 1180 -484C1180 -329 1047 -220 860 -220H452ZM768 -1792C860 -1792 928 -1868 928 -1952C928 -2044 860 -2112 768 -2112C684 -2112 608 -2044 608 -1952C608 -1868 684 -1792 768 -1792ZM1344 -1792C1436 -1792 1504 -1868 1504 -1952C1504 -2044 1436 -2112 1344 -2112C1260 -2112 1184 -2044 1184 -1952C1184 -1868 1260 -1792 1344 -1792Z" transform="translate(-21.6 281.6) scale(0.1)"/></svg>
<svg id="svg-ygrave" xmlns="http://www.w3.org/2000/svg" width="138" height="350"><path d="M368 572C581 572 732 459 820 224L1474 -1532L1216 -1536L792 -312H776L352 -1536H96L664 8L620 128C536 358 428 380 256 336L196 544C220 556 288 572 368 572ZM684 -1744H892L648 -2208H372Z" transform="translate(-9.6 281.6) scale(0.1)"/></svg>
<svg id="svg-yhook" xmlns="http://www.w3.org/2000/svg" width="176" height="350"><path d="M1344 -1304 1364 -1360C1444 -1584 1500 -1688 1624 -1688C1680 -1688 1740 -1664 1792 -1636L1856 -1800C1788 -1856 1692 -1896 1588 -1896C1340 -1896 1220 -1668 1140 -1444L1120 -1388L760 -348L352 -1536H96L640 0L592 136C528 320 420 368 248 368C180 368 144 364 132 360V580C160 588 272 600 312 600C536 600 720 464 804 228Z" transform="translate(-9.6 281.6) scale(0.1)"/></svg>
<svg id="svg-yhook" xmlns="http://www.w3.org/2000/svg" width="176" height="350"><path d="M96 -1536 640 0 592 136C528 320 420 368 248 368C180 368 144 364 132 360V580C160 588 272 600 312 600C536 600 720 464 804 228L1364 -1360C1443 -1584 1500 -1688 1624 -1688C1680 -1688 1740 -1664 1792 -1636L1856 -1800C1788 -1856 1692 -1896 1588 -1896C1340 -1896 1218 -1668 1140 -1444L760 -348L352 -1536Z" transform="translate(-9.6 281.6) scale(0.1)"/></svg>
<svg id="svg-yhookabove" xmlns="http://www.w3.org/2000/svg" width="138" height="350"><path d="M368 572C581 572 732 459 820 224L1474 -1532L1216 -1536L792 -312H776L352 -1536H96L664 8L620 128C536 358 428 380 256 336L196 544C220 556 288 572 368 572ZM888 -1744V-1844C992 -1860 1096 -1916 1096 -2052C1096 -2212 952 -2316 676 -2316L668 -2164C788 -2164 884 -2132 884 -2060C884 -1996 832 -1968 692 -1960V-1744Z" transform="translate(-9.6 281.6) scale(0.1)"/></svg>
<svg id="svg-yicyrillic" xmlns="http://www.w3.org/2000/svg" width="90" height="350"><path d="M216 0H452V-1536H216ZM48 -1792C140 -1792 208 -1868 208 -1952C208 -2044 140 -2112 48 -2112C-36 -2112 -112 -2044 -112 -1952C-112 -1868 -36 -1792 48 -1792ZM624 -1792C716 -1792 784 -1868 784 -1952C784 -2044 716 -2112 624 -2112C540 -2112 464 -2044 464 -1952C464 -1868 540 -1792 624 -1792Z" transform="translate(11.2 281.6) scale(0.1)"/></svg>
<svg id="svg-yotgreek" xmlns="http://www.w3.org/2000/svg" width="54" height="350"><path d="M216 -1536V112C216 268 152 356 8 356H-36V576H12C308 576 452 396 452 112V-1536ZM332 -1792C424 -1792 500 -1864 500 -1952C500 -2040 424 -2112 332 -2112C240 -2112 164 -2040 164 -1952C164 -1864 240 -1792 332 -1792Z" transform="translate(3.6 281.6) scale(0.1)"/></svg>
@ -2559,30 +2596,5 @@ endfor
<svg id="svg-zrthook" xmlns="http://www.w3.org/2000/svg" width="151" height="350"><path d="M1140 0V192C1140 456 1316 600 1544 600C1588 600 1644 596 1680 584V380C1660 388 1624 388 1604 388C1476 388 1376 352 1376 192V-220H500V-236L1348 -1348V-1536H200V-1316H1044V-1300L172 -180V0Z" transform="translate(-17.2 281.6) scale(0.1)"/></svg>
</div><!--END-SVGS don't remove this comment-->
<div class="row intro"><div>
<h1><a href="./">Glyphs</a></h1>
<p>
This shows the complete set of glyphs in Inter Regular.
</p>
</div></div>
<div id="glyphs">
<div id="single-info" style="display:none">
<ul>
<li>Glyph name: <span class="name"></span></li>
<li class="unicode">Unicode: <a><span class="unicodeCodePoint num"></span> <span class="unicodeName"></span></a></li>
<li>Advance width: <span class="advanceWidth num"></span></li>
<li>Left margin: <span class="marginLeft num"></span></li>
<li>Right margin: <span class="marginRight num"></span></li>
<li>Color mark: <span class="colorMark">&nbsp;</span></li>
<li><a class="svgFile">&darr; Download SVG file</a></li>
</ul>
</div>
</div>
<div class="row kerning"><div>
<h2 id="kerning"><a href="#kerning">Kerning</a></h2>
<div id="kerning-list"></div>
</div></div>
<script src="glyphs.js?v={{ glyphs_js_v }}"></script>

View File

@ -2771,7 +2771,7 @@
"231":[2004.0, 2100, 24.0, 72.0],
"232":[1516.0, 1836, 248.0, 72.0],
"233":[1500.0, 1820, 248.0, 72.0],
"234":[1560.0, 2008, 248.0, 200.0],
"234":[1560.0, 1936, 248.0, 128.0],
"235":[1504.0, 1912, 248.0, 160.0],
"236":[1516.0, 1836, 248.0, 72.0],
"237":[1532.0, 1852, 248.0, 72.0],
@ -2828,7 +2828,7 @@
"288":[3712.0, 3912, 100.0, 100.0],
"289":[2332.0, 2684, 168.0, 184.0],
"290":[2084.0, 2544, 232.0, 228.0],
"291":[2016.0, 2288, 136.0, 136.0],
"291":[2016.0, 2432, 168.0, 248.0],
"292":[1808.0, 2144, 168.0, 168.0],
"293":[1808.0, 2144, 168.0, 168.0],
"294":[1808.0, 2144, 168.0, 168.0],
@ -4081,7 +4081,7 @@
"1541":[380.0, 560, 136.0, 44.0],
"1542":[380.0, 624, 196.0, 48.0],
"1543":[380.0, 520, 44.0, 96.0],
"1544":[380.0, 560, 44.0, 136.0],
"1544":[380.0, 560, 40.0, 140.0],
"1545":[220.0, 624, 200.0, 204.0],
"1546":[768.0, 1048, 216.0, 64.0],
"1547":[840.0, 1080, 216.0, 24.0],
@ -4327,7 +4327,7 @@
"1787":[1380.0, 1660, 140.0, 140.0],
"1788":[824.0, 1040, 88.0, 128.0],
"1789":[1848.0, 2032, 92.0, 92.0],
"1790":[1444.0, 1788, 216.0, 128.0],
"1790":[1424.0, 1788, 216.0, 148.0],
"1791":[1552.0, 1664, -104.0, 216.0],
"1792":[824.0, 1024, 112.0, 88.0],
"1793":[1536.0, 1808, 136.0, 136.0],
@ -40909,226 +40909,226 @@
[1085,4,-64],
[1085,29,-64],
[1085,2494,-64],
[135,389,96],
[135,396,96],
[135,394,96],
[135,1852,96],
[135,397,96],
[135,398,96],
[135,404,96],
[135,395,96],
[135,402,96],
[135,408,96],
[135,1882,96],
[135,392,96],
[135,400,96],
[135,615,96],
[135,597,96],
[135,604,96],
[135,1445,96],
[135,393,96],
[135,589,96],
[135,399,96],
[143,389,96],
[143,396,96],
[143,394,96],
[143,1852,96],
[143,397,96],
[143,398,96],
[143,404,96],
[143,395,96],
[143,402,96],
[143,408,96],
[143,1882,96],
[143,392,96],
[143,400,96],
[143,615,96],
[143,597,96],
[143,604,96],
[143,1445,96],
[143,393,96],
[143,589,96],
[143,399,96],
[158,389,96],
[158,396,96],
[158,394,96],
[158,1852,96],
[158,397,96],
[158,398,96],
[158,404,96],
[158,395,96],
[158,402,96],
[158,408,96],
[158,1882,96],
[158,392,96],
[158,400,96],
[158,615,96],
[158,597,96],
[158,604,96],
[158,1445,96],
[158,393,96],
[158,589,96],
[158,399,96],
[149,389,96],
[149,396,96],
[149,394,96],
[149,1852,96],
[149,397,96],
[149,398,96],
[149,404,96],
[149,395,96],
[149,402,96],
[149,408,96],
[149,1882,96],
[149,392,96],
[149,400,96],
[149,615,96],
[149,597,96],
[149,604,96],
[149,1445,96],
[149,393,96],
[149,589,96],
[149,399,96],
[145,389,96],
[145,396,96],
[145,394,96],
[145,1852,96],
[145,397,96],
[145,398,96],
[145,404,96],
[145,395,96],
[145,402,96],
[145,408,96],
[145,1882,96],
[145,392,96],
[145,400,96],
[145,615,96],
[145,597,96],
[145,604,96],
[145,1445,96],
[145,393,96],
[145,589,96],
[145,399,96],
[153,389,96],
[153,396,96],
[153,394,96],
[153,1852,96],
[153,397,96],
[153,398,96],
[153,404,96],
[153,395,96],
[153,402,96],
[153,408,96],
[153,1882,96],
[153,392,96],
[153,400,96],
[153,615,96],
[153,597,96],
[153,604,96],
[153,1445,96],
[153,393,96],
[153,589,96],
[153,399,96],
[151,389,96],
[151,396,96],
[151,394,96],
[151,1852,96],
[151,397,96],
[151,398,96],
[151,404,96],
[151,395,96],
[151,402,96],
[151,408,96],
[151,1882,96],
[151,392,96],
[151,400,96],
[151,615,96],
[151,597,96],
[151,604,96],
[151,1445,96],
[151,393,96],
[151,589,96],
[151,399,96],
[147,389,96],
[147,396,96],
[147,394,96],
[147,1852,96],
[147,397,96],
[147,398,96],
[147,404,96],
[147,395,96],
[147,402,96],
[147,408,96],
[147,1882,96],
[147,392,96],
[147,400,96],
[147,615,96],
[147,597,96],
[147,604,96],
[147,1445,96],
[147,393,96],
[147,589,96],
[147,399,96],
[139,389,96],
[139,396,96],
[139,394,96],
[139,1852,96],
[139,397,96],
[139,398,96],
[139,404,96],
[139,395,96],
[139,402,96],
[139,408,96],
[139,1882,96],
[139,392,96],
[139,400,96],
[139,615,96],
[139,597,96],
[139,604,96],
[139,1445,96],
[139,393,96],
[139,589,96],
[139,399,96],
[160,389,96],
[160,396,96],
[160,394,96],
[160,1852,96],
[160,397,96],
[160,398,96],
[160,404,96],
[160,395,96],
[160,402,96],
[160,408,96],
[160,1882,96],
[160,392,96],
[160,400,96],
[160,615,96],
[160,597,96],
[160,604,96],
[160,1445,96],
[160,393,96],
[160,589,96],
[160,399,96],
[1085,389,96],
[1085,396,96],
[1085,394,96],
[1085,1852,96],
[1085,397,96],
[1085,398,96],
[1085,404,96],
[1085,395,96],
[1085,402,96],
[1085,408,96],
[1085,1882,96],
[1085,392,96],
[1085,400,96],
[1085,615,96],
[1085,597,96],
[1085,604,96],
[1085,1445,96],
[1085,393,96],
[1085,589,96],
[1085,399,96],
[135,389,-84],
[135,396,-84],
[135,394,-84],
[135,1852,-84],
[135,397,-84],
[135,398,-84],
[135,404,-84],
[135,395,-84],
[135,402,-84],
[135,408,-84],
[135,1882,-84],
[135,392,-84],
[135,400,-84],
[135,615,-84],
[135,597,-84],
[135,604,-84],
[135,1445,-84],
[135,393,-84],
[135,589,-84],
[135,399,-84],
[143,389,-84],
[143,396,-84],
[143,394,-84],
[143,1852,-84],
[143,397,-84],
[143,398,-84],
[143,404,-84],
[143,395,-84],
[143,402,-84],
[143,408,-84],
[143,1882,-84],
[143,392,-84],
[143,400,-84],
[143,615,-84],
[143,597,-84],
[143,604,-84],
[143,1445,-84],
[143,393,-84],
[143,589,-84],
[143,399,-84],
[158,389,-84],
[158,396,-84],
[158,394,-84],
[158,1852,-84],
[158,397,-84],
[158,398,-84],
[158,404,-84],
[158,395,-84],
[158,402,-84],
[158,408,-84],
[158,1882,-84],
[158,392,-84],
[158,400,-84],
[158,615,-84],
[158,597,-84],
[158,604,-84],
[158,1445,-84],
[158,393,-84],
[158,589,-84],
[158,399,-84],
[149,389,-84],
[149,396,-84],
[149,394,-84],
[149,1852,-84],
[149,397,-84],
[149,398,-84],
[149,404,-84],
[149,395,-84],
[149,402,-84],
[149,408,-84],
[149,1882,-84],
[149,392,-84],
[149,400,-84],
[149,615,-84],
[149,597,-84],
[149,604,-84],
[149,1445,-84],
[149,393,-84],
[149,589,-84],
[149,399,-84],
[145,389,-84],
[145,396,-84],
[145,394,-84],
[145,1852,-84],
[145,397,-84],
[145,398,-84],
[145,404,-84],
[145,395,-84],
[145,402,-84],
[145,408,-84],
[145,1882,-84],
[145,392,-84],
[145,400,-84],
[145,615,-84],
[145,597,-84],
[145,604,-84],
[145,1445,-84],
[145,393,-84],
[145,589,-84],
[145,399,-84],
[153,389,-84],
[153,396,-84],
[153,394,-84],
[153,1852,-84],
[153,397,-84],
[153,398,-84],
[153,404,-84],
[153,395,-84],
[153,402,-84],
[153,408,-84],
[153,1882,-84],
[153,392,-84],
[153,400,-84],
[153,615,-84],
[153,597,-84],
[153,604,-84],
[153,1445,-84],
[153,393,-84],
[153,589,-84],
[153,399,-84],
[151,389,-84],
[151,396,-84],
[151,394,-84],
[151,1852,-84],
[151,397,-84],
[151,398,-84],
[151,404,-84],
[151,395,-84],
[151,402,-84],
[151,408,-84],
[151,1882,-84],
[151,392,-84],
[151,400,-84],
[151,615,-84],
[151,597,-84],
[151,604,-84],
[151,1445,-84],
[151,393,-84],
[151,589,-84],
[151,399,-84],
[147,389,-84],
[147,396,-84],
[147,394,-84],
[147,1852,-84],
[147,397,-84],
[147,398,-84],
[147,404,-84],
[147,395,-84],
[147,402,-84],
[147,408,-84],
[147,1882,-84],
[147,392,-84],
[147,400,-84],
[147,615,-84],
[147,597,-84],
[147,604,-84],
[147,1445,-84],
[147,393,-84],
[147,589,-84],
[147,399,-84],
[139,389,-84],
[139,396,-84],
[139,394,-84],
[139,1852,-84],
[139,397,-84],
[139,398,-84],
[139,404,-84],
[139,395,-84],
[139,402,-84],
[139,408,-84],
[139,1882,-84],
[139,392,-84],
[139,400,-84],
[139,615,-84],
[139,597,-84],
[139,604,-84],
[139,1445,-84],
[139,393,-84],
[139,589,-84],
[139,399,-84],
[160,389,-84],
[160,396,-84],
[160,394,-84],
[160,1852,-84],
[160,397,-84],
[160,398,-84],
[160,404,-84],
[160,395,-84],
[160,402,-84],
[160,408,-84],
[160,1882,-84],
[160,392,-84],
[160,400,-84],
[160,615,-84],
[160,597,-84],
[160,604,-84],
[160,1445,-84],
[160,393,-84],
[160,589,-84],
[160,399,-84],
[1085,389,-84],
[1085,396,-84],
[1085,394,-84],
[1085,1852,-84],
[1085,397,-84],
[1085,398,-84],
[1085,404,-84],
[1085,395,-84],
[1085,402,-84],
[1085,408,-84],
[1085,1882,-84],
[1085,392,-84],
[1085,400,-84],
[1085,615,-84],
[1085,597,-84],
[1085,604,-84],
[1085,1445,-84],
[1085,393,-84],
[1085,589,-84],
[1085,399,-84],
[135,455,-64],
[135,460,-64],
[135,459,-64],
@ -41305,6 +41305,226 @@
[1085,507,-16],
[1085,509,-16],
[1085,2017,-16],
[135,476,-64],
[135,487,-64],
[135,480,-64],
[135,481,-64],
[135,482,-64],
[135,1875,-64],
[135,483,-64],
[135,486,-64],
[135,484,-64],
[135,488,-64],
[135,490,-64],
[135,1898,-64],
[135,442,-64],
[135,448,-64],
[135,445,-64],
[135,2322,-64],
[135,2323,-64],
[135,590,-64],
[135,450,-64],
[135,451,-64],
[143,476,-64],
[143,487,-64],
[143,480,-64],
[143,481,-64],
[143,482,-64],
[143,1875,-64],
[143,483,-64],
[143,486,-64],
[143,484,-64],
[143,488,-64],
[143,490,-64],
[143,1898,-64],
[143,442,-64],
[143,448,-64],
[143,445,-64],
[143,2322,-64],
[143,2323,-64],
[143,590,-64],
[143,450,-64],
[143,451,-64],
[158,476,-64],
[158,487,-64],
[158,480,-64],
[158,481,-64],
[158,482,-64],
[158,1875,-64],
[158,483,-64],
[158,486,-64],
[158,484,-64],
[158,488,-64],
[158,490,-64],
[158,1898,-64],
[158,442,-64],
[158,448,-64],
[158,445,-64],
[158,2322,-64],
[158,2323,-64],
[158,590,-64],
[158,450,-64],
[158,451,-64],
[149,476,-64],
[149,487,-64],
[149,480,-64],
[149,481,-64],
[149,482,-64],
[149,1875,-64],
[149,483,-64],
[149,486,-64],
[149,484,-64],
[149,488,-64],
[149,490,-64],
[149,1898,-64],
[149,442,-64],
[149,448,-64],
[149,445,-64],
[149,2322,-64],
[149,2323,-64],
[149,590,-64],
[149,450,-64],
[149,451,-64],
[145,476,-64],
[145,487,-64],
[145,480,-64],
[145,481,-64],
[145,482,-64],
[145,1875,-64],
[145,483,-64],
[145,486,-64],
[145,484,-64],
[145,488,-64],
[145,490,-64],
[145,1898,-64],
[145,442,-64],
[145,448,-64],
[145,445,-64],
[145,2322,-64],
[145,2323,-64],
[145,590,-64],
[145,450,-64],
[145,451,-64],
[153,476,-64],
[153,487,-64],
[153,480,-64],
[153,481,-64],
[153,482,-64],
[153,1875,-64],
[153,483,-64],
[153,486,-64],
[153,484,-64],
[153,488,-64],
[153,490,-64],
[153,1898,-64],
[153,442,-64],
[153,448,-64],
[153,445,-64],
[153,2322,-64],
[153,2323,-64],
[153,590,-64],
[153,450,-64],
[153,451,-64],
[151,476,-64],
[151,487,-64],
[151,480,-64],
[151,481,-64],
[151,482,-64],
[151,1875,-64],
[151,483,-64],
[151,486,-64],
[151,484,-64],
[151,488,-64],
[151,490,-64],
[151,1898,-64],
[151,442,-64],
[151,448,-64],
[151,445,-64],
[151,2322,-64],
[151,2323,-64],
[151,590,-64],
[151,450,-64],
[151,451,-64],
[147,476,-64],
[147,487,-64],
[147,480,-64],
[147,481,-64],
[147,482,-64],
[147,1875,-64],
[147,483,-64],
[147,486,-64],
[147,484,-64],
[147,488,-64],
[147,490,-64],
[147,1898,-64],
[147,442,-64],
[147,448,-64],
[147,445,-64],
[147,2322,-64],
[147,2323,-64],
[147,590,-64],
[147,450,-64],
[147,451,-64],
[139,476,-64],
[139,487,-64],
[139,480,-64],
[139,481,-64],
[139,482,-64],
[139,1875,-64],
[139,483,-64],
[139,486,-64],
[139,484,-64],
[139,488,-64],
[139,490,-64],
[139,1898,-64],
[139,442,-64],
[139,448,-64],
[139,445,-64],
[139,2322,-64],
[139,2323,-64],
[139,590,-64],
[139,450,-64],
[139,451,-64],
[160,476,-64],
[160,487,-64],
[160,480,-64],
[160,481,-64],
[160,482,-64],
[160,1875,-64],
[160,483,-64],
[160,486,-64],
[160,484,-64],
[160,488,-64],
[160,490,-64],
[160,1898,-64],
[160,442,-64],
[160,448,-64],
[160,445,-64],
[160,2322,-64],
[160,2323,-64],
[160,590,-64],
[160,450,-64],
[160,451,-64],
[1085,476,-64],
[1085,487,-64],
[1085,480,-64],
[1085,481,-64],
[1085,482,-64],
[1085,1875,-64],
[1085,483,-64],
[1085,486,-64],
[1085,484,-64],
[1085,488,-64],
[1085,490,-64],
[1085,1898,-64],
[1085,442,-64],
[1085,448,-64],
[1085,445,-64],
[1085,2322,-64],
[1085,2323,-64],
[1085,590,-64],
[1085,450,-64],
[1085,451,-64],
[135,1143,96],
[135,1144,96],
[135,1170,96],
@ -112494,6 +112714,286 @@
[1895,459,-48],
[1895,142,-48],
[1895,621,-48],
[136,476,-68],
[136,487,-68],
[136,480,-68],
[136,481,-68],
[136,482,-68],
[136,1875,-68],
[136,483,-68],
[136,486,-68],
[136,484,-68],
[136,488,-68],
[136,490,-68],
[136,1898,-68],
[136,442,-68],
[136,448,-68],
[136,445,-68],
[136,2322,-68],
[136,2323,-68],
[136,590,-68],
[136,450,-68],
[136,451,-68],
[352,476,-68],
[352,487,-68],
[352,480,-68],
[352,481,-68],
[352,482,-68],
[352,1875,-68],
[352,483,-68],
[352,486,-68],
[352,484,-68],
[352,488,-68],
[352,490,-68],
[352,1898,-68],
[352,442,-68],
[352,448,-68],
[352,445,-68],
[352,2322,-68],
[352,2323,-68],
[352,590,-68],
[352,450,-68],
[352,451,-68],
[355,476,-68],
[355,487,-68],
[355,480,-68],
[355,481,-68],
[355,482,-68],
[355,1875,-68],
[355,483,-68],
[355,486,-68],
[355,484,-68],
[355,488,-68],
[355,490,-68],
[355,1898,-68],
[355,442,-68],
[355,448,-68],
[355,445,-68],
[355,2322,-68],
[355,2323,-68],
[355,590,-68],
[355,450,-68],
[355,451,-68],
[357,476,-68],
[357,487,-68],
[357,480,-68],
[357,481,-68],
[357,482,-68],
[357,1875,-68],
[357,483,-68],
[357,486,-68],
[357,484,-68],
[357,488,-68],
[357,490,-68],
[357,1898,-68],
[357,442,-68],
[357,448,-68],
[357,445,-68],
[357,2322,-68],
[357,2323,-68],
[357,590,-68],
[357,450,-68],
[357,451,-68],
[356,476,-68],
[356,487,-68],
[356,480,-68],
[356,481,-68],
[356,482,-68],
[356,1875,-68],
[356,483,-68],
[356,486,-68],
[356,484,-68],
[356,488,-68],
[356,490,-68],
[356,1898,-68],
[356,442,-68],
[356,448,-68],
[356,445,-68],
[356,2322,-68],
[356,2323,-68],
[356,590,-68],
[356,450,-68],
[356,451,-68],
[358,476,-68],
[358,487,-68],
[358,480,-68],
[358,481,-68],
[358,482,-68],
[358,1875,-68],
[358,483,-68],
[358,486,-68],
[358,484,-68],
[358,488,-68],
[358,490,-68],
[358,1898,-68],
[358,442,-68],
[358,448,-68],
[358,445,-68],
[358,2322,-68],
[358,2323,-68],
[358,590,-68],
[358,450,-68],
[358,451,-68],
[363,476,-68],
[363,487,-68],
[363,480,-68],
[363,481,-68],
[363,482,-68],
[363,1875,-68],
[363,483,-68],
[363,486,-68],
[363,484,-68],
[363,488,-68],
[363,490,-68],
[363,1898,-68],
[363,442,-68],
[363,448,-68],
[363,445,-68],
[363,2322,-68],
[363,2323,-68],
[363,590,-68],
[363,450,-68],
[363,451,-68],
[359,476,-68],
[359,487,-68],
[359,480,-68],
[359,481,-68],
[359,482,-68],
[359,1875,-68],
[359,483,-68],
[359,486,-68],
[359,484,-68],
[359,488,-68],
[359,490,-68],
[359,1898,-68],
[359,442,-68],
[359,448,-68],
[359,445,-68],
[359,2322,-68],
[359,2323,-68],
[359,590,-68],
[359,450,-68],
[359,451,-68],
[360,476,-68],
[360,487,-68],
[360,480,-68],
[360,481,-68],
[360,482,-68],
[360,1875,-68],
[360,483,-68],
[360,486,-68],
[360,484,-68],
[360,488,-68],
[360,490,-68],
[360,1898,-68],
[360,442,-68],
[360,448,-68],
[360,445,-68],
[360,2322,-68],
[360,2323,-68],
[360,590,-68],
[360,450,-68],
[360,451,-68],
[361,476,-68],
[361,487,-68],
[361,480,-68],
[361,481,-68],
[361,482,-68],
[361,1875,-68],
[361,483,-68],
[361,486,-68],
[361,484,-68],
[361,488,-68],
[361,490,-68],
[361,1898,-68],
[361,442,-68],
[361,448,-68],
[361,445,-68],
[361,2322,-68],
[361,2323,-68],
[361,590,-68],
[361,450,-68],
[361,451,-68],
[364,476,-68],
[364,487,-68],
[364,480,-68],
[364,481,-68],
[364,482,-68],
[364,1875,-68],
[364,483,-68],
[364,486,-68],
[364,484,-68],
[364,488,-68],
[364,490,-68],
[364,1898,-68],
[364,442,-68],
[364,448,-68],
[364,445,-68],
[364,2322,-68],
[364,2323,-68],
[364,590,-68],
[364,450,-68],
[364,451,-68],
[1569,476,-68],
[1569,487,-68],
[1569,480,-68],
[1569,481,-68],
[1569,482,-68],
[1569,1875,-68],
[1569,483,-68],
[1569,486,-68],
[1569,484,-68],
[1569,488,-68],
[1569,490,-68],
[1569,1898,-68],
[1569,442,-68],
[1569,448,-68],
[1569,445,-68],
[1569,2322,-68],
[1569,2323,-68],
[1569,590,-68],
[1569,450,-68],
[1569,451,-68],
[368,476,-68],
[368,487,-68],
[368,480,-68],
[368,481,-68],
[368,482,-68],
[368,1875,-68],
[368,483,-68],
[368,486,-68],
[368,484,-68],
[368,488,-68],
[368,490,-68],
[368,1898,-68],
[368,442,-68],
[368,448,-68],
[368,445,-68],
[368,2322,-68],
[368,2323,-68],
[368,590,-68],
[368,450,-68],
[368,451,-68],
[1895,476,-68],
[1895,487,-68],
[1895,480,-68],
[1895,481,-68],
[1895,482,-68],
[1895,1875,-68],
[1895,483,-68],
[1895,486,-68],
[1895,484,-68],
[1895,488,-68],
[1895,490,-68],
[1895,1898,-68],
[1895,442,-68],
[1895,448,-68],
[1895,445,-68],
[1895,2322,-68],
[1895,2323,-68],
[1895,590,-68],
[1895,450,-68],
[1895,451,-68],
[136,514,-16],
[136,518,-16],
[136,520,-16],

View File

@ -51,7 +51,7 @@ h1 {
width: var(--subwayHeight);
height: var(--subwayHeight);
color: black;
background: var(--yellow);
background: var(--warm-yellow);
border-radius: var(--subwayHeight);
text-align: center;
line-height: var(--subwayHeight);
@ -70,7 +70,7 @@ h1 {
#subway-nav .dest:hover { text-decoration:none; color:inherit; }
#subway-nav .dest:hover .disc { background:#222; color:white; }
#subway-nav .dest1 .disc { background:var(--green); font-size: calc(var(--subwayHeight) * 0.3); }
#subway-nav .dest2 .disc { background:var(--yellow); }
#subway-nav .dest2 .disc { background:var(--warm-yellow); }
#subway-nav .dest3 .disc { background:var(--red); color: white; }
@media only screen and (min-width: 987px) {
#subway-nav { --subwayHeight: 3.2rem; }
@ -147,7 +147,6 @@ h1 {
.dynmet-calc .arrow {
margin: 0 0.5em;
/*color: var(--red);*/
}
.dynmet-calc #dynmet-tracking {
@ -167,72 +166,31 @@ h1 {
color: white;
}
@media only screen and (max-width: 565px) {
.dynmet-calc { font-size: 1rem; }
.dynmet-calc .arrow { margin: 0; }
.dynmet-calc input { width:32px; }
}
#languages {}
.language-list {
column-count: 4;
column-gap: 32px;
column-fill: balance;
}
.language-list p { margin: 0; }
@media only screen and (max-width: 660px) {
.language-list { column-count: 3; }
}
@media only screen and (max-width: 540px) {
.language-list { column-count: 2; }
}
/* Character set table */
/* Character set table (main css comes from _include) */
.row.charset-title { padding-bottom: 0; }
.row.charset-title > h2 { text-align: center; }
.row.charset {
padding-top: 1rem;
padding-left: 0;
padding-right: 0;
/* maintain cascading margin-bottom */
}
.charset-table {
--gridColor: #bbb;
--columns: 24;
--tableWidth: 95vw;
flex: 1 1 auto;
padding: 0;
margin: 1rem auto;
max-width: var(--tableWidth);
width: var(--tableWidth);
overflow: hidden;
display: flex;
flex-wrap: wrap;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
box-shadow: -1px -1px 0 var(--gridColor),
-1px 0 0 var(--gridColor),
0 -1px 0 var(--gridColor);
}
.charset-table > c {
flex: 0 0 auto;
margin: 0;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
width: calc(var(--tableWidth) / var(--columns));
height: calc(var(--tableWidth) / var(--columns));
font-size: calc(100vw / calc(var(--columns) * 2));
line-height: 100%;
text-align: center;
font-feature-settings: "calt" 0; /* disable all */
background: white;
box-shadow: inset -1px -1px 0 var(--gridColor);
cursor: cell;
}
/* for window width >= 1600 */
@media only screen and (min-width: 1599px) {
.charset-table { --columns: 32; }
}
@media only screen and (max-width: 800px) {
.charset-table { --columns: 16; }
}
@media only screen and (max-width: 565px) {
.charset-table { --columns: 8; }
}
@keyframes charset-flash {
0% { background-color: black; color: white; }
20% { background-color: black; color: white; }
@ -244,7 +202,21 @@ h1 {
100% { background-color: white; color: inherit; }
}
.charset-table > c.flash {
.charset-table {
/*--gridColor: #559966;*/
--gridColor: transparent;
}
.charset-table > a {
cursor: cell;
border-radius: 2px;
}
.charset-table > a:hover {
/*color: white;
background: black;*/
color: black;
background: white;
}
.charset-table > a.flash {
animation: charset-flash 300ms 1;
animation-fill-mode: forwards;
animation-timing-function: ease-out;
@ -252,6 +224,7 @@ h1 {
/* FAQ */
grid.faq {
grid-row-gap: calc(var(--spacingv) * 3);
@ -269,8 +242,11 @@ boxes.features {
boxes.features box h3 + p {
margin-top:0.5em;
}
.features h3 a q {padding-left: 0.5em; color: transparent; float:right; font-weight:400; }
.features h3 a:hover q { color: inherit; }
/*.features h3 a q {padding-left: 0.5em; color: transparent; float:right; font-weight:400; }
.features h3 a:hover q { color: inherit; }*/
.features h3 a q {padding-left: 0.5em; opacity:0.3; float:right; font-weight:400; }
.features h3 a:hover q { opacity:1; }
boxes.features grid .sample {
word-break: break-word;

View File

@ -25,6 +25,8 @@ endfor
<link rel="stylesheet" href="index-var.css?v={{ index_var_css_v }}">
<input type="text" id="hidden-text-input">
<div class="noise-layer"></div>
<div class="row white"><div>
<!-- <h1>The Inter<br>typeface family</h1> -->
<grid columns=8>
@ -253,15 +255,13 @@ html { font-family: 'Inter', sans-serif; }
%}
{% if has_feature_col %}
<grid columns=8>
<grid columns=7>
<c span=1 class="low-contrast ">Feature</c>
<c span=3 class="low-contrast">Disabled</c>
<c span=1 class="low-contrast center-text"></c>
<c span=3 class="low-contrast">Enabled</c>
{% else %}
<grid columns=9>
<grid columns=8>
<c span=4 class="low-contrast">Disabled</c>
<c span=1 class="low-contrast center-text"></c>
<c span=4 class="low-contrast">Enabled</c>
{% endif %}
{% for s in f.samples %}
@ -280,18 +280,19 @@ html { font-family: 'Inter', sans-serif; }
%} {% if has_feature_col %}
<c span=1 class="">{{feat_tag}}</c>
<c span=3 class="sample ff-none">{{sample_in}}</c>
<c span=1 class="low-contrast center-text"></c>
<c span=3 class="sample ff-{{feat_tag}}">{{sample_out}}</c>
{% else %}
<c span=4 class="sample ff-none">{{sample_in}}</c>
<c span=1 class="low-contrast center-text"></c>
<c span=4 class="sample ff-{{feat_tag}}">{{sample_out}}</c>
{% endif %}
{% endfor %}
</grid>
<p class="example" title="CSS code">
<br>
<!-- <p class="example" title="CSS code">
<tt>font-feature-settings: '{{feat_tag}}' 1</tt>
</p>
</p> -->
{% if f.footer %}
<p>{{f.footer}}</p>
{% endif %}
@ -313,31 +314,44 @@ html { font-family: 'Inter', sans-serif; }
</div></div>
<div id="charset" class="row white charset-title">
<h2><a href="#charset">Character set</a></h2>
</div>
<div class="row white charset">
<div class="charset-table">
{% for g in site.data.glyphinfo.glyphs %}
{% comment %}
Ignore empty glyphs and glyphs without unicode mapping.
{% endcomment %}
{% if g[1] == 0 and g[2] %}
{% if g[3] %}
<c title="/{{g[0]}} U+{{g[2]}} ({{g[3]}})">&#x{{g[2]}}</c>
{% else %}
<c title="/{{g[0]}} U+{{g[2]}}">&#x{{g[2]}}</c>
{% endif %}
{% endif %}
<div id="languages" class="row white"><div>
<h2><a href="#languages">Language support</a></h2>
<br>
<div class="language-list">
{% for c in site.data.languages %}
<h4>{{c.category}}</h4>
{% for language in c.languages %}
<p>{{language}}</p>
{% endfor %}
{% endfor %}
</div>
</div></div>
<div id="charset" class="row green charset-title">
<div>
<h2><a href="#charset">Character set</a></h2>
<p>
All characters {{ site.data.glyphinfo.glyphs | size }} provided with Inter.
Tap a glyph to copy it to your clipboard.<br>
Use the <a href="glyphs/">Glyphs Browser</a> to inspect details like kerning and style variation.
</p>
</div>
</div>
<div class="row green charset">
{% include charset-table.html %}
</div>
<script>
;(function(){
function shouldHandleEvent(ev) {
if (!ev.metaKey && !ev.shiftKey && !ev.ctrlKey) {
ev.stopPropagation()
ev.preventDefault()
return true
}
return false
}
function onClickChar(ev) {
// Copy to clipboard.
@ -345,8 +359,11 @@ html { font-family: 'Inter', sans-serif; }
// This is an elaborate and ugly workaround to make it not suck
// on various browsers.
ev.preventDefault()
ev.stopPropagation()
// document.location.href = "/glyphs/?g=" + encodeURI(ev.target.dataset.glyphname)
if (!shouldHandleEvent(ev)) {
return false
}
var origel = ev.target
var el = origel.cloneNode(true)
@ -361,7 +378,7 @@ html { font-family: 'Inter', sans-serif; }
el.style.userSelect = 'text'
document.body.appendChild(el)
el.innerText = el.innerText + " " + el.title
el.innerText = el.innerText // + " " + el.title
el.contentEditable = true
el.readOnly = false
@ -401,11 +418,15 @@ html { font-family: 'Inter', sans-serif; }
var activeListener = { capture: true }
let cv = document.querySelector('.charset-table').querySelectorAll('c')
let cv = document.querySelector('.charset-table').querySelectorAll('a')
for (let i = 0; i < cv.length; i++) {
let c = cv[i]
c.addEventListener('pointerdown', onClickChar, activeListener)
c.addEventListener('mousedown', onClickChar, activeListener)
if (typeof PointerEvent == "undefined") {
c.addEventListener('mousedown', onClickChar, activeListener)
} else {
c.addEventListener('pointerdown', onClickChar, activeListener)
}
c.onclick = ev => !shouldHandleEvent(ev)
}
})();
</script>
@ -680,3 +701,7 @@ trackingEl.addEventListener('mousedown', onPointerdownTracking, activeListener)
updateTracking()
})();</script>
<script>(function(){
let el = document.querySelector(".noise-layer")
el.style.height = document.body.clientHeight + "px"
})()</script>

View File

@ -161,36 +161,7 @@ Ambiguation: (should not be fractions)
`)
samples.set('Feature: liga', `
dash[1-3]+gt\t\t-> --> --->
e{n,m}dash+gt\t> —>
lt+dash[1-3]\t\t<- <-- <---
lt+endash[1,3]\t\t< <
lt+emdash[1,3]\t<<———
lt+dash[1-2]+gt\t<-> <-->
lt+e{n,m}dash+gt\t<> <—>
equal[1,2]+gt\t\t=> ==>
lt+equal+equal\t<==
lt+equal[1,2]+gt\t<=> <==>
combined with calt to adjust to caps
A -> B <- C->D<-E=>F<=>G
A > B < C>D<E=>F<=>G
A —> B <— C—>D<—E=>F<=>G
A <-> B <> C <—> D<->E<>F<—>G
x<-yX<-Y
exceptions; should NOT yield arrows
x<-4 X<-4 < - - > <=
numeral+x+numeral => numeral+multiply+numeral
3x9 x9 x9x 9 x 9 x 9x 9 x 9 x 9
plain x when not surrounded by numerals
9x
x9
9xM
samples.set('Feature: rlig', `
Enclosing glyphs (glyph + {U+20DD,U+20DE})
U+20DD COMBINING ENCLOSING CIRCLE: ⃝
U+20DE COMBINING ENCLOSING SQUARE: ⃞
@ -224,13 +195,35 @@ U\u20DE V\u20DE W\u20DE X\u20DE Y\u20DE Z\u20DE !\u20DE ?\u
HE\u20DDLLO WO\u20DERLD
Note on combining-marks compatibility:
• liga=on: uses precomposed ligatures.
• liga=off: some browsers will compose glyphs
with combining marks (support is limited.)
• rlig=on: uses precomposed ligatures (default.)
• rlig=off: rely on layout engine to combine (limited support.)
`)
samples.set('Feature: calt', `
Arrows
dash[1-3]+gt\t\t-> --> --->
e{n,m}dash+gt\t> —>
lt+dash[1-3]\t\t<- <-- <---
lt+endash[1,3]\t\t< <
lt+emdash[1,3]\t<<———
lt+dash[1-2]+gt\t<-> <-->
lt+e{n,m}dash+gt\t<> <—>
equal[1,2]+gt\t\t=> ==>
lt+equal+equal\t<==
lt+equal[1,2]+gt\t<=> <==>
combined with calt to adjust to caps
A -> B <- C->D<-E=>F<=>G
A > B < C>D<E=>F<=>G
A —> B <— C—>D<—E=>F<=>G
A <-> B <> C <—> D<->E<>F<—>G
x<-yX<-Y
exceptions; should NOT yield arrows
x<-4 X<-4 < - - > <=
Case conversion
(m). (M). (6). [m]. [M]. [6]. {m}. {M}. {6}.
m@n. M@N
3×5 3 × 5 ×9 8×
@ -271,11 +264,11 @@ A+Y V+V W+W N+N X+X
:-) :) :—)
calt case should cascade:
U() U[] U{} rightx should be rightx.case
()U []U {}U special-cased as "delim' delim -> delim.case"
---U--- all hyphens should be hyphen.case
U-→(){}[]• all should be .case
x[]{}H "x br br" separate from "cb cb H"
U() U[] U{} \t rightx should be rightx.case
()U []U {}U \t special-cased as "delim' delim -> delim.case"
---U--- \t\t all hyphens should be hyphen.case
U-→(){}[]• \t all should be .case
x[]{}H \t\t "x br br" separate from "cb cb H"
left side cascades up to 5 characters:
••••••ABBA••••••
@ -283,22 +276,22 @@ left side cascades up to 5 characters:
@@@@@@M@@@@@@
++++++M++++++
x[x]. [X] x lc x lc followed by .case C .case
(Xx) lc uc uc lc
[Zzz] lc uc lc lc lc
x[x]. [X] \t x lc x lc followed by .case C .case
(Xx) \t\t lc uc uc lc
[Zzz] \t lc uc lc lc lc
(XX)
(x)
(X)
( ) M
() M
()M
X(_) .case around underscore next to uc
(_) lc otherwise
X(_) \t\t .case around underscore next to uc
(_) \t\t lc otherwise
Foo::Bar() foo::bar() Foo
foo::bar( ) Foo
foo::bar()Foo
foo::bar( )Foo
foo::bar( )Foo \t\t\t\t ← No support in Chrome
FOO::bar This is (a)Thing
:: dog :: Kitten
:: dog ::: Kitten
@ -308,6 +301,17 @@ FOO::bar This is (a)Thing
X() X()
x- X
x -- X
numeral+x+numeral => numeral+multiply+numeral
3x9 x9 x9x 9 x 9 x 9x 9 x 9 x 9
Note: AFAIK only Safari supports calt with whitespace.
In e.g. Chrome, only NxN works.
plain x when not surrounded by numerals
9x
x9
9xM
`)
@ -422,7 +426,7 @@ samples.set('Latin extended', `
Ā Ă Ą Ǎ Ǟ Ǡ Ǣ Ǻ Ǽ Ȁ Ȃ Ȧ Ⱥ
Ɓ Ƃ Ƀ
Ć Ĉ Ċ Č Ƈ Ȼ
Ď Đ Ɖ Ɗ DŽ Dž dž DZ Dz dz
Ď Đ Ɖ Ɗ Dž dž DZ Dz dz
Ē Ĕ Ė Ę Ě Ȅ Ȇ Ȩ Ɇ
Ĝ Ğ Ġ Ģ Ɠ Ǥ Ǧ Ǵ
Ĥ Ħ Ƕ Ȟ
@ -454,7 +458,7 @@ samples.set('Latin extended', `
ĵ ǰ ȷ ɉ
ķ ĸ ƙ ǩ
ĺ ļ ľ ŀ ƚ ł
ń ņ ň ʼn ŋ ƞ ǹ ȵ
ń ņ ň ŋ ƞ ǹ ȵ
ō ŏ ő œ ơ ǒ ǫ ǭ ǿ ȍ ȏ ȫ ȭ ȯ ȱ
ƥ
ŕ ŗ ř ȑ ȓ ɍ
@ -1759,8 +1763,8 @@ document.head.appendChild(fontCSS)
<div class="checkbox-group">
<span>Default-on features:</span>
<label title="Contextual alternates"><input type="checkbox" class="featopt" name="feat:calt=0"> Disable calt &nbsp;(Contextual alternates)</label>
<label title="Standard ligatures"><input type="checkbox" class="featopt" name="feat:liga=0"> Disable liga &nbsp;(Standard ligatures)</label>
<!-- <label title="Required ligatures"><input type="checkbox" class="featopt" name="feat:rlig=0"> Disable rlig &nbsp;(Required ligatures)</label> -->
<!-- <label title="Standard ligatures"><input type="checkbox" class="featopt" name="feat:liga=0"> Disable liga &nbsp;(Standard ligatures)</label> -->
<label title="Required ligatures"><input type="checkbox" class="featopt" name="feat:rlig=0"> Disable rlig &nbsp;(Required ligatures)</label>
<label title="Kerning"><input type="checkbox" class="featopt" name="feat:kern=0"> Disable kern &nbsp;(Kerning)</label>
</div>

View File

@ -12,7 +12,8 @@
/* colors */
--red: color(display-p3 0.94 0.19 0.04);
--yellow: color(display-p3 1 0.87 0.05);
--yellow: color(display-p3 1 0.96 0.05);
--warm-yellow: color(display-p3 1 0.87 0.05);
--light-yellow: color(display-p3 1 1 0.7);
--blue: rgb(3, 102, 230);
--green: rgb(38, 220, 78);
@ -23,7 +24,8 @@
/* sRGB colors */
:root {
--red: #F03009;
--yellow: #FFE310;
--yellow: #FFF310;
--warm-yellow: #FFE310;
--light-yellow: rgb(255, 255, 179);
}
}
@ -154,6 +156,8 @@ code {
}
pre {
white-space: pre-wrap;
line-break: loose;
overflow-x: auto;
}
q {
display: inline;
@ -240,6 +244,7 @@ h2 {
}
h3, .h3 {
font-weight: 700;
font-weight: 650;
font-size: 1.2rem;
letter-spacing: -0.018em;
line-height: calc(var(--spacingv) * 2);
@ -425,55 +430,45 @@ h2.banner {
/* narrow windows */
@media only screen and (max-width: 565px) {
.row {
padding-left:32px;
padding-right:32px;
padding-left: 24px;
padding-right: 24px;
}
.row.menu ul {
justify-content: space-between;
margin: 0 35px;
padding-bottom: 5px;
display: grid;
grid-template-columns: repeat(4,1fr);
margin: 0 20px;
}
.row.menu ul {
}
.row.menu ul li {
display: flex;
}
.row.menu ul li > a {
/*background:#666;*/
padding: 10px 15px;
flex: 0 1 100%;
margin: 0;
padding-right:0;
padding-left:0;
box-shadow: inset 1px 0 0 0 rgba(255,255,255,0.1);
}
.row.menu ul li.nav-home {
text-align:center;
margin: 0 0 -12px 0;
width: 100%;
.row.menu ul li:first-child > a {
margin-right: 0;
box-shadow: none;
}
.row.menu ul li.nav-home > a {
border-bottom: none;
padding: 0 1em;
margin: 0.5em 0;
line-height: 34px;
border-radius: 90px;
}
.row.menu ul li.nav-home > a:hover {
color: white;
background-color: #222;
text-decoration: none;
.row.menu ul li.nav-home a {
text-align: left;
}
}
/* small devices (<= iPhone 6+) */
@media only screen and (max-device-width: 414px) {
.row.menu ul {
margin: 0 5px;
}
/* progressively hide menu items */
@media only screen and (max-width: 680px) {
.row.menu .nav-lab { display: none; }
}
@media only screen and (max-width: 800px) {
.menu .nav-dynmetrics { display: none; }
@media only screen and (max-width: 565px) {
.row.menu .nav-download { display: none; }
}
@media only screen and (max-width: 640px) {
.menu .nav-download { display: none; }
}
@media only screen and (max-width: 375px) {
.menu .nav-source { display: none; }
}
@media only screen and (max-width: 250px) {
.menu .nav-lab { display: none; }
@media only screen and (max-width: 280px) {
.row.menu ul { grid-template-columns: repeat(3,1fr); }
.row.menu .nav-dynmetrics { display: none; }
}
@ -527,6 +522,19 @@ h2.banner {
color: #3B414A;
}
.noise-layer {
background-image: url(noise512.png);
background-size: 256px;
opacity: 0.03;
pointer-events: none;
position: absolute;
top:0;
left:0;
right:0;
/*bottom:0;*/
}
/* --------------------------------------------------------------------- */
ul { margin-left:1.1em; }
@ -640,7 +648,8 @@ boxes {
box {
overflow: auto;
flex: 1 1 0;
min-width: 280px;
box-sizing: border-box;
min-width: 270px;
max-width: 100%;
display: flex;
flex-direction: column;
@ -777,3 +786,69 @@ instead.
.ff-cv09 { font-feature-settings: 'kern' 1, 'cv09' 1; -webkit-font-feature-settings: 'kern' 1, 'cv09' 1; -ms-font-feature-settings: 'kern' 1, 'cv09' 1; -moz-font-feature-settings: 'kern' 1, 'cv09' 1; }
.ff-cv10 { font-feature-settings: 'kern' 1, 'cv10' 1; -webkit-font-feature-settings: 'kern' 1, 'cv10' 1; -ms-font-feature-settings: 'kern' 1, 'cv10' 1; -moz-font-feature-settings: 'kern' 1, 'cv10' 1; }
.ff-cv11 { font-feature-settings: 'kern' 1, 'cv11' 1; -webkit-font-feature-settings: 'kern' 1, 'cv11' 1; -ms-font-feature-settings: 'kern' 1, 'cv11' 1; -moz-font-feature-settings: 'kern' 1, 'cv11' 1; }
.row.charset {
padding-top: 1rem;
padding-left: 0;
padding-right: 0;
/* maintain cascading margin-bottom */
}
.charset-table {
--gridColor: #bbb;
--columns: 24;
--columnsL: 32;
--columnsS: 16;
--columnsXS: 8;
--tableWidth: 95vw;
flex: 1 1 auto;
padding: 0;
margin: 1rem auto;
max-width: var(--tableWidth);
width: var(--tableWidth);
overflow: hidden;
display: flex;
flex-wrap: wrap;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
box-shadow: -1px -1px 0 var(--gridColor),
-1px 0 0 var(--gridColor),
0 -1px 0 var(--gridColor);
}
.charset-table > a {
flex: 0 0 auto;
margin: 0;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
width: calc(var(--tableWidth) / var(--columns));
height: calc(var(--tableWidth) / var(--columns));
font-size: calc(100vw / calc(var(--columns) * 2));
line-height: 100%;
text-align: center;
font-feature-settings: "calt" 0; /* disable all */
box-shadow: inset -1px -1px 0 var(--gridColor);
text-decoration: none;
}
/* for window width >= 1600 */
@media only screen and (min-width: 1599px) {
.charset-table { --columns: var(--columnsL); }
}
@media only screen and (max-width: 800px) {
.charset-table { --columns: var(--columnsS); }
}
@media only screen and (max-width: 565px) {
.charset-table { --columns: var(--columnsXS); }
}

0
docs/res/close.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 232 B

0
docs/res/dismiss.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 250 B

View File

@ -1 +1 @@
<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.993.893L6.95 2.817l1.272.187A6 6 0 1 1 2 9h1a5 5 0 1 0 5.928-4.914l-.005.032-.79-.116A5.078 5.078 0 0 0 8 4v-.018L6.684 3.79l2.214 2.908-.796.606-3.287-4.319L9.459.047l.534.846z" fill="#000"/></svg>
<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.993.893L6.95 2.817l1.272.187A6 6 0 112 9h1a5 5 0 105.928-4.914l-.005.032-.79-.116A5.078 5.078 0 008 4v-.018L6.684 3.79l2.214 2.908-.796.606-3.287-4.319L9.459.047l.534.846z" fill="#000"/></svg>

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 279 B

View File

@ -1 +1 @@
<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.993.893L6.95 2.817l1.272.187A6 6 0 1 1 2 9h1a5 5 0 1 0 5.928-4.914l-.005.032-.79-.116A5.078 5.078 0 0 0 8 4v-.018L6.684 3.79l2.214 2.908-.796.606-3.287-4.319L9.459.047l.534.846z" fill="#fff"/></svg>
<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.993.893L6.95 2.817l1.272.187A6 6 0 112 9h1a5 5 0 105.928-4.914l-.005.032-.79-.116A5.078 5.078 0 008 4v-.018L6.684 3.79l2.214 2.908-.796.606-3.287-4.319L9.459.047l.534.846z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 279 B

BIN
docs/res/noise512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

0
docs/res/popup.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 281 B

2
docs/res/reset.svg Executable file → Normal file
View File

@ -1 +1 @@
<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.993.893L6.95 2.817l1.272.187A6 6 0 1 1 2 9h1a5 5 0 1 0 5.928-4.914l-.005.032-.79-.116A5.078 5.078 0 0 0 8 4v-.018L6.684 3.79l2.214 2.908-.796.606-3.287-4.319L9.459.047l.534.846z" fill="#fff"/></svg>
<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.993.893L6.95 2.817l1.272.187A6 6 0 112 9h1a5 5 0 105.928-4.914l-.005.032-.79-.116A5.078 5.078 0 008 4v-.018L6.684 3.79l2.214 2.908-.796.606-3.287-4.319L9.459.047l.534.846z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 KiB

After

Width:  |  Height:  |  Size: 416 KiB

0
docs/res/settings.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

2
docs/res/weights-and-styles.svg Executable file → Normal file

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 230 KiB

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 KiB

After

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Some files were not shown because too many files have changed in this diff Show More