@meebs/meeb 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.md +158 -0
  2. package/animals/alien.js +34 -0
  3. package/animals/axolotl.js +38 -0
  4. package/animals/bat.js +34 -0
  5. package/animals/bear.js +41 -0
  6. package/animals/bee.js +32 -0
  7. package/animals/bunny.js +45 -0
  8. package/animals/butterfly.js +36 -0
  9. package/animals/capybara.js +36 -0
  10. package/animals/cat.js +44 -0
  11. package/animals/chameleon.js +44 -0
  12. package/animals/chick.js +27 -0
  13. package/animals/cookie.js +30 -0
  14. package/animals/crab.js +32 -0
  15. package/animals/crocodile.js +32 -0
  16. package/animals/deer.js +35 -0
  17. package/animals/dino.js +37 -0
  18. package/animals/dog.js +44 -0
  19. package/animals/dragon.js +44 -0
  20. package/animals/duck.js +45 -0
  21. package/animals/eagle.js +37 -0
  22. package/animals/elephant.js +33 -0
  23. package/animals/firefly.js +37 -0
  24. package/animals/fish.js +32 -0
  25. package/animals/flamingo.js +36 -0
  26. package/animals/fox.js +43 -0
  27. package/animals/frog.js +46 -0
  28. package/animals/ghost.js +32 -0
  29. package/animals/giraffe.js +37 -0
  30. package/animals/gorilla.js +37 -0
  31. package/animals/hamster.js +35 -0
  32. package/animals/hedgehog.js +32 -0
  33. package/animals/hippo.js +34 -0
  34. package/animals/index.js +87 -0
  35. package/animals/jellyfish.js +34 -0
  36. package/animals/koala.js +34 -0
  37. package/animals/ladybug.js +34 -0
  38. package/animals/lion.js +36 -0
  39. package/animals/mantisshrimp.js +49 -0
  40. package/animals/monkey.js +35 -0
  41. package/animals/moth.js +41 -0
  42. package/animals/mouse.js +33 -0
  43. package/animals/narwhal.js +38 -0
  44. package/animals/octopus.js +31 -0
  45. package/animals/otter.js +43 -0
  46. package/animals/owl.js +38 -0
  47. package/animals/panda.js +42 -0
  48. package/animals/parrot.js +39 -0
  49. package/animals/peacock.js +42 -0
  50. package/animals/penguin.js +47 -0
  51. package/animals/penguin2.js +38 -0
  52. package/animals/pig.js +33 -0
  53. package/animals/raccoon.js +35 -0
  54. package/animals/redpanda.js +39 -0
  55. package/animals/robot.js +37 -0
  56. package/animals/scorpion.js +33 -0
  57. package/animals/seahorse.js +39 -0
  58. package/animals/shark.js +33 -0
  59. package/animals/shit.js +33 -0
  60. package/animals/sloth.js +34 -0
  61. package/animals/snail.js +34 -0
  62. package/animals/snake.js +36 -0
  63. package/animals/spider.js +33 -0
  64. package/animals/squid.js +33 -0
  65. package/animals/starfish.js +32 -0
  66. package/animals/stingray.js +41 -0
  67. package/animals/swan.js +34 -0
  68. package/animals/toucan.js +41 -0
  69. package/animals/turtle.js +35 -0
  70. package/animals/unicorn.js +40 -0
  71. package/animals/walrus.js +35 -0
  72. package/animals/whale.js +42 -0
  73. package/animals/wolf.js +36 -0
  74. package/animals/yak.js +36 -0
  75. package/animals/zebra.js +34 -0
  76. package/color.js +9 -0
  77. package/completions/_meeb +41 -0
  78. package/completions/meeb.bash +16 -0
  79. package/emoji.js +30 -0
  80. package/fortune.js +41 -0
  81. package/gif.js +435 -0
  82. package/index.js +915 -0
  83. package/info.js +80 -0
  84. package/package.json +39 -0
  85. package/png.js +88 -0
  86. package/svg.js +43 -0
  87. package/theme.js +80 -0
  88. package/tui.js +76 -0
  89. package/util.js +313 -0
