WEBFONT: cure Chrome
|
@ -229,5 +229,5 @@ css = 900
|
||||||
# the webfont CSS. Change `parameters.toml` instead.
|
# the webfont CSS. Change `parameters.toml` instead.
|
||||||
[slants]
|
[slants]
|
||||||
upright = "normal"
|
upright = "normal"
|
||||||
italic = "italic"
|
|
||||||
oblique = "oblique"
|
oblique = "oblique"
|
||||||
|
italic = "italic"
|
||||||
|
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 420 KiB After Width: | Height: | Size: 413 KiB |
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 184 KiB |
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 175 KiB |
Before Width: | Height: | Size: 358 KiB After Width: | Height: | Size: 349 KiB |
Before Width: | Height: | Size: 808 KiB After Width: | Height: | Size: 706 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 345 KiB After Width: | Height: | Size: 333 KiB |
|
@ -1,13 +1,14 @@
|
||||||
{
|
{
|
||||||
"name": "iosevka",
|
"name": "iosevka",
|
||||||
"version": "2.2.1",
|
"version": "2.2.2",
|
||||||
"main": "./generate.js",
|
"main": "./generate.js",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.4.0"
|
"node": ">=8.4.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"install": "node checkenv",
|
"install": "node checkenv",
|
||||||
"build": "verda -f verdafile.js"
|
"build": "verda -f verdafile.js",
|
||||||
|
"stylus": "stylus"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bezier-js": "^2.2.3",
|
"bezier-js": "^2.2.3",
|
||||||
|
@ -31,6 +32,7 @@
|
||||||
"yargs": "^12.0.0"
|
"yargs": "^12.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^5.2.0"
|
"eslint": "^5.2.0",
|
||||||
|
"stylus": "^0.54.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,46 +1,57 @@
|
||||||
const {app, BrowserWindow} = require('electron');
|
const { app, BrowserWindow } = require("electron");
|
||||||
var argv = require('yargs').argv;
|
var argv = require("yargs").argv;
|
||||||
var fs = require('fs');
|
var fs = require("fs");
|
||||||
var cp = require('child_process');
|
var cp = require("child_process");
|
||||||
|
|
||||||
var mainWindow = null;
|
var mainWindow = null;
|
||||||
var allWindowClosed = false;
|
var allWindowClosed = false;
|
||||||
var pendingTasks = 0;
|
var pendingTasks = 0;
|
||||||
var zoom = 2
|
var zoom = 2;
|
||||||
|
|
||||||
function checkQuit() {
|
function checkQuit() {
|
||||||
if (allWindowClosed && pendingTasks == 0) app.quit();
|
if (allWindowClosed && pendingTasks == 0) app.quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
app.on('window-all-closed', function () {
|
app.on("window-all-closed", function() {
|
||||||
allWindowClosed = true;
|
allWindowClosed = true;
|
||||||
checkQuit()
|
checkQuit();
|
||||||
});
|
});
|
||||||
|
|
||||||
function combineImages(images, outfile, width, height, doubleTrim) {
|
function combineImages(images, outfile, width, height, doubleTrim) {
|
||||||
var command = 'magick ' + images.join(' ') + ' -append -crop ' + width + 'x' + height + '+0+0 +repage -bordercolor #008000 -fuzz 5% -trim ' + (doubleTrim ? '-bordercolor ' + doubleTrim + ' -trim ' : '') + outfile;
|
var command =
|
||||||
|
"magick " +
|
||||||
|
images.join(" ") +
|
||||||
|
" -append -crop " +
|
||||||
|
width +
|
||||||
|
"x" +
|
||||||
|
height +
|
||||||
|
"+0+0 +repage -bordercolor #008000 -fuzz 5% -trim " +
|
||||||
|
(doubleTrim ? "-bordercolor " + doubleTrim + " -trim " : "") +
|
||||||
|
outfile;
|
||||||
console.log(command);
|
console.log(command);
|
||||||
cp.exec(command, function (err, stdout, stderr) {
|
cp.exec(command, function(err, stdout, stderr) {
|
||||||
if (err) console.log(err)
|
if (err) console.log(err);
|
||||||
images.forEach(function (file) {
|
images.forEach(function(file) {
|
||||||
fs.unlinkSync(file);
|
fs.unlinkSync(file);
|
||||||
});
|
});
|
||||||
pendingTasks -= 1;
|
pendingTasks -= 1;
|
||||||
checkQuit();
|
checkQuit();
|
||||||
})
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
var ipc = require('electron').ipcMain;
|
var ipc = require("electron").ipcMain;
|
||||||
function GOTO(phase) { currentPhase = phase };
|
function GOTO(phase) {
|
||||||
|
currentPhase = phase;
|
||||||
|
}
|
||||||
var phases = {
|
var phases = {
|
||||||
prepare: function (event, arg) {
|
prepare: function(event, arg) {
|
||||||
console.log(arg);
|
console.log(arg);
|
||||||
GOTO(phases['receive-rect']);
|
GOTO(phases["receive-rect"]);
|
||||||
},
|
},
|
||||||
'receive-rect': function (event, rect) {
|
"receive-rect": function(event, rect) {
|
||||||
pendingTasks += 1
|
pendingTasks += 1;
|
||||||
rect = JSON.parse(JSON.stringify(rect));
|
rect = JSON.parse(JSON.stringify(rect));
|
||||||
var file = argv.dir + '/' + rect.name + '.png';
|
var file = argv.dir + "/" + rect.name + ".png";
|
||||||
var j = 0;
|
var j = 0;
|
||||||
var totalFiles = Math.ceil(rect.height / rect.windowHeight);
|
var totalFiles = Math.ceil(rect.height / rect.windowHeight);
|
||||||
var pendingFiles = totalFiles;
|
var pendingFiles = totalFiles;
|
||||||
|
@ -49,48 +60,61 @@ var phases = {
|
||||||
if (pendingFiles <= 0) {
|
if (pendingFiles <= 0) {
|
||||||
var images = [];
|
var images = [];
|
||||||
for (var k = 0; k < j; k++) {
|
for (var k = 0; k < j; k++) {
|
||||||
images.push(argv.dir + '/' + rect.name + '.' + k + '.png')
|
images.push(argv.dir + "/" + rect.name + "." + k + ".png");
|
||||||
}
|
}
|
||||||
combineImages(images, file, rect.windowWidth * rect.dpi, rect.height * rect.dpi, rect.doubleTrim);
|
combineImages(
|
||||||
|
images,
|
||||||
|
file,
|
||||||
|
rect.windowWidth * rect.dpi,
|
||||||
|
rect.height * rect.dpi,
|
||||||
|
rect.doubleTrim
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function step() {
|
function step() {
|
||||||
event.sender.send('scroll', rect.y + j * rect.windowHeight);
|
event.sender.send("scroll", rect.y + j * rect.windowHeight);
|
||||||
GOTO(function (event) {
|
GOTO(function(event) {
|
||||||
mainWindow.capturePage(function (image) {
|
mainWindow.capturePage(function(image) {
|
||||||
fs.writeFile(argv.dir + '/' + rect.name + '.' + j + '.png', image.toPng(), doneFileWrite);
|
fs.writeFile(
|
||||||
|
argv.dir + "/" + rect.name + "." + j + ".png",
|
||||||
|
image.toPNG(),
|
||||||
|
doneFileWrite
|
||||||
|
);
|
||||||
j += 1;
|
j += 1;
|
||||||
if (j >= totalFiles) { // Move to next image
|
if (j >= totalFiles) {
|
||||||
event.sender.send('complete', file);
|
// Move to next image
|
||||||
GOTO(phases['receive-rect']);
|
event.sender.send("complete", file);
|
||||||
|
GOTO(phases["receive-rect"]);
|
||||||
} else {
|
} else {
|
||||||
step()
|
step();
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
};
|
}
|
||||||
step()
|
step();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var currentPhase = phases['prepare'];
|
var currentPhase = phases["prepare"];
|
||||||
ipc.on('snapshot', function () {
|
ipc.on("snapshot", function() {
|
||||||
currentPhase.apply(this, arguments)
|
currentPhase.apply(this, arguments);
|
||||||
});
|
});
|
||||||
ipc.on('log', function (event, arg) {
|
ipc.on("log", function(event, arg) {
|
||||||
console.log(arg);
|
console.log(arg);
|
||||||
})
|
});
|
||||||
|
|
||||||
app.on('ready', function () {
|
app.on("ready", function() {
|
||||||
mainWindow = new BrowserWindow({
|
mainWindow = new BrowserWindow({
|
||||||
width: 64 * 16 * zoom, height: 1024 * zoom,
|
width: 64 * 16 * zoom,
|
||||||
x: 5000, y: 5000,
|
height: 1024 * zoom,
|
||||||
|
//x: 5000, y: 5000,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
zoomFactor: zoom
|
zoomFactor: zoom,
|
||||||
|
nodeIntegration: true
|
||||||
},
|
},
|
||||||
show: false
|
show: false
|
||||||
});
|
});
|
||||||
mainWindow.showInactive();
|
mainWindow.showInactive();
|
||||||
mainWindow.loadURL('file://' + __dirname + '/index.html');
|
mainWindow.loadURL("file://" + __dirname + "/index.html");
|
||||||
mainWindow.blurWebView();
|
mainWindow.blurWebView();
|
||||||
//mainWindow.hide();
|
//mainWindow.hide();
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,107 +1,104 @@
|
||||||
if (window && window.process && window.process.type && process.versions["electron"])
|
console.log("I AN IN ELECTRON");
|
||||||
(function() {
|
var windowWidth = window.innerWidth;
|
||||||
console.log("I AN IN ELECTRON");
|
var windowHeight = window.innerHeight;
|
||||||
var windowWidth = window.innerWidth;
|
var dpi = window.devicePixelRatio;
|
||||||
var windowHeight = window.innerHeight;
|
var ipc = require("electron").ipcRenderer;
|
||||||
var dpi = window.devicePixelRatio;
|
|
||||||
var ipc = require("electron").ipcRenderer;
|
|
||||||
|
|
||||||
var onScroll = function() {};
|
var onScroll = function() {};
|
||||||
ipc.on("scroll", function() {
|
ipc.on("scroll", function() {
|
||||||
onScroll.apply(this, arguments);
|
onScroll.apply(this, arguments);
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
ipc.send("snapshot", "scroll-done");
|
ipc.send("snapshot", "scroll-done");
|
||||||
}, 500);
|
}, 500);
|
||||||
});
|
});
|
||||||
var onComplete = function() {};
|
var onComplete = function() {};
|
||||||
ipc.on("complete", function() {
|
ipc.on("complete", function() {
|
||||||
onComplete.apply(this, arguments);
|
onComplete.apply(this, arguments);
|
||||||
});
|
});
|
||||||
|
|
||||||
function captureElement(options, callback) {
|
function captureElement(options, callback) {
|
||||||
window.scroll(0, 0);
|
window.scroll(0, 0);
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
var rect = options.el.getBoundingClientRect();
|
var rect = options.el.getBoundingClientRect();
|
||||||
onScroll = function(event, arg) {
|
onScroll = function(event, arg) {
|
||||||
window.scrollTo(0, arg);
|
window.scrollTo(0, arg);
|
||||||
};
|
|
||||||
onComplete = function() {
|
|
||||||
if (callback) callback();
|
|
||||||
onComplete = function() {};
|
|
||||||
};
|
|
||||||
ipc.send("snapshot", {
|
|
||||||
name: options.name,
|
|
||||||
windowWidth: windowWidth,
|
|
||||||
windowHeight: windowHeight,
|
|
||||||
doubleTrim: options.doubleTrim,
|
|
||||||
dpi: dpi,
|
|
||||||
x: rect.left | 0,
|
|
||||||
y: rect.top | 0,
|
|
||||||
width: rect.width | 0,
|
|
||||||
height: rect.height | 0
|
|
||||||
});
|
|
||||||
}, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.onload = function() {
|
|
||||||
var snapshotTasks = [
|
|
||||||
{
|
|
||||||
el: document.querySelector("#downloadoptions"),
|
|
||||||
name: "download-options",
|
|
||||||
doubleTrim: "white"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#languages"),
|
|
||||||
name: "languages"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#variants"),
|
|
||||||
name: "variants"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#stylesets"),
|
|
||||||
name: "stylesets"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#charvars"),
|
|
||||||
name: "charvars"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#matrix"),
|
|
||||||
name: "matrix"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#family"),
|
|
||||||
name: "family"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#previews"),
|
|
||||||
name: "preview-all"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#weights"),
|
|
||||||
name: "weights"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
el: document.querySelector("#ligations"),
|
|
||||||
name: "ligations",
|
|
||||||
doubleTrim: "white"
|
|
||||||
}
|
|
||||||
];
|
|
||||||
current = 0;
|
|
||||||
var step = function() {
|
|
||||||
var doit = function() {
|
|
||||||
captureElement(snapshotTasks[current], function() {
|
|
||||||
current += 1;
|
|
||||||
if (current >= snapshotTasks.length) window.close();
|
|
||||||
else setTimeout(step, 100);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
if (snapshotTasks[current].prepare) snapshotTasks[current].prepare(doit);
|
|
||||||
else setTimeout(doit, 100);
|
|
||||||
};
|
|
||||||
ipc.send("snapshot", "i am ready");
|
|
||||||
console.log("I AM READY");
|
|
||||||
setTimeout(step, 2000);
|
|
||||||
};
|
};
|
||||||
})();
|
onComplete = function() {
|
||||||
|
if (callback) callback();
|
||||||
|
onComplete = function() {};
|
||||||
|
};
|
||||||
|
ipc.send("snapshot", {
|
||||||
|
name: options.name,
|
||||||
|
windowWidth: windowWidth,
|
||||||
|
windowHeight: windowHeight,
|
||||||
|
doubleTrim: options.doubleTrim,
|
||||||
|
dpi: dpi,
|
||||||
|
x: rect.left | 0,
|
||||||
|
y: rect.top | 0,
|
||||||
|
width: rect.width | 0,
|
||||||
|
height: rect.height | 0
|
||||||
|
});
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
var snapshotTasks = [
|
||||||
|
{
|
||||||
|
el: document.querySelector("#downloadoptions"),
|
||||||
|
name: "download-options",
|
||||||
|
doubleTrim: "white"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#languages"),
|
||||||
|
name: "languages"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#variants"),
|
||||||
|
name: "variants"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#stylesets"),
|
||||||
|
name: "stylesets"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#charvars"),
|
||||||
|
name: "charvars"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#matrix"),
|
||||||
|
name: "matrix"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#family"),
|
||||||
|
name: "family"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#previews"),
|
||||||
|
name: "preview-all"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#weights"),
|
||||||
|
name: "weights"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
el: document.querySelector("#ligations"),
|
||||||
|
name: "ligations",
|
||||||
|
doubleTrim: "white"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
current = 0;
|
||||||
|
var step = function() {
|
||||||
|
var doit = function() {
|
||||||
|
captureElement(snapshotTasks[current], function() {
|
||||||
|
current += 1;
|
||||||
|
if (current >= snapshotTasks.length) window.close();
|
||||||
|
else setTimeout(step, 100);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
if (snapshotTasks[current].prepare) snapshotTasks[current].prepare(doit);
|
||||||
|
else setTimeout(doit, 100);
|
||||||
|
};
|
||||||
|
ipc.send("snapshot", "i am ready");
|
||||||
|
console.log("I AM READY");
|
||||||
|
setTimeout(step, 2000);
|
||||||
|
};
|
||||||
|
|
|
@ -1,301 +1,372 @@
|
||||||
@import url(iosevka/webfont.css)
|
@import url('iosevka/webfont.css');
|
||||||
@import url(iosevka-slab/webfont.css)
|
@import url('iosevka-slab/webfont.css');
|
||||||
|
|
||||||
.thin { font-weight: 100 }
|
.thin
|
||||||
.extralight { font-weight: 200 }
|
font-weight: 100;
|
||||||
.light { font-weight: 300 }
|
|
||||||
.medium { font-weight: 500 }
|
|
||||||
.semibold { font-weight: 600 }
|
|
||||||
.bold { font-weight: 700 }
|
|
||||||
.extrabold { font-weight: 800 }
|
|
||||||
.heavy { font-weight: 900 }
|
|
||||||
.italic { font-style: italic }
|
|
||||||
.oblique { font-style: oblique }
|
|
||||||
.slab { font-family: "Iosevka Slab Web", monospace }
|
|
||||||
|
|
||||||
html,body{
|
.extralight
|
||||||
margin: 0
|
font-weight: 200;
|
||||||
padding:0
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
font-family: "Iosevka Web"
|
|
||||||
background: #008000
|
|
||||||
padding-bottom: 60em
|
|
||||||
font-size: 15px
|
|
||||||
}
|
|
||||||
pre, code { font-family: "Iosevka Web"; }
|
|
||||||
|
|
||||||
::-webkit-scrollbar {display: none;}
|
.light
|
||||||
|
font-weight: 300;
|
||||||
|
|
||||||
body > section {
|
.medium
|
||||||
margin: 3em auto
|
font-weight: 500;
|
||||||
width: 900px
|
|
||||||
background: white
|
.semibold
|
||||||
}
|
font-weight: 600;
|
||||||
|
|
||||||
|
.bold
|
||||||
|
font-weight: 700;
|
||||||
|
|
||||||
|
.extrabold
|
||||||
|
font-weight: 800;
|
||||||
|
|
||||||
|
.heavy
|
||||||
|
font-weight: 900;
|
||||||
|
|
||||||
|
.italic
|
||||||
|
font-style: italic;
|
||||||
|
|
||||||
|
.slab
|
||||||
|
font-family: 'Iosevka Slab Web', monospace;
|
||||||
|
|
||||||
|
&.oblique
|
||||||
|
font-family: 'Iosevka Slab Web Oblique', monospace;
|
||||||
|
|
||||||
|
.oblique
|
||||||
|
font-family: 'Iosevka Web Oblique', monospace;
|
||||||
|
|
||||||
|
html, body
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
body
|
||||||
|
font-family: 'Iosevka Web';
|
||||||
|
background: #008000;
|
||||||
|
padding-bottom: 60em;
|
||||||
|
font-size: 15px;
|
||||||
|
|
||||||
|
pre, code
|
||||||
|
font-family: 'Iosevka Web';
|
||||||
|
|
||||||
|
::-webkit-scrollbar
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
body > section
|
||||||
|
margin: 3em auto;
|
||||||
|
width: 900px;
|
||||||
|
background: white;
|
||||||
|
|
||||||
/* hljs */
|
/* hljs */
|
||||||
section.preview {
|
section.preview
|
||||||
text-align: center
|
text-align: center;
|
||||||
font-size: 80%
|
font-size: 80%;
|
||||||
}
|
|
||||||
section.preview pre {
|
section.preview pre
|
||||||
display: inline-block
|
display: inline-block;
|
||||||
text-align: left
|
text-align: left;
|
||||||
margin: 1.2rem 0
|
margin: 1.2rem 0;
|
||||||
line-height: 1.5
|
line-height: 1.5;
|
||||||
}
|
|
||||||
section.color-light {
|
section.color-light
|
||||||
background-color: hsl(39, 6%, 95%)
|
background-color: hsl(39, 6%, 95%);
|
||||||
color: #333
|
color: #333;
|
||||||
}
|
|
||||||
.color-light .keyword, .color-light .class, .color-light .tag, .color-light .pseudo, .color-light .attr_selector, .color-light .constant, .color-light .xml .title {
|
.color-light .keyword, .color-light .class, .color-light .tag, .color-light .pseudo, .color-light .attr_selector, .color-light .constant, .color-light .xml .title
|
||||||
color: #446fbd
|
color: #446fbd;
|
||||||
}
|
|
||||||
.color-light .comment {
|
.color-light .comment
|
||||||
color: hsl(0, 0%, 62%)
|
color: hsl(0, 0%, 62%);
|
||||||
}
|
|
||||||
.color-light .title, .color-light .attribute, .color-light .params, .color-light .built_in {
|
.color-light .title, .color-light .attribute, .color-light .params, .color-light .built_in
|
||||||
color: #8757ad
|
color: #8757ad;
|
||||||
}
|
|
||||||
.color-light .string, .color-light .pi, .color-light .language-less .keyword, .color-light .xml .value {
|
.color-light .string, .color-light .pi, .color-light .language-less .keyword, .color-light .xml .value
|
||||||
color: #e88501
|
color: #e88501;
|
||||||
}
|
|
||||||
.color-light .number, .color-light .xml .attribute {
|
.color-light .number, .color-light .xml .attribute
|
||||||
color: #6d8600
|
color: #6d8600;
|
||||||
}
|
|
||||||
.color-light .operator {
|
.color-light .operator
|
||||||
color: #c33500
|
color: #c33500;
|
||||||
}
|
|
||||||
section.color-dark {
|
section.color-dark
|
||||||
background-color: hsl(39, 6%, 12%)
|
background-color: hsl(39, 6%, 12%);
|
||||||
color: #cfcfcf
|
color: #cfcfcf;
|
||||||
}
|
|
||||||
.color-dark .keyword, .color-dark .class, .color-dark .tag, .color-dark .pseudo, .color-dark .attr_selector, .color-dark .constant, .color-dark .xml .title {
|
.color-dark .keyword, .color-dark .class, .color-dark .tag, .color-dark .pseudo, .color-dark .attr_selector, .color-dark .constant, .color-dark .xml .title
|
||||||
color: #6c9ef8
|
color: #6c9ef8;
|
||||||
}
|
|
||||||
.color-dark .comment {
|
.color-dark .comment
|
||||||
color: #767676
|
color: #767676;
|
||||||
}
|
|
||||||
.color-dark .title, .color-dark .attribute, .color-dark .params, .color-dark .built_in {
|
.color-dark .title, .color-dark .attribute, .color-dark .params, .color-dark .built_in
|
||||||
color: #b77fdb
|
color: #b77fdb;
|
||||||
}
|
|
||||||
.color-dark .string, .color-dark .pi, .color-dark .language-less .keyword, .color-dark .xml .value {
|
.color-dark .string, .color-dark .pi, .color-dark .language-less .keyword, .color-dark .xml .value
|
||||||
color: #D89333
|
color: #D89333;
|
||||||
}
|
|
||||||
.color-dark .number, .color-dark .xml .attribute {
|
.color-dark .number, .color-dark .xml .attribute
|
||||||
color: #85a300
|
color: #85a300;
|
||||||
}
|
|
||||||
.color-dark .operator {
|
.color-dark .operator
|
||||||
color: #c34564
|
color: #c34564;
|
||||||
}
|
|
||||||
|
|
||||||
section#matrix
|
section#matrix
|
||||||
height: 480px
|
height: 480px;
|
||||||
position: relative
|
position: relative;
|
||||||
> div
|
|
||||||
position: absolute
|
|
||||||
font-size: 90px
|
|
||||||
left: 50%
|
|
||||||
margin-left: -4.75em
|
|
||||||
top: 50%
|
|
||||||
margin-top: -1.95em
|
|
||||||
> row
|
|
||||||
display: block
|
|
||||||
text-align: center
|
|
||||||
line-height: 0.8em
|
|
||||||
> span
|
|
||||||
font-size: 0.4em
|
|
||||||
padding: 0 0.5em
|
|
||||||
&.slab
|
|
||||||
margin-left: -4.25em
|
|
||||||
margin-top: -1.44em
|
|
||||||
|
|
||||||
section#matrix > div > row > span {
|
> div
|
||||||
font-size: 0.4em
|
position: absolute;
|
||||||
padding: 0 0.5em
|
font-size: 90px;
|
||||||
}
|
left: 50%;
|
||||||
|
margin-left: -4.75em;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -1.95em;
|
||||||
|
|
||||||
|
> row
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 0.8em;
|
||||||
|
|
||||||
|
> span
|
||||||
|
font-size: 0.4em;
|
||||||
|
padding: 0 0.5em;
|
||||||
|
|
||||||
|
&.slab
|
||||||
|
margin-left: -4.25em;
|
||||||
|
margin-top: -1.44em;
|
||||||
|
|
||||||
|
section#matrix > div > row > span
|
||||||
|
font-size: 0.4em;
|
||||||
|
padding: 0 0.5em;
|
||||||
|
|
||||||
section.opentype
|
section.opentype
|
||||||
width: 36em
|
width: 36em;
|
||||||
padding: 0 8em
|
padding: 0 8em;
|
||||||
> h2 { display: none }
|
|
||||||
|
> h2
|
||||||
|
display: none;
|
||||||
|
|
||||||
> div.hr
|
> div.hr
|
||||||
font-size: 80%
|
font-size: 80%;
|
||||||
text-transform: uppercase
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.2em
|
letter-spacing: 0.2em;
|
||||||
margin: 3rem auto
|
margin: 3rem auto;
|
||||||
text-align: center
|
text-align: center;
|
||||||
display: block
|
display: block;
|
||||||
|
|
||||||
&:before, &:after
|
&:before, &:after
|
||||||
content: ''
|
content: '';
|
||||||
display: inline-block
|
display: inline-block;
|
||||||
border-bottom: 1px solid #ddd
|
border-bottom: 1px solid #ddd;
|
||||||
width: 4em
|
width: 4em;
|
||||||
margin: 0 1em
|
margin: 0 1em;
|
||||||
vertical-align: 0.3em
|
vertical-align: 0.3em;
|
||||||
|
|
||||||
> ol
|
> ol
|
||||||
list-style none
|
list-style: none;
|
||||||
margin 0
|
margin: 0;
|
||||||
padding 0
|
padding: 0;
|
||||||
font-size 1em
|
font-size: 1em;
|
||||||
width 36em
|
width: 36em;
|
||||||
|
|
||||||
> li
|
> li
|
||||||
margin 0
|
margin: 0;
|
||||||
padding 0
|
padding: 0;
|
||||||
position relative
|
position: relative;
|
||||||
height 4.5em
|
height: 4.5em;
|
||||||
border-top 1px solid #eee
|
border-top: 1px solid #eee;
|
||||||
margin-top 0.4em
|
margin-top: 0.4em;
|
||||||
padding-top 0.4em
|
padding-top: 0.4em;
|
||||||
|
|
||||||
&:first-child
|
&:first-child
|
||||||
border-top none
|
border-top: none;
|
||||||
margin-top 0
|
margin-top: 0;
|
||||||
|
|
||||||
> .tag
|
> .tag
|
||||||
display block
|
display: block;
|
||||||
position absolute
|
position: absolute;
|
||||||
top calc(0.8em - 0.2em - 1px)
|
top: calc(0.8em - 0.2em - 1px);
|
||||||
left 0
|
left: 0;
|
||||||
font-size 0.8em
|
font-size: 0.8em;
|
||||||
width 2em
|
width: 2em;
|
||||||
border 1px solid rgba(0, 0, 0, 0.25)
|
border: 1px solid rgba(0, 0, 0, 0.25);
|
||||||
padding 0.2em
|
padding: 0.2em;
|
||||||
padding-bottom 0.1em
|
padding-bottom: 0.1em;
|
||||||
text-align center
|
text-align: center;
|
||||||
border-radius 0.2em
|
border-radius: 0.2em;
|
||||||
|
|
||||||
> .description
|
> .description
|
||||||
display block
|
display: block;
|
||||||
position absolute
|
position: absolute;
|
||||||
top 0.8em
|
top: 0.8em;
|
||||||
right 0
|
right: 0;
|
||||||
font-style italic
|
font-style: italic;
|
||||||
font-size 0.8em
|
font-size: 0.8em;
|
||||||
color rgba(0, 0, 0, 0.5)
|
color: rgba(0, 0, 0, 0.5);
|
||||||
|
|
||||||
> .sample
|
> .sample
|
||||||
display block
|
display: block;
|
||||||
margin-top 1.6em
|
margin-top: 1.6em;
|
||||||
&.italic { margin-top: 0.25em }
|
|
||||||
|
&.italic
|
||||||
|
margin-top: 0.25em;
|
||||||
|
|
||||||
&.narrow
|
&.narrow
|
||||||
display flex
|
display: flex;
|
||||||
justify-content center
|
justify-content: center;
|
||||||
flex-wrap wrap
|
flex-wrap: wrap;
|
||||||
width: 35em;
|
width: 35em;
|
||||||
margin-left: ((35.5em - 35em) / 2);
|
margin-left: ((35.5em - 35em) / 2);
|
||||||
|
|
||||||
> li
|
> li
|
||||||
margin 0 0.5em 0.5em
|
margin: 0 0.5em 0.5em;
|
||||||
border none
|
border: none;
|
||||||
width 4em
|
width: 4em;
|
||||||
flex none
|
flex: none;
|
||||||
|
|
||||||
> .tag
|
> .tag
|
||||||
width auto
|
width: auto;
|
||||||
left 50%
|
left: 50%;
|
||||||
margin-left calc(-1.2em - 1px)
|
margin-left: calc(-1.2em - 1px);
|
||||||
|
|
||||||
> .sample
|
> .sample
|
||||||
display inline-block
|
display: inline-block;
|
||||||
font-size 2em
|
font-size: 2em;
|
||||||
margin-top 0.9em
|
margin-top: 0.9em;
|
||||||
width 1em
|
width: 1em;
|
||||||
text-align center
|
text-align: center;
|
||||||
|
|
||||||
b
|
b
|
||||||
font-weight normal
|
font-weight: normal;
|
||||||
color #c33500
|
color: #c33500;
|
||||||
|
|
||||||
#family
|
#family
|
||||||
background: white
|
background: white;
|
||||||
font-size: 0.9em
|
font-size: 0.9em;
|
||||||
.group { display: flex }
|
|
||||||
|
.group
|
||||||
|
display: flex;
|
||||||
|
|
||||||
.group a
|
.group a
|
||||||
display: block
|
display: block;
|
||||||
padding: 0.5rem
|
padding: 0.5rem;
|
||||||
flex: 1
|
flex: 1;
|
||||||
text-shadow: none
|
text-shadow: none;
|
||||||
color: black
|
color: black;
|
||||||
text-decoration: none
|
text-decoration: none;
|
||||||
&.italic, &.oblique { flex: 1.3 }
|
|
||||||
&.slab { flex: 1.2 }
|
&.italic, &.oblique
|
||||||
&.slab.italic, &.slab.oblique { flex: 1.7 }
|
flex: 1.3;
|
||||||
|
|
||||||
|
&.slab
|
||||||
|
flex: 1.2;
|
||||||
|
|
||||||
|
&.slab.italic, &.slab.oblique
|
||||||
|
flex: 1.7;
|
||||||
|
|
||||||
#downloadoptions
|
#downloadoptions
|
||||||
display: flex
|
display: flex;
|
||||||
justify-content: center
|
justify-content: center;
|
||||||
|
|
||||||
> div
|
> div
|
||||||
flex: none
|
flex: none;
|
||||||
width: 12em
|
width: 12em;
|
||||||
border: 3px solid #ddd
|
border: 3px solid #ddd;
|
||||||
border-radius: 1em
|
border-radius: 1em;
|
||||||
margin: 0.5em
|
margin: 0.5em;
|
||||||
|
|
||||||
> h3
|
> h3
|
||||||
margin: 0
|
margin: 0;
|
||||||
padding: 1rem 0 1rem 0
|
padding: 1rem 0 1rem 0;
|
||||||
text-align: center
|
text-align: center;
|
||||||
font-weight: bold
|
font-weight: bold;
|
||||||
font-size: 1em
|
font-size: 1em;
|
||||||
|
|
||||||
> ul
|
> ul
|
||||||
display: flex
|
display: flex;
|
||||||
list-style: none
|
list-style: none;
|
||||||
margin: 0
|
margin: 0;
|
||||||
padding: 0
|
padding: 0;
|
||||||
justify-content: center
|
justify-content: center;
|
||||||
|
|
||||||
> li
|
> li
|
||||||
margin: 0
|
margin: 0;
|
||||||
padding: 0
|
padding: 0;
|
||||||
height: 3.5em
|
height: 3.5em;
|
||||||
position: relative
|
position: relative;
|
||||||
padding: 0 0.5em 1em
|
padding: 0 0.5em 1em;
|
||||||
|
|
||||||
> div
|
> div
|
||||||
font-size: 0.8em
|
font-size: 0.8em;
|
||||||
height: 2em
|
height: 2em;
|
||||||
width: 2em
|
width: 2em;
|
||||||
line-height: 2em
|
line-height: 2em;
|
||||||
text-align: center
|
text-align: center;
|
||||||
padding: 0.5em
|
padding: 0.5em;
|
||||||
border: 1px solid #ddd
|
border: 1px solid #ddd;
|
||||||
border-radius: 0.5em
|
border-radius: 0.5em;
|
||||||
|
|
||||||
> h4
|
> h4
|
||||||
position: absolute
|
position: absolute;
|
||||||
left: 0
|
left: 0;
|
||||||
right: 0
|
right: 0;
|
||||||
bottom: 1.25em
|
bottom: 1.25em;
|
||||||
margin: 0
|
margin: 0;
|
||||||
font-size: 0.6em
|
font-size: 0.6em;
|
||||||
text-align: center
|
text-align: center;
|
||||||
font-weight: normal
|
font-weight: normal;
|
||||||
|
|
||||||
.missing
|
.missing
|
||||||
color: rgba(0, 0, 0, 0.25)
|
color: rgba(0, 0, 0, 0.25);
|
||||||
|
|
||||||
span
|
span
|
||||||
outline: 1px solid rgba(0, 0, 0, 0.2)
|
outline: 1px solid rgba(0, 0, 0, 0.2);
|
||||||
|
|
||||||
.fwm
|
.fwm
|
||||||
padding-left: 0.25em
|
padding-left: 0.25em;
|
||||||
padding-right: 0.25em
|
padding-right: 0.25em;
|
||||||
margin-right: 0.25em
|
margin-right: 0.25em;
|
||||||
margin-left: -0.125em
|
margin-left: -0.125em;
|
||||||
|
|
||||||
.fwl
|
.fwl
|
||||||
padding-right: 0.5em
|
padding-right: 0.5em;
|
||||||
|
|
||||||
#ligations > table
|
#ligations > table
|
||||||
border-spacing 0
|
border-spacing: 0;
|
||||||
border-top 2px solid black
|
border-top: 2px solid black;
|
||||||
border-bottom 2px solid black
|
border-bottom: 2px solid black;
|
||||||
margin 1em auto
|
margin: 1em auto;
|
||||||
|
|
||||||
th
|
th
|
||||||
white-space nowrap
|
white-space: nowrap;
|
||||||
|
|
||||||
pre
|
pre
|
||||||
margin 0
|
margin: 0;
|
||||||
|
|
||||||
th, td
|
th, td
|
||||||
padding: 0.4em 1em
|
padding: 0.4em 1em;
|
||||||
text-align: left
|
text-align: left;
|
||||||
|
|
||||||
tr.note
|
tr.note
|
||||||
td
|
td
|
||||||
border-top 1px solid black
|
border-top: 1px solid black;
|
||||||
font-style italic
|
|
||||||
color #c33500
|
font-style: italic;
|
||||||
|
color: #c33500;
|
||||||
|
|
||||||
em, e
|
em, e
|
||||||
font-style normal
|
font-style: normal;
|
||||||
color #444
|
color: #444;
|
||||||
|
|
||||||
e
|
e
|
||||||
font-feature-settings: "cv19" on
|
font-feature-settings: 'cv19' on;
|
||||||
|
|
||||||
s, .nolig
|
s, .nolig
|
||||||
text-decoration: none
|
text-decoration: none;
|
||||||
opacity: 0.25
|
opacity: 0.25;
|
||||||
|
|
||||||
.nolig
|
.nolig
|
||||||
font-feature-settings: "calt" 0
|
font-feature-settings: 'calt' 0;
|
|
@ -14,6 +14,16 @@ module.exports = function(output, family, hs, formats) {
|
||||||
src: ${src};
|
src: ${src};
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
if (term.cssStyle === "oblique") {
|
||||||
|
// CHROME hates a family with both Italic and Oblique
|
||||||
|
ans += `
|
||||||
|
@font-face {
|
||||||
|
font-family: '${family + " Web Oblique"}';
|
||||||
|
font-weight: ${term.cssWeight};
|
||||||
|
src: ${src};
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fs.writeFileSync(output, ans);
|
fs.writeFileSync(output, ans);
|
||||||
};
|
};
|
||||||
|
|
|
@ -61,14 +61,16 @@ const RawPlans = oracle(`raw-plans`, async target => {
|
||||||
// Style groups
|
// Style groups
|
||||||
if (!plan.pre) plan.pre = {};
|
if (!plan.pre) plan.pre = {};
|
||||||
if (!plan.post) plan.post = {};
|
if (!plan.post) plan.post = {};
|
||||||
|
|
||||||
if (!plan.pre.design) plan.pre.design = plan.design || [];
|
if (!plan.pre.design) plan.pre.design = plan.design || [];
|
||||||
if (!plan.pre.upright) plan.pre.upright = plan.upright || [];
|
if (!plan.pre.upright) plan.pre.upright = plan.upright || [];
|
||||||
if (!plan.pre.italic) plan.pre.italic = plan.italic || [];
|
|
||||||
if (!plan.pre.oblique) plan.pre.oblique = plan.oblique || [];
|
if (!plan.pre.oblique) plan.pre.oblique = plan.oblique || [];
|
||||||
|
if (!plan.pre.italic) plan.pre.italic = plan.italic || [];
|
||||||
|
|
||||||
if (!plan.post.design) plan.post.design = [];
|
if (!plan.post.design) plan.post.design = [];
|
||||||
if (!plan.post.upright) plan.post.upright = [];
|
if (!plan.post.upright) plan.post.upright = [];
|
||||||
if (!plan.post.italic) plan.post.italic = [];
|
|
||||||
if (!plan.post.oblique) plan.post.oblique = [];
|
if (!plan.post.oblique) plan.post.oblique = [];
|
||||||
|
if (!plan.post.italic) plan.post.italic = [];
|
||||||
}
|
}
|
||||||
for (const prefix in t.collectPlans) {
|
for (const prefix in t.collectPlans) {
|
||||||
t.collectPlans[prefix].prefix = prefix;
|
t.collectPlans[prefix].prefix = prefix;
|
||||||
|
@ -385,7 +387,7 @@ const SampleImagesPre = task(`sample-images:pre`, async target => {
|
||||||
});
|
});
|
||||||
const SnapShotCSS = file(`snapshot/index.css`, async target => {
|
const SnapShotCSS = file(`snapshot/index.css`, async target => {
|
||||||
await target.need(fu`snapshot/index.styl`);
|
await target.need(fu`snapshot/index.styl`);
|
||||||
await cd(`snapshot`).run(`stylus`, `index.styl`, `-c`);
|
await run(`npm`, `run`, `stylus`, `snapshot/index.styl`, `-c`);
|
||||||
});
|
});
|
||||||
const TakeSampleImages = task(`sample-images:take`, async target => {
|
const TakeSampleImages = task(`sample-images:take`, async target => {
|
||||||
await target.need(SampleImagesPre, SnapShotCSS);
|
await target.need(SampleImagesPre, SnapShotCSS);
|
||||||
|
|