Skip to content
This repository was archived by the owner on Feb 3, 2024. It is now read-only.

Commit b963276

Browse files
committed
improve badges
1 parent 8012d9a commit b963276

7 files changed

Lines changed: 110 additions & 7 deletions

File tree

packages/docs/badge.pug

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
mixin badge(name, text)
2+
svg(xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='80' height='20' role='img' aria-label='#{name}: #{text}')
3+
title #{name}: #{text}
4+
lineargradient#s(x2='0' y2='100%')
5+
stop(offset='0' stop-color='#bbb' stop-opacity='.1')
6+
stop(offset='1' stop-opacity='.1')
7+
clippath#r
8+
rect(width='80' height='20' rx='3' fill='#fff')
9+
g(clip-path='url(#r)')
10+
rect(width='35' height='20' fill='#555')
11+
rect(x='35' width='45' height='20' fill='black' class="background")
12+
rect(width='80' height='20' fill='url(#s)')
13+
g(fill='#fff' text-anchor='middle' font-family='Verdana,Geneva,DejaVu Sans,sans-serif' text-rendering='geometricPrecision' font-size='110')
14+
text(aria-hidden='true' x='185' y='150' fill='#010101' fill-opacity='.3' transform='scale(.1)' textlength='250') #{name}
15+
text(x='185' y='140' transform='scale(.1)' fill='#fff' textlength='250') #{name}
16+
text(aria-hidden='true' x='565' y='150' fill='#010101' fill-opacity='.3' transform='scale(.1)' textlength='350') #{text}
17+
text(x='565' y='140' transform='scale(.1)' fill='#fff' textlength='350' class="text") #{text}

packages/docs/data.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import * as path from 'path'
2+
import fs from 'fs-extra'
3+
import gzipSize from 'gzip-size'
4+
import pug from 'pug'
5+
6+
const run = async () => {
7+
const pkg = fs.readJSONSync(
8+
path.join(path.resolve(), '../perfect-dark-mode/package.json'),
9+
)
10+
const fileContent = fs.readFileSync(
11+
path.join(path.resolve(), 'dist/perfect-dark-mode/dist/index.js'),
12+
)
13+
const versionWithoutV = pkg.version
14+
const sizeInBytes = gzipSize.sync(fileContent)
15+
16+
const version = `v${versionWithoutV}`
17+
const size = `${sizeInBytes} B`
18+
await fs.writeJSONSync(path.join(path.resolve(), 'data.json'), {
19+
version,
20+
size,
21+
})
22+
}
23+
24+
run()

packages/docs/data.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"version":"v0.0.5","size":"574 B"}

packages/docs/index.css

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,24 @@ button {
7070
font-weight: bold;
7171
}
7272

