This commit is contained in:
Rasmus Andersson 2017-08-28 02:36:29 -07:00
parent f582d72059
commit 4f790d0ae8
12 changed files with 38821 additions and 323 deletions

235
docs/glyphs/glyphs.css Normal file
View file

@ -0,0 +1,235 @@
h1 span.glyph-name {}
h1 span.glyph-name:before {
content: " / ";
color: rgba(0,0,0,0.2);
font-weight:400;
}
body.iframe {
background-color:#fff;
padding:20px 10px;
}
#glyphs {
display: flex;
flex-wrap: wrap;
padding-left: 6px;
overflow: hidden;
width:200%;
box-sizing: border-box;
transform-origin: 0 0;
transform: scale(0.5);
justify-content: center;
transition: transform 50ms ease-out;
}
body.single #glyphs {
justify-content: flex-start;
max-width:888px;
margin:0 auto;
padding-left: 0;
}
.glyph {
height: 346px;
width: 346px;
background-image: none !important; /* since .glyph is an `a` */
background-color: white;
border-radius: 9px;
margin-right: 6px;
margin-bottom: 6px;
display: flex;
justify-content: center;
position: relative;
text-shadow: none;
}
.glyph .baseline {
background: rgba(0,90,230,.6);
position: absolute;
left:0; right:0; bottom:64px;
height: 1px;
z-index:0;
visibility: hidden;
}
.glyph .names {
position: absolute;
left:20px; right:20px; bottom:6px;
color:white;
text-align: center;
font-size:1em;
}
.glyph:hover .name {
color: rgba(0,0,0,0.8);
}
.glyph .advance {
box-sizing: border-box;
position: relative;
width: 1px;
}
.glyph.zero-width .advance {
background: transparent;
border-left: 1px dashed transparent;
}
.glyph:hover .baseline {
visibility: visible;
}
.glyph:hover .advance {
background: rgba(0,90,200,0.1);
}
.glyph.zero-width:hover .advance {
border-color: #aaa;
}
/*#glyphs .glyph .img*/
.glyph svg {
/*min-width: 346px;*/
/*height: 346px;*/
background-repeat: no-repeat;
/*background-size: contain;*/
/*background-color: #f5f5f5;*/
position: absolute;
top:0; bottom:0;
z-index:1;
opacity:0.95;
}
.glyph .advancez {
display: block;
background: salmon;
z-index:0;
}
body.single .intro {
padding-bottom: 1em;
}
body.single .intro p {
display: none;
}
#single-info {
max-width: 500px;
}
#single-info ul {
list-style: none;
}
#single-info ul li {
margin-bottom: 6px;
}
#single-info .num {
font-feature-settings: 'ss01' 1, 'zero' 1;
}
#single-info .unicodeName {
font-feature-settings: 'case' 1;
padding-left:0.3em;
}
#single-info .colorMark {
display:inline-block;
vertical-align:baseline;
width:20px;
height:20px;
border-radius:50%;
border: 1px solid rgba(0,0,0,0.2);
}
#single-info .colorMark.none {
border: 1px dashed rgba(0,0,0,0.4);
}
#svgs {
display: none;
}
.row.kerning {
display: none;
}
body.single .row.kerning {
display: flex;
}
.row.kerning .empty {
opacity:0.3;
}
#kerning-list {
display: flex;
/*flex-direction: column;*/
flex-wrap: wrap;
}
#kerning-list .divider {
clear:both;
width:100%;
flex: 1 0 100%;
height: 1px;
background:rgba(0,0,0,0.1);
margin-bottom: 1em;
}
.kernpair {
/*background: white;*/
border-radius:3px;
background-image: none !important;
display: flex;
flex-direction: row;
flex-wrap: wrap;
position: relative;
margin:0 2em 2em 0;
text-shadow: none;
}
.kernpair:hover {
background: white;
}
.kernpair:target, .kernpair.selected {
background: rgba(250, 240, 0, 0.9);
}
.kernpair:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(0,0,0,0.4);
}
.kernpair .left, .kernpair .right {
width:100px;
height:100px;
/*background:rgba(40,240,90,0.3);*/
background-size: contain;
background-repeat: no-repeat;
opacity:0.8;
}
.kernpair:hover .left, .kernpair:hover .right {
opacity:0.9;
}
.kernpair.selected .left, .kernpair.selected .right {
opacity:1;
}
/*.kernpair .left { background-color:rgba(120,90,140,0.3); }*/
.kernpair .kern {
position: absolute;
/*background-color: blue;*/
background-color: rgba(255,0,0,0.1);
right:0; top:0; bottom:0;
z-index:9;
}
.kernpair .kern.pos {
background-color: rgba(36,207,128,0.3);
}
.kernpair:hover .kern, .kernpair.selected .kern {
background-color: rgba(255,0,0,0.5);
}
.kernpair:hover .kern.pos, .kernpair.selected .kern.pos {
background-color: rgba(36,207,128,0.5);
}
.kernpair .kern .label {
position: absolute;
white-space: nowrap;
opacity:0.9;
height: 20px;
right:-8px; bottom:-20px;
z-index:1;
text-align: center;
color: rgba(255,0,0,0.8);
visibility:hidden;
}
.kernpair .kern.pos .label {
color: rgba(36,207,128,0.8);
}
.kernpair:hover .kern .label,
.kernpair.selected .kern .label {
visibility:visible;
}

757
docs/glyphs/glyphs.js Normal file
View file

@ -0,0 +1,757 @@
// constants
var kSVGScale = 0.1 // how bmuch metrics are scaled in the SVGs
var kGlyphSize = 346 // at kSVGScale. In sync with CSS and SVGs
var kUPM = 2816
if (!isMac) {
Array.prototype.forEach.call(document.querySelectorAll('kbd'), function(e) {
if (e.innerText == '\u2318') {
e.innerText = 'Ctrl'
}
})
}
function httpget(url, cb) {
var req = new XMLHttpRequest();
req.addEventListener("load", function() {
cb(this.responseText, this)
})
req.open("GET", url)
req.send()
}
function fetchGlyphInfo(cb) {
httpget("../lab/glyphinfo.json", function(res) {
cb(JSON.parse(res).glyphs)
})
}
function fetchMetrics(cb) {
httpget("metrics.json", function(res) {
cb(JSON.parse(res))
})
}
var glyphInfo = null
var glyphMetrics = null
function initMetrics(data) {
// metrics.json uses a compact format with numerical glyph indentifiers
// in order to minimize file size.
// 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) {
var name = nameIds[id]
var v = metrics0[id]
// v : [width, advance, left, right]
metrics[name] = {
width: v[0],
advance: v[1],
left: v[2],
right: v[3]
}
})
var kerningLeft = {} // { glyphName: {rightGlyphName: kerningValue, ...}, ... }
var kerningRight = {}
data.kerning.forEach(function (t) {
// each entry looks like this:
// [leftGlyphId, rightGlyphId, kerningValue]
var leftName = nameIds[t[0]]
if (!leftName) {
console.error('nameIds missing', t[0])
}
var rightName = nameIds[t[1]]
if (!rightName) {
console.error('nameIds missing', t[1])
}
var kerningValue = t[2]
var lm = kerningLeft[leftName]
if (!lm) {
kerningLeft[leftName] = lm = {}
}
lm[rightName] = kerningValue
var rm = kerningRight[rightName]
if (!rm) {
kerningRight[rightName] = rm = {}
}
rm[leftName] = kerningValue
})
glyphMetrics = {
metrics: metrics,
kerningLeft: kerningLeft,
kerningRight: kerningRight,
}
// console.log('glyphMetrics', glyphMetrics)
}
function fetchAll(cb) {
var i = 0
var res = {}
var decr = function(){
if (--i == 0) {
cb(res)
}
}
i++
fetchGlyphInfo(function(r){ glyphInfo = r; decr() })
i++
fetchMetrics(function(r){
initMetrics(r)
decr()
})
}
fetchAll(render)
var styleSheet = document.styleSheets[document.styleSheets.length-1]
var glyphRule, baselineRule, zeroWidthAdvRule
var currentScale = 0
var defaultSingleScale = 1
var currentSingleScale = 1
var defaultGridScale = 0.4
var currentGridScale = defaultGridScale
var glyphs = document.getElementById('glyphs')
function updateLayoutAfterChanges() {
var height = parseInt(window.getComputedStyle(glyphs).height)
var margin = height - (height * currentScale)
// console.log('scale:', currentScale, 'height:', height, 'margin:', margin)
if (currentScale > 1) {
glyphs.style.marginBottom = null
} else {
glyphs.style.marginBottom = -margin + 'px'
}
}
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)]
baselineRule = styleSheet.cssRules[styleSheet.insertRule('#glyphs .glyph .baseline {}', 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';
}
}
baselineRule.style.height = hairline + 'px'
zeroWidthAdvRule.style.borderWidth = (hairline) + 'px'
updateLayoutAfterChanges()
requestAnimationFrame(updateLayoutAfterChanges)
}
function encodeQueryString(q) {
return Object.keys(q).map(function(k) {
if (k) {
var v = q[k]
return encodeURIComponent(k) + (v ? '=' + encodeURIComponent(v) : '')
}
}).filter(function(s) { return !!s }).join('&')
}
function parseQueryString(qs) {
var q = {}
qs.replace(/^\?/,'').split('&').forEach(function(c) {
var kv = c.split('=')
var k = decodeURIComponent(kv[0])
if (k) {
q[k] = kv[1] ? decodeURIComponent(kv[1]) : null
}
})
return q
}
var queryString = parseQueryString(location.search)
var glyphNameEl = null
var baseTitle = document.title
var flippedLocationHash = false
var singleInfo = document.querySelector('#single-info')
singleInfo.parentElement.removeChild(singleInfo)
singleInfo.style.display = 'block'
function updateLocation() {
queryString = parseQueryString(location.search)
// var glyphs = document.getElementById('glyphs')
var h1 = document.querySelector('h1')
if (queryString.g) {
if (!glyphNameEl) {
glyphNameEl = document.createElement('span')
glyphNameEl.className = 'glyph-name'
}
document.title = queryString.g + ' ' + baseTitle
glyphNameEl.innerText = queryString.g
h1.appendChild(glyphNameEl)
document.body.classList.add('single')
setScale(currentSingleScale)
} else {
document.title = baseTitle
if (glyphNameEl) {
h1.removeChild(glyphNameEl)
}
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()
}
window.onpopstate = function(ev) {
updateLocation()
}
function navto(url) {
history.pushState({}, "Glyphs", url)
updateLocation()
window.scrollTo(0,0)
}
function wrapIntLink(a) {
a.addEventListener('click', function(ev) {
if (!ev.metaKey && !ev.ctrlKey && !ev.shiftKey) {
ev.preventDefault()
navto(a.href)
}
})
}
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
}
})()
// Maps glyphname to glyphInfo. Only links to first found entry for a flyph.
var glyphInfoMap = {}
var needsUpdateGlyphInfoMap = true
function render() {
if (!glyphInfo) {
return
}
var rootEl = document.getElementById('glyphs')
rootEl.style.display = 'none'
rootEl.innerText = ''
// glyphInfo: {
// "glyphs": [
// [name :string, unicode? :int|null, unicodeName? :string, color? :string|null],
// ["A", 65, "LATIN CAPITAL LETTER A", "#dbeaf7"],
// ...
// ],
// }
//
// Note: Glyph names might appear multiple times (always adjacent) when a glyph is
// represented by multiple Unicode code points. For example:
//
// ["Delta", 916, "GREEK CAPITAL LETTER DELTA"],
// ["Delta", 8710, "INCREMENT"],
//
var glyphs = glyphInfo
var singleGlyph = null
var lastGlyphEl = null
var lastGlyphName = ''
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
}
}
})
needsUpdateGlyphInfoMap = false
if (singleGlyph) {
renderSingleInfo(singleGlyph)
rootEl.appendChild(singleInfo)
}
rootEl.style.display = null
updateLayoutAfterChanges()
}
function renderGlyphGraphic(glyphName) {
var g = glyphInfoMap[glyphName]
return g ? renderGlyphGraphicG(g) : null
}
function renderGlyphGraphicG(g, lastGlyphName, lastGlyphEl, singleGlyph) {
var name = g[0]
var names, glyph
var svg = svgRepository[name]
if (!svg) {
// ignore
return null
}
var metrics = glyphMetrics.metrics[name]
if (!metrics) {
console.error('missing metrics for', name)
}
var info = {
name: name,
unicode: g[1],
unicodeName: g[2],
color: g[3],
// These are all in 1:1 UPM (not scaled)
advance: metrics.advance,
left: metrics.left,
right: metrics.right,
width: metrics.width,
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+' + fmthex(info.unicode)
names.innerText += ' U+' + fmthex(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')
}
}
return
}
// console.log('svg for', name, svg.width.baseVal.value, '->', svg, '\n', info)
glyph = document.createElement('a')
glyph.className = 'glyph'
glyph.href = '?g=' + encodeURIComponent(name)
wrapIntLink(glyph)
info.element = glyph
if (!queryString.g) {
glyph.title = name
}
var baseline = document.createElement('div')
baseline.className = 'baseline'
glyph.appendChild(baseline)
names = document.createElement('div')
names.className = 'names'
names.innerText = name
if (info.unicode) {
var ucid = ' U+' + fmthex(info.unicode)
names.innerText += ' U+' + fmthex(info.unicode, 4)
if (!queryString.g) {
glyph.title += ucid
}
}
if (info.unicodeName) {
names.innerText += ' ' + info.unicodeName
if (!queryString.g) {
glyph.title += ' (' + info.unicodeName + ')'
}
}
glyph.appendChild(names)
var scaledAdvance = info.advance * kSVGScale
if (scaledAdvance > kGlyphSize) {
glyph.style.width = scaledAdvance.toFixed(2) + 'px'
}
var adv = document.createElement('div')
adv.className = 'advance'
glyph.appendChild(adv)
adv.appendChild(svg)
svg.style.left = (info.left * kSVGScale).toFixed(2) + 'px'
if (info.advance <= 0) {
glyph.className += ' zero-width'
} else {
adv.style.width = scaledAdvance.toFixed(2) + 'px'
}
return info
}
function renderSingleInfo(g) {
var e = singleInfo
e.querySelector('.name').innerText = g.name
function setv(el, name, textValue) {
el.querySelector('.' + name).innerText = textValue
}
var unicode = e.querySelector('.unicode')
function configureUnicodeView(el, g) {
setv(el, 'unicodeCodePoint', g.unicode ? 'U+' + fmthex(g.unicode, 4) : '')
setv(el, 'unicodeName', g.unicodeName || '')
}
// remove any previous alternate unicode list items
var rmli = unicode
while ((rmli = rmli.nextSibling)) {
if (rmli.nodeType == Node.ELEMENT_NODE) {
if (!rmli.parentElement || !rmli.classList.contains('unicode')) {
break
}
rmli.parentElement.removeChild(rmli)
}
}
configureUnicodeView(unicode, g)
if (g.alternates) {
var refnode = unicode.nextSibling
g.alternates.forEach(function(g) {
var li = unicode.cloneNode(true)
configureUnicodeView(li, g)
if (refnode) {
unicode.parentElement.insertBefore(li, unicode.nextSibling)
} else {
unicode.parentElement.appendChild(li)
}
})
}
e.querySelector('.advanceWidth').innerText = g.advance
e.querySelector('.marginLeft').innerText = g.left
e.querySelector('.marginRight').innerText = g.right
var colorMark = e.querySelector('.colorMark')
if (g.color) {
colorMark.title = g.color.toUpperCase()
colorMark.style.background = g.color
colorMark.classList.remove('none')
} else {
colorMark.title = '(None)'
colorMark.style.background = null
colorMark.classList.add('none')
}
var svg = svgRepository[g.name]
var svgFile = e.querySelector('.svgFile')
svgFile.download = g.name + '.svg'
svgFile.href = getSvgDataURI(svg)
renderSingleKerning(g)
}
var cachedSVGDataURIs = {}
function getSvgDataURI(svg) {
var cached = cachedSVGDataURIs[svg.id]
if (!cached) {
cached = 'data:image/svg+xml,' + svg.outerHTML.replace(/[\r\n]+/g, '')
cachedSVGDataURIs[svg.id] = cached
}
return cached
}
function pxround(n) {
return Math.round(n * 2) / 2
}
function selectKerningPair(id, directly) {
Array.prototype.forEach.call(
document.querySelectorAll('.kernpair.selected'),
function(e) {
e.classList.remove('selected')
}
)
var el = document.getElementById(id)
if (el) {
el.classList.add('selected')
if (!directly) {
el.scrollIntoViewIfNeeded()
}
}
history.replaceState({}, '', location.search + '#' + id)
}
// return true if some kerning was rendered
function renderSingleKerning(g) {
var kerningList = document.getElementById('kerning-list')
kerningList.style.display = 'none'
kerningList.innerText = ''
var thisSvg = svgRepository[g.name]
var thisSvgURI = getSvgDataURI(thisSvg)
if (!thisSvg) {
kerningList.style.display = null
return false
}
var kerningAsLeft = glyphMetrics.kerningLeft[g.name] || {}
var kerningAsRight = glyphMetrics.kerningRight[g.name] || {}
var kerningAsLeftKeys = Object.keys(kerningAsLeft)
var kerningAsRightKeys = Object.keys(kerningAsRight)
if (kerningAsLeftKeys.length == 0 && kerningAsRightKeys.length == 0) {
var p = document.createElement('p')
p.className = 'empty'
p.innerText = 'No kerning'
kerningList.appendChild(p)
kerningList.style.display = null
return false
}
var lilGlyphSize = 128
var lilScale = lilGlyphSize / kGlyphSize
function mkpairGlyph(glyphName, side, kerningValue, svgURI) {
var metrics = glyphMetrics.metrics[glyphName]
var svgWidth = pxround(metrics.width * kSVGScale * lilScale)
var el = document.createElement('div')
var leftMargin = metrics.left
var rightMargin = metrics.right
if (side == 'left') {
rightMargin += kerningValue
} else {
leftMargin += kerningValue
}
leftMargin = leftMargin * kSVGScale * lilScale
rightMargin = rightMargin * kSVGScale * lilScale
el.className = side
el.style.backgroundImage = "url('" + svgURI + "')"
el.style.backgroundSize = svgWidth + 'px ' + lilGlyphSize + 'px'
el.style.width = svgWidth + 'px'
el.style.height = lilGlyphSize + 'px'
el.style.marginLeft = pxround(leftMargin) + 'px'
el.style.marginRight = pxround(rightMargin) + 'px'
return el
}
function mkpairs(kerningInfo, selfName, self, side) {
var asLeftSide = side == 'left'
var idPrefix = asLeftSide ? 'kernl-' : 'kernr-'
var keys = Object.keys(kerningInfo)
var otherSide = asLeftSide ? 'right' : 'left'
keys.forEach(function(glyphName) {
var kerningValue = kerningInfo[glyphName]
var otherSvg = svgRepository[glyphName]
var pair = document.createElement('a')
pair.className = 'kernpair'
pair.title = (
asLeftSide ? selfName + '/' + glyphName + ' ' + kerningValue :
glyphName + '/' + selfName + ' ' + kerningValue
)
pair.id = idPrefix + glyphName
pair.href = '#' + pair.id
pair.onclick = function(ev) {
selectKerningPair(pair.id)
ev.preventDefault()
ev.stopPropagation()
}
var otherEl = mkpairGlyph(glyphName, otherSide, kerningValue, getSvgDataURI(otherSvg))
if (asLeftSide) {
if (self.parentNode) {
pair.appendChild(self.cloneNode(true))
} else {
pair.appendChild(self)
}
pair.appendChild(otherEl)
} else {
pair.appendChild(otherEl)
if (self.parentNode) {
pair.appendChild(self.cloneNode(true))
} else {
pair.appendChild(self)
}
}
var kern = document.createElement('div')
kern.className = 'kern ' + (kerningValue < 0 ? 'neg' : 'pos')
var absKernVal = Math.abs(kerningValue)
var kernWidth = Math.max(1, pxround(absKernVal * kSVGScale * lilScale))
kern.style.width = kernWidth + 'px'
var leftMetrics = glyphMetrics.metrics[asLeftSide ? selfName : glyphName]
var leftAdvance = leftMetrics.advance
kern.style.left = pxround((leftAdvance - absKernVal) * kSVGScale * lilScale) + 'px'
pair.appendChild(kern)
var label = document.createElement('div')
label.className = 'label'
label.innerText = kerningValue
kern.appendChild(label)
kerningList.appendChild(pair)
})
return keys.length != 0
}
var selfLeft = mkpairGlyph(g.name, 'left', 0, thisSvgURI)
var selfRight = mkpairGlyph(g.name, 'right', 0, thisSvgURI)
if (mkpairs(kerningAsLeft, g.name, selfLeft, 'left')) {
var div = document.createElement('div')
div.className = 'divider'
kerningList.appendChild(div)
}
mkpairs(kerningAsRight, g.name, selfRight, 'right')
if (location.hash && location.hash.indexOf('#kern') == 0) {
var id = location.hash.substr(1)
setTimeout(function(){
selectKerningPair(id)
},1)
}
kerningList.style.display = null
return true
}
function fmthex(cp, minWidth) {
let s = cp.toString(16).toUpperCase()
while (s.length < minWidth) {
s = '0' + s
}
return s
}
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()
}
}
})
updateLocation()

