🔀 Merge
@ -3,10 +3,14 @@ module.exports = {
|
||||
env: {
|
||||
node: true
|
||||
},
|
||||
'extends': [
|
||||
extends: [
|
||||
'plugin:vue/recommended',
|
||||
'@vue/standard'
|
||||
],
|
||||
"ignorePatterns": [
|
||||
'src/components/Sample-desktop.js',
|
||||
'src/components/Sample-mobile.vue'
|
||||
],
|
||||
rules: {
|
||||
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
'no-debugger': process.env.NODE_ENV === 'prouduction' ? 'error' : 'off',
|
||||
|
@ -1,3 +1,4 @@
|
||||
github: rubjo
|
||||
patreon: rune_b
|
||||
ko_fi: victormono
|
||||
custom: https://www.paypal.me/runbjo
|
||||
|
106
LICENSE
@ -1,19 +1,93 @@
|
||||
MIT License
|
||||
Copyright (c) 2021, Rune Bjørnerås (https://github.com/rubjo)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
60
README.md
@ -1,43 +1,42 @@
|
||||
[<img src="https://github.com/rubjo/victor-mono/raw/master/public/header.png" width="100%" alt="Header">](https://rubjo.github.io/victor-mono)
|
||||
|
||||
![GitHub release](https://img.shields.io/github/release/rubjo/victor-mono.svg)
|
||||
![GitHub Release Date](https://img.shields.io/github/release-date/rubjo/victor-mono.svg)
|
||||
![Travis (.org)](https://img.shields.io/travis/rubjo/victor-mono.svg?logo=travis)
|
||||
![GitHub](https://img.shields.io/github/license/rubjo/victor-mono.svg)
|
||||
![GitHub stars](https://img.shields.io/github/stars/rubjo/victor-mono.svg?style=social)
|
||||
|
||||
## A programming font with semi-connected cursive italics and symbol ligatures.
|
||||
![Intro image](https://github.com/rubjo/victor-mono/raw/master/public/twitter.png)
|
||||
![carbon (3)](https://user-images.githubusercontent.com/42270947/117447088-53e03300-af3d-11eb-84e2-df1713e77019.png)
|
||||
|
||||
#### More information and download: [rubjo.github.io/victor-mono](https://rubjo.github.io/victor-mono). I would be grateful if you point others to the same URL.
|
||||
### More information and download: [rubjo.github.io/victor-mono](https://rubjo.github.io/victor-mono). If you like it and want to say thanks, [donations](https://www.paypal.me/runbjo) are welcome. ❤️
|
||||
|
||||
#### For use in apps, web pages or other projects:
|
||||
|
||||
***
|
||||
|
||||
|
||||
### For use in apps, web pages or other projects:
|
||||
1. `npm i victormono` (installs Regular, Italic, Bold and Bold Italic styles)
|
||||
2. `import 'victormono'` (in a typical modern setup, eg. webpack)
|
||||
3. Style classes with `font-family: 'Victor Mono'`, `font-weight` and `font-style`
|
||||
|
||||
##### Alternative CDN hosting, best for online editors like [CodePen](https://codepen.io/tomByrer/pen/MWWagVp):
|
||||
#### Alternative CDN hosting, best for online editors like [CodePen](https://codepen.io/tomByrer/pen/MWWagVp):
|
||||
1. `<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/victormono@latest/dist/index.min.css">` in `<head>` or top of `<body>`
|
||||
2. Style classes with `font-family: 'Victor Mono', monospace`
|
||||
|
||||
#### If you like it and want to say thanks, [donations](https://www.paypal.me/runbjo) are welcome. ❤️
|
||||
|
||||
[<img src="https://github.com/rubjo/victor-mono/raw/master/public/code-sample.png" align="right" width="100%" alt="Code sample">](https://rubjo.github.io/victor-mono)
|
||||
###
|
||||
[<img src="https://github.com/rubjo/victor-mono/raw/master/public/powerline-cropped.png" align="right" alt="Powerline">](https://rubjo.github.io/victor-mono)
|
||||
###
|
||||
[<img src="https://github.com/rubjo/victor-mono/raw/master/public/specimens-cropped.png" align="right" alt="Specimens">](https://rubjo.github.io/victor-mono)
|
||||
###
|
||||
[<img src="https://github.com/rubjo/victor-mono/raw/master/src/assets/img/glyphs-dark.png" align="right" alt="Design">](https://rubjo.github.io/victor-mono)
|
||||
|
||||
###
|
||||
|
||||
#### Font stylistics
|
||||
|
||||
##### Available stylistics
|
||||
- ss01: https://github.com/rubjo/victor-mono/issues/78 ([#78](https://github.com/rubjo/victor-mono/issues/78))
|
||||
***
|
||||
|
||||
|
||||
##### Configuration
|
||||
### Font stylistics
|
||||
|
||||
#### Available stylistics
|
||||
- ss01: Single-storey a
|
||||
- ss02: Slashed zero, variant 1
|
||||
- ss03: Slashed zero, variant 2
|
||||
- ss04: Slashed zero, variant 3
|
||||
- ss05: Slashed zero, variant 4
|
||||
- ss06: Slashed seven
|
||||
|
||||
#### Configuration
|
||||
|
||||
- Sublime:
|
||||
```json
|
||||
@ -53,3 +52,20 @@
|
||||
```
|
||||
font_features VictorMono-Medium +ss01
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
|
||||
### Example code previews
|
||||
|
||||
![carbon](https://user-images.githubusercontent.com/42270947/117446571-8ccbd800-af3c-11eb-8f34-bd8250e1920b.png)
|
||||
![carbon (1)](https://user-images.githubusercontent.com/42270947/117447058-46c34400-af3d-11eb-8c2d-007ae5d686cb.png)
|
||||
![carbon (2)](https://user-images.githubusercontent.com/42270947/117447070-4cb92500-af3d-11eb-9254-4ee5628170c6.png)
|
||||
![carbon (4)](https://user-images.githubusercontent.com/42270947/117447095-56db2380-af3d-11eb-89fe-2bcb873cd112.png)
|
||||
![carbon (5)](https://user-images.githubusercontent.com/42270947/117447107-5b074100-af3d-11eb-8101-69fb61e6c402.png)
|
||||
![carbon (6)](https://user-images.githubusercontent.com/42270947/117447119-5f335e80-af3d-11eb-9952-e745a7ddafac.png)
|
||||
![carbon (7)](https://user-images.githubusercontent.com/42270947/117447143-6490a900-af3d-11eb-87a5-6d1fe2e7a9ca.png)
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -18,7 +18,11 @@ name = "Use Typo Metrics";
|
||||
value = 1;
|
||||
}
|
||||
);
|
||||
<<<<<<< HEAD
|
||||
date = "2021-11-15 07:09:22 +0000";
|
||||
=======
|
||||
date = "2021-10-20 11:30:15 +0000";
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
designer = "Rune Bjørnerås";
|
||||
designerURL = "rubjo.github.io/victor-mono";
|
||||
familyName = "Victor Mono";
|
||||
@ -32,7 +36,11 @@ name = Languagesystems;
|
||||
features = (
|
||||
{
|
||||
automatic = 1;
|
||||
<<<<<<< HEAD
|
||||
code = "feature locl;\012feature subs;\012feature sinf;\012feature sups;\012feature numr;\012feature dnom;\012feature frac;\012feature ordn;\012feature case;\012feature calt;\012feature salt;\012feature ss01;\012feature ss02;\012feature ss03;\012feature ss04;\012feature ss05;\012feature ss06;\012";
|
||||
=======
|
||||
code = "feature locl;\012feature subs;\012feature sinf;\012feature sups;\012feature numr;\012feature dnom;\012feature frac;\012feature ordn;\012feature case;\012feature calt;\012feature salt;\012feature ss01;\012feature ss02;\012feature ss03;\012feature ss04;\012feature ss05;\012";
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
name = aalt;
|
||||
},
|
||||
{
|
||||
@ -123,11 +131,14 @@ name = ss04;
|
||||
automatic = 1;
|
||||
code = "sub zero by zero.ss05;\012";
|
||||
name = ss05;
|
||||
<<<<<<< HEAD
|
||||
},
|
||||
{
|
||||
automatic = 1;
|
||||
code = "sub seven by seven.ss06;\012";
|
||||
name = ss06;
|
||||
=======
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
}
|
||||
);
|
||||
fontMaster = (
|
||||
@ -1792,7 +1803,11 @@ unicode = 0044;
|
||||
{
|
||||
color = 4;
|
||||
glyphname = Eth;
|
||||
<<<<<<< HEAD
|
||||
lastChange = "2021-11-15 07:01:33 +0000";
|
||||
=======
|
||||
lastChange = "2021-10-18 17:21:55 +0000";
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
layers = (
|
||||
{
|
||||
layerId = "7C079D0C-96CD-4BD8-8800-0621C7635A78";
|
||||
@ -52579,6 +52594,321 @@ width = 600;
|
||||
},
|
||||
{
|
||||
color = 4;
|
||||
glyphname = zero.ss03;
|
||||
lastChange = "2021-10-18 17:21:55 +0000";
|
||||
layers = (
|
||||
{
|
||||
layerId = "7C079D0C-96CD-4BD8-8800-0621C7635A78";
|
||||
paths = (
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"363 -14 OFFCURVE",
|
||||
"499 150 OFFCURVE",
|
||||
"552 396 CURVE SMOOTH",
|
||||
"605 646 OFFCURVE",
|
||||
"535 814 OFFCURVE",
|
||||
"403 814 CURVE SMOOTH",
|
||||
"275 814 OFFCURVE",
|
||||
"139 650 OFFCURVE",
|
||||
"87 404 CURVE SMOOTH",
|
||||
"34 154 OFFCURVE",
|
||||
"103 -14 OFFCURVE",
|
||||
"236 -14 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"139 32 OFFCURVE",
|
||||
"89 177 OFFCURVE",
|
||||
"136 396 CURVE SMOOTH",
|
||||
"183 619 OFFCURVE",
|
||||
"300 768 OFFCURVE",
|
||||
"402 768 CURVE SMOOTH",
|
||||
"500 768 OFFCURVE",
|
||||
"550 623 OFFCURVE",
|
||||
"503 404 CURVE SMOOTH",
|
||||
"456 181 OFFCURVE",
|
||||
"339 32 OFFCURVE",
|
||||
"237 32 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"635 687 LINE",
|
||||
"650 765 LINE",
|
||||
"4 113 LINE",
|
||||
"-11 35 LINE"
|
||||
);
|
||||
}
|
||||
);
|
||||
width = 600;
|
||||
},
|
||||
{
|
||||
layerId = "291433DC-531A-45CC-B814-57D397372F12";
|
||||
paths = (
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"382 -14 OFFCURVE",
|
||||
"526 157 OFFCURVE",
|
||||
"576 392 CURVE SMOOTH",
|
||||
"627 635 OFFCURVE",
|
||||
"549 814 OFFCURVE",
|
||||
"399 814 CURVE SMOOTH",
|
||||
"257 814 OFFCURVE",
|
||||
"113 643 OFFCURVE",
|
||||
"63 408 CURVE SMOOTH",
|
||||
"11 165 OFFCURVE",
|
||||
"90 -14 OFFCURVE",
|
||||
"240 -14 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"165 78 OFFCURVE",
|
||||
"121 212 OFFCURVE",
|
||||
"160 392 CURVE SMOOTH",
|
||||
"200 580 OFFCURVE",
|
||||
"310 722 OFFCURVE",
|
||||
"396 722 CURVE SMOOTH",
|
||||
"474 722 OFFCURVE",
|
||||
"517 588 OFFCURVE",
|
||||
"479 408 CURVE SMOOTH",
|
||||
"439 220 OFFCURVE",
|
||||
"329 78 OFFCURVE",
|
||||
"243 78 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"622 642 LINE",
|
||||
"653 800 LINE",
|
||||
"17 161 LINE",
|
||||
"-14 0 LINE"
|
||||
);
|
||||
}
|
||||
);
|
||||
width = 600;
|
||||
}
|
||||
);
|
||||
},
|
||||
{
|
||||
color = 4;
|
||||
glyphname = zero.ss04;
|
||||
lastChange = "2021-10-18 17:21:55 +0000";
|
||||
layers = (
|
||||
{
|
||||
layerId = "7C079D0C-96CD-4BD8-8800-0621C7635A78";
|
||||
paths = (
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"363 -14 OFFCURVE",
|
||||
"499 150 OFFCURVE",
|
||||
"552 396 CURVE SMOOTH",
|
||||
"605 646 OFFCURVE",
|
||||
"535 814 OFFCURVE",
|
||||
"403 814 CURVE SMOOTH",
|
||||
"275 814 OFFCURVE",
|
||||
"139 650 OFFCURVE",
|
||||
"87 404 CURVE SMOOTH",
|
||||
"34 154 OFFCURVE",
|
||||
"103 -14 OFFCURVE",
|
||||
"236 -14 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"139 32 OFFCURVE",
|
||||
"89 177 OFFCURVE",
|
||||
"136 396 CURVE SMOOTH",
|
||||
"183 619 OFFCURVE",
|
||||
"300 768 OFFCURVE",
|
||||
"402 768 CURVE SMOOTH",
|
||||
"500 768 OFFCURVE",
|
||||
"550 623 OFFCURVE",
|
||||
"503 404 CURVE SMOOTH",
|
||||
"456 181 OFFCURVE",
|
||||
"339 32 OFFCURVE",
|
||||
"237 32 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"302 200 LINE",
|
||||
"387 600 LINE",
|
||||
"337 600 LINE",
|
||||
"252 200 LINE"
|
||||
);
|
||||
}
|
||||
);
|
||||
width = 600;
|
||||
},
|
||||
{
|
||||
layerId = "291433DC-531A-45CC-B814-57D397372F12";
|
||||
paths = (
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"382 -14 OFFCURVE",
|
||||
"526 157 OFFCURVE",
|
||||
"576 392 CURVE SMOOTH",
|
||||
"627 635 OFFCURVE",
|
||||
"549 814 OFFCURVE",
|
||||
"399 814 CURVE SMOOTH",
|
||||
"257 814 OFFCURVE",
|
||||
"113 643 OFFCURVE",
|
||||
"63 408 CURVE SMOOTH",
|
||||
"11 165 OFFCURVE",
|
||||
"90 -14 OFFCURVE",
|
||||
"240 -14 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"165 78 OFFCURVE",
|
||||
"121 212 OFFCURVE",
|
||||
"160 392 CURVE SMOOTH",
|
||||
"200 580 OFFCURVE",
|
||||
"310 722 OFFCURVE",
|
||||
"396 722 CURVE SMOOTH",
|
||||
"474 722 OFFCURVE",
|
||||
"517 588 OFFCURVE",
|
||||
"479 408 CURVE SMOOTH",
|
||||
"439 220 OFFCURVE",
|
||||
"329 78 OFFCURVE",
|
||||
"243 78 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"331 220 LINE",
|
||||
"408 580 LINE",
|
||||
"308 580 LINE",
|
||||
"231 220 LINE"
|
||||
);
|
||||
}
|
||||
);
|
||||
width = 600;
|
||||
}
|
||||
);
|
||||
},
|
||||
{
|
||||
color = 4;
|
||||
glyphname = zero.ss05;
|
||||
lastChange = "2021-10-18 17:21:55 +0000";
|
||||
layers = (
|
||||
{
|
||||
layerId = "7C079D0C-96CD-4BD8-8800-0621C7635A78";
|
||||
paths = (
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"363 -14 OFFCURVE",
|
||||
"499 150 OFFCURVE",
|
||||
"552 396 CURVE SMOOTH",
|
||||
"605 646 OFFCURVE",
|
||||
"535 814 OFFCURVE",
|
||||
"403 814 CURVE SMOOTH",
|
||||
"275 814 OFFCURVE",
|
||||
"139 650 OFFCURVE",
|
||||
"87 404 CURVE SMOOTH",
|
||||
"34 154 OFFCURVE",
|
||||
"103 -14 OFFCURVE",
|
||||
"236 -14 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"139 32 OFFCURVE",
|
||||
"89 177 OFFCURVE",
|
||||
"136 396 CURVE SMOOTH",
|
||||
"183 619 OFFCURVE",
|
||||
"300 768 OFFCURVE",
|
||||
"402 768 CURVE SMOOTH",
|
||||
"500 768 OFFCURVE",
|
||||
"550 623 OFFCURVE",
|
||||
"503 404 CURVE SMOOTH",
|
||||
"456 181 OFFCURVE",
|
||||
"339 32 OFFCURVE",
|
||||
"237 32 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"429 479 LINE",
|
||||
"444 557 LINE",
|
||||
"210 321 LINE",
|
||||
"195 243 LINE"
|
||||
);
|
||||
}
|
||||
);
|
||||
width = 600;
|
||||
},
|
||||
{
|
||||
layerId = "291433DC-531A-45CC-B814-57D397372F12";
|
||||
paths = (
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"382 -14 OFFCURVE",
|
||||
"526 157 OFFCURVE",
|
||||
"576 392 CURVE SMOOTH",
|
||||
"627 635 OFFCURVE",
|
||||
"549 814 OFFCURVE",
|
||||
"399 814 CURVE SMOOTH",
|
||||
"257 814 OFFCURVE",
|
||||
"113 643 OFFCURVE",
|
||||
"63 408 CURVE SMOOTH",
|
||||
"11 165 OFFCURVE",
|
||||
"90 -14 OFFCURVE",
|
||||
"240 -14 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"165 78 OFFCURVE",
|
||||
"121 212 OFFCURVE",
|
||||
"160 392 CURVE SMOOTH",
|
||||
"200 580 OFFCURVE",
|
||||
"310 722 OFFCURVE",
|
||||
"396 722 CURVE SMOOTH",
|
||||
"474 722 OFFCURVE",
|
||||
"517 588 OFFCURVE",
|
||||
"479 408 CURVE SMOOTH",
|
||||
"439 220 OFFCURVE",
|
||||
"329 78 OFFCURVE",
|
||||
"243 78 CURVE SMOOTH"
|
||||
);
|
||||
},
|
||||
{
|
||||
closed = 1;
|
||||
nodes = (
|
||||
"405 423 LINE",
|
||||
"435 579 LINE",
|
||||
"234 377 LINE",
|
||||
"204 221 LINE"
|
||||
);
|
||||
}
|
||||
);
|
||||
width = 600;
|
||||
}
|
||||
);
|
||||
},
|
||||
{
|
||||
color = 4;
|
||||
glyphname = zeroinferior;
|
||||
lastChange = "2021-10-18 17:21:55 +0000";
|
||||
layers = (
|
||||
@ -89824,5 +90154,9 @@ HV = "50";
|
||||
};
|
||||
};
|
||||
versionMajor = 1;
|
||||
<<<<<<< HEAD
|
||||
versionMinor = 510;
|
||||
=======
|
||||
versionMinor = 500;
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
}
|
||||
|
@ -23,7 +23,11 @@ name = "Use Typo Metrics";
|
||||
value = 1;
|
||||
}
|
||||
);
|
||||
<<<<<<< HEAD
|
||||
date = "2021-11-15 07:08:57 +0000";
|
||||
=======
|
||||
date = "2021-10-20 11:29:46 +0000";
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
designer = "Rune Bjørnerås";
|
||||
designerURL = "rubjo.github.io/victor-mono";
|
||||
familyName = "Victor Mono";
|
||||
@ -37,7 +41,11 @@ name = Languagesystems;
|
||||
features = (
|
||||
{
|
||||
automatic = 1;
|
||||
<<<<<<< HEAD
|
||||
code = "feature locl;\012feature subs;\012feature sinf;\012feature sups;\012feature numr;\012feature dnom;\012feature frac;\012feature ordn;\012feature case;\012feature calt;\012feature salt;\012feature ss01;\012feature ss02;\012feature ss03;\012feature ss04;\012feature ss05;\012feature ss06;\012";
|
||||
=======
|
||||
code = "feature locl;\012feature subs;\012feature sinf;\012feature sups;\012feature numr;\012feature dnom;\012feature frac;\012feature ordn;\012feature case;\012feature calt;\012feature salt;\012feature ss01;\012feature ss02;\012feature ss03;\012feature ss04;\012feature ss05;\012";
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
name = aalt;
|
||||
},
|
||||
{
|
||||
@ -129,11 +137,14 @@ name = ss04;
|
||||
automatic = 1;
|
||||
code = "sub zero by zero.ss05;\012";
|
||||
name = ss05;
|
||||
<<<<<<< HEAD
|
||||
},
|
||||
{
|
||||
automatic = 1;
|
||||
code = "sub seven by seven.ss06;\012";
|
||||
name = ss06;
|
||||
=======
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
}
|
||||
);
|
||||
fontMaster = (
|
||||
@ -1792,7 +1803,11 @@ unicode = 0044;
|
||||
{
|
||||
color = 4;
|
||||
glyphname = Eth;
|
||||
<<<<<<< HEAD
|
||||
lastChange = "2021-11-15 07:01:07 +0000";
|
||||
=======
|
||||
lastChange = "2021-10-18 17:22:14 +0000";
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
layers = (
|
||||
{
|
||||
layerId = "7C079D0C-96CD-4BD8-8800-0621C7635A78";
|
||||
@ -39722,6 +39737,7 @@ width = 600;
|
||||
},
|
||||
{
|
||||
color = 4;
|
||||
<<<<<<< HEAD
|
||||
glyphname = seven.ss06;
|
||||
lastChange = "2021-11-15 07:05:25 +0000";
|
||||
layers = (
|
||||
@ -39791,6 +39807,8 @@ width = 600;
|
||||
},
|
||||
{
|
||||
color = 4;
|
||||
=======
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
glyphname = zeroinferior;
|
||||
lastChange = "2021-10-18 17:22:14 +0000";
|
||||
layers = (
|
||||
@ -76747,5 +76765,9 @@ HV = 50;
|
||||
};
|
||||
};
|
||||
versionMajor = 1;
|
||||
<<<<<<< HEAD
|
||||
versionMinor = 510;
|
||||
=======
|
||||
versionMinor = 500;
|
||||
>>>>>>> f20b5e8f85315a21fb2b3909ddf276c24ec65165
|
||||
}
|
||||
|
25246
package-lock.json
generated
18
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "victormono",
|
||||
"version": "1.4.2",
|
||||
"version": "1.5.0",
|
||||
"description": "Victor Mono: a free programming font with semi-connected cursive italics and symbol ligatures",
|
||||
"files": [
|
||||
"dist/"
|
||||
@ -39,9 +39,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"animejs": "^3.2.1",
|
||||
"core-js": "^2.6.5",
|
||||
"core-js": "^2.6.12",
|
||||
"dom-confetti": "^0.1.2",
|
||||
"element-ui": "^2.13.2",
|
||||
"element-ui": "^2.14.1",
|
||||
"granim": "^2.0.0",
|
||||
"typed.js": "^2.0.11",
|
||||
"vue": "^2.6.12",
|
||||
@ -49,6 +49,7 @@
|
||||
"vue-faq-accordion": "^1.6.2",
|
||||
"vue-scrollTo": "^2.4.1",
|
||||
"vue-social-sharing": "^2.4.6",
|
||||
"vue-tweet-embed": "^2.4.0",
|
||||
"vue-twentytwenty": "^0.6.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -58,14 +59,17 @@
|
||||
"@vue/eslint-config-standard": "^4.0.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-plugin-component": "^1.1.1",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-vue": "^5.0.0",
|
||||
"eslint": "^7.0.0",
|
||||
"eslint-plugin-import": "^2.25.2",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-standard": "^5.0.0",
|
||||
"eslint-plugin-vue": "^7.20.0",
|
||||
"node-sass": "^4.14.1",
|
||||
"raw-loader": "^2.0.0",
|
||||
"sass": "^1.27.0",
|
||||
"sass": "^1.32.0",
|
||||
"sass-loader": "^7.3.1",
|
||||
"stylelint": "^10.0.1",
|
||||
"stylelint-config-recess-order": "^2.1.0",
|
||||
"stylelint-config-recess-order": "^2.3.0",
|
||||
"stylelint-config-standard": "^18.3.0",
|
||||
"vue-cli-plugin-element": "^1.0.1",
|
||||
"vue-template-compiler": "^2.6.12"
|
||||
|
BIN
public/VictorMonoVariable.zip
Normal file
@ -16,13 +16,16 @@
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-PLTRSCB');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
<script data-ad-client="ca-pub-4256332184562317" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||
<title>Victor Mono</title>
|
||||
<meta name="description" content="Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures." />
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="Victor Mono: Free • Ligatures • Cursive italics">
|
||||
<meta name="twitter:description" content="Victor Mono is a beautiful, open-source programming font with semi-connected cursive italics and symbol ligatures.">
|
||||
<meta name="twitter:image" content="https://rubjo.github.io/victor-mono/twitter.png">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
|
BIN
public/screenshot.png
Normal file
After Width: | Height: | Size: 368 KiB |
BIN
public/twitter.png
Normal file
After Width: | Height: | Size: 912 KiB |
121
src/App.vue
@ -47,9 +47,10 @@
|
||||
<em>semi-connected cursive italics</em> and programming
|
||||
symbol ligatures.
|
||||
<br><br>
|
||||
The typeface is clean, crisp and narrow, with a large x-height and clear punctuation,
|
||||
making it legible and ideal for code. It comes in seven weights and
|
||||
Roman, <em>Italic</em> and <em class="alt">Oblique</em> styles.
|
||||
The typeface is slender, crisp and narrow, with a large x-height
|
||||
and clear punctuation, making it legible and ideal for code.
|
||||
It comes in seven weights and Roman, <em>Italic</em> and
|
||||
<em class="alt">Oblique</em> styles.
|
||||
</p>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -175,18 +176,18 @@
|
||||
:sm="18"
|
||||
>
|
||||
<p class="columns">
|
||||
When it comes to programming fonts, I prefer something thin, crisp
|
||||
and relatively condensed for the code proper,
|
||||
complemented with a more <em>informal, flowing and human style</em>
|
||||
for things like comments and reserved keywords.
|
||||
When it comes to programming fonts, I prefer something thin and
|
||||
relatively condensed,
|
||||
but with a more <em>informal, flowing and human style</em>
|
||||
for standouts like comments and certain keywords.
|
||||
<br><br>
|
||||
In the past, I always ended up looking for something else after
|
||||
using a font for a while, because something didn't look right to me.
|
||||
So eventually, I started sketching and designing something myself.
|
||||
So I started sketching and designing something myself.
|
||||
I wanted something that:
|
||||
<ul>
|
||||
<li>had friendly and distinct italics</li>
|
||||
<li>a strict, geometric and readable regular style</li>
|
||||
<li>had a strict, geometric and readable regular style</li>
|
||||
<li>had programming symbol ligatures</li>
|
||||
<li>was slender and elegant</li>
|
||||
<li>narrow enough to fit a lot of text</li>
|
||||
@ -225,7 +226,7 @@
|
||||
:sm="18"
|
||||
>
|
||||
<div class="right caption">
|
||||
Two-flavour designs currently being considered by
|
||||
Designs submitted to
|
||||
<a
|
||||
href="http://wasdkeyboards.com"
|
||||
target="_blank"
|
||||
@ -258,18 +259,9 @@
|
||||
:sm="18"
|
||||
>
|
||||
<p>
|
||||
If you try it out and like it, I would be very grateful for any donations
|
||||
or purchases from the Victor Mono Merch Shop
|
||||
(<a
|
||||
href="https://shop.spreadshirt.com/victor-mono/"
|
||||
target="_blank"
|
||||
>North America</a>
|
||||
/
|
||||
<a
|
||||
href="https://shop.spreadshirt.net/victor-mono/"
|
||||
target="_blank"
|
||||
>Europe</a>).
|
||||
It means I can cover some costs for software and time spent - and keep refining and extending the font.
|
||||
If you try it out and like it, I would be very grateful for any
|
||||
donations. It means I can cover some costs for software and time
|
||||
spent - and keep refining and extending the font.
|
||||
</p>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -316,7 +308,7 @@
|
||||
type="info"
|
||||
>
|
||||
Download<br>
|
||||
<em>~5MB ZIP</em>
|
||||
<em>~8MB ZIP</em>
|
||||
</el-button>
|
||||
</a>
|
||||
</el-col>
|
||||
@ -341,7 +333,7 @@
|
||||
</em>
|
||||
<br>
|
||||
<code>brew tap homebrew/cask-fonts</code><br>
|
||||
<code>brew cask install font-victor-mono</code>
|
||||
<code>brew install --cask font-victor-mono</code>
|
||||
</p>
|
||||
</el-col>
|
||||
<el-col
|
||||
@ -436,7 +428,14 @@
|
||||
5) <em>Optional</em> · <a
|
||||
href="https://www.google.com/search?q=how+to+change+theme+in+VS+Code"
|
||||
target="_blank"
|
||||
>Set the code theme</a> to one you like<br>
|
||||
>Set the code theme</a> to one you like
|
||||
(try
|
||||
<a
|
||||
href="https://marketplace.visualstudio.com/items?itemName=rubjo.ultimate-dark-neo"
|
||||
target="_blank"
|
||||
>this one</a>,
|
||||
for example)
|
||||
<br>
|
||||
6) <em>Optional</em> · <a
|
||||
href="https://www.google.com/search?q=how+to+modify+themes+in+VS+Code"
|
||||
target="_blank"
|
||||
@ -530,6 +529,12 @@
|
||||
<div class="centre">
|
||||
Thank you to:
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Diogo Almeida
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Dieter Auracher
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Emerson Beltrán
|
||||
</div>
|
||||
@ -537,26 +542,61 @@
|
||||
Colton Borg
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Lady Isak Grozny
|
||||
Dion Bridger
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
<a
|
||||
href="https://github.com/datarootsio"
|
||||
target="_blank"
|
||||
>
|
||||
datarootsio
|
||||
</a>
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Julien Durillon
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Michael Huggett
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Igor Harden
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
K. Bruce Jones
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
kmwallio
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Josh Kraker
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Stuart Morris
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
RKC
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Lars Rönnbäck
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Michael Schore
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Robert Ruf
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Christoph Siedentop
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Spiritualminded
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
thief#0001
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Ashley Kaine Towns
|
||||
</div>
|
||||
<p />
|
||||
</el-col>
|
||||
<el-col
|
||||
@ -592,6 +632,15 @@
|
||||
<div class="centre supporter">
|
||||
April Collier
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Matthew A Drover
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Élise Duverdier
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Lady Isak Grozny
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Sven Koschnicke
|
||||
</div>
|
||||
@ -601,9 +650,15 @@
|
||||
<div class="centre supporter">
|
||||
Matthew O'Gorman
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Poudingue
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Emily Price
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Alex Simons
|
||||
</div>
|
||||
<div class="centre supporter">
|
||||
Justin Slepak
|
||||
</div>
|
||||
@ -611,6 +666,9 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<Testimonials :theme="theme" />
|
||||
|
||||
<HeroImage
|
||||
image="specimen"
|
||||
:theme="theme"
|
||||
@ -630,6 +688,9 @@ import Header from '@/components/Header'
|
||||
import lazyLoadComponent from '@/utils/lazy-load-component.js'
|
||||
import Loader from '@/components/Loader'
|
||||
import { confetti } from 'dom-confetti'
|
||||
// Dunno why this is necessary
|
||||
// eslint-disable-next-line
|
||||
import Testimonials from '@/components/Testimonials'
|
||||
import Faq from '@/components/Faq'
|
||||
import Credits from '@/components/Credits'
|
||||
|
||||
@ -641,7 +702,7 @@ export default {
|
||||
CodeView: lazyLoadComponent({
|
||||
componentFactory: () => import('@/components/CodeView'),
|
||||
background: localStorage.getItem('theme') === 'light' ? '#f2f2f2' : '#304148',
|
||||
height: '80vh',
|
||||
height: '20vw',
|
||||
loading: Loader
|
||||
}),
|
||||
HeroImage: lazyLoadComponent({
|
||||
@ -658,6 +719,12 @@ export default {
|
||||
maxHeight: 'calc(100vw + 48px)',
|
||||
loading: Loader
|
||||
}),
|
||||
Testimonials: lazyLoadComponent({
|
||||
componentFactory: () => import('@/components/Testimonials'),
|
||||
background: localStorage.getItem('theme') === 'light' ? '#f5f5f5' : '#515151',
|
||||
height: '50px',
|
||||
loading: Loader
|
||||
}),
|
||||
Faq,
|
||||
Credits
|
||||
},
|
||||
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 188 KiB |
Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 196 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 127 KiB |
Before Width: | Height: | Size: 201 KiB After Width: | Height: | Size: 338 KiB |
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 285 KiB |
@ -16,12 +16,16 @@
|
||||
v-if="theme === 'dark'"
|
||||
class="right caption"
|
||||
>
|
||||
Based on
|
||||
Ultimate Dark Neo code theme for
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/voronianski/oceanic-next-color-scheme"
|
||||
>Oceanic Next</a>
|
||||
colour scheme by Dmitri Voronianski
|
||||
href="https://marketplace.visualstudio.com/items?itemName=rubjo.ultimate-dark-neo"
|
||||
>VS Code</a>
|
||||
or
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://packagecontrol.io/packages/Ultimate%20Dark%20Neo"
|
||||
>Sublime Text</a>
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
@ -108,7 +112,6 @@ export default {
|
||||
.window {
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
height: 80vh;
|
||||
}
|
||||
|
||||
::v-deep .CodeMirror {
|
||||
|
@ -37,9 +37,9 @@
|
||||
<em>Test and compare free programming fonts on
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://app.programmingfonts.org#victor-mono"
|
||||
href="https://www.programmingfonts.org/#victor-mono"
|
||||
>
|
||||
app.programmingfonts.org</a>
|
||||
programmingfonts.org</a>
|
||||
</em>
|
||||
⭐️
|
||||
</p>
|
||||
@ -175,6 +175,10 @@ export default {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
option {
|
||||
background: var(--background-color-base);
|
||||
}
|
||||
|
||||
// Disable default styling on ff
|
||||
-moz-appearance: none;
|
||||
|
||||
|
@ -198,6 +198,21 @@
|
||||
>
|
||||
Markus Oberlehner</a>
|
||||
<br><br>
|
||||
<em>Embed tweets in Vue apps</em>
|
||||
<br>
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/tonickkozlov/vue-tweet-embed"
|
||||
>
|
||||
vue-tweet-embed</a>
|
||||
by
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/tonickkozlov"
|
||||
>
|
||||
Anton Kozlov
|
||||
</a>
|
||||
<br><br>
|
||||
<em>The nice JS framework</em>
|
||||
<br>
|
||||
<a
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="content alternate-bg">
|
||||
<div class="content">
|
||||
<div
|
||||
id="faq"
|
||||
class="scroll-head"
|
||||
@ -82,7 +82,7 @@ export default {
|
||||
category: 'Other'
|
||||
}, {
|
||||
title: 'Why are you giving it away?',
|
||||
value: 'I originally planned on selling it for some (smaller or much larger) sum, like others do. But I eventually decided against it: I couldn’t be bothered to set up hosting, payment, EULAs etc, nor do I have time for the level of support I feel should accompany a commercial product. This typeface isn’t meant to be the perfect font for anyone - I just made the one perfect for me. If you’re unemployed or struggle to make ends meet, download the font with a clear conscience. If you work in a corporate setting or are relatively well off, consider <a href="https://paypal.me/runbjo" class="donate" target="_blank">supporting</a> the hours spent designing this font. If you want to and are able to donate anything: thank you!',
|
||||
value: 'I originally planned on selling it for some (smaller or much larger) sum, like others do. But I eventually decided against it: I couldn’t be bothered to set up hosting, payment, EULAs etc, nor do I have time for the level of support I feel should accompany a commercial product. This typeface isn’t meant to be the perfect font for everyone - I just made the one perfect for me. If you’re unemployed or struggle to make ends meet, download the font with a clear conscience. If you work in a corporate setting or are relatively well off, consider <a href="https://paypal.me/runbjo" class="donate" target="_blank">supporting</a> the hours spent designing this font. If you want to and are able to donate anything: thank you!',
|
||||
category: 'Other'
|
||||
}, {
|
||||
title: 'Did you know that the [insert typeface property here] violates some 500-year old font design convention?',
|
||||
@ -94,7 +94,7 @@ export default {
|
||||
category: 'Design & features'
|
||||
}, {
|
||||
title: 'A programming font with cursive italics and ligatures is the worst idea in the world. This is absolutely horrible. BTW, I am really angry.',
|
||||
value: 'Not really a question, but anyway: People actually like different things. And it\'s OK. It\'s OK if someone else prefers a different font for code than you do. We don\'t have to use the same one. ❤️',
|
||||
value: 'Not really a question, but anyway: It\'s OK if someone else prefers a different font for code than you do. We don\'t have to use the same one. ❤️',
|
||||
category: 'Design & features'
|
||||
}
|
||||
]
|
||||
|
@ -194,7 +194,7 @@ export default {
|
||||
const options = {
|
||||
strings: [
|
||||
'"#%§§##/&*!',
|
||||
'(im)peachy',
|
||||
'peachy',
|
||||
'<span style="text-decoration: line-through;">modest</span>',
|
||||
'==>',
|
||||
'>=<=-><-=>><<=',
|
||||
|
@ -46,9 +46,11 @@ export default {
|
||||
height: 50vw;
|
||||
max-height: 350px;
|
||||
overflow: hidden;
|
||||
opacity: 0.7;
|
||||
transition: opacity 1s 0.25s;
|
||||
filter: grayscale(1);
|
||||
opacity: 0.5;
|
||||
transition: all 1s 0.1s;
|
||||
&:hover {
|
||||
filter: grayscale(0);
|
||||
opacity: 1;
|
||||
}
|
||||
img {
|
||||
|
@ -8,15 +8,11 @@ async function getUser() {
|
||||
break // No error, exit loop and proceed
|
||||
} catch (err) {
|
||||
if (err.response && err.response.status === 404) {
|
||||
// Loop will continue after the alert
|
||||
alert(`User "${name} not found, please reenter.`)
|
||||
alert(`User "${name}" not found, please reenter.`)
|
||||
} else {
|
||||
// Unknown error, rethrow it
|
||||
throw err
|
||||
throw err // Unknown error, rethrow it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
alert(`Full name: ${user.name}.`)
|
||||
return user
|
||||
}
|
||||
|
@ -17,35 +17,6 @@ const arr = [5, 6, 13, 0, 1, 18, 23]
|
||||
const sum = arr.reduce((a, b) => a + b)
|
||||
const even = arr.filter(v => v % 2 === 0)
|
||||
const double = arr.map(v => v * 2)
|
||||
|
||||
// More concise promise chains
|
||||
func().then(a => {
|
||||
return new Promise(
|
||||
(resolve, reject) => {
|
||||
if (a !== 1) resolve()
|
||||
else reject(
|
||||
new Error('This aint right')
|
||||
)
|
||||
}
|
||||
)
|
||||
}).then(b => {
|
||||
// ...
|
||||
}).catch(err => {
|
||||
handle(err)
|
||||
})
|
||||
|
||||
// Parameterless arrow functions
|
||||
// that are visually easier to parse
|
||||
setTimeout(() => {
|
||||
console.log('I happen sooner')
|
||||
setTimeout(() => {
|
||||
// deeper code
|
||||
console.log('I happen later')
|
||||
}, 1)
|
||||
}, 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
83
src/components/Testimonials.vue
Normal file
@ -0,0 +1,83 @@
|
||||
<template>
|
||||
<div class="content">
|
||||
<div
|
||||
id="testimonials"
|
||||
class="scroll-head"
|
||||
/>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<h1 class="centre">
|
||||
<em>What people are saying</em>
|
||||
</h1>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row
|
||||
justify="center"
|
||||
:gutter="20"
|
||||
>
|
||||
<el-col
|
||||
v-for="testimonial in selectedTestimonials"
|
||||
:key="testimonial + theme"
|
||||
:xs="24"
|
||||
:lg="6"
|
||||
>
|
||||
<Tweet
|
||||
:id="testimonial"
|
||||
:options="{ theme, conversation: 'none', align: 'center' }"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Tweet } from 'vue-tweet-embed'
|
||||
|
||||
export default {
|
||||
name: 'Testimonials',
|
||||
components: { Tweet },
|
||||
props: {
|
||||
theme: {
|
||||
type: String,
|
||||
default: localStorage.getItem('theme') || 'dark'
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
testimonials: [
|
||||
'1144627524078571521',
|
||||
'1142187688751071233',
|
||||
'1395599234531946496',
|
||||
'1149023631835635713',
|
||||
'1359508666446094336',
|
||||
'1438499728937795593',
|
||||
'1249238897994780672',
|
||||
'1430565916815855624',
|
||||
'1340083805370134531',
|
||||
'1159431742245261313',
|
||||
'1188221984959676416',
|
||||
'1201505985984110592',
|
||||
'1188916442902626304',
|
||||
'1344488694804201472',
|
||||
'1178698424109195265'
|
||||
],
|
||||
selectedTestimonials: []
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
// Shuffle array
|
||||
const shuffled = this.testimonials.sort(() => 0.5 - Math.random())
|
||||
// Get sub-array of first n elements after shuffled
|
||||
this.selectedTestimonials = shuffled.slice(0, 4)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .twitter-tweet {
|
||||
min-height: 1px;
|
||||
}
|
||||
|
||||
::v-deep .twitter-tweet iframe {
|
||||
min-height: 1px !important;
|
||||
}
|
||||
</style>
|
@ -61,7 +61,7 @@ body {
|
||||
|
||||
p {
|
||||
padding-bottom: 20px;
|
||||
font-size: calc(1rem + 0.5vw);
|
||||
font-size: calc(0.9rem + 0.5vw);
|
||||
line-height: calc(2rem + 1vw);
|
||||
&.columns {
|
||||
column-count: 2;
|
||||
@ -170,7 +170,7 @@ p {
|
||||
|
||||
.caption {
|
||||
margin: 5px 10px;
|
||||
font-size: 0.75em;
|
||||
font-size: 0.8em;
|
||||
font-style: italic;
|
||||
color: #aaa;
|
||||
a {
|
||||
@ -253,6 +253,12 @@ h2 {
|
||||
}
|
||||
}
|
||||
|
||||
.supporter {
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.gold {
|
||||
.supporter {
|
||||
text-shadow:
|
||||
@ -283,9 +289,7 @@ em.alt {
|
||||
|
||||
.styles-image {
|
||||
float: right;
|
||||
height: 20vw;
|
||||
min-height: 300px;
|
||||
max-height: 325px;
|
||||
height: 300px;
|
||||
margin: 0 0 25px 5vw;
|
||||
}
|
||||
|
||||
|
@ -15,8 +15,7 @@ export default function lazyLoadComponent ({
|
||||
resolveComponent = resolve
|
||||
}),
|
||||
loading: {
|
||||
mounted () {
|
||||
console.log(background)
|
||||
async mounted () {
|
||||
this.$el.style.backgroundColor = background || '#595959'
|
||||
this.$el.style.height = height || 0
|
||||
this.$el.style.maxHeight = maxHeight || 'auto'
|
||||
@ -26,7 +25,7 @@ export default function lazyLoadComponent ({
|
||||
componentFactory().then(resolveComponent)
|
||||
return
|
||||
}
|
||||
|
||||
await new Promise((resolve) => { setTimeout(() => { resolve() }, 1) })
|
||||
const observer = new IntersectionObserver((entries) => {
|
||||
// Use `intersectionRatio` because of Edge 15's
|
||||
// lack of support for `isIntersecting`.
|
||||
|