package/README.md ADDED
@@ -0,0 +1,158 @@
1
+ # meeb
2
+
3
+ ```
4
+ ▐▛███▜▌
5
+ ▐█▄███▄█▌ 72 hand-drawn ASCII animals
6
+ ▐███▄███▌ for your terminal.
7
+ ▝▀███▀▘
8
+ ▗▄▛███▜▄▖ zero dependencies.
9
+ ▐███████▌ pure joy.
10
+ ▐███████▌
11
+ ▝█████▘
12
+ ▟█▙ ▟█▙
13
+ ▀▀▀ ▀▀▀
14
+ ```
15
+
16
+ A passion project to bring a little good into the world. Because every terminal deserves a friend.
17
+
18
+ ## Install
19
+
20
+ ```bash
21
+ npm install -g @meebs/meeb
22
+ ```
23
+
24
+ ## Quick Start
25
+
26
+ ```bash
27
+ meeb fox # show a fox
28
+ meeb dragon say "rawr" # speech bubble
29
+ meeb cat hat # seasonal hat (changes every month!)
30
+ meeb random # surprise me
31
+ meeb 🐧 # emoji lookup
32
+ echo "hello" | meeb dog # pipe stdin as speech
33
+ meeb --motd # add to your .bashrc for daily joy
34
+ ```
35
+
36
+ ## Animals
37
+
38
+ ```
39
+ ▄▖ ▗▄ ▄██▖ ▗██▄
40
+ ██▖ ▗██ ████▖ ▗████
41
+ ▐██▄▄▄██▌ ▝███████████▘
42
+ ▐█◆█▄█◆█▌ ▐█●███●█▌ ...and 70 more
43
+ ▐███▄███▌ ▐██▄▄▄██▌
44
+ ▝▀███▀▘ ▐██▀▀▀██▌
45
+ ▐█████▌ ▐███████▌
46
+ ▐███████▌ ▟█▘ ▝█▙
47
+ ▟▘ ▝▙ ▀▀▀ ▀▀▀
48
+ fox dog
49
+ ```
50
+
51
+ penguin, cat, dog, fox, bear, owl, bunny, frog, panda, snake, duck, mouse, whale, octopus, bat, fish, turtle, crab, monkey, pig, koala, lion, shark, elephant, unicorn, jellyfish, sloth, wolf, parrot, hedgehog, giraffe, flamingo, raccoon, hippo, deer, squid, gorilla, dragon, alien, robot, ghost, dino, zebra, snail, bee, butterfly, scorpion, emperor, crocodile, chameleon, seahorse, stingray, axolotl, capybara, redpanda, peacock, spider, chick, ladybug, otter, mantisshrimp, narwhal, moth, cookie, hamster, swan, eagle, walrus, toucan, yak, firefly, starfish
52
+
53
+ ## Say Things
54
+
55
+ ```
56
+ __________
57
+ < rawr >
58
+ ‾‾‾‾‾‾‾‾‾‾
59
+ |
60
+
61
+ ▄▖ ▗▄
62
+ ██▖ ▗██
63
+ ▐█████████████▌
64
+ ▝█◆█████████◆█▘
65
+ ▐████▀▄▀████▌
66
+ ▝▀█████████▀▘
67
+ ▄████████████████▄
68
+ ▝████▌██████▐████▘
69
+ ▟██▘ ▝██▙
70
+ ▀▀▀▀ ▀▀▀▀
71
+ ```
72
+
73
+ ```bash
74
+ meeb dragon say "rawr"
75
+ meeb owl fortune # random fortune cookie
76
+ meeb penguin commit # git commit message as speech
77
+ echo "deploy complete" | meeb cat
78
+ ```
79
+
80
+ ## Seasonal Hats
81
+
82
+ `meeb fox hat` gives your animal a hat that changes every month:
83
+
84
+ | Month | Hat |
85
+ |-------|-----|
86
+ | Jan/Dec | Santa hat |
87
+ | Feb | Heart |
88
+ | Mar | Shamrock |
89
+ | Apr | Rain cloud |
90
+ | May | Flower |
91
+ | Jun | Sun |
92
+ | Jul | Firework |
93
+ | Aug | Sunglasses |
94
+ | Sep | Falling leaf |
95
+ | Oct | Jack-o-lantern |
96
+ | Nov | Pilgrim hat |
97
+
98
+ ## Features
99
+
100
+ ```bash
101
+ # display
102
+ meeb cat tiny # compact 4-row version
103
+ meeb fox flip # mirror horizontally
104
+ meeb panda --theme neon # color themes: neon, pastel, retro, mono, matrix
105
+ meeb bear --no-color # strip ANSI codes
106
+ meeb owl --label "wise bird" # subtitle text below the animal
107
+
108
+ # transforms
109
+ meeb fox stretch # stretch horizontally (wider)
110
+ meeb fox squish # squish horizontally (narrower)
111
+ meeb fox stretchv # stretch vertically (taller)
112
+ meeb fox squishv # squish vertically (shorter)
113
+
114
+ # animations
115
+ meeb penguin delay # pixels materialize randomly
116
+ meeb penguin slide # slide in from the right
117
+ meeb fox fall # drop from the top with a bounce
118
+ meeb snail shatter # appear, then explode with gravity
119
+
120
+ # friends
121
+ meeb cat pair dog # two animals side by side
122
+ meeb cat diff fox # compare two animals
123
+ meeb owl animate # blinking animation
124
+
125
+ # facts
126
+ meeb narwhal info # fun animal fact
127
+ meeb calendar # animal of the day
128
+
129
+ # browse
130
+ meeb all # show every animal
131
+ meeb browse # interactive TUI
132
+ meeb list # names only (for scripting)
133
+
134
+ # export
135
+ meeb fox --gif # save as gif
136
+ meeb fox --png # save as png
137
+ meeb fox --svg # save as svg
138
+ meeb fox --png --white # white background export
139
+
140
+ # devtools
141
+ meeb --motd # message of the day for .bashrc/.zshrc
142
+ meeb --commit # git post-commit hook
143
+ meeb --ci # markdown-safe output (no ANSI)
144
+ ```
145
+
146
+ ## Shell Completions
147
+
148
+ ```bash
149
+ meeb --install-completions # bash, zsh, and fish
150
+ ```
151
+
152
+ ## Zero Dependencies
153
+
154
+ No `node_modules`. No bloat. Just Node.js 14+ and 72 animals.
155
+
156
+ ## License
157
+
158
+ [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) — free to use and share with attribution, not for commercial use.
@@ -0,0 +1,34 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const green = [120, 220, 100]
4
+ const dark = [60, 160, 50]
5
+ const black = [30, 30, 30]
6
+ const white = [240, 240, 240]
7
+
8
+ module.exports = {
9
+ name: 'alien',
10
+ render() {
11
+ const g = (t) => rgb(...green, t)
12
+ const d = (t) => rgb(...dark, t)
13
+ const b = (t) => rgb(...black, t)
14
+ const w = (t) => rgb(...white, t)
15
+ const gd = (t) => fgBg(...green, ...dark, t)
16
+ const bd = (t) => fgBg(...black, ...dark, t)
17
+
18
+ return [
19
+ '',
20
+ ` ${g('▄████████▄')}`,
21
+ ` ${g('▄')}${gd('██████████████')}${g('▄')}`,
22
+ ` ${g('▐')}${bd('████')}${gd('██████')}${bd('████')}${g('▌')}`,
23
+ ` ${g('▐')}${bd('████')}${gd('██████')}${bd('████')}${g('▌')}`,
24
+ ` ${g('▀')}${gd('██████████████')}${g('▀')}`,
25
+ ` ${g('▐')}${gd('█████')}${b('▽')}${gd('█████')}${g('▌')}`,
26
+ ` ${g('▝')}${gd('▀████████▀')}${g('▘')}`,
27
+ ` ${g('▐')}${gd('██████')}${g('▌')}`,
28
+ ` ${g('▐')}${gd('██████')}${g('▌')}`,
29
+ ` ${g('▟▘')} ${g('▝▙')}`,
30
+ ` ${d('▀▀')} ${d('▀▀')}`,
31
+ '',
32
+ ].join('\n')
33
+ }
34
+ }
@@ -0,0 +1,38 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const pink = [240, 160, 180]
4
+ const dark = [190, 110, 130]
5
+ const red = [220, 70, 80]
6
+ const white = [240, 240, 240]
7
+ const black = [30, 30, 30]
8
+ const water = [140, 190, 240]
9
+
10
+ module.exports = {
11
+ name: 'axolotl',
12
+ render() {
13
+ const p = (t) => rgb(...pink, t)
14
+ const d = (t) => rgb(...dark, t)
15
+ const r = (t) => rgb(...red, t)
16
+ const w = (t) => rgb(...white, t)
17
+ const b = (t) => rgb(...black, t)
18
+ const pd = (t) => fgBg(...pink, ...dark, t)
19
+ const wa = (t) => rgb(...water, t)
20
+
21
+ return [
22
+ '',
23
+ ` ${r('▄▄▄')} ${r('▄▄▄')}`,
24
+ ` ${r('███')}${p('▄████████▄')}${r('███')}`,
25
+ ` ${r('███')}${p('▐')}${pd('██████████████')}${p('▌')}${r('███')}`,
26
+ ` ${r('▀▀')}${p('▐')}${pd('███')}${b('●')}${pd('████████')}${b('●')}${pd('███')}${p('▌')}${r('▀▀')}`,
27
+ ` ${p('▐')}${pd('██████████████████')}${p('▌')}`,
28
+ ` ${p('▐')}${pd('████████')}${r('▽')}${pd('█████████')}${p('▌')}`,
29
+ ` ${p('▝')}${pd('▀██████████████▀')}${p('▘')}`,
30
+ ` ${p('▐')}${pd('██████████████')}${p('▌')}`,
31
+ ` ${p('▐')}${pd('██████████████')}${p('▌')}`,
32
+ ` ${p('▟██▘')} ${p('▝██▙')}`,
33
+ ` ${d('▀▀▀▀')} ${d('▀▀▀▀')}`,
34
+ ` ${wa('░░░░░░░░░░░░░░░░░░░░░░░░')}`,
35
+ '',
36
+ ].join('\n')
37
+ }
38
+ }
package/animals/bat.js ADDED
@@ -0,0 +1,34 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const gray = [80, 80, 90]
4
+ const dark = [40, 40, 50]
5
+ const purple = [120, 80, 160]
6
+ const black = [30, 30, 30]
7
+ const red = [200, 50, 50]
8
+
9
+ module.exports = {
10
+ name: 'bat',
11
+ render() {
12
+ const g = (t) => rgb(...gray, t)
13
+ const d = (t) => rgb(...dark, t)
14
+ const p = (t) => rgb(...purple, t)
15
+ const b = (t) => rgb(...black, t)
16
+ const r = (t) => rgb(...red, t)
17
+ const gd = (t) => fgBg(...gray, ...dark, t)
18
+ const pd = (t) => fgBg(...purple, ...dark, t)
19
+
20
+ return [
21
+ '',
22
+ ` ${g('▄▖')} ${g('▗▄')}`,
23
+ ` ${g('██▖')} ${g('▗██')}`,
24
+ ` ${g('███▖')} ${g('▗███')}`,
25
+ ` ${g('████')}${gd('█████')}${g('████')}`,
26
+ ` ${g('▝██')}${gd('█')}${r('●')}${gd('███')}${r('●')}${gd('█')}${g('██▘')}`,
27
+ ` ${g('▝█')}${gd('███')}${p('▼')}${gd('███')}${g('█▘')}`,
28
+ ` ${g('▝')}${gd('███████')}${g('▘')}`,
29
+ ` ${g('▝')}${gd('█████')}${g('▘')}`,
30
+ ` ${g('▝▘')} ${g('▝▘')}`,
31
+ '',
32
+ ].join('\n')
33
+ }
34
+ }
@@ -0,0 +1,41 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const brown = [140, 90, 50]
4
+ const dark = [90, 55, 30]
5
+ const tan = [190, 150, 100]
6
+ const black = [30, 30, 30]
7
+
8
+ module.exports = {
9
+ name: 'bear',
10
+ render() {
11
+ const br = (t) => rgb(...brown, t)
12
+ const d = (t) => rgb(...dark, t)
13
+ const tn = (t) => rgb(...tan, t)
14
+ const b = (t) => rgb(...black, t)
15
+ const bd = (t) => fgBg(...brown, ...dark, t)
16
+ const td = (t) => fgBg(...tan, ...dark, t)
17
+
18
+ return [
19
+ '',
20
+ ` ${br('▄██▄')} ${br('▄██▄')}`,
21
+ ` ${br('████')}${bd('█████')}${br('████')}`,
22
+ ` ${br('▝')}${bd('█████████')}${br('▘')}`,
23
+ ` ${br('▐')}${bd('█')}${b('●')}${bd('█████')}${b('●')}${bd('█')}${br('▌')}`,
24
+ ` ${br('▐')}${bd('███')}${td('▄▄▄')}${bd('███')}${br('▌')}`,
25
+ ` ${br('▐')}${bd('███')}${tn('▀▄▀')}${bd('███')}${br('▌')}`,
26
+ ` ${br('▐')}${bd('█████████')}${br('▌')}`,
27
+ ` ${br('▐')}${bd('█████████')}${br('▌')}`,
28
+ ` ${br('▐')}${bd('█████████')}${br('▌')}`,
29
+ ` ${br('▟██▘')} ${br('▝██▙')}`,
30
+ ` ${d('▀▀▀▀')} ${d('▀▀▀▀')}`,
31
+ '',
32
+ ].join('\n')
33
+ },
34
+ tiny() {
35
+ const br = (t) => rgb(...brown, t)
36
+ const bd = (t) => fgBg(...brown, ...dark, t)
37
+ const b = (t) => rgb(...black, t)
38
+ const d = (t) => rgb(...dark, t)
39
+ return ['', ` ${br('▄██▄')} ${br('▄██▄')}`, ` ${br('▝')}${bd('█')}${b('●')}${bd('███')}${b('●')}${bd('█')}${br('▘')}`, ` ${br('▐')}${bd('█████████')}${br('▌')}`, ` ${br('▟██▘')} ${br('▝██▙')}`, ''].join('\n')
40
+ }
41
+ }
package/animals/bee.js ADDED
@@ -0,0 +1,32 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const yellow = [240, 210, 50]
4
+ const black = [30, 30, 30]
5
+ const white = [240, 240, 240]
6
+ const dark = [180, 150, 20]
7
+
8
+ module.exports = {
9
+ name: 'bee',
10
+ render() {
11
+ const y = (t) => rgb(...yellow, t)
12
+ const b = (t) => rgb(...black, t)
13
+ const w = (t) => rgb(...white, t)
14
+ const d = (t) => rgb(...dark, t)
15
+ const yb = (t) => fgBg(...yellow, ...black, t)
16
+ const by = (t) => fgBg(...black, ...yellow, t)
17
+
18
+ return [
19
+ '',
20
+ ` ${w('▄██▄')} ${w('▄██▄')}`,
21
+ ` ${w('▝██▘')} ${w('▝██▘')}`,
22
+ ` ${y('▄██████▄')}`,
23
+ ` ${y('▐')}${yb('█')}${b('█')}${yb('█')}${b('●')}${yb('██')}${b('●')}${yb('█')}${b('█')}${yb('█')}${y('▌')}`,
24
+ ` ${y('▐')}${yb('██')}${b('██')}${yb('████')}${b('██')}${yb('██')}${y('▌')}`,
25
+ ` ${y('▐')}${yb('█')}${b('██')}${yb('██████')}${b('██')}${yb('█')}${y('▌')}`,
26
+ ` ${y('▝')}${yb('██')}${b('██')}${yb('████')}${b('██')}${yb('██')}${y('▘')}`,
27
+ ` ${y('▝')}${yb('██████████')}${y('▘')}`,
28
+ ` ${y('▝')}${d('▀██▀')}${y('▘')}`,
29
+ '',
30
+ ].join('\n')
31
+ }
32
+ }
@@ -0,0 +1,45 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const white = [240, 240, 240]
4
+ const gray = [200, 200, 200]
5
+ const pink = [230, 140, 160]
6
+ const black = [30, 30, 30]
7
+ const dark = [180, 180, 180]
8
+
9
+ module.exports = {
10
+ name: 'bunny',
11
+ render() {
12
+ const w = (t) => rgb(...white, t)
13
+ const g = (t) => rgb(...gray, t)
14
+ const p = (t) => rgb(...pink, t)
15
+ const b = (t) => rgb(...black, t)
16
+ const wd = (t) => fgBg(...white, ...dark, t)
17
+ const pd = (t) => fgBg(...pink, ...dark, t)
18
+
19
+ return [
20
+ '',
21
+ ` ${w('▐█▌')} ${w('▐█▌')}`,
22
+ ` ${w('▐')}${pd('█')}${w('▌')} ${w('▐')}${pd('█')}${w('▌')}`,
23
+ ` ${w('▐')}${pd('█')}${w('▌')} ${w('▐')}${pd('█')}${w('▌')}`,
24
+ ` ${w('▐')}${wd('█████████')}${w('▌')}`,
25
+ ` ${w('▐')}${wd('█')}${b('●')}${wd('█████')}${b('●')}${wd('█')}${w('▌')}`,
26
+ ` ${w('▐')}${wd('████')}${p('▼')}${wd('████')}${w('▌')}`,
27
+ ` ${w('▐')}${wd('██')}${p('▀')}${wd('███')}${p('▀')}${wd('██')}${w('▌')}`,
28
+ ` ${w('▝')}${wd('▀█████▀')}${w('▘')}`,
29
+ ` ${w('▐')}${wd('███████')}${w('▌')}`,
30
+ ` ${w('▐')}${wd('███████')}${w('▌')}`,
31
+ ` ${w('▟▘')} ${w('▝▙')}`,
32
+ ` ${g('▀▀')} ${g('▀▀')}`,
33
+ ` ${w('◦')}`,
34
+ '',
35
+ ].join('\n')
36
+ },
37
+ tiny() {
38
+ const w = (t) => rgb(...white, t)
39
+ const wd = (t) => fgBg(...white, ...dark, t)
40
+ const b = (t) => rgb(...black, t)
41
+ const p = (t) => rgb(...pink, t)
42
+ const g = (t) => rgb(...gray, t)
43
+ return ['', ` ${w('▐█▌')} ${w('▐█▌')}`, ` ${w('▐')}${wd('█')}${b('●')}${wd('███')}${b('●')}${wd('█')}${w('▌')}`, ` ${w('▝')}${wd('▀███▀')}${w('▘')}`, ` ${g('▟▘')} ${g('▝▙')}`, ''].join('\n')
44
+ }
45
+ }
@@ -0,0 +1,36 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const blue = [80, 140, 240]
4
+ const db = [40, 80, 180]
5
+ const purple = [180, 80, 220]
6
+ const dp = [120, 40, 160]
7
+ const black = [30, 30, 30]
8
+ const white = [240, 240, 240]
9
+
10
+ module.exports = {
11
+ name: 'butterfly',
12
+ render() {
13
+ const bl = (t) => rgb(...blue, t)
14
+ const d = (t) => rgb(...db, t)
15
+ const p = (t) => rgb(...purple, t)
16
+ const dk = (t) => rgb(...dp, t)
17
+ const b = (t) => rgb(...black, t)
18
+ const w = (t) => rgb(...white, t)
19
+ const bd = (t) => fgBg(...blue, ...db, t)
20
+ const pd = (t) => fgBg(...purple, ...dp, t)
21
+
22
+ return [
23
+ '',
24
+ ` ${b('●')} ${b('●')}`,
25
+ ` ${b('▝▖')} ${b('▗▘')}`,
26
+ ` ${bl('▄██▄')} ${b('▝▖')} ${b('▗▘')} ${p('▄██▄')}`,
27
+ ` ${bl('▐')}${bd('██████')}${b('▐█▌')}${p('▐')}${pd('██████')}${p('▌')}`,
28
+ ` ${bl('▐')}${bd('██')}${w('██')}${bd('██')}${b('▐█▌')}${p('▐')}${pd('██')}${w('██')}${pd('██')}${p('▌')}`,
29
+ ` ${bl('▐')}${bd('██████')}${b('▐█▌')}${p('▐')}${pd('██████')}${p('▌')}`,
30
+ ` ${bl('▐')}${bd('██████')}${b('▐█▌')}${p('▐')}${pd('██████')}${p('▌')}`,
31
+ ` ${bl('▀████▀')}${b('▐█▌')}${p('▝')}${pd('████')}${p('▀')}`,
32
+ ` ${b('▐█▌')}`,
33
+ '',
34
+ ].join('\n')
35
+ }
36
+ }
@@ -0,0 +1,36 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const brown = [170, 130, 80]
4
+ const dark = [120, 85, 45]
5
+ const tan = [210, 180, 130]
6
+ const black = [30, 30, 30]
7
+ const orange = [200, 140, 60]
8
+
9
+ module.exports = {
10
+ name: 'capybara',
11
+ render() {
12
+ const br = (t) => rgb(...brown, t)
13
+ const d = (t) => rgb(...dark, t)
14
+ const tn = (t) => rgb(...tan, t)
15
+ const b = (t) => rgb(...black, t)
16
+ const o = (t) => rgb(...orange, t)
17
+ const bd = (t) => fgBg(...brown, ...dark, t)
18
+ const td = (t) => fgBg(...tan, ...dark, t)
19
+
20
+ return [
21
+ '',
22
+ ` ${br('▄████████████▄')}`,
23
+ ` ${br('▐')}${bd('██████████████████')}${br('▌')}`,
24
+ ` ${br('▐')}${bd('████')}${b('—')}${bd('██████████')}${b('—')}${bd('████')}${br('▌')}`,
25
+ ` ${br('▐')}${bd('██████████████████████')}${br('▌')}`,
26
+ ` ${br('▐')}${bd('█████████')}${td('████')}${bd('█████████')}${br('▌')}`,
27
+ ` ${br('▐')}${bd('████████')}${td('██████')}${bd('████████')}${br('▌')}`,
28
+ ` ${br('▝')}${bd('▀██████████████████▀')}${br('▘')}`,
29
+ ` ${br('▐')}${bd('██████████████████')}${br('▌')}`,
30
+ ` ${br('▐')}${bd('██████████████████')}${br('▌')}`,
31
+ ` ${br('▟██▘')} ${br('▝██▙')}`,
32
+ ` ${d('▀▀▀▀')} ${d('▀▀▀▀')}`,
33
+ '',
34
+ ].join('\n')
35
+ }
36
+ }
package/animals/cat.js ADDED
@@ -0,0 +1,44 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const orange = [215, 119, 87]
4
+ const dark = [140, 70, 45]
5
+ const pink = [230, 140, 160]
6
+ const white = [240, 240, 240]
7
+ const green = [100, 200, 100]
8
+ const black = [30, 30, 30]
9
+
10
+ module.exports = {
11
+ name: 'cat',
12
+ render() {
13
+ const o = (t) => rgb(...orange, t)
14
+ const d = (t) => rgb(...dark, t)
15
+ const p = (t) => rgb(...pink, t)
16
+ const w = (t) => rgb(...white, t)
17
+ const g = (t) => rgb(...green, t)
18
+ const b = (t) => rgb(...black, t)
19
+ const od = (t) => fgBg(...orange, ...dark, t)
20
+
21
+ return [
22
+ '',
23
+ ` ${o('▄▖')} ${o('▗▄')}`,
24
+ ` ${o('██▖')} ${o('▗██')}`,
25
+ ` ${o('▐')}${od('██▄▄▄██')}${o('▌')}`,
26
+ ` ${o('▐')}${od('█')}${g('◉')}${od('███')}${g('◉')}${od('█')}${o('▌')}`,
27
+ ` ${o('▐')}${od('███')}${p('▼')}${od('███')}${o('▌')}`,
28
+ ` ${o(' ▝')}${d('▀')}${w('═')}${d('▀▀▀')}${w('═')}${d('▀')}${o('▘')}`,
29
+ ` ${o('▐')}${od('█████')}${o('▌')}`,
30
+ ` ${o('▐')}${od('█████')}${o('▌')}`,
31
+ ` ${o('▐')}${od('█████')}${o('▌')}`,
32
+ ` ${o('▟▘')} ${o('▝▙')}`,
33
+ ` ${d('▀▀')} ${d('▀▀')}`,
34
+ '',
35
+ ].join('\n')
36
+ },
37
+ tiny() {
38
+ const o = (t) => rgb(...orange, t)
39
+ const od = (t) => fgBg(...orange, ...dark, t)
40
+ const g = (t) => rgb(...green, t)
41
+ const b = (t) => rgb(...black, t)
42
+ return ['', ` ${o('▄▖')} ${o('▗▄')}`, ` ${o('▐')}${od('█')}${g('◉')}${od('███')}${g('◉')}${od('█')}${o('▌')}`, ` ${o('▝')}${od('▀███▀')}${o('▘')}`, ` ${o('▟▘')} ${o('▝▙')}`, ''].join('\n')
43
+ }
44
+ }
@@ -0,0 +1,44 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const g1 = [60, 180, 80]
4
+ const g2 = [80, 200, 140]
5
+ const g3 = [120, 210, 180]
6
+ const g4 = [160, 220, 200]
7
+ const dark = [30, 120, 50]
8
+ const black = [30, 30, 30]
9
+ const yellow = [240, 220, 60]
10
+
11
+ module.exports = {
12
+ name: 'chameleon',
13
+ render() {
14
+ const a = (t) => rgb(...g1, t)
15
+ const b2 = (t) => rgb(...g2, t)
16
+ const c = (t) => rgb(...g3, t)
17
+ const d2 = (t) => rgb(...g4, t)
18
+ const dk = (t) => rgb(...dark, t)
19
+ const b = (t) => rgb(...black, t)
20
+ const y = (t) => rgb(...yellow, t)
21
+ const ad = (t) => fgBg(...g1, ...dark, t)
22
+ const bd = (t) => fgBg(...g2, ...dark, t)
23
+ const cd = (t) => fgBg(...g3, ...dark, t)
24
+
25
+ return [
26
+ '',
27
+ ` ${a('▄████▄')}`,
28
+ ` ${a('▐')}${ad('██████████')}${a('▌')}`,
29
+ ` ${a('▐')}${ad('███')}${b('◉')}${ad('██████')}${a('▌')}`,
30
+ ` ${a('▐')}${ad('████████████')}${a('▌')}`,
31
+ ` ${a('▝')}${ad('██████████')}${a('▘')}${y('▄▄▄▄▄')}`,
32
+ ` ${b2('▐')}${bd('████████')}${b2('▌')}${y('▀▀▀▀▀')}`,
33
+ ` ${b2('▐')}${bd('████████')}${b2('▌')}`,
34
+ ` ${c('▐')}${cd('██████')}${c('▌')}`,
35
+ ` ${c('▟██▘')} ${c('▝██▙')}`,
36
+ ` ${dk('▀▀▀▀')} ${dk('▀▀▀▀')}`,
37
+ ` ${d2('▄██▖')}`,
38
+ ` ${d2('▝██▖')}`,
39
+ ` ${d2('▝█▖')}`,
40
+ ` ${d2('▝▘')}`,
41
+ '',
42
+ ].join('\n')
43
+ }
44
+ }
@@ -0,0 +1,27 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const yellow = [240, 220, 70]
4
+ const dark = [190, 170, 30]
5
+ const orange = [230, 150, 40]
6
+ const black = [30, 30, 30]
7
+
8
+ module.exports = {
9
+ name: 'chick',
10
+ render() {
11
+ const y = (t) => rgb(...yellow, t)
12
+ const d = (t) => rgb(...dark, t)
13
+ const o = (t) => rgb(...orange, t)
14
+ const b = (t) => rgb(...black, t)
15
+ const yd = (t) => fgBg(...yellow, ...dark, t)
16
+
17
+ return [
18
+ '',
19
+ ` ${y('▄███▄')}`,
20
+ ` ${y('▐')}${yd('█')}${b('●')}${yd('███')}${b('●')}${yd('█')}${y('▌')}`,
21
+ ` ${y('▐')}${yd('███')}${o('▶')}${yd('███')}${y('▌')}`,
22
+ ` ${y('▝')}${yd('█████')}${y('▘')}`,
23
+ ` ${o('▟▘')} ${o('▝▙')}`,
24
+ '',
25
+ ].join('\n')
26
+ }
27
+ }
@@ -0,0 +1,30 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const brown = [180, 130, 60]
4
+ const dark = [130, 90, 35]
5
+ const chip = [80, 50, 20]
6
+ const tan = [210, 175, 110]
7
+
8
+ module.exports = {
9
+ name: 'cookie',
10
+ render() {
11
+ const br = (t) => rgb(...brown, t)
12
+ const d = (t) => rgb(...dark, t)
13
+ const c = (t) => rgb(...chip, t)
14
+ const tn = (t) => rgb(...tan, t)
15
+ const bd = (t) => fgBg(...brown, ...dark, t)
16
+ const cd = (t) => fgBg(...chip, ...dark, t)
17
+ const td = (t) => fgBg(...tan, ...dark, t)
18
+
19
+ return [
20
+ '',
21
+ ` ${br('▄████████████▄')}`,
22
+ ` ${br('▄')}${bd('██')}${cd('██')}${bd('████████')}${cd('██')}${bd('██')}${br('▄')}`,
23
+ ` ${br('▐')}${bd('████')}${cd('███')}${bd('███')}${cd('██')}${bd('██████')}${br('▌')}`,
24
+ ` ${br('▐')}${bd('██')}${cd('██')}${bd('██████')}${cd('███')}${bd('█████')}${br('▌')}`,
25
+ ` ${br('▀')}${bd('████')}${cd('██')}${bd('████████')}${cd('██')}${br('▀')}`,
26
+ ` ${br('▀████████████▀')}`,
27
+ '',
28
+ ].join('\n')
29
+ }
30
+ }
@@ -0,0 +1,32 @@
1
+ const { rgb, fgBg } = require('../color')
2
+
3
+ const red = [210, 70, 50]
4
+ const dark = [150, 40, 30]
5
+ const orange = [230, 150, 60]
6
+ const black = [30, 30, 30]
7
+
8
+ module.exports = {
9
+ name: 'crab',
10
+ render() {
11
+ const r = (t) => rgb(...red, t)
12
+ const d = (t) => rgb(...dark, t)
13
+ const o = (t) => rgb(...orange, t)
14
+ const b = (t) => rgb(...black, t)
15
+ const rd = (t) => fgBg(...red, ...dark, t)
16
+ const od = (t) => fgBg(...orange, ...dark, t)
17
+
18
+ return [
19
+ '',
20
+ ` ${r('▄▖')} ${r('▗▄')}`,
21
+ ` ${r('██▖')} ${r('▗██')}`,
22
+ ` ${r('███')}${rd('█████████')}${r('███')}`,
23
+ ` ${r('▝█')}${rd('█')}${b('●')}${rd('█████')}${b('●')}${rd('█')}${r('█▘')}`,
24
+ ` ${r('▐')}${rd('█████████')}${r('▌')}`,
25
+ ` ${r('▐')}${rd('███')}${od('███')}${rd('███')}${r('▌')}`,
26
+ ` ${r('▝')}${rd('▀█████▀')}${r('▘')}`,
27
+ ` ${r('▟█▘')} ${r('▟▘')} ${r('▝▙')} ${r('▝█▙')}`,
28
+ ` ${d('▀▀▀')} ${d('▀▀')} ${d('▀▀')} ${d('▀▀▀')}`,
29
+ '',
30
+ ].join('\n')
31
+ }
32
+ }