From 84d2756c9c97ab36fdf313065e16608be3501f76 Mon Sep 17 00:00:00 2001 From: Chris Kanich Date: Wed, 22 Apr 2020 11:40:10 -0500 Subject: [PATCH] substantive changes --- build.js | 11 +++++++- .../ms-sans-serif-bold/MS Sans Serif Bold.ttf | Bin 0 -> 12256 bytes fonts/src/ms-sans-serif-bold/license.txt | 4 +++ fonts/src/ms-sans-serif-bold/readme.txt | 26 ++++++++++++++++++ fonts/src/ms-sans-serif/MS Sans Serif.ttf | Bin 0 -> 14280 bytes fonts/src/ms-sans-serif/license.txt | 4 +++ fonts/src/ms-sans-serif/readme.txt | 26 ++++++++++++++++++ package.json | 2 ++ style.css | 22 +++++++++++---- 9 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 fonts/src/ms-sans-serif-bold/MS Sans Serif Bold.ttf create mode 100644 fonts/src/ms-sans-serif-bold/license.txt create mode 100644 fonts/src/ms-sans-serif-bold/readme.txt create mode 100644 fonts/src/ms-sans-serif/MS Sans Serif.ttf create mode 100644 fonts/src/ms-sans-serif/license.txt create mode 100644 fonts/src/ms-sans-serif/readme.txt diff --git a/build.js b/build.js index 578c2cc..350915c 100644 --- a/build.js +++ b/build.js @@ -5,6 +5,8 @@ const fs = require("fs"); const hljs = require("highlight.js"); const mkdirp = require("mkdirp"); const postcss = require("postcss"); +const glob = require("glob"); +const path = require("path"); let id = 0; function getNewId() { @@ -33,7 +35,13 @@ function example(code) { function buildDocs() { const template = fs.readFileSync("docs/index.html.ejs", "utf-8"); - fs.copyFileSync("build/98.css", "docs/98.css"); + glob("build/*", function (er, files) { + if (!er) { + files.forEach((srcfile) => + fs.copyFileSync(srcfile, path.join("docs", path.basename(srcfile))) + ); + } else throw "error globbing build directory."; + }); fs.writeFileSync( "docs/index.html", ejs.render(template, { getNewId, getCurrentId, example }) @@ -45,6 +53,7 @@ function buildCSS() { .use(require("postcss-inline-svg")) .use(require("postcss-css-variables")({ preserve: "computed" })) .use(require("postcss-calc")) + .use(require("postcss-copy")({ dest: "build" })) .process(fs.readFileSync("style.css"), { from: "style.css", to: "build/98.css", diff --git a/fonts/src/ms-sans-serif-bold/MS Sans Serif Bold.ttf b/fonts/src/ms-sans-serif-bold/MS Sans Serif Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b91b8faf8eca387935c1012f4309f1749e047aaa GIT binary patch literal 12256 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 literal 0 HcmV?d00001 diff --git a/fonts/src/ms-sans-serif/license.txt b/fonts/src/ms-sans-serif/license.txt new file mode 100644 index 0000000..1043829 --- /dev/null +++ b/fonts/src/ms-sans-serif/license.txt @@ -0,0 +1,4 @@ +The FontStruction “MS Sans Serif” +(https://fontstruct.com/fontstructions/show/1384746) by “lou” is licensed +under a Creative Commons Attribution Share Alike license +(http://creativecommons.org/licenses/by-sa/3.0/). diff --git a/fonts/src/ms-sans-serif/readme.txt b/fonts/src/ms-sans-serif/readme.txt new file mode 100644 index 0000000..97ede46 --- /dev/null +++ b/fonts/src/ms-sans-serif/readme.txt @@ -0,0 +1,26 @@ +The font file in this archive was created using Fontstruct the free, online +font-building tool. +This font was created by “lou”. +This font has a homepage where this archive and other versions may be found: +https://fontstruct.com/fontstructions/show/1384746 + +Try Fontstruct at http://fontstruct.com +It’s easy and it’s fun. + +NOTE FOR FLASH USERS: Fontstruct fonts (fontstructions) are optimized for Flash. +If the font in this archive is a pixel font, it is best displayed at a font-size +of 11. + +Fontstruct is sponsored by FontShop. +Visit them at https://fontshop.com +FontShop is the original independent font retailer. We’ve been around since +the dawn of digital type. Whether you need the right font or need to create the +right font from scratch, let our 26 years of experience work for you. + +Fontstruct is copyright ©2017 Rob Meek + +LEGAL NOTICE: +In using this font you must comply with the licensing terms described in the +file “license.txt” included with this archive. +If you redistribute the font file in this archive, it must be accompanied by all +the other files from this archive, including this one. diff --git a/package.json b/package.json index 2d22946..26000d5 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,11 @@ "devDependencies": { "dedent": "^0.7.0", "ejs": "^3.0.2", + "glob": "^7.1.6", "highlight.js": "^9.18.1", "mkdirp": "^1.0.4", "postcss-calc": "^7.0.2", + "postcss-copy": "^7.1.0", "postcss-css-variables": "^0.14.0", "postcss-inline": "^1.2.0", "postcss-inline-svg": "^4.1.0" diff --git a/style.css b/style.css index 8c74a1d..ca719f2 100644 --- a/style.css +++ b/style.css @@ -60,8 +60,24 @@ inset 2px 2px var(--window-frame); } +@font-face { + font-family: "Pixelated MS Sans Serif"; + src: url("fonts/converted/ms_sans_serif.woff") format("woff"); + src: url("fonts/converted/ms_sans_serif.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Pixelated MS Sans Serif"; + src: url("fonts/converted/ms_sans_serif_bold.woff") format("woff"); + src: url("fonts/converted/ms_sans_serif_bold.woff2") format("woff2"); + font-weight: bold; + font-style: normal; +} + * { - font-family: Arial; + font-family: "Pixelated MS Sans Serif", Arial; font-size: 12px; -webkit-font-smoothing: none; color: #222222; @@ -315,10 +331,6 @@ textarea { box-shadow: var(--border-field); background-color: var(--button-highlight); box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - border-radius: 0; } input[type="text"],