3202
docs/glyphs/index.html Normal file

File diff suppressed because it is too large Load diff

33977
docs/glyphs/metrics.json Normal file

File diff suppressed because it is too large Load diff

393
docs/index.css Normal file
View file

@ -0,0 +1,393 @@
* { margin:0; padding:0; }
html { }
body {
background-color: #f4f4f4;
color: #414141;
font: 16px/22px Interface, sans-serif;
letter-spacing: -0.1px;
font-weight: 400;
padding-bottom: 30px;
font-kerning: normal;
-moz-font-feature-settings: "kern" 1;
-webkit-font-feature-settings: "kern" 1;
font-feature-settings: "kern" 1;
}
a {
color: inherit;
text-decoration: underline;
word-break: break-word;
word-wrap: break-word;
}
a:hover {
color: rgb(48, 112, 232);
}
a.plain, a.fat {
/* !important needed for qualification over @media further down */
background: none !important;
text-shadow: none !important;
text-decoration: none;
}
a.fat {
font-weight:500;
}
p {
margin: 20px 0;
}
code, pre, q {
font-family: "SFMono-Regular", Menlo, Consolas, Inconsolata, monospace;
font-size:0.96em;
}
code {
display: block;
border-radius:1px;
padding: 0.5em 0;
overflow: auto;
}
pre, q {
display: inline;
white-space: pre-wrap;
}
q {
display: inline;
}
q:before {
content: "";
}
q:after {
content: "";
}
kbd {
font-feature-settings: 'kern' 1, 'case' 1;
border: 1px solid rgba(0,0,0,0.18);
border-radius: 3px;
padding:0.1em 0.2em;
margin:0 0.1em;
}
dem { /* de-emphasize */
font-weight: 400;
opacity: 0.7;
}
h1, h2, h3 {
font-weight: 500;
}
h1 {
color: #333;
font-size: 38px;
letter-spacing: -1.3px;
line-height: 40px;
text-indent: -2px;
margin-bottom: 30px;
margin-top: 10px;
}
h2 {
font-size: 24px;
letter-spacing: -0.4px;
line-height: 30px;
margin-bottom: 25px;
margin-top: 10px;
}
h2.back {
color:rgba(0,0,0,0.2);
font-size: inherit;
font-weight:400;
margin:0;
margin-top:-1.9em;
}
h2.back a:hover {
color: black;
margin-left:-1.6em;
}
h2.back a:hover::before {
content: "<- ";
}
h3 {
font-size: inherit;
}
h1 > a, h2 > a, h3 > a {
color: inherit;
text-decoration: none;
text-shadow: none;
background: none !important;
}
.row {
padding: 50px;
/*background: salmon;*/
display: flex;
justify-content: center;
/*background: white;*/
}
.row > * {
width:100%;
max-width: 888px;
flex: 1 0 100%;
/*background: white;*/
}
.row-divider {
margin:0 auto;
max-width: 888px;
height: 1px;
border-bottom: 1px dashed rgba(0,0,0,0.09);
}
/* small screens */
@media only screen and (max-device-width: 736px) {
.row {
padding-left: 20px;
padding-right: 20px;
}
}
.row.white {
background: white;
}
.row.dark {
background: #2b2b2b;
color: #99999b;
}
.row.dark a:hover {
color: rgb(164, 188, 255);
}
.row.dark h2, .row.dark h2 > a {
color: #ccc;
background: none;
}
.row.color1 {
background: #C0CDE2;
color: #3B414A;
}
/*
Medium.com-style link underline for high-density displays.
Currently only enabled on Mac as the lines don't render correctly on
Windows (even in Chrome) for some reason.
*/
@media (-webkit-min-device-pixel-ratio: 1.5) {
a {
text-decoration: none;
background-image:
linear-gradient(to bottom,
rgba(0,0,0,.6) 50%,
rgba(0,0,0,0) 50%);
background-repeat: repeat-x;
background-size: 2px .1em;
background-position: 0 1.15em;
text-shadow:
/* creates "openings" for descenders in the underline */
-1px -1px 0 #f4f4f4,
1px -1px 0 #f4f4f4,
-1px 1px 0 #f4f4f4,
1px 1px 0 #f4f4f4;
}
body.mac_or_ios a {
/* line height calculated differently on mac c/t windows */
background-position: 0 1.045em;
}
a:hover {
background-image:
linear-gradient(to bottom,
rgba(48, 112, 232, 1) 50%,
rgba(48, 112, 232, 0) 50%);
}
.row.white a {
text-shadow:
-1px -1px 0 white,
1px -1px 0 white,
-1px 1px 0 white,
1px 1px 0 white;
}
.row.dark a {
background-image:
linear-gradient(to bottom,
rgba(255,255,255,.3) 50%,
rgba(255,255,255,0) 50%);
text-shadow:
-1px -1px 0 #2b2b2b,
1px -1px 0 #2b2b2b,
-1px 1px 0 #2b2b2b,
1px 1px 0 #2b2b2b;
}
.row.dark a:hover {
background-image:
linear-gradient(to bottom,
rgba(164, 188, 255, 1) 50%,
rgba(164, 188, 255, 0) 50%);
}
}
::selection {
background: rgb(48, 112, 232);
color: white;
text-shadow: none;
}
::-moz-selection {
background: rgb(48, 112, 232);
color: white;
text-shadow: none;
}
.row.dark ::selection {
background: rgb(218, 228, 255);
color: black;
}
.row.dark ::-moz-selection {
background: rgb(164, 188, 255);
color: black;
}
ul {
margin-left:1.1em;
}
a > img {
display: block;
}
#repertoire-image {
display:block;
width:100%;
height:40vw;
background-image: url(res/repertoire.png);
background-repeat: no-repeat;
background-size: cover;
background-blend-mode: multiply;
background-color: #f4f4f4;
}
/* FAQ */
ul.faq {
list-style:none;
display: flex;
flex-direction: column;
margin-left:0;
}
ul.faq > li {
padding-right: 6px;
margin-bottom: 6px;
padding-left: 1.5em;
text-indent: -1.5em;
}
ul.faq > li > a {
display: inline;
}
ul.faq > li:target {
background: #fafa88;
}
li.q {
font-weight: 500;
margin-top:1.5em;
}
ul > li.q:first-child, ul > li.q:not([id]) {
margin-top:0;
}
li.q:before {
content: "Q  "; /* contains NO-BREAK SPACE */
opacity: 0.6;
}
li.q:after {
content: "";
}
li.a:before {
content: "A  "; /* contains NO-BREAK SPACE */
opacity: 0.6;
}
tablex {
display: flex;
}
tablex > t {
display: table;
}
tablex > t > h {
display: table-row;
opacity:0.4;
}
tablex > t > h > * {
padding-bottom:1em;
}
tablex > t > h to {
visibility: hidden;
}
tablex > t > r {
text-decoration: none;
display: table-row;
}
tablex in, tablex to, tablex out {
display: table-cell;
width: 5%;
white-space: pre;
padding-bottom:0.5em;
}
/*tablex to {
width:0;
}*/
tablex to::after {
font-feature-settings: 'calt' 1, 'case' 1;
content: " → ";
color: rgba(0,0,0,0.2);
}
tablex in, tablex out {
/*background: #E3E6F1;*/
color: rgba(0,0,0,0.8);
border-radius: 1px;
}
tablex in {
font-feature-settings: 'calt' 0;
}
tablex out {
font-feature-settings: 'calt' 1;
}
tablex out.zero { font-feature-settings: 'calt' 1, 'zero' 1; }
tablex out.tnum { font-feature-settings: 'calt' 1, 'tnum' 1; }
tablex out.case { font-feature-settings: 'calt' 1, 'case' 1; }
tablex out.frac { font-feature-settings: 'calt' 1, 'frac' 1; }
tablex out.ss01 { font-feature-settings: 'calt' 1, 'ss01' 1; }
tablex em {
font-style: inherit;
background: #FBE9A3;
color: rgba(0,0,0,1);
}
boxes {
display: flex;
flex-wrap: wrap;
justify-content: stretch;
margin-right:-1em;
}
box {
display: flex;
flex-direction: column;
background: white;
padding:2em;
border-radius: 1px;
margin-right:1em;
margin-bottom:1em;
flex: 1 1 10%;
/*width:220px;*/
}
box:first-child {
margin-left:0;
}
box h3 {
margin-bottom:0.8em;
}
#glyph-repertoire-iframe {
pointer-events: none;
}
/*#glyph-repertoire-p {
cursor: pointer;
}*/
a.glyph-repertoire {
display:block;
}