73-
a.badge img {
73+
a.badge {
74+
text-decoration: none;
75+
}
76+
77+
a.badge svg {
7478
height: 20px;
7579
display: inline-block;
7680
margin: 0;
7781
}
7882

83+
a.badge svg .background {
84+
fill: var(--color);
85+
}
86+
87+
a.badge svg .text {
88+
fill: var(--background);
89+
}
90+
7991
.npm {
8092
margin-right: 4px;
8193
}

packages/docs/index.pug

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
include ./badge
12
doctype html
23
html
34
head
45
meta(name="viewport" content="width=device-width,initial-scale=1")
6+
meta(charset="utf-8")
57
title Perfect Dark Mode
68
link(rel="icon" type="image/png" href="sun.png")
79
script(src="perfect-dark-mode/dist/index.js")
@@ -11,10 +13,11 @@ html
1113
include ./index.css
1214
body.prose
1315
h1 🌚🌝 Perfect Dark Mode - <a href="https://github.com/DylanVann/perfect-dark-mode">GitHub</a>
16+
1417
a.badge.npm(href='https://www.npmjs.com/package/perfect-dark-mode')
15-
img(src='https://img.shields.io/npm/v/perfect-dark-mode.svg' alt='Version')
16-
a.badge(href='https://bundlephobia.com/result?p=perfect-dark-mode')
17-
img(src='https://img.shields.io/bundlephobia/minzip/perfect-dark-mode?label=size' alt='Size')
18+
+badge("npm", version)
19+
a.badge.size(href='https://bundlephobia.com/result?p=perfect-dark-mode')
20+
+badge("size", size)
1821

1922
include:markdown-it features.md
2023

packages/docs/package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33
"version": "0.0.1",
44
"private": true,
55
"license": "MIT",
6+
"type": "module",
67
"scripts": {
7-
"build": "run-s build:copy-lib build:html",
8+
"build": "run-s build:data build:copy-lib build:html",
89
"build:copy-lib": "cpx \"../../node_modules/perfect-dark-mode/dist/**/*\" dist/perfect-dark-mode/dist",
9-
"build:html": "pug index.pug --pretty --out dist",
10+
"build:data": "node data.js",
11+
"build:html": "pug index.pug --pretty --out dist --obj data.json",
1012
"serve": "serve dist"
1113
},
1214
"devDependencies": {
1315
"cpx": "^1.5.0",
16+
"fs-extra": "^9.0.1",
17+
"gzip-size": "^5.1.1",
1418
"jstransformer-markdown-it": "^2.1.0",
1519
"npm-run-all": "^4.1.5",
1620
"perfect-dark-mode": "0.0.5",

yarn.lock

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,11 @@ async-each@^1.0.0:
239239
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
240240
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
241241

242+
at-least-node@^1.0.0:
243+
version "1.0.0"
244+
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
245+
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
246+
242247
atob@^2.1.2:
243248
version "2.1.2"
244249
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@@ -958,6 +963,16 @@ fragment-cache@^0.2.1:
958963
dependencies:
959964
map-cache "^0.2.2"
960965

966+
fs-extra@^9.0.1:
967+
version "9.0.1"
968+
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
969+
integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==
970+
dependencies:
971+
at-least-node "^1.0.0"
972+
graceful-fs "^4.2.0"
973+
jsonfile "^6.0.1"
974+
universalify "^1.0.0"
975+
961976
fs.realpath@^1.0.0:
962977
version "1.0.0"
963978
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -1032,11 +1047,19 @@ glob@^7.0.5, glob@^7.1.2:
10321047
once "^1.3.0"
10331048
path-is-absolute "^1.0.0"
10341049

1035-
graceful-fs@^4.1.11, graceful-fs@^4.1.2:
1050+
graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
10361051
version "4.2.4"
10371052
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
10381053
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
10391054

1055+
gzip-size@^5.1.1:
1056+
version "5.1.1"
1057+
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
1058+
integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==
1059+
dependencies:
1060+
duplexer "^0.1.1"
1061+
pify "^4.0.1"
1062+
10401063
has-ansi@^2.0.0:
10411064
version "2.0.0"
10421065
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
@@ -1361,6 +1384,15 @@ json-schema-traverse@^0.4.1:
13611384
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
13621385
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
13631386

1387+
jsonfile@^6.0.1:
1388+
version "6.0.1"
1389+
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179"
1390+
integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==
1391+
dependencies:
1392+
universalify "^1.0.0"
1393+
optionalDependencies:
1394+
graceful-fs "^4.1.6"
1395+
13641396
jstransformer-markdown-it@^2.1.0:
13651397
version "2.1.0"
13661398
resolved "https://registry.yarnpkg.com/jstransformer-markdown-it/-/jstransformer-markdown-it-2.1.0.tgz#69ec30ce4518bed5997b38f027648e8c285e92f7"
@@ -1818,6 +1850,11 @@ pify@^3.0.0:
18181850
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
18191851
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
18201852

1853+
pify@^4.0.1:
1854+
version "4.0.1"
1855+
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
1856+
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
1857+
18211858
posix-character-classes@^0.1.0:
18221859
version "0.1.1"
18231860
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -2622,6 +2659,11 @@ union-value@^1.0.0:
26222659
is-extendable "^0.1.1"
26232660
set-value "^2.0.1"
26242661

2662+
universalify@^1.0.0:
2663+
version "1.0.0"
2664+
resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
2665+
integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
2666+
26252667
unset-value@^1.0.0:
26262668
version "1.0.0"
26272669
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"

0 commit comments

Comments
 (0)