View file

@ -27,267 +27,10 @@
<link rel="icon" type="image/png" href="favicon.ico" /> <link rel="icon" type="image/png" href="favicon.ico" />
<link href="interface.css" rel="stylesheet"> <link href="interface.css" rel="stylesheet">
<style type="text/css"> <link href="index.css" rel="stylesheet">
* { margin:0; padding:0; }
html { }
body {
background-color: #f4f4f4;
color: #414141;
font: 16px/22px Interface, sans-serif;
letter-spacing: -0.1px;
font-weight: 400;
padding-bottom: 30px;
font-kerning: normal;
-moz-font-feature-settings: "kern";
-webkit-font-feature-settings: "kern";
font-feature-settings: "kern";
}
a {
color: inherit;
text-decoration: underline;
word-break: break-word;
word-wrap: break-word;
}
a:hover {
color: rgb(48, 112, 232);
}
a.plain, a.fat {
/* !important needed for qualification over @media further down */
background: none !important;
text-shadow: none !important;
text-decoration: none;
}
a.fat {
font-weight:500;
}
p {
margin: 20px 0;
}
code, pre {
font-family: "SFMono-Regular", Menlo, Consolas, Inconsolata, monospace;
font-size:0.96em;
}
code {
display: block;
border-radius:1px;
padding: 0.5em 0;
overflow: auto;
}
pre {
display: inline;
white-space: pre-wrap;
}
dem { /* de-emphasize */
font-weight: 400;
opacity: 0.7;
}
h1, h2, h3 {
font-weight: 500;
}
h1 {
color: #333;
font-size: 38px;
letter-spacing: -1.3px;
line-height: 40px;
text-indent: -2px;
margin-bottom: 30px;
margin-top: 10px;
}
h2 {
font-size: 24px;
letter-spacing: -0.4px;
line-height: 30px;
margin-bottom: 25px;
margin-top: 10px;
}
h1 > a, h2 > a, h3 > a {
color: inherit;
text-decoration: none;
text-shadow: none;
background: none !important;
}
.row {
padding: 50px;
/*background: salmon;*/
display: flex;
justify-content: center;
/*background: white;*/
}
.row > * {
width:100%;
max-width: 888px;
flex: 1 0 100%;
/*background: white;*/
}
/* small screens */
@media only screen and (max-device-width: 736px) {
.row {
padding-left: 20px;
padding-right: 20px;
}
}
.row.white {
background: white;
}
.row.dark {
background: #2b2b2b;
color: #99999b;
}
.row.dark a:hover {
color: rgb(164, 188, 255);
}
.row.dark h2, .row.dark h2 > a {
color: #ccc;
background: none;
}
/*
Medium.com-style link underline for high-density displays.
Currently only enabled on Mac as the lines don't render correctly on
Windows (even in Chrome) for some reason.
*/
@media (-webkit-min-device-pixel-ratio: 1.5) {
a {
text-decoration: none;
background-image:
linear-gradient(to bottom,
rgba(0,0,0,.6) 50%,
rgba(0,0,0,0) 50%);
background-repeat: repeat-x;
background-size: 2px .1em;
background-position: 0 1.15em;
text-shadow:
/* creates "openings" for descenders in the underline */
-1px -1px 0 #f4f4f4,
1px -1px 0 #f4f4f4,
-1px 1px 0 #f4f4f4,
1px 1px 0 #f4f4f4;
}
body.mac_or_ios a {
/* line height calculated differently on mac c/t windows */
background-position: 0 1.045em;
}
a:hover {
background-image:
linear-gradient(to bottom,
rgba(48, 112, 232, 1) 50%,
rgba(48, 112, 232, 0) 50%);
}
.row.white a {
text-shadow:
-1px -1px 0 white,
1px -1px 0 white,
-1px 1px 0 white,
1px 1px 0 white;
}
.row.dark a {
background-image:
linear-gradient(to bottom,
rgba(255,255,255,.3) 50%,
rgba(255,255,255,0) 50%);
text-shadow:
-1px -1px 0 #2b2b2b,
1px -1px 0 #2b2b2b,
-1px 1px 0 #2b2b2b,
1px 1px 0 #2b2b2b;
}
.row.dark a:hover {
background-image:
linear-gradient(to bottom,
rgba(164, 188, 255, 1) 50%,
rgba(164, 188, 255, 0) 50%);
}
}
.row ::selection {
background: rgb(48, 112, 232);
color: white;
text-shadow: none;
}
.row ::-moz-selection {
background: rgb(48, 112, 232);
color: white;
text-shadow: none;
}
.row.dark ::selection {
background: rgb(218, 228, 255);
color: black;
}
.row.dark ::-moz-selection {
background: rgb(164, 188, 255);
color: black;
}
a > img {
display: block;
}
#repertoire-image {
display:block;
width:100%;
height:40vw;
background-image: url(res/repertoire.png);
background-repeat: no-repeat;
background-size: cover;
background-blend-mode: multiply;
background-color: #f4f4f4;
}
/* FAQ */
ul.faq {
list-style:none;
display: flex;
flex-direction: column;
}
ul.faq > li {
padding-right: 6px;
margin-bottom: 6px;
padding-left: 1.5em;
text-indent: -1.5em;
}
ul.faq > li > a {
display: inline;
}
ul.faq > li:target {
background: #fafa88;
}
li.q {
font-weight: 500;
margin-top:1.5em;
}
ul > li.q:first-child, ul > li.q:not([id]) {
margin-top:0;
}
li.q:before {
content: "Q  "; /* contains NO-BREAK SPACE */
opacity: 0.6;
}
li.a:before {
content: "A  "; /* contains NO-BREAK SPACE */
opacity: 0.6;
}
</style>
</head> </head>
<body> <body>
<script> <script src="index.js"></script>
if (!window.MSStream &&
/mac|ipad|iphone|ipod/i.test(navigator.userAgent))
{
document.body.classList = 'mac_or_ios'
}
</script>
<div class="row"><div> <div class="row"><div>
<h1>The Interface font family</h1> <h1>The Interface font family</h1>
@ -329,6 +72,101 @@ li.a:before {
<code>font-family: Interface, sans-serif;</code> <code>font-family: Interface, sans-serif;</code>
</div></div> </div></div>
<div class="row"><div>
<p>
There are currently three <a id="weights" href="#weights">weights</a>
</p>
<img src="res/weights-and-styles.svg" style="opacity:0.76;width:100%;display:block;margin:2em 0 3em 0">
<h2><a id="features" href="#features">Features</a></h2>
<boxes>
<box>
<h3>Contextual alternates (<q title='OpenType feature ID'>calt</q>)</h3>
<tablex><t>
<h><in>Disabled</in><to></to><out>Enabled</out></h>
<r><in>12<em>:</em>34, FE<em></em>X</in><to></to><out>12:34, FE—X</out></r>
<r><in>4<em>.</em>2</in><to></to><out>4.2</out></r>
<r><in>SFO -> STO</in><to></to><out>SFO -> STO</out></r>
<r><in>M<em>@</em>N m@n</in><to></to><out>M@N m@n</out></r>
</t></tablex>
</box>
<box>
<h3>Tabular numbers (<q title='OpenType feature ID'>tnum</q>)</h3>
<tablex><t>
<h><in>Disabled</in><to></to><out>Enabled</out></h>
<r><in><em>1</em>23456<em>7</em>890</in><to></to><out class="tnum">1234567890</out></r>
<r><in>1131711<em>&nbsp;</em></in><to></to><out class="tnum">1131711<em>&nbsp;</em></out></r>
<r><in>0040900<em>&nbsp;</em></in><to></to><out class="tnum">0040900<em>&nbsp;</em></out></r>
</t></tablex>
</box>
<box>
<h3>Slashed zero (<q title='OpenType feature ID'>zero</q>)</h3>
<tablex><t>
<h><in>Disabled</in><to></to><out>Enabled</out></h>
<r><in><em>0</em>123</in><to></to><out class="zero">0123</out></r>
</t></tablex>
</box>
<box>
<h3>Fractions (<q title='OpenType feature ID'>frac</q>)</h3>
<tablex><t>
<h><in>Disabled</in><to></to><out>Enabled</out></h>
<r>
<in><em>1/3</em> <em>22/9</em> <em>3/4/5</em></in>
<to></to><out class="frac">1/3 22/9 3/4/5</out>
</r>
</t></tablex>
</box>
<box>
<h3>Stylistic set #1: Open digits (<q title='OpenType feature ID'>ss01</q>)</h3>
<tablex><t>
<h><in>Disabled</in><to></to><out>Enabled</out></h>
<r>
<in>123<em>4</em>5<em>6</em>78<em>9</em>0</in>
<to></to><out class="ss01">1234567890</out>
</r>
</t></tablex>
</box>
<box>
<h3>Case alternates (<q title='OpenType feature ID'>case</q>)</h3>
<tablex><t>
<h><in>Disabled</in><to></to><out>Enabled</out></h>
<r>
<in><em>(</em>Hello<em>)</em> <em>[</em>World<em>]</em> <em>{</em>9000<em>}</em></in>
<to></to><out class="case">(Hello) [World] {9000}</out>
</r>
<r><in>SCHOOL <em>@</em> RUN</in><to></to><out class="case">SCHOOL @ RUN</out></r>
<r><in>3 <em>+</em> 9 <em>=</em> 12*</in><to></to><out class="case">3 + 9 = 12*</out></r>
<r><in><em>*</em> <em>+</em> <em>÷</em> <em>±</em> <em>×</em> <em>=</em> <em></em> <em></em></in><to></to><out class="case">* + ÷ ± × = ≠ •</out></r>
<r><in><em></em> <em></em> <em></em> <em></em> <em></em> <em>-</em> <em></em> <em></em> <em>:</em></in><to></to><out class="case">→ ← ⟶ ⟵ - — :</out></r>
</t></tablex>
</box>
</boxes>
<p>
Also includes some
Localized Forms (<q title='OpenType feature ID'>locl</q>),
Numerators (<q title='OpenType feature ID'>numr</q>) and
Denominators (<q title='OpenType feature ID'>dnom</q>).
</p>
<p>&nbsp;</p>
<h2><a href="glyphs/">Glyph repertoire</a></h2>
<p>
<a class="plain glyph-repertoire" href="glyphs/">
<iframe id="glyph-repertoire-iframe" src="glyphs/?iframe"
style="width:100%;height:510px" frameborder="0"></iframe>
</a>
</p>
</div></div>
<div class="row-divider"></div>
<div class="row"><div> <div class="row"><div>
<h2><a id="story" href="#story">The story behind Interface</a></h2> <h2><a id="story" href="#story">The story behind Interface</a></h2>
<p> <p>
@ -365,10 +203,7 @@ li.a:before {
</p> </p>
<p> <p>
<a href="lab/?sample=Repertoire&size=42" id="repertoire-image"></a> Please refer to the <a href="glyphs/">glyph repertoire</a>
</p>
<p>
Please refer to the <a href="lab/?sample=Repertoire&size=42">glyph repertoire</a>
for an overview of currentlyavailable glyphs and their quality. for an overview of currentlyavailable glyphs and their quality.
</p> </p>
@ -396,7 +231,7 @@ li.a:before {
<a href="https://en.wikipedia.org/wiki/Eric_Erickson">Eric Ericksons</a>, <a href="https://en.wikipedia.org/wiki/Eric_Erickson">Eric Ericksons</a>,
name alone somtimes does not suffice for unambiguous identity. name alone somtimes does not suffice for unambiguous identity.
The best way to be clear about what font you are talking about is to The best way to be clear about what font you are talking about is to
use the URL of this page (<pre>rsms.me/interface</pre>) when telling use the URL of this page (<q>rsms.me/interface</q>) when telling
people about it. people about it.
<a href="https://figma.com/">Design tools</a> and other software uses <a href="https://figma.com/">Design tools</a> and other software uses
<a href="https://www.microsoft.com/typography/otspec/name.htm#nameIDs">a set of information embedded into every font</a> for identity, so names are only <a href="https://www.microsoft.com/typography/otspec/name.htm#nameIDs">a set of information embedded into every font</a> for identity, so names are only
@ -471,14 +306,5 @@ li.a:before {
<div class="row"><div> <div class="row"><div>
<a href="https://twitter.com/rsms" class="plain">@rsms</a> <a href="https://twitter.com/rsms" class="plain">@rsms</a>
</div></div> </div></div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-105091131-2', 'auto');
ga('send', 'pageview');
</script>
</body> </body>
</html> </html>

15
docs/index.js Normal file
View file

@ -0,0 +1,15 @@
var isMac = false
if (!window.MSStream &&
/mac|ipad|iphone|ipod/i.test(navigator.userAgent))
{
isMac = true
document.body.classList = 'mac_or_ios'
}
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-105091131-2', 'auto');
ga('send', 'pageview');

View file

@ -2,43 +2,43 @@
font-family: 'Interface'; font-family: 'Interface';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url("https://rsms.me/interface/font-files/Interface-Regular.woff2?v=1.3") format("woff2"), src: url("font-files/Interface-Regular.woff2?v=1.3") format("woff2"),
url("https://rsms.me/interface/font-files/Interface-Regular.woff?v=1.3") format("woff"); url("font-files/Interface-Regular.woff?v=1.3") format("woff");
} }
@font-face { @font-face {
font-family: 'Interface'; font-family: 'Interface';
font-style: italic; font-style: italic;
font-weight: 400; font-weight: 400;
src: url("https://rsms.me/interface/font-files/Interface-RegularItalic.woff2?v=1.3") format("woff2"), src: url("font-files/Interface-RegularItalic.woff2?v=1.3") format("woff2"),
url("https://rsms.me/interface/font-files/Interface-RegularItalic.woff?v=1.3") format("woff"); url("font-files/Interface-RegularItalic.woff?v=1.3") format("woff");
} }
@font-face { @font-face {
font-family: 'Interface'; font-family: 'Interface';
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
src: url("https://rsms.me/interface/font-files/Interface-Medium.woff2?v=1.3") format("woff2"), src: url("font-files/Interface-Medium.woff2?v=1.3") format("woff2"),
url("https://rsms.me/interface/font-files/Interface-Medium.woff?v=1.3") format("woff"); url("font-files/Interface-Medium.woff?v=1.3") format("woff");
} }
@font-face { @font-face {
font-family: 'Interface'; font-family: 'Interface';
font-style: italic; font-style: italic;
font-weight: 500; font-weight: 500;
src: url("https://rsms.me/interface/font-files/Interface-MediumItalic.woff2?v=1.3") format("woff2"), src: url("font-files/Interface-MediumItalic.woff2?v=1.3") format("woff2"),
url("https://rsms.me/interface/font-files/Interface-MediumItalic.woff?v=1.3") format("woff"); url("font-files/Interface-MediumItalic.woff?v=1.3") format("woff");
} }
@font-face { @font-face {
font-family: 'Interface'; font-family: 'Interface';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: url("https://rsms.me/interface/font-files/Interface-Bold.woff2?v=1.3") format("woff2"), src: url("font-files/Interface-Bold.woff2?v=1.3") format("woff2"),
url("https://rsms.me/interface/font-files/Interface-Bold.woff?v=1.3") format("woff"); url("font-files/Interface-Bold.woff?v=1.3") format("woff");
} }
@font-face { @font-face {
font-family: 'Interface'; font-family: 'Interface';
font-style: italic; font-style: italic;
font-weight: 700; font-weight: 700;
src: url("https://rsms.me/interface/font-files/Interface-BoldItalic.woff2?v=1.3") format("woff2"), src: url("font-files/Interface-BoldItalic.woff2?v=1.3") format("woff2"),
url("https://rsms.me/interface/font-files/Interface-BoldItalic.woff?v=1.3") format("woff"); url("font-files/Interface-BoldItalic.woff?v=1.3") format("woff");
} }

View file

@ -5,38 +5,40 @@
, ["Lambda", 923, "GREEK CAPITAL LETTER LAMDA"] , ["Lambda", 923, "GREEK CAPITAL LETTER LAMDA"]
, ["B", 66, "LATIN CAPITAL LETTER B", "#dbeaf7"] , ["B", 66, "LATIN CAPITAL LETTER B", "#dbeaf7"]
, ["C", 67, "LATIN CAPITAL LETTER C", "#dbeaf7"] , ["C", 67, "LATIN CAPITAL LETTER C", "#dbeaf7"]
, ["Chook", 391, "LATIN CAPITAL LETTER C WITH HOOK"]
, ["D", 68, "LATIN CAPITAL LETTER D", "#dbeaf7"] , ["D", 68, "LATIN CAPITAL LETTER D", "#dbeaf7"]
, ["E", 69, "LATIN CAPITAL LETTER E", "#dbeaf7"] , ["E", 69, "LATIN CAPITAL LETTER E", "#dbeaf7"]
, ["Dzcaron_", 453, "LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON"]
, ["F", 70, "LATIN CAPITAL LETTER F", "#dbeaf7"] , ["F", 70, "LATIN CAPITAL LETTER F", "#dbeaf7"]
, ["G", 71, "LATIN CAPITAL LETTER G", "#dbeaf7"] , ["G", 71, "LATIN CAPITAL LETTER G", "#dbeaf7"]
, ["H", 72, "LATIN CAPITAL LETTER H", "#dbeaf7"] , ["H", 72, "LATIN CAPITAL LETTER H", "#dbeaf7"]
, ["Hcedilla", 7720, "LATIN CAPITAL LETTER H WITH CEDILLA"] , ["Hcedilla", 7720, "LATIN CAPITAL LETTER H WITH CEDILLA"]
, ["Gbar", 484, "LATIN CAPITAL LETTER G WITH STROKE"]
, ["Hbar", 294, "LATIN CAPITAL LETTER H WITH STROKE"] , ["Hbar", 294, "LATIN CAPITAL LETTER H WITH STROKE"]
, ["Enhookcyrillic", 1223, "CYRILLIC CAPITAL LETTER EN WITH HOOK"]
, ["Endescendercyrillic", 1186, "CYRILLIC CAPITAL LETTER EN WITH DESCENDER"]
, ["uni04C9", 1225, "CYRILLIC CAPITAL LETTER EN WITH TAIL"]
, ["Enghecyrillic", 1188, "CYRILLIC CAPITAL LIGATURE EN GHE"]
, ["I", 73, "LATIN CAPITAL LETTER I", "#dbeaf7"] , ["I", 73, "LATIN CAPITAL LETTER I", "#dbeaf7"]
, ["Idieresisacute", 7726, "LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE", "<derived>"] , ["Idieresisacute", 7726, "LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE", "<derived>"]
, ["Itildebelow", 7724, "LATIN CAPITAL LETTER I WITH TILDE BELOW", "<derived>"] , ["Itildebelow", 7724, "LATIN CAPITAL LETTER I WITH TILDE BELOW", "<derived>"]
, ["Enhookcyrillic", 1223, "CYRILLIC CAPITAL LETTER EN WITH HOOK"]
, ["J", 74, "LATIN CAPITAL LETTER J", "#dbeaf7"] , ["J", 74, "LATIN CAPITAL LETTER J", "#dbeaf7"]
, ["Endescendercyrillic", 1186, "CYRILLIC CAPITAL LETTER EN WITH DESCENDER"]
, ["K", 75, "LATIN CAPITAL LETTER K", "#dbeaf7"] , ["K", 75, "LATIN CAPITAL LETTER K", "#dbeaf7"]
, ["Kabashkircyrillic", 1184, "CYRILLIC CAPITAL LETTER BASHKIR KA"] , ["uni04C9", 1225, "CYRILLIC CAPITAL LETTER EN WITH TAIL"]
, ["Kadescendercyrillic", 1178, "CYRILLIC CAPITAL LETTER KA WITH DESCENDER"]
, ["L", 76, "LATIN CAPITAL LETTER L", "#dbeaf7"] , ["L", 76, "LATIN CAPITAL LETTER L", "#dbeaf7"]
, ["Enghecyrillic", 1188, "CYRILLIC CAPITAL LIGATURE EN GHE"]
, ["Lslash", 321, "LATIN CAPITAL LETTER L WITH STROKE"] , ["Lslash", 321, "LATIN CAPITAL LETTER L WITH STROKE"]
, ["M", 77, "LATIN CAPITAL LETTER M", "#dbeaf7"] , ["M", 77, "LATIN CAPITAL LETTER M", "#dbeaf7"]
, ["uni04CD", 1229, "CYRILLIC CAPITAL LETTER EM WITH TAIL"]
, ["N", 78, "LATIN CAPITAL LETTER N", "#dbeaf7"] , ["N", 78, "LATIN CAPITAL LETTER N", "#dbeaf7"]
, ["afii10026", 1048, "CYRILLIC CAPITAL LETTER I"] , ["afii10026", 1048, "CYRILLIC CAPITAL LETTER I"]
, ["uni048A", 1162, "CYRILLIC CAPITAL LETTER SHORT I WITH TAIL"] , ["uni048A", 1162, "CYRILLIC CAPITAL LETTER SHORT I WITH TAIL"]
, ["O", 79, "LATIN CAPITAL LETTER O", "#dbeaf7"] , ["O", 79, "LATIN CAPITAL LETTER O", "#dbeaf7"]
, ["Kabashkircyrillic", 1184, "CYRILLIC CAPITAL LETTER BASHKIR KA"]
, ["Oslash", 216, "LATIN CAPITAL LETTER O WITH STROKE"] , ["Oslash", 216, "LATIN CAPITAL LETTER O WITH STROKE"]
, ["Kadescendercyrillic", 1178, "CYRILLIC CAPITAL LETTER KA WITH DESCENDER"]
, ["Ohorn", 416, "LATIN CAPITAL LETTER O WITH HORN"] , ["Ohorn", 416, "LATIN CAPITAL LETTER O WITH HORN"]
, ["P", 80, "LATIN CAPITAL LETTER P", "#dbeaf7"] , ["P", 80, "LATIN CAPITAL LETTER P", "#dbeaf7"]
, ["Q", 81, "LATIN CAPITAL LETTER Q", "#dbeaf7"] , ["Q", 81, "LATIN CAPITAL LETTER Q", "#dbeaf7"]
, ["R", 82, "LATIN CAPITAL LETTER R", "#dbeaf7"] , ["R", 82, "LATIN CAPITAL LETTER R", "#dbeaf7"]
, ["response", 8479, "RESPONSE", "#cceff2"] , ["uni04CD", 1229, "CYRILLIC CAPITAL LETTER EM WITH TAIL"]
, ["S", 83, "LATIN CAPITAL LETTER S", "#dbeaf7"] , ["S", 83, "LATIN CAPITAL LETTER S", "#dbeaf7"]
, ["Germandbls", 7838, "LATIN CAPITAL LETTER SHARP S"] , ["Germandbls", 7838, "LATIN CAPITAL LETTER SHARP S"]
, ["T", 84, "LATIN CAPITAL LETTER T", "#dbeaf7"] , ["T", 84, "LATIN CAPITAL LETTER T", "#dbeaf7"]
@ -45,11 +47,11 @@
, ["V", 86, "LATIN CAPITAL LETTER V", "#dbeaf7"] , ["V", 86, "LATIN CAPITAL LETTER V", "#dbeaf7"]
, ["W", 87, "LATIN CAPITAL LETTER W", "#dbeaf7"] , ["W", 87, "LATIN CAPITAL LETTER W", "#dbeaf7"]
, ["X", 88, "LATIN CAPITAL LETTER X", "#dbeaf7"] , ["X", 88, "LATIN CAPITAL LETTER X", "#dbeaf7"]
, ["Hadescendercyrillic", 1202, "CYRILLIC CAPITAL LETTER HA WITH DESCENDER"] , ["uni048E", 1166, "CYRILLIC CAPITAL LETTER ER WITH TICK"]
, ["uni04FC", 1276, "CYRILLIC CAPITAL LETTER HA WITH HOOK"]
, ["Y", 89, "LATIN CAPITAL LETTER Y", "#dbeaf7"] , ["Y", 89, "LATIN CAPITAL LETTER Y", "#dbeaf7"]
, ["Z", 90, "LATIN CAPITAL LETTER Z", "#dbeaf7"] , ["Z", 90, "LATIN CAPITAL LETTER Z", "#dbeaf7"]
, ["AE", 198, "LATIN CAPITAL LETTER AE"] , ["AE", 198, "LATIN CAPITAL LETTER AE"]
, ["response", 8479, "RESPONSE", "#cceff2"]
, ["OE", 338, "LATIN CAPITAL LIGATURE OE"] , ["OE", 338, "LATIN CAPITAL LIGATURE OE"]
, ["Thorn", 222, "LATIN CAPITAL LETTER THORN"] , ["Thorn", 222, "LATIN CAPITAL LETTER THORN"]
, ["Gamma", 915, "GREEK CAPITAL LETTER GAMMA"] , ["Gamma", 915, "GREEK CAPITAL LETTER GAMMA"]
@ -60,7 +62,9 @@
, ["Pi", 928, "GREEK CAPITAL LETTER PI"] , ["Pi", 928, "GREEK CAPITAL LETTER PI"]
, ["Sigma", 931, "GREEK CAPITAL LETTER SIGMA"] , ["Sigma", 931, "GREEK CAPITAL LETTER SIGMA"]
, ["Phi", 934, "GREEK CAPITAL LETTER PHI"] , ["Phi", 934, "GREEK CAPITAL LETTER PHI"]
, ["Hadescendercyrillic", 1202, "CYRILLIC CAPITAL LETTER HA WITH DESCENDER"]
, ["Psi", 936, "GREEK CAPITAL LETTER PSI"] , ["Psi", 936, "GREEK CAPITAL LETTER PSI"]
, ["uni04FC", 1276, "CYRILLIC CAPITAL LETTER HA WITH HOOK"]
, ["Omega", 937, "GREEK CAPITAL LETTER OMEGA"] , ["Omega", 937, "GREEK CAPITAL LETTER OMEGA"]
, ["Omega", 8486, "OHM SIGN"] , ["Omega", 8486, "OHM SIGN"]
, ["afii10018", 1041, "CYRILLIC CAPITAL LETTER BE"] , ["afii10018", 1041, "CYRILLIC CAPITAL LETTER BE"]
@ -79,7 +83,6 @@
, ["afii10147", 1138, "CYRILLIC CAPITAL LETTER FITA"] , ["afii10147", 1138, "CYRILLIC CAPITAL LETTER FITA"]
, ["uni0524", 1316, "CYRILLIC CAPITAL LETTER PE WITH DESCENDER"] , ["uni0524", 1316, "CYRILLIC CAPITAL LETTER PE WITH DESCENDER"]
, ["afii10145", 1039, "CYRILLIC CAPITAL LETTER DZHE"] , ["afii10145", 1039, "CYRILLIC CAPITAL LETTER DZHE"]
, ["uni048E", 1166, "CYRILLIC CAPITAL LETTER ER WITH TICK"]
, ["afii10037", 1059, "CYRILLIC CAPITAL LETTER U"] , ["afii10037", 1059, "CYRILLIC CAPITAL LETTER U"]
, ["afii10038", 1060, "CYRILLIC CAPITAL LETTER EF", "<derived>"] , ["afii10038", 1060, "CYRILLIC CAPITAL LETTER EF", "<derived>"]
, ["afii10040", 1062, "CYRILLIC CAPITAL LETTER TSE"] , ["afii10040", 1062, "CYRILLIC CAPITAL LETTER TSE"]
@ -211,11 +214,11 @@
, ["cheverticalstrokecyrillic", 1209, "CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE"] , ["cheverticalstrokecyrillic", 1209, "CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE"]
, ["shacyrillic", 1096, "CYRILLIC SMALL LETTER SHA"] , ["shacyrillic", 1096, "CYRILLIC SMALL LETTER SHA"]
, ["shchacyrillic", 1097, "CYRILLIC SMALL LETTER SHCHA"] , ["shchacyrillic", 1097, "CYRILLIC SMALL LETTER SHCHA"]
, ["softsigncyrillic", 1100, "CYRILLIC SMALL LETTER SOFT SIGN"]
, ["hardsigncyrillic", 1098, "CYRILLIC SMALL LETTER HARD SIGN"] , ["hardsigncyrillic", 1098, "CYRILLIC SMALL LETTER HARD SIGN"]
, ["yericyrillic", 1099, "CYRILLIC SMALL LETTER YERU"] , ["yericyrillic", 1099, "CYRILLIC SMALL LETTER YERU"]
, ["uni048D", 1165, "CYRILLIC SMALL LETTER SEMISOFT SIGN", "<derived>"] , ["uni048D", 1165, "CYRILLIC SMALL LETTER SEMISOFT SIGN", "<derived>"]
, ["yatcyrillic", 1123, "CYRILLIC SMALL LETTER YAT", "<derived>"] , ["yatcyrillic", 1123, "CYRILLIC SMALL LETTER YAT", "<derived>"]
, ["softsigncyrillic", 1100, "CYRILLIC SMALL LETTER SOFT SIGN"]
, ["ljecyrillic", 1113, "CYRILLIC SMALL LETTER LJE"] , ["ljecyrillic", 1113, "CYRILLIC SMALL LETTER LJE"]
, ["njecyrillic", 1114, "CYRILLIC SMALL LETTER NJE"] , ["njecyrillic", 1114, "CYRILLIC SMALL LETTER NJE"]
, ["ereversedcyrillic", 1101, "CYRILLIC SMALL LETTER E"] , ["ereversedcyrillic", 1101, "CYRILLIC SMALL LETTER E"]
@ -252,6 +255,7 @@
, ["kip", 8365, "KIP SIGN", "#cceff2"] , ["kip", 8365, "KIP SIGN", "#cceff2"]
, ["won", 8361, "WON SIGN", "#cceff2"] , ["won", 8361, "WON SIGN", "#cceff2"]
, ["lira", 8356, "LIRA SIGN", "#cceff2"] , ["lira", 8356, "LIRA SIGN", "#cceff2"]
, ["austral", 8371, "AUSTRAL SIGN", "#cceff2"]
, ["hryvnia", 8372, "HRYVNIA SIGN", "#cceff2"] , ["hryvnia", 8372, "HRYVNIA SIGN", "#cceff2"]
, ["naira", 8358, "NAIRA SIGN", "#cceff2"] , ["naira", 8358, "NAIRA SIGN", "#cceff2"]
, ["guarani", 8370, "GUARANI SIGN", "#cceff2"] , ["guarani", 8370, "GUARANI SIGN", "#cceff2"]
@ -265,34 +269,49 @@
, ["rupee", 8360, "RUPEE SIGN", "#cceff2"] , ["rupee", 8360, "RUPEE SIGN", "#cceff2"]
, ["lari", 8382, "LARI SIGN", "#cceff2"] , ["lari", 8382, "LARI SIGN", "#cceff2"]
, ["zero", 48, "DIGIT ZERO", "#e2f4ea"] , ["zero", 48, "DIGIT ZERO", "#e2f4ea"]
, ["zero.tnum", null, null, "#ebf6c8"]
, ["zero.slash", null, null, "#e2f4ea"]
, ["zero.tnum.slash", null, null, "#ebf6c8"]
, ["one", 49, "DIGIT ONE", "#e2f4ea"] , ["one", 49, "DIGIT ONE", "#e2f4ea"]
, ["one.tnum", null, null, "#ebf6c8"]
, ["two", 50, "DIGIT TWO", "#e2f4ea"] , ["two", 50, "DIGIT TWO", "#e2f4ea"]
, ["two.tnum", null, null, "#ebf6c8"]
, ["three", 51, "DIGIT THREE", "#e2f4ea"] , ["three", 51, "DIGIT THREE", "#e2f4ea"]
, ["four", 52, "DIGIT FOUR", "#e2f4ea"] , ["four", 52, "DIGIT FOUR", "#e2f4ea"]
, ["three.tnum", null, null, "#ebf6c8"]
, ["four.1", null, null, "#ccf6ca"]
, ["four.tnum.1", null, null, "#ebf6c8"]
, ["five", 53, "DIGIT FIVE", "#e2f4ea"] , ["five", 53, "DIGIT FIVE", "#e2f4ea"]
, ["six", 54, "DIGIT SIX", "#e2f4ea"] , ["six", 54, "DIGIT SIX", "#e2f4ea"]
, ["six.1", null, null, "#ccf6ca"]
, ["five.tnum", null, null, "#ebf6c8"]
, ["six.tnum.1", null, null, "#ebf6c8"]
, ["seven", 55, "DIGIT SEVEN", "#e2f4ea"] , ["seven", 55, "DIGIT SEVEN", "#e2f4ea"]
, ["seven.tnum", null, null, "#ebf6c8"]
, ["six.tnum", null, null, "#ebf6c8"]
, ["eight", 56, "DIGIT EIGHT", "#e2f4ea"] , ["eight", 56, "DIGIT EIGHT", "#e2f4ea"]
, ["nine", 57, "DIGIT NINE", "#e2f4ea"] , ["nine", 57, "DIGIT NINE", "#e2f4ea"]
, ["zero.tnum", null, null, "#ebf6c8"] , ["nine.1", null, null, "#ccf6ca"]
, ["one.tnum", null, null, "#ebf6c8"] , ["nine.tnum.1", null, null, "#ebf6c8"]
, ["two.tnum", null, null, "#ebf6c8"]
, ["three.tnum", null, null, "#ebf6c8"]
, ["five.tnum", null, null, "#ebf6c8"]
, ["six.tnum", null, null, "#ebf6c8"]
, ["seven.tnum", null, null, "#ebf6c8"]
, ["ampersand", 38, "AMPERSAND", "#efefef"] , ["ampersand", 38, "AMPERSAND", "#efefef"]
, ["exclam", 33, "EXCLAMATION MARK", "#efefef"] , ["exclam", 33, "EXCLAMATION MARK", "#efefef"]
, ["exclamdown", 161, "INVERTED EXCLAMATION MARK", "#efefef"] , ["exclamdown", 161, "INVERTED EXCLAMATION MARK", "#efefef"]
, ["question", 63, "QUESTION MARK", "#efefef"] , ["question", 63, "QUESTION MARK", "#efefef"]
, ["questiondown", 191, "INVERTED QUESTION MARK", "#efefef"] , ["questiondown", 191, "INVERTED QUESTION MARK", "#efefef"]
, ["parenleft", 40, "LEFT PARENTHESIS", "#efefef"] , ["parenleft", 40, "LEFT PARENTHESIS", "#efefef"]
, ["parenleft.case", null, null, "#efefef"]
, ["parenright", 41, "RIGHT PARENTHESIS", "#efefef"] , ["parenright", 41, "RIGHT PARENTHESIS", "#efefef"]
, ["parenright.case", null, null, "#efefef"]
, ["bracketleft", 91, "LEFT SQUARE BRACKET", "#efefef"] , ["bracketleft", 91, "LEFT SQUARE BRACKET", "#efefef"]
, ["bracketleft.case", null, null, "#efefef"]
, ["bracketright", 93, "RIGHT SQUARE BRACKET", "#efefef"] , ["bracketright", 93, "RIGHT SQUARE BRACKET", "#efefef"]
, ["bracketright.case", null, null, "#efefef"]
, ["braceleft", 123, "LEFT CURLY BRACKET", "#efefef"] , ["braceleft", 123, "LEFT CURLY BRACKET", "#efefef"]
, ["braceleft.case", null, null, "#efefef"]
, ["braceright", 125, "RIGHT CURLY BRACKET", "#efefef"] , ["braceright", 125, "RIGHT CURLY BRACKET", "#efefef"]
, ["braceright.case", null, null, "#efefef"]
, ["at", 64, "COMMERCIAL AT", "#efefef"] , ["at", 64, "COMMERCIAL AT", "#efefef"]
, ["at.case", null, null, "#efefef"]
, ["numbersign", 35, "NUMBER SIGN", "#efefef"] , ["numbersign", 35, "NUMBER SIGN", "#efefef"]
, ["currency", 164, "CURRENCY SIGN", "#cceff2"] , ["currency", 164, "CURRENCY SIGN", "#cceff2"]
, ["slash", 47, "SOLIDUS", "#efefef"] , ["slash", 47, "SOLIDUS", "#efefef"]
@ -301,10 +320,15 @@
, ["backslash", 92, "REVERSE SOLIDUS", "#efefef"] , ["backslash", 92, "REVERSE SOLIDUS", "#efefef"]
, ["hyphenbullet", 8259, "HYPHEN BULLET", "#efefef"] , ["hyphenbullet", 8259, "HYPHEN BULLET", "#efefef"]
, ["hyphen", 45, "HYPHEN-MINUS", "#efefef"] , ["hyphen", 45, "HYPHEN-MINUS", "#efefef"]
, ["hyphen.case", null, null, "#efefef"]
, ["endash", 8211, "EN DASH", "#efefef"] , ["endash", 8211, "EN DASH", "#efefef"]
, ["endash.case", null, null, "#efefef"]
, ["figuredash", 8210, "FIGURE DASH", "#efefef"] , ["figuredash", 8210, "FIGURE DASH", "#efefef"]
, ["figuredash.case", null, null, "#efefef"]
, ["emdash", 8212, "EM DASH", "#efefef"] , ["emdash", 8212, "EM DASH", "#efefef"]
, ["emdash.case", null, null, "#efefef"]
, ["bullet", 8226, "BULLET", "#efefef"] , ["bullet", 8226, "BULLET", "#efefef"]
, ["bullet.case", null, null, "#efefef"]
, ["quoteleft", 8216, "LEFT SINGLE QUOTATION MARK", "#efefef"] , ["quoteleft", 8216, "LEFT SINGLE QUOTATION MARK", "#efefef"]
, ["quoteright", 8217, "RIGHT SINGLE QUOTATION MARK", "#efefef"] , ["quoteright", 8217, "RIGHT SINGLE QUOTATION MARK", "#efefef"]
, ["primetripl1", 8244, "TRIPLE PRIME", "#efefef"] , ["primetripl1", 8244, "TRIPLE PRIME", "#efefef"]
@ -316,8 +340,10 @@
, ["quotesinglbase", 8218, "SINGLE LOW-9 QUOTATION MARK", "#efefef"] , ["quotesinglbase", 8218, "SINGLE LOW-9 QUOTATION MARK", "#efefef"]
, ["comma", 44, "COMMA", "#efefef"] , ["comma", 44, "COMMA", "#efefef"]
, ["period", 46, "FULL STOP", "#efefef"] , ["period", 46, "FULL STOP", "#efefef"]
, ["period.num", null, null, "#efefef"]
, ["ellipsis", 8230, "HORIZONTAL ELLIPSIS", "#efefef"] , ["ellipsis", 8230, "HORIZONTAL ELLIPSIS", "#efefef"]
, ["colon", 58, "COLON", "#efefef"] , ["colon", 58, "COLON", "#efefef"]
, ["colon.case", null, null, "#efefef"]
, ["semicolon", 59, "SEMICOLON", "#efefef"] , ["semicolon", 59, "SEMICOLON", "#efefef"]
, ["guilsinglleft", 8249, "SINGLE LEFT-POINTING ANGLE QUOTATION MARK", "#efefef"] , ["guilsinglleft", 8249, "SINGLE LEFT-POINTING ANGLE QUOTATION MARK", "#efefef"]
, ["guilsinglright", 8250, "SINGLE RIGHT-POINTING ANGLE QUOTATION MARK", "#efefef"] , ["guilsinglright", 8250, "SINGLE RIGHT-POINTING ANGLE QUOTATION MARK", "#efefef"]
@ -328,12 +354,19 @@
, ["lessequal", 8804, "LESS-THAN OR EQUAL TO", "#cceff2"] , ["lessequal", 8804, "LESS-THAN OR EQUAL TO", "#cceff2"]
, ["greaterequal", 8805, "GREATER-THAN OR EQUAL TO", "#cceff2"] , ["greaterequal", 8805, "GREATER-THAN OR EQUAL TO", "#cceff2"]
, ["equal", 61, "EQUALS SIGN", "#cceff2"] , ["equal", 61, "EQUALS SIGN", "#cceff2"]
, ["equal.case", null, null, "#cceff2"]
, ["notequal", 8800, "NOT EQUAL TO", "#cceff2"] , ["notequal", 8800, "NOT EQUAL TO", "#cceff2"]
, ["notequal.case", null, null, "#cceff2"]
, ["plus", 43, "PLUS SIGN", "#cceff2"] , ["plus", 43, "PLUS SIGN", "#cceff2"]
, ["plus.case", null, null, "#cceff2"]
, ["minus", 8722, "MINUS SIGN", "#cceff2"] , ["minus", 8722, "MINUS SIGN", "#cceff2"]
, ["minus.case", null, null, "#cceff2"]
, ["multiply", 215, "MULTIPLICATION SIGN", "#cceff2"] , ["multiply", 215, "MULTIPLICATION SIGN", "#cceff2"]
, ["multiply.case", null, null, "#cceff2"]
, ["divide", 247, "DIVISION SIGN", "#cceff2"] , ["divide", 247, "DIVISION SIGN", "#cceff2"]
, ["divide.case", null, null, "#cceff2"]
, ["plusminus", 177, "PLUS-MINUS SIGN", "#cceff2"] , ["plusminus", 177, "PLUS-MINUS SIGN", "#cceff2"]
, ["plusminus.case", null, null, "#cceff2"]
, ["approxequal", 8776, "ALMOST EQUAL TO", "#cceff2"] , ["approxequal", 8776, "ALMOST EQUAL TO", "#cceff2"]
, ["asciitilde", 126, "TILDE", "#cceff2"] , ["asciitilde", 126, "TILDE", "#cceff2"]
, ["logicalnot", 172, "NOT SIGN", "#cceff2"] , ["logicalnot", 172, "NOT SIGN", "#cceff2"]
@ -345,6 +378,7 @@
, ["daggerdbl", 8225, "DOUBLE DAGGER", "#efefef"] , ["daggerdbl", 8225, "DOUBLE DAGGER", "#efefef"]
, ["asciicircum", 94, "CIRCUMFLEX ACCENT", "#cceff2"] , ["asciicircum", 94, "CIRCUMFLEX ACCENT", "#cceff2"]
, ["asterisk", 42, "ASTERISK", "#efefef"] , ["asterisk", 42, "ASTERISK", "#efefef"]
, ["asterisk.case", null, null, "#efefef"]
, ["registered", 174, "REGISTERED SIGN", "#cceff2"] , ["registered", 174, "REGISTERED SIGN", "#cceff2"]
, ["trademark", 8482, "TRADE MARK SIGN", "#cceff2"] , ["trademark", 8482, "TRADE MARK SIGN", "#cceff2"]
, ["servicemark", 8480, "SERVICE MARK", "#cceff2"] , ["servicemark", 8480, "SERVICE MARK", "#cceff2"]
@ -453,9 +487,19 @@
, ["hairspace", 8202, "HAIR SPACE", "#ede5f9"] , ["hairspace", 8202, "HAIR SPACE", "#ede5f9"]
, ["zerowidthspace", 8203, "ZERO WIDTH SPACE", "#efefef"] , ["zerowidthspace", 8203, "ZERO WIDTH SPACE", "#efefef"]
, ["arrowleft", 8592, "LEFTWARDS ARROW", "#cceff2"] , ["arrowleft", 8592, "LEFTWARDS ARROW", "#cceff2"]
, ["arrowleft.case", null, null, "#cceff2"]
, ["arrowleftlong", null, null, "#cceff2"]
, ["arrowleftlong.case", null, null, "#cceff2"]
, ["arrowup", 8593, "UPWARDS ARROW", "#cceff2"] , ["arrowup", 8593, "UPWARDS ARROW", "#cceff2"]
, ["arrowright", 8594, "RIGHTWARDS ARROW", "#cceff2"] , ["arrowright", 8594, "RIGHTWARDS ARROW", "#cceff2"]
, ["arrowright.case", null, null, "#cceff2"]
, ["arrowrightlong", null, null, "#cceff2"]
, ["arrowrightlong.case", null, null, "#cceff2"]
, ["arrowdown", 8595, "DOWNWARDS ARROW", "#cceff2"] , ["arrowdown", 8595, "DOWNWARDS ARROW", "#cceff2"]
, ["arrowNW", 8598, "NORTH WEST ARROW", "#cceff2"]
, ["arrowNE", 8599, "NORTH EAST ARROW", "#cceff2"]
, ["arrowSE", 8600, "SOUTH EAST ARROW", "#cceff2"]
, ["arrowSW", 8601, "SOUTH WEST ARROW", "#cceff2"]
, ["triagrt", 9658, "BLACK RIGHT-POINTING POINTER", "#cceff2"] , ["triagrt", 9658, "BLACK RIGHT-POINTING POINTER", "#cceff2"]
, ["triagdn", 9660, "BLACK DOWN-POINTING TRIANGLE", "#cceff2"] , ["triagdn", 9660, "BLACK DOWN-POINTING TRIANGLE", "#cceff2"]
, ["triagup", 9650, "BLACK UP-POINTING TRIANGLE", "#cceff2"] , ["triagup", 9650, "BLACK UP-POINTING TRIANGLE", "#cceff2"]
@ -489,7 +533,6 @@
, ["crossbar", null, null, "#dddddd"] , ["crossbar", null, null, "#dddddd"]
, ["uniA653", 42579, "CYRILLIC SMALL LETTER IOTIFIED YAT"] , ["uniA653", 42579, "CYRILLIC SMALL LETTER IOTIFIED YAT"]
, ["uniA652", 42578, "CYRILLIC CAPITAL LETTER IOTIFIED YAT"] , ["uniA652", 42578, "CYRILLIC CAPITAL LETTER IOTIFIED YAT"]
, ["austral", 8371, "AUSTRAL SIGN", "#cceff2"]
, ["uniA651", 42577, "CYRILLIC SMALL LETTER YERU WITH BACK YER"] , ["uniA651", 42577, "CYRILLIC SMALL LETTER YERU WITH BACK YER"]
, ["uniA650", 42576, "CYRILLIC CAPITAL LETTER YERU WITH BACK YER"] , ["uniA650", 42576, "CYRILLIC CAPITAL LETTER YERU WITH BACK YER"]
, ["uniA657", 42583, "CYRILLIC SMALL LETTER IOTIFIED A"] , ["uniA657", 42583, "CYRILLIC SMALL LETTER IOTIFIED A"]
@ -538,7 +581,6 @@
, ["uniAB58", 43864, "LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING"] , ["uniAB58", 43864, "LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING"]
, ["uniAB57", 43863, "LATIN SMALL LETTER X WITH LONG LEFT LEG"] , ["uniAB57", 43863, "LATIN SMALL LETTER X WITH LONG LEFT LEG"]
, ["uniAB56", 43862, "LATIN SMALL LETTER X WITH LOW RIGHT RING"] , ["uniAB56", 43862, "LATIN SMALL LETTER X WITH LOW RIGHT RING"]
, ["Gbar", 484, "LATIN CAPITAL LETTER G WITH STROKE"]
, ["uniAB54", 43860, "LATIN SMALL LETTER CHI WITH LOW RIGHT RING"] , ["uniAB54", 43860, "LATIN SMALL LETTER CHI WITH LOW RIGHT RING"]
, ["uniAB53", 43859, "LATIN SMALL LETTER CHI"] , ["uniAB53", 43859, "LATIN SMALL LETTER CHI"]
, ["uniAB52", 43858, "LATIN SMALL LETTER U WITH LEFT HOOK"] , ["uniAB52", 43858, "LATIN SMALL LETTER U WITH LEFT HOOK"]
@ -574,6 +616,7 @@
, ["uni02E7_uni02E6", null, null, "#dddddd"] , ["uni02E7_uni02E6", null, null, "#dddddd"]
, ["tildesubnosp_uni1ABD", null, null, "#dddddd"] , ["tildesubnosp_uni1ABD", null, null, "#dddddd"]
, ["uniA794.cn", null, null, "#c4f2c1"] , ["uniA794.cn", null, null, "#c4f2c1"]
, ["romantwelve", 8555, "ROMAN NUMERAL TWELVE", "#e2f4ea"]
, ["ringacute", null, null, "#dddddd"] , ["ringacute", null, null, "#dddddd"]
, ["ubar", 649, "LATIN SMALL LETTER U BAR"] , ["ubar", 649, "LATIN SMALL LETTER U BAR"]
, ["uni2C7A.cn", null, null, "#c4f2c1"] , ["uni2C7A.cn", null, null, "#c4f2c1"]
@ -762,6 +805,7 @@
, ["uni037D", 893, "GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL"] , ["uni037D", 893, "GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL"]
, ["uni03FD.cn", null, null, "#c4f2c1"] , ["uni03FD.cn", null, null, "#c4f2c1"]
, ["srthook.cn", null, null, "#c4f2c1"] , ["srthook.cn", null, null, "#c4f2c1"]
, ["uniA684", 42628, "CYRILLIC CAPITAL LETTER ZHWE"]
, ["interrobang", 8253, "INTERROBANG", "#efefef"] , ["interrobang", 8253, "INTERROBANG", "#efefef"]
, ["primemod", 697, "MODIFIER LETTER PRIME"] , ["primemod", 697, "MODIFIER LETTER PRIME"]
, ["uni213B", 8507, "FACSIMILE SIGN", "#cceff2"] , ["uni213B", 8507, "FACSIMILE SIGN", "#cceff2"]
@ -770,6 +814,7 @@
, ["uniA677", 42615, "COMBINING CYRILLIC LETTER U", "#f9e2e2"] , ["uniA677", 42615, "COMBINING CYRILLIC LETTER U", "#f9e2e2"]
, ["uniA676", 42614, "COMBINING CYRILLIC LETTER YI", "#f9e2e2"] , ["uniA676", 42614, "COMBINING CYRILLIC LETTER YI", "#f9e2e2"]
, ["erev", 600, "LATIN SMALL LETTER REVERSED E"] , ["erev", 600, "LATIN SMALL LETTER REVERSED E"]
, ["uni27EA", 10218, "MATHEMATICAL LEFT DOUBLE ANGLE BRACKET", "#efefef"]
, ["uniA670", 42608, "COMBINING CYRILLIC TEN MILLIONS SIGN", "#f9e2e2"] , ["uniA670", 42608, "COMBINING CYRILLIC TEN MILLIONS SIGN", "#f9e2e2"]
, ["uniA673", 42611, "SLAVONIC ASTERISK", "#efefef"] , ["uniA673", 42611, "SLAVONIC ASTERISK", "#efefef"]
, ["uniA672", 42610, "COMBINING CYRILLIC THOUSAND MILLIONS SIGN", "#f9e2e2"] , ["uniA672", 42610, "COMBINING CYRILLIC THOUSAND MILLIONS SIGN", "#f9e2e2"]
@ -893,7 +938,6 @@
, ["verticallinelowmod", 716, "MODIFIER LETTER LOW VERTICAL LINE"] , ["verticallinelowmod", 716, "MODIFIER LETTER LOW VERTICAL LINE"]
, ["secondtonechinese", 714, "MODIFIER LETTER ACUTE ACCENT"] , ["secondtonechinese", 714, "MODIFIER LETTER ACUTE ACCENT"]
, ["Tonefive", 444, "LATIN CAPITAL LETTER TONE FIVE"] , ["Tonefive", 444, "LATIN CAPITAL LETTER TONE FIVE"]
, ["romantwelve", 8555, "ROMAN NUMERAL TWELVE", "#e2f4ea"]
, ["arrowheadupmod", 708, "MODIFIER LETTER UP ARROWHEAD", "#cceff2"] , ["arrowheadupmod", 708, "MODIFIER LETTER UP ARROWHEAD", "#cceff2"]
, ["arrowheaddownmod", 709, "MODIFIER LETTER DOWN ARROWHEAD", "#cceff2"] , ["arrowheaddownmod", 709, "MODIFIER LETTER DOWN ARROWHEAD", "#cceff2"]
, ["arrowheadleftmod", 706, "MODIFIER LETTER LEFT ARROWHEAD", "#cceff2"] , ["arrowheadleftmod", 706, "MODIFIER LETTER LEFT ARROWHEAD", "#cceff2"]
@ -980,6 +1024,7 @@
, ["uni0504", 1284, "CYRILLIC CAPITAL LETTER KOMI ZJE"] , ["uni0504", 1284, "CYRILLIC CAPITAL LETTER KOMI ZJE"]
, ["uni27EF", 10223, "MATHEMATICAL RIGHT FLATTENED PARENTHESIS", "#efefef"] , ["uni27EF", 10223, "MATHEMATICAL RIGHT FLATTENED PARENTHESIS", "#efefef"]
, ["finaltsadi", 693, "MODIFIER LETTER SMALL TURNED R WITH HOOK"] , ["finaltsadi", 693, "MODIFIER LETTER SMALL TURNED R WITH HOOK"]
, ["rdescend", 636, "LATIN SMALL LETTER R WITH LONG LEG"]
, ["uni27EE", 10222, "MATHEMATICAL LEFT FLATTENED PARENTHESIS", "#efefef"] , ["uni27EE", 10222, "MATHEMATICAL LEFT FLATTENED PARENTHESIS", "#efefef"]
, ["uni27ED", 10221, "MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET", "#efefef"] , ["uni27ED", 10221, "MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET", "#efefef"]
, ["uniA769", 42857, "LATIN SMALL LETTER VEND"] , ["uniA769", 42857, "LATIN SMALL LETTER VEND"]
@ -993,6 +1038,7 @@
, ["lbelt", 620, "LATIN SMALL LETTER L WITH BELT"] , ["lbelt", 620, "LATIN SMALL LETTER L WITH BELT"]
, ["uni0359", 857, "COMBINING ASTERISK BELOW", "#f9e2e2"] , ["uni0359", 857, "COMBINING ASTERISK BELOW", "#f9e2e2"]
, ["uni0358", 856, "COMBINING DOT ABOVE RIGHT", "#f9e2e2"] , ["uni0358", 856, "COMBINING DOT ABOVE RIGHT", "#f9e2e2"]
, ["uni02E9_uni02E7_uni02E7", null, null, "#dddddd"]
, ["epsilon1revclosed", 606, "LATIN SMALL LETTER CLOSED REVERSED OPEN E"] , ["epsilon1revclosed", 606, "LATIN SMALL LETTER CLOSED REVERSED OPEN E"]
, ["uni0355", 853, "COMBINING RIGHT ARROWHEAD BELOW", "#f9e2e2"] , ["uni0355", 853, "COMBINING RIGHT ARROWHEAD BELOW", "#f9e2e2"]
, ["uni0354", 852, "COMBINING LEFT ARROWHEAD BELOW", "#f9e2e2"] , ["uni0354", 852, "COMBINING LEFT ARROWHEAD BELOW", "#f9e2e2"]
@ -1059,6 +1105,7 @@
, ["uniA669", 42601, "CYRILLIC SMALL LETTER MONOCULAR O"] , ["uniA669", 42601, "CYRILLIC SMALL LETTER MONOCULAR O"]
, ["uni1DD6", 7638, "COMBINING LATIN SMALL LETTER AV", "#f9e2e2"] , ["uni1DD6", 7638, "COMBINING LATIN SMALL LETTER AV", "#f9e2e2"]
, ["uni1DD7", 7639, "COMBINING LATIN SMALL LETTER C CEDILLA", "#f9e2e2"] , ["uni1DD7", 7639, "COMBINING LATIN SMALL LETTER C CEDILLA", "#f9e2e2"]
, ["uni1DCE", 7630, "COMBINING OGONEK ABOVE", "#f9e2e2"]
, ["uniAB36.cn", null, null, "#c4f2c1"] , ["uniAB36.cn", null, null, "#c4f2c1"]
, ["uni051F", 1311, "CYRILLIC SMALL LETTER ALEUT KA"] , ["uni051F", 1311, "CYRILLIC SMALL LETTER ALEUT KA"]
, ["oneeighth", 8539, "VULGAR FRACTION ONE EIGHTH", "#e2f4ea"] , ["oneeighth", 8539, "VULGAR FRACTION ONE EIGHTH", "#e2f4ea"]
@ -1095,6 +1142,7 @@
, ["uni02E6_uni02E5_uni02E6", null, null, "#dddddd"] , ["uni02E6_uni02E5_uni02E6", null, null, "#dddddd"]
, ["uniA73F.cn", null, null, "#c4f2c1"] , ["uniA73F.cn", null, null, "#c4f2c1"]
, ["spaceopenbox", 9251, "OPEN BOX", "#cceff2"] , ["spaceopenbox", 9251, "OPEN BOX", "#cceff2"]
, ["uni02E6_uni02E5_uni02E7", null, null, "#dddddd"]
, ["uni02E8_uni02E7_uni02E7", null, null, "#dddddd"] , ["uni02E8_uni02E7_uni02E7", null, null, "#dddddd"]
, ["uni02E9_uni02E9_uni02E8", null, null, "#dddddd"] , ["uni02E9_uni02E9_uni02E8", null, null, "#dddddd"]
, ["uni02E8_uni02E7_uni02E5", null, null, "#dddddd"] , ["uni02E8_uni02E7_uni02E5", null, null, "#dddddd"]
@ -1142,6 +1190,7 @@
, ["six.sup", null, null, "#dddddd"] , ["six.sup", null, null, "#dddddd"]
, ["tonebarhighmod", 742, "MODIFIER LETTER HIGH TONE BAR", "#cceff2"] , ["tonebarhighmod", 742, "MODIFIER LETTER HIGH TONE BAR", "#cceff2"]
, ["tonebarmidmod", 743, "MODIFIER LETTER MID TONE BAR", "#cceff2"] , ["tonebarmidmod", 743, "MODIFIER LETTER MID TONE BAR", "#cceff2"]
, ["schwa", 601, "LATIN SMALL LETTER SCHWA"]
, ["tonebarlowmod", 744, "MODIFIER LETTER LOW TONE BAR", "#cceff2"] , ["tonebarlowmod", 744, "MODIFIER LETTER LOW TONE BAR", "#cceff2"]
, ["tonebarextralowmod", 745, "MODIFIER LETTER EXTRA-LOW TONE BAR", "#cceff2"] , ["tonebarextralowmod", 745, "MODIFIER LETTER EXTRA-LOW TONE BAR", "#cceff2"]
, ["Fturn", 8498, "TURNED CAPITAL F"] , ["Fturn", 8498, "TURNED CAPITAL F"]
@ -1151,7 +1200,6 @@
, ["uni023B", 571, "LATIN CAPITAL LETTER C WITH STROKE"] , ["uni023B", 571, "LATIN CAPITAL LETTER C WITH STROKE"]
, ["uni023C", 572, "LATIN SMALL LETTER C WITH STROKE"] , ["uni023C", 572, "LATIN SMALL LETTER C WITH STROKE"]
, ["uni023A", 570, "LATIN CAPITAL LETTER A WITH STROKE"] , ["uni023A", 570, "LATIN CAPITAL LETTER A WITH STROKE"]
, ["uniA684", 42628, "CYRILLIC CAPITAL LETTER ZHWE"]
, ["uniA685", 42629, "CYRILLIC SMALL LETTER ZHWE"] , ["uniA685", 42629, "CYRILLIC SMALL LETTER ZHWE"]
, ["uniA686", 42630, "CYRILLIC CAPITAL LETTER CCHE"] , ["uniA686", 42630, "CYRILLIC CAPITAL LETTER CCHE"]
, ["uniA687", 42631, "CYRILLIC SMALL LETTER CCHE"] , ["uniA687", 42631, "CYRILLIC SMALL LETTER CCHE"]
@ -1166,6 +1214,7 @@
, ["babygamma", 612, "LATIN SMALL LETTER RAMS HORN"] , ["babygamma", 612, "LATIN SMALL LETTER RAMS HORN"]
, ["Vcursive", 434, "LATIN CAPITAL LETTER V WITH HOOK"] , ["Vcursive", 434, "LATIN CAPITAL LETTER V WITH HOOK"]
, ["careof", 8453, "CARE OF", "#cceff2"] , ["careof", 8453, "CARE OF", "#cceff2"]
, ["uni02E6_uni02E7", null, null, "#dddddd"]
, ["phi1", 981, "GREEK PHI SYMBOL"] , ["phi1", 981, "GREEK PHI SYMBOL"]
, ["uni02E5_uni02E5_uni02E8", null, null, "#dddddd"] , ["uni02E5_uni02E5_uni02E8", null, null, "#dddddd"]
, ["uni02E5_uni02E5_uni02E9", null, null, "#dddddd"] , ["uni02E5_uni02E5_uni02E9", null, null, "#dddddd"]
@ -1179,11 +1228,11 @@
, ["uni2C67", 11367, "LATIN CAPITAL LETTER H WITH DESCENDER"] , ["uni2C67", 11367, "LATIN CAPITAL LETTER H WITH DESCENDER"]
, ["uni0500", 1280, "CYRILLIC CAPITAL LETTER KOMI DE"] , ["uni0500", 1280, "CYRILLIC CAPITAL LETTER KOMI DE"]
, ["uni27EB", 10219, "MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET", "#efefef"] , ["uni27EB", 10219, "MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET", "#efefef"]
, ["uni27EA", 10218, "MATHEMATICAL LEFT DOUBLE ANGLE BRACKET", "#efefef"]
, ["uni0503", 1283, "CYRILLIC SMALL LETTER KOMI DJE"] , ["uni0503", 1283, "CYRILLIC SMALL LETTER KOMI DJE"]
, ["wynn", 447, "LATIN LETTER WYNN"] , ["wynn", 447, "LATIN LETTER WYNN"]
, ["uni0505", 1285, "CYRILLIC SMALL LETTER KOMI ZJE"] , ["uni0505", 1285, "CYRILLIC SMALL LETTER KOMI ZJE"]
, ["uni0506", 1286, "CYRILLIC CAPITAL LETTER KOMI DZJE"] , ["uni0506", 1286, "CYRILLIC CAPITAL LETTER KOMI DZJE"]
, ["uni0502", 1282, "CYRILLIC CAPITAL LETTER KOMI DJE"]
, ["uni0507", 1287, "CYRILLIC SMALL LETTER KOMI DZJE"] , ["uni0507", 1287, "CYRILLIC SMALL LETTER KOMI DZJE"]
, ["uni0508", 1288, "CYRILLIC CAPITAL LETTER KOMI LJE"] , ["uni0508", 1288, "CYRILLIC CAPITAL LETTER KOMI LJE"]
, ["uni0509", 1289, "CYRILLIC SMALL LETTER KOMI LJE"] , ["uni0509", 1289, "CYRILLIC SMALL LETTER KOMI LJE"]
@ -1330,6 +1379,7 @@
, ["Esh", 425, "LATIN CAPITAL LETTER ESH"] , ["Esh", 425, "LATIN CAPITAL LETTER ESH"]
, ["uni1D2D", 7469, "MODIFIER LETTER CAPITAL AE"] , ["uni1D2D", 7469, "MODIFIER LETTER CAPITAL AE"]
, ["uni1D2E", 7470, "MODIFIER LETTER CAPITAL B"] , ["uni1D2E", 7470, "MODIFIER LETTER CAPITAL B"]
, ["uni1ABC", 6844, "COMBINING DOUBLE PARENTHESES ABOVE", "#f9e2e2"]
, ["uni1D2F", 7471, "MODIFIER LETTER CAPITAL BARRED B"] , ["uni1D2F", 7471, "MODIFIER LETTER CAPITAL BARRED B"]
, ["uni1D2A", 7466, "GREEK LETTER SMALL CAPITAL PSI"] , ["uni1D2A", 7466, "GREEK LETTER SMALL CAPITAL PSI"]
, ["uni1D2B", 7467, "CYRILLIC LETTER SMALL CAPITAL EL"] , ["uni1D2B", 7467, "CYRILLIC LETTER SMALL CAPITAL EL"]
@ -1435,23 +1485,22 @@
, ["romanthree", 8546, "ROMAN NUMERAL THREE", "#e2f4ea"] , ["romanthree", 8546, "ROMAN NUMERAL THREE", "#e2f4ea"]
, ["uni1D36", 7478, "MODIFIER LETTER CAPITAL J"] , ["uni1D36", 7478, "MODIFIER LETTER CAPITAL J"]
, ["uni1DCF", 7631, "COMBINING ZIGZAG BELOW", "#f9e2e2"] , ["uni1DCF", 7631, "COMBINING ZIGZAG BELOW", "#f9e2e2"]
, ["uni1DCE", 7630, "COMBINING OGONEK ABOVE", "#f9e2e2"]
, ["uni1DCD", 7629, "COMBINING DOUBLE CIRCUMFLEX ABOVE", "#f9e2e2"] , ["uni1DCD", 7629, "COMBINING DOUBLE CIRCUMFLEX ABOVE", "#f9e2e2"]
, ["uni1DCC", 7628, "COMBINING MACRON-BREVE", "#f9e2e2"] , ["uni1DCC", 7628, "COMBINING MACRON-BREVE", "#f9e2e2"]
, ["uni1DCB", 7627, "COMBINING BREVE-MACRON", "#f9e2e2"] , ["uni1DCB", 7627, "COMBINING BREVE-MACRON", "#f9e2e2"]
, ["uniE004", 57348, "[private use E004]"]
, ["uni1DCA", 7626, "COMBINING LATIN SMALL LETTER R BELOW", "#f9e2e2"] , ["uni1DCA", 7626, "COMBINING LATIN SMALL LETTER R BELOW", "#f9e2e2"]
, ["uniE001", 57345, "[private use E001]"]
, ["Nhook", 413, "LATIN CAPITAL LETTER N WITH LEFT HOOK"] , ["Nhook", 413, "LATIN CAPITAL LETTER N WITH LEFT HOOK"]
, ["tildemacroncomb.lc", null, null, "#dddddd"] , ["tildemacroncomb.lc", null, null, "#dddddd"]
, ["iota1", 617, "LATIN SMALL LETTER IOTA"] , ["iota1", 617, "LATIN SMALL LETTER IOTA"]
, ["uni02E6_uni02E8", null, null, "#dddddd"] , ["uni02E6_uni02E8", null, null, "#dddddd"]
, ["uniE001", 57345, "[private use E001]"]
, ["uni02E6_uni02E9", null, null, "#dddddd"] , ["uni02E6_uni02E9", null, null, "#dddddd"]
, ["uni1DC9", 7625, "COMBINING ACUTE-GRAVE-ACUTE", "#f9e2e2"] , ["uni1DC9", 7625, "COMBINING ACUTE-GRAVE-ACUTE", "#f9e2e2"]
, ["uni1DC8", 7624, "COMBINING GRAVE-ACUTE-GRAVE", "#f9e2e2"] , ["uni1DC8", 7624, "COMBINING GRAVE-ACUTE-GRAVE", "#f9e2e2"]
, ["uni1DC7", 7623, "COMBINING ACUTE-MACRON", "#f9e2e2"] , ["uni1DC7", 7623, "COMBINING ACUTE-MACRON", "#f9e2e2"]
, ["uni02E6_uni02E5", null, null, "#dddddd"] , ["uni02E6_uni02E5", null, null, "#dddddd"]
, ["uni1DC5", 7621, "COMBINING GRAVE-MACRON", "#f9e2e2"] , ["uni1DC5", 7621, "COMBINING GRAVE-MACRON", "#f9e2e2"]
, ["uni02E6_uni02E7", null, null, "#dddddd"]
, ["uni1DC3", 7619, "COMBINING SUSPENSION MARK", "#f9e2e2"] , ["uni1DC3", 7619, "COMBINING SUSPENSION MARK", "#f9e2e2"]
, ["uni1DC2", 7618, "COMBINING SNAKE BELOW", "#f9e2e2"] , ["uni1DC2", 7618, "COMBINING SNAKE BELOW", "#f9e2e2"]
, ["uni1DC1", 7617, "COMBINING DOTTED ACUTE ACCENT", "#f9e2e2"] , ["uni1DC1", 7617, "COMBINING DOTTED ACUTE ACCENT", "#f9e2e2"]
@ -1566,7 +1615,6 @@
, ["uni1ABD", 6845, "COMBINING PARENTHESES BELOW", "#f9e2e2"] , ["uni1ABD", 6845, "COMBINING PARENTHESES BELOW", "#f9e2e2"]
, ["uniA79A", 42906, "LATIN CAPITAL LETTER VOLAPUK AE"] , ["uniA79A", 42906, "LATIN CAPITAL LETTER VOLAPUK AE"]
, ["uni1ABA", 6842, "COMBINING STRONG CENTRALIZATION STROKE BELOW", "#f9e2e2"] , ["uni1ABA", 6842, "COMBINING STRONG CENTRALIZATION STROKE BELOW", "#f9e2e2"]
, ["uni1ABC", 6844, "COMBINING DOUBLE PARENTHESES ABOVE", "#f9e2e2"]
, ["uni1ABB", 6843, "COMBINING PARENTHESES ABOVE", "#f9e2e2"] , ["uni1ABB", 6843, "COMBINING PARENTHESES ABOVE", "#f9e2e2"]
, ["ascriptturn", 594, "LATIN SMALL LETTER TURNED ALPHA"] , ["ascriptturn", 594, "LATIN SMALL LETTER TURNED ALPHA"]
, ["uni1DB8", 7608, "MODIFIER LETTER SMALL CAPITAL U"] , ["uni1DB8", 7608, "MODIFIER LETTER SMALL CAPITAL U"]
@ -1635,7 +1683,6 @@
, ["uni2E1E", 11806, "TILDE WITH DOT ABOVE", "#efefef"] , ["uni2E1E", 11806, "TILDE WITH DOT ABOVE", "#efefef"]
, ["uni2E1D", 11805, "RIGHT LOW PARAPHRASE BRACKET", "#efefef"] , ["uni2E1D", 11805, "RIGHT LOW PARAPHRASE BRACKET", "#efefef"]
, ["uni2E1F", 11807, "TILDE WITH DOT BELOW", "#efefef"] , ["uni2E1F", 11807, "TILDE WITH DOT BELOW", "#efefef"]
, ["Chook", 391, "LATIN CAPITAL LETTER C WITH HOOK"]
, ["uni1DE9", 7657, "COMBINING LATIN SMALL LETTER BETA", "#f9e2e2"] , ["uni1DE9", 7657, "COMBINING LATIN SMALL LETTER BETA", "#f9e2e2"]
, ["uniAB39", 43833, "LATIN SMALL LETTER L WITH MIDDLE RING"] , ["uniAB39", 43833, "LATIN SMALL LETTER L WITH MIDDLE RING"]
, ["uniAB38", 43832, "LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE"] , ["uniAB38", 43832, "LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE"]
@ -1663,6 +1710,7 @@
, ["uni02E5_uni02E8_uni02E7", null, null, "#dddddd"] , ["uni02E5_uni02E8_uni02E7", null, null, "#dddddd"]
, ["uni02E5_uni02E8_uni02E6", null, null, "#dddddd"] , ["uni02E5_uni02E8_uni02E6", null, null, "#dddddd"]
, ["d.cn", null, null, "#c4f2c1"] , ["d.cn", null, null, "#c4f2c1"]
, ["uni1DE4", 7652, "COMBINING LATIN SMALL LETTER S", "#f9e2e2"]
, ["uni035A", 858, "COMBINING DOUBLE RING BELOW", "#f9e2e2"] , ["uni035A", 858, "COMBINING DOUBLE RING BELOW", "#f9e2e2"]
, ["uni02E5_uni02E8_uni02E9", null, null, "#dddddd"] , ["uni02E5_uni02E8_uni02E9", null, null, "#dddddd"]
, ["uni02E5_uni02E8_uni02E8", null, null, "#dddddd"] , ["uni02E5_uni02E8_uni02E8", null, null, "#dddddd"]
@ -1727,7 +1775,6 @@
, ["uniA767", 42855, "LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER"] , ["uniA767", 42855, "LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER"]
, ["uniA765", 42853, "LATIN SMALL LETTER THORN WITH STROKE"] , ["uniA765", 42853, "LATIN SMALL LETTER THORN WITH STROKE"]
, ["uniA764", 42852, "LATIN CAPITAL LETTER THORN WITH STROKE"] , ["uniA764", 42852, "LATIN CAPITAL LETTER THORN WITH STROKE"]
, ["uni02E9_uni02E7_uni02E7", null, null, "#dddddd"]
, ["uniA762", 42850, "LATIN CAPITAL LETTER VISIGOTHIC Z"] , ["uniA762", 42850, "LATIN CAPITAL LETTER VISIGOTHIC Z"]
, ["uniA761", 42849, "LATIN SMALL LETTER VY"] , ["uniA761", 42849, "LATIN SMALL LETTER VY"]
, ["uniA760", 42848, "LATIN CAPITAL LETTER VY"] , ["uniA760", 42848, "LATIN CAPITAL LETTER VY"]
@ -1882,6 +1929,7 @@
, ["uni2C70", 11376, "LATIN CAPITAL LETTER TURNED ALPHA"] , ["uni2C70", 11376, "LATIN CAPITAL LETTER TURNED ALPHA"]
, ["uni2C73", 11379, "LATIN SMALL LETTER W WITH HOOK"] , ["uni2C73", 11379, "LATIN SMALL LETTER W WITH HOOK"]
, ["uni2189", 8585, "VULGAR FRACTION ZERO THIRDS", "#e2f4ea"] , ["uni2189", 8585, "VULGAR FRACTION ZERO THIRDS", "#e2f4ea"]
, ["uni1FEF", 8175, "GREEK VARIA", "#cceff2"]
, ["uni2C74", 11380, "LATIN SMALL LETTER V WITH CURL"] , ["uni2C74", 11380, "LATIN SMALL LETTER V WITH CURL"]
, ["uni2C77", 11383, "LATIN SMALL LETTER TAILLESS PHI"] , ["uni2C77", 11383, "LATIN SMALL LETTER TAILLESS PHI"]
, ["uni2C76", 11382, "LATIN SMALL LETTER HALF H"] , ["uni2C76", 11382, "LATIN SMALL LETTER HALF H"]
@ -1980,7 +2028,6 @@
, ["Sampi", 992, "GREEK LETTER SAMPI"] , ["Sampi", 992, "GREEK LETTER SAMPI"]
, ["uni2C7E", 11390, "LATIN CAPITAL LETTER S WITH SWASH TAIL"] , ["uni2C7E", 11390, "LATIN CAPITAL LETTER S WITH SWASH TAIL"]
, ["uni2E1A", 11802, "HYPHEN WITH DIAERESIS", "#efefef"] , ["uni2E1A", 11802, "HYPHEN WITH DIAERESIS", "#efefef"]
, ["schwa", 601, "LATIN SMALL LETTER SCHWA"]
, ["gbar_uni1ABE", null, null, "#dddddd"] , ["gbar_uni1ABE", null, null, "#dddddd"]
, ["uni1DDA", 7642, "COMBINING LATIN SMALL LETTER G", "#f9e2e2"] , ["uni1DDA", 7642, "COMBINING LATIN SMALL LETTER G", "#f9e2e2"]
, ["koppacyrillic", 1153, "CYRILLIC SMALL LETTER KOPPA"] , ["koppacyrillic", 1153, "CYRILLIC SMALL LETTER KOPPA"]
@ -2011,7 +2058,6 @@
, ["quotereversed", 8219, "SINGLE HIGH-REVERSED-9 QUOTATION MARK", "#efefef"] , ["quotereversed", 8219, "SINGLE HIGH-REVERSED-9 QUOTATION MARK", "#efefef"]
, ["romanfive", 8548, "ROMAN NUMERAL FIVE", "#e2f4ea"] , ["romanfive", 8548, "ROMAN NUMERAL FIVE", "#e2f4ea"]
, ["tonetwo", 424, "LATIN SMALL LETTER TONE TWO"] , ["tonetwo", 424, "LATIN SMALL LETTER TONE TWO"]
, ["rdescend", 636, "LATIN SMALL LETTER R WITH LONG LEG"]
, ["uni1FDD", 8157, "GREEK DASIA AND VARIA", "#cceff2"] , ["uni1FDD", 8157, "GREEK DASIA AND VARIA", "#cceff2"]
, ["uni1FDE", 8158, "GREEK DASIA AND OXIA", "#cceff2"] , ["uni1FDE", 8158, "GREEK DASIA AND OXIA", "#cceff2"]
, ["uni1FDF", 8159, "GREEK DASIA AND PERISPOMENI", "#cceff2"] , ["uni1FDF", 8159, "GREEK DASIA AND PERISPOMENI", "#cceff2"]
@ -2055,7 +2101,6 @@
, ["uni1DFF", 7679, "COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW", "#f9e2e2"] , ["uni1DFF", 7679, "COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW", "#f9e2e2"]
, ["uniA751", 42833, "LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER"] , ["uniA751", 42833, "LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER"]
, ["uniA758", 42840, "LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE"] , ["uniA758", 42840, "LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE"]
, ["uni1FEF", 8175, "GREEK VARIA", "#cceff2"]
, ["dblprimemod", 698, "MODIFIER LETTER DOUBLE PRIME"] , ["dblprimemod", 698, "MODIFIER LETTER DOUBLE PRIME"]
, ["Ezhreversed", 440, "LATIN CAPITAL LETTER EZH REVERSED"] , ["Ezhreversed", 440, "LATIN CAPITAL LETTER EZH REVERSED"]
, ["ezhreversed", 441, "LATIN SMALL LETTER EZH REVERSED"] , ["ezhreversed", 441, "LATIN SMALL LETTER EZH REVERSED"]
@ -2112,7 +2157,6 @@
, ["uni209C", 8348, "LATIN SUBSCRIPT SMALL LETTER T"] , ["uni209C", 8348, "LATIN SUBSCRIPT SMALL LETTER T"]
, ["uni02E6_uni02E6_uni02E7", null, null, "#dddddd"] , ["uni02E6_uni02E6_uni02E7", null, null, "#dddddd"]
, ["uni02E6_uni02E6_uni02E8", null, null, "#dddddd"] , ["uni02E6_uni02E6_uni02E8", null, null, "#dddddd"]
, ["uni02E6_uni02E5_uni02E7", null, null, "#dddddd"]
, ["commaaccentrotate", null, null, "#dddddd"] , ["commaaccentrotate", null, null, "#dddddd"]
, ["esh", 643, "LATIN SMALL LETTER ESH"] , ["esh", 643, "LATIN SMALL LETTER ESH"]
, ["cyrillictic", null, null, "#dddddd"] , ["cyrillictic", null, null, "#dddddd"]
@ -2134,7 +2178,6 @@
, ["controlHT", 9, "[Control]", "#ff4c4c"] , ["controlHT", 9, "[Control]", "#ff4c4c"]
, ["uni1DE8", 7656, "COMBINING LATIN SMALL LETTER B", "#f9e2e2"] , ["uni1DE8", 7656, "COMBINING LATIN SMALL LETTER B", "#f9e2e2"]
, ["uni1DE5", 7653, "COMBINING LATIN SMALL LETTER LONG S", "#f9e2e2"] , ["uni1DE5", 7653, "COMBINING LATIN SMALL LETTER LONG S", "#f9e2e2"]
, ["uni1DE4", 7652, "COMBINING LATIN SMALL LETTER S", "#f9e2e2"]
, ["uni1DE7", 7655, "COMBINING LATIN SMALL LETTER ALPHA", "#f9e2e2"] , ["uni1DE7", 7655, "COMBINING LATIN SMALL LETTER ALPHA", "#f9e2e2"]
, ["uni1DE6", 7654, "COMBINING LATIN SMALL LETTER Z", "#f9e2e2"] , ["uni1DE6", 7654, "COMBINING LATIN SMALL LETTER Z", "#f9e2e2"]
, ["uni1DE1", 7649, "COMBINING LATIN LETTER SMALL CAPITAL N", "#f9e2e2"] , ["uni1DE1", 7649, "COMBINING LATIN LETTER SMALL CAPITAL N", "#f9e2e2"]
@ -2155,7 +2198,6 @@
, ["commaabovecmb", 787, "COMBINING COMMA ABOVE", "#f9e2e2"] , ["commaabovecmb", 787, "COMBINING COMMA ABOVE", "#f9e2e2"]
, ["uniA728", 42792, "LATIN CAPITAL LETTER TZ"] , ["uniA728", 42792, "LATIN CAPITAL LETTER TZ"]
, ["commaaboverightcmb", 789, "COMBINING COMMA ABOVE RIGHT", "#f9e2e2"] , ["commaaboverightcmb", 789, "COMBINING COMMA ABOVE RIGHT", "#f9e2e2"]
, ["uni0502", 1282, "CYRILLIC CAPITAL LETTER KOMI DJE"]
, ["hooksubpalatnosp", 801, "COMBINING PALATALIZED HOOK BELOW", "#f9e2e2"] , ["hooksubpalatnosp", 801, "COMBINING PALATALIZED HOOK BELOW", "#f9e2e2"]
, ["uni1AB8_uni1ABD", null, null, "#dddddd"] , ["uni1AB8_uni1ABD", null, null, "#dddddd"]
, ["uniA758.cn", null, null, "#c4f2c1"] , ["uniA758.cn", null, null, "#c4f2c1"]
@ -2174,10 +2216,11 @@
, ["leftloop.cn", null, null, "#c4f2c1"] , ["leftloop.cn", null, null, "#c4f2c1"]
, ["rightloop.cn", null, null, "#c4f2c1"] , ["rightloop.cn", null, null, "#c4f2c1"]
, ["uniE000", 57344, "[Private_Use]", "#f7f2d3"] , ["uniE000", 57344, "[Private_Use]", "#f7f2d3"]
, ["uniE004", 57348, "[private use E004]"]
, ["uniE002", 57346, "[private use E002]"] , ["uniE002", 57346, "[private use E002]"]
, ["uniE003", 57347, "[private use E003]"] , ["uniE003", 57347, "[private use E003]"]
, [".notdef", null, null, "#dddddd"] , [".notdef", null, null, "#dddddd"]
, ["circleblack", 9679, "BLACK CIRCLE"]
, ["circlewhite", 9675, "WHITE CIRCLE"]
, ["Eth", 208, "LATIN CAPITAL LETTER ETH", "<derived>"] , ["Eth", 208, "LATIN CAPITAL LETTER ETH", "<derived>"]
, ["hbar", 295, "LATIN SMALL LETTER H WITH STROKE", "<derived>"] , ["hbar", 295, "LATIN SMALL LETTER H WITH STROKE", "<derived>"]
, ["Tbar", 358, "LATIN CAPITAL LETTER T WITH STROKE", "<derived>"] , ["Tbar", 358, "LATIN CAPITAL LETTER T WITH STROKE", "<derived>"]

View file

@ -125,7 +125,7 @@ m@n M@N
3÷5 ÷5 8÷ 3±5 ±5 8± 3÷5 ÷5 8÷ 3±5 ±5 8±
3=5 =5 8= 3≠5 ≠5 8≠ 3=5 =5 8= 3≠5 ≠5 8≠
8*5 8 * 7 WALLPAPER* 8*5 8 * 7 WALLPAPER*
B-O BO BO B—O M•N B-O BO BO B—O M•N ⌘-
-Selvece -Selvece
darest-Selvece darest-Selvece
b-o bo bo b—o m•n b-o bo bo b—o m•n
@ -1124,6 +1124,7 @@ document.head.appendChild(fontCSS)
<label><input type="checkbox" class="featopt" name="feat:case"> Enable case *</label> <label><input type="checkbox" class="featopt" name="feat:case"> Enable case *</label>
<label><input type="checkbox" class="featopt" name="feat:calt=0"> <em>Disable</em> calt *</label> <label><input type="checkbox" class="featopt" name="feat:calt=0"> <em>Disable</em> calt *</label>
<label><input type="checkbox" class="featopt" name="feat:zero"> Enable (slashed) zero *</label> <label><input type="checkbox" class="featopt" name="feat:zero"> Enable (slashed) zero *</label>
<label><input type="checkbox" class="featopt" name="feat:frac"> Enable frac(tions) *</label>
<!-- <label><input type="checkbox" class="featopt" name="feat:c2sc"> Enable c2sc</label> --> <!-- <label><input type="checkbox" class="featopt" name="feat:c2sc"> Enable c2sc</label> -->
<label><input type="checkbox" class="featopt" name="feat:ss01"> Enable Stylistic set 1 *</label> <label><input type="checkbox" class="featopt" name="feat:ss01"> Enable Stylistic set 1 *</label>
<label><input type="checkbox" class="featopt" name="feat:ss02"> Enable Stylistic set 2</label> <label><input type="checkbox" class="featopt" name="feat:ss02"> Enable Stylistic set 2</label>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 526 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 44 KiB