Compare commits

...

285 Commits

Author SHA1 Message Date
zolostays 1e338f58f1 [update]: release version 2020-12-04 17:08:35 +05:30
zolostays 9b21412a1a [fix]: github stats placeholder 2020-12-04 17:06:20 +05:30
Rahul Jain c8b8036477 Merge pull request #340 from rahuldkjain/sponsor
[add]: buymeacoffee support
2020-12-04 16:57:07 +05:30
zolostays 5723c38dc9 [update]: jest threshold 2020-12-04 16:43:42 +05:30
zolostays ec78c6ba05 [add]: buymeacoffee support 2020-12-04 16:34:31 +05:30
Rahul Jain d9469f4eda Merge pull request #325 from DenverCoderOne/add-github-streak-stats
[add]: GitHub streak stats
2020-11-29 12:46:17 +05:30
DenverCoder1 c7c7e1c357 Merge branch 'master' of https://github.com/rahuldkjain/github-profile-readme-generator into add-github-streak-stats 2020-11-04 04:36:18 +02:00
Rahul Jain 4ffebfb792 Merge pull request #329 from ankurchaudhary627/master
[add]: prettier and eslint config files
2020-10-31 22:12:22 +05:30
Ankur Chaudhary 779ba7827e Added prettier and eslint config files 2020-10-31 21:37:21 +05:30
DenverCoder1 5d542208ca Added highcontrast theme for streak stats 2020-10-30 04:52:31 +02:00
DenverCoder1 96037f3ff5 Merge branch 'master' into add-github-streak-stats
Checks were failing in the previously merged master branch
2020-10-29 13:57:44 +02:00
Kate Dainovich f11ef643bc Merge pull request #311 from emilpalsson/skills-test
Add unit test cases for skills component
2020-10-28 22:39:56 +03:00
Kate Dainovich b3e4a1a0a9 Merge pull request #318 from Tekipeps/master
Add unit test for Social component
2020-10-28 22:36:05 +03:00
Rahul Jain fbbb95f61f Merge pull request #328 from rahuldkjain/improve-readme
[fix]: readme and package.json
2020-10-28 11:34:56 +05:30
zolostays 1d672fe879 [fix]: readme and package.json 2020-10-28 11:32:39 +05:30
emilpalsson ac15f4ae45 Add unit test cases for skills component 2020-10-27 22:43:38 +01:00
Tekena Solomon 55951c9ef5 Merge remote-tracking branch 'upstream/master' into master 2020-10-27 19:23:44 +01:00
Kate Dainovich e29ddc1637 Merge pull request #314 from anusha5695/ISSUE-294 2020-10-27 18:25:01 +03:00
Rahul Jain a18dc59933 Merge pull request #327 from rahuldkjain/new-sponsors
[add]: new sponsors
2020-10-27 11:05:20 +05:30
zolostays 1c259a84ac [add]: new sponsors 2020-10-27 11:03:02 +05:30
Anusha S a93d958944 tech: add more test cases for coverage 2020-10-27 01:50:39 +05:30
Tekena Solomon 07b18b4c8a revert all other changes not related to social component 2020-10-26 20:47:40 +01:00
Jonah Lawrence 050d0b3a04 Merge branch 'master' into add-github-streak-stats 2020-10-26 19:09:34 +02:00
anusha5695 12315be78b Merge branch 'master' into ISSUE-294 2020-10-26 21:31:00 +05:30
Rahul Jain 63a94a3737 Merge pull request #317 from zeaus/markdown-preview-test
[add]: unit test for Markdown Preview
2020-10-26 20:08:16 +05:30
Rahul Jain 8480ef160d Merge pull request #323 from Citrinin/add-ci-test
[add]: CI
2020-10-26 20:04:06 +05:30
Rahul Jain 30675c7c6d Merge pull request #319 from wandersonpsantos/master
[add]: unit test for markdown.js
2020-10-26 20:01:41 +05:30
Anusha S 3d296812e8 tech: use enzyme to json instead of react test renderer 2020-10-26 12:42:37 +05:30
Citrinin d82a367616 fix tests & update config 2020-10-26 12:42:37 +05:30
DenverCoder1 b243675abd Added to features list 2020-10-26 04:49:11 +02:00
DenverCoder1 1ca5906aa9 Added to readme 2020-10-26 04:46:39 +02:00
DenverCoder1 d13c451cc0 Using streak stats options menu 2020-10-26 04:41:24 +02:00
DenverCoder1 12279914f1 Fixed link generator name and theme query string 2020-10-26 04:37:49 +02:00
DenverCoder1 25a1bf4110 Add GitHub Streak Stats 2020-10-26 03:57:34 +02:00
Tekena Solomon 444c84407c Merge remote-tracking branch 'upstream/master' into master 2020-10-26 00:33:31 +01:00
Wanderson pinto dos santos 318b577765 rebase to maste, remove react-test-renderer and use enzyme-to-json 2020-10-25 14:16:23 -03:00
Wanderson pinto dos santos b98fecf05a Merge remote-tracking branch 'upstream/master' 2020-10-25 14:02:08 -03:00
Taha Shahid 40ccef24fd Refactored test cases to use enzyme 2020-10-25 21:40:05 +05:00
Citrinin a7ee36dad0 update test 2020-10-25 17:11:36 +03:00
Citrinin a1bbb7f887 make tests green 2020-10-25 17:06:57 +03:00
Citrinin a7680fb353 add ci 2020-10-25 16:21:22 +03:00
Rahul Jain d7bf06c7be Merge pull request #321 from Citrinin/update-test-and-config
[fix]: tests and project config
2020-10-25 15:43:03 +05:30
Citrinin 2652aea305 Merge branch 'update-test-and-config' of https://github.com/Citrinin/github-profile-readme-generator into update-test-and-config 2020-10-25 12:57:23 +03:00
Citrinin 0df590a045 update tests & config 2020-10-25 12:26:43 +03:00
Citrinin d259921b2e fix tests & update config 2020-10-25 12:25:48 +03:00
Citrinin f3ca29df8b Merge branch 'master' of https://github.com/rahuldkjain/github-profile-readme-generator 2020-10-25 11:35:34 +03:00
Wanderson pinto dos santos 705ca572f5 test markdown.js 2020-10-24 15:16:10 -03:00
Tekena Solomon 5803097e9d Add unit test for Social component 2020-10-24 15:13:32 +01:00
Taha Shahid 7a612901e3 Added Test for markdownPreview and its subcomponents 2020-10-24 17:54:47 +05:00
Taha Shahid d81fa46e75 Refactored components in markdownPreview 2020-10-24 17:33:53 +05:00
Anusha S eafa964cb9 tech: add snapshot test for add ons component 2020-10-24 14:18:03 +05:30
Rahul Jain bca0f7a18c Merge pull request #307 from VeenaDesai38/worktest
[add]: unit test cases for work component
2020-10-24 12:56:10 +05:30
rdesai2 3c1e4fee34 fix: rebasing yarn.lock 2020-10-24 12:36:31 +05:30
Rahul Jain e5791fc0ec Merge pull request #312 from Citrinin/add-header-tests
[add]: a unit test for header component
2020-10-24 12:05:14 +05:30
Rahul Jain e32acb6db3 Merge pull request #310 from Citrinin/add-donate-snapshot-test
[add]: a unit test case for donate component
2020-10-24 12:03:24 +05:30
Rahul Jain a933180d34 Merge pull request #306 from ankurchaudhary627/tests/subtitle-unit-test
[add]: a unit test for subtitle component
2020-10-24 12:02:31 +05:30
rdesai2 723cf48bb5 Revert "fix: resolving package issues"
This reverts commit 8a1f60f4a4.
2020-10-24 12:02:15 +05:30
Rahul Jain 4ac9861096 Merge pull request #309 from Citrinin/add-loader-test-snapshot
[add]: a unit test case for loader component
2020-10-24 12:01:19 +05:30
rdesai2 8a1f60f4a4 fix: resolving package issues 2020-10-24 12:00:35 +05:30
Rahul Jain 7091c94801 Merge pull request #304 from carlospatinos/master
[add]: unit test for the footer
2020-10-24 12:00:02 +05:30
Rahul Jain ddb17bc0de Merge pull request #288 from rotem-bar/rotem-bar/285
[fix]: spacing inconsistencies in footer
2020-10-24 11:53:17 +05:30
Rahul Jain c5f50a1a3c Merge pull request #286 from datejer/master
[add]: Discord invite field in Social
2020-10-24 11:50:46 +05:30
rdesai2 94b00fb72e Revert "fix: yarn.lock changes"
This reverts commit 649ae8f797.
2020-10-24 11:42:36 +05:30
rdesai2 d220e82ed1 Revert "fix: fixing build failure"
This reverts commit 865321f39d.
2020-10-24 11:42:16 +05:30
rdesai2 865321f39d fix: fixing build failure 2020-10-24 11:40:28 +05:30
Rahul Jain b0ad615680 Merge pull request #308 from emilpalsson/mssql
[add]: Microsoft SQL Server skill
2020-10-24 11:37:20 +05:30
Citrinin d333ce375a add header test 2020-10-23 23:42:19 +03:00
Citrinin 66561ce2a1 add header tests 2020-10-23 23:40:37 +03:00
Citrinin 18709444c4 add donate snapshot test 2020-10-23 23:11:36 +03:00
Citrinin c8aec7006c add loader test snapshot 2020-10-23 22:40:02 +03:00
emilpalsson 2d5ce3bf77 Add Microsoft SQL Server skill 2020-10-23 20:49:27 +02:00
rdesai2 649ae8f797 fix: yarn.lock changes 2020-10-23 22:30:18 +05:30
rdesai2 6759486a5d fix: issue302 adding unit tests 2020-10-23 22:20:46 +05:30
Ankur Chaudhary 784710be47 Added unit test for subtitle component 2020-10-23 20:52:39 +05:30
Carlos Patino a4ea5ac9e9 Addint test for the footer 2020-10-23 15:02:51 +01:00
Rahul Jain 1c45d54dff Merge pull request #289 from harshcut/fix-duplicate
[fix]: duplicate CoffeeScript key
2020-10-23 17:35:31 +05:30
Rahul Jain e81e39e799 [add]: hacktoberfest label by default 2020-10-23 17:21:19 +05:30
Rahul Jain 42ada6734b add discord server image in template 2020-10-23 16:44:49 +05:30
Rahul Jain 5492605e18 add discord server image in template 2020-10-23 16:44:16 +05:30
Harsh Karande ded717ab76 fix: duplicate coffeescript key 2020-10-21 21:30:10 +05:30
rotem-bar ba7af8cf3f fix(footer): spacing inconsistencies 2020-10-21 16:34:36 +03:00
datejer 4831ee47fe Add Discord invite field 2020-10-20 20:47:46 +02:00
Rahul Jain 1f5b37ce0d Merge pull request #282 from bhavika24/issue-281
[add]: matlab icon
2020-10-19 18:46:37 +05:30
bhavika24 ca8da23ddc added matlab icon 2020-10-18 23:02:36 +05:30
Rahul Jain dc0f39105a Merge pull request #280 from rahuldkjain/issue-278
[fix]: issue #278
2020-10-18 18:10:34 +05:30
zolostays 079fd604ea [fix]: issue #278 2020-10-18 18:03:23 +05:30
Rahul Jain bf7cd6999f Merge pull request #277 from YashKandalkar/code-style-guide
[add]: code style guide
2020-10-18 17:14:21 +05:30
YashKandalkar 9ac50e9ea7 added code style guide 2020-10-18 16:41:53 +05:30
Rahul Jain e6d2cdb5a7 Merge pull request #268 from zenby/do-not-request-data-at-background
[fix]: infinite requests if page is not visible
2020-10-18 08:42:47 +05:30
Rahul Jain 4c12c077a6 Merge pull request #267 from sarbikbetal/srbk/patch
[fix]: Conditional rendering of SectionTitles
2020-10-18 08:41:40 +05:30
Rahul Jain 96c69d554d Merge pull request #266 from Tailine/feat/json-upload
[feat]: option to upload json backup file
2020-10-18 08:37:46 +05:30
Rahul Jain c3582cd225 Merge branch 'master' into feat/json-upload 2020-10-18 08:35:49 +05:30
Rahul Jain f184867d9e Merge pull request #265 from dalmia007/footer-links
[add]: Issues and Pull Requests link to footer [Issue #263]
2020-10-18 08:32:51 +05:30
Tailine Chagas e9a365e619 refactor: unstage other changes from PR that do not relate with feature 2020-10-17 18:12:38 -03:00
Rahul Jain 48e202bb20 Merge pull request #237 from Aditya-ds-1806/master
[add]: add Matlab SVG
2020-10-15 10:09:29 +05:30
Rahul Jain 9ceeeb7d4b Merge pull request #264 from pollyj/feature/responsive_footer
[fix]: footer responsiveness
2020-10-15 10:01:32 +05:30
pollyj dd70212616 fixed font weight of links 2020-10-15 09:47:21 +09:00
Anurag Dalmia 4e6a1a516d added correct labels for issues and pull request links 2020-10-14 12:40:41 +05:30
Aditya DS 4060676ab1 added matlab svg 2020-10-14 12:37:12 +05:30
Aditya DS 4bd2548682 added matlab to the list 2020-10-14 12:36:59 +05:30
Aditya DS 5a7b46357a synced fork with original repo 2020-10-14 12:26:20 +05:30
Aditya DS 64f6f40579 resolved merge conflict 2020-10-14 12:24:34 +05:30
Rahul Jain 4a99f2f599 Merge pull request #269 from harshcut/host-image
[feat]: host skill icons
2020-10-14 11:02:24 +05:30
Harsh Karande 4f0578db39 feat: host skill icons 2020-10-12 20:36:37 +05:30
Aditya DS 8ac19f40c9 Update skills.js 2020-10-12 20:22:32 +05:30
Aditya DS bfec4e29e9 Merge branch 'master' into master 2020-10-12 20:00:17 +05:30
zenby d06ef502d2 fix infinite requests 2020-10-12 15:59:14 +03:00
Sarbik Betal a92167e2d3 [fix]: Conditional rendering of SectionTitles 2020-10-12 14:56:13 +05:30
pollyj 79112d9a95 add margin to links & increase font size 2020-10-12 09:29:02 +09:00
Tailine Chagas 693ac86846 feat: add option to upload json backup file 2020-10-11 16:49:09 -03:00
Anurag Dalmia c5f6923187 matched package-locked.json to original 2020-10-12 00:23:59 +05:30
Anurag Dalmia 2d481ca4df Delete package-lock.json 2020-10-12 00:20:37 +05:30
Anurag Dalmia 7561af7a0a fixed package-lock.json 2020-10-12 00:19:16 +05:30
Anurag Dalmia 66b751ef57 fixed package-lock.json 2020-10-12 00:14:45 +05:30
Anurag Dalmia 02d6cf440e Delete package-lock.json 2020-10-12 00:11:08 +05:30
Anurag Dalmia 224fb7c597 added Issues and Pull Requests link to footer 2020-10-11 19:34:56 +05:30
pollyj 0a6fa01f7d update footer to be responsive 2020-10-11 21:31:21 +09:00
Rahul Jain 5359edb4f1 Merge pull request #259 from BRAVO68WEB/master
[add]: new skills
2020-10-11 17:19:40 +05:30
Rahul Jain 4c2c783d6a Merge branch 'master' into master 2020-10-11 17:15:57 +05:30
Rahul Jain 3625b22266 Merge pull request #254 from cy/customize-github-stats
[add]: feature to customize the GitHub stats and top languages card
2020-10-11 17:11:13 +05:30
Rahul Jain e24ea88773 Merge pull request #245 from msriaz/warning-fix/225
[fix] warning in local environment
2020-10-11 17:07:46 +05:30
Rahul Jain 2eee4b677d Merge pull request #208 from pro-nav/patch-1
[add]: Arduino and Solidworks in skills
2020-10-11 16:58:58 +05:30
Rahul Jain 48b3ed3d02 Merge pull request #239 from j23saw/master
[add]: searchbar for skills
2020-10-11 15:32:13 +05:30
Jyotirmoy Bandyopadhyaya [Bravo68] 22e7a96b7f ADDed new skills
**Added These skills :-** 

  unreal: "https://unrealengine.com/",
  hexo: "hexo.io/",
  heroku: "https://heroku.com",
  zapier: "https://zapier.com",
  elixir: "https://elixir-lang.org",
  travisci: "https://travis-ci.org",
  apachecordova: "https://cordova.apache.org/",
  coffeescript: "https://coffeescript.org/",
  "sqlite": "https://www.sqlite.org/",
  postman: "https://postman.com",
  erlang: "https://www.erlang.org/",
  middleman: "https://middlemanapp.com/"
2020-10-10 12:32:41 +05:30
Muhammad Shoaib Riaz 3691d5c609 removing yarn.lock file 2020-10-09 16:19:20 +05:00
Muhammad Shoaib Riaz a212b40d4d removing changes of yarn.lock 2020-10-09 16:10:47 +05:00
Christine Yu a2d8a661a6 add top lang customize 2020-10-09 05:06:41 -04:00
Aditya DS 0097c3e9b3 Merge branch 'master' into master 2020-10-09 14:32:50 +05:30
Aditya DS 0d012ff70a Revert "fixed error on local environment"
This reverts commit dcd82b4eae.
2020-10-09 14:28:58 +05:30
Christine Yu acaa15dacf add all github stats options 2020-10-08 21:57:47 -04:00
Christine Yu ff65cfbd8c add link-generators util 2020-10-08 21:31:30 -04:00
Christine Yu 65086cbd99 add ability to change github stats theme 2020-10-08 21:16:22 -04:00
Christine Yu ae6ddfb3fd Make customize box logic reusable by pulling up into AddonsItem and creating CustomizeOptions component 2020-10-08 20:27:31 -04:00
j23saw b719553909 indent 2020-10-09 02:02:37 +05:30
j23saw 5e63c400e1 add search fallback 2020-10-09 01:51:17 +05:30
j23saw 43d626f4e1 Merge branch 'master' of https://github.com/rahuldkjain/github-profile-readme-generator into master 2020-10-08 23:31:50 +05:30
j23saw e8c11274ea resolve changes 2020-10-08 23:29:00 +05:30
Rahul Jain 8809fb7c43 Merge pull request #241 from Mohitmadhav/Issue-#228
[update] gatsby-plugin-sharp version
2020-10-08 22:36:32 +05:30
Rahul Jain fa1dcf2fd9 Merge pull request #250 from kunaljain0212/cockroachicon
[fix]: broken cockroachdb icon link
2020-10-08 22:24:13 +05:30
Christine Yu 8d4ac6d394 CustomizeOptions component 2020-10-07 20:15:32 -04:00
j23saw c7e0901d11 clean code 2020-10-08 00:16:09 +05:30
j23saw e948dd1148 fix search 4 2020-10-08 00:09:03 +05:30
Kunal Jain ca55d9e02c fixed broken cockroachdb icon link 2020-10-07 23:59:24 +05:30
j23saw 361c52bee0 fix search 3 2020-10-07 23:39:42 +05:30
j23saw d1c1ab4821 Merge branch 'master' of https://github.com/j23saw/github-profile-readme-generator into master 2020-10-07 23:31:59 +05:30
j23saw 21f29343e3 fix search 2 2020-10-07 23:31:52 +05:30
j23saw 4b08b2fe97 fix search 1 2020-10-07 23:31:35 +05:30
j23saw 75eb5878cd fix search 1 2020-10-07 23:18:53 +05:30
j23saw 064b827014 Merge branch 'master' of https://github.com/rahuldkjain/github-profile-readme-generator into master 2020-10-07 23:11:06 +05:30
j23saw b83adbc715 fix search 2020-10-07 23:10:22 +05:30
Rahul Jain 0ca556a9de Merge pull request #246 from thauska/master
[update]: footer with new design
2020-10-07 20:20:40 +05:30
j23saw 33ed98add7 Merge branch 'master' of https://github.com/rahuldkjain/github-profile-readme-generator into master 2020-10-07 18:18:53 +05:30
Thayana Mamoré 27b01ccf71 [feat]: modify footer as requested 2020-10-06 23:36:53 -03:00
Thayana Mamoré 980f970caa Merge branch 'master' of https://github.com/rahuldkjain/github-profile-readme-generator 2020-10-06 22:53:18 -03:00
Muhammad Shoaib Riaz f59987241f fixing warning in local environment 2020-10-07 01:24:12 +05:00
Rahul Jain cb124b7b19 Merge pull request #226 from Maddoxx88/patch-6
[add]: Twitter Username Validation
2020-10-06 23:35:48 +05:30
Rahul Jain 008f2f818b Merge pull request #244 from rahuldkjain/pr-template
[add]: pr-template
2020-10-06 23:27:32 +05:30
zolostays a1dfb87eaa [fix]: typo in pr-template 2020-10-06 23:26:50 +05:30
zolostays 559949d5f3 [add]: pr-template 2020-10-06 23:24:35 +05:30
Rahul Jain 19b6a99893 Merge pull request #203 from rahuldkjain/all-contributors/add-KKVANONYMOUS
docs: add KKVANONYMOUS as a contributor
2020-10-06 23:05:09 +05:30
Rahul Jain 7c3c64ec8d Merge branch 'master' into all-contributors/add-KKVANONYMOUS 2020-10-06 23:04:13 +05:30
Rahul Jain 25b19432ff Merge pull request #177 from rahuldkjain/all-contributors/add-jaideepghosh
docs: add jaideepghosh as a contributor
2020-10-06 23:01:56 +05:30
Rahul Jain e6fff7627a Merge branch 'master' into all-contributors/add-jaideepghosh 2020-10-06 23:01:37 +05:30
Rahul Jain 85530aad63 Merge pull request #168 from rahuldkjain/all-contributors/add-YashKandalkar
docs: add YashKandalkar as a contributor
2020-10-06 22:59:21 +05:30
Rahul Jain cd3df511e5 Merge branch 'master' into all-contributors/add-YashKandalkar 2020-10-06 22:59:03 +05:30
Rahul Jain 1def3dc501 Merge pull request #161 from rahuldkjain/all-contributors/add-abhijit-hota
docs: add abhijit-hota as a contributor
2020-10-06 22:57:33 +05:30
Rahul Jain 12d94283c3 Merge branch 'master' into all-contributors/add-abhijit-hota 2020-10-06 22:56:54 +05:30
Rahul Jain 756b0942a1 Merge pull request #154 from rahuldkjain/all-contributors/add-Maddoxx88
docs: add Maddoxx88 as a contributor
2020-10-06 22:55:12 +05:30
Rahul Jain 6db2bd9278 Merge branch 'master' into all-contributors/add-Maddoxx88 2020-10-06 22:55:05 +05:30
zolostays 2b99a7e3ed [add]: g-savitha in README 2020-10-06 22:48:26 +05:30
Rahul Jain 5448102770 Merge pull request #134 from rahuldkjain/all-contributors/add-Hardik0307
docs: add Hardik0307 as a contributor
2020-10-06 22:37:18 +05:30
Rahul Jain cbb1dddb8e Merge branch 'master' into all-contributors/add-Hardik0307 2020-10-06 22:37:07 +05:30
Mohit_007 fe0bffbd93 commit 2020-10-06 19:17:37 +05:30
j23saw 5f10777adb add searchbar 2020-10-06 01:49:14 +05:30
Aditya D.S dcd82b4eae fixed error on local environment 2020-10-05 18:31:46 +05:30
Aditya D.S 251ab17595 added matlab svg 2020-10-05 16:21:55 +05:30
Rahul Jain cc962a940a Merge pull request #229 from aaditkamat/add-vuepress
[add]: VuePress as a static site generator
2020-10-04 19:27:02 +05:30
Aadit Kamat fb20ed73ac Add vuepress under skillWebsites 2020-10-04 21:20:40 +08:00
allcontributors[bot] 0bf13cdbb1 docs: update .all-contributorsrc [skip ci] 2020-10-04 12:41:50 +00:00
allcontributors[bot] 10742994b0 docs: update README.md [skip ci] 2020-10-04 12:41:49 +00:00
Sunit Shirke c8102c7f97 Corrected twitter markdown link 2020-10-04 18:05:49 +05:30
Sunit Shirke aeca176f40 Corrected href link 2020-10-04 17:52:31 +05:30
Sunit Shirke 2689fe40cd Corrected href link in markdown 2020-10-04 17:44:43 +05:30
Sunit Shirke 4e5c2b974b Corrected twitter props link in markdown 2020-10-04 17:29:04 +05:30
Sunit Shirke 7e6120dedf Corrected twitter props link in preview 2020-10-04 17:27:19 +05:30
Sunit Shirke a446bbe408 Corrected href link in markdown 2020-10-04 17:25:07 +05:30
Sunit Shirke 7be9b08cd8 Corrected href link in preview 2020-10-04 17:24:05 +05:30
Sunit Shirke cac51acc92 Removed bracket error 2020-10-04 17:15:47 +05:30
Rahul Jain 4a2bd779c4 Merge pull request #204 from Aarush-Goyal/master
[add]: design addons
2020-10-04 17:12:26 +05:30
Rahul Jain 91b1d2f6ea Merge pull request #160 from abhijit-hota/add-unit-tests
[test]: Add unit tests #47
2020-10-04 16:58:10 +05:30
Aadit Kamat 264161c054 Replace with SVG 2020-10-04 15:30:04 +08:00
zolostays 8812ea048f [add]: package.json 2020-10-04 12:49:05 +05:30
Aadit Kamat 656e055cd0 Add VuePress as a static site generator 2020-10-04 15:15:22 +08:00
Rahul Jain 3793bcdad9 Merge pull request #214 from nidhi-bhanushali/master
[add]: Resume field in the work section
2020-10-04 12:37:58 +05:30
Sunit Shirke 4a1e6736ae Updated username validation for Twitter Badge 2020-10-04 12:36:42 +05:30
Sunit Shirke 5b7b83804a Updated on-click links for Twitter Badge in markdown 2020-10-04 12:30:41 +05:30
Nidhi Bhanushali 808d613dc1 Deleted package-lock.json 2020-10-04 12:29:04 +05:30
Sunit Shirke 7e1e742f46 Updated on-click link on Twitter Badge 2020-10-04 12:26:45 +05:30
Rahul Jain 580047ba7a Merge pull request #179 from Darkangeel-hd/add-perl-language
[add]: Perl to Programming Languages
2020-10-04 12:25:52 +05:30
Rahul Jain dd682423db Merge pull request #180 from Darkangeel-hd/add-openrest-backend
[add]: OpenResty to Backend Development
2020-10-04 12:25:07 +05:30
Nidhi Bhanushali ba609c3229 Made changes to package.json 2020-10-04 12:18:19 +05:30
Nidhi Bhanushali 2b35031629 Made changes to package.json 2020-10-04 12:16:10 +05:30
Sunit Shirke cd4451c607 Validation for twitter username updated. 2020-10-04 12:12:58 +05:30
Rahul Jain f38e0dbf0e Merge pull request #197 from vivek32ta/add-static-site-generators
[add]: 11ty, Scully, Sculpin, Sapper under static site generators
2020-10-04 12:01:59 +05:30
Rahul Jain 68b331b56b Merge branch 'master' into add-static-site-generators 2020-10-04 11:56:21 +05:30
Sunit Shirke f4e65fa555 Regex for Twitter Username Validation 2020-10-04 11:52:27 +05:30
Rahul Jain 14e3a7e57d Merge pull request #181 from Darkangeel-hd/add-cockroach-database
[add]: CockroachDB to Database
2020-10-04 11:52:01 +05:30
Rahul Jain 556a08365c Merge pull request #218 from lucid-dreem/master
[design]: add header design
2020-10-04 11:45:15 +05:30
Rahul Jain 9a2416bc5d Merge pull request #202 from sarbikbetal/srbk/dev
[design]: About page design idea.
2020-10-04 11:37:18 +05:30
Rahul Jain b81a30ebd0 Merge pull request #173 from parikshitghosh3/xd
[add]: Abobe XD in Skills
2020-10-04 11:16:36 +05:30
Rahul Jain 26a8c08b92 Merge pull request #147 from YashKandalkar/warnings-resolved
[fix]: warnings
2020-10-04 11:12:29 +05:30
zolostays 7d80d29a8b [fix]: syntax-error 2020-10-04 10:47:53 +05:30
Rahul Jain a4377c1dd6 Merge pull request #162 from Maddoxx88/patch-5
[add]: checkbox for twitterBadge as add-on.
2020-10-04 10:37:53 +05:30
zolostays 77df86a9a6 [fix]: syntax error 2020-10-04 10:21:17 +05:30
Rahul Jain eb7a06f1c0 Merge branch 'master' into patch-5 2020-10-04 10:15:35 +05:30
Rahul Jain 5725fdb018 Merge pull request #157 from Maddoxx88/patch-4
[add]: twitterBadge in const data
2020-10-04 10:05:32 +05:30
Rahul Jain 908cfa095e Merge pull request #209 from YashKandalkar/profile-badge-customization
[add]: Profile badge customization
2020-10-04 09:51:23 +05:30
lucid-dreem 36ce7a68ac add header design
Adding a potential design idea for the header. It rearranges the old elements and makes some slight additions to give a more professional feel.
2020-10-03 12:17:31 +05:30
Nidhi Bhanushali 5305ae1f6e Made changes in markdown.js 2020-10-03 11:15:52 +05:30
Nidhi Bhanushali 7d6dd860aa Made changes in markdownPreview.js 2020-10-03 11:12:22 +05:30
Nidhi Bhanushali 011720885e Added Resume field in the work section 2020-10-03 10:08:21 +05:30
YashKandalkar 5c51edd4eb Resolved merge conflicts 2020-10-03 00:59:18 +05:30
YashKandalkar 080e5f7822 Added check for preview 2020-10-03 00:45:10 +05:30
Pranav Dudhane 32c42c1f4e Added Arduino and Solidworks
#205
2020-10-03 00:28:02 +05:30
Angel e2ed889d5b Merge branch 'master' into add-cockroach-database 2020-10-02 20:35:34 +02:00
Aarush Goyal bbb8ce6bd3 added design addons 2020-10-02 23:51:37 +05:30
allcontributors[bot] 413d279a19 docs: update .all-contributorsrc [skip ci] 2020-10-02 16:34:35 +00:00
allcontributors[bot] 729354b053 docs: update README.md [skip ci] 2020-10-02 16:34:34 +00:00
Sarbik Betal ef55e85dba Added about page redesign. 2020-10-02 20:43:41 +05:30
zolostays 1d814d385d [restore]: images 2020-10-02 20:33:49 +05:30
YashKandalkar e48d9eeac6 Added profile badge customization 2020-10-02 20:28:41 +05:30
Rahul Jain 6f1530dc1b Merge pull request #1 from rahuldkjain/imgbot
[ImgBot] Optimize images
2020-10-02 20:26:33 +05:30
ImgBotApp bd0a35bedc [ImgBot] Optimize images
*Total -- 3,072.02kb -> 2,809.95kb (8.53%)

/src/designs/GPRG Style Guide.png -- 619.53kb -> 419.01kb (32.37%)
/src/images/mdg.png -- 11.20kb -> 8.99kb (19.72%)
/src/images/github-profile-readme-generator.gif -- 2,436.75kb -> 2,377.42kb (2.43%)
/src/images/icons/mysqlworkbench.svg -- 4.54kb -> 4.53kb (0.26%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
2020-10-02 14:54:42 +00:00
zolostays 804edf96d3 [add]: design-styleguide 2020-10-02 20:21:55 +05:30
zolostays 31094f8d4e [add]: mysql-workbench icon 2020-10-02 20:20:04 +05:30
zolostays 2f80d2cc8d [add]: design 2020-10-02 20:19:20 +05:30
zolostays 8012eea403 [add]: design folder 2020-10-02 20:17:46 +05:30
Vivek T A a21589381f changed images to svg 2020-10-02 19:47:48 +05:30
Savitha Gollamudi 321ce36eb7 Merge pull request #178 from jaideepghosh/master
feat: Added github trophy.
2020-10-02 18:36:11 +05:30
Savitha Gollamudi 91810816ba Merge pull request #194 from KKVANONYMOUS/master
Created a new category of Game Engines and added Unity to it
2020-10-02 18:27:05 +05:30
Savitha Gollamudi 0d83419d03 Merge pull request #195 from swapneelr09/all-contributors/add-swapneelr09
Added Graphql Skill
2020-10-02 18:13:17 +05:30
Sunit Shirke bff504b498 Updated Twitter Badge Component 2020-10-02 18:07:48 +05:30
Sunit Shirke 97b555e63c Updated Twitter Badge Markdown Preview 2020-10-02 18:01:52 +05:30
Sunit Shirke 3fa08161ce Merge branch 'master' into patch-5 2020-10-02 17:54:18 +05:30
Savitha Gollamudi 314abc7be5 integrate welcome bot 2020-10-02 17:30:38 +05:30
Thayana Correa Mamore a6756d0058 Merge pull request #1 from rahuldkjain/master
updating fork repo
2020-10-02 08:37:43 -03:00
jaideepghosh 2338a7db00 feat(trophy):Added credit link. 2020-10-02 16:37:49 +05:30
Vivek T A 1773c32033 add 11ty, scully, sculpin, sapper 2020-10-02 16:22:29 +05:30
Swapneel Roy d96593fe46 Added Graphql Skill 2020-10-02 15:15:07 +05:30
kkvanonymous 0c23182f4e add-unity 2020-10-02 15:04:13 +05:30
Savitha Gollamudi d91f5d3a45 Merge pull request #155 from shajanjp/fix-title-alignment
fix: #158 aligns titles to the left
2020-10-02 14:04:09 +05:30
Savitha Gollamudi 090001b956 Merge pull request #182 from MuhBayu/master
Added DevOps Skills
2020-10-02 13:07:59 +05:30
MuhBayu e9bc837492 Added DevOps Skills 2020-10-02 10:19:13 +07:00
Darkangeel-hd 3b4f2add83 Added CockroachDB to Database 2020-10-02 01:24:15 +02:00
Darkangeel-hd 5ef270a9f4 Added OpenResty Backend
OpenResty is a full-fledged web platform that integrates our enhanced version of the Nginx core, our enhanced version of LuaJIT.
2020-10-02 01:11:05 +02:00
Darkangeel-hd 7a9a4dcf47 Added Perl to Programming Languages 2020-10-02 00:59:42 +02:00
jaideepghosh 21483d66e0 feat(app):Added github trophy feat. 2020-10-02 02:12:03 +05:30
allcontributors[bot] ca8cea3141 docs: update .all-contributorsrc [skip ci] 2020-10-01 20:07:54 +00:00
allcontributors[bot] a456023b55 docs: update README.md [skip ci] 2020-10-01 20:07:53 +00:00
Parikshit Ghosh fe88af9544 Added XD respect to Issue #149 2020-10-01 17:35:50 +00:00
Savitha Gollamudi e3ed30baa6 Merge pull request #170 from quintenbuis/patch-1
Fix: #169 Remove youtube from README
2020-10-01 22:02:58 +05:30
Quinten Buis e54222ddbf #169 Remove youtube from README 2020-10-01 16:35:20 +02:00
allcontributors[bot] 6f6025fff5 docs: update .all-contributorsrc [skip ci] 2020-10-01 13:58:39 +00:00
allcontributors[bot] 18143686a8 docs: update README.md [skip ci] 2020-10-01 13:58:38 +00:00
Rahul Jain b36e7001b5 Merge pull request #148 from thauska/master
[add]: Quasar framework skill
2020-10-01 19:07:54 +05:30
Rahul Jain 8dd547e88d Merge pull request #144 from YashKandalkar/addon-enhancement
[fix]: text wrapping below checkbox on mobile
2020-10-01 19:07:23 +05:30
Sunit Shirke 1737d02957 Added a checkbox for twitterBadge as add-on 2020-10-01 16:36:07 +05:30
allcontributors[bot] 3e130915cc docs: update .all-contributorsrc [skip ci] 2020-10-01 10:24:25 +00:00
allcontributors[bot] 4789090cff docs: update README.md [skip ci] 2020-10-01 10:24:24 +00:00
abhijitXD 1f5aa89161 Add basic unit test for the Title component 2020-10-01 15:36:24 +05:30
abhijitXD 3f05970642 Add dependencies and configs for unit tests 2020-10-01 15:36:01 +05:30
Rahul Jain a87f7cc2a5 [del]: yarn.lock 2020-10-01 15:15:08 +05:30
Sunit Shirke 33d18f4c8f Update index with twitterBadge in data
Added basic validation during before readme generation
2020-10-01 14:20:50 +05:30
Rahul Jain b1c813540f Merge pull request #156 from kala2/dicord-fix-server-id
[fix]: change discord server-id
2020-10-01 14:00:41 +05:30
kala2 5c7b3ed923 fix: change discord server id 2020-10-01 11:27:28 +03:00
shajanjp 45c6a3a97c fix: aligns titles to the left 2020-10-01 13:53:47 +05:30
allcontributors[bot] 9c79fe1a64 docs: update .all-contributorsrc [skip ci] 2020-10-01 07:51:17 +00:00
allcontributors[bot] e8ebabee8c docs: update README.md [skip ci] 2020-10-01 07:51:16 +00:00
YashKandalkar 5cb817a03e Bug fixes 2020-10-01 13:18:59 +05:30
YashKandalkar 6d0377a6a9 Resolved eslint warnings 2020-10-01 12:34:20 +05:30
Thayana Mamoré 86593cecbd [add]: Added Quasar framework skill 2020-09-30 23:16:40 -03:00
YashKandalkar 0a73c08dcf Moved AddonsItem component to addons.js file 2020-09-27 18:41:45 +05:30
YashKandalkar 63f68f3ce7 Added a new component AddonItem, improved text wrapping of an addon on
smaller screens
2020-09-27 01:16:48 +05:30
allcontributors[bot] 13ae1d20ed docs: update .all-contributorsrc [skip ci] 2020-09-25 14:26:11 +00:00
allcontributors[bot] 532867563d docs: update README.md [skip ci] 2020-09-25 14:26:10 +00:00
207 changed files with 30652 additions and 2217 deletions
+64
View File
@@ -14,6 +14,15 @@
"code"
]
},
{
"login": "Hardik0307",
"name": "Hardik Bagada",
"avatar_url": "https://avatars3.githubusercontent.com/u/41434099?v=4",
"profile": "https://github.com/Hardik0307",
"contributions": [
"code"
]
},
{
"login": "antonkomarev",
"name": "Anton Komarev",
@@ -22,6 +31,61 @@
"contributions": [
"plugin"
]
},
{
"login": "KKVANONYMOUS",
"name": "Kunal Kumar Verma",
"avatar_url": "https://avatars3.githubusercontent.com/u/58628586?v=4",
"profile": "https://kkvanonymous.github.io/",
"contributions": [
"code"
]
},
{
"login": "jaideepghosh",
"name": "Jaideep Ghosh",
"avatar_url": "https://avatars2.githubusercontent.com/u/3909648?v=4",
"profile": "http://jaideepghosh.blogspot.com",
"contributions": [
"code"
]
}
{
"login": "YashKandalkar",
"name": "yash",
"avatar_url": "https://avatars0.githubusercontent.com/u/35102959?v=4",
"profile": "http://yashkandalkar.github.io",
"contributions": [
"code"
]
},
{
"login": "abhijit-hota",
"name": "Abhijit Hota",
"avatar_url": "https://avatars0.githubusercontent.com/u/8116174?v=4",
"profile": "https://github.com/abhijit-hota",
"contributions": [
"code",
"test"
]
},
{
"login": "Maddoxx88",
"name": "Sunit Shirke",
"avatar_url": "https://avatars1.githubusercontent.com/u/34238672?v=4",
"profile": "https://maddoxx88.github.io/",
"contributions": [
"code"
]
}
{
"login": "g-savitha",
"name": "Savitha Gollamudi",
"avatar_url": "https://avatars0.githubusercontent.com/u/31612459?v=4",
"profile": "https://www.gsavitha.in",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
+6
View File
@@ -39,5 +39,11 @@ If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.
Join the **Discord Server** for further discussions.
<a href="https://discord.gg/HHMs7Eg">
<img src="https://discord.com/assets/e4923594e694a21542a489471ecffa50.svg" alt="GPRG Discord Server Link" width="300px"/>
</a>
Server Link: https://discord.gg/HHMs7Eg
@@ -2,7 +2,7 @@
name: Feature/Enhancement request
about: Suggest an idea for this project
title: ""
labels: enhancement
labels: enhancement, hacktoberfest
assignees: ""
---
@@ -20,4 +20,8 @@ Add any other context or screenshots about the feature request here.
Join the **Discord Server** for further discussions.
<a href="https://discord.gg/HHMs7Eg">
<img src="https://discord.com/assets/e4923594e694a21542a489471ecffa50.svg" alt="GPRG Discord Server Link" width="300px"/>
</a>
Server Link: https://discord.gg/HHMs7Eg
+43
View File
@@ -0,0 +1,43 @@
<!--
For Work In Progress Pull Requests, please use the Draft PR feature,
see https://github.blog/2019-02-14-introducing-draft-pull-requests/ for further details.
For a timely review/response, please avoid force-pushing additional
commits if your PR already received reviews or comments.
Before submitting a Pull Request, please ensure you've done the following:
- 📖 Read the Contributing Guide: https://github.com/rahuldkjain/github-profile-readme-generator/blob/master/CONTRIBUTING.md#create-a-pull-request.
- 📖 Read the Code of Conduct: https://github.com/rahuldkjain/github-profile-readme-generator/blob/master/CODE_OF_CONDUCT.md.
- 👷‍♀️ Create small PRs. In most cases this will be possible.
- ✅ Provide issue number with link.
- 📝 Use descriptive commit messages.
- 📗 Update any related documentation and include any relevant screenshots.
-->
## What type of PR is this? (check all applicable)
- [ ] Refactor
- [ ] Feature
- [ ] Bug Fix
- [ ] Enhancement
- [ ] Documentation Update
## Description
## Related Tickets & Documents
## QA Instructions, Screenshots, Recordings
_Please replace this line with instructions on how to test your changes, as well
as any relevant images for UI changes._
<!-- ## Added tests?
- [ ] yes
- [ ] no, because they aren't needed
- [ ] no, because I need help -->
## Added to documentation?
- [ ] readme
+17
View File
@@ -0,0 +1,17 @@
# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome
# Comment to be posted to on first time issues
newIssueWelcomeComment: >
Thanks for opening your first issue here! Your contribution means alot. 🙌 Join Discord Server (https://discord.gg/HHMs7Eg) for discussing issues, pull-requests, new features, etc.
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
# Comment to be posted to on PRs from first time contributors in your repository
newPRWelcomeComment: >
Thanks for opening this pull request! Make sure you have assigned an issue to this respective PR 😇
# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge
# Comment to be posted to on pull requests merged by a first time user
firstPRMergeComment: >
Congrats on merging your first pull request🎉! Thanks alot for your contribution. 🙏
+6
View File
@@ -0,0 +1,6 @@
language: node_js
node_js:
- "stable"
cache:
directories:
- "node_modules"
+91
View File
@@ -0,0 +1,91 @@
# Coding Style
## File Layout (`src/components/*.js`)
1. Imports
2. Reusabe components needed for the main component
3. Main component (Eg: Addons in addons.js)
4. export default \<MainComponent\>;
## Reusable components
* Do not make a new file for smaller components.
* Smaller, reusable components neeeded in the main components should be added **above** the main component, **not** inside it.
* Use ES6 arrow functions for defining components.
## Spacing
1. **JS:**
* Use a space after `if`, `for`, `while`, `switch`.
* Do not use a space after the opening `(` and before the closing `)`.
* Use a space before and after destructuring objects.
```js
//good
const { apple, mangoes } = fruits;
//bad
const {apple, mangoes} = fruits;
//Same for destructuring props:
//good
const BeautifulComponent = ({ prop1, prop2 }) => {}
//bad
const UglyComponent = ({prop1, prop2}) => {}
```
2. **JSX:**
* Use a space before the forward slash (`/`) of a self-closing tag
```js
//good
<Foo />
//bad
<Foo/>
```
* Do **not** use spaces for JSX curly braces
```js
//good
<Foo bar={baz} />
//bad
<Foo bar={ baz } />
```
## **Props:**
* Use camelCase for prop names, or PascalCase if the prop value is a React component.
* Use new lines when props do not fit on the same line.
```js
//good
<Foo
prop1={value1}
prop2={value2}
prop3={value3}
/>
//bad
<Foo prop1={value1} prop2={value2} prop3={value3} />
```
## **Best practices:**
* **Always** add semicolons after a line.
* Use ES6 arrow functions.
* Keep the indentation in your code correct.
* Use 4 spaces for tabs.
* Don't Repeat Yourself. If you think you're repeating too much code, make a smaller component, or a function.
* **Always** add alt prop to `img` tags.
* Add `rel="noopener"` for `a` tags which has `target="_blank"`.
* Don't do `outline: none` on user input elements. If you do not want outline, give them faint, visible background on focus. This is for accessibility.
### Other things to note
* We are using [octicons](https://primer.style/octicons/) for icons. Use this if you need to add icons. Do **not** add a new library for icons.
* Try to not commit changes in `package.json`, `package-lock.json`.
* Disscuss with contributors on discord if you're planning to add/remove a package.
## Further reading:
This guide is based on [airbnb's react guide](https://github.com/airbnb/javascript/tree/master/react). You can read all the best practices there.
+1 -1
View File
@@ -3,7 +3,7 @@
When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.
<a href="https://discord.gg/U7YU3J" target="blank">
<a href="https://discord.gg/HHMs7Eg" target="blank">
<img src="https://img.shields.io/discord/735303195105951764?color=%23677BC4&label=Join%20Community&style=flat-square" alt="join discord community of github profile readme generator"/>
</a>
+9 -22
View File
@@ -23,7 +23,7 @@
<a href="https://github.com/rahuldkjain/github-profile-readme-generator/pulls" target="blank">
<img src="https://img.shields.io/github/issues-pr/rahuldkjain/github-profile-readme-generator?style=flat-square" alt="github-profile-readme-generator pull-requests"/>
</a>
<a href="https://discord.gg/U7YU3J" target="blank">
<a href="https://discord.gg/HHMs7Eg" target="blank">
<img src="https://img.shields.io/discord/735303195105951764?label=Join%20Community&logo=discord&style=flat-square" alt="join discord community of github profile readme generator"/>
</a>
</p>
@@ -76,6 +76,8 @@ Just fill in the details such as `Name`, `Tagline`, `Dev Platforms Username`, `C
- **GitHub Top Skills**
- **GitHub Streak Stats**
- **Dynamic Dev(.)to Blogs** (GitHub Action)
- **Dynamic Medium Blogs** (GitHub Action)
@@ -84,7 +86,7 @@ Just fill in the details such as `Name`, `Tagline`, `Dev Platforms Username`, `C
- **Wakatime Stats** [contribute](https://github.com/rahuldkjain/github-profile-readme-generator/issues/115)
- **YouTube Stats** [contribute](https://github.com/rahuldkjain/github-profile-readme-generator/issues/119)
- **Buy Me A Coffee button**
Click on `Generate README` to get your README in `markdown`.
You can preview the README too.
@@ -134,12 +136,16 @@ Please read [`CONTRIBUTING`](CONTRIBUTING.md) for details on our [`CODE OF CONDU
- [Anurag Hazra](https://github.com/anuraghazra) for amazing [github-readme-stats](https://github.com/anuraghazra/github-readme-stats)
- [Anton Komarev](https://github.com/antonkomarev) for super cool [github-profile-views-counter](https://github.com/antonkomarev/github-profile-views-counter)
- [Gautam Krishna R](https://github.com/gautamkrishnar) for the awesome [blog post workflow](https://github.com/gautamkrishnar/blog-post-workflow)
- [Jonah Lawrence](https://github.com/DenverCoder1) for the incredible [github-readme-streak-stats](https://github.com/DenverCoder1/github-readme-streak-stats)
- [Julien Monty](https://github.com/konpa) for super useful [devicon](https://github.com/konpa/devicon)
## 🙇 Sponsors
- [Scott C Wilson](https://github.com/scottcwilson) donated the first-ever grant to this tool. A big thanks to him.
- [Max Schmitt](https://github.com/mxschmitt) loved the tool and showed support with his donation. Thanks a lot.
- [Aadit Kamat](https://github.com/aaditkamat) find the tool useful and showed support with his donation. A big thanks to him.
- [Jean-Michel Fayard](https://github.com/jmfayard) used the generator to create his GitHub Profile README and he loved it. Thanks to him for showing support to the tool with the donation.
## 🙏 Support
@@ -157,27 +163,8 @@ Please read [`CONTRIBUTING`](CONTRIBUTING.md) for details on our [`CODE OF CONDU
<a href="https://www.buymeacoffee.com/rahuldkjain" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="23" width="100" style="border-radius:2px" />
</p>
## Contributors ✨
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://github.com/sarbikbetal"><img src="https://avatars2.githubusercontent.com/u/41508422?v=4" width="100px;" alt=""/><br /><sub><b>Sarbik Betal</b></sub></a><br /><a href="https://github.com/rahuldkjain/github-profile-readme-generator/commits?author=sarbikbetal" title="Code">💻</a></td>
<td align="center"><a href="https://komarev.com"><img src="https://avatars0.githubusercontent.com/u/1849174?v=4" width="100px;" alt=""/><br /><sub><b>Anton Komarev</b></sub></a><br /><a href="#plugin-antonkomarev" title="Plugin/utility libraries">🔌</a></td>
</tr>
</table>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
<hr>
<p align="center">
Developed with ❤️ in India 🇮🇳
</p>
</p>
+1
View File
@@ -0,0 +1 @@
module.exports = "test-file-stub"
+27
View File
@@ -0,0 +1,27 @@
const React = require("react")
const gatsby = jest.requireActual("gatsby")
module.exports = {
...gatsby,
graphql: jest.fn(),
Link: jest.fn().mockImplementation(
// these props are invalid for an `a` tag
({
activeClassName,
activeStyle,
getProps,
innerRef,
partiallyActive,
ref,
replace,
to,
...rest
}) =>
React.createElement("a", {
...rest,
href: to,
})
),
StaticQuery: jest.fn(),
useStaticQuery: jest.fn(),
}
+5
View File
@@ -0,0 +1,5 @@
const babelOptions = {
presets: ["babel-preset-gatsby"],
}
module.exports = require("babel-jest").createTransformer(babelOptions)
+26
View File
@@ -0,0 +1,26 @@
module.exports = {
transform: {
"^.+\\.jsx?$": `<rootDir>/jest-preprocess.js`,
},
moduleNameMapper: {
".+\\.(css|styl|less|sass|scss)$": `identity-obj-proxy`,
".+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": `<rootDir>/__mocks__/file-mock.js`,
},
testPathIgnorePatterns: [`node_modules`, `\\.cache`, `<rootDir>.*/public`],
transformIgnorePatterns: [`node_modules/(?!(gatsby)/)`],
globals: {
__PATH_PREFIX__: ``,
__BASE_PATH__: ``,
},
setupFiles: [`<rootDir>/loadershim.js`],
setupFilesAfterEnv: ["<rootDir>/setupTests.js"],
snapshotSerializers: ["enzyme-to-json/serializer"],
coverageThreshold: {
global: {
branches: 0,
functions: 75,
lines: 68,
statements: 68,
},
},
}
+3
View File
@@ -0,0 +1,3 @@
global.___loader = {
enqueue: jest.fn(),
}
+10798 -1504
View File
File diff suppressed because it is too large Load Diff
+13 -6
View File
@@ -1,18 +1,21 @@
{
"name": "gh-profile-reamde-generator",
"name": "github-profile-readme-generator",
"private": true,
"description": "A simple react app to generate beautiful github profile readme in md(markdown)",
"version": "0.1.0",
"version": "1.2.0",
"author": "Rahul Jain <rahuldkjain@gmail.com>",
"dependencies": {
"@primer/octicons-react": "^10.0.0",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.5",
"enzyme-to-json": "^3.6.1",
"gatsby": "^2.23.12",
"gatsby-image": "^2.4.9",
"gatsby-plugin-google-analytics": "^2.3.11",
"gatsby-plugin-manifest": "^2.4.14",
"gatsby-plugin-offline": "^3.2.13",
"gatsby-plugin-react-helmet": "^3.3.6",
"gatsby-plugin-sharp": "^2.6.14",
"gatsby-plugin-sharp": "2.6.14",
"gatsby-remark-prismjs": "^3.5.10",
"gatsby-source-filesystem": "^2.3.23",
"gatsby-transformer-remark": "^2.8.27",
@@ -25,11 +28,15 @@
"react-helmet": "^6.1.0"
},
"devDependencies": {
"babel-jest": "26.3.0",
"babel-preset-gatsby": "0.5.11",
"gatsby-plugin-postcss": "^2.3.11",
"gatsby-plugin-purgecss": "^5.0.0",
"gatsby-plugin-twitter": "^2.3.10",
"gatsby-remark-embedder": "^3.0.0",
"gh-pages": "^3.1.0",
"identity-obj-proxy": "3.0.0",
"jest": "26.4.2",
"prettier": "2.0.5",
"tailwindcss": "^1.7.6"
},
@@ -44,14 +51,14 @@
"start": "npm run develop",
"serve": "gatsby serve",
"clean": "gatsby clean",
"test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1",
"test": "jest -i -u --coverage",
"deploy": "gatsby build --prefix-paths && gh-pages -d public -b master"
},
"repository": {
"type": "git",
"url": "https://github.com/rahuldkjain/gh-profile-readme-generator"
"url": "https://github.com/rahuldkjain/github-profile-readme-generator"
},
"bugs": {
"url": "https://github.com/rahuldkjain/gh-profile-readme-generator/issues"
"url": "https://github.com/rahuldkjain/github-profile-readme-generator/issues"
}
}
+4
View File
@@ -0,0 +1,4 @@
import { configure } from "enzyme"
import Adapter from "enzyme-adapter-react-16"
configure({ adapter: new Adapter() })
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,102 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Donate renders correctly 1`] = `
<Fragment>
<div
className="text-center text-4xl my-2"
>
Support 
<span
aria-label="praying hand emoji"
role="img"
>
🙏
</span>
</div>
<div
className="flex flex-col sm:flex-row items-start justify-between"
>
<div
className="w-full sm:w-2/3"
>
<div
className="text-2xl mb-2"
>
Are you using the tool and happy with it to create your GitHub Profile?
</div>
<div
className="text-lg"
>
Your kind support keeps open-source tools like this free for others.
</div>
<div
className="mt-4"
>
<a
className="flex items-center justify-start w-20"
href="https://twitter.com/intent/tweet?text=Wow:&url=https%3A%2F%2Frahuldkjain.github.io%2Fgithub-profile-readme-generator"
>
<img
alt="tweet github profile readme generator"
className="w-20"
src="https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Frahuldkjain.github.io%2Fgithub-profile-readme-generator"
/>
</a>
Let the world know how you feel using this tool. Share with others on twitter.
</div>
</div>
<div
className="w-full sm:w-1/3 flex flex-col justify-center items-center"
>
<span>
Tip
<span
aria-label="Dollar medal"
role="img"
>
💰
</span>
</span>
<a
className="flex items-center justify-evenly bg-red-500 text-white py-2 px-4 my-2"
href="https://ko-fi.com/A0A81XXSX"
rel="noreferrer"
target="_blank"
>
<img
alt="Buy ko-fi for rahuldkjain"
className="w-6 h-6 mr-2"
src="https://www.vectorlogo.zone/logos/ko-fi/ko-fi-icon.svg"
/>
Buy me a ko-fi
</a>
<a
className="flex items-center justify-evenly bg-blue-500 text-white py-2 px-4 my-2"
href="https://www.paypal.me/rahuldkjain/10"
rel="noreferrer"
target="_blank"
>
<img
alt="Donate rahuldkjain via paypal"
className="w-6 h-6 mr-2"
src="https://cdn.worldvectorlogo.com/logos/paypal-icon.svg"
/>
Paypal
</a>
<a
className="flex items-center justify-evenly bg-orange-500 text-white py-2 px-4 my-2"
href="https://www.buymeacoffee.com/rahuldkjain"
rel="noreferrer"
target="_blank"
>
<img
alt="Buy rahuldkjain A Coffee"
className="w-6 h-6 mr-2"
src="https://www.vectorlogo.zone/logos/buymeacoffee/buymeacoffee-icon.svg"
/>
Buy me a coffee
</a>
</div>
</div>
</Fragment>
`;
@@ -0,0 +1,190 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Footer component renders correctly 1`] = `
<div
className="bg-gray-100 p-4 flex flex-col justify-center items-center shadow-inner mt-2"
>
<div
className="w-full flex flex-col sm:flex-row justify-evenly py-2"
>
<div
className="sm:ml-0 sm:mr-6 order-last sm:order-none flex"
>
<h1
className="text-base font-bold font-title text-xl sm:text-2xl mt-3 sm:mt-0"
>
<div
className="flex sm:flex-col items-start mb-3 sm:mb-0"
>
<img
alt="github profile markdown generator logo"
className="hidden sm:block h-24"
src="test-file-stub"
/>
<div
className="mr-2 sm:mr-0"
>
GitHub Profile
<img
alt="github profile markdown generator logo"
className="inline sm:hidden h-12"
src="test-file-stub"
/>
<span
className="block sm:inline"
>
README Generator
</span>
</div>
</div>
</h1>
</div>
<div
className="text-xl sm:text-base font-light sm:font-normal"
>
<div
className="font-title font-bold mb-4 sm:mb-2"
>
<strong>
Pages
</strong>
</div>
<div
className="ml-2 sm:ml-0"
>
<mockConstructor
activeStyle={
Object {
"color": "#002ead",
}
}
to="/addons"
>
Addons
</mockConstructor>
</div>
<div
className="ml-2 sm:ml-0"
>
<mockConstructor
activeStyle={
Object {
"color": "#002ead",
}
}
to="/support"
>
Support
</mockConstructor>
</div>
<div
className="ml-2 sm:ml-0"
>
<mockConstructor
activeStyle={
Object {
"color": "#002ead",
}
}
to="/about"
>
About
</mockConstructor>
</div>
</div>
<div
className="text-xl sm:text-base font-light sm:font-normal"
>
<div
className="font-title font-bold my-4 sm:my-0 sm:mb-2"
>
<strong>
More
</strong>
</div>
<div
className="ml-2 sm:ml-0"
>
<a
aria-label="Github rahuldkjain/github-profile-readme-generator"
href="https://github.com/rahuldkjain/github-profile-readme-generator"
target="blank"
>
Github
</a>
</div>
<div
className="ml-2 sm:ml-0"
>
<a
aria-label="Releases on Github rahuldkjain/github-profile-readme-generator"
href="https://github.com/rahuldkjain/github-profile-readme-generator/releases"
target="blank"
>
Releases
</a>
</div>
<div
className="ml-2 sm:ml-0"
>
<a
aria-label="Issues in rahuldkjain/github-profile-readme-generator"
href="https://github.com/rahuldkjain/github-profile-readme-generator/issues"
target="blank"
>
Issues
</a>
</div>
<div
className="ml-2 sm:ml-0"
>
<a
aria-label="Pull Requests in rahuldkjain/github-profile-readme-generator"
href="https://github.com/rahuldkjain/github-profile-readme-generator/pulls"
target="blank"
>
Pull Requests
</a>
</div>
</div>
<div>
<div
className="font-title font-bold text-xl sm:text-base my-4 sm:my-0 sm:mb-2"
>
<strong>
Join Community
</strong>
</div>
<div
class="ml-2 sm:ml-0"
>
<a
aria-label="Discord of the community"
href="https://discord.gg/HHMs7Eg"
target="blank"
>
<img
alt="Discord of the community"
className="h-12"
src="test-file-stub"
/>
</a>
</div>
</div>
</div>
<div
className="py-2 mt-2"
>
Developed in India
<span
aria-label="india"
role="img"
>
🇮🇳
</span>
</div>
</div>
`;
@@ -0,0 +1,73 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Header renders correctly 1`] = `
<div
className="shadow flex items-center justify-center flex-col mb-2 py-2"
>
<mockConstructor
to="/"
>
<h1
className="text-base font-bold font-title sm:text-2xl font-medium text-blue-800 flex justify-center items-center flex-col"
>
<img
alt="github profile markdown generator logo"
className="w-12 h-12"
src="test-file-stub"
/>
<div>
heading
</div>
</h1>
</mockConstructor>
<div
className="flex justify-center items-center"
>
<a
aria-label="Star rahuldkjain/github-profile-readme-generator on GitHub"
className="mr-2"
href="https://github.com/rahuldkjain/github-profile-readme-generator"
target="blank"
>
<div
className="text-xxs sm:text-sm border-2 border-solid border-gray-900 bg-gray-100 flex items-center justify-center py-1 px-2"
>
<StarIcon
className="px-1 w-6 star"
id="star-icon"
size={16}
verticalAlign="text-bottom"
/>
Star this repo
<span
className="github-count px-1 sm:px-2"
>
0
</span>
</div>
</a>
<a
aria-label="Fork rahuldkjain/github-profile-readme-generator on GitHub"
href="https://github.com/rahuldkjain/github-profile-readme-generator/fork"
target="blank"
>
<div
className="text-xxs sm:text-sm border-2 border-solid border-gray-900 bg-gray-100 flex items-center justify-center py-1 px-2"
>
<RepoForkedIcon
className="px-1 w-6 fork"
id="fork-icon"
size={16}
verticalAlign="text-bottom"
/>
Fork on GitHub
<span
className="github-count px-1 sm:px-2"
>
0
</span>
</div>
</a>
</div>
</div>
`;
@@ -0,0 +1,23 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Loader renders correctly 1`] = `
<div
className="loader"
>
<span>
</span>
<span>
</span>
<span>
</span>
<span>
</span>
<span>
</span>
</div>
`;
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,578 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`DisplaySocial Preview renders correctly 1`] = `
<a
className="no-underline text-blue-700 m-2"
href="https://codepen.io/dummy"
target="blank"
>
<img
alt="props.username"
className="w-6 h-6"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codepen.svg"
/>
</a>
`;
exports[`DisplaySocial Preview renders correctly with no username 1`] = `""`;
exports[`DisplayWork Preview renders correctly 1`] = `
<div
className="my-2"
>
[object Object]
<a
className="no-underline text-blue-700"
href="https://dummy.com"
target="blank"
>
readme-generator
</a>
</div>
`;
exports[`DisplayWork Preview renders correctly with no link 1`] = `
<div
className="my-2"
>
[object Object]
<b>
readme-generator
</b>
</div>
`;
exports[`DisplayWork Preview renders correctly with no prefix 1`] = `""`;
exports[`DisplayWork Preview renders correctly with no prefix and link 1`] = `""`;
exports[`DisplayWork Preview renders correctly with no prefix, link and project 1`] = `""`;
exports[`DisplayWork Preview renders correctly with no project 1`] = `
<div
className="my-2"
>
[object Object]
<a
className="no-underline text-blue-700"
href="https://dummy.com"
target="blank"
>
https://dummy.com
</a>
</div>
`;
exports[`DisplayWork Preview renders correctly with no project and link 1`] = `""`;
exports[`DisplayWork Preview renders correctly with no project and prefix 1`] = `""`;
exports[`GitHubStats Preview renders correctly 1`] = `""`;
exports[`GitHubStats Preview renders correctly 2`] = `
<div
className="text-center mx-4 mb-4"
>
<img
alt=""
src="https://github-readme-stats.vercel.app/api?username=&show_icons=true&locale=en"
/>
</div>
`;
exports[`GithubProfileTrophy Preview renders correctly 1`] = `""`;
exports[`GithubProfileTrophy Preview renders correctly with show true 1`] = `
<div
className="text-left my-2"
>
<a
href="https://github.com/ryo-ma/github-profile-trophy"
>
<img
alt=""
src="https://github-profile-trophy.vercel.app/?username="
/>
</a>
</div>
`;
exports[`Markdown Preview renders correctly 1`] = `
<div
id="markdown-preview"
>
<TitlePreview
prefix="Hi 👋, I'm"
title="dummy"
/>
<SubTitlePreview
subtitle="A passionate frontend developer from India"
/>
<VisitorsBadgePreview
badgeOptions={
Object {
"badgeColor": "0e75b6",
"badgeLabel": "Profile%20views",
"badgeStyle": "flat",
}
}
github=""
show={false}
/>
<GithubProfileTrophyPreview
github=""
show={false}
/>
<TwitterBadgePreview
show={false}
twitter=""
/>
<WorkPreview
work={
Object {
"data": Object {
"ama": "",
"badgeColor": "0e75b6",
"badgeLabel": "Profile views",
"badgeStyle": "flat",
"collaborateOn": "",
"contact": "",
"currentLearn": "",
"currentWork": "readme-generator",
"devDynamicBlogs": false,
"funFact": "",
"githubProfileTrophy": false,
"githubStats": false,
"githubStatsOptions": Object {
"bgColor": "",
"cacheSeconds": null,
"hideBorder": false,
"locale": "en",
"textColor": "",
"theme": "",
"titleColor": "",
},
"helpWith": "",
"mediumDynamicBlogs": false,
"rssDynamicBlogs": false,
"subtitle": "A passionate frontend developer from India",
"title": "dummy",
"topLanguages": false,
"topLanguagesOptions": Object {
"bgColor": "",
"cacheSeconds": null,
"hideBorder": false,
"locale": "en",
"textColor": "",
"theme": "",
"titleColor": "",
},
"twitterBadge": false,
"visitorsBadge": false,
},
"link": Object {
"blog": "",
"collaborateOn": "",
"currentWork": "https://dummy.com",
"helpWith": "",
"portfolio": "",
"resume": "",
},
"prefix": Object {
"ama": "💬 Ask me about",
"blog": "📝 I regulary write articles on",
"collaborateOn": "👯 Im looking to collaborate on",
"contact": "📫 How to reach me",
"currentLearn": "🌱 Im currently learning",
"currentWork": "🔭 Im currently working on",
"funFact": "⚡ Fun fact",
"helpWith": "🤝 Im looking for help with",
"portfolio": "👨‍💻 All of my projects are available at",
"resume": "📄 Know about my experiences",
"title": "Hi 👋, I'm",
},
"skills": Object {},
"social": Object {
"behance": "",
"codechef": "",
"codeforces": "",
"codepen": "dummy",
"codesandbox": "",
"dev": "",
"discord": "",
"dribbble": "",
"fb": "",
"geeks_for_geeks": "",
"github": "",
"hackerearth": "",
"hackerrank": "",
"instagram": "",
"kaggle": "",
"leetcode": "",
"linkedin": "",
"medium": "",
"rssurl": "",
"stackoverflow": "",
"topcoder": "",
"twitter": "",
"youtube": "",
},
}
}
/>
<SocialPreview
social={
Object {
"behance": "",
"codechef": "",
"codeforces": "",
"codepen": "dummy",
"codesandbox": "",
"dev": "",
"discord": "",
"dribbble": "",
"fb": "",
"geeks_for_geeks": "",
"github": "",
"hackerearth": "",
"hackerrank": "",
"instagram": "",
"kaggle": "",
"leetcode": "",
"linkedin": "",
"medium": "",
"rssurl": "",
"stackoverflow": "",
"topcoder": "",
"twitter": "",
"youtube": "",
}
}
/>
<SkillsPreview
skills={Object {}}
/>
<div
className="block sm:flex sm:justify-center sm:items-start"
>
<TopLanguagesPreview
github=""
options={
Object {
"bgColor": "",
"cacheSeconds": null,
"hideBorder": false,
"locale": "en",
"textColor": "",
"theme": "",
"titleColor": "",
}
}
show={false}
/>
<GitHubStatsPreview
github=""
options={
Object {
"bgColor": "",
"cacheSeconds": null,
"hideBorder": false,
"locale": "en",
"textColor": "",
"theme": "",
"titleColor": "",
}
}
show={false}
/>
</div>
</div>
`;
exports[`SectionTitle Preview renders correctly 1`] = `
<h3
className="w-full text-lg sm:text-xl"
>
dummy
</h3>
`;
exports[`SectionTitle Preview renders correctly with no label 1`] = `""`;
exports[`SectionTitle Preview renders correctly with visible false 1`] = `""`;
exports[`Skills Preview renders correctly 1`] = `
<div
className="flex flex-wrap justify-start items-center"
>
<SectionTitle
label="Languages and Tools:"
visible={true}
/>
<a
href="https://unity.com/"
rel="noreferrer"
target="_blank"
>
<img
alt="unity"
className="mb-4 mr-4 h-6 w-6 sm:h-10 sm:w-10"
key="unity"
src="https://www.vectorlogo.zone/logos/unity3d/unity3d-icon.svg"
/>
</a>
</div>
`;
exports[`Skills Preview renders correctly with no skills 1`] = `""`;
exports[`Social Preview renders correctly 1`] = `
<div
className="flex justify-start items-end flex-wrap"
>
<SectionTitle
label="Connect with me:"
visible={true}
/>
<DisplaySocial
base="https://codepen.io"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codepen.svg"
username="dummy"
/>
<DisplaySocial
base="https://dev.to"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dev-dot-to.svg"
username=""
/>
<DisplaySocial
base="https://twitter.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/twitter.svg"
username=""
/>
<DisplaySocial
base="https://linkedin.com/in"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/linkedin.svg"
username=""
/>
<DisplaySocial
base="https://stackoverflow.com/users"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/stackoverflow.svg"
username=""
/>
<DisplaySocial
base="https://codesandbox.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codesandbox.svg"
username=""
/>
<DisplaySocial
base="https://kaggle.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/kaggle.svg"
username=""
/>
<DisplaySocial
base="https://fb.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/facebook.svg"
username=""
/>
<DisplaySocial
base="https://instagram.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/instagram.svg"
username=""
/>
<DisplaySocial
base="https://dribbble.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dribbble.svg"
username=""
/>
<DisplaySocial
base="https://www.behance.net"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/behance.svg"
username=""
/>
<DisplaySocial
base="https://medium.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/medium.svg"
username=""
/>
<DisplaySocial
base="https://www.youtube.com/c"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/youtube.svg"
username=""
/>
<DisplaySocial
base="https://www.codechef.com/users"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codechef.svg"
username=""
/>
<DisplaySocial
base="https://codeforces.com/profile"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codeforces.svg"
username=""
/>
<DisplaySocial
base="https://www.hackerrank.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/hackerrank.svg"
username=""
/>
<DisplaySocial
base="https://auth.geeksforgeeks.org/user"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/geeksforgeeks.svg"
username=""
/>
<DisplaySocial
base="https://www.hackerearth.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/hackerearth.svg"
username=""
/>
<DisplaySocial
base="https://www.topcoder.com/members"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/topcoder.svg"
username=""
/>
<DisplaySocial
base="https://www.leetcode.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/leetcode.svg"
username=""
/>
<DisplaySocial
base="https://discord.gg"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/discord.svg"
username=""
/>
<DisplaySocial
base=""
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/rss.svg"
username=""
/>
</div>
`;
exports[`SubTitle Preview renders correctly 1`] = `
<h3
className="text-center font-medium"
>
A passionate frontend developer from India
</h3>
`;
exports[`SubTitle Preview renders correctly with no subtitle 1`] = `""`;
exports[`Title Preview renders correctly 1`] = `
<h1
className="text-center text-xl font-bold"
>
Hi 👋, I'm dummy
</h1>
`;
exports[`Title Preview renders correctly with no prefix 1`] = `""`;
exports[`Title Preview renders correctly with no title 1`] = `""`;
exports[`Title Preview renders correctly with no title and prefix 1`] = `""`;
exports[`TopLanguages Preview renders correctly 1`] = `
<div
className="text-center mx-4 mb-4"
>
 
</div>
`;
exports[`TopLanguages Preview renders correctly with show true 1`] = `
<div
className="text-center mx-4 mb-4"
>
<img
alt=""
src="https://github-readme-stats.vercel.app/api/top-langs?username=&show_icons=true&locale=en&layout=compact"
/>
</div>
`;
exports[`TwitterBadgePreview Preview renders correctly 1`] = `""`;
exports[`TwitterBadgePreview Preview renders correctly with show true 1`] = `
<div
className="text-left my-2"
>
<a
href="https://twitter.com/\${props.twitter}"
target="blank"
>
<img
alt=""
className="h-4 sm:h-6"
src="https://img.shields.io/twitter/follow/?logo=twitter&style=for-the-badge"
/>
</a>
</div>
`;
exports[`VisitorsBadge Preview renders correctly 1`] = `""`;
exports[`VisitorsBadge Preview renders correctly with show true 1`] = `
<div
className="text-left my-2"
>
<img
alt=""
className="h-4 sm:h-6"
src="https://komarev.com/ghpvc/?username=&label=Profile%20views&color=0e75b6&style=flat"
/>
</div>
`;
exports[`Work Preview renders correctly 1`] = `
<Fragment>
<DisplayWork
link="https://dummy.com"
prefix="🔭 Im currently working on"
project="readme-generator"
/>
<DisplayWork
prefix="🌱 Im currently learning"
project=""
/>
<DisplayWork
link=""
prefix="🤝 Im looking for help with"
project=""
/>
<DisplayWork
link=""
prefix="👯 Im looking to collaborate on"
project=""
/>
<DisplayWork
prefix="💬 Ask me about"
project=""
/>
<DisplayWork
link=""
prefix="👨‍💻 All of my projects are available at"
/>
<DisplayWork
link=""
prefix="📝 I regulary write articles on"
/>
<DisplayWork
link=""
prefix="📄 Know about my experiences"
/>
<DisplayWork
prefix="📫 How to reach me"
project=""
/>
<DisplayWork
prefix="⚡ Fun fact"
project=""
/>
</Fragment>
`;
@@ -0,0 +1,144 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Skills renders correctly 1`] = `
<div
className="px-2 sm:px-6 mb-10 "
>
<div
className="text-xl sm:text-2xl font-bold font-title mt-2 mb-4 flex justify-between"
>
Skills
<div
className="relative flex"
>
<input
className="leading:none text-xs my-0 py-1 px-2 pr-8 sm:text-xl border-2 border-gray-900 focus:border-blue-700 placeholder-gray-700"
onChange={[Function]}
placeholder="Search Skills"
type="text"
/>
<span
className="absolute"
style={
Object {
"right": "10px",
}
}
>
<SearchIcon
className="mb-1 transform scale-100 md:scale-125"
size={16}
verticalAlign="text-bottom"
/>
</span>
</div>
</div>
<div
className="divide-y divide-gray-500"
key="language"
>
<div
className="text-sm sm:text-xl text-gray-900 text-left py-1"
>
Programming Languages
</div>
<div
className="flex justify-start items-center flex-wrap w-full mb-6 pl-4 sm:pl-10"
>
<div
className="w-1/3 sm:w-1/4 my-6"
key="javascript"
>
<label
className="skillCheckboxLabel cursor-pointer flex items-center justify-start"
htmlFor="javascript"
>
<input
checked={true}
id="javascript"
onChange={[Function]}
type="checkbox"
/>
<img
alt="javascript"
className="ml-4 w-8 h-8 sm:w-10 sm:h-10"
src="javascript.svg"
/>
<span
className="tooltiptext"
>
javascript
</span>
</label>
</div>
</div>
</div>
<div
className="divide-y divide-gray-500"
key="frontend_dev"
>
<div
className="text-sm sm:text-xl text-gray-900 text-left py-1"
>
Frontend Development
</div>
<div
className="flex justify-start items-center flex-wrap w-full mb-6 pl-4 sm:pl-10"
>
<div
className="w-1/3 sm:w-1/4 my-6"
key="react"
>
<label
className="skillCheckboxLabel cursor-pointer flex items-center justify-start"
htmlFor="react"
>
<input
id="react"
onChange={[Function]}
type="checkbox"
/>
<img
alt="react"
className="ml-4 w-8 h-8 sm:w-10 sm:h-10"
src="react.svg"
/>
<span
className="tooltiptext"
>
react
</span>
</label>
</div>
<div
className="w-1/3 sm:w-1/4 my-6"
key="svelte"
>
<label
className="skillCheckboxLabel cursor-pointer flex items-center justify-start"
htmlFor="svelte"
>
<input
id="svelte"
onChange={[Function]}
type="checkbox"
/>
<img
alt="svelte"
className="ml-4 w-8 h-8 sm:w-10 sm:h-10"
src="svelte.svg"
/>
<span
className="tooltiptext"
>
svelte
</span>
</label>
</div>
</div>
</div>
<span
className="flex justify-center text-gray-900"
/>
</div>
`;
@@ -0,0 +1,383 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Social renders correctly 1`] = `
<div
className="px-2 sm:px-6 mb-4"
>
<div
className="text-xl sm:text-2xl font-bold font-title mt-2 mb-2"
>
Social
</div>
<div
className="flex flex-wrap justify-center items-center"
>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="github"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/github.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-1 sm:px-2 focus:border-blue-700"
id="github"
onChange={[Function]}
placeholder="github username"
value="github "
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="twitter"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@v3/icons/twitter.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="twitter"
onChange={[Function]}
placeholder="twitter username"
value="twitter"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="dev.to"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dev-dot-to.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="dev"
onChange={[Function]}
placeholder="dev.to username"
value="dev"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="codepen"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codepen.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="codepen"
onChange={[Function]}
placeholder="codepen username"
value="codepen"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="codesandbox"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codesandbox.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="codesandbox"
onChange={[Function]}
placeholder="codesandbox username"
value="codesandbodx"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="stackoverflow"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/stackoverflow.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="stackoverflow"
onChange={[Function]}
placeholder="stackoverflow user ID"
value="stackoverflow"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="linkedin"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/linkedin.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="linkedin"
onChange={[Function]}
placeholder="linkedin username"
value="linkedin"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="kaggle"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/kaggle.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="kaggle"
onChange={[Function]}
placeholder="kaggle username"
value="kaggle"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="facebook"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/facebook.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="fb"
onChange={[Function]}
placeholder="facebook username"
value="fb"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="instagram"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/instagram.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="instagram"
onChange={[Function]}
placeholder="instagram username"
value="instagram"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="dribbble"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/dribbble.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="dribbble"
onChange={[Function]}
placeholder="dribbble username"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="behance"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/behance.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="behance"
onChange={[Function]}
placeholder="behance username"
value="behance"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="medium"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/medium.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="medium"
onChange={[Function]}
placeholder="medium username (with @)"
value="medium"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="youtube"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/youtube.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="youtube"
onChange={[Function]}
placeholder="youtube channel name"
value="youtube"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="codechef"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/codechef.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="codechef"
onChange={[Function]}
placeholder="codechef username"
value="codechef"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="hackerrank"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/hackerrank.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="hackerrank"
onChange={[Function]}
placeholder="hackerrank username"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="codeforces"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/codeforces.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="codeforces"
onChange={[Function]}
placeholder="codeforces username"
value="codeforces"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="leetcode"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/leetcode.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="leetcode"
onChange={[Function]}
placeholder="leetcode username"
value="leetcode"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="topcoder"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/topcoder.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="topcoder"
onChange={[Function]}
placeholder="topcoder username"
value="topcoder"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="hackerearth"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/hackerearth.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="hackerearth"
onChange={[Function]}
placeholder="hackerearth user (with @)"
value="@hackerearth"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="geeksforgeeks"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/geeksforgeeks.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="geeksforgeeks"
onChange={[Function]}
placeholder="GFG (<username>/profile)"
value="geeks_for_geeks"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="discord"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/discord.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="discord"
onChange={[Function]}
placeholder="discord invite (only code)"
value="discord"
/>
</div>
<div
className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0"
>
<img
alt="rssfeed"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/rss.svg"
/>
<input
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="rssurl"
onChange={[Function]}
placeholder="RSS feed URL"
value="rssurl"
/>
</div>
</div>
</div>
`;
@@ -0,0 +1,19 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Subtitle renders correctly 1`] = `
<div
className="flex justify-center items-start flex-col w-full px-2 sm:px-6 mb-10"
>
<div
className="text-xl sm:text-2xl font-bold font-title mt-2 mb-2"
>
Subtitle
</div>
<input
className="outline-none w-full text-xs sm:text-lg sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="subtitle"
onChange={[Function]}
value="A frontend developer"
/>
</div>
`;
@@ -0,0 +1,30 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Title renders title component correctly 1`] = `
<div
className="flex justify-center items-start flex-col w-full px-2 sm:px-6 mb-10"
>
<div
className="text-xl sm:text-2xl font-bold font-title mt-2 mb-2"
>
Title
</div>
<div
className="flex justify-start items-center w-full text-regular text-xs sm:text-lg"
>
<input
className="outline-none w-24 sm:w-40 mr-10 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700 prefix"
id="title-prefix"
onChange={[Function]}
value="test_title"
/>
<input
className="outline-none placeholder-gray-700 w-1/2 sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="title-name"
onChange={[Function]}
placeholder="name"
value="test_data"
/>
</div>
</div>
`;
@@ -0,0 +1,184 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Work renders work component correctly 1`] = `
<div
className="flex justify-center items-start flex-col w-full px-2 sm:px-6 mb-10"
>
<div
className="text-xl sm:text-2xl font-bold font-title mt-2 mb-2"
>
Work
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none placeholder-gray-700 mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="currentWork-prefix"
onChange={[Function]}
placeholder="Hi, I'm "
value="test_currentwork"
/>
<input
className="outline-none placeholder-gray-700 mr-8 w-full sm:w-1/4 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="currentWork"
onChange={[Function]}
placeholder="project name"
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 text-blue-700 w-full sm:w-1/4 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="currentWork-link"
onChange={[Function]}
placeholder="project link"
value="test_currentwork"
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="collaborateOn-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 mr-8 w-full sm:w-1/4 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="collaborateOn"
onChange={[Function]}
placeholder="project name"
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 text-blue-700 w-full sm:w-1/4 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="collaborateOn-link"
onChange={[Function]}
placeholder="project link"
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none placeholder-gray-700 mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="helpWith-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 mr-8 w-full sm:w-1/4 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="helpWith"
onChange={[Function]}
placeholder="project name"
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 text-blue-700 w-full sm:w-1/4 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="helpWith-link"
onChange={[Function]}
placeholder="project link"
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="currentLearn-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="currentLearn"
onChange={[Function]}
placeholder="Frameworks, courses etc."
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="ama-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="ama"
onChange={[Function]}
placeholder="react, vue and gsap"
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="contact-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="contact"
onChange={[Function]}
placeholder="example@gmail.com"
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="portfolio-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 text-blue-700 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="portfolio"
onChange={[Function]}
placeholder="portfolio link"
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="blog-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 text-blue-700 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="blog"
onChange={[Function]}
placeholder="blog link"
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="resume-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 text-blue-700 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="resume"
onChange={[Function]}
placeholder="resume link"
/>
</div>
<div
className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0"
>
<input
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="funFact-prefix"
onChange={[Function]}
/>
<input
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
id="funFact"
onChange={[Function]}
placeholder="I think I am funny"
/>
</div>
</div>
`;
+766
View File
@@ -0,0 +1,766 @@
import React from "react"
import toJson from "enzyme-to-json"
import { shallow, mount } from "enzyme"
import Addons from "../addons"
jest.useFakeTimers();
describe("Addons", () => {
const dataInput = {
title: "",
subtitle: "A passionate frontend developer from India",
currentWork: "",
currentLearn: "",
collaborateOn: "",
helpWith: "",
ama: "",
contact: "",
funFact: "",
twitterBadge: false,
visitorsBadge: false,
badgeStyle: "flat",
badgeColor: "0e75b6",
badgeLabel: "Profile views",
githubProfileTrophy: false,
githubStats: false,
githubStatsOptions: {
theme: "",
titleColor: "",
textColor: "",
bgColor: "",
hideBorder: false,
cacheSeconds: null,
locale: "en",
},
topLanguages: false,
topLanguagesOptions: {
theme: "",
titleColor: "",
textColor: "",
bgColor: "",
hideBorder: false,
cacheSeconds: null,
locale: "en",
},
devDynamicBlogs: false,
mediumDynamicBlogs: false,
rssDynamicBlogs: false,
};
const socialInput = {
github: "",
dev: "",
linkedin: "",
codepen: "",
stackoverflow: "",
kaggle: "",
codesandbox: "",
fb: "",
instagram: "",
twitter: "",
dribbble: "",
behance: "",
medium: "",
youtube: "",
codechef: "",
hackerrank: "",
codeforces: "",
leetcode: "",
topcoder: "",
hackerearth: "",
geeks_for_geeks: "",
discord: "",
rssurl: "",
};
let mockHandleCheckChange;
let mockHandleDataChange;
beforeEach(() => {
mockHandleCheckChange = jest.fn();
mockHandleDataChange = jest.fn();
});
afterEach(() => {
jest.clearAllMocks();
});
it("renders correctly", () => {
const addOnComponent = shallow(<Addons
data={dataInput}
social={socialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
expect(toJson(addOnComponent)).toMatchSnapshot();
});
it("should render Customize Badges", () => {
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value"
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#visitors-count-open-btn").simulate("click",{});
expect(addOnComponent).toMatchSnapshot();
});
it("should handle data change when badge style is changed", () => {
const mockEvent = { target: { value: "style-new" } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
githubStatsOptions: {
theme: "theme-1",
titleColor: "title-abcd",
textColor: "some-color",
bgColor: "abcd",
hideBorder: false,
cacheSeconds: null,
locale: "en",
},
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#visitors-count-open-btn").simulate("click",{});
addOnComponent.find("#badge-style").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('badgeStyle',{target: {value: "style-new" }});
});
it("should handle data change when badge color is changed", () => {
const mockEvent = { target: { value: "new-color-abcd" } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value"
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#visitors-count-open-btn").simulate("click",{});
addOnComponent.find("#badge-color").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('badgeColor',{target: {value: "new-color-abcd" }});
});
it("should handle data change when badge-label-text is changed", () => {
const mockEvent = { target: { value: "label-abcd-random" } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value"
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#visitors-count-open-btn").simulate("click",{});
addOnComponent.find("#badge-label-text").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('badgeLabel',{target: {value: "label-abcd-random" }});
});
it("should render Customize Github stats card", () => {
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value"
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#github-stats-open-btn").simulate("click",{});
expect(addOnComponent).toMatchSnapshot();
});
it("should handle data change when stats theme is changed", () => {
const mockEvent = { target: { value: "new-theme-for-stats" } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
githubStatsOptions: {
titleColor: "title-abcd",
textColor: "some-color",
bgColor: "abcd",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#github-stats-open-btn").simulate("click",{});
addOnComponent.find("#stats-theme").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
theme: "theme-1",
titleColor: "title-abcd",
textColor: "some-color",
bgColor: "abcd",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
}
});
});
it("should handle data change when stats title color is changed", () => {
const mockEvent = { target: { value: "red-color" } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
githubStatsOptions: {
theme: "theme-1",
textColor: "some-color",
bgColor: "abcd",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#github-stats-open-btn").simulate("click",{});
addOnComponent.find("#stats-title-color").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
theme: "theme-1",
titleColor: "red-color",
textColor: "some-color",
bgColor: "abcd",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
}
});
});
it("should handle data change when stats bg color is changed", () => {
const mockEvent = { target: { value: "random-color" } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
githubStatsOptions: {
theme: "theme-1",
titleColor: "some-color",
textColor: "abcd",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#github-stats-open-btn").simulate("click",{});
addOnComponent.find("#stats-bg-color").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
theme: "theme-1",
titleColor: "some-color",
textColor: "abcd",
bgColor: "random-color",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
}
});
});
it("should handle data change when stats cache seconds is changed", () => {
const mockEvent = { target: { value: 1900 } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
githubStatsOptions: {
theme: "theme-1",
titleColor: "some-color",
textColor: "abcd",
bgColor: "random-color",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#github-stats-open-btn").simulate("click",{});
addOnComponent.find("#stats-cache-seconds").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
theme: "theme-1",
titleColor: "some-color",
textColor: "abcd",
bgColor: "random-color",
hideBorder: false,
cacheSeconds: 1900,
theme: "new-theme-for-stats",
locale: "en",
}
}
});
});
it("should handle data change when stats text color is changed", () => {
const mockEvent = { target: { value: "black-color" } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
githubStatsOptions: {
theme: "theme-1",
titleColor: "some-color",
bgColor: "abcd",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#github-stats-open-btn").simulate("click",{});
addOnComponent.find("#stats-text-color").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
theme: "theme-1",
titleColor: "some-color",
textColor: "black-color",
bgColor: "abcd",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
}
});
});
it("should handle data change when stats local is changed", () => {
const mockEvent = { target: { value: 'uk' } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
githubStatsOptions: {
theme: "theme-1",
titleColor: "some-color",
textColor: "abcd",
bgColor: "random-color",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#github-stats-open-btn").simulate("click", {});
addOnComponent.find("#stats-locale").simulate("change", mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
theme: "theme-1",
titleColor: "some-color",
textColor: "abcd",
bgColor: "random-color",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "uk",
}
}
});
});
it("should handle data change when stats local is changed", () => {
const mockEvent = { target: { checked: true } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
githubStatsOptions: {
theme: "theme-1",
titleColor: "some-color",
textColor: "abcd",
bgColor: "random-color",
hideBorder: false,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#github-stats-open-btn").simulate("click",{});
addOnComponent.find("#stats-hide-border").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
theme: "theme-1",
titleColor: "some-color",
textColor: "abcd",
bgColor: "random-color",
hideBorder: true,
cacheSeconds: null,
theme: "new-theme-for-stats",
locale: "en",
}
}
});
})
it("should render Customize Top Skills Card", () => {
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value"
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#top-languages-open-btn").simulate("click",{});
expect(addOnComponent).toMatchSnapshot();
});
it("should handle data change when top skills theme is changed", () => {
const mockEvent = { target: { value: "theme-xyz" } }
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value",
topLanguagesOptions : {
theme: "theme-2",
titleColor: "title-abcd-new",
textColor: "random-some-color",
bgColor: "1234",
hideBorder: false,
cacheSeconds: null,
theme: "theme-xyz",
locale: "us",
}
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = mount(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#top-languages-open-btn").simulate("click",{});
addOnComponent.find("#top-lang-theme").simulate("change",mockEvent);
jest.runAllTimers();
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('topLanguagesOptions', {
target: {
value: {
theme: "theme-2",
titleColor: "title-abcd-new",
textColor: "random-some-color",
bgColor: "1234",
hideBorder: false,
cacheSeconds: null,
theme: "theme-xyz",
locale: "us",
}
}
});
});
it("should handle check change when add on item inputs are changed", () => {
const mockEvent = { target: { value: "This is a mock event" } }
const addOnComponent = mount(<Addons
data={dataInput}
social={socialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#visitors-count").simulate("change", mockEvent);
addOnComponent.find("#github-profile-trophy").simulate("change", mockEvent);
addOnComponent.find("#github-stats").simulate("change", mockEvent);
addOnComponent.find("#top-languages").simulate("change", mockEvent);
addOnComponent.find("#twitter-badge").simulate("change", mockEvent);
addOnComponent.find("#dev-dynamic-blogs").simulate("change", mockEvent);
addOnComponent.find("#rss-dynamic-blogs").simulate("change", mockEvent);
addOnComponent.find("#medium-dynamic-blogs").simulate("change", mockEvent);
expect(mockHandleCheckChange).toHaveBeenCalledTimes(8);
expect(mockHandleCheckChange).toHaveBeenNthCalledWith(1,"visitorsBadge");
expect(mockHandleCheckChange).toHaveBeenNthCalledWith(2,"githubProfileTrophy");
expect(mockHandleCheckChange).toHaveBeenNthCalledWith(3,"githubStats");
expect(mockHandleCheckChange).toHaveBeenNthCalledWith(4,"topLanguages");
expect(mockHandleCheckChange).toHaveBeenNthCalledWith(5,"twitterBadge");
expect(mockHandleCheckChange).toHaveBeenNthCalledWith(6,"devDynamicBlogs");
expect(mockHandleCheckChange).toHaveBeenNthCalledWith(7,"rssDynamicBlogs");
expect(mockHandleCheckChange).toHaveBeenNthCalledWith(8,"mediumDynamicBlogs");
});
it("should display workflow details if devDynamicBlogs and dev social data are available", () => {
const newDataInput = {
...dataInput,
devDynamicBlogs: "some-value"
};
const newSocialInput = {
dev: "some-value-123",
};
const addOnComponent = shallow(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
const workflowElement = addOnComponent.find(".workflow");
expect(workflowElement).toMatchSnapshot();
});
it("should display workflow details if rssDynamicBlogs and rss url data are available", () => {
const newDataInput = {
...dataInput,
rssDynamicBlogs: "some-rss-value"
};
const newSocialInput = {
rssurl: "url-random",
};
const addOnComponent = shallow(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
const workflowElement = addOnComponent.find(".workflow");
expect(workflowElement).toMatchSnapshot();
});
it("should display workflow details if mediumDynamicBlogs, medium social data are available", () => {
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value"
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = shallow(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
const workflowElement = addOnComponent.find(".workflow");
expect(workflowElement).toMatchSnapshot();
});
it("should call document create element when blog post workflow is clicked", () => {
let someElement = document.createElement("abcd");
document.createElement = jest.fn().mockReturnValueOnce(someElement);
const newDataInput = {
...dataInput,
mediumDynamicBlogs: "some-medium-blogs-value"
};
const newSocialInput = {
medium: "@abcd",
};
const addOnComponent = shallow(<Addons
data={newDataInput}
social={newSocialInput}
handleCheckChange={mockHandleCheckChange}
handleDataChange={mockHandleDataChange}
/>);
addOnComponent.find("#blog-post-worklow-span").simulate("click", {});
expect(document.createElement).toHaveBeenCalledTimes(1);
});
});
+12
View File
@@ -0,0 +1,12 @@
import React from "react"
import toJson from "enzyme-to-json"
import { shallow } from "enzyme"
import Donate from "../donate"
describe("Donate", () => {
it("renders correctly", () => {
const component = shallow(<Donate />)
expect(toJson(component)).toMatchSnapshot()
})
})
+13
View File
@@ -0,0 +1,13 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Footer from "../footer"
describe("Footer component", () => {
const component = shallow(<Footer />)
it("renders correctly", () => {
expect(toJson(component)).toMatchSnapshot()
})
})
+13
View File
@@ -0,0 +1,13 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Header from "../header"
describe("Header", () => {
const component = shallow(<Header heading="heading" />)
it("renders correctly", () => {
expect(toJson(component)).toMatchSnapshot()
})
})
+13
View File
@@ -0,0 +1,13 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Loader from "../loader"
describe("Loader", () => {
const component = shallow(<Loader />)
it("renders correctly", () => {
expect(toJson(component)).toMatchSnapshot()
})
})
+215
View File
@@ -0,0 +1,215 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Markdown from "../markdown"
describe("Markdown", () => {
const props = {
data: {
ama: '',
badgeColor: '0e75b6',
badgeLabel: 'Profile views',
badgeStyle: 'flat',
collaborateOn: '',
contact: '',
currentLearn: '',
currentWork: 'currentWork',
devDynamicBlogs: false,
funFact: '',
githubProfileTrophy: false,
githubStats: false,
githubStatsOptions: {
bgColor: '',
cacheSeconds: null,
hideBorder: false,
locale: 'en',
textColor: '',
theme: '',
titleColor: '',
},
helpWith: '',
mediumDynamicBlogs: false,
rssDynamicBlogs: false,
subtitle: 'A passionate frontend developer from India',
title: 'title',
topLanguages: false,
topLanguagesOptions: {
bgColor: '',
cacheSeconds: null,
hideBorder: false,
locale: 'en',
textColor: '',
theme: '',
titleColor: '',
},
twitterBadge: false,
visitorsBadge: false,
},
link: {
blog: 'blog',
collaborateOn: 'collaborateOn',
currentWork: 'currentWork',
helpWith: 'helpWith',
portfolio: 'portfolio',
resume: 'resume',
},
prefix: {
ama: '💬 Ask me about',
blog: '📝 I regulary write articles on',
collaborateOn: '👯 Im looking to collaborate on',
contact: '📫 How to reach me',
currentLearn: '🌱 Im currently learning',
currentWork: '🔭 Im currently working on',
funFact: '⚡ Fun fact',
helpWith: '🤝 Im looking for help with',
portfolio: '👨‍💻 All of my projects are available at',
resume: '📄 Know about my experiences',
title: "Hi 👋, I'm",
},
skills: {
javascript: true,
express: false,
},
social: {
dev: 'dev',
codechef: '',
},
};
it("renders without subtitle", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
subtitle: '',
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders without prefix.title and data.title", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
title: '',
}}
prefix={{
...props.prefix,
title: '',
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders topLanguages is true", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
topLanguages: true,
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders topLanguages is true and githubStats is true", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
topLanguages: true,
githubStats: true,
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders devDynamicBlogs is true", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
devDynamicBlogs: true,
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders without link.currentWork", () => {
const component = shallow(
<Markdown
{...props}
link={{
...props.data,
currentWork: '',
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders visitorsBadge is true", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
visitorsBadge: true,
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders twitterBadge is true", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
twitterBadge: true,
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders githubProfileTrophy is true", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
githubProfileTrophy: true,
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
it("renders githubProfileTrophy is true", () => {
const component = shallow(
<Markdown
{...props}
data={{
...props.data,
githubProfileTrophy: true,
}}
/>
)
expect(toJson(component)).toMatchSnapshot()
})
})
@@ -0,0 +1,415 @@
import React from "react";
import { shallow, configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import MarkdownPreview, { GithubProfileTrophyPreview, GitHubStatsPreview, SkillsPreview, SocialPreview, SubTitlePreview, TitlePreview, TopLanguagesPreview, TwitterBadgePreview, VisitorsBadgePreview, WorkPreview, SectionTitle, DisplayWork, DisplaySocial } from "../markdownPreview"
configure({ adapter: new Adapter() });
const DEFAULT_PREFIX = {
title: "Hi 👋, I'm",
currentWork: "🔭 Im currently working on",
currentLearn: "🌱 Im currently learning",
collaborateOn: "👯 Im looking to collaborate on",
helpWith: "🤝 Im looking for help with",
ama: "💬 Ask me about",
contact: "📫 How to reach me",
resume: "📄 Know about my experiences",
funFact: "⚡ Fun fact",
portfolio: "👨‍💻 All of my projects are available at",
blog: "📝 I regulary write articles on",
}
const DEFAULT_DATA = {
title: "dummy",
subtitle: "A passionate frontend developer from India",
currentWork: "readme-generator",
currentLearn: "",
collaborateOn: "",
helpWith: "",
ama: "",
contact: "",
funFact: "",
twitterBadge: false,
visitorsBadge: false,
badgeStyle: "flat",
badgeColor: "0e75b6",
badgeLabel: "Profile views",
githubProfileTrophy: false,
githubStats: false,
githubStatsOptions: {
theme: "",
titleColor: "",
textColor: "",
bgColor: "",
hideBorder: false,
cacheSeconds: null,
locale: "en",
},
topLanguages: false,
topLanguagesOptions: {
theme: "",
titleColor: "",
textColor: "",
bgColor: "",
hideBorder: false,
cacheSeconds: null,
locale: "en",
},
devDynamicBlogs: false,
mediumDynamicBlogs: false,
rssDynamicBlogs: false,
}
const DEFAULT_LINK = {
currentWork: "https://dummy.com",
collaborateOn: "",
helpWith: "",
portfolio: "",
blog: "",
resume: "",
}
const DEFAULT_SOCIAL = {
github: "",
dev: "",
linkedin: "",
codepen: "dummy",
stackoverflow: "",
kaggle: "",
codesandbox: "",
fb: "",
instagram: "",
twitter: "",
dribbble: "",
behance: "",
medium: "",
youtube: "",
codechef: "",
hackerrank: "",
codeforces: "",
leetcode: "",
topcoder: "",
hackerearth: "",
geeks_for_geeks: "",
discord: "",
rssurl: "",
}
const DUMMY_SKILLS = {
skills: {
unity: true,
android: false,
angularjs: false,
apachecordova: false,
}
}
describe("Markdown Preview", () => {
it("renders correctly", () => {
let prefix = DEFAULT_PREFIX;
let data = DEFAULT_DATA;
let link = DEFAULT_LINK;
let social = DEFAULT_SOCIAL;
let skills = {}
const tree = shallow(<MarkdownPreview
prefix={prefix}
data={data}
link={link}
social={social}
skills={skills} />)
expect(tree).toMatchSnapshot()
})
})
describe("Title Preview", () => {
it("renders correctly", () => {
let prefix = DEFAULT_PREFIX;
let data = DEFAULT_DATA;
const tree = shallow(<TitlePreview prefix={prefix.title} title={data.title} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no prefix", () => {
let prefix = DEFAULT_PREFIX;
const tree = shallow(<TitlePreview prefix={prefix.title} title={""} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no title", () => {
let data = DEFAULT_DATA;
const tree = shallow(<TitlePreview title={data.title} prefix={""} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no title and prefix", () => {
const tree = shallow(<TitlePreview />)
expect(tree).toMatchSnapshot()
})
})
describe("SubTitle Preview", () => {
it("renders correctly", () => {
let data = DEFAULT_DATA;
const tree = shallow(<SubTitlePreview subtitle={data.subtitle} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no subtitle", () => {
const tree = shallow(<SubTitlePreview subtitle={""} />)
expect(tree).toMatchSnapshot()
})
})
describe("SectionTitle Preview", () => {
it("renders correctly", () => {
const tree = shallow(<SectionTitle visible={true} label={"dummy"} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no label", () => {
const tree = shallow(<SectionTitle visible={true} label={""} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with visible false", () => {
const tree = shallow(<SectionTitle visible={false} label={"dummy"} />)
expect(tree).toMatchSnapshot()
})
})
describe("DisplayWork Preview", () => {
it("renders correctly", () => {
let prefix = DEFAULT_PREFIX;
let data = DEFAULT_DATA;
let link = DEFAULT_LINK;
const tree = shallow(<DisplayWork prefix={prefix} project={data.currentWork} link={link.currentWork} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no prefix, link and project", () => {
const tree = shallow(<DisplayWork prefix={undefined} project={undefined} link={undefined} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no prefix", () => {
let data = DEFAULT_DATA;
let link = DEFAULT_LINK;
const tree = shallow(<DisplayWork prefix={undefined} project={data.currentWork} link={link.currentWork} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no project", () => {
let prefix = DEFAULT_PREFIX;
let link = DEFAULT_LINK;
const tree = shallow(<DisplayWork prefix={prefix} project={undefined} link={link.currentWork} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no link", () => {
let prefix = DEFAULT_PREFIX;
let data = DEFAULT_DATA;
const tree = shallow(<DisplayWork prefix={prefix} project={data.currentWork} link={undefined}/>)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no prefix and link", () => {
let data = DEFAULT_DATA;
const tree = shallow(<DisplayWork project={data.currentWork} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no project and link", () => {
let prefix = DEFAULT_PREFIX;
const tree = shallow(<DisplayWork prefix={prefix} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no project and prefix", () => {
let link = DEFAULT_LINK;
const tree = shallow(<DisplayWork link={link.currentWork} />)
expect(tree).toMatchSnapshot()
})
})
describe("DisplaySocial Preview", () => {
it("renders correctly", () => {
let social = DEFAULT_SOCIAL;
const tree = shallow(<DisplaySocial
base="https://codepen.io"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codepen.svg"
username={social.codepen}
/>
)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no username", () => {
const tree = shallow(<DisplaySocial
base="https://codepen.io"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codepen.svg"
username={""}
/>
)
expect(tree).toMatchSnapshot()
})
})
describe("VisitorsBadge Preview", () => {
it("renders correctly", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<VisitorsBadgePreview
show={data.visitorsBadge}
github={social.github}
badgeOptions={{
badgeLabel: encodeURI(data.badgeLabel),
badgeColor: data.badgeColor,
badgeStyle: data.badgeStyle,
}}
/>
)
expect(tree).toMatchSnapshot()
})
it("renders correctly with show true", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<VisitorsBadgePreview
show={true}
github={social.github}
badgeOptions={{
badgeLabel: encodeURI(data.badgeLabel),
badgeColor: data.badgeColor,
badgeStyle: data.badgeStyle,
}}
/>
)
expect(tree).toMatchSnapshot()
})
})
describe("GithubProfileTrophy Preview", () => {
it("renders correctly", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<GithubProfileTrophyPreview
show={data.githubProfileTrophy}
github={social.github}
/>)
expect(tree).toMatchSnapshot()
})
it("renders correctly with show true", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<GithubProfileTrophyPreview
show={true}
github={social.github}
/>)
expect(tree).toMatchSnapshot()
})
})
describe("TwitterBadgePreview Preview", () => {
it("renders correctly", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<TwitterBadgePreview
show={data.twitterBadge}
twitter={social.twitter}
/>)
expect(tree).toMatchSnapshot()
})
it("renders correctly with show true", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<TwitterBadgePreview
show={true}
twitter={social.twitter}
/>)
expect(tree).toMatchSnapshot()
})
})
describe("Work Preview", () => {
it("renders correctly", () => {
let data = DEFAULT_DATA;
let prefix = DEFAULT_PREFIX;
let link = DEFAULT_LINK;
let props = { data: data, prefix: prefix, link: link }
const tree = shallow(<WorkPreview work={props} />)
expect(tree).toMatchSnapshot()
})
})
describe("Social Preview", () => {
it("renders correctly", () => {
let social = DEFAULT_SOCIAL;
const tree = shallow(<SocialPreview social={social} />)
expect(tree).toMatchSnapshot()
})
})
describe("Skills Preview", () => {
it("renders correctly", () => {
let skills = DUMMY_SKILLS.skills
const tree = shallow(<SkillsPreview skills={skills} />)
expect(tree).toMatchSnapshot()
})
it("renders correctly with no skills", () => {
let skills = {}
const tree = shallow(<SkillsPreview skills={skills} />)
expect(tree).toMatchSnapshot()
})
})
describe("TopLanguages Preview", () => {
it("renders correctly", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<TopLanguagesPreview
show={data.topLanguages}
github={social.github}
options={data.topLanguagesOptions}
/>)
expect(tree).toMatchSnapshot()
})
it("renders correctly with show true", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<TopLanguagesPreview
show={true}
github={social.github}
options={data.topLanguagesOptions}
/>)
expect(tree).toMatchSnapshot()
})
})
describe("GitHubStats Preview", () => {
it("renders correctly", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<GitHubStatsPreview
show={data.githubStats}
github={social.github}
options={data.githubStatsOptions}
/>)
expect(tree).toMatchSnapshot()
})
it("renders correctly", () => {
let data = DEFAULT_DATA;
let social = DEFAULT_SOCIAL;
const tree = shallow(<GitHubStatsPreview
show={true}
github={social.github}
options={data.githubStatsOptions}
/>)
expect(tree).toMatchSnapshot()
})
})
+42
View File
@@ -0,0 +1,42 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Skills from "../skills"
jest.mock("../../constants/skills", () => ({
__esModule: true,
categorizedSkills: {
language: {
title: "Programming Languages",
skills: ["javascript"],
},
frontend_dev: {
title: "Frontend Development",
skills: ["react", "svelte"],
},
},
icons: {
javascript: "javascript.svg",
react: "react.svg",
svelte: "svelte.svg",
},
}))
describe("Skills", () => {
it("renders correctly", () => {
const component = shallow(<Skills skills={{ javascript: true }} />)
expect(toJson(component)).toMatchSnapshot()
})
it("calls handleSkillsChange prop when a skill is clicked", () => {
const mockFn = jest.fn()
const component = shallow(
<Skills skills={{ javascript: true }} handleSkillsChange={mockFn} />
)
component.find("#javascript").simulate("change")
expect(mockFn).toHaveBeenCalledTimes(1)
})
})
+44
View File
@@ -0,0 +1,44 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Social from "../social"
describe("Social", () => {
const mockEvent = { target: { value: "This is a mock event" } }
const props = {
social: {
github: "github ",
twitter: "twitter",
dev: "dev",
codepen: "codepen",
codesandbox: "codesandbodx",
stackoverflow: "stackoverflow",
linkedin: "linkedin",
kaggle: "kaggle",
fb: "fb",
instagram: "instagram",
dribble: "dribble",
behance: "behance",
medium: "medium",
youtube: "youtube",
codechef: "codechef",
hackerrack: "hackerranck",
codeforces: "codeforces",
leetcode: "leetcode",
topcoder: "topcoder",
hackerearth: "@hackerearth",
geeks_for_geeks: "geeks_for_geeks",
discord: "discord",
rssurl: "rssurl",
},
handleSocialChange: jest.fn().mockReturnValue({}),
}
it("renders correctly", () => {
const component = shallow(<Social {...props} />)
for (let i = 0; i < component.find("input").length; i++) {
component.find("input").at(i).simulate("change", mockEvent)
}
expect(toJson(component)).toMatchSnapshot()
})
})
+26
View File
@@ -0,0 +1,26 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Subtitle from "../subtitle"
describe("Subtitle", () => {
const mockEvent = { target: { value: "This is a mock event" } }
const props = {
data: {
subtitle: "A frontend developer",
},
handleDataChange: jest.fn().mockReturnValue({}),
}
const component = shallow(<Subtitle {...props} />)
it("renders correctly", () => {
expect(toJson(component)).toMatchSnapshot()
})
it("calls onChange", () => {
component.find("input").at(0).simulate("change", mockEvent)
expect(props.handleDataChange).toBeCalledWith("subtitle", mockEvent)
})
})
+27
View File
@@ -0,0 +1,27 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Title from "../title"
describe("Title", () => {
const mockEvent = { target: { value: "This is a mock event" } }
const props = {
prefix: {
title: "test_title",
currentWork: "test_currentwork",
},
data: { title: "test_data" },
link: { currentWork: "test_currentwork" },
handlePrefixChange: jest.fn().mockReturnValue({}),
handleLinkChange: jest.fn().mockReturnValue({}),
handleDataChange: jest.fn().mockReturnValue({}),
}
it("renders title component correctly", () => {
const component = shallow(<Title {...props} />)
component.find("input").at(0).simulate("change", mockEvent)
component.find("input").at(1).simulate("change", mockEvent)
expect(toJson(component)).toMatchSnapshot()
})
})
+28
View File
@@ -0,0 +1,28 @@
import React from "react"
import { shallow } from "enzyme"
import toJson from "enzyme-to-json"
import Work from "../work"
describe("Work", () => {
const mockEvent = { target: { value: "This is a mock event" } }
const props = {
prefix: {
title: "test_title",
currentWork: "test_currentwork",
},
data: { title: "test_data" },
link: { currentWork: "test_currentwork" },
handlePrefixChange: jest.fn().mockReturnValue({}),
handleLinkChange: jest.fn().mockReturnValue({}),
handleDataChange: jest.fn().mockReturnValue({}),
}
it("renders work component correctly", () => {
const component = shallow(<Work {...props} />)
for (let i = 0; i < component.find("input").length; i++) {
component.find("input").at(i).simulate("change", mockEvent)
}
expect(toJson(component)).toMatchSnapshot()
})
})
+373 -65
View File
@@ -1,9 +1,254 @@
import React from "react"
import React, { useState, useEffect } from "react"
import { withPrefix } from "gatsby"
import { latestBlogs } from "../utils/workflows"
import links from "../constants/page-links"
import { isMediumUsernameValid } from "../utils/validation"
import { isMediumUsernameValid, isGitHubUsernameValid } from "../utils/validation"
import { ToolsIcon, XCircleIcon } from "@primer/octicons-react";
const AddonsItem = ({ inputId, inputChecked, onInputChange, Options, onIconClick, ...props }) => {
const [open, setOpen] = useState(false);
const Icon = open ? XCircleIcon : ToolsIcon;
return (
<>
<div className="py-2 flex justify-start items-center text-sm sm:text-lg">
<label htmlFor={inputId} className="cursor-pointer flex items-center">
<input
type="checkbox"
id={inputId}
checked={inputChecked}
onChange={onInputChange}
/>
<span className="pl-4">{props.children}</span>
</label>
{Options && (
<button
id={`${inputId}-open-btn`}
onClick={() => setOpen(!open)}
className="flex ml-3 focus:bg-gray-400"
style={{ outline: "none" }}
>
<Icon className="transform scale-100 md:scale-125" />
</button>
)}
</div>
{Options && open && Options}
</>
);
};
const CustomizeOptions = ({ title, CustomizationOptions }) => (
<div
className={`border-2 border-solid border-gray-900 bg-gray-100 p-2 ml-8`}
style={{ maxWidth: "21rem" }}
>
<header className="text-base sm:text-lg">{title}</header>
<hr className="border-gray-500" />
<div className="text-sm sm:text-lg flex flex-col mt-2 ml-0 md:ml-4">
{CustomizationOptions}
</div>
</div>
);
const CustomizeBadge = ({githubName, badgeOptions, onBadgeUpdate}) => {
return (
<>
<label htmlFor="badge-style">Style:&nbsp;
<select
id="badge-style"
onChange={(e) => onBadgeUpdate('badgeStyle', e.target.value)}
value = {badgeOptions.badgeStyle}
>
<option value="flat">Flat</option>
<option value="flat-square">Flat Square</option>
<option value="plastic">Plastic</option>
</select>
</label>
<label htmlFor="badge-color">Color:&nbsp;
<input
type="color"
id="badge-color"
defaultValue={`#${badgeOptions.badgeColor}`}
className="w-6"
onChange={(e) => onBadgeUpdate('badgeColor', e.target.value.replace('#', ''))}
/>
</label>
<label htmlFor="badge-label-text">Label Text:&nbsp;
<input
type="text"
id="badge-label-text"
placeholder="Profile views"
className="w-2/4 bg-gray-300 pl-2"
onChange={(e) => onBadgeUpdate('badgeLabel', e.target.value.trim())}
defaultValue={badgeOptions.badgeLabel}
/>
</label>
<span className="mt-2 flex items-center">
Preview:&nbsp;
{
isGitHubUsernameValid(githubName)?
<img
src={`https://komarev.com/ghpvc/`
+ `?username=${githubName}`
+ `&label=${encodeURI(badgeOptions.badgeLabel)}`
+ `&color=${badgeOptions.badgeColor}`
+ `&style=${badgeOptions.badgeStyle}`
}
/>
: <span className="text-xxs md:text-sm text-red-600">Invalid GitHub username</span>
}
</span>
</>
)
}
const CustomizeGithubStatsBase = ({ prefix, options, onUpdate }) =>
<>
<label htmlFor={`${prefix}-theme`}>Theme:&nbsp;
<select
id={`${prefix}-theme`}
onChange={({target: { value }}) => onUpdate("theme", value)}
defaultValue={options.theme}
>
<option value="none">none</option>
<option value="dark">Dark</option>
<option value="radical">Radical</option>
<option value="merko">Merko</option>
<option value="gruvbox">Gruvbox</option>
<option value="tokyonight">Tokyonight</option>
<option value="onedark">Onedark</option>
<option value="cobalt">Cobalt</option>
<option value="synthwave">Synthwave</option>
<option value="highcontrast">Highcontrast</option>
<option value="dracula">Dracula</option>
</select>
</label>
<label htmlFor={`${prefix}-title-color`}>Title Color:&nbsp;
<input
type="color"
id={`${prefix}-title-color`}
defaultValue={`#${options.titleColor}`}
className="w-6"
onChange={(e) => onUpdate('titleColor', e.target.value.replace('#', ''))}
/>
</label>
<label htmlFor={`${prefix}-text-color`}>Text Color:&nbsp;
<input
type="color"
id={`${prefix}-text-color`}
defaultValue={`#${options.textColor}`}
className="w-6"
onChange={(e) => onUpdate('textColor', e.target.value.replace('#', ''))}
/>
</label>
<label htmlFor={`${prefix}-bg-color`}>Background Color:&nbsp;
<input
type="color"
id={`${prefix}-bg-color`}
defaultValue={`#${options.bgColor}`}
className="w-6"
onChange={(e) => onUpdate('bgColor', e.target.value.replace('#', ''))}
/>
</label>
<label htmlFor={`${prefix}-hide-border`}>Hide border:&nbsp;
<input
id={`${prefix}-hide-border`}
type="checkbox"
checked={options.hideBorder}
onChange={(e) => onUpdate('hideBorder', e.target.checked)}
/>
</label>
<label htmlFor={`${prefix}-cache-seconds`}>Cache Seconds:&nbsp;
<input
id={`${prefix}-cache-seconds`}
type="number"
min={1800}
max={86400}
placeholder={1800}
defaultValue={options.cacheSeconds}
onChange={(e) => onUpdate('cacheSeconds', e.target.value)}
/>
</label>
<label htmlFor={`${prefix}-locale`}>Locale:&nbsp;
<input
id={`${prefix}-locale`}
type="text"
placeholder="en"
defaultValue={options.locale}
onChange={(e) => onUpdate('locale', e.target.value)}
size="2"
/>
</label>
</>
const CustomizeStreakStats = ({ prefix, options, onUpdate }) => (
<>
<label htmlFor={`${prefix}-theme`}>
Theme:&nbsp;
<select
id={`${prefix}-theme`}
onChange={({ target: { value } }) => onUpdate("theme", value)}
defaultValue={options.theme}
>
<option value="default">default</option>
<option value="dark">dark</option>
<option value="highcontrast">highcontrast</option>
</select>
</label>
</>
)
const Addons = props => {
const [debounce, setDebounce] = useState(undefined);
const [badgeOptions, setBadgeOptions] = useState({
badgeStyle: props.data.badgeStyle,
badgeColor: props.data.badgeColor,
badgeLabel: props.data.badgeLabel
});
useEffect(() => {
setBadgeOptions({
badgeStyle: props.data.badgeStyle,
badgeColor: props.data.badgeColor,
badgeLabel: props.data.badgeLabel
})
}, [props.data.badgeStyle, props.data.badgeColor, props.data.badgeLabel])
const [githubStatsOptions, setGithubStatsOptions] = useState({
...props.data.githubStatsOptions,
});
useEffect(() => {
setGithubStatsOptions({
...props.data.githubStatsOptions
})
}, [props.data.githubStatsOptions])
const [topLanguagesOptions, setTopLanguagesOptions] = useState({
...props.data.topLanguagesOptions,
});
useEffect(() => {
setTopLanguagesOptions({
...props.data.topLanguagesOptions
})
}, [props.data.topLanguagesOptions])
const [streakStatsOptions, setStreakStatsOptions] = useState({
...props.data.streakStatsOptions,
});
useEffect(() => {
setStreakStatsOptions({
...props.data.streakStatsOptions
})
}, [props.data.streakStatsOptions])
const blogPostPorkflow = () => {
let payload = {
dev: {
@@ -31,78 +276,139 @@ const Addons = props => {
tempElement.click()
document.body.removeChild(tempElement)
}
const onBadgeUpdate = (option, value) => {
const callback = () => {
let newVal = (option==='badgeLabel' && value==='')?'Profile views':value;
setBadgeOptions({...badgeOptions, [option]: newVal});
props.handleDataChange(option, {target: {value: newVal}})
}
clearTimeout(debounce);
setDebounce(setTimeout(callback, 300));
}
const onStatsUpdate = (option, value) => {
const newStatsOptions = {...githubStatsOptions, [option]: value}
setGithubStatsOptions(newStatsOptions)
props.handleDataChange("githubStatsOptions", {target: {value: newStatsOptions}})
}
const onTopLangUpdate = (option, value) => {
const newLangOptions = {...topLanguagesOptions, [option]: value}
setTopLanguagesOptions(newLangOptions)
props.handleDataChange("topLanguagesOptions", {target: {value: newLangOptions}})
}
const onStreakStatsUpdate = (option, value) => {
const newStreakStatsOptions = {...streakStatsOptions, [option]: value}
setStreakStatsOptions(newStreakStatsOptions)
props.handleDataChange("streakStatsOptions", {target: {value: newStreakStatsOptions}})
}
return (
<div className="flex justify-center items-start flex-col w-full px-2 sm:px-6 mb-10">
<div className="text-xl sm:text-2xl font-bold font-title mt-2 mb-2">
Add-ons
</div>
<div className="py-2 flex justify-start items-center text-sm sm:text-lg">
<label htmlFor="visitors-count" className="cursor-pointer">
<input
type="checkbox"
id="visitors-count"
checked={props.data.visitorsBadge}
onChange={event => props.handleCheckChange("visitorsBadge")}
<AddonsItem
inputId="visitors-count"
inputChecked={props.data.visitorsBadge}
onInputChange={() => props.handleCheckChange("visitorsBadge")}
Options={
<CustomizeOptions
title="Customize Badge"
CustomizationOptions={
<CustomizeBadge
githubName={props.social.github}
badgeOptions={badgeOptions}
onBadgeUpdate={onBadgeUpdate}
/>
}
/>
&nbsp; display visitors count badge
</label>
</div>
<div className="py-2 flex justify-start items-center text-sm sm:text-lg">
<label htmlFor="github-stats" className="cursor-pointer">
<input
id="github-stats"
type="checkbox"
checked={props.data.githubStats}
onChange={event => props.handleCheckChange("githubStats")}
}
>
display visitors count badge
</AddonsItem>
<AddonsItem
inputId="github-profile-trophy"
inputChecked={props.data.githubProfileTrophy}
onInputChange={() => props.handleCheckChange("githubProfileTrophy")}
>
display github trophy
</AddonsItem>
<AddonsItem
inputId="github-stats"
inputChecked={props.data.githubStats}
onInputChange={() => props.handleCheckChange("githubStats")}
Options={
<CustomizeOptions
title="Customize Github Stats Card"
CustomizationOptions={
<CustomizeGithubStatsBase prefix="stats" options={githubStatsOptions} onUpdate={onStatsUpdate}/>
}
/>
&nbsp; display github profile stats card
</label>
</div>
<div className="py-2 flex justify-start items-center text-sm sm:text-lg">
<label htmlFor="top-languages" className="cursor-pointer">
<input
id="top-languages"
type="checkbox"
checked={props.data.topLanguages}
onChange={event => props.handleCheckChange("topLanguages")}
}
>
display github profile stats card
</AddonsItem>
<AddonsItem
inputId="top-languages"
inputChecked={props.data.topLanguages}
onInputChange={() => props.handleCheckChange("topLanguages")}
Options={
<CustomizeOptions
title="Customize Top Skills Card"
CustomizationOptions={
<CustomizeGithubStatsBase prefix="top-lang" options={topLanguagesOptions} onUpdate={onTopLangUpdate}/>
}
/>
&nbsp; display top skills
</label>
</div>
<div className="py-2 flex justify-start items-center text-sm sm:text-lg">
<label htmlFor="dev-dynamic-blogs" className="cursor-pointer">
<input
id="dev-dynamic-blogs"
type="checkbox"
checked={props.data.devDynamicBlogs}
onChange={event => props.handleCheckChange("devDynamicBlogs")}
}
>
display top skills
</AddonsItem>
<AddonsItem
inputId="streak-stats"
inputChecked={props.data.streakStats}
onInputChange={() => props.handleCheckChange("streakStats")}
Options={
<CustomizeOptions
title="Customize Streak Stats Card"
CustomizationOptions={
<CustomizeStreakStats prefix="streak-stats" options={streakStatsOptions} onUpdate={onStreakStatsUpdate}/>
}
/>
&nbsp; display latest dev.to blogs dynamically (GitHub Action)
</label>
</div>
<div className="py-2 flex justify-start items-center text-sm sm:text-lg">
<label htmlFor="medium-dynamic-blogs" className="cursor-pointer">
<input
id="medium-dynamic-blogs"
type="checkbox"
checked={props.data.mediumDynamicBlogs}
onChange={event => props.handleCheckChange("mediumDynamicBlogs")}
/>
&nbsp; display latest medium blogs dynamically (GitHub Action)
</label>
</div>
<div className="py-2 flex justify-start items-center text-sm sm:text-lg">
<label htmlFor="rss-dynamic-blogs" className="cursor-pointer">
<input
id="rss-dynamic-blogs"
type="checkbox"
checked={props.data.rssDynamicBlogs}
onChange={event => props.handleCheckChange("rssDynamicBlogs")}
/>
&nbsp; display latest blogs from your personal blog dynamically
(GitHub Action)
</label>
</div>
}
>
display github streak stats
</AddonsItem>
<AddonsItem
inputId="twitter-badge"
inputChecked={props.data.twitterBadge}
onInputChange={() => props.handleCheckChange("twitterBadge")}
>
display twitter badge
</AddonsItem>
<AddonsItem
inputId="dev-dynamic-blogs"
inputChecked={props.data.devDynamicBlogs}
onInputChange={() => props.handleCheckChange("devDynamicBlogs")}
>
display latest dev.to blogs dynamically (GitHub Action)
</AddonsItem>
<AddonsItem
inputId="medium-dynamic-blogs"
inputChecked={props.data.mediumDynamicBlogs}
onInputChange={() => props.handleCheckChange("mediumDynamicBlogs")}
>
display latest medium blogs dynamically (GitHub Action)
</AddonsItem>
<AddonsItem
inputId="rss-dynamic-blogs"
inputChecked={props.data.rssDynamicBlogs}
onInputChange={() => props.handleCheckChange("rssDynamicBlogs")}
>
display latest blogs from your personal blog dynamically (GitHub Action)
</AddonsItem>
{(props.data.devDynamicBlogs && props.social.dev) ||
(props.data.rssDynamicBlogs && props.social.rssurl) ||
@@ -113,7 +419,9 @@ const Addons = props => {
<div>
download
<span
id="blog-post-worklow-span"
onClick={blogPostPorkflow}
onKeyDown={(e) => e.keyCode === 13 && blogPostPorkflow()}
role="button"
tabIndex="0"
style={{ cursor: "pointer", color: "#002ead" }}
+7 -2
View File
@@ -2,7 +2,9 @@ import React from "react"
const Donate = () => {
return (
<>
<div className="text-center text-4xl my-2">Support 🙏</div>
<div className="text-center text-4xl my-2">Support&nbsp;
<span role="img" aria-label="praying hand emoji">🙏</span>
</div>
<div className="flex flex-col sm:flex-row items-start justify-between">
<div className="w-full sm:w-2/3">
<div className="text-2xl mb-2">
@@ -28,12 +30,13 @@ const Donate = () => {
</div>
</div>
<div className="w-full sm:w-1/3 flex flex-col justify-center items-center">
Tip💰
<span>Tip<span role="img" aria-label="Dollar medal">💰</span></span>
{/* Ko-Fi */}
<a
href="https://ko-fi.com/A0A81XXSX"
className="flex items-center justify-evenly bg-red-500 text-white py-2 px-4 my-2"
target="_blank"
rel="noreferrer"
>
<img
className="w-6 h-6 mr-2"
@@ -47,6 +50,7 @@ const Donate = () => {
href="https://www.paypal.me/rahuldkjain/10"
className="flex items-center justify-evenly bg-blue-500 text-white py-2 px-4 my-2"
target="_blank"
rel="noreferrer"
>
<img
className="w-6 h-6 mr-2"
@@ -60,6 +64,7 @@ const Donate = () => {
href="https://www.buymeacoffee.com/rahuldkjain"
className="flex items-center justify-evenly bg-orange-500 text-white py-2 px-4 my-2"
target="_blank"
rel="noreferrer"
>
<img
className="w-6 h-6 mr-2"
+100 -14
View File
@@ -1,27 +1,113 @@
import React from "react"
import links from "../constants/page-links"
import logo from "../images/mdg.png"
import discord from "../images/Discord-Logo.png"
import { Link } from "gatsby"
const Footer = () => {
return (
<div className="bg-gray-100 p-4 flex flex-col justify-center items-center shadow-inner mt-2">
<div className="w-full flex justify-evenly items-center py-2 text-orange-500">
<div>
<Link to={links.about} activeStyle={{ color: "#002ead" }}>
About
</Link>
<div className="w-full flex flex-col sm:flex-row justify-evenly py-2">
<div className="sm:ml-0 sm:mr-6 order-last sm:order-none flex">
<h1 className="text-base font-bold font-title text-xl sm:text-2xl mt-3 sm:mt-0">
<div className="flex sm:flex-col items-start mb-3 sm:mb-0">
<img
src={logo}
className="hidden sm:block h-24"
alt="github profile markdown generator logo"
/>
<div className="mr-2 sm:mr-0">
GitHub Profile{" "}
<img
src={logo}
className="inline sm:hidden h-12"
alt="github profile markdown generator logo"
/>
<span className="block sm:inline">README Generator</span>
</div>
</div>
</h1>
</div>
<div className="text-xl sm:text-base font-light sm:font-normal">
<div className="font-title font-bold mb-4 sm:mb-2">
<strong>Pages</strong>
</div>
<div className="ml-2 sm:ml-0">
<Link to={links.addons} activeStyle={{ color: "#002ead" }}>
Addons
</Link>
</div>
<div className="ml-2 sm:ml-0">
<Link to={links.support} activeStyle={{ color: "#002ead" }}>
Support
</Link>
</div>
<div className="ml-2 sm:ml-0">
<Link to={links.about} activeStyle={{ color: "#002ead" }}>
About
</Link>
</div>
</div>
<div className="text-xl sm:text-base font-light sm:font-normal">
<div className="font-title font-bold my-4 sm:my-0 sm:mb-2">
<strong>More</strong>
</div>
<div className="ml-2 sm:ml-0">
<a
href="https://github.com/rahuldkjain/github-profile-readme-generator"
aria-label="Github rahuldkjain/github-profile-readme-generator"
target="blank"
>
Github
</a>
</div>
<div className="ml-2 sm:ml-0">
<a
href="https://github.com/rahuldkjain/github-profile-readme-generator/releases"
aria-label="Releases on Github rahuldkjain/github-profile-readme-generator"
target="blank"
>
Releases
</a>
</div>
<div className="ml-2 sm:ml-0">
<a
href="https://github.com/rahuldkjain/github-profile-readme-generator/issues"
aria-label="Issues in rahuldkjain/github-profile-readme-generator"
target="blank"
>
Issues
</a>
</div>
<div className="ml-2 sm:ml-0">
<a
href="https://github.com/rahuldkjain/github-profile-readme-generator/pulls"
aria-label="Pull Requests in rahuldkjain/github-profile-readme-generator"
target="blank"
>
Pull Requests
</a>
</div>
</div>
<div>
<Link to={links.addons} activeStyle={{ color: "#002ead" }}>
Addons
</Link>
</div>
<div>
<Link to={links.support} activeStyle={{ color: "#002ead" }}>
Support
</Link>
<div className="font-title font-bold text-xl sm:text-base my-4 sm:my-0 sm:mb-2">
<strong>Join Community</strong>
</div>
<div className="ml-2 sm:ml-0">
<a
href="https://discord.gg/HHMs7Eg"
aria-label="Discord of the community"
target="blank"
>
<img
src={discord}
className="h-12"
alt="Discord of the community"
/>
</a>
</div>
</div>
</div>
<div className="py-2">
<div className="py-2 mt-2">
Developed in India{" "}
<span role="img" aria-label="india">
{" "}
+20 -8
View File
@@ -5,19 +5,31 @@ import links from "../constants/page-links"
import gsap from "gsap"
import axios from "axios"
import { Link } from "gatsby"
import { act } from "react-dom/test-utils"
const Header = props => {
const shouldRequestStats = () => {
const isFirstRequest = stats.starsCount === 0
const isVisible = window.document.visibilityState === 'visible'
const hasFocus = window.document.hasFocus()
return isFirstRequest || isVisible && hasFocus
}
const fetchData = async () => {
var response = await axios.get(
"https://api.github.com/repos/rahuldkjain/github-profile-readme-generator"
)
if (shouldRequestStats()) {
var response = await axios.get(
"https://api.github.com/repos/rahuldkjain/github-profile-readme-generator"
)
const { stargazers_count, forks_count } = response.data
const { stargazers_count, forks_count } = response.data
setstats({
starsCount: stargazers_count,
forksCount: forks_count,
})
act(() =>
setstats({
starsCount: stargazers_count,
forksCount: forks_count,
})
)
}
}
const [stats, setstats] = useState({
+307 -179
View File
@@ -1,202 +1,280 @@
import React from "react"
import { isMediumUsernameValid } from "../utils/validation"
import { icons, skills, skillWebsites } from "../constants/skills"
const Markdown = props => {
const Title = props => {
if (props.prefix && props.title) {
return (
<>
{`<h1 align="center">${props.prefix + " " + props.title}</h1>`}
<br />
</>
)
}
return ""
}
const SubTitle = props => {
if (props.subtitle) {
return (
<>
{`<h3 align="center">${props.subtitle}</h3>`}
<br />
<br />
</>
)
}
return ""
}
const SectionTitle = props => {
if (props.label) {
return (
<>
{`<h3 align="left">${props.label}</h3>`}
<br />
</>
)
}
return ""
}
const DisplayWork = props => {
if (props.prefix && props.project) {
if (props.link) {
return (
<>
{`- ${props.prefix} [${props.project}](${props.link})`}
<br />
<br />
</>
)
} else {
return (
<>
{`- ${props.prefix} **${props.project}**`}
<br />
<br />
</>
)
}
}
if (props.prefix && props.link) {
return (
<>
{`- ${props.prefix} [${props.link}](${props.link})`}
<br />
<br />
</>
)
}
return ""
}
const DisplaySocial = props => {
if (props.username) {
return (
<>
{`<a href="${props.base}/${props.username}" target="blank"><img align="center" src="${props.icon}" alt="${props.username}" height="30" width="40" /></a>`}
<br />
</>
)
}
return ""
}
const VisitorsBadge = props => {
let link = "https://komarev.com/ghpvc/?username=" + props.github
if (props.show) {
return (
<>
{`<p align="left"> <img src="${link}" alt="${props.github}" /> </p>`}
<br />
<br />
</>
)
}
return ""
}
const GitHubStats = props => {
let link =
"https://github-readme-stats.vercel.app/api?username=" +
props.github +
"&show_icons=true"
if (props.show) {
return (
<>
{`<p>&nbsp;<img align="center" src="${link}" alt="${props.github}" /></p>`}
<br />
<br />
</>
)
}
return ""
}
const isSocial = social => {
import {
githubStatsLinkGenerator,
topLanguagesLinkGenerator,
streakStatsLinkGenerator,
} from "../utils/link-generators"
const Title = props => {
if (props.prefix && props.title) {
return (
social.dev ||
social.twitter ||
social.codepen ||
social.codesandbox ||
social.stackoverflow ||
social.linkedin ||
social.kaggle ||
social.instagram ||
social.fb ||
social.dribbble ||
social.behance ||
social.medium ||
social.youtube ||
social.codechef ||
social.hackerrank ||
social.codeforces ||
social.leetcode ||
social.topcoder ||
social.hackerearth ||
social.geeks_for_geeks ||
social.rssurl
<>
{`<h1 align="center">${props.prefix + " " + props.title}</h1>`}
<br />
</>
)
}
const DisplaySkills = props => {
const listChosenSkills = []
skills.forEach(skill => {
if (props.skills[skill]) {
listChosenSkills.push(
`
<a href="${skillWebsites[skill]}" target="_blank">
<img src="${icons[skill]}" alt="${skill}" width="40" height="40"/>
</a>
`
)
}
})
return listChosenSkills.length > 0 ? (
return ""
}
const SubTitle = props => {
if (props.subtitle) {
return (
<>
<SectionTitle label="Languages and Tools:" />
{`<p align="left">${listChosenSkills.join(" ")}</p>`}
{`<h3 align="center">${props.subtitle}</h3>`}
<br />
<br />
</>
) : (
""
)
}
const DisplayDynamicBlogs = props => {
if (props.show) {
return ""
}
const SectionTitle = props => {
if (props.label) {
return (
<>
{`<h3 align="left">${props.label}</h3>`}
<br />
</>
)
}
return ""
}
const DisplayWork = props => {
if (props.prefix && props.project) {
if (props.link) {
return (
<>
{`### Blogs posts`}
{`- ${props.prefix} [${props.project}](${props.link})`}
<br />
{`<!-- BLOG-POST-LIST:START -->`}
<br />
{`<!-- BLOG-POST-LIST:END -->`}
<br /> <br />
</>
)
}
return ""
}
const DisplayTopLanguages = props => {
let link =
"https://github-readme-stats.vercel.app/api/top-langs/?username=" +
props.github +
"&layout=compact"
if (props.show) {
if (!props.showStats) {
return (
<>
{`<p><img align="center" src="${link}" alt="${props.github}" /></p>`}
<br />
<br />
</>
)
}
} else {
return (
<>
{`<p><img align="left" src="${link}" alt="${props.github}" /></p>`}
{`- ${props.prefix} **${props.project}**`}
<br />
<br />
</>
)
}
return ""
}
if (props.prefix && props.link) {
return (
<>
{`- ${props.prefix} [${props.link}](${props.link})`}
<br />
<br />
</>
)
}
return ""
}
const DisplaySocial = props => {
if (props.username) {
return (
<>
{`<a href="${props.base}/${props.username}" target="blank"><img align="center" src="${props.icon}" alt="${props.username}" height="30" width="40" /></a>`}
<br />
</>
)
}
return ""
}
const VisitorsBadge = props => {
let link =
"https://komarev.com/ghpvc/?username=" +
props.github +
`&label=${props.badgeOptions.badgeLabel}` +
`&color=${props.badgeOptions.badgeColor}` +
`&style=${props.badgeOptions.badgeStyle}`
if (props.show) {
return (
<>
{`<p align="left"> <img src="${link}" alt="${props.github}" /> </p>`}
<br />
<br />
</>
)
}
return ""
}
const TwitterBadge = props => {
let link =
"https://img.shields.io/twitter/follow/" +
props.twitter +
"?logo=twitter&style=for-the-badge"
if (props.show) {
return (
<>
{`<p align="left"> <a href="${props.base}/${props.twitter}" target="blank"><img src="${link}" alt="${props.twitter}" /></a> </p>`}
<br />
<br />
</>
)
}
return ""
}
const GithubProfileTrophy = props => {
let link =
"https://github-profile-trophy.vercel.app/?username=" + props.github
if (props.show) {
return (
<>
{`<p align="left"> <a href="https://github.com/ryo-ma/github-profile-trophy"><img src="${link}" alt="${props.github}" /></a> </p>`}
<br />
<br />
</>
)
}
return ""
}
const GitHubStats = ({ show, github, options }) => {
if (show) {
return (
<>
{`<p>&nbsp;<img align="center" src="${githubStatsLinkGenerator({
github: github,
options,
})}" alt="${github}" /></p>`}
<br />
<br />
</>
)
}
return ""
}
const isSocial = social => {
return (
social.dev ||
social.twitter ||
social.codepen ||
social.codesandbox ||
social.stackoverflow ||
social.linkedin ||
social.kaggle ||
social.instagram ||
social.fb ||
social.dribbble ||
social.behance ||
social.medium ||
social.youtube ||
social.codechef ||
social.hackerrank ||
social.codeforces ||
social.leetcode ||
social.topcoder ||
social.hackerearth ||
social.geeks_for_geeks ||
social.discord ||
social.rssurl
)
}
const DisplaySkills = props => {
const listChosenSkills = []
skills.forEach(skill => {
if (props.skills[skill]) {
listChosenSkills.push(
`
<a href="${skillWebsites[skill]}" target="_blank">
<img src="${icons[skill]}" alt="${skill}" width="40" height="40"/>
</a>
`
)
}
})
return listChosenSkills.length > 0 ? (
<>
<SectionTitle label="Languages and Tools:" />
{`<p align="left">${listChosenSkills.join(" ")}</p>`}
<br />
<br />
</>
) : (
""
)
}
const DisplayDynamicBlogs = props => {
if (props.show) {
return (
<>
{`### Blogs posts`}
<br />
{`<!-- BLOG-POST-LIST:START -->`}
<br />
{`<!-- BLOG-POST-LIST:END -->`}
<br /> <br />
</>
)
}
return ""
}
const DisplayTopLanguages = props => {
if (props.show) {
if (!props.showStats) {
return (
<>
{`<p><img align="center" src="${topLanguagesLinkGenerator({
github: props.github,
options: props.options,
})}" alt="${props.github}" /></p>`}
<br />
<br />
</>
)
}
return (
<>
{`<p><img align="left" src="${topLanguagesLinkGenerator({
github: props.github,
options: props.options,
})}" alt="${props.github}" /></p>`}
<br />
<br />
</>
)
}
return ""
}
const DisplayStreakStats = props => {
if (props.show) {
return (
<>
{`<p><img align="center" src="${streakStatsLinkGenerator({
github: props.github,
options: props.options,
})}" alt="${props.github}" /></p>`}
<br />
<br />
</>
)
}
return ""
}
const DisplaySupport = props => {
let viewSupport = false
Object.keys(props.support).forEach(key => {
if (props.support[key]) {
viewSupport = true
}
})
return viewSupport ? (
<div>
<SectionTitle label="Support:" />
{`<p>`}
{props.support.buyMeACoffee &&
`<a href="https://www.buymeacoffee.com/${props.support.buyMeACoffee}">
<img align="left" src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" height="50" width="210" alt="${props.support.buyMeACoffee}" /></a>`}
{`</p><br><br>`}
<br />
<br />
</div>
) : (
""
)
}
const Markdown = props => {
return (
<div id="markdown-content" className="break-words">
<>
@@ -209,6 +287,22 @@ const Markdown = props => {
<VisitorsBadge
show={props.data.visitorsBadge}
github={props.social.github}
badgeOptions={{
badgeLabel: encodeURI(props.data.badgeLabel),
badgeColor: props.data.badgeColor,
badgeStyle: props.data.badgeStyle,
}}
/>
</>
<>
<GithubProfileTrophy
show={props.data.githubProfileTrophy}
github={props.social.github}
/>
<TwitterBadge
base="https://twitter.com"
show={props.data.twitterBadge}
twitter={props.social.twitter}
/>
</>
<>
@@ -256,6 +350,9 @@ const Markdown = props => {
project={props.data.contact}
/>
</>
<>
<DisplayWork prefix={props.prefix.resume} link={props.link.resume} />
</>
<>
<DisplayWork
prefix={props.prefix.funFact}
@@ -273,10 +370,15 @@ const Markdown = props => {
}
/>
</>
{isSocial(props.social) ? `<p align="left">` : ""} <br />
<>
<SectionTitle label="Connect with me:" />
</>
{isSocial(props.social) ? (
<>
<SectionTitle label="Connect with me:" />
{`<p align="left">`}
</>
) : (
""
)}
<br />
<>
<DisplaySocial
base="https://codepen.io"
@@ -417,6 +519,13 @@ const Markdown = props => {
username={props.social.topcoder}
/>
</>
<>
<DisplaySocial
base="https://discord.gg"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/discord.svg"
username={props.social.discord}
/>
</>
<>
<DisplaySocial
base=""
@@ -424,25 +533,44 @@ const Markdown = props => {
username={props.social.rssurl}
/>
</>
{isSocial(props.social) ? <>{`</p>`}<br/><br/></> : ""}
{isSocial(props.social) ? (
<>
{`</p>`}
<br />
<br />
</>
) : (
""
)}
<>
<DisplaySkills skills={props.skills} />
</>
<>
<DisplaySupport support={props.support} />
</>
<>
<DisplayTopLanguages
show={props.data.topLanguages}
showStats={props.data.githubStats}
github={props.social.github}
options={props.data.topLanguagesOptions}
/>
</>
<>
<GitHubStats
show={props.data.githubStats}
github={props.social.github}
options={props.data.githubStatsOptions}
/>
</>
<>
<DisplayStreakStats
show={props.data.streakStats}
github={props.social.github}
options={props.data.streakStatsOptions}
/>
</>
</div>
)
}
export default Markdown
+384 -259
View File
@@ -1,54 +1,40 @@
import React from "react"
import { icons, skills, skillWebsites } from "../constants/skills"
import {
githubStatsLinkGenerator,
topLanguagesLinkGenerator,
streakStatsLinkGenerator,
} from "../utils/link-generators"
const MarkdownPreview = props => {
const TitlePreview = props => {
if (props.prefix && props.title) {
return (
<h1 className="text-center text-xl font-bold">
{props.prefix + " " + props.title}
</h1>
)
}
return null
export const TitlePreview = props => {
if (props.prefix && props.title) {
return (
<h1 className="text-center text-xl font-bold">
{props.prefix + " " + props.title}
</h1>
)
}
const SubTitlePreview = props => {
if (props.subtitle) {
return <h3 className="text-center font-medium">{props.subtitle}</h3>
}
return null
return null
}
export const SubTitlePreview = props => {
if (props.subtitle) {
return <h3 className="text-center font-medium">{props.subtitle}</h3>
}
const SectionTitle = props => {
if (props.label) {
return <h3 className="w-full text-lg sm:text-xl">{props.label}</h3>
}
return null
return null
}
export const SectionTitle = props => {
if (!props.visible) return null
else if (props.label) {
return <h3 className="w-full text-lg sm:text-xl">{props.label}</h3>
}
const DisplayWork = props => {
if (props.prefix && props.project) {
if (props.link) {
return (
<div className="my-2">
{props.prefix + " "}
<a
href={props.link}
className="no-underline text-blue-700"
target="blank"
>
{props.project}
</a>
</div>
)
} else {
return (
<div className="my-2">
{props.prefix + " "}
<b>{props.project}</b>
</div>
)
}
}
if (props.prefix && props.link) {
return null
}
export const DisplayWork = props => {
if (props.prefix && props.project) {
if (props.link) {
return (
<div className="my-2">
{props.prefix + " "}
@@ -57,235 +43,353 @@ const MarkdownPreview = props => {
className="no-underline text-blue-700"
target="blank"
>
{props.link}
{props.project}
</a>
</div>
)
}
return null
}
const WorkPreview = props => {
const prefix = props.work.prefix
const data = props.work.data
const link = props.work.link
return (
<>
<DisplayWork
prefix={prefix.currentWork}
project={data.currentWork}
link={link.currentWork}
/>
<DisplayWork prefix={prefix.currentLearn} project={data.currentLearn} />
<DisplayWork
prefix={prefix.helpWith}
project={data.helpWith}
link={link.helpWith}
/>
<DisplayWork
prefix={prefix.collaborateOn}
project={data.collaborateOn}
link={link.collaborateOn}
/>
<DisplayWork prefix={prefix.ama} project={data.ama} />
<DisplayWork prefix={prefix.portfolio} link={link.portfolio} />
<DisplayWork prefix={prefix.blog} link={link.blog} />
<DisplayWork prefix={prefix.contact} project={data.contact} />
<DisplayWork prefix={prefix.funFact} project={data.funFact} />
</>
)
}
const DisplaySocial = props => {
if (props.username) {
} else {
return (
<div className="my-2">
{props.prefix + " "}
<b>{props.project}</b>
</div>
)
}
}
if (props.prefix && props.link) {
return (
<div className="my-2">
{props.prefix + " "}
<a
className="no-underline text-blue-700 m-2"
href={props.base + "/" + props.username}
href={props.link}
className="no-underline text-blue-700"
target="blank"
>
<img className="w-6 h-6" src={props.icon} alt="props.username" />
{props.link}
</a>
</div>
)
}
return null
}
export const WorkPreview = props => {
const prefix = props.work.prefix
const data = props.work.data
const link = props.work.link
return (
<>
<DisplayWork
prefix={prefix.currentWork}
project={data.currentWork}
link={link.currentWork}
/>
<DisplayWork prefix={prefix.currentLearn} project={data.currentLearn} />
<DisplayWork
prefix={prefix.helpWith}
project={data.helpWith}
link={link.helpWith}
/>
<DisplayWork
prefix={prefix.collaborateOn}
project={data.collaborateOn}
link={link.collaborateOn}
/>
<DisplayWork prefix={prefix.ama} project={data.ama} />
<DisplayWork prefix={prefix.portfolio} link={link.portfolio} />
<DisplayWork prefix={prefix.blog} link={link.blog} />
<DisplayWork prefix={prefix.resume} link={link.resume} />
<DisplayWork prefix={prefix.contact} project={data.contact} />
<DisplayWork prefix={prefix.funFact} project={data.funFact} />
</>
)
}
export const DisplaySocial = props => {
if (props.username) {
return (
<a
className="no-underline text-blue-700 m-2"
href={props.base + "/" + props.username}
target="blank"
>
<img className="w-6 h-6" src={props.icon} alt="props.username" />
</a>
)
}
return null
}
export const SocialPreview = props => {
let viewSocial = false
Object.keys(props.social).forEach(key => {
if (props.social[key] && key != "github") viewSocial = true
})
return (
<div className="flex justify-start items-end flex-wrap">
<SectionTitle label="Connect with me:" visible={viewSocial} />
<DisplaySocial
base="https://codepen.io"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codepen.svg"
username={props.social.codepen}
/>
<DisplaySocial
base="https://dev.to"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dev-dot-to.svg"
username={props.social.dev}
/>
<DisplaySocial
base="https://twitter.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/twitter.svg"
username={props.social.twitter}
/>
<DisplaySocial
base="https://linkedin.com/in"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/linkedin.svg"
username={props.social.linkedin}
/>
<DisplaySocial
base="https://stackoverflow.com/users"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/stackoverflow.svg"
username={props.social.stackoverflow}
/>
<DisplaySocial
base="https://codesandbox.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codesandbox.svg"
username={props.social.codesandbox}
/>
<DisplaySocial
base="https://kaggle.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/kaggle.svg"
username={props.social.kaggle}
/>
<DisplaySocial
base="https://fb.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/facebook.svg"
username={props.social.fb}
/>
<DisplaySocial
base="https://instagram.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/instagram.svg"
username={props.social.instagram}
/>
<DisplaySocial
base="https://dribbble.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dribbble.svg"
username={props.social.dribbble}
/>
<DisplaySocial
base="https://www.behance.net"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/behance.svg"
username={props.social.behance}
/>
<DisplaySocial
base="https://medium.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/medium.svg"
username={props.social.medium}
/>
<DisplaySocial
base="https://www.youtube.com/c"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/youtube.svg"
username={props.social.youtube}
/>
<DisplaySocial
base="https://www.codechef.com/users"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codechef.svg"
username={props.social.codechef}
/>
<DisplaySocial
base="https://codeforces.com/profile"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codeforces.svg"
username={props.social.codeforces}
/>
<DisplaySocial
base="https://www.hackerrank.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/hackerrank.svg"
username={props.social.hackerrank}
/>
<DisplaySocial
base="https://auth.geeksforgeeks.org/user"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/geeksforgeeks.svg"
username={props.social.geeks_for_geeks}
/>
<DisplaySocial
base="https://www.hackerearth.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/hackerearth.svg"
username={props.social.hackerearth}
/>
<DisplaySocial
base="https://www.topcoder.com/members"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/topcoder.svg"
username={props.social.topcoder}
/>
<DisplaySocial
base="https://www.leetcode.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/leetcode.svg"
username={props.social.leetcode}
/>
<DisplaySocial
base="https://discord.gg"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/discord.svg"
username={props.social.discord}
/>
<DisplaySocial
base=""
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/rss.svg"
username={props.social.rssurl}
/>
</div>
)
}
export const VisitorsBadgePreview = props => {
let link =
"https://komarev.com/ghpvc/?username=" +
props.github +
`&label=${props.badgeOptions.badgeLabel}` +
`&color=${props.badgeOptions.badgeColor}` +
`&style=${props.badgeOptions.badgeStyle}`
if (props.show) {
return (
<div className="text-left my-2">
{" "}
<img className="h-4 sm:h-6" src={link} alt={props.github} />{" "}
</div>
)
}
return null
}
export const TwitterBadgePreview = props => {
let link =
"https://img.shields.io/twitter/follow/" +
props.twitter +
"?logo=twitter&style=for-the-badge"
if (props.show) {
return (
<div className="text-left my-2">
{" "}
<a href="https://twitter.com/${props.twitter}" target="blank">
<img className="h-4 sm:h-6" src={link} alt={props.twitter} />
</a>{" "}
</div>
)
}
return null
}
export const GithubProfileTrophyPreview = props => {
let link =
"https://github-profile-trophy.vercel.app/?username=" + props.github
if (props.show) {
return (
<div className="text-left my-2">
{" "}
<a href="https://github.com/ryo-ma/github-profile-trophy">
<img src={link} alt={props.github} />
</a>{" "}
</div>
)
}
return null
}
export const GitHubStatsPreview = ({ github, options, show }) => {
if (show) {
return (
<div className="text-center mx-4 mb-4">
<img src={githubStatsLinkGenerator({ github, options })} alt={github} />
</div>
)
}
return null
}
export const TopLanguagesPreview = ({ github, options, show }) => {
if (show) {
return (
<div className="text-center mx-4 mb-4">
<img
src={topLanguagesLinkGenerator({ github, options })}
alt={github}
/>
</div>
)
}
return <div className="text-center mx-4 mb-4"> &nbsp;</div>
}
export const StreakStatsPreview = ({ github, options, show }) => {
if (show) {
return (
<div className="text-center mx-4 mb-4">
<img src={streakStatsLinkGenerator({ github, options })} alt={github} />
</div>
)
}
return null
}
export const SkillsPreview = props => {
var listSkills = []
skills.forEach(skill => {
if (props.skills[skill]) {
listSkills.push(
<a
href={skillWebsites[skill]}
key={skill}
target="_blank"
rel="noreferrer"
>
<img
className="mb-4 mr-4 h-6 w-6 sm:h-10 sm:w-10"
src={icons[skill]}
alt={skill}
/>
</a>
)
}
return null
}
const SocialPreview = props => {
return (
<div className="flex justify-start items-end flex-wrap">
<SectionTitle label="Connect with me:" />
<DisplaySocial
base="https://codepen.io"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codepen.svg"
username={props.social.codepen}
/>
<DisplaySocial
base="https://dev.to"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dev-dot-to.svg"
username={props.social.dev}
/>
<DisplaySocial
base="https://twitter.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/twitter.svg"
username={props.social.twitter}
/>
<DisplaySocial
base="https://linkedin.com/in"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/linkedin.svg"
username={props.social.linkedin}
/>
<DisplaySocial
base="https://stackoverflow.com/users"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/stackoverflow.svg"
username={props.social.stackoverflow}
/>
<DisplaySocial
base="https://codesandbox.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codesandbox.svg"
username={props.social.codesandbox}
/>
<DisplaySocial
base="https://kaggle.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/kaggle.svg"
username={props.social.kaggle}
/>
<DisplaySocial
base="https://fb.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/facebook.svg"
username={props.social.fb}
/>
<DisplaySocial
base="https://instagram.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/instagram.svg"
username={props.social.instagram}
/>
<DisplaySocial
base="https://dribbble.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dribbble.svg"
username={props.social.dribbble}
/>
<DisplaySocial
base="https://www.behance.net"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/behance.svg"
username={props.social.behance}
/>
<DisplaySocial
base="https://medium.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/medium.svg"
username={props.social.medium}
/>
<DisplaySocial
base="https://www.youtube.com/c"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/youtube.svg"
username={props.social.youtube}
/>
})
return listSkills.length > 0 ? (
<div className="flex flex-wrap justify-start items-center">
<SectionTitle label="Languages and Tools:" visible={true} />
{listSkills}
</div>
) : (
""
)
}
<DisplaySocial
base="https://www.codechef.com/users"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codechef.svg"
username={props.social.codechef}
/>
<DisplaySocial
base="https://codeforces.com/profile"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codeforces.svg"
username={props.social.codeforces}
/>
<DisplaySocial
base="https://www.hackerrank.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/hackerrank.svg"
username={props.social.hackerrank}
/>
<DisplaySocial
base="https://auth.geeksforgeeks.org/user"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/geeksforgeeks.svg"
username={props.social.geeks_for_geeks}
/>
<DisplaySocial
base="https://www.hackerearth.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/hackerearth.svg"
username={props.social.hackerearth}
/>
<DisplaySocial
base="https://www.topcoder.com/members"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/topcoder.svg"
username={props.social.topcoder}
/>
<DisplaySocial
base="https://www.leetcode.com"
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/leetcode.svg"
username={props.social.leetcode}
/>
<DisplaySocial
base=""
icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/rss.svg"
username={props.social.rssurl}
/>
</div>
)
}
const VisitorsBadgePreview = props => {
let link = "https://komarev.com/ghpvc/?username=" + props.github
if (props.show) {
return (
<div className="text-left my-2">
{" "}
<img className="h-4 sm:h-6" src={link} alt={props.github} />{" "}
</div>
)
export const SupportPreview = props => {
let viewSupport = false
Object.keys(props.support).forEach(key => {
if (props.support[key]) {
viewSupport = true
}
return null
}
const GitHubStatsPreview = props => {
let link =
"https://github-readme-stats.vercel.app/api?username=" +
props.github +
"&show_icons=true"
if (props.show) {
return (
<div className="text-center mx-4 mb-4">
<img src={link} alt={props.github} />
</div>
)
}
return null
}
const TopLanguagesPreview = props => {
let link =
"https://github-readme-stats.vercel.app/api/top-langs/?username=" +
props.github +
"&layout=compact"
if (props.show) {
return (
<div className="text-center mx-4 mb-4">
<img src={link} alt={props.github} />
</div>
)
}
return <div className="text-center mx-4 mb-4"> &nbsp;</div>
}
const SkillsPreview = props => {
var listSkills = []
skills.forEach(skill => {
if (props.skills[skill]) {
listSkills.push(
<a href={skillWebsites[skill]} target="_blank">
})
return (
<div className="mb-4">
<SectionTitle label="Support:" visible={viewSupport} />
{props.support.buyMeACoffee && (
<div style={{ width: "210px" }}>
<a
href={`https://www.buymeacoffee.com/` + props.support.buyMeACoffee}
target="_blank"
>
<img
className="mb-4 mr-4 h-6 w-6 sm:h-10 sm:w-10"
key={skill}
src={icons[skill]}
alt={skill}
src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"
alt="Buy Me A Coffee"
className="w-36 h-8 sm:w-52 sm:h-12"
/>
</a>
)
}
})
return listSkills.length > 0 ? (
<div className="flex flex-wrap justify-start items-center">
<SectionTitle label="Languages and Tools:" />
{listSkills}
</div>
) : (
""
)
}
</div>
)}
</div>
)
}
const MarkdownPreview = props => {
return (
<div id="markdown-preview">
<TitlePreview prefix={props.prefix.title} title={props.data.title} />
@@ -293,18 +397,39 @@ const MarkdownPreview = props => {
<VisitorsBadgePreview
show={props.data.visitorsBadge}
github={props.social.github}
badgeOptions={{
badgeLabel: encodeURI(props.data.badgeLabel),
badgeColor: props.data.badgeColor,
badgeStyle: props.data.badgeStyle,
}}
/>
<GithubProfileTrophyPreview
show={props.data.githubProfileTrophy}
github={props.social.github}
/>
<TwitterBadgePreview
show={props.data.twitterBadge}
twitter={props.social.twitter}
/>
<WorkPreview work={props} />
<SocialPreview social={props.social} />
<SkillsPreview skills={props.skills} />
<SupportPreview support={props.support} />
<div className="block sm:flex sm:justify-center sm:items-start">
<TopLanguagesPreview
show={props.data.topLanguages}
github={props.social.github}
options={props.data.topLanguagesOptions}
/>
<GitHubStatsPreview
show={props.data.githubStats}
github={props.social.github}
options={props.data.githubStatsOptions}
/>
<StreakStatsPreview
show={props.data.streakStats}
github={props.social.github}
options={props.data.streakStatsOptions}
/>
</div>
</div>
+69 -14
View File
@@ -1,7 +1,12 @@
import React from "react"
import React, {useState} from "react"
import { icons, categorizedSkills } from "../constants/skills"
import { SearchIcon, XIcon } from "@primer/octicons-react";
const Skills = props => {
const [search, setSearch] = useState('')
const [debounce, setDebounce] = useState(undefined);
const inputRef = React.createRef()
const createSkill = skill => {
return (
<div className="w-1/3 sm:w-1/4 my-6" key={skill}>
@@ -22,28 +27,78 @@ const Skills = props => {
/>
<span className="tooltiptext">{skill}</span>
</label>
</div>
</div>
)
}
return (
<div className="px-2 sm:px-6 mb-10">
<div className="text-xl sm:text-2xl font-bold font-title mt-2 mb-2">
Skills
</div>
const onSearchChange = (value) => {
const callback = () => {
setSearch(value)
}
clearTimeout(debounce)
setDebounce(setTimeout(callback, 50))
}
{Object.keys(categorizedSkills).map(key => (
<div key={key}>
<h4 className="text-sm sm:text-xl text-gray-900 text-center">
{categorizedSkills[key].title}
</h4>
return (
<div className="px-2 sm:px-6 mb-10 ">
<div className="text-xl sm:text-2xl font-bold font-title mt-2 mb-4 flex justify-between">
Skills
<div className="relative flex">
<input
type="text"
onChange={(e) => onSearchChange(e.target.value)}
className="leading:none text-xs my-0 py-1 px-2 pr-8 sm:text-xl border-2 border-gray-900 focus:border-blue-700 placeholder-gray-700"
placeholder="Search Skills"
ref = {inputRef}
/>
<span className="absolute" style={{right:"10px"}}>
{(search !== '')
?<button className="focus:outline-none" onClick={() => {
setSearch('')
inputRef.current.value = ''
}
}>
<XIcon size={16} className="mb-1 transform scale-100 md:scale-125"/>
</button>
:<SearchIcon size={16} className="mb-1 transform scale-100 md:scale-125"/>
}
</span>
</div>
</div>
{Object.keys(categorizedSkills)
.filter(key => {
let filtered = categorizedSkills[key].skills.filter(skill => {
return skill.includes(search.toLowerCase())
})
return filtered.length !== 0
})
.map(key => (
<div key={key} className="divide-y divide-gray-500">
<div className="text-sm sm:text-xl text-gray-900 text-left py-1">
{categorizedSkills[key].title}
</div>
<div className="flex justify-start items-center flex-wrap w-full mb-6 pl-4 sm:pl-10">
{categorizedSkills[key].skills.map(skill => createSkill(skill))}
{categorizedSkills[key].skills
.filter(skill => {
return skill.includes(search.toLowerCase())
})
.map(skill => createSkill(skill))}
</div>
</div>
))}
<span className="flex justify-center text-gray-900">
{(Object.keys(categorizedSkills)
.filter(key => {
let filtered = categorizedSkills[key].skills.filter(skill => {
return skill.includes(search.toLowerCase())
})
return filtered.length !== 0
})
.length === 0)?"No Results Found":""}
</span>
</div>
)
)
}
export default Skills
+14
View File
@@ -303,6 +303,20 @@ const Social = props => {
}
/>
</div>
<div className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0">
<img
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/discord.svg"
className="w-6 h-6 sm:w-8 sm:h-8 mr-1 sm:mr-4"
alt="discord"
/>
<input
id="discord"
placeholder="discord invite (only code)"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.discord}
onChange={event => props.handleSocialChange("discord", event)}
/>
</div>
<div className="w-1/2 flex justify-center items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0">
<img
src="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/rss.svg"
+29
View File
@@ -0,0 +1,29 @@
import React from "react"
const Support = props => {
return (
<div className="px-2 sm:px-6 mb-4">
<div className="text-xl sm:text-2xl font-bold font-title mt-2 mb-2">
Support
</div>
<div className="flex flex-wrap justify-start items-center">
<div className="w-2/5 flex justify-between items-center text-xxs sm:text-lg py-4 pr-2 sm:pr-0">
<img
src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"
className="w-36 h-8 sm:w-52 sm:h-12"
alt="buymeacoffee"
/>
<input
id="buy-me-a-coffee"
placeholder="buymeacoffee username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-1 sm:px-2 ml-2 sm:ml-0 focus:border-blue-700"
value={props.support.buyMeACoffee || ""}
onChange={event => props.handleSupportChange("buyMeACoffee", event)}
/>
</div>
</div>
</div>
)
}
export default Support
+16
View File
@@ -151,6 +151,22 @@ const Work = props => {
onChange={event => props.handleLinkChange("blog", event)}
/>
</div>
<div className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0">
<input
id="resume-prefix"
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.resume}
onChange={event => props.handlePrefixChange("resume", event)}
/>
<input
id="resume"
placeholder="resume link"
className="outline-none placeholder-gray-700 mr-8 sm:mr-0 text-blue-700 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.link.resume}
onChange={event => props.handleLinkChange("resume", event)}
/>
</div>
<div className="text-xs sm:text-lg flex flex-col sm:flex-row mb-10 justify-center sm:justify-start items-center sm:items-start w-full px-4 sm:px-0">
<input
id="funFact-prefix"
+97
View File
@@ -0,0 +1,97 @@
export const DEFAULT_PREFIX = {
title: "Hi 👋, I'm",
currentWork: "🔭 Im currently working on",
currentLearn: "🌱 Im currently learning",
collaborateOn: "👯 Im looking to collaborate on",
helpWith: "🤝 Im looking for help with",
ama: "💬 Ask me about",
contact: "📫 How to reach me",
resume: "📄 Know about my experiences",
funFact: "⚡ Fun fact",
portfolio: "👨‍💻 All of my projects are available at",
blog: "📝 I regularly write articles on",
}
export const DEFAULT_DATA = {
title: "",
subtitle: "A passionate frontend developer from India",
currentWork: "",
currentLearn: "",
collaborateOn: "",
helpWith: "",
ama: "",
contact: "",
funFact: "",
twitterBadge: false,
visitorsBadge: false,
badgeStyle: "flat",
badgeColor: "0e75b6",
badgeLabel: "Profile views",
githubProfileTrophy: false,
githubStats: false,
githubStatsOptions: {
theme: "",
titleColor: "",
textColor: "",
bgColor: "",
hideBorder: false,
cacheSeconds: null,
locale: "en",
},
topLanguages: false,
topLanguagesOptions: {
theme: "",
titleColor: "",
textColor: "",
bgColor: "",
hideBorder: false,
cacheSeconds: null,
locale: "en",
},
streakStats: false,
streakStatsOptions: {
theme: "",
},
devDynamicBlogs: false,
mediumDynamicBlogs: false,
rssDynamicBlogs: false,
}
export const DEFAULT_LINK = {
currentWork: "",
collaborateOn: "",
helpWith: "",
portfolio: "",
blog: "",
resume: "",
}
export const DEFAULT_SOCIAL = {
github: "",
dev: "",
linkedin: "",
codepen: "",
stackoverflow: "",
kaggle: "",
codesandbox: "",
fb: "",
instagram: "",
twitter: "",
dribbble: "",
behance: "",
medium: "",
youtube: "",
codechef: "",
hackerrank: "",
codeforces: "",
leetcode: "",
topcoder: "",
hackerearth: "",
geeks_for_geeks: "",
discord: "",
rssurl: "",
}
export const DEFAULT_SUPPORT = {
buyMeACoffee: ""
}
+136 -23
View File
@@ -1,4 +1,3 @@
//const baseURL = 'https://devicons.github.io/devicon/devicon.git/icons/';
const categorizedSkills = {
language: {
title: "Programming Languages",
@@ -11,6 +10,7 @@ const categorizedSkills = {
"javascript",
"typescript",
"php",
"perl",
"ruby",
"scala",
"python",
@@ -19,6 +19,9 @@ const categorizedSkills = {
"clojure",
"rust",
"haskell",
"coffeescript",
"elixir",
"erlang",
],
},
@@ -56,11 +59,13 @@ const categorizedSkills = {
"nodejs",
"spring",
"express",
"graphql",
"kafka",
"solr",
"rabbitMQ",
"hadoop",
"nginx",
"openresty",
],
},
@@ -75,6 +80,7 @@ const categorizedSkills = {
"xamarin",
"reactnative",
"ionic",
"apachecordova",
],
},
@@ -96,12 +102,16 @@ const categorizedSkills = {
"hive",
"realm",
"mariadb",
"cockroachdb",
"elasticsearch",
"sqlite",
"mssql",
],
},
data_visualization: {
title: "Data Visualization",
skills: ["d3js", "chartjs", "canvasjs"],
skills: ["d3js", "chartjs", "canvasjs", "kibana", "grafana"],
},
devops: {
@@ -115,12 +125,14 @@ const categorizedSkills = {
"bash",
"azure",
"vagrant",
"circleci",
"travisci",
],
},
baas: {
title: "Backend as a Service(BaaS)",
skills: ["firebase", "amplify"],
skills: ["firebase", "amplify", "heroku"],
},
framework: {
@@ -134,6 +146,7 @@ const categorizedSkills = {
"codeigniter",
"rails",
"flask",
"quasar",
],
},
@@ -155,22 +168,49 @@ const categorizedSkills = {
skills: [
"illustrator",
"photoshop",
"xd",
"figma",
"blender",
"sketch",
"invision",
"framer",
"matlab",
"postman",
],
},
static_site_generator: {
title: "Static Site Generators",
skills: ["gatsby", "gridsome", "hugo", "jekyll", "nextjs", "nuxtjs"],
skills: [
"gatsby",
"gridsome",
"hugo",
"jekyll",
"nextjs",
"nuxtjs",
"11ty",
"scully",
"sculpin",
"sapper",
"vuepress",
"hexo",
"middleman",
],
},
game_engines: {
title: "Game Engines",
skills: ["unity", "unreal"],
},
automation: {
title: "Automation",
skills: ["zapier"],
},
other: {
title: "Other",
skills: ["linux", "git"],
skills: ["linux", "git", "arduino"],
},
}
@@ -185,6 +225,7 @@ const icons = {
"https://devicons.github.io/devicon/devicon.git/icons/amazonwebservices/amazonwebservices-original-wordmark.svg",
android:
"https://devicons.github.io/devicon/devicon.git/icons/android/android-original-wordmark.svg",
arduino: "https://cdn.worldvectorlogo.com/logos/arduino-1.svg",
backbonejs:
"https://devicons.github.io/devicon/devicon.git/icons/backbonejs/backbonejs-original-wordmark.svg",
bootstrap:
@@ -214,6 +255,7 @@ const icons = {
express:
"https://devicons.github.io/devicon/devicon.git/icons/express/express-original-wordmark.svg",
go: "https://devicons.github.io/devicon/devicon.git/icons/go/go-original.svg",
graphql: "https://www.vectorlogo.zone/logos/graphql/graphql-icon.svg",
gulp:
"https://devicons.github.io/devicon/devicon.git/icons/gulp/gulp-plain.svg",
html5:
@@ -236,12 +278,16 @@ const icons = {
"https://devicons.github.io/devicon/devicon.git/icons/nginx/nginx-original.svg",
nodejs:
"https://devicons.github.io/devicon/devicon.git/icons/nodejs/nodejs-original-wordmark.svg",
openresty:
"https://symbols-electrical.getvecta.com/stencil_25/66_openresty.403a21ca72.svg",
oracle:
"https://devicons.github.io/devicon/devicon.git/icons/oracle/oracle-original.svg",
photoshop:
"https://devicons.github.io/devicon/devicon.git/icons/photoshop/photoshop-plain.svg",
xd: "https://cdn.worldvectorlogo.com/logos/adobe-xd.svg",
php:
"https://devicons.github.io/devicon/devicon.git/icons/php/php-original.svg",
perl: "https://api.iconify.design/logos-perl.svg",
postgresql:
"https://devicons.github.io/devicon/devicon.git/icons/postgresql/postgresql-original-wordmark.svg",
python:
@@ -258,6 +304,7 @@ const icons = {
"https://devicons.github.io/devicon/devicon.git/icons/sass/sass-original.svg",
scala:
"https://devicons.github.io/devicon/devicon.git/icons/scala/scala-original-wordmark.svg",
solidworks: "https://cdn.worldvectorlogo.com/logos/solidworks.svg",
symfony: "https://symfony.com/logos/symfony_black_03.svg",
spring: "https://www.vectorlogo.zone/logos/springio/springio-icon.svg",
swift:
@@ -329,6 +376,7 @@ const icons = {
nextjs: "https://cdn.worldvectorlogo.com/logos/nextjs-3.svg",
reactnative: "https://reactnative.dev/img/header_logo.svg",
mariadb: "https://www.vectorlogo.zone/logos/mariadb/mariadb-icon.svg",
cockroachdb: "https://cdn.worldvectorlogo.com/logos/cockroachdb.svg",
objectivec:
"https://www.vectorlogo.zone/logos/apple_objectivec/apple_objectivec-icon.svg",
clojure:
@@ -356,9 +404,44 @@ const icons = {
"https://devicons.github.io/devicon/devicon.git/icons/ember/ember-original-wordmark.svg",
scikit_learn:
"https://upload.wikimedia.org/wikipedia/commons/0/05/Scikit_learn_logo_small.svg",
quasar: "https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
kibana:
"https://www.vectorlogo.zone/logos/elasticco_kibana/elasticco_kibana-icon.svg",
grafana: "https://www.vectorlogo.zone/logos/grafana/grafana-icon.svg",
elasticsearch: "https://www.vectorlogo.zone/logos/elastic/elastic-icon.svg",
circleci: "https://www.vectorlogo.zone/logos/circleci/circleci-icon.svg",
scully:
"https://raw.githubusercontent.com/scullyio/scully/main/assets/logos/SVG/scullyio-icon.svg",
"11ty":
"https://gist.githubusercontent.com/vivek32ta/c7f7bf583c1fb1c58d89301ea40f37fd/raw/f4c85cce5790758286b8f155ef9a177710b995df/11ty.svg",
sculpin:
"https://gist.githubusercontent.com/vivek32ta/c7f7bf583c1fb1c58d89301ea40f37fd/raw/1782aef8672484698c0dd407f900c4a329ed5bc4/sculpin.svg",
sapper:
"https://raw.githubusercontent.com/bestofjs/bestofjs-webui/master/public/logos/sapper.svg",
vuepress:
"https://raw.githubusercontent.com/AliasIO/wappalyzer/master/src/drivers/webextension/images/icons/VuePress.svg",
unity: "https://www.vectorlogo.zone/logos/unity3d/unity3d-icon.svg",
unreal:
"https://raw.githubusercontent.com/kenangundogan/fontisto/036b7eca71aab1bef8e6a0518f7329f13ed62f6b/icons/svg/brand/unreal-engine.svg",
elixir: "https://www.vectorlogo.zone/logos/elixir-lang/elixir-lang-icon.svg",
heroku: "https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg",
hexo: "https://www.vectorlogo.zone/logos/hexoio/hexoio-icon.svg",
travisci: "https://www.vectorlogo.zone/logos/travis-ci/travis-ci-icon.svg",
apachecordova:
"https://www.vectorlogo.zone/logos/apache_cordova/apache_cordova-icon.svg",
zapier: "https://www.vectorlogo.zone/logos/zapier/zapier-icon.svg",
postman: "https://www.vectorlogo.zone/logos/getpostman/getpostman-icon.svg",
erlang: "https://www.vectorlogo.zone/logos/erlang/erlang-official.svg",
sqlite: "https://www.vectorlogo.zone/logos/sqlite/sqlite-icon.svg",
mssql: "https://cdn.worldvectorlogo.com/logos/microsoft-sql-server.svg",
middleman:
"https://raw.githubusercontent.com/leungwensen/svg-icon/b84b3f3a3da329b7c1d02346865f8e98beb05413/dist/svg/logos/middleman.svg",
matlab: "https://raw.githubusercontent.com/simple-icons/simple-icons/master/icons/mathworks.svg",
}
const skillWebsites = {
arduino: "https://www.arduino.cc/",
solidworks: "https://www.solidworks.com/",
vuejs: "https://vuejs.org/",
react: "https://reactjs.org/",
angularjs: "https://angular.io",
@@ -380,6 +463,7 @@ const skillWebsites = {
electron: "https://www.electronjs.org",
express: "https://expressjs.com",
go: "https://golang.org",
graphql: "https://graphql.org",
gulp: "https://gulpjs.com",
html5: "https://www.w3.org/html/",
hugo: "https://gohugo.io/",
@@ -387,14 +471,18 @@ const skillWebsites = {
javascript: "https://developer.mozilla.org/en-US/docs/Web/JavaScript",
ionic: "https://ionicframework.com",
laravel: "https://laravel.com/",
matlab: "https://www.mathworks.com/",
meteor: "https://www.meteor.com/",
mongodb: "https://www.mongodb.com/",
mysql: "https://www.mysql.com/",
nginx: "https://www.nginx.com",
nodejs: "https://nodejs.org",
openresty: "https://openresty.org/",
oracle: "https://www.oracle.com/",
photoshop: "https://www.photoshop.com/en",
xd: "https://www.adobe.com/products/xd.html",
php: "https://www.php.net",
perl: "https://www.perl.org/",
postgresql: "https://www.postgresql.org",
python: "https://www.python.org",
rails: "https://rubyonrails.org",
@@ -404,8 +492,8 @@ const skillWebsites = {
sass: "https://sass-lang.com",
scala: "https://www.scala-lang.org",
symfony: "https://symfony.com",
spring: "",
swift: "",
spring: "https://spring.io/",
swift: "https://developer.apple.com/swift/",
typescript: "https://www.typescriptlang.org/",
linux: "https://www.linux.org/",
redux: "https://redux.js.org",
@@ -430,33 +518,35 @@ const skillWebsites = {
opencv: "https://opencv.org/",
illustrator: "https://www.adobe.com/in/products/illustrator.html",
figma: "https://www.figma.com/",
blender: "",
blender: "https://www.blender.org/",
babel: "https://babeljs.io/",
sketch: "https://www.sketch.com/",
flask: "",
flask: "https://flask.palletsprojects.com/",
nativescript: "https://nativescript.org/",
xamarin: "https://dotnet.microsoft.com/apps/xamarin",
vagrant: "",
vagrant: "https://www.vagrantup.com/",
tailwind: "https://tailwindcss.com/",
materialize: "https://materializecss.com/",
invision: "https://www.invisionapp.com/",
framer: "",
framer: "https://www.framer.com/",
bulma: "https://bulma.io/",
couchdb: "",
couchdb: "https://couchdb.apache.org/",
firebase: "https://firebase.google.com/",
amplify: "https://aws.amazon.com/amplify/",
hive: "",
realm: "",
hive: "https://hive.apache.org/",
realm: "https://realm.io/",
gatsby: "https://www.gatsbyjs.com/",
gridsome: "",
gridsome: "https://gridsome.org/",
nuxtjs: "https://nuxtjs.org/",
jekyll: "https://jekyllrb.com/",
nextjs: "https://nextjs.org/",
reactnative: "https://reactnative.dev/",
mariadb: "https://mariadb.org/",
objectivec: "",
clojure: "",
haskell: "",
cockroachdb: "https://www.cockroachlabs.com/product/cockroachdb/",
objectivec:
"https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html",
clojure: "https://clojure.org/",
haskell: "https://www.haskell.org/",
svelte: "https://svelte.dev",
vuetify: "https://vuetifyjs.com/en/",
pug: "https://pugjs.org",
@@ -467,11 +557,34 @@ const skillWebsites = {
puppeteer: "https://github.com/puppeteer/puppeteer",
karma: "https://karma-runner.github.io/latest/index.html",
jasmine: "https://jasmine.github.io/",
gtk: "",
qt: "",
wx_widgets: "",
ember: "",
scikit_learn: "",
gtk: "https://www.gtk.org/",
qt: "https://www.qt.io/",
wx_widgets: "https://www.wxwidgets.org/",
ember: "https://emberjs.com/",
scikit_learn: "https://scikit-learn.org/",
quasar: "https://quasar.dev/",
kibana: "https://www.elastic.co/kibana",
grafana: "https://grafana.com",
elasticsearch: "https://www.elastic.co",
circleci: "https://circleci.com",
scully: "https://scully.io/",
sculpin: "https://sculpin.io/",
"11ty": "https://www.11ty.dev/",
sapper: "https://sapper.svelte.dev/",
vuepress: "https://vuepress.vuejs.org/",
unity: "https://unity.com/",
unreal: "https://unrealengine.com/",
hexo: "hexo.io/",
heroku: "https://heroku.com",
zapier: "https://zapier.com",
elixir: "https://elixir-lang.org",
travisci: "https://travis-ci.org",
apachecordova: "https://cordova.apache.org/",
sqlite: "https://www.sqlite.org/",
mssql: "https://www.microsoft.com/en-us/sql-server",
postman: "https://postman.com",
erlang: "https://www.erlang.org/",
middleman: "https://middlemanapp.com/",
}
const initialSkillState = {}
Binary file not shown.

After

Width:  |  Height:  |  Size: 395 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" height="64" width="64"><defs><path d="M-69.65 120.638a139.301 139.301 120 1 1 139.301 0L27.71 47.993a55.418 55.418 120 1 0-55.418 0z" id="A"/></defs><g transform="matrix(1.275322 0 0 1.275322 -38.047246 -14.965624)"><use transform="matrix(.063405 0 0 .063405 29.66229 12.95855)" y="140" x="298" xlink:href="#A" fill="#ff0101"/><use transform="matrix(-.063405 0 0 -.063405 87.614835 65.58504)" y="415" x="457" xlink:href="#A" fill="#0101ff"/><use transform="matrix(-.031703 -.054911 .054911 -.031703 20.379704 60.225737)" y="415" x="142" xlink:href="#A" fill="#01ff01"/></g></svg>

After

Width:  |  Height:  |  Size: 682 B

+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#EE4C2C;}
</style>
<g transform="matrix(2.21262 0 0 2.21262 -39.453867 -1.770085)">
<path class="st0" d="M35,7.2l-1.6,1.6c2.6,2.6,2.6,6.9,0,9.5c-2.6,2.6-6.9,2.6-9.5,0s-2.6-6.9,0-9.5l4.2-4.2L28.7,4V0.8l-6.4,6.4
c-3.5,3.5-3.5,9.1-0.1,12.6c0,0,0,0,0.1,0.1c3.5,3.5,9.1,3.5,12.6,0.1c0,0,0,0,0.1-0.1C38.6,16.3,38.6,10.6,35,7.2z"/>
<circle class="st0" cx="31.9" cy="5.5" r="1.2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 770 B

+1
View File
@@ -0,0 +1 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 48 48" xml:space="preserve"><style>.st2{fill:#010101}</style><g id="g3" transform="translate(-120.60861 -220.26017)"><path id="path5" d="M157.4 253.3c5.9-5.9 6.8-14.4 2.2-19.1-4.7-4.7-13.2-3.7-19.1 2.2-5.9 5.9-4.2 17.1-2.2 19.1 1.7 1.6 13.3 3.7 19.1-2.2z" fill="#f89939"/><path id="path7" d="M133.4 244.8c-3.4-3.4-8.4-4-11.1-1.3-2.7 2.7-2.1 7.7 1.3 11.1 3.4 3.4 9.9 2.4 11.1 1.3.9-.9 2.1-7.7-1.3-11.1z" fill="#3499cd"/></g><g id="g9" transform="translate(-120.60861 -220.26017)"><g id="g11"><path id="path13" class="st2" d="M145.1 251.9c-.6.6-1.1 1-1.6 1.2-.5.3-.9.4-1.3.4-.5 0-.9-.2-1.1-.6-.3-.4-.4-.9-.4-1.5 0-.9.2-2 .6-3.3.4-1.3.9-2.5 1.5-3.6l1.7-.6h.1c.1 0 .2.1.3.3.1.2.1.4.1.8 0 .9-.2 1.8-.6 2.6-.4.8-1.1 1.7-1.9 2.7 0 .5-.1.8-.1.9 0 .4.1.7.2.9.1.2.3.3.6.3.2 0 .5-.1.8-.3.3-.2.7-.5 1.2-1.1l-.1.9zm-2.5-2.6c.6-.6 1-1.3 1.4-2.1.3-.8.5-1.4.5-2 0-.2 0-.3-.1-.4 0-.1-.1-.1-.2-.1-.2 0-.4.4-.7 1.2-.3.8-.6 1.9-.9 3.4z"/><path id="path15" class="st2" d="M150.1 251.9c-.6.6-1.1 1-1.5 1.2-.4.3-.9.4-1.5.4s-1.1-.2-1.5-.6c-.4-.4-.6-.9-.6-1.5 0-.9.3-1.8 1-2.5.6-.8 1.4-1.1 2.2-1.1.4 0 .7.1 1 .3.2.2.4.5.4.8 0 .9-1 1.7-2.9 2.2.2.9.6 1.3 1.4 1.3.3 0 .6-.1.8-.2.3-.2.7-.5 1.2-1v.7zm-3.5-1.2c1.1-.3 1.7-.9 1.7-1.8 0-.4-.2-.6-.5-.6s-.6.2-.8.7c-.3.4-.4.9-.4 1.7z"/><path id="path17" class="st2" d="M157.1 251.9c-.7.7-1.2 1.1-1.5 1.3-.3.2-.6.3-.9.3-.7 0-1-.6-1-1.8-.4.6-.8 1.1-1.2 1.4-.4.3-.8.5-1.2.5-.4 0-.7-.2-1-.5s-.4-.8-.4-1.3c0-.7.2-1.3.5-1.9.4-.6.8-1.1 1.4-1.5.6-.4 1.1-.6 1.5-.6.6 0 .9.3 1.2.8l1.4-.7h.4l-.6 1.9c-.3 1-.5 1.6-.5 2 0 .4.1.6.4.6.2 0 .4-.1.6-.3.2-.2.5-.5.9-.8v.6zm-4.8.3c.4 0 .9-.4 1.3-1.1.4-.8.6-1.4.6-2.1 0-.2-.1-.4-.2-.6-.1-.1-.3-.2-.4-.2-.4 0-.9.4-1.3 1.1-.4.8-.6 1.4-.6 2.1 0 .2.1.4.2.6.1.2.2.2.4.2z"/><path id="path19" class="st2" d="M162.1 251.9c-1.1 1.1-2 1.6-2.6 1.6-.3 0-.5-.1-.7-.3-.2-.2-.3-.5-.3-.8 0-.6.3-1.5 1-2.5-.3.2-.7.3-1.1.4-.3.5-.7 1.1-1.4 1.7v-.6c.3-.4.7-.7.9-1.2-.4-.2-.6-.4-.6-.7 0-.3.1-.7.3-1.1.2-.4.6-.6 1-.6.3 0 .5.2.5.5s-.1.7-.3 1.2c.7-.1 1.4-.6 1.9-1.7h.6l-.6 1.7c-.3.7-.4 1.2-.5 1.5-.1.3-.1.5-.1.7 0 .2 0 .3.1.4.1.1.2.2.3.2.2 0 .3-.1.5-.2.1-.1.5-.4 1-.9l.1.7z"/><path id="path21" class="st2" d="M168.6 251.9c-1 1.1-1.9 1.6-2.6 1.6-.3 0-.5-.1-.7-.3-.2-.2-.3-.5-.3-.8 0-.5.2-1.2.6-2.2.2-.5.3-.9.3-1 0-.1-.1-.2-.2-.2s-.1 0-.2.1-.2.1-.3.3l-.4.4c-.1.1-.2.3-.4.4l-.4.4c-.2.2-.3.4-.3.6-.1.4-.1.7-.1 1v.9l-1.5.3c0-.6-.1-1-.1-1.3 0-.7.1-1.4.2-2 .2-.6.4-1.4.8-2.1l1.6-.3c-.3.9-.6 1.6-.7 2.2.7-.8 1.3-1.4 1.7-1.7.4-.3.8-.5 1.1-.5.2 0 .4.1.6.3.2.2.2.4.2.6 0 .4-.2 1.1-.6 2.1-.3.7-.4 1.1-.4 1.3 0 .3.1.4.3.4.3 0 .8-.4 1.6-1.3v.8z"/></g></g><text id="text25" transform="translate(26.54 25.2403)" font-size="3.9947" font-family="HelveticaNeue-BlackExt" fill="#fff">scikit</text></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F6BD3A;}
.st1{fill:#EB8C23;}
.st2{fill:#E35A2B;}
</style>
<g>
<path class="st0" d="M20.8,25.9l6.5-3.8l6.4,3.8l-6.4,3.7L20.8,25.9L20.8,25.9z M1.3,14.7L27.3,0l19.3,10.9L40.2,22l-12.9-7.3
l-19.4,11L1.3,14.7z"/>
<path class="st1" d="M20.8,40.6v-7.4l6.4-3.7l6.5-3.7v7.4l-6.4,3.7v7.4L20.8,48V40.6z M20.8,25.9l-6.5-3.7l-6.5,3.6v-7.3L27.3,7.3
V22L20.8,25.9z M40.1,18.4v-3.7l6.4-3.8l0.1,7.4L40.1,22L40.1,18.4z"/>
<path class="st2" d="M14.3,44.1v-22l6.4-3.6l0.1,7.3l6.5,3.6v7.4l-6.5-3.5V48L14.3,44.1z M4.6,23.8l-3.2-2v-7.2l6.4,3.7v7.4
L4.6,23.8z M27.3,14.7V7.3l12.8,7.3l0.1,7.4L27.3,14.7L27.3,14.7z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 996 B

+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FF4A00;}
</style>
<path class="st0" d="M47.6,19.8H33.4l10-10c-0.8-1.2-1.5-1.9-2.3-3.1C40,5.9,38.9,5,38,4.1L28,14V0.2c-1.3-0.3-2.5-0.4-3.8-0.4
c-1.3-0.1-2.6,0-3.8,0.4v14.2L10,4.1C8.8,4.7,7.8,5.6,6.9,6.7C6.2,7.9,5,8.7,4.2,9.8l10,10H0.4L0,23.6c-0.1,1.3,0,2.6,0.4,3.8h14.2
L4.2,37.8c1.5,2.3,3.5,4.2,5.8,5.8l10-10v14.2c1.3,0.3,2.5,0.4,3.8,0.4c1.3,0.1,2.6,0,3.8-0.4V33.6l10,10c1.2-0.7,2.2-1.6,3.1-2.7
c1-0.9,1.9-2,2.7-3.1l-10-10h14.2c0.3-1.3,0.4-2.5,0.4-3.8C48.1,22.6,47.9,21.2,47.6,19.8L47.6,19.8z M29.9,23.6
c0,1.7-0.3,3.4-0.8,5c-1.6,0.6-3.3,0.9-5,0.8c-1.7,0-3.4-0.3-5-0.8c-0.6-1.6-0.9-3.3-0.8-5c0-1.7,0.3-3.4,0.8-5
c1.6-0.6,3.3-0.9,5-0.8c1.7,0,3.4,0.3,5,0.8C29.6,20.3,29.9,21.9,29.9,23.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#Fill-1_1_);}
</style>
<desc>Created with Sketch.</desc>
<g id="Page-1">
<linearGradient id="Fill-1_1_" gradientUnits="userSpaceOnUse" x1="-266.2616" y1="433.4901" x2="-267.2616" y2="432.9336" gradientTransform="matrix(48 0 0 -35.8095 12831 15540.3857)">
<stop offset="0" style="stop-color:#FF9900"/>
<stop offset="1" style="stop-color:#FFC300"/>
</linearGradient>
<path id="Fill-1" class="st0" d="M10.4,35.8H24l3.5,6.1h-0.1H0l9.6-16.7l4-7l3.5,6L10.4,35.8z M15.5,15.1l3.3-5.8l18.8,32.6H31
L15.5,15.1z M20.7,6.1h6.7L48,41.9h-6.7L20.7,6.1z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 951 B

+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFA000;}
.st1{fill:#F57F17;}
.st2{fill:#FFCA28;}
</style>
<g>
<path class="st0" d="M29.4,17.3l-4.8,4.5l-4.5-9l2.3-5.2c0.6-1,1.5-1,2.1,0L29.4,17.3z"/>
<path class="st1" d="M20.2,12.8l4.5,9l-18,16.7L20.2,12.8z"/>
<path class="st2" d="M34.7,10.5c0.9-0.8,1.7-0.5,2,0.6l4.7,27.2l-15.5,9.3c-0.5,0.3-2,0.4-2,0.4s-1.3-0.2-1.8-0.4L6.7,38.5
L34.7,10.5z"/>
<path class="st0" d="M20.2,12.8L6.7,38.5l6-37.6c0.2-1.2,0.9-1.3,1.5-0.3L20.2,12.8z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 833 B

+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 5.1 5.1" style="enable-background:new 0 0 5.1 5.1;" xml:space="preserve">
<style type="text/css">
.st0{fill:#6762A6;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M4.1,5.1H1c-0.3,0-0.5-0.2-0.5-0.5V0.5C0.5,0.2,0.7,0,1,0h3.2c0.3,0,0.5,0.2,0.5,0.5v4.1
C4.6,4.9,4.4,5.1,4.1,5.1z"/>
<path class="st1" d="M3,4.4v-2c0,0,0.1-0.5-1.6,0.2c0,0,0-1.9,0-1.9l0.6,0v1.2c0,0,1.6-0.6,1.6,0.5v2L3,4.4L3,4.4z M3.3,1.4H2.7
c0.2-0.3,0.4-0.7,0.4-0.7h0.6C3.8,0.7,3.7,1,3.3,1.4L3.3,1.4z M1.4,4.4V3.3l0.6,0.6L1.4,4.4L1.4,4.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 795 B

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<path d="M48,37.2c-1.7,0.4-2.8,0-3.8-1.4l-6.9-9.5l-1-1.3l-8,10.9c-0.9,1.3-1.9,1.9-3.6,1.4L35,23.4l-9.6-12.5
c1.6-0.3,2.8-0.2,3.8,1.3l7.1,9.7l7.2-9.6c0.9-1.3,1.9-1.8,3.6-1.3l-3.7,4.9l-5,6.6c-0.6,0.8-0.5,1.3,0,2L48,37.2z M0,23.1L0.9,19
C3.1,10.8,12.6,7.4,19,12.5c3.8,3,4.7,7.2,4.5,11.9H2.2C1.9,32.9,8,38,15.8,35.4c2.7-0.9,4.4-3.1,5.2-5.7c0.4-1.3,1.1-1.6,2.4-1.2
c-0.6,3.4-2.1,6.2-5.2,7.9C13.6,39,7,38.2,3.6,34.5c-2.1-2.1-2.9-4.8-3.3-7.7c-0.1-0.5-0.2-0.9-0.3-1.4C0,24.7,0,23.9,0,23.1L0,23.1
z M2.3,22.6h19.3c-0.1-6.1-4-10.5-9.2-10.6C6.6,12,2.5,16.2,2.3,22.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 915 B

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#E10098;}
</style>
<g>
<path class="st0" d="M6.5,36.6l-1.8-1l19.6-34l1.8,1L6.5,36.6z"/>
<path class="st0" d="M4.4,32.8h39.3v2H4.4V32.8z"/>
<path class="st0" d="M24.8,45.3L5.1,34l1-1.8l19.6,11.3L24.8,45.3z M41.8,15.8L22.2,4.4l1-1.8L42.9,14L41.8,15.8z"/>
<path class="st0" d="M6.2,15.8l-1-1.8L24.8,2.7l1,1.8L6.2,15.8z"/>
<path class="st0" d="M41.5,36.6l-19.6-34l1.8-1l19.6,34L41.5,36.6z M5.9,12.7h2v22.7h-2V12.7z M40,12.7h2v22.7h-2V12.7z"/>
<path class="st0" d="M24.4,44.5l-0.9-1.5l17.1-9.9l0.9,1.5L24.4,44.5z"/>
<path class="st0" d="M44.8,36c-1.2,2-3.8,2.7-5.8,1.6c-2-1.2-2.7-3.8-1.6-5.8c1.2-2,3.8-2.7,5.8-1.6C45.3,31.3,46,34,44.8,36
M10.6,16.3c-1.2,2-3.8,2.7-5.8,1.6C2.7,16.7,2,14,3.2,12c1.2-2,3.8-2.7,5.8-1.6C11.1,11.6,11.8,14.2,10.6,16.3 M3.2,36
c-1.2-2-0.5-4.7,1.6-5.8c2-1.2,4.7-0.5,5.8,1.6c1.2,2,0.5,4.7-1.6,5.8C7,38.7,4.4,38,3.2,36 M37.4,16.3c-1.2-2-0.5-4.7,1.6-5.8
c2-1.2,4.7-0.5,5.8,1.6c1.2,2,0.5,4.7-1.6,5.8C41.2,19,38.6,18.3,37.4,16.3 M24,48c-2.4,0-4.3-1.9-4.3-4.3c0-2.4,1.9-4.3,4.3-4.3
s4.3,1.9,4.3,4.3c0,0,0,0,0,0C28.3,46.1,26.4,48,24,48 M24,8.6c-2.4,0-4.3-1.9-4.3-4.3c0,0,0,0,0,0C19.7,1.9,21.6,0,24,0
s4.3,1.9,4.3,4.3C28.3,6.6,26.4,8.6,24,8.6C24,8.6,24,8.6,24,8.6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFF00;}
.st1{fill:#FFFFCC;}
.st2{fill:#CCCC00;}
</style>
<path class="st0" d="M17.7,13.9l-3.2,0.5l-2.9,1.3l-2.5,1.6l-2.4,2.9l-1.3,1.4L4.1,22l-0.3-0.8l0.6-0.9l0.1-1.2l0.4,0l0.4,0.4
l-0.1-1.2l-0.5-0.3l0-0.5l-1.1,0.6l-1,1.2l-0.2,1.1l0.4,0.9l0.4,1.5l0.8,0.4l0.9,0l0.8-0.5l-0.6,2.8l0.6,3.2l-0.6,1.5l-2,2.2
l0.4,1.3l1,1.5l1.8,1.3l1,0.1l1.1,0l-0.7,2.7l2.4,1l3,0.4l1-0.7l0.1-1.8l1.2-1.9l0.1-1.5l2.8,0.2l2.6-0.2l-2.6,1.6l0.4,1.9l1.6,2.6
l1.6,0.7l1.3-0.5l0.5-1l2.7-2l0.5,0.4l4.2,0.2l0.8-0.7l0.1-1.2l-0.3-0.5l-0.2-3.2l-1.4-2.8l0.2-1.2l0.8,0.4l2.4,2.2l1.2,0.1l1.3-0.5
l1.3-1l0.6-2.1l3.7,0.2l2.3-0.9l1.8-1.7l1.3-2.5l0.3-2.9l-0.3-3.4l-0.7-3l-0.7-1l-1-0.3l-1.8,1.9l-1.6,0.6l-1.4-2.3l-1.4-1.3
l-0.8-0.5l-3-2.5l-2.4-1.3l-2.4-0.2l-2.8,0.5l-2.5,0.9l-1.7,1.4l-1.4,1.6l-1.4,0.4L17.7,13.9"/>
<path class="st1" d="M8.4,21.1c-2.7,3.2-2.1,7.1-1.4,10.8c-0.4-1-0.8-2-1.2-3.1L5.4,26c0-1,0.1-1.9,0.1-2.9l1.1-2.7l1.7-2.6l2.7-2.2
l2.9-1.2l3.4-0.4l-3.2,3.6C11.7,18.4,10.2,19,8.4,21.1"/>
<path class="st1" d="M21.3,11.4c-1.9,1.9-2.9,3.3-4.1,5.4c-0.9,1.6-1.8,3-2.7,4.6c-0.5,0.8-0.5,1.4-0.6,2.3l-1.3-1.6
c0.2-0.6,0.4-1.3,0.6-1.9l2.2-3.9l4.6-4.5C20.3,11.6,20.8,11.5,21.3,11.4 M30.7,6.8c-1.5,0.6-4,0.8-4.2,2.5
c-0.1,1.2,0.1,1.9,0.8,3.2c-1.8-1.9-2.3-1.6-5.9-1L23,9.3l2.7-1.7l3.4-0.8L30.7,6.8"/>
<path class="st2" d="M34.9,30.4c0.5,0.3,0.5,0.5,0.4,0.8c0.4-0.2,0.8-0.3,1.2-0.5l0.8-1l0.6-1.5l-0.7-0.6L33.9,28
c-0.1,0.2-0.2,0.4-0.2,0.7c0,0.3,0,0.6,0.1,0.9c0.1,0.2,0.2,0.4,0.3,0.5c0.2,0.1,0.3,0.2,0.5,0.2C34.6,30.4,34.8,30.4,34.9,30.4
M34.6,24.9c-1.6,0.5-1.6,0.6-2.1,2.2C33.1,26.1,33.6,25.6,34.6,24.9 M45.3,12.9c-0.3,0.1-0.6,0.2-0.7,0.5c-0.4,0.6-0.7,1-1.4,1.4
c-0.3,0.2-0.7,0.3-1,0.4c-0.3,0.1-0.5,0-0.7,0.2c0.1,0,0.3,0,0.4,0.1h0.9l1.2-0.7l0.7-0.7L45.3,12.9 M19.6,16.5
c-0.6,1.7-1.2,3.2-2.2,4.8c1.2-1.3,2-2.5,2.7-4c0.3-0.6,0.3-1.3,1.1-1c0,0.6,0.2,1.2,0.2,1.7c0.4-3,1.6-4.2,4.3-5.3L23.4,13
l-2.2,0.5L20.2,15L19.6,16.5 M24.8,16.4c0.6,2.7,1.4,5.4,1.8,8.2c0.2,1.8,0.3,2.7-0.6,4.2c-1-0.1-1.6,0-2.6,0.4
c-3.8,1.3-6,3.1-8.6-0.6l2.5,1.2c0.6-0.1,1.2-0.2,1.8-0.3c1-0.6,2.1-1.2,3.1-1.8l2.4-0.5l0.8-3.3l-0.6-4.4c0-0.7,0-1.4-0.1-2.1
C24.8,17.1,24.8,16.7,24.8,16.4 M31.5,33.4c-0.3,2.2,0.7,3.4,0.3,4c-0.1,0.2-0.3,0.5-0.5,0.6c-0.7,0.3-1.6-0.1-1.7,0.1h-2.2
l-0.9-0.4l1.4-1.6c0.4-1,0.9-1.9,1.3-2.9l0.9-2.9h0.4L31.5,33.4"/>
<path class="st2" d="M27.7,26.9c0.2,1,0.5,1.3,1,2.2c-0.3,1.6-0.8,3.5-1.4,4.9c-0.3,0.6-0.5,0.9-0.9,1.4c-0.8,0.8-1.5,1.5-2.4,2.1
c-0.6,0.5-1.1,0.2-1.8,0.1c-0.3,0.6-0.4,0.9-1,1.2c-0.9,0.5-1.8-0.5-2.5-1.1c0.5,0.8,1.1,1.7,1.6,2.5c0.4,0.3,0.7,0.7,1.1,1l0.9,0.1
l1.2-0.8c0.2-0.4,0.4-0.8,0.7-1.2c0.5-0.3,0.9-0.7,1.4-1c0.6-0.5,1.1-1,1.7-1.4l1.1-1.5l1-1.8c0.4-1.2,0.8-2.5,1.2-3.7
c0-0.5,0.1-0.9,0.1-1.4c-0.5-0.2-1-0.5-1.5-0.7C28.5,27.6,28.1,27.3,27.7,26.9 M15.4,34.1c1.7,0,3.6-0.1,5.1-0.8
c0.4-0.7,0.9-1.2,1.4-1.8c-0.5,0.9-0.7,1.5-0.8,2.5l-0.5,0.8c-1.3,0-2.6,0.1-3.9,0.1c-0.4,0-0.8-0.1-1.3-0.1c0,0-0.1-0.1-0.1-0.1
C15.4,34.4,15.4,34.2,15.4,34.1 M15.2,32.9L15,31.6c-0.3,1.8-0.2,3-1,4.6c-0.6,0.7-1.4,1.4-2.2,1.7c0.1,0.4,0.1,0.7,0.1,1
c-0.2,1.2-2.5,0.6-3.4,0.6l4.6,1.2l1-0.4c0.1-0.7,0.2-1.3,0.3-2l1-1.8l0.2-1.1L15.2,32.9 M12.6,22.8c0,0.9-0.1,1.2,0.3,2
c0.5,1,1.1,1.9,1.6,2.8l0.2-1.9C14,24.8,13.3,23.8,12.6,22.8 M5.6,29.3c-0.1,0.3-0.3,0.6-0.4,0.9c0.4,1.4,0.8,2.2,1.5,3.4
c-0.1,0.5-0.2,0.7-0.5,1.1c-0.7-0.1-1.3-0.1-2-0.1c0.8,0.6,1.5,1.2,2.3,1.8c0.4-0.1,0.8-0.1,1.1-0.2l1.1-1.1l-1.6-2.5
C6.6,31.5,6.1,30.4,5.6,29.3 M45.3,12.4c0.5,2.1,1.1,4,1,6.2c-0.1,2.6-0.6,6-3,7.5c-2.7,1.8-5.9,0.9-8.9,0.2l3.7,1.5
c1.1,0.1,2.3,0.1,3.4,0.2c0.8-0.2,1.6-0.5,2.3-0.7c0.6-0.5,1.2-1,1.8-1.5L47,23l0.5-3.3c-0.1-1.1-0.3-2.2-0.4-3.3l-0.8-3.2
C46,12.9,45.7,12.7,45.3,12.4 M4.5,18.7c-1.2,0.8-1.7,1.2-1.6,2.7l0.4,1.3l0.5,0.4l0.6,0.2L5.7,23c0.2-0.6,0.4-1.2,0.6-1.9l-1.7,0.8
H4.2c-0.1-0.2-0.3-0.4-0.4-0.7l0.5-0.8L4.6,19c0.1,0,0.2,0.1,0.4,0.1c0.1,0.1,0.3,0.2,0.4,0.3l-0.1-0.8L5,18.2
C4.9,18.1,4.8,18,4.7,18L4.5,18.7 M32.4,6.9c1.1,1,2.5,1.9,3.3,3.2c0.3,0.5,0.7,0.7,0,1.4c0.8-0.2,1.1-0.2,1.7-0.1
c1.1,0.1,2.2,1.7,2.2,2.9c0,0.1-0.3,0.3-1.2,0.6c0,0-0.5-0.1-0.5,0c0.1,0.2,0.2,0.3,0.4,0.4c0,0.3,0.1,0.7,0.3,1
c0.5,0,1.1,0,1.6,0.2c0.2,0.3,0.2,0.6,0.1,0.9l0.6-0.1c-0.1-0.5-0.1-0.9-0.2-1.4c0.2-0.3,0.4-0.6,0.5-0.9L40.5,13
c-0.5-0.5-1-1-1.5-1.4l-0.1,0c-0.6-0.3-1.1-0.7-1.7-1l-2.8-2.3L32.4,6.9 M34.2,15.3c-0.1,0.1-0.1,0.3-0.3,0.4
c0.5,0.4,0.7,0.7,0.8,1.3c-0.5,0.3-1,0.5-1.6,0.8l-1.3,1.3c-0.6-0.3-0.7-0.5-1-1.1C30.6,18,30.3,18.1,30,18c0.2,0,0.3,0,0.4-0.1
l0.8-0.9c0.5-0.4,1-0.7,1.5-1.1l1-0.3C33.9,15.5,34.1,15.4,34.2,15.3"/>
<path class="st2" d="M35.7,16.9c-1.6,0.9-3.2,1.8-4.1,3.5C31.6,18.2,33.7,17.3,35.7,16.9 M31.3,12.7c-1.2,0.8-2.1,2.5-2,4.2
c-0.4-1.4-0.3-2.8,1-3.7c0.2-0.1,0.4-0.2,0.6-0.3C31,12.7,31.1,12.7,31.3,12.7"/>
<path d="M47.7,16.6c-0.2-1.4-0.6-2.8-1.1-3.7c-0.1-0.1-0.2-0.2-0.3-0.4c-0.3-0.3-0.6-0.5-1-0.6c-0.4-0.1-0.8-0.2-1.2,0
c-0.1,0-0.2,0.1-0.2,0.2c-0.2,0.2-0.4,0.5-0.6,0.8c-0.2,0.3-0.4,0.6-0.7,0.8c-0.3,0.2-0.7,0.4-1,0.5c-0.1-0.4-0.3-0.7-0.5-1
c-0.2-0.4-0.5-0.7-0.8-1.1c-0.2-0.3-0.5-0.5-0.7-0.7c-0.3-0.2-0.5-0.4-0.8-0.5c-0.8-0.5-1.5-1.1-2.2-1.7c-0.3-0.3-0.6-0.6-1-0.8
c-1.7-1.4-3.3-2.1-4.9-2.2C29,6,27.2,6.5,25.1,7.3c-1,0.4-1.7,0.9-2.4,1.5c-0.6,0.6-1.1,1.2-1.7,2c-0.3,0-0.6,0.1-0.9,0.2
c-0.3,0.1-0.7,0.4-1.1,0.7c-0.3,0.2-0.6,0.5-0.8,0.8c-0.2,0.2-0.5,0.5-0.7,0.7c-1.9,0.3-3.4,0.6-4.8,1.2c-1.4,0.5-2.7,1.3-3.9,2.4
c-0.5,0.4-1,0.9-1.4,1.5c-0.4,0.5-0.7,1-1,1.6c-0.3,0.3-0.5,0.6-0.8,0.8c-0.3,0.2-0.6,0.4-0.9,0.6l0,0c-0.2,0.1-0.3,0.1-0.3,0.1
c0,0,0,0,0-0.1c0.5-0.4,0.5-1.1,0.6-1.7C5,19.7,5,19.8,5.1,19.9c0.1,0.1,0.1,0.2,0.2,0.3l0.3,0.4l0.1-0.5c0.1-0.4,0.2-1,0.1-1.4
c-0.1-0.3-0.2-0.6-0.5-0.8c0-0.1,0-0.1,0.1-0.2c0.1-0.2,0.2-0.4,0.2-0.6l0.1-0.4l-0.4,0.1c-0.5,0.1-1.7,0.7-2.5,1.6
c-0.3,0.3-0.6,0.7-0.7,1c-0.2,0.4-0.3,0.8-0.2,1.2c0.1,0.3,0.2,0.7,0.6,1c0.1,0.2,0.1,0.4,0.2,0.6c0.1,0.2,0.1,0.4,0.2,0.6
c0.2,0.5,0.6,0.8,1.1,0.9c0.4,0.1,0.7,0.1,1.1,0c-0.1,0.5-0.1,0.9-0.1,1.4c0,0.6,0,1.4,0.1,2.2c0,0.2,0,0.4,0.1,0.6
C5,28,5,28.2,5.1,28.4C5,28.6,4.9,28.8,4.9,29l-0.3,0.9l-0.7,0.7c-0.2,0.2-0.5,0.5-0.7,0.7c0,0-0.1,0.1-0.2,0.2
c-0.5,0.4-0.6,0.5-0.4,1.3c0.1,0.5,0.2,1,0.5,1.4c0.2,0.4,0.5,0.9,0.9,1.2c0.5,0.5,1.3,1.1,2.1,1.4c0.5,0.2,1,0.3,1.4,0.2
c0,0.1,0,0.1-0.1,0.2c-0.1,0.2-0.2,0.4-0.2,0.6c-0.6,1.2,0,1.9,0.9,2.3c0.5,0.2,1,0.3,1.5,0.5c0.1,0,0.2,0.1,0.3,0.1
c0.6,0.2,1.6,0.5,2.6,0.5c1,0.1,1.9-0.1,2.2-1.1c0.1-0.4,0.2-0.6,0.2-0.9c0-0.3,0-0.5,0-0.8c0.3-0.6,0.4-0.8,0.6-1.1
c0-0.1,0.1-0.1,0.1-0.2c0.2-0.3,0.3-0.6,0.4-0.9c0-0.3,0-0.5,0-0.9c0,0,0-0.1,0-0.2c0.6,0.1,1.2,0.1,1.8,0.1c0.3,0,0.6,0,0.9,0
c-0.1,0-0.2,0.1-0.2,0.1l-0.1,0.1c-0.8,0.4-0.8,1.2-0.6,2c0.2,0.7,0.7,1.4,1,1.9c0.6,0.9,1.2,1.7,1.9,2.2c0.7,0.5,1.6,0.5,2.7-0.1
c0.6-0.3,0.7-0.6,1-1c0.1-0.1,0.2-0.3,0.2-0.4c0.2-0.2,0.8-0.6,1.4-1.1c0.2-0.2,0.4-0.3,0.6-0.5c0.1,0.1,0.3,0.2,0.5,0.2
c0.3,0.1,0.6,0.1,1,0.1c0.3,0,1.3,0,1.9,0c0.2,0,0.4,0,0.5,0c0.6,0,1.2,0,1.6-0.3c0.4-0.2,0.7-0.7,0.7-1.4c0-0.3,0-0.5,0-0.8
c0-0.2-0.1-0.4-0.3-0.6c0-0.3,0-0.7,0-1c0-0.3,0-0.7,0-1c0-0.4-0.1-0.7-0.1-1.1c-0.1-0.3-0.2-0.6-0.4-1c-0.1-0.2-0.2-0.5-0.3-0.7
l-0.2,0.1l0,0l0.2-0.1v0c-0.1-0.4-0.3-0.7-0.5-1.1c0-0.1,0-0.2,0-0.2l0.4,0.3l0.5,0.5c0.4,0.4,0.8,0.7,1.2,1c0.5,0.3,1,0.4,1.6,0.4
c0.7,0,1.4-0.3,2-0.8c0.6-0.4,1.1-1,1.3-1.7l0.2-0.6l0.1-0.4c1,0.2,2,0.2,3,0.1c1-0.1,1.9-0.3,2.7-0.8c1.2-0.6,2.1-1.6,2.7-2.7h0
c0.7-1.2,1.1-2.7,1.3-4.2C48.1,19.8,48,18.1,47.7,16.6z M35.2,26.6c-0.6-0.2-0.9-0.5-1.4-0.8c0.1,0.6,0.2,1.2,0,1.8
c-0.3,0.9-0.7,2.5,0.6,2.8c0.5,0.1,0.7,0.1,1.4-0.3c-0.6,0.1-0.8,0.1-1.2,0c-0.3-0.1-0.5-0.3-0.6-0.5c0.1,0.1,0.3,0.1,0.7,0.2
c1,0.2,1.9-0.2,2-0.9c0.1-0.4,0.1-0.6,0.3-1.1c0.2,0.1,0.4,0.1,0.6,0.2l-0.4,1.2c-0.3,1-1.5,1.8-2.6,1.8c-1,0-1.6-0.6-2.3-1.2
c-0.5-0.4-0.9-0.8-1.4-1.2c-1.2-0.4-2.2-0.8-3.3-1.7c0.8,0.9,1.3,1.5,2.5,1.9c-0.2,1.7-0.7,2.9-1.2,4.5c-0.2,0.7-2,3.6-2.5,3.9
c-0.3,0.2-2.5,2-2.9,2.3c-0.3,0.4-0.6,1-1,1.2c-1.4,0.7-2.3-0.7-3-1.9c-0.3-0.5-1.3-2.1-0.5-2.5c0.8-0.4,1.2-0.7,2-1.2
c0.1,0.2,0.3,0.4,0.4,0.6l-0.1-0.7c-0.1-0.4-0.1-0.8,0-1.2c0-0.4,0.1-0.8,0.1-1.2c-0.1,0.4-0.4,0.8-0.5,1.3c0,0.2-0.1,0.3-0.1,0.4
c-1.8,0.4-3.6,0.4-5.4,0.1c-0.1-0.7-0.3-1.4-0.4-1.9c0,0.6,0,2.1,0,3c0,0.7,0,0.9-0.4,1.5c-0.3,0.5-0.5,0.7-0.9,1.5
c0,0.6,0,0.9-0.1,1.5c-0.2,0.9-2.8,0.2-3.4,0c-0.8-0.2-2.5-0.6-2.1-1.6c0.4-1,0.6-2,0.8-3.3c-1.5-2.2-2.9-5.1-3.2-7.7
c-0.2-2-0.1-3.3,0.4-4.5c0.7-2,1.7-3.7,3.2-5.1c2.1-1.9,4.1-2.6,7.2-3.1c-0.7,0.8-1.5,1.7-2.3,2.7c-0.8,1-1.3,1.9-1.8,3
c-0.7,1.4-0.7,2,0.2,3.3c0.8,1.1,1.3,1.6,1.6,2.7c-0.3,0.6-0.4,1.1-0.5,1.9c1,1.1,1.7,1.8,2.7,2.1c0.9,0.2,1.7,0.2,2.6-0.3
c1.9-1,3.6-2.2,5.8-2.3c1-2.4,0.9-4.4,0.4-6.8c-0.3-1.6-0.5-3.1-0.6-4.7c-0.4,1.7-0.5,3.2-0.2,4.8c0.4,2,0.6,4.2-0.4,6
c-1.9,0.1-3.6,1.3-5.3,2.2c-0.7,0.4-1.4,0.4-2.2,0.2c-0.7-0.2-1.2-0.7-2-1.6c0-0.9,0.2-1.3,0.6-2.1c0.7-1.3,1.4-2.5,2.2-3.8
c-1,1.2-1.9,2.2-2.7,3.4c-0.3-0.8-0.7-1.3-1.4-2.2c-0.7-0.9-0.8-1.3-0.2-2.4c0.5-1.1,0.9-2,1.8-3c1.5-1.6,2.9-3.4,4.5-5
c0.9-0.9,1.3-0.8,2.4-1c1.1-0.2,2.1-0.4,3.2-0.6c-1.1,0.1-2.1,0.1-3.1,0.2l0,0c1-1.3,1.6-2,3.2-2.7c4-1.8,6.6-1.9,9.8,0.7
c0.8,0.7,1.5,1.4,2.4,2c-0.3,0-0.6,0.1-0.9,0.2c0.4-0.1,0.9,0,1.3,0.1c0.1,0.1,0.2,0.2,0.4,0.2c0.6,0.3,0.9,0.5,1.3,1.1
c0.4,0.6,0.8,1.2,1.1,1.8c-0.2-0.1-0.4-0.1-0.5-0.2c-0.3-0.2-0.7-0.1-1.1,0.1l0,0c-0.3,0.2-0.8,0.3-1.2,0.4c0.2,0.1,0.6,0.1,0.7,0
c0,0,0,0,0.1,0c-0.1,0.1-0.1,0.3-0.2,0.5c0,0.2,0,0.4,0.1,0.6l0,0c0,0.1,0.1,0.1,0.1,0.2c-0.2,0.1-0.3,0.1-0.5,0.2
c0.8-0.1,1.4-0.1,2.2,0c0,0.2,0.1,0.5,0.1,0.7l-0.3,0c0,0,0,0,0,0c-0.3-0.3-0.7-0.2-1.3-0.1c-1.6,0.4-1.2,1.3-2,2.6
c0.8-0.9,0.7-1.9,2-2.2c0.3-0.1,0.5-0.2,0.7-0.1c-0.4,0.2-0.7,0.5-0.8,0.8c-0.3,1-0.1,1.8-0.5,2.7c0.5-0.8,0.5-1.6,0.9-2.5
c0.2-0.3,0.7-0.8,1.1-0.8l0.3,0c0.1,0.5,0.1,1.1,0.1,1.5c-0.1,0.8-0.3,2-0.4,2.5c0.4-0.5,0.6-1.7,0.8-2.5c0.2-0.8,0.1-1.9,0-2.8
c-0.2-1.2,1.1-1,1.8-1.6c0.5-0.4,0.9-1.1,1.4-1.6c0.5-0.5,1.3,0.2,1.5,0.7c0.9,2.1,1.2,5.3,1,7.4c-0.3,2.3-1.4,4.9-3.4,6
C40.9,28.4,37.8,27.5,35.2,26.6L35.2,26.6z M31.5,37c-0.1,1-0.4,1-1.3,1c-0.4,0-1.9,0-2.3,0c-0.5,0-0.9-0.1-1-0.2
c0.9-0.6,2.3-3.2,2.6-4.1c0.3-0.9,0.6-1.8,0.9-2.7c0.1,0.4,0.2,0.7,0.4,1.1c0.3,0.7,0.4,1.1,0.4,1.7l0.1,2.2
C31.5,36.4,31.6,36.5,31.5,37L31.5,37z M5.6,29.7c0.5,1.9,1.5,3.7,2.5,5.3v0c-0.1,0.3-0.1,0.5-0.3,0.7c-0.7,1-2.6-0.5-3.2-1
c-0.6-0.6-1-1.3-1.1-2c-0.1-0.5,0-0.5,0.3-0.9l1.4-1.4C5.3,30.5,5.6,29.7,5.6,29.7z M4.6,17.8c-0.1,0.3-0.2,0.5-0.3,0.8
c-0.3,1,0.1,1.9-0.8,2.7c0.4,0.9,0.4,1.2,1.4,0.8c0.4-0.2,0.7-0.4,1-0.6c-0.1,0.4-0.3,0.7-0.4,1.1c0,0.1,0,0.1-0.1,0.2
c-0.7,0.3-1.7,0.5-2-0.3c-0.2-0.4-0.3-0.7-0.4-1.2C1.8,20,3.6,18.4,4.6,17.8z M5.2,19.1C5,19,4.9,18.9,4.7,18.9c0-0.1,0-0.2,0.1-0.4
c0-0.1,0-0.1,0-0.2C5.1,18.5,5.1,18.8,5.2,19.1L5.2,19.1z M40.8,14.5c0,0.1,0.1,0.2,0.1,0.3c0,0-0.1,0.1-0.1,0.1
c-0.1-0.1-0.1-0.3-0.2-0.4C40.6,14.5,40.7,14.5,40.8,14.5L40.8,14.5z M6.5,20.1L6.5,20.1L6.5,20.1L6.5,20.1z M15.6,35L15.6,35
L15.6,35z M26.3,38.2L26.3,38.2L26.3,38.2z M30.7,29.9L30.7,29.9L30.7,29.9L30.7,29.9z M4.7,21.6L4.7,21.6L4.7,21.6L4.7,21.6
L4.7,21.6z M46.5,25L46.5,25L46.5,25z M0.5,21.3c0.2-2.1,0.6-3.1,2.1-4.7C0.7,17.9,0.3,18.6,0.5,21.3"/>
<path d="M0,19.5c0.2-1,0.4-1.3,1-2.1C0.1,18.1-0.1,18.4,0,19.5 M22.4,6.1c-1.1,0.3-1.4,0.5-1.7,1.6C21.2,6.9,21.5,6.6,22.4,6.1"/>
<path d="M24.2,5.9c-2.3,0.6-2.9,1-3.7,3.6C21.5,7.6,22.2,6.9,24.2,5.9 M29.1,15.5c0.2-1.1,0.7-2.1,2.3-2.9
C29.2,13.2,28.8,14.1,29.1,15.5 M43.1,15.6c1.3-0.5,1.9-1.5,2.2-2.7c-0.5,1-1.3,1.9-2.4,2.4c-0.6,0.3-0.9,0.2-1.6,0.1
C42,15.6,42.4,15.8,43.1,15.6 M34.2,16.6c-0.2-0.4-0.5-0.6-0.8-0.8c0.3-0.2,0.6-0.4,0.9-0.6c-0.7,0.3-1.6,0.3-2.2,0.7
c-0.5,0.4-1.3,1.5-1.8,2c0.4-0.2,0.8-0.4,1.1-0.7c0,0.5,0.3,1,0.8,1.3c-0.2,0.3-0.4,0.6-0.5,0.9c1-1.2,2.6-2.2,4-2.6
c-0.4,0-0.9,0.1-1.4,0.2C34.3,16.9,34.3,16.8,34.2,16.6 M32.7,26c-0.1,0.3-0.1,0.7-0.2,1c0.1-0.4,0.3-0.8,0.5-1.1
c0.2-0.4,0.3-0.4,0.6-0.6c0.3-0.1,0.7-0.3,1-0.5c-0.3,0-0.7,0.1-1,0.2C32.9,25.2,32.8,25.4,32.7,26 M20.8,13.6
c-0.8,0.8-1.6,3.5-1.8,4.6c0.4-0.9,1.4-3.5,2.1-4.1c0.2-0.2,0.4-0.3,0.5-0.4c-0.5,0.9-0.5,1.1-0.3,2.4c0.2-1.2,0.6-1.7,1.3-2.6
c0.8-0.2,1.5-0.4,2.3-0.7c-0.9,0.1-1.8,0.2-2.7,0.3C21.5,13.1,21.3,13.1,20.8,13.6"/>
<path class="st1" d="M31.8,18.3c-0.1-0.3,0-0.7,0.3-0.8c0.3-0.1,0.7,0,0.8,0.3c0,0,0,0.1,0,0.1c-0.3,0.2-0.6,0.5-0.8,0.8
C32,18.5,31.9,18.4,31.8,18.3 M38.7,15.6c0-0.3,0.2-0.4,0.5-0.4c0.3,0,0.4,0.3,0.4,0.5c0,0.1,0,0.1,0,0.2c-0.2,0-0.5,0.1-0.7,0.2
C38.8,15.9,38.7,15.7,38.7,15.6"/>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<path d="M32.5,26.6c-1.9,0-3.5,0.8-4.7,2.1l-2.9-2.1c0.3-0.9,0.5-1.8,0.5-2.7c0-0.9-0.2-1.9-0.5-2.7l2.9-2.1
c1.1,1.3,2.8,2.1,4.7,2.1c3.4,0,6.3-2.8,6.3-6.3S36,8.7,32.5,8.7s-6.3,2.8-6.3,6.3c0,0.6,0.1,1.2,0.3,1.8l-2.9,2.1
c-1.2-1.5-3-2.6-5-2.9v-3.5c2.8-0.6,5-3.1,5-6.1c0-3.4-2.8-6.3-6.3-6.3s-6.3,2.8-6.3,6.3c0,3,2.1,5.5,4.9,6.1v3.6
c-3.8,0.7-6.7,4-6.7,7.9c0,4,2.9,7.3,6.7,8v3.8c-2.8,0.6-4.9,3.1-4.9,6.1c0,3.4,2.8,6.3,6.3,6.3s6.3-2.8,6.3-6.3
c0-3-2.1-5.5-4.9-6.1v-3.8c1.9-0.3,3.7-1.3,4.9-2.9l3,2.1c-0.2,0.6-0.3,1.1-0.3,1.8c0,3.4,2.8,6.3,6.3,6.3s6.3-2.8,6.3-6.3
S36,26.6,32.5,26.6z M32.5,12c1.7,0,3,1.4,3,3s-1.4,3-3,3s-3-1.4-3-3S30.8,12,32.5,12z M14.3,6.3c0-1.7,1.4-3,3-3s3,1.4,3,3
s-1.4,3-3,3S14.3,7.9,14.3,6.3z M20.3,41.7c0,1.7-1.4,3-3,3s-3-1.4-3-3s1.4-3,3-3S20.3,40.1,20.3,41.7z M17.3,28.1
c-2.3,0-4.2-1.9-4.2-4.2c0-2.3,1.9-4.2,4.2-4.2c2.3,0,4.2,1.9,4.2,4.2C21.5,26.2,19.6,28.1,17.3,28.1z M32.5,35.9c-1.7,0-3-1.4-3-3
s1.4-3,3-3c1.7,0,3,1.4,3,3S34.2,35.9,32.5,35.9z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#009438;}
.st1{fill:#FEFEFE;}
</style>
<path class="st0" d="M3,24V12.6c0-0.4,0.2-0.8,0.6-1L23.3,0.2c0.4-0.2,0.8-0.3,1.1,0l19.8,11.5c0.3,0.2,0.6,0.6,0.5,1v22.9
c0,0.4-0.2,0.8-0.5,1l-17.1,9.9c-0.9,0.5-1.8,1.1-2.7,1.6c-0.4,0.2-0.8,0.2-1.2,0L3.5,36.4C3.2,36.2,3,35.9,3,35.5V24L3,24z"/>
<path class="st1" d="M17.2,19.8v13.4c0,1.5-1.2,2.8-2.8,2.8c-1,0-1.7-0.4-2.2-1.3c-0.3-0.4-0.4-0.8-0.4-1.3V14.8
c0-1.2,0.8-2.1,1.7-2.5s2-0.3,2.9,0c0.9,0.3,1.6,0.8,2.2,1.6L30.5,28c0,0,0.1,0.1,0.2,0.2V14.7c0-1.4,1-2.5,2.4-2.7
c1.7-0.2,2.9,1,3.1,2.3v18.9c0,1.1-0.5,1.8-1.4,2.3c-0.7,0.4-1.4,0.4-2.1,0.4c-1.1-0.1-2.1-0.5-2.9-1.2c-0.4-0.4-0.8-0.9-1.2-1.3
L17.2,19.9C17.2,19.9,17.2,19.8,17.2,19.8L17.2,19.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#539E43;}
</style>
<g>
<path class="st0" d="M24,47.9c-0.7,0-1.3-0.2-1.8-0.5l-5.9-3.5c-0.9-0.5-0.4-0.7-0.2-0.7c1.2-0.4,1.4-0.5,2.6-1.2
c0.1-0.1,0.3,0,0.4,0l4.5,2.7c0.2,0.1,0.4,0.1,0.5,0l17.6-10.2c0.2-0.1,0.3-0.3,0.3-0.5V13.8c0-0.2-0.1-0.4-0.3-0.5L24.2,3.2
c-0.2-0.1-0.4-0.1-0.5,0L6.1,13.3c-0.2,0.1-0.3,0.3-0.3,0.5v20.3c0,0.2,0.1,0.4,0.3,0.5l4.8,2.8c2.6,1.3,4.2-0.2,4.2-1.8v-20
c0-0.3,0.2-0.5,0.5-0.5h2.2c0.3,0,0.5,0.2,0.5,0.5v20c0,3.5-1.9,5.5-5.2,5.5c-1,0-1.8,0-4-1.1l-4.6-2.6c-1.1-0.7-1.8-1.9-1.8-3.2
V13.8c0-1.3,0.7-2.6,1.8-3.2L22.2,0.5c1.1-0.6,2.6-0.6,3.7,0l17.6,10.2c1.1,0.7,1.8,1.9,1.8,3.2v20.3c0,1.3-0.7,2.6-1.8,3.2
L25.8,47.5C25.3,47.8,24.6,47.9,24,47.9L24,47.9z M29.4,34c-7.7,0-9.3-3.5-9.3-6.5c0-0.3,0.2-0.5,0.5-0.5h2.3
c0.3,0,0.5,0.2,0.5,0.4c0.4,2.3,1.4,3.5,6,3.5c3.7,0,5.3-0.8,5.3-2.8c0-1.1-0.4-2-6.2-2.6c-4.8-0.5-7.8-1.5-7.8-5.4
c0-3.6,3-5.7,8-5.7c5.6,0,8.4,1.9,8.8,6.2c0,0.1,0,0.3-0.1,0.4c-0.1,0.1-0.2,0.2-0.4,0.2h-2.3c-0.2,0-0.4-0.2-0.5-0.4
c-0.5-2.4-1.9-3.2-5.5-3.2c-4,0-4.5,1.4-4.5,2.5c0,1.3,0.6,1.7,6,2.4c5.4,0.7,8,1.7,8,5.5C38.2,31.8,35,34,29.4,34L29.4,34z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#B1DB9E;stroke:#B1DB9E;stroke-width:0.5;stroke-linecap:round;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#85CB65;stroke:#85CB65;stroke-width:0.5;stroke-linecap:round;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#75B35B;stroke:#75B35B;stroke-width:0.5;stroke-linecap:round;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#6FB950;stroke:#6FB950;stroke-width:0.5;stroke-linecap:round;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#6FB850;stroke:#6FB850;stroke-width:0.5;stroke-linecap:round;}
.st5{fill-rule:evenodd;clip-rule:evenodd;fill:#77C656;stroke:#77C656;stroke-width:0.5;stroke-linecap:round;}
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
</style>
<symbol id="A" viewBox="-45.2 -46.2 90.5 92.5">
<g>
<path class="st0" d="M-40.4-0.6c12.6,0.3,17,0.9,26.3,1.8C-9,11.6-9.2,9.4-7,21.7c-8.3-9.5-20.9-19.5-33.8-22.3"/>
<path class="st1" d="M-39-46c11.1,5.7,38.8,24.2,46.4,27.9c4-1,9.8-3.6,17.8-0.5C16.3-17.6,8.7-7.7-0.2-0.9
c-8-20.3-21.4-32-27.2-38.3"/>
<path class="st2" d="M-44.8-19.4c15.4,3.1,20.6,4.9,31.7,8C-6,3.5-8,10.5-9.5,19.9C-16.7,2.7-29.8-13.2-45-19.4"/>
<path class="st3" d="M-38.8-45.9c8.9,5.2,20.7,21,25.6,34c1.8,5.2,4.5,17.7,3.6,31.8C-8,28.7,3.4,54.3,28.8,43.3
c-12.9,0-19.2-4.9-25.9-15.9C2.5,27.2-3.8,8.9-0.2-0.9C-8.7-29.1-32.1-42.9-39-46"/>
<path class="st0" d="M24.3,36.6c10.3,0,18.5-7,20.5-18.2c0.1-0.7,1.6,8.3-8.2,19.3c-0.7,0.7-6.7,1.6-12.1-1"/>
</g>
<g>
<path class="st4" d="M31.5-3c2.2,1.6,3.6,2.9,4.9,4.4c1.3,1-0.9-3.6-1.3-4.2c0.7-3.4-1.4-8.5-1.7-8.6c-1.6-1.6-30,9.4-20.2,35.4
C12.3,2.2,22.5-2,31.5-3L31.5-3z"/>
<path class="st5" d="M28.8,43.3c3.1-1.3,5.1-3.6,7.8-5.7c0.1-0.1-18.1,2.5-23.4-13.7c-1.8-2.9-8.3-26.7,20.1-35.5
c-1.3-2.9-6.7-6.6-8.1-7.1c-8.9,1-19,6.1-25.2,17.2C-5,7.5-2.4,45.1,28.8,43.3L28.8,43.3z"/>
</g>
<ellipse class="st6" cx="31" cy="-8.8" rx="1.3" ry="1.6"/>
</symbol>
<use xlink:href="#A" width="90.5" height="92.5" x="-45.2" y="-46.2" transform="matrix(0.5162 0 0 0.5162 24.004 24.0041)" style="overflow:visible;"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FF6600;}
</style>
<path class="st0" d="M44.8,19.2H29.7c-0.8,0-1.4-0.6-1.4-1.4l0,0V2.1c0-1.2-0.9-2.1-2.1-2.1h-5.4c-1.2,0-2.1,0.9-2.1,2.1v15.6
c0,0.8-0.7,1.5-1.5,1.5l-4.9,0c-0.8,0-1.5-0.7-1.5-1.5l0-15.6C10.9,0.9,10,0,8.8,0H3.4C2.2,0,1.3,0.9,1.3,2.1v44
c0,1,0.8,1.9,1.9,1.9h41.6c1,0,1.9-0.8,1.9-1.9v-25C46.7,20,45.9,19.2,44.8,19.2C44.8,19.2,44.8,19.2,44.8,19.2L44.8,19.2z
M37.7,35.7c0,1.3-1.1,2.4-2.4,2.4H31c-1.3,0-2.4-1.1-2.4-2.4v-4.3c0-1.3,1.1-2.4,2.4-2.4h4.3c1.3,0,2.4,1.1,2.4,2.4L37.7,35.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 887 B

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#C7402B;}
</style>
<path class="st0" d="M41.5,7.6L17.8,33.1l29.7-13.7C46.7,15,44.6,10.9,41.5,7.6L41.5,7.6z M23.9,0c-3.2,0-6.3,0.6-9.2,1.8l-3.2,26.7
L27.4,0.3C26.3,0.1,25.1,0,23.9,0L23.9,0z M47.8,20.9L19.6,36.7L46,33.5c1.3-3,2-6.2,1.9-9.5C48,23,47.9,22,47.8,20.9L47.8,20.9z
M37.4,44c3.2-2.1,5.8-5,7.6-8.3l-24.8,4.9L37.4,44z M28.8,0.5L15.1,30.4L40.6,6.7C37.4,3.6,33.3,1.4,28.8,0.5L28.8,0.5z M26,48
c2.6-0.2,5.1-0.9,7.5-1.9l-13.9-1.6L26,48L26,48z M2,14.2c-1.1,2.4-1.8,5.1-2,7.7l3.7,6.6L2,14.2z M12.6,2.8
c-3.4,1.8-6.3,4.4-8.5,7.6l3.5,17.5L12.6,2.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 941 B

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#6DB33F;}
</style>
<g id="Layer_2_1_">
<g id="logos">
<path class="st0" d="M43.7,2.8c-0.7,1.6-1.5,3.1-2.6,4.5C31.9-2.2,16.8-2.5,7.3,6.7s-9.8,24.4-0.6,33.9c0.3,0.3,0.6,0.6,1,1
l0.9,0.8c10.1,8.5,25.2,7.2,33.7-2.9c3.3-3.9,5.2-8.7,5.6-13.7C48.5,19.7,46.7,12,43.7,2.8z M11.1,41.7c-0.7,0.9-2,1-2.9,0.3
c-0.9-0.7-1-2-0.3-2.9c0.7-0.9,2-1,2.9-0.3C11.7,39.6,11.8,40.9,11.1,41.7z M43.6,34.6C37.7,42.4,25,39.8,17,40.2
c0,0-1.4,0.1-2.9,0.3c0,0,0.5-0.2,1.2-0.5c5.7-2,8.4-2.4,11.8-4.2c6.5-3.3,13-10.6,14.2-18.1c-2.5,7.2-10,13.4-16.8,16
c-4.7,1.7-13.1,3.4-13.1,3.4l-0.3-0.2c-5.7-2.8-5.9-15.3,4.5-19.3c4.6-1.8,8.9-0.8,13.9-2c5.3-1.2,11.4-5.2,13.9-10.4
C46.2,13.6,49.6,26.6,43.6,34.6z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#221F1F;}
.st2{fill:#5077B6;}
.st3{fill:#DE4032;}
.st4{fill:#30A14E;}
.st5{fill:#ECB215;}
</style>
<rect y="14.1" class="st0" width="48" height="19.8"/>
<g>
<g>
<g>
<path class="st1" d="M15,25.6c-0.2,0.3-0.5,0.5-0.8,0.6c-0.3,0.1-0.7,0.2-1,0.2c-0.3,0-0.7-0.1-1-0.2c-0.3-0.1-0.6-0.3-0.8-0.5
S11,25.3,10.9,25c-0.1-0.3-0.2-0.6-0.2-1c0-0.3,0.1-0.7,0.2-1c0.1-0.3,0.3-0.6,0.5-0.8c0.2-0.2,0.5-0.4,0.8-0.5
c0.3-0.1,0.6-0.2,1-0.2c0.4,0,0.7,0.1,1,0.2c0.3,0.1,0.6,0.3,0.8,0.6l-0.8,0.8c-0.1-0.2-0.3-0.3-0.4-0.4
c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2,0-0.3,0-0.5,0.1s-0.3,0.2-0.4,0.3c-0.1,0.1-0.2,0.3-0.3,0.4c-0.1,0.2-0.1,0.4-0.1,0.5
c0,0.2,0,0.4,0.1,0.5c0.1,0.2,0.2,0.3,0.3,0.4c0.1,0.1,0.3,0.2,0.4,0.3c0.2,0.1,0.3,0.1,0.5,0.1c0.2,0,0.4-0.1,0.6-0.2
c0.2-0.1,0.3-0.2,0.4-0.4L15,25.6z"/>
<path class="st1" d="M19.4,26.3h-1.2v-0.2c-0.2,0.1-0.4,0.2-0.6,0.3c-0.2,0.1-0.5,0.1-0.7,0.1c-0.2,0-0.4,0-0.6-0.1
c-0.2-0.1-0.3-0.2-0.5-0.3s-0.2-0.3-0.3-0.4s-0.1-0.4-0.1-0.6c0-0.3,0.1-0.5,0.2-0.7c0.1-0.2,0.3-0.4,0.5-0.5
c0.2-0.1,0.4-0.2,0.7-0.3c0.3-0.1,0.5-0.1,0.9-0.1h0.7c0-0.3-0.1-0.5-0.3-0.6c-0.2-0.2-0.4-0.2-0.8-0.2c-0.2,0-0.3,0-0.5,0.1
c-0.2,0.1-0.3,0.2-0.5,0.3l-0.7-0.7c0.2-0.2,0.5-0.4,0.9-0.5c0.3-0.1,0.7-0.2,1-0.2c0.3,0,0.6,0.1,0.9,0.2
c0.3,0.1,0.5,0.2,0.6,0.4c0.2,0.2,0.3,0.4,0.4,0.7c0.1,0.3,0.1,0.6,0.1,1L19.4,26.3L19.4,26.3z M18.2,25.1v-0.9h-0.5
c-0.2,0-0.3,0-0.5,0c-0.1,0-0.3,0.1-0.4,0.1c-0.1,0.1-0.2,0.1-0.2,0.2c-0.1,0.1-0.1,0.2-0.1,0.3c0,0.2,0.1,0.3,0.2,0.4
c0.1,0.1,0.3,0.2,0.5,0.2c0.2,0,0.3,0,0.5-0.1C17.9,25.3,18,25.2,18.2,25.1z"/>
<path class="st1" d="M24.5,26.3h-1.2v-2.8c0-0.2,0-0.3-0.1-0.4c-0.1-0.1-0.1-0.2-0.2-0.3c-0.1-0.1-0.2-0.1-0.3-0.2
c-0.1,0-0.2-0.1-0.3-0.1c-0.2,0-0.4,0-0.5,0.1s-0.3,0.2-0.5,0.3v3.4h-1.2v-4.6h1.2l0,0.3c0.1-0.1,0.2-0.1,0.3-0.2
c0.1-0.1,0.2-0.1,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1,0,0.2,0,0.3,0c0.2,0,0.5,0,0.7,0.1c0.2,0.1,0.4,0.2,0.6,0.3
c0.2,0.2,0.3,0.4,0.4,0.6c0.1,0.2,0.2,0.5,0.2,0.9L24.5,26.3L24.5,26.3z"/>
<path class="st1" d="M29.6,21.7l-1.7,4.6h-1.1L25,21.7h1.3l1,3.1l1-3.1H29.6z"/>
<path class="st1" d="M33.9,26.3h-1.2v-0.2c-0.2,0.1-0.4,0.2-0.6,0.3c-0.2,0.1-0.5,0.1-0.7,0.1c-0.2,0-0.4,0-0.6-0.1
c-0.2-0.1-0.3-0.2-0.5-0.3c-0.1-0.1-0.2-0.3-0.3-0.4s-0.1-0.4-0.1-0.6c0-0.3,0.1-0.5,0.2-0.7c0.1-0.2,0.3-0.4,0.5-0.5
c0.2-0.1,0.4-0.2,0.7-0.3c0.3-0.1,0.5-0.1,0.9-0.1h0.7c0-0.3-0.1-0.5-0.3-0.6c-0.2-0.2-0.4-0.2-0.8-0.2c-0.2,0-0.3,0-0.5,0.1
c-0.2,0.1-0.3,0.2-0.5,0.3L30,22.3c0.2-0.2,0.5-0.4,0.9-0.5c0.3-0.1,0.7-0.2,1-0.2c0.3,0,0.6,0.1,0.9,0.2
c0.2,0.1,0.5,0.2,0.6,0.4c0.2,0.2,0.3,0.4,0.4,0.7c0.1,0.3,0.1,0.6,0.1,1L33.9,26.3L33.9,26.3z M32.8,25.1v-0.9h-0.5
c-0.2,0-0.3,0-0.5,0c-0.1,0-0.3,0.1-0.4,0.1c-0.1,0.1-0.2,0.1-0.2,0.2c-0.1,0.1-0.1,0.2-0.1,0.3c0,0.2,0.1,0.3,0.2,0.4
c0.1,0.1,0.3,0.2,0.5,0.2c0.2,0,0.3,0,0.5-0.1C32.4,25.3,32.6,25.2,32.8,25.1z"/>
<path class="st1" d="M38.2,25c0,0.2-0.1,0.4-0.2,0.6c-0.1,0.2-0.2,0.3-0.4,0.4c-0.2,0.1-0.4,0.2-0.6,0.3
c-0.2,0.1-0.4,0.1-0.6,0.1c-0.4,0-0.7-0.1-1-0.2c-0.3-0.1-0.6-0.3-0.8-0.6l0.7-0.7c0.1,0.2,0.3,0.3,0.5,0.4
c0.2,0.1,0.4,0.1,0.6,0.1c0.2,0,0.3,0,0.5-0.1c0.1-0.1,0.2-0.2,0.2-0.3c0-0.1-0.1-0.3-0.3-0.3c-0.2-0.1-0.4-0.2-0.7-0.3
c-0.2-0.1-0.4-0.1-0.5-0.2c-0.2-0.1-0.3-0.2-0.5-0.3c-0.1-0.1-0.2-0.3-0.3-0.4c-0.1-0.2-0.1-0.3-0.1-0.5c0-0.2,0.1-0.4,0.2-0.6
c0.1-0.2,0.2-0.3,0.4-0.4c0.2-0.1,0.4-0.2,0.6-0.3c0.2-0.1,0.4-0.1,0.7-0.1c0.7,0,1.3,0.3,1.7,0.8L37.5,23
c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.4-0.1-0.6-0.1c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1
c0,0.1-0.1,0.1-0.1,0.2c0,0.1,0.1,0.2,0.2,0.3c0.2,0.1,0.4,0.2,0.7,0.3c0.2,0.1,0.4,0.1,0.6,0.2c0.2,0.1,0.3,0.2,0.5,0.3
c0.1,0.1,0.2,0.3,0.3,0.4C38.2,24.6,38.2,24.8,38.2,25z"/>
<path class="st1" d="M42.6,24.2c0,0.4-0.1,0.8-0.2,1.1c-0.2,0.3-0.3,0.5-0.6,0.7c-0.2,0.2-0.5,0.3-0.7,0.4
c-0.2,0.1-0.5,0.1-0.7,0.1c-0.4,0-0.7-0.1-1-0.3c-0.3-0.2-0.6-0.4-0.8-0.7l0.8-0.8c0.1,0.2,0.2,0.3,0.4,0.4
c0.2,0.1,0.3,0.1,0.5,0.1c0.1,0,0.2,0,0.4-0.1c0.1,0,0.2-0.1,0.3-0.2c0.1-0.1,0.2-0.2,0.2-0.3c0.1-0.1,0.1-0.3,0.1-0.4v-4.3h1.3
L42.6,24.2L42.6,24.2z"/>
<path class="st1" d="M48,24.6c0,0.2-0.1,0.5-0.2,0.7c-0.1,0.2-0.2,0.4-0.4,0.6c-0.2,0.2-0.4,0.3-0.7,0.4
c-0.3,0.1-0.5,0.1-0.8,0.1c-0.3,0-0.5,0-0.7,0c-0.2,0-0.4-0.1-0.6-0.2c-0.2-0.1-0.4-0.2-0.6-0.3c-0.2-0.1-0.4-0.2-0.6-0.4
l0.9-0.9c0.3,0.2,0.5,0.4,0.8,0.5c0.2,0.1,0.5,0.1,0.8,0.1c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.1,0.2-0.2
c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.2-0.4-0.2c-0.2-0.1-0.4-0.2-0.7-0.3
c-0.2-0.1-0.5-0.2-0.7-0.3c-0.2-0.1-0.4-0.2-0.6-0.4c-0.2-0.2-0.3-0.3-0.4-0.5c-0.1-0.2-0.1-0.5-0.1-0.7c0-0.3,0.1-0.5,0.2-0.8
c0.1-0.2,0.3-0.4,0.4-0.6c0.2-0.2,0.4-0.3,0.7-0.4c0.3-0.1,0.5-0.1,0.8-0.1c0.5,0,0.9,0.1,1.2,0.2c0.3,0.1,0.6,0.3,0.9,0.6
L47,21.4c-0.2-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.4-0.1-0.7-0.1c-0.1,0-0.2,0-0.3,0.1c-0.1,0-0.2,0.1-0.3,0.1
c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2,0.1,0.3s0.1,0.2,0.2,0.2c0.1,0.1,0.2,0.2,0.4,0.2
c0.2,0.1,0.4,0.2,0.6,0.3c0.3,0.1,0.6,0.2,0.8,0.4c0.2,0.1,0.4,0.3,0.6,0.4c0.1,0.2,0.3,0.3,0.3,0.5C48,24.1,48,24.4,48,24.6z"/>
</g>
</g>
<g>
<path class="st2" d="M10.8,16.1c0,0-0.3,0.1-0.5,0.2c-0.1,0-0.3,0.1-0.3,0.1c-0.1,0-0.2,0.1-0.2,0.1l1.6,3.6
c0.2-0.1,0.3-0.1,0.5-0.2L10.8,16.1z"/>
<path class="st2" d="M13,17.5c0,0-0.1,0-0.1,0c-0.1,0-0.2,0-0.3,0c-0.2,0-0.4,0.1-0.4,0.1l0.4,2.2c0.2,0,0.4,0,0.6-0.1L13,17.5z"
/>
<path class="st2" d="M15.4,14.3c0,0-0.1,0-0.2,0c-0.1,0-0.3,0-0.4-0.1c-0.2,0-0.3,0-0.4-0.1c-0.1,0-0.2,0-0.2,0l-0.5,5.6
c0.2,0,0.4,0,0.6,0.1L15.4,14.3z"/>
<path class="st2" d="M16.9,16.7c0,0-0.2-0.1-0.5-0.2c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.2-0.1-0.2-0.1l-1.3,3.6
c0.2,0.1,0.3,0.1,0.5,0.2L16.9,16.7z"/>
<path class="st3" d="M14.7,28l1.2,3.2c0,0,0.1,0,0.2-0.1c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.2-0.1,0.3-0.1c0.1,0,0.1-0.1,0.1-0.1
l-1.6-3C15.1,27.9,14.9,28,14.7,28z"/>
<path class="st3" d="M14,32.5c0,0,0.3,0,0.6-0.1c0.1,0,0.3-0.1,0.4-0.1c0.1,0,0.2,0,0.2,0l-1-4.1c-0.2,0-0.4,0.1-0.6,0.1L14,32.5z
"/>
<path class="st3" d="M12.2,29.9c0,0,0,0,0.1,0c0.1,0,0.2,0,0.3,0c0.2,0,0.4,0,0.4,0l0-1.6c-0.2,0-0.4,0-0.6-0.1L12.2,29.9z"/>
<path class="st3" d="M9,33.4c0,0,0.1,0,0.2,0.1c0.1,0,0.3,0.1,0.4,0.2c0.2,0.1,0.3,0.1,0.4,0.2c0.1,0,0.2,0.1,0.2,0.1l1.6-5.7
c-0.2-0.1-0.4-0.1-0.5-0.2L9,33.4z"/>
<path class="st4" d="M6.1,32.9c0,0,0.3,0.2,0.6,0.5c0.1,0.1,0.3,0.2,0.4,0.3c0.1,0.1,0.2,0.1,0.2,0.1l3.6-6.1
c-0.2-0.1-0.3-0.2-0.5-0.3L6.1,32.9z"/>
<path class="st4" d="M7.1,28.5c0,0,0.7,0.8,0.7,0.8l2.3-2.3c-0.1-0.1-0.3-0.3-0.4-0.4L7.1,28.5z"/>
<path class="st4" d="M4.7,27.4c0,0,0.1,0.3,0.2,0.5c0.1,0.1,0.1,0.3,0.2,0.4c0.1,0.1,0.1,0.2,0.1,0.2l4.1-2.4
c-0.1-0.2-0.2-0.3-0.2-0.5L4.7,27.4z"/>
<path class="st4" d="M2.1,25.4c0,0,0,0.1,0,0.2c0,0.1,0,0.3,0.1,0.5c0.1,0.4,0.2,0.7,0.2,0.7L9,25.1c0-0.2-0.1-0.4-0.1-0.6
L2.1,25.4z"/>
<path class="st5" d="M0.1,22.3c0,0,0,0.1,0,0.3c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.6C0,23.9,0,24,0,24L8.9,24c0-0.2,0-0.4,0-0.6
L0.1,22.3z"/>
<path class="st5" d="M6.2,21.2c0,0-0.1,0.2-0.2,0.5C6,21.7,6,21.9,6,21.9c0,0.1,0,0.1,0,0.1L9,22.9c0-0.2,0.1-0.4,0.2-0.5
L6.2,21.2z"/>
<path class="st5" d="M4.8,17.7c0,0-0.1,0.1-0.1,0.2c-0.1,0.1-0.2,0.2-0.3,0.4C4.2,18.6,4,18.9,4,18.9l5.4,3
c0.1-0.2,0.2-0.3,0.3-0.5L4.8,17.7z"/>
<path class="st5" d="M6.5,14.5c0,0-0.3,0.2-0.6,0.5c-0.3,0.2-0.6,0.5-0.6,0.5l5,5.4c0.1-0.1,0.3-0.3,0.5-0.4L6.5,14.5z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#36A2EB;}
.st1{fill:#FFCE56;}
.st2{opacity:0.8;fill:#FE6184;enable-background:new ;}
.st3{fill:#E7E9ED;}
</style>
<path class="st0" d="M43.6,24.2c-6.7,0.1-5.3,4.4-10,5.5c-4.8,1.1-5.6-11.7-10.4-11.7c-4.8,0-5.9,12.5-11.9,21l-0.2,0.2L24,46.6
l19.6-11.3V24.2z"/>
<path class="st1" d="M43.6,23.8c-2.2-2.9-3.8-6.2-7-6.2c-5.8,0-4.3,9.5-10.7,9.5c-6.4,0-7.1-10.2-14.3-0.6c-2.3,3-4.2,6.4-5.6,9.7
L24,46.6l19.6-11.3V23.8z"/>
<path class="st2" d="M4.4,27.7c2.2-6.1,3.2-11,7.4-11c6.4,0,7.9,18,13.4,16.2c5.5-1.8,4.9-11.6,13.4-11.6c1.6,0,3.3,1,4.9,2.6v11.4
L24,46.6L4.4,35.3L4.4,27.7L4.4,27.7z"/>
<path class="st3" d="M24,48L3.2,36V12L24,0l20.8,12v24L24,48z M5.7,34.6L24,45.2l18.3-10.6V13.4L24,2.8L5.7,13.4V34.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{clip-path:url(#SVGID_2_);}
.st1{fill:url(#SVGID_3_);}
.st2{fill:url(#SVGID_4_);}
.st3{fill:none;stroke:url(#SVGID_5_);stroke-width:16.5517;stroke-miterlimit:1.6552;}
</style>
<g>
<defs>
<path id="SVGID_1_" d="M0,1.3h3.9c12.6,0,22.7,10.2,22.7,22.7S16.4,46.7,3.9,46.7H0v-10h3.9c7,0,12.7-5.7,12.7-12.7
S10.9,11.3,3.9,11.3H0V1.3z M18.1,1.3h16C41.8,1.3,48,7.5,48,15.1c0,3.2-1.1,6.4-3.2,8.9c4.9,5.9,4.1,14.6-1.8,19.5
c-2.5,2.1-5.6,3.2-8.9,3.2h-16c3.9-2.5,7.2-5.9,9.4-10h6.6c2.1,0,3.9-1.7,3.9-3.9S36.3,29,34.1,29h-3.9c0.6-3.3,0.6-6.7,0-10h3.9
c2.1,0,3.9-1.7,3.9-3.9s-1.7-3.9-3.9-3.9h-6.6C25.3,7.2,22.1,3.7,18.1,1.3z"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<g class="st0">
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="337.4835" y1="-678.44" x2="389.4399" y2="-730.3964" gradientTransform="matrix(0.4138 0 0 -0.4138 -165.8965 -217.7353)">
<stop offset="0" style="stop-color:#F9A03C"/>
<stop offset="1" style="stop-color:#F7974E"/>
</linearGradient>
<path class="st1" d="M-64-49.7v150H86L-64-49.7z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="530.8096" y1="-441.6156" x2="606.9317" y2="-517.7377" gradientTransform="matrix(0.4138 0 0 -0.4138 -165.8965 -217.7353)">
<stop offset="0" style="stop-color:#B84E51"/>
<stop offset="1" style="stop-color:#F68E48"/>
</linearGradient>
<path class="st2" d="M-36-49.7h150v150L-36-49.7z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="402.4705" y1="-527.6592" x2="505.1709" y2="-631.5679" gradientTransform="matrix(0.4138 0 0 -0.4138 -165.8965 -217.7353)">
<stop offset="0" style="stop-color:#F26D58"/>
<stop offset="1" style="stop-color:#F9A03C"/>
</linearGradient>
<path class="st3" d="M-50-49.7l150,150"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{clip-path:url(#SVGID_2_);fill:url(#SVGID_3_);}
</style>
<g>
<defs>
<path id="SVGID_1_" d="M21.6,5.5c0,0,0,0.1,0,0.2c-0.2,0.1-0.4,0.1-0.6,0.2c-0.3,0.1-0.5,0.2-0.8,0.3c-0.3,0.1-0.5,0.2-0.8,0.3
c-0.5,0.2-1.1,0.5-1.6,0.8c-0.5,0.3-1,0.6-1.5,0.9c-0.1,0-0.1-0.1-0.1-0.1c-5-1.9-9.4,0.4-9.4,0.4c-0.4,5.3,2,8.7,2.5,9.3
c-0.1,0.3-0.2,0.7-0.3,1C8.4,20,8.1,21.2,8,22.5c0,0.2,0,0.4-0.1,0.6c-4.6,2.3-6,7-6,7c3.9,4.4,8.3,4.7,8.3,4.7c0,0,0,0,0,0
c0.6,1,1.2,2,2,2.9c0.3,0.4,0.6,0.7,1,1.1c-1.4,4,0.2,7.4,0.2,7.4c4.3,0.2,7.1-1.9,7.7-2.3c0.4,0.1,0.9,0.3,1.3,0.4
c1.3,0.3,2.7,0.5,4,0.6c0.3,0,0.7,0,1,0h0.2l0.1,0l0.2,0l0.2,0l0,0c2,2.9,5.6,3.3,5.6,3.3c2.5-2.7,2.7-5.3,2.7-5.9c0-0.6,0,0,0,0
c0,0,0-0.1,0-0.1c0,0,0-0.1,0-0.1c0.5-0.4,1-0.8,1.5-1.2c1-0.9,1.9-2,2.6-3.1c0.1-0.1,0.1-0.2,0.2-0.3c2.9,0.2,4.9-1.8,4.9-1.8
c-0.5-3-2.2-4.4-2.5-4.7s0,0,0,0c0,0,0,0,0,0c0,0,0,0-0.1,0c0-0.2,0-0.4,0-0.5c0-0.3,0-0.6,0-1l0-0.2l0-0.1v-0.1
c0-0.1,0-0.1,0-0.1l0-0.2l0-0.3c0-0.1,0-0.2,0-0.3c0-0.1,0-0.2,0-0.2l0-0.2l0-0.2c0-0.3-0.1-0.7-0.2-1c-0.3-1.3-0.8-2.5-1.5-3.6
c-0.7-1.1-1.5-2.1-2.4-2.9c-0.9-0.8-2-1.5-3.1-2c-1.1-0.5-2.2-0.8-3.4-1c-0.6-0.1-1.1-0.1-1.7-0.1l-0.2,0l-0.1,0c0,0-0.1,0-0.1,0
l-0.1,0l-0.2,0c-0.1,0-0.2,0-0.2,0c-0.3,0-0.6,0.1-0.9,0.1c-1.1,0.2-2.2,0.6-3.1,1.2c-0.9,0.6-1.8,1.3-2.4,2.1
c-0.7,0.8-1.2,1.7-1.5,2.6c-0.4,0.9-0.6,1.9-0.6,2.8c0,0.2,0,0.5,0,0.7c0,0.1,0,0.1,0,0.2l0,0.2c0,0.1,0,0.2,0,0.3
c0,0.5,0.1,0.9,0.3,1.3c0.2,0.9,0.6,1.6,1.1,2.3c0.5,0.7,1.1,1.2,1.7,1.6c0.6,0.4,1.3,0.7,2,0.9c0.7,0.2,1.3,0.3,1.9,0.3
c0.1,0,0.2,0,0.2,0c0,0,0.1,0,0.1,0l0.1,0c0.1,0,0.1,0,0.2,0c0,0,0,0,0.1,0l0.1,0c0,0,0.1,0,0.1,0c0.1,0,0.2,0,0.2,0
c0.1,0,0.1,0,0.2,0c0.1,0,0.3-0.1,0.4-0.1c0.3-0.1,0.5-0.2,0.8-0.3c0.2-0.1,0.5-0.3,0.7-0.4c0.1,0,0.1-0.1,0.2-0.1
c0.2-0.2,0.3-0.5,0.1-0.7c-0.2-0.2-0.4-0.2-0.6-0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.2,0.1-0.4,0.2-0.6,0.2c-0.2,0.1-0.4,0.1-0.6,0.2
c-0.1,0-0.2,0-0.3,0c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0c0,0,0,0,0,0l0,0l0,0
c0,0-0.1,0-0.1,0c-0.1,0-0.1,0-0.2,0c-0.5-0.1-1-0.2-1.4-0.4c-0.5-0.2-0.9-0.5-1.3-0.9c-0.4-0.4-0.8-0.8-1-1.3
c-0.3-0.5-0.5-1.1-0.6-1.6c0-0.3-0.1-0.6-0.1-0.9c0-0.1,0-0.2,0-0.2c0,0,0,0,0,0l0,0l0-0.1c0,0,0-0.1,0-0.1c0-0.2,0-0.3,0.1-0.5
c0.2-1.3,0.9-2.5,1.8-3.5c0.2-0.2,0.5-0.5,0.8-0.6c0.3-0.2,0.6-0.4,0.9-0.5s0.6-0.3,1-0.4c0.3-0.1,0.7-0.1,1-0.2
c0.2,0,0.3,0,0.5,0c0,0,0.1,0,0.1,0l0.1,0l0.1,0c0,0,0,0,0,0l0,0l0.1,0c0.4,0,0.8,0.1,1.1,0.2c0.7,0.2,1.5,0.4,2.1,0.8
c1.3,0.7,2.5,1.9,3.2,3.3c0.4,0.7,0.6,1.5,0.7,2.2c0,0.2,0.1,0.4,0.1,0.6l0,0.1l0,0.1c0,0.1,0,0.1,0,0.1c0,0,0,0.1,0,0.1v0.1
l0,0.1c0,0.1,0,0.3,0,0.3c0,0.2,0,0.4-0.1,0.6c0,0.2-0.1,0.4-0.1,0.6c0,0.2-0.1,0.4-0.1,0.6c-0.1,0.4-0.2,0.8-0.4,1.2
c-0.3,0.8-0.7,1.6-1.2,2.3c-1,1.4-2.4,2.5-4,3.3c-0.8,0.4-1.6,0.6-2.5,0.8c-0.4,0.1-0.9,0.1-1.3,0.1l-0.1,0H28l-0.1,0h-0.2h-0.1
c0.1,0,0,0,0,0l0,0c-0.2,0-0.5,0-0.7,0c-0.9-0.1-1.8-0.2-2.7-0.5c-0.9-0.3-1.8-0.6-2.6-1c-1.6-0.9-3.1-2.1-4.2-3.5
c-0.6-0.7-1.1-1.5-1.5-2.3c-0.4-0.8-0.7-1.7-1-2.5c-0.2-0.9-0.4-1.8-0.4-2.7l0-0.2l0,0v0l0-0.1l0-0.1l0,0v-0.1v-0.1l0-0.2v0
c0,0,0,0,0,0V25c0-0.1,0-0.2,0-0.3c0-0.4,0.1-0.9,0.1-1.4c0.1-0.5,0.1-0.9,0.2-1.4c0.1-0.5,0.2-0.9,0.3-1.3
c0.3-0.9,0.6-1.7,0.9-2.6c0.7-1.6,1.7-3.1,2.9-4.2c0.3-0.3,0.6-0.6,0.9-0.8c0.3-0.3,0.6-0.5,1-0.7c0.3-0.2,0.7-0.4,1-0.6
c0.2-0.1,0.4-0.2,0.5-0.3c0.1,0,0.2-0.1,0.3-0.1s0.2-0.1,0.3-0.1c0.4-0.2,0.8-0.3,1.1-0.4c0.1,0,0.2-0.1,0.3-0.1
c0.1,0,0.2-0.1,0.3-0.1c0.2-0.1,0.4-0.1,0.6-0.2c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2,0,0.3-0.1c0.1,0,0.2,0,0.3-0.1l0.2,0l0.2,0
c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0c0.1,0,0.1,0,0.2,0l0.1,0l0.1,0l0.1,0c0.1,0,0.2,0,0.3,0l0.2,0
c0,0,0.1,0,0,0l0,0l0.1,0c0.1,0,0.2,0,0.3,0c0.4,0,0.8,0,1.2,0c0.8,0,1.5,0.1,2.3,0.3c1.5,0.3,2.8,0.7,4.1,1.4
c1.3,0.6,2.4,1.4,3.3,2.2c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.2,0.2,0.3,0.3c0.1,0.1,0.2,0.2,0.3,0.3
c0.1,0.1,0.2,0.2,0.3,0.3c0.4,0.4,0.8,0.9,1.1,1.3c0.7,0.9,1.2,1.8,1.7,2.6c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2
c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.3c0.2,0.4,0.3,0.8,0.4,1.1c0.2,0.6,0.3,1.1,0.5,1.5
c0,0.2,0.2,0.3,0.4,0.3c0.2,0,0.3-0.2,0.3-0.4c0-0.5,0-1.1-0.1-1.7c-0.1-0.8-0.2-1.7-0.5-2.8c-0.3-1-0.7-2.1-1.2-3.3
c-0.6-1.2-1.3-2.4-2.3-3.5c-0.4-0.5-0.8-0.9-1.3-1.4c0.7-2.7-0.8-5-0.8-5C37.3,5,35.7,6,35.1,6.4c-0.1,0-0.2-0.1-0.3-0.1
c-0.4-0.2-0.9-0.3-1.4-0.5S32.5,5.5,32,5.4c-0.5-0.1-1-0.2-1.5-0.3c-0.1,0-0.2,0-0.3,0C29.1,1.5,25.9,0,25.9,0
C22.3,2.3,21.6,5.5,21.6,5.5"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-1157.1758" y1="-7712.5269" x2="-1150.0594" y2="-7712.5269" gradientTransform="matrix(0 -6.1635 6.1635 0 47560.4922 -7073.5063)">
<stop offset="0" style="stop-color:#FFF200"/>
<stop offset="1" style="stop-color:#F15A29"/>
</linearGradient>
<path class="st0" d="M1.9,0h44.2v48H1.9L1.9,0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#E9478B;}
.st1{fill:#3EBEB0;}
.st2{fill:#37A595;}
.st3{fill:#353535;}
</style>
<path class="st0" d="M6.2,18c6.4,0,12.4,1.7,17.6,4.5L42.5,0h-37v44.5V18C5.5,18,6.2,18,6.2,18z"/>
<path class="st1" d="M23.8,22.4L5.5,44.5V48h36.9C40.3,37,33.3,27.7,23.8,22.4z"/>
<path class="st2" d="M23.8,22.4L5.5,44.5V48H12l17.8-21.5c0,0-1.2-1-2.9-2.2C25.7,23.5,23.8,22.4,23.8,22.4z"/>
<path class="st3" d="M6.2,18H5.5v26.5l18.3-22.1C18.6,19.6,12.6,18,6.2,18z"/>
</svg>

After

Width:  |  Height:  |  Size: 833 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#151F34;}
.st1{fill:#348540;}
.st2{fill:#7DBC42;}
</style>
<g>
<path class="st0" d="M29.3,13.8c-1.7,0.4-3.5,0.6-5.3,0.6c-1.8,0-3.5-0.2-5.3-0.6c1.4-2.2,3.2-4.2,5.3-5.9
C26.1,9.5,27.9,11.5,29.3,13.8z M45.1,0.9C43,0.3,40.8,0,38.5,0C33.4,0,28.3,1.5,24,4.4C19.7,1.5,14.7,0,9.5,0C7.2,0,5,0.3,2.8,0.9
C1.9,1.1,1,1.4,0.1,1.7c0,0,0,0.1,0,0.1c0.4,0.8,0.8,1.6,1.2,2.4c0,0,0.1,0,0.1,0c0.9-0.3,1.8-0.6,2.7-0.8C10.2,2,16.4,3,21.6,6.2
c-2.3,1.9-4.2,4.2-5.7,6.7c-0.3,0.5-0.6,1-0.8,1.5s-0.3,0.7-0.5,1c-0.2,0.4-0.5,1.1-0.7,1.6c-3.6,9.8-1.1,20.8,6.4,28.1
c0.4,0.4,0.8,0.7,1.2,1.1c0.4,0.4,0.7,0.6,1,0.8s0.9,0.7,1.3,1c0,0,0.1,0,0.1,0c0.4-0.3,0.9-0.6,1.3-1c0.4-0.3,0.7-0.5,1-0.8
c0.3-0.3,0.8-0.7,1.2-1.1c5.2-4.9,8.1-11.8,8.1-18.9c0-3.1-0.5-6.2-1.6-9.1c-0.2-0.6-0.4-1.1-0.7-1.6c-0.2-0.5-0.3-0.7-0.5-1
s-0.5-1-0.8-1.5c-1.5-2.5-3.4-4.8-5.7-6.7C31.6,3,37.9,2,43.8,3.4c0.9,0.2,1.8,0.5,2.7,0.8c0,0,0.1,0,0.1,0
c0.4-0.8,0.8-1.5,1.2-2.3c0,0,0-0.1,0-0.1C47,1.4,46.1,1.1,45.1,0.9z"/>
<path class="st1" d="M32.9,26.2c0,6-2.3,11.7-6.4,16c-0.7-2.3-1.1-4.6-1.1-7c0-6,2.3-11.7,6.4-16C32.5,21.5,32.9,23.8,32.9,26.2"/>
<path class="st2" d="M22.6,35.2c0,2.4-0.4,4.7-1.1,7c-5.8-6.2-7.9-15-5.3-23.1C20.4,23.5,22.7,29.3,22.6,35.2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#E42528;}
</style>
<path class="st0" d="M39,29.3c0,2-1.1,3-3,3.1H12c-2,0-3-1-3-3.1c0-2,1.1-3,3-3.1H36C38,26.3,39,27.3,39,29.3z M36,33.9H12
c-2,0-3,1-3,3.1c0,2,1.1,3,3,3.1H36c2,0,3-1,3-3.1C39,34.8,38,33.9,36,33.9z M43.5,17L43.5,17c-2,0-3,1-3,3v16.8c0,2,1.1,3,3,3.1
l0,0c3-0.1,4.5-3.1,4.5-9.2v-7.6C48,19.1,46.4,17.1,43.5,17z M4.5,17L4.5,17c-3,0.1-4.5,2.1-4.5,6.2v7.6c0,6.1,1.6,9.1,4.5,9.2l0,0
c2,0,3-1,3-3.1V20.1C7.5,18.1,6.5,17.1,4.5,17z M43.5,15.5c0-5.1-2.6-7.5-7.4-7.6H12C7.1,8,4.5,10.6,4.5,15.5l0,0
c3,0,4.5,1.6,4.5,4.6s1.6,4.6,4.5,4.6h21c2.9,0,4.5-1.6,4.5-4.6C39,17,40.6,15.6,43.5,15.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 984 B

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#00A9E5;}
.st1{fill:#353535;}
.st2{fill:#00BFB3;}
.st3{fill:#019B8F;}
.st4{fill:#F9B110;}
.st5{fill:#FED10A;}
</style>
<g id="Elasticsearch_1_">
<g>
<path class="st0" d="M35,16.8H22.5c0.1,0.3,0.2,0.6,0.2,0.8c0.4,1.4,0.7,2.9,0.8,4.5c0.1,0.6,0.1,1.3,0.1,1.9c0,0.6,0,1.3-0.1,1.9
c-0.1,1.6-0.4,3.1-0.8,4.5c-0.1,0.3-0.2,0.6-0.2,0.8H35c4,0,7.1-3.2,7.1-7.2S39,16.8,35,16.8z"/>
<path class="st1" d="M23.5,25.9c0.1-0.6,0.1-1.3,0.1-1.9c0-0.6,0-1.3-0.1-1.9c-0.1-1.6-0.4-3.1-0.8-4.5c-0.1-0.3-0.2-0.6-0.2-0.8
H3.1C2.4,19.1,2,21.5,2,24c0,2.5,0.4,4.9,1.1,7.2h19.4c0.1-0.3,0.2-0.6,0.2-0.8C23.2,28.9,23.4,27.4,23.5,25.9z"/>
</g>
<g>
<path class="st2" d="M37.2,33.6H21.6c-0.5,1.1-1,2.1-1.6,3.1c-0.9,1.5-2,2.8-3.2,4.1c-0.4,0.4-0.8,0.8-1.3,1.2
c-0.8,0.8-1.8,1.4-2.8,2.1c3.8,2.5,8.3,4,13.2,4c8.3,0,15.7-4.3,20-10.7C43.7,35,40.6,33.6,37.2,33.6z"/>
<path class="st3" d="M20,36.7c0.6-1,1.1-2,1.6-3.1H4c1.9,4.3,4.9,7.9,8.8,10.4c1-0.7,1.9-1.3,2.8-2.1c0.4-0.4,0.8-0.8,1.3-1.2
C18,39.5,19.1,38.2,20,36.7z"/>
</g>
<g>
<path class="st4" d="M16.8,7.3c-0.4-0.4-0.8-0.8-1.3-1.2c-0.8-0.8-1.8-1.4-2.8-2.1C8.9,6.5,5.9,10.1,4,14.4h17.6
c-0.5-1.1-1-2.1-1.6-3.1C19.1,9.8,18,8.5,16.8,7.3z"/>
<path class="st5" d="M26,0c-4.9,0-9.4,1.4-13.2,4c1,0.7,1.9,1.3,2.8,2.1c0.4,0.4,0.8,0.8,1.3,1.2c1.2,1.3,2.3,2.6,3.2,4.1
c0.6,1,1.1,2,1.6,3.1h15.6c3.4,0,6.5-1.4,8.8-3.7C41.6,4.3,34.3,0,26,0z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

+95
View File
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FDEE21;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#C8C037;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#FCF6A0;}
.st3{fill-rule:evenodd;clip-rule:evenodd;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st5{fill-rule:evenodd;clip-rule:evenodd;stroke:#000000;stroke-width:8.298515e-03;stroke-miterlimit:10;}
</style>
<g transform="matrix(.072794 0 0 .072794 -.000407 .634153)">
<path class="st0" d="M377.3,87.6C371.6,71.8,172.6-5.6,170.1,2.9c-36.5,9.5-51.4,51.6-76.5,78.3L37.8,78
c-24.6,31.6-37.5,63.9-28.7,97.5c31.5,42.7,68.1,79,90.9,132.6c1.8,25.3,109.4,2.6,132.4-2.4c-31.5,22.5-58.9,57.5-47.1,158.1
c10.8,47.3,18.1,100,113.6,153.5c12.6,7,38.6,15.2,54.6,21.1c15.4,7.1,33.3,9.9,84.1-5.6c29.3-12.6,61-20.3,89.7-32.9l-34.5,1.6
c-47.5,1-84.2,4.6-95.5-8.7l-43.7-75.5l25.5-49.5c35.3,3.6,47,32.2,78.1,43.1l36.7-27.2c106.5,62.9,148.9-39.8,161-119.8
c-1.3-32.5-70.5,10.2-66.3-5c1.6-35-26.9-80.8-45.3-116.4l21.3-82.5c9.7-8.6-44.8-100.4-89.3-111.8
C436.2,38.2,377.3,87.6,377.3,87.6L377.3,87.6z"/>
<g>
<path class="st1" d="M552.3,263c0.4,8.9,0.3,19.6,1.2,26.4c-0.1,5.1-4,5.3-7.2,6.4l20.7,7.6c4.1,6.9,7.4,13.8,10.8,20.8
c3.9,17,1,17.5-1.6,18.8c-7.5,0.1-15,0.1-22-1.4c3.1,1.7,3.8,2.9,4.2,5c0.6,3.9-1.9,9.2-6.1,14.4c6.1,3.4,17.3,6.7,25.6,9.9
l9.5-21.1C583.1,318.7,570.1,290.2,552.3,263L552.3,263z M591,366.8c11.5,4.8,27.4,3.4,49.4-8c3.3-2.3,6.3-0.9,0.5,2.9
C611.9,387.6,598.1,374.7,591,366.8L591,366.8z"/>
<path class="st1" d="M642.6,355.4c3.4,6.5,1.3,11.9,0.2,17.4c-3.6,28.1-12.3,50.3-29.5,73.5c-55.9,89.8-112.3,33.6-157.2-3
L437.4,490c-1,4.1-5.1,7.3,24,20.1l29.6-20.9C603.8,575,683.8,368.9,642.6,355.4L642.6,355.4z M469.7,435.7
c-7.6,0.5-30.3,8.2-31.3,12.7l10.4-15.5L469.7,435.7z M454.9,340.5c1.4,0,8.1,1.8,7.4,1.4c-1-0.6-0.1,9.4,2,14.6l-8.2,17.8
c15.6-18,40.4-16.8,63.4-19.2l-11-6.8c1.9-6.3-0.3-11.4-1.4-16.8L454.9,340.5z M493.3,286.9c-16.8,5.1-32.9,13.6-43.7,31.5
c8.2-29.5,9.9-28.4,12.6-29.9C473.7,283.4,483.2,286.6,493.3,286.9z"/>
</g>
<path class="st2" d="M403.6,633.3c-20.3,22.4-65.6-1.7-103.2-14c-95.6-60.8-114.3-118-115.6-174.2c-4.9-80.4,19.8-127.1,51-138.2
c-20.7,39.9-30.3,111.4-20.7,164.6c7.7,29.6,7.9,79.5,57.4,106.2c24.2,13.7,17.7,24.3,34.1,37.1
C324.6,628.8,374.7,642.1,403.6,633.3L403.6,633.3z M434,261.6c-34.4-48.8-82.7-67-137.2-69c10.9-3.6,21.9-5.4,32.8-10.7
c2.7-2.8,1.8-7.8,0.8-12.8c-52.5-13.7-85.6-30.6-127.5-46.3L316,149.9C392.4,152.8,385.8,171.7,434,261.6L434,261.6z M470.8,238.1
c-25.4-36.3-50-80.3-83.5-108.3c-80.7-36.4-160.6-63.5-254.2-88.1L163,3.3C262.3,26,355.6,63.9,439.1,126.5
C453.3,162.2,462.7,198,470.8,238.1L470.8,238.1z M522,174c0,0-14.2-32-21.2-44.2c-16.1-17.8-24.2-51-57.2-66.7
c10.4,2.8,17.6-0.5,38.8,18.7l33.5,63.6L522,174z M539.7,229.4c3.3-27.7,9.5-72.1,2.4-89.6l-60-80c-3.3-3.1-5.7-7.3-8.3-10.6
c28.2,7.3,57.6,26.9,97.4,104.4L539.7,229.4z"/>
<path class="st3" d="M421.1,232.6c-11.2-8.9-21.2-40.1-38.3-46.6c-15.8-1.3-21.5-6.3-42.3-2.1c7.5-3.8,14.6-8.6,22.6-11.2
c5.4-1.3,10.5,0.1,15.7,0.8c1.3-0.6,2.1-1.4,1.8-2.5c-20.9-12.9-63.7-13.1-92.5-20.4c33.5,1.1,70.6-0.7,95.8,7.4
C404.2,176.1,410.7,209.9,421.1,232.6L421.1,232.6z M482.5,81.8c4.7,0.4,29.7,40,30.9,46.6c2.1,14.4,7.2,30.5,8.6,45.6
c-4.1-14.5-8.6-28.9-14.2-43.4c-1.7-4-5.8-13-17.3-25.7C485.1,96,483.9,89,482.5,81.8L482.5,81.8z M567.4,297.5h-10.7l11.8,3.1
L567.4,297.5z M494.3,286.8c-10.8-1.3-21.8-1.5-32.6,0.9c-4.4,5.9-4.7,11.9-6.6,17.4C468.2,290.7,473.4,289.8,494.3,286.8
L494.3,286.8z M641.2,361.2c-6,4.8-6.6,9.3-24.3,14.7c-12.9,3.1-20.2-2.1-26.3-9.1c9.2,2.6,10.7,9.6,35.4,1.8L641.2,361.2z
M587.5,364.2c-4.3,11.9-9,23.9-13.7,35c-11.2,13.1-6.4,5.6-23.1,26c5.3-8.2,12.3-16.2,15.9-24.8c2.6-5.7,5.7-11.7,7.1-16.7
c-4.4-2.2-13.5-2.4-14.7-1.6c-14.9,8.8-17.5,18-26.3,27.1c6.3-10.1,11.8-21.2,19.1-30.4c0.8-1.2,6.3-1.4,9.6-2.1
c-5.2-0.9-14.8-2.8-15.6-2.7c-9.7,2.3-15.1,10.8-22.3,16.4c5.2-7.6,10.1-15.5,16.7-22c0.7-0.8,18.7,0.8,28,4.5l0.2,3.7l5.3,2.1
l4-10L587.5,364.2z M469.9,435.7c-2.4-0.8-23.5-3.5-23.5-2.9c-8.1,5.8-9.3,11.3-9.2,16.1C450.7,435.7,450.2,435.6,469.9,435.7
L469.9,435.7z M453.8,340.3c0,0,15.2-2.2,14.9-0.8c-1.1,5.3,1.9,18.2,2.2,16.4l-8.6,7c17.9-9,36.8-7.2,56-8.6
c0,0-16.1-4.5-15.1-4.6c3.6-0.5-1-16.8-2.2-17.2c3.1-1,6.1-1.8,9.2-2.6C487.2,323.8,473.8,327.4,453.8,340.3L453.8,340.3z"/>
<path class="st3" d="M585.8,351.7l-3.4,1.7c-0.5-9.9-11.1-9.2-20.1-9.3l-7.4-1.8c2.3,2.1,9.2,1.9,6.4,6.4
c-2.4,1.3-3.4,6.7-4.8,11.2l-4,0.2l21.3,8.4l4.6,0.7l11-5.9L585.8,351.7z"/>
<path class="st4" d="M484.7,345c-1.7-3.4-10.3-2.9-12.2-0.7c-1.5,1.8-0.1,13.2,1.8,11.3c2.8-2.5,6.5-3.5,10.9-3.3
C485.8,350.1,485.6,347.9,484.7,345L484.7,345z M567.5,362c0.8-0.6,2.5-6.3,2-8.1c-1.1-4.1-9.2-3.2-9.2-3.2c-2,1.2-3.7,7.5-3,9.6
C557.7,362.1,566.2,362.7,567.5,362L567.5,362z"/>
<path class="st3" d="M224.3,560.1l5.1,0.5c30.1,14.8,79.5,36.6,151.2,24.9l11.2,17.7c-31.6,15.3-65.5,11.8-97.3,12.9L224.3,560.1z
M181.2,443.4l15.1,63.2c40.3,25.2,109.2,54.1,166.6,51.7l-12.7-29.1C230.3,503.8,220.2,471.6,181.2,443.4L181.2,443.4z
M218.6,313.9c7.4,49,17.2,86.1,59.8,117.2c26.1,18.8,52,37.5,83.5,52.9c0,0-2.8,14.4-5.1,14.1c-93.8-10.4-162.5-88.2-170.8-123.7
C194.1,347.2,205.7,330.2,218.6,313.9L218.6,313.9z M263.7,286.2c12.5,54.3,42.3,109.3,71.9,159.1c10.9,13.8,13.7,19.9,30.4,28.2
c22.6,7.2,38.6,5.3,55,4.3c-4.5-8.3-8.5-17-13.7-24.9c-36.8-29.1-19.8-55.5-10-72.3c-20.4-5.2-47.5-16.1-51.3-30.6
c-6-46.7-3-61.5,3.1-85.5C321.5,270.4,293.5,276.2,263.7,286.2L263.7,286.2z"/>
<path class="st5" d="M162.2-2.2c-9.1,5.9-17.9,14.4-27.3,24.1c-15.6,16.2-26,32-41.9,43.7c-3.2,2.7-12.1,7.2-23.3,7.8
c-5.3,0.3-8.7,1.1-18.5-0.1c-8.6-4.6-16.7-1.6-24.7,7.9c-8.7,12.5-19.8,36.3-24.3,51.3c-9.5,38.2,14.7,69.7,37.8,93.9
c20.6,20.1,32.4,32.7,40.9,51.1c6.4,12,11.1,28.4,16.3,39.9c1.8,3.6,1.5,3.6,6.5,4.7c10.8,2.3,25.7,2.3,38.9,3.5
c5.7,0.1,13.6-0.1,21.1-0.9c10.3-1.9,22.4-3.9,32.5-7.4c9.9-2.4,18.7-5.8,26.7-8.9c-1,3.5-8.6,6.8-11.5,11.3
c-27,38.6-34.4,73-29.7,127.2c2.7,24,8.2,44,16.5,66.8c3.8,10.4,11.9,27,19.7,37.9c23.1,32.6,74.8,74.5,146.7,90.7
c12.5,1.7,26.8,0.8,40.2-2.8c35.5-10.8,107.8-36.2,107.8-36.2s-64.2,5.3-93.6,2.4c-6.8-1.1-14.3-1.4-19.1-6.1
c-0.8-1-3.7-6.8-1.8-6.9c2.5-0.1,9.9-3.1,21.2-4.1c-24.1-2.6-23.8-2.6-25.5-7c-2.7-6.8-6.9-16.1-11.2-24.3c10.6,0.9,34,2.2,42-6
c0,0-13.9,1.6-26.1,0.2c-4.1-0.5-11.2-3-13.3-3.8c-5.5-2.1-10-2.8-11.1-4.2c-1.9-4.9-3.2-6.5-5.5-13c-3.1-8.6-3.4-18.3-4-27.1
c8,9.9,18.2,18.2,31.8,22.5c0.2-0.4,17.6,7.6,30.2,3.5l2.6-0.8c0,0.2-8.4,0.7-11.4-0.8c-25.7-10.9-29.5-20.5-33.7-25.2l-11.1-16.6
c3.4-6.7,5.3-7,9.8-7c13.5,1.5,19.4,2.7,27.6,0.7c5.6,11.4,7.1,22.9,19.7,31.2c42.1,12.5,51.3-3.7,61.5-18
c30.3,22.2,79.7,29.1,113.9,0.4c43.6-50.4,57.4-129.9,53.5-134.4c-5.4-9.2-12.6-18.8-18.7-17.4c-21.8,6-29.9,17-51.6,14.5
c2.6-0.1,6.9-0.2,6.9-0.5c1.7-18.3-0.1-27.2-0.9-28.7c-6.6-14.5-15.2-29.7-21.2-41.2c-1.6-2.4-6.1-20.4-13.7-27.5
c-3.3-2.8-11.3-10.2-11.3-10.2l-0.7,7.8c0,0,3.1,0.5,4.3,5.3c4.5,18.4,27.5,61.9,29.2,64c8.2,13.2,0.8,29.6,7,38.7
c0.6,1.2,12.6-0.1,22,0.5c15.4-3.3,14.7-10.1,28-11.1c8.9-0.7,9.8,16.1,9.7,17.4c-1.7,18.5-7.3,40.1-15.9,59.7
c-17.9,34.6-38,65.6-66.5,69.9c-34.7,6.1-52.8-9.1-71.6-18.8l-7.2,6.1c-24.5,24.4-53.6,22.2-65.4-9.6
c-5.9-12.4-13.6-19.9-20.2-30.5l-35,25.2c-2.9,6-6.5,15.4-10.9,25.9c-3,7.3-5.6,19.9-5.4,30.3c-4.5,7.6,15.5,38.7,28.2,57.5
l11,15.9c2.5,6.5,8,12.3,8.3,13c23.5,30.7-29.6,23.6-40.6,21.8c-21.7-3.5-42.8-12.5-62.8-24.6l-3.5-2.1c-23.7-14.9-45.4-34-64-52.8
c-11-12.5-21.6-38.1-29.3-56.3c-11.6-43.7-28.3-119.4,16.9-176.7c2.9-3.3,6-8.7,8.6-9.8c13.4-9.1,28-15.3,43.7-18.7l-1.6-10.2
c-7.8,1.8-34.2,11.4-41.7,15.5c-17,4.9-31,10.1-52.7,15.5c-7,0.9-13.9,0.9-20.7,0c-15.6-2.1-42.1-0.2-43.8-1.8
c-10.5-14.7-13.4-41-23-55.1l-0.1-0.1l-0.1-0.1c-5.6-7.5-12.1-13.7-18.6-20.1c-23-22.9-42.8-45-48.3-68.5c-1.4-6.9-5-14.1-3.1-34.6
l0-0.1l0-0.1c5.5-19.1,14.6-34.7,29.9-50.4c15.9,0.3,31.7,0.6,44,3c5.6,0.9,17.3,2.5,29.4,7c30.6,11.4,71.1,30.2,71.1,30.2
c-30.4-16.7-64.3-38.3-85.8-42.7c-3.2-0.5-5.2-1.9-6.1-4.4c32.3-18.9,38.2-41.3,59.4-61.3c9.7-4.2,13.5-6.4,21.7-7.3
c76.2,12,124.1,42.4,162.1,62.7c15.4,8.4,29.4,14.7,42.8,22.3c11.7,3.9,47.1,30.6,57.4,44.9c10.5,22.2,18.2,46.2,25.2,69.3
c5,23.5,9.4,33.1,9.4,33.1s-4.3-19.7-3.6-23.2c4.4,1.7,14.9,4.9,19.2,4.4c0,0-19.4-10-21.9-18.9c-8.1-28.4-16.3-72.6-18.5-74.9
c-6.2-7.8-32.1-27.6-48-36.8c-6-3.5-9.3-5.6-9.5-7.1c5.1-5.1,11.3-11.9,16.9-16.2c5.4-4.1,10.3-8.8,17.8-11.6
c33-14.9,51.8,5.7,56.3,1.5c0,0-7.1-8.1-3.9-6.8c3.2,1.7,13.7,3.8,14.9,4.9c12,9.4,43.4,43.8,62.4,80c4.5,8.9,6.4,14.7,4.3,25.4
c-2.1,10.7-3.8,16.6-6.1,23.7c-2.1,4.8-13.9,37.5-13.8,41.9c-2.4,18,7.7,40.4,7.7,40.4c0.1-6.1-0.4-9.4,0.2-13.7l0.7-7.8
c0,0-0.4-2.1-0.4-2.9c0.5-5.4,1.8-9.9,2.2-13c3.8-23.4,10.4-40.3,17.8-60.9c2.2-5.2,5.1-8.1,5-12c0.1-7-6.2-16.4-10.7-25.6
c-4.6-9.3-10.1-19.7-17.2-30.6c-16.4-23.5-30.3-41.9-55.9-53.5c-7.1-3.1-35.3-6.2-45-4.4c-11.8,2.5-21.9,4.9-30,10
c-12.7,8.1-22.7,20.7-34.4,28.2c-25.9-13-38.4-22.7-40.8-24c-15.4-8.3-33.9-17.8-53.8-26.9C275.7,23.3,216.4,2,162.2-2.2L162.2-2.2
z M493.7,481.3c-16-12.5-29.4-25.4-38.3-38.6c-2.9,15.6-13.4,26.7-21.5,37.6c-1.6,2.6-2.8,6,5.2,17.2c2.1,3,9.9,3.5,15.1,3.2
c-5.3-4-13.4-8.3-14.7-12c9.4,6.4,18.1,8.2,25.9,7.2c1.8-0.2,4-2.1,5.7-5c3.5-7.5,6.2-9.3,9-11.3l6.4,8L493.7,481.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

+30
View File
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{clip-path:url(#SVGID_2_);fill:#444B5E;}
</style>
<g>
<defs>
<rect id="SVGID_1_" y="8.1" width="106.1" height="31.8"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<path class="st0" d="M41.7,11.1c-1,0-1.7,0.5-1.9,1.3c0.3,0.2,0.6,0.3,1,0.3c0.8,0,1.6-0.6,1.3-1.6C42,11.1,41.8,11.1,41.7,11.1
M47,8.1L47,8.1c-0.8,0-0.9,0.4-2.5,0.8c-1.6,0.4-3.2,0-4.9,0.7c-5.2,2.2-6.3,9.7-11,12.4c-3.5,2-6.9,2.9-10.1,3.9
c-2.1,0.7-4.2,1.4-6.1,3.1c-1.5,1.3-1.9,2.3-3.4,3.9c-1.6,1.6-6.4-1.3-8.8,0.9c-0.2,0.2-0.2,0.5,0,0.7c0,0,0,0,0,0
c0.5,0.4,1.5,1.5,2.4,1.8c-0.3,0.6-1.9,2.2-1.6,3c0.4,0.9,4.5,0.3,8.3-2c1.8-1.1,3.2-2.6,5.9-3c3.6-0.5,7.7,0.3,11.8,0.9
c-0.6,1.8-1.8,3-2.8,4.5c-0.3,0.3,0.6,0.4,1.7,0.2c1.9-0.5,3.2-0.8,4.7-1.7c1.7-1,2-3.6,4.1-4.2c1,1.6,3.6,2.1,5.6,1.3
c0.1,0,0.2-0.1,0.3-0.2c0.2-0.2,0.1-0.5,0-0.6c-0.1-0.1-0.1-0.1-0.2-0.2c-1.1-1.2-1.4-4-0.9-5.4c0.6-1.6,1.1-4.1,1.7-6.1
c0.6-2.2,0.8-5,1.6-6.2c1.1-1.7,2.3-2.3,3.4-3.2c1.1-1,2-1.9,2-4.1C48,8.5,47.7,8.1,47,8.1 M47.2,10.4c-0.2,1.5-1.2,2.3-2.3,3.2
c-1,0.7-2.1,1.4-2.8,2.5c-0.7,1.1-1.2,5-2.3,8.8c-0.9,3.2-2.3,6.3-4.7,7.8c-0.2,0.1-0.4,0-0.4-0.2c-0.2-0.9-0.1-2.5-0.4-2
c-0.3,1-0.7,1.9-1.2,2.8c-1.4,2.7-3.4,4.7-6.7,5.5c-0.2,0-0.3-0.1-0.4-0.2c0-0.1,0-0.2,0-0.2c1.5-2.1,2.9-4.3,3-7.8
c0-0.3-0.4-0.4-0.5-0.2c-0.7,0.9-0.9,3-1.9,3.6c-0.8,0.1-1.6,0.1-2.5,0c-3.4-0.2-6.9-1.2-10.1-0.2c-2.2,0.7-4.5,2.7-6.3,3.5
c-2.2,0.9-3.2,1.8-5.9,1.8c-0.3-0.4,1.1-2,1.6-2.7c0.2-0.2-0.2-0.5-0.5-0.6c-0.7-0.3-1.5-1.3-2.3-1.6c0.1-0.2,0.5-0.4,0.7-0.5
c1.8-1,6.6,1.2,7.8-0.1c0.8-0.8,1.3-1.5,1.9-2.2c0.5-0.8,1.3-1.6,2.1-2.2c0.3-0.3,0.7-0.5,1.1-0.8c1.4-1,2.2-1,4-1.7
c2.3-0.9,5.2-1.6,7.6-2.6c1.5-0.6,3.2-1.3,4.5-2.3c0.3-0.2,0.6-0.5,0.9-0.8c3.9-3.8,4.6-10.4,10.6-11c0.7-0.1,1.2-0.1,1.8-0.1
c0.6,0,1.2-0.2,1.8-0.5c0.2-0.1,1.3-0.7,1.7-0.4C47.3,9.1,47.2,10.3,47.2,10.4"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

+60
View File
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#439934;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#45A538;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#46A037;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#409433;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#4FAA41;}
.st5{fill-rule:evenodd;clip-rule:evenodd;fill:#4AA73C;}
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#57AE47;}
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#60B24F;}
.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#A9AA88;}
.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#B6B598;}
.st10{fill-rule:evenodd;clip-rule:evenodd;fill:#C2C1A7;}
.st11{fill-rule:evenodd;clip-rule:evenodd;fill:#CECDB7;}
.st12{fill-rule:evenodd;clip-rule:evenodd;fill:#DBDAC7;}
.st13{fill-rule:evenodd;clip-rule:evenodd;fill:#EBE9DC;}
</style>
<path class="st0" d="M33.5,15.7c0.6,1.8,1.1,3.7,1.2,5.6c0.2,2.4,0.1,4.8-0.4,7.1c0,0.1,0,0.1-0.1,0.2c-0.2,0-0.3,0-0.5,0
c-1.3,0.2-2.6,0.4-3.9,0.6c-1.4,0.2-2.7,0.4-4.1,0.7c-0.5,0.1-1.1,0-1.3,0.6c0,0-0.1,0-0.1,0l0.1-4c0-3.2,0-6.4-0.1-9.5L25,17
c1-0.2,2.1-0.3,3.1-0.5c1.2-0.2,2.5-0.4,3.7-0.6C32.4,15.8,32.9,15.7,33.5,15.7z"/>
<path class="st1" d="M23.1,42.1c-0.7-0.6-1.4-1.1-2-1.7c-3.4-3.2-5.9-7-7.2-11.6c-0.3-1.3-0.6-2.5-0.6-3.9c-0.1-0.9-0.1-1.8-0.1-2.7
c0.2-2.4,0.5-4.8,1.2-7.1l0-0.1c0.1,0.1,0.2,0.2,0.2,0.3c0.7,2,1.4,4.1,2.1,6.1c2.1,6.4,4.3,12.8,6.4,19.2c0,0.1,0.2,0.2,0.2,0.3
C23.4,41,23.1,42.1,23.1,42.1z"/>
<path class="st2" d="M33.5,15.7c-0.5,0.1-1.1,0.2-1.6,0.2c-1.2,0.2-2.5,0.4-3.7,0.6c-1,0.2-2.1,0.3-3.1,0.5l-0.6,0.1l0-0.4
c0-0.3-0.1-0.7-0.1-1c0-2.2,0-4.3-0.1-6.5c0-1.3,0-2.7-0.1-4c0-0.8,0-1.7-0.1-2.5c0-0.4-0.1-0.9-0.1-1.3c0-0.3,0-0.5,0-0.8
c0.3,0.6,0.6,1.3,1,1.9c0.5,1,1.4,1.7,2.1,2.5C30,8,32.1,11.6,33.5,15.7z"/>
<path class="st3" d="M24.4,30.6C24.4,30.6,24.5,30.6,24.4,30.6c0.3-0.7,0.9-0.6,1.4-0.7c1.4-0.2,2.7-0.4,4.1-0.7
c1.3-0.2,2.6-0.4,3.9-0.6c0.2,0,0.3,0,0.5,0c-0.2,0.9-0.4,1.8-0.7,2.6c-0.4,1-0.8,1.9-1.2,2.8c-0.7,1.4-1.5,2.7-2.5,3.8
c-0.8,0.9-1.6,1.7-2.4,2.6c-0.5,0.5-1,0.8-1.5,1.2l-0.1-0.1l-0.5-0.4l-0.5-1.1c-0.3-1.3-0.5-2.6-0.5-3.9l0-0.2l0.1-1
c0-0.3,0.1-0.7,0.1-1C24.3,32.9,24.4,31.8,24.4,30.6z"/>
<path class="st4" d="M24.4,30.6c0,1.2-0.1,2.3-0.1,3.5c0,0.3,0,0.7-0.1,1l-0.3,0.1c-0.7-2-1.3-3.9-2-5.9c-1.1-3.2-2.2-6.5-3.2-9.7
c-0.9-2.6-1.8-5.2-2.6-7.8c0-0.1-0.2-0.2-0.2-0.3L17.7,8c0.1,0.1,0.2,0.2,0.2,0.3c0.9,2.6,1.8,5.3,2.7,7.9c1.1,3.4,2.3,6.9,3.4,10.3
c0,0.1,0.1,0.3,0.2,0.4l0.3-0.3C24.5,28,24.4,29.3,24.4,30.6z"/>
<path class="st5" d="M15.8,11.5c0.1,0.1,0.2,0.2,0.2,0.3c0.9,2.6,1.8,5.2,2.6,7.8c1.1,3.2,2.1,6.5,3.2,9.7c0.7,2,1.3,3.9,2,5.9
l0.3-0.1l-0.1,1l-0.1,0.2c-0.1,1-0.2,2.1-0.3,3.1c-0.1,0.5-0.2,1-0.3,1.6c-0.1-0.1-0.2-0.2-0.2-0.3c-2.2-6.4-4.3-12.8-6.4-19.2
c-0.7-2-1.4-4.1-2.1-6.1c0-0.1-0.1-0.2-0.2-0.3C14.9,13.8,15.4,12.7,15.8,11.5z"/>
<path class="st6" d="M24.5,26.6l-0.3,0.3c-0.1-0.2-0.1-0.3-0.2-0.4c-1.1-3.4-2.3-6.9-3.4-10.3c-0.9-2.6-1.8-5.3-2.7-7.9
c0-0.1-0.1-0.2-0.2-0.3l2.4-3.1c0.1,0.1,0.2,0.2,0.2,0.3c0.7,1.9,1.3,3.9,2,5.8c0.6,1.8,1.2,3.6,1.8,5.4c0,0.1,0.2,0.2,0.3,0.3
l0,0.4C24.4,20.3,24.5,23.5,24.5,26.6z"/>
<path class="st7" d="M24.4,16.7c-0.1-0.1-0.2-0.2-0.3-0.3c-0.6-1.8-1.2-3.6-1.8-5.4c-0.7-1.9-1.3-3.9-2-5.8c0-0.1-0.1-0.2-0.2-0.3
c0.8-0.8,1.5-1.5,2.3-2.3c0.7-0.6,1.3-1.3,1.3-2.3c0,0,0-0.1,0.1-0.2L24,0.5c0,0.3,0,0.5,0,0.8c0,0.4,0.1,0.9,0.1,1.3
c0,0.8,0.1,1.7,0.1,2.5c0,1.3,0.1,2.7,0.1,4c0,2.2,0,4.3,0.1,6.5C24.3,16,24.4,16.3,24.4,16.7z"/>
<path class="st8" d="M23.4,41c0.1-0.5,0.2-1,0.3-1.6c0.1-1,0.2-2.1,0.3-3.1l0,0l0,0c0,1.3,0.2,2.6,0.5,3.9c-0.1,0.1-0.2,0.2-0.2,0.3
c-0.3,0.8-0.6,1.6-0.8,2.4c0,0.1-0.1,0.2-0.2,0.3l-0.3-1C23.1,42.1,23.4,41,23.4,41z"/>
<path class="st9" d="M23.4,43.1c0.1-0.1,0.2-0.2,0.2-0.3c0.3-0.8,0.6-1.6,0.8-2.4c0-0.1,0.1-0.2,0.2-0.3l0.5,1.1
c-0.1,0.1-0.2,0.3-0.3,0.4l-0.9,2.8c0,0.1-0.2,0.2-0.3,0.3C23.7,44.7,23.4,43.1,23.4,43.1z"/>
<path class="st10" d="M23.7,44.7c0.1-0.1,0.2-0.2,0.3-0.3l0.9-2.8c0.1-0.2,0.2-0.3,0.3-0.4l0.5,0.4c-0.2,0.2-0.4,0.5-0.3,0.8
l-0.1,0.5c-0.1,0.1-0.2,0.2-0.2,0.2c-0.3,0.9-0.6,1.9-1,2.8c0,0.1-0.2,0.2-0.2,0.3C23.8,45.8,23.7,45.2,23.7,44.7z"/>
<path class="st11" d="M23.8,46.3c0.1-0.1,0.2-0.2,0.2-0.3c0.3-0.9,0.6-1.9,1-2.8c0-0.1,0.1-0.2,0.2-0.2L25,45.1
c-0.1,0.1-0.1,0.1-0.2,0.2c-0.2,0.6-0.4,1.3-0.7,1.9c0,0.1-0.1,0.2-0.2,0.4c-0.1-0.1-0.2-0.2-0.2-0.2C23.8,47,23.8,46.7,23.8,46.3z"
/>
<path class="st12" d="M24,47.6c0.1-0.1,0.2-0.2,0.2-0.4c0.2-0.6,0.4-1.3,0.7-1.9c0-0.1,0.1-0.1,0.2-0.2l0,1.4l-0.5,1.2
C24.5,47.8,24,47.6,24,47.6z"/>
<path class="st13" d="M24.5,47.8l0.5-1.2l0.1,1.5L24.5,47.8z"/>
<path class="st11" d="M25.4,42.5c-0.1-0.3,0.1-0.6,0.3-0.8l0.1,0.1L25.4,42.5z"/>
<path class="st4" d="M24.1,36.3L24.1,36.3L24.1,36.3l0-0.2C24.1,36,24.1,36.3,24.1,36.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#00546B;}
</style>
<g>
<path class="st0" d="M44.2,36.9c-2.6-0.1-4.6,0.2-6.3,0.9c-0.5,0.2-1.3,0.2-1.3,0.8c0.3,0.3,0.3,0.7,0.5,1c0.4,0.7,1.1,1.5,1.7,2
c0.7,0.5,1.4,1,2.1,1.5c1.3,0.8,2.7,1.2,3.9,2c0.7,0.5,1.4,1,2.2,1.5c0.4,0.3,0.6,0.7,1,0.8v-0.1c-0.2-0.3-0.3-0.7-0.5-1
c-0.3-0.3-0.7-0.6-1-0.9c-0.9-1.3-2.1-2.4-3.4-3.3c-1-0.7-3.3-1.7-3.8-2.9c0,0,0,0-0.1-0.1c0.7-0.1,1.6-0.3,2.3-0.5
c1.1-0.3,2.1-0.2,3.3-0.5c0.5-0.1,1-0.3,1.6-0.5v-0.3c-0.6-0.6-1-1.4-1.6-1.9c-1.7-1.4-3.5-2.8-5.4-4c-1-0.7-2.3-1.1-3.4-1.6
c-0.4-0.2-1-0.3-1.3-0.6c-0.6-0.7-0.9-1.7-1.3-2.5c-0.9-1.8-1.9-3.8-2.7-5.7c-0.6-1.3-0.9-2.5-1.7-3.7c-3.4-5.5-7-8.9-12.6-12.2
c-1.2-0.7-2.6-1-4.2-1.3c-0.8,0-1.6-0.1-2.4-0.1c-0.5-0.2-1-0.8-1.5-1.1c-1.9-1.2-6.7-3.7-8-0.4c-0.9,2.1,1.3,4.2,2.1,5.3
C2.8,8.2,3.5,9,3.9,9.9c0.2,0.6,0.3,1.1,0.5,1.7c0.5,1.4,1,3,1.7,4.4c0.4,0.7,0.8,1.4,1.2,2c0.3,0.4,0.7,0.5,0.8,1.1
c-0.5,0.7-0.5,1.6-0.8,2.4c-1.2,3.7-0.7,8.3,0.9,11c0.5,0.8,1.8,2.6,3.4,1.9c1.5-0.6,1.1-2.4,1.6-4.1c0.1-0.4,0-0.7,0.2-0.9v0.1
c0.5,0.9,0.9,1.8,1.3,2.7c1,1.6,2.8,3.3,4.2,4.4c0.8,0.6,1.4,1.6,2.4,2v-0.1h-0.1c-0.2-0.3-0.5-0.4-0.8-0.7c-0.6-0.6-1.2-1.3-1.7-2
c-1.4-1.8-2.6-3.8-3.7-5.9c-0.5-1-1-2.1-1.4-3.1c-0.2-0.4-0.2-1-0.5-1.2c-0.5,0.7-1.2,1.3-1.6,2.2c-0.6,1.4-0.7,3.1-0.9,4.9
c-0.1,0-0.1,0-0.1,0.1c-1-0.3-1.4-1.3-1.8-2.3c-1-2.3-1.1-6-0.3-8.7C9,21.2,10,19,9.6,18.3c-0.2-0.6-0.8-1-1.2-1.5
c-0.4-0.6-0.9-1.4-1.2-2.1C6.4,13,6,10.9,5.2,9.1C4.8,8.3,4.1,7.4,3.5,6.6C2.9,5.7,2.2,5.1,1.7,4.1C1.6,3.7,1.4,3.1,1.6,2.7
c0.1-0.3,0.2-0.4,0.5-0.4c0.4-0.4,1.6,0.1,2.1,0.3c1.2,0.5,2.2,0.9,3.2,1.6c0.5,0.3,0.9,0.9,1.5,1.1h0.7c1,0.2,2.2,0.1,3.2,0.4
c1.7,0.6,3.3,1.4,4.7,2.3c4.3,2.7,7.8,6.6,10.2,11.2c0.4,0.8,0.6,1.4,0.9,2.2c0.7,1.6,1.5,3.2,2.2,4.8c0.7,1.5,1.3,3.1,2.3,4.4
c0.5,0.7,2.4,1,3.3,1.4c0.7,0.3,1.7,0.6,2.3,0.9c1.1,0.7,2.2,1.5,3.3,2.2C42.5,35.4,44.1,36.2,44.2,36.9z"/>
<path class="st0" d="M10.9,8.5c-0.6,0-0.9,0.1-1.3,0.2v0.1h0.1c0.3,0.5,0.7,0.9,1,1.3c0.3,0.5,0.5,1,0.8,1.6c0,0,0.1-0.1,0.1-0.1
c0.5-0.3,0.7-0.8,0.7-1.6C12,9.7,12,9.5,11.8,9.3C11.6,8.9,11.2,8.8,10.9,8.5z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#C74634;}
</style>
<g>
<path class="st0" d="M15.1,39.1C6.7,39.1,0,32.4,0,24S6.7,8.9,15.1,8.9h17.7C41.3,8.9,48,15.6,48,24s-6.7,15.1-15.1,15.1H15.1
M32.4,33.8c5.5,0,9.8-4.4,9.8-9.8c0-5.5-4.4-9.8-9.8-9.8H15.6c-5.5,0-9.8,4.4-9.8,9.8s4.4,9.8,9.8,9.8H32.4"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 649 B

+49
View File
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#336791;}
.st1{fill:#FFFFFF;}
</style>
<path d="M46.4,28.7c-0.3-0.8-1-1.4-2-1.6c-0.4-0.1-1,0-1.6,0.1c-1.1,0.2-1.8,0.3-2.4,0.3c2.2-3.6,3.9-7.8,4.9-11.7
c1.6-6.3,0.8-9.2-0.3-10.5C42.4,2,38.5,0.1,33.7,0.1c-2.5,0-4.7,0.5-5.9,0.8c-1.1-0.2-2.2-0.3-3.5-0.3c-2.3,0-4.3,0.5-6,1.5
c-1-0.3-2.5-0.8-4.2-1.1C10,0.3,6.6,0.8,4.2,2.6c-3,2.1-4.3,5.7-4.1,10.8c0.1,1.6,1,6.5,2.4,11.2c0.8,2.7,1.7,4.9,2.6,6.6
c1.3,2.4,2.6,3.8,4.2,4.4c0.9,0.3,2.4,0.5,4.1-0.9c0.2,0.3,0.5,0.5,0.9,0.7c0.5,0.3,1,0.5,1.6,0.7c2.1,0.5,4,0.4,5.6-0.3
c0,0.3,0,0.6,0,0.8c0,0.4,0,0.8,0,1.1c0.1,2.4,0.3,4.3,0.8,5.6c0,0.1,0.1,0.2,0.1,0.3c0.2,0.7,0.7,2,1.7,3c1.1,1,2.4,1.3,3.6,1.3
c0.6,0,1.2-0.1,1.7-0.2c1.8-0.4,3.8-1,5.3-3.1c1.4-2,2.1-4.9,2.2-9.6c0-0.1,0-0.3,0-0.4l0-0.2l0.3,0l0.1,0c1.8,0.1,4-0.3,5.4-0.9
C43.7,33,47.2,31.2,46.4,28.7"/>
<path class="st0" d="M43.3,29.2c-5.4,1.1-5.8-0.7-5.8-0.7c5.7-8.5,8.1-19.2,6-21.9C37.9-0.5,28.2,2.9,28,3L28,3
c-1.1-0.2-2.3-0.4-3.6-0.4c-2.4,0-4.3,0.6-5.7,1.7c0,0-17.4-7.1-16.5,9c0.2,3.4,4.9,26,10.6,19.2c2.1-2.5,4.1-4.6,4.1-4.6
c1,0.7,2.2,1,3.4,0.9l0.1-0.1c0,0.3,0,0.6,0,1c-1.5,1.6-1,1.9-3.9,2.5c-3,0.6-1.2,1.7-0.1,2c1.4,0.3,4.5,0.8,6.7-2.2l-0.1,0.3
c0.6,0.5,1,3,0.9,5.3c-0.1,2.3-0.1,3.9,0.3,5.1c0.5,1.2,0.9,4,4.7,3.2c3.2-0.7,4.9-2.5,5.1-5.4c0.2-2.1,0.5-1.8,0.6-3.7l0.3-0.9
c0.3-2.9,0.1-3.8,2-3.4l0.5,0c1.5,0.1,3.4-0.2,4.5-0.8C44.2,30.6,45.6,28.7,43.3,29.2L43.3,29.2"/>
<path class="st1" d="M19.7,14.8c-0.5-0.1-0.9,0-1.2,0.2c-0.1,0.1-0.2,0.2-0.2,0.3c0,0.2,0.1,0.4,0.2,0.5c0.2,0.3,0.6,0.5,1,0.6
c0.1,0,0.1,0,0.2,0c0.6,0,1.1-0.5,1.2-0.8C20.9,15.2,20.2,14.9,19.7,14.8 M35.8,14.8c0-0.3-0.6-0.4-1.2-0.3
c-0.6,0.1-1.1,0.3-1.1,0.7c0,0.3,0.5,0.7,1.1,0.7c0,0,0.1,0,0.1,0c0.4-0.1,0.6-0.3,0.8-0.4C35.7,15.2,35.8,15,35.8,14.8"/>
<path class="st1" d="M45.1,29.1c-0.2-0.6-0.9-0.8-2-0.6c-3.3,0.7-4.4,0.2-4.8-0.1c2.5-3.9,4.6-8.6,5.8-12.9c0.5-2.1,0.8-4,0.9-5.6
c0-1.7-0.3-3-0.9-3.8c-2.4-3.1-6-4.8-10.3-4.8c-3,0-5.5,0.7-6,0.9c-1-0.3-2.1-0.4-3.4-0.4c-2.2,0-4.2,0.5-5.8,1.6
c-0.7-0.3-2.5-0.9-4.7-1.2c-3.8-0.6-6.8-0.1-9,1.4c-2.6,1.8-3.8,5.1-3.5,9.7c0.1,1.5,1,6.3,2.3,10.9c1.8,6,3.8,9.4,5.9,10.1
c0.2,0.1,0.5,0.1,0.8,0.1c0.8,0,1.7-0.3,2.7-1.5c1.2-1.4,2.4-2.8,3.7-4.2c0.8,0.4,1.7,0.7,2.7,0.7c0,0,0,0,0,0.1
c-0.2,0.2-0.3,0.4-0.5,0.6c-0.6,0.8-0.8,1-2.8,1.4C15.6,31.5,14,31.9,14,33c0,1.2,1.8,1.7,2.1,1.7c0.7,0.2,1.5,0.3,2.1,0.3
c1.7,0,3.1-0.5,4.3-1.6c0,4.3,0.1,8.4,0.7,9.7c0.4,1,1.4,3.6,4.7,3.6c0.5,0,1-0.1,1.6-0.2c3.4-0.7,4.8-2.2,5.4-5.5
c0.3-1.8,0.8-5.9,1.1-8.2c0.5,0.2,1.2,0.2,1.9,0.2c1.5,0,3.2-0.3,4.3-0.8C43.3,31.7,45.5,30.3,45.1,29.1z M37,13.9
c0,0.7-0.1,1.3-0.2,1.9c-0.1,0.7-0.2,1.4-0.2,2.2c0,0.8,0.1,1.7,0.2,2.5c0.2,1.7,0.4,3.4-0.4,5.1c-0.1-0.2-0.3-0.5-0.4-0.7
c-0.1-0.2-0.3-0.6-0.6-1.2c-1.2-2.1-3.9-7-2.5-9C33.3,14.2,34.4,13.6,37,13.9z M33.8,2.7c3.9,0.1,6.9,1.5,9.1,4.3
c1.7,2.1-0.2,11.8-5.5,20.2c-0.1-0.1-0.1-0.1-0.2-0.2l-0.1-0.1c1.4-2.3,1.1-4.5,0.9-6.5c-0.1-0.8-0.2-1.6-0.2-2.3
c0-0.8,0.1-1.4,0.2-2.1c0.1-0.8,0.2-1.6,0.2-2.6c0-0.1,0-0.2,0-0.4c-0.1-0.9-1.1-3.7-3.3-6.1C34,5.6,32.3,4.1,29.9,3
C30.9,2.8,32.3,2.6,33.8,2.7z M12.1,32c-1.1,1.3-1.8,1-2.1,1C8.5,32.4,6.6,29,5,23.7c-1.4-4.6-2.2-9.2-2.3-10.5
c-0.2-4.1,0.8-7,3-8.5c3.5-2.5,9.3-1,11.7-0.2c0,0-0.1,0.1-0.1,0.1c-3.8,3.9-3.7,10.5-3.7,10.9c0,0.2,0,0.4,0,0.7
c0.1,1.1,0.2,3.2-0.1,5.5c-0.3,2.2,0.4,4.3,1.8,5.8c0.2,0.2,0.3,0.3,0.5,0.4C15.1,28.6,13.6,30.1,12.1,32z M16.2,26.5
c-1.2-1.2-1.7-3-1.5-4.7c0.3-2.5,0.2-4.6,0.1-5.8c0-0.2,0-0.3,0-0.4c0.6-0.5,3.1-1.9,5-1.5c0.8,0.2,1.4,0.8,1.6,1.8
c1.1,5.1,0.1,7.2-0.6,9c-0.2,0.4-0.3,0.7-0.4,1l-0.1,0.3c-0.3,0.7-0.5,1.3-0.6,1.9C18.4,28,17.1,27.5,16.2,26.5L16.2,26.5z
M16.4,33.4c-0.4-0.1-0.7-0.3-0.9-0.4c0.2-0.1,0.5-0.2,1-0.3c2.4-0.5,2.8-0.9,3.6-1.9c0.2-0.2,0.4-0.5,0.7-0.8l0,0
c0.4-0.5,0.6-0.4,1-0.3c0.3,0.1,0.6,0.5,0.7,0.9c0.1,0.2,0.1,0.6-0.1,0.8C20.7,33.9,18.2,33.8,16.4,33.4z M29.1,45.2
c-3,0.6-4-0.9-4.7-2.6c-0.4-1.1-0.7-6.2-0.5-11.7c0-0.1,0-0.1,0-0.2c0-0.1,0-0.3-0.1-0.4c-0.2-0.8-0.8-1.5-1.5-1.8
c-0.3-0.1-0.8-0.3-1.4-0.2c0.1-0.5,0.3-1.1,0.6-1.7l0.1-0.3c0.1-0.3,0.3-0.6,0.4-0.9c0.8-1.8,1.9-4.2,0.7-9.8
c-0.4-2.1-1.9-3.1-4.2-2.9c-1.4,0.1-2.6,0.7-3.2,1c-0.1,0.1-0.3,0.1-0.4,0.2c0.2-2.1,0.8-6,3.3-8.5c1.5-1.6,3.6-2.3,6.1-2.3
c4.9,0.1,8.1,2.6,9.9,4.7c1.5,1.8,2.4,3.7,2.7,4.6c-2.5-0.3-4.2,0.2-5.1,1.5c-1.9,2.7,1,7.9,2.4,10.4c0.3,0.5,0.5,0.9,0.5,1
c0.5,1.1,1,1.8,1.5,2.4c0.1,0.2,0.3,0.3,0.4,0.5c-0.8,0.2-2.1,0.7-2,3.2c-0.1,1.3-0.8,7.2-1.2,9.3C33,43.6,32,44.6,29.1,45.2
L29.1,45.2z M41.5,31c-0.8,0.4-2.1,0.6-3.3,0.7c-1.4,0.1-2.1-0.2-2.2-0.3c-0.1-1.6,0.5-1.7,1.1-1.9c0.1,0,0.2-0.1,0.3-0.1
c0.1,0,0.1,0.1,0.2,0.1c1.1,0.7,3,0.8,5.8,0.2l0,0C43,30.2,42.4,30.6,41.5,31z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

+53
View File
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{filter:url(#Adobe_OpacityMaskFilter);}
.st2{mask:url(#mask-2_1_);}
.st3{fill:#FCC397;}
.st4{fill:#FC9F95;}
.st5{fill:#F77C88;}
.st6{fill:#F25192;}
.st7{fill:#D34CA3;}
.st8{fill:#9A50A5;}
.st9{fill:#59569E;}
.st10{fill:#39477F;}
</style>
<g>
<g>
<circle id="path-1_1_" class="st0" cx="24" cy="24" r="24"/>
</g>
<defs>
<filter id="Adobe_OpacityMaskFilter" filterUnits="userSpaceOnUse" x="-0.4" y="-0.2" width="48.6" height="48.4">
<feColorMatrix type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/>
</filter>
</defs>
<mask maskUnits="userSpaceOnUse" x="-0.4" y="-0.2" width="48.6" height="48.4" id="mask-2_1_">
<g class="st1">
<circle id="path-1_2_" class="st0" cx="24" cy="24" r="24"/>
</g>
</mask>
<g class="st2">
<g transform="translate(-2.000000, -1.000000)">
<path class="st3" d="M36.4,3.2C33.3,1.7,29.7,0.8,26,0.8c-6.5,0-12.4,2.6-16.8,6.7C4.6,12,44.6,7.1,36.4,3.2z"/>
<path class="st4" d="M45,9.9c0,0-2,2.7-8,3.5C24.8,15,3.9,15.1,3.9,15.1C5.2,12.2,7,9.7,9.3,7.5c2.6,0.8,5.5,1,8.2,0.5
c4.5-0.8,8.4-3.4,12.9-4.5c2-0.5,4.1-0.6,6.1-0.4C39.8,4.8,42.7,7.1,45,9.9z"/>
<path class="st5" d="M50,21.3c0,0.1-27.5,2.7-40.9,1.9c-4.4-0.2-6.9-2.9-6.9-3c0.4-1.8,0.9-3.5,1.7-5.1c3.9-2.1,8.4-3.3,12.8-3.3
c5.5,0.1,11,1.9,16.5,1.8c4.1-0.1,8.3-1.4,11.8-3.6C47.5,13.2,49.3,17.1,50,21.3z"/>
<path class="st6" d="M50.2,25c0,0.1,0,0.4,0,0.4s-7.6,1.9-17.5,1.8C19,27,1.6,24.8,1.6,24.8c0-1.6,0.2-3.2,0.5-4.7
c3.3,2,7.3,3,11.2,2.6c3.1-0.3,6-1.5,8.8-2.7s5.7-2.5,8.7-3.2c4.4-1,9.1-0.7,13.3,1c2,0.8,4.1,2,5.8,3.4
C50.1,22.4,50.2,23.7,50.2,25z"/>
<path class="st7" d="M22.7,32.9c-7.3,1.3-19.8-0.2-19.8-0.3C2,30.2,1.6,27.6,1.6,25c0-0.1,0-0.1,0-0.2c1.1-0.9,2.4-1.7,3.7-2.3
c3.1-1.5,6.7-2.1,10.1-1.8c3.4,0.3,6.7,1.6,9.8,3c2.7,1.1,5.3,2.4,8.1,3.2C33.5,27,30.7,31.4,22.7,32.9z"/>
<path class="st8" d="M49.4,31.5c-0.5,0.9-5.3,3.8-11.9,4.3c-8.7,0.7-19-2-15.5-3.3c5.4-2.1,10-5.9,15.5-7.5
c4.1-1.2,8.7-1,12.8,0.4C50.2,27.6,49.9,29.6,49.4,31.5z"/>
<path class="st9" d="M47.1,37.1c-4.2,7.3-34.6,9.1-39.1,4.2c-2.3-2.5-4-5.5-5.1-8.7c3.7-2.1,8.1-3,12.3-2.5
c5.4,0.7,10.3,3.8,15.7,5c4.3,1,8.9,0.7,13.1-0.9c1.9-0.7,3.8-1.6,5.4-2.7C48.9,33.5,48.1,35.4,47.1,37.1z"/>
<path class="st10" d="M47,37c-4.2,7.3-12.1,12.2-21.1,12.2c-7.1,0-13.6-3.1-18-8c0.7,0.3,1.6,0.5,2.3,0.7c4.2,1.2,8.8,1.1,13-0.1
c2.7-0.8,5.2-2.1,7.9-3C36.1,37.1,41.7,36.4,47,37z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

+30
View File
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#A41E11;}
.st1{fill:#D82C20;}
.st2{fill:#FFFFFF;}
.st3{fill:#7A0C00;}
.st4{fill:#AD2115;}
</style>
<path class="st0" d="M46.1,35.1c-2.6,1.3-15.8,6.8-18.7,8.3c-2.8,1.5-4.4,1.5-6.6,0.4c-2.2-1.1-16.3-6.7-18.9-8
C0.7,35.2,0,34.7,0,34.2v-4.9c0,0,18.4-4,21.3-5.1c3-1.1,4-1.1,6.5-0.2s17.6,3.6,20.1,4.6v4.8C48,33.9,47.4,34.5,46.1,35.1z"/>
<path class="st1" d="M46.1,30.3c-2.6,1.3-15.8,6.8-18.7,8.3S23,40,20.8,39S4.5,32.2,1.9,31c-2.5-1.2-2.6-2.1-0.1-3
c2.5-1,16.5-6.5,19.5-7.5c3-1.1,4-1.1,6.5-0.2c2.5,0.9,15.7,6.2,18.2,7.1C48.6,28.2,48.7,29,46.1,30.3z"/>
<path class="st0" d="M46.1,27.3c-2.6,1.3-15.8,6.8-18.7,8.3C24.6,37,23,37,20.8,35.9c-2.2-1.1-16.3-6.8-18.9-8
C0.7,27.3,0,26.8,0,26.3v-4.9c0,0,18.4-4,21.3-5.1c3-1.1,4-1.1,6.5-0.2c2.5,0.9,17.6,3.6,20.1,4.6v4.8C48,26,47.4,26.6,46.1,27.3z"
/>
<path class="st1" d="M46.1,22.4c-2.6,1.3-15.8,6.8-18.7,8.3c-2.8,1.5-4.4,1.5-6.6,0.4C18.6,30,4.5,24.3,1.9,23
c-2.6-1.2-2.6-2.1-0.1-3c2.5-1,16.5-6.5,19.5-7.5c3-1.1,4-1.1,6.5-0.2c2.5,0.9,15.7,6.2,18.2,7.1C48.6,20.3,48.7,21.1,46.1,22.4z"/>
<path class="st0" d="M46.1,19c-2.6,1.3-15.8,6.8-18.7,8.3c-2.8,1.5-4.4,1.5-6.6,0.4c-2.2-1-16.3-6.7-18.9-8c-1.3-0.6-2-1.1-2-1.6
v-4.9c0,0,18.4-4,21.3-5.1c3-1.1,4-1.1,6.5-0.2c2.5,0.9,17.6,3.6,20.1,4.6v4.8C48,17.8,47.4,18.3,46.1,19z"/>
<path class="st1" d="M46.1,14.2c-2.6,1.3-15.8,6.8-18.7,8.3c-2.8,1.5-4.4,1.5-6.6,0.4c-2.2-1.1-16.3-6.7-18.9-8s-2.6-2.1-0.1-3
c2.5-1,16.5-6.5,19.5-7.5c3-1.1,4-1.1,6.5-0.2s15.7,6.2,18.2,7.1C48.6,12.1,48.7,12.9,46.1,14.2z"/>
<path class="st2" d="M30.3,9.5L26.1,10l-1,2.2l-1.5-2.5l-4.8-0.4L22.5,8l-1.1-2l3.4,1.3l3.1-1l-0.8,2.1L30.3,9.5z M25,20.4l-7.8-3.2
l11.1-1.7L25,20.4z"/>
<ellipse class="st2" cx="14.2" cy="13.1" rx="5.9" ry="2.3"/>
<path class="st3" d="M35.2,10.1l6.6,2.6l-6.6,2.6V10.1z"/>
<path class="st4" d="M27.9,13l7.3-2.9v5.2l-0.7,0.3L27.9,13z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6.554 6.555" preserveAspectRatio="xMidYMid"><defs><linearGradient x1="2.983" y1=".53" x2="2.983" y2="4.744" id="A" gradientUnits="userSpaceOnUse"><stop stop-color="#97d9f6" offset="0%"/><stop stop-color="#0f80cc" offset="92.024%"/><stop stop-color="#0f80cc" offset="100%"/></linearGradient></defs><path d="M4.96.29H.847c-.276 0-.5.226-.5.5v4.536c0 .276.226.5.5.5h2.71c-.03-1.348.43-3.964 1.404-5.54z" fill="#0f80cc"/><path d="M4.81.437H.847c-.196 0-.355.16-.355.355v4.205c.898-.345 2.245-.642 3.177-.628A28.93 28.93 0 0 1 4.811.437z" fill="url(#A)"/><path d="M5.92.142c-.282-.25-.623-.15-.96.148l-.15.146c-.576.61-1.1 1.742-1.276 2.607a2.38 2.38 0 0 1 .148.426l.022.1.022.102s-.005-.02-.026-.08l-.014-.04a.461.461 0 0 0-.009-.022c-.038-.087-.14-.272-.187-.352a8.789 8.789 0 0 0-.103.321c.132.242.212.656.212.656s-.007-.027-.04-.12c-.03-.083-.176-.34-.21-.4-.06.22-.083.368-.062.404.04.07.08.2.115.324a7.52 7.52 0 0 1 .132.666l.005.062a6.11 6.11 0 0 0 .015.75c.026.313.075.582.137.726l.042-.023c-.09-.284-.128-.655-.112-1.084.025-.655.175-1.445.454-2.268C4.548 1.938 5.2.94 5.798.464c-.545.492-1.282 2.084-1.502 2.673-.247.66-.422 1.28-.528 1.873.182-.556.77-.796.77-.796s.29-.356.626-.865l-.645.172-.208.092s.53-.323.987-.47c.627-.987 1.31-2.39.622-3.002" fill="#003b57"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#252F3E;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FF9900;}
</style>
<g>
<path class="st0" d="M13.5,20.1c0,0.6,0.1,1.1,0.2,1.4c0.1,0.4,0.3,0.7,0.5,1.1c0.1,0.1,0.1,0.3,0.1,0.4c0,0.2-0.1,0.3-0.3,0.5
l-1,0.7c-0.1,0.1-0.3,0.1-0.4,0.1c-0.2,0-0.3-0.1-0.5-0.2c-0.2-0.2-0.4-0.5-0.6-0.8c-0.2-0.3-0.3-0.6-0.5-0.9
c-1.2,1.5-2.8,2.2-4.7,2.2c-1.3,0-2.4-0.4-3.2-1.1C2.4,22.7,2,21.7,2,20.4c0-1.4,0.5-2.5,1.5-3.3c1-0.8,2.3-1.2,3.9-1.2
c0.5,0,1.1,0,1.7,0.1c0.6,0.1,1.2,0.2,1.8,0.4v-1.2c0-1.2-0.3-2.1-0.8-2.6c-0.5-0.5-1.4-0.7-2.6-0.7c-0.6,0-1.1,0.1-1.7,0.2
c-0.6,0.1-1.2,0.3-1.7,0.5c-0.3,0.1-0.4,0.2-0.6,0.2c-0.1,0-0.2,0-0.3,0c-0.2,0-0.3-0.2-0.3-0.5v-0.8c0-0.3,0-0.4,0.1-0.6
c0.1-0.1,0.2-0.2,0.4-0.3c0.6-0.3,1.2-0.5,2-0.7C6.3,9.8,7.1,9.7,8,9.7c1.9,0,3.3,0.4,4.2,1.3c0.9,0.9,1.3,2.2,1.3,3.9L13.5,20.1
L13.5,20.1z M7,22.5c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,1.1-0.5,1.5-1c0.3-0.3,0.4-0.6,0.5-1c0.1-0.4,0.2-0.8,0.2-1.4v-0.7
c-0.5-0.1-1-0.2-1.5-0.3c-0.5-0.1-1-0.1-1.5-0.1c-1.1,0-1.9,0.2-2.4,0.6s-0.8,1-0.8,1.8c0,0.8,0.2,1.3,0.6,1.7
C5.8,22.3,6.3,22.5,7,22.5z M19.9,24.2c-0.3,0-0.5,0-0.6-0.2c-0.1-0.1-0.2-0.3-0.3-0.6l-3.8-12.3c-0.1-0.3-0.1-0.5-0.1-0.6
c0-0.3,0.1-0.4,0.4-0.4H17c0.3,0,0.5,0,0.6,0.2c0.1,0.1,0.2,0.3,0.3,0.6l2.7,10.6l2.5-10.6c0.1-0.3,0.2-0.5,0.3-0.6
c0.1-0.1,0.4-0.2,0.6-0.2h1.3c0.3,0,0.5,0,0.6,0.2c0.1,0.1,0.2,0.3,0.3,0.6l2.5,10.7l2.8-10.7c0.1-0.3,0.2-0.5,0.3-0.6
c0.1-0.1,0.3-0.2,0.6-0.2H34c0.3,0,0.4,0.1,0.4,0.4c0,0.1,0,0.2,0,0.3s0,0.2-0.1,0.4l-3.8,12.3c-0.1,0.3-0.2,0.5-0.3,0.6
s-0.3,0.2-0.6,0.2h-1.4c-0.3,0-0.5,0-0.6-0.2s-0.2-0.3-0.3-0.6l-2.5-10.3l-2.5,10.3c-0.1,0.3-0.2,0.5-0.3,0.6
c-0.1,0.1-0.4,0.2-0.6,0.2H19.9z M40.4,24.7c-0.8,0-1.7-0.1-2.5-0.3c-0.8-0.2-1.4-0.4-1.8-0.6c-0.3-0.1-0.4-0.3-0.5-0.4
c-0.1-0.1-0.1-0.3-0.1-0.4V22c0-0.3,0.1-0.5,0.4-0.5c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0.1,0.4,0.2c0.5,0.2,1.1,0.4,1.8,0.6
c0.6,0.1,1.3,0.2,1.9,0.2c1,0,1.8-0.2,2.3-0.5c0.5-0.4,0.8-0.9,0.8-1.5c0-0.4-0.1-0.8-0.4-1.1c-0.3-0.3-0.8-0.6-1.6-0.8L39,17.8
c-1.2-0.4-2-0.9-2.6-1.6c-0.5-0.7-0.8-1.5-0.8-2.3c0-0.7,0.1-1.3,0.4-1.8c0.3-0.5,0.7-1,1.1-1.3c0.5-0.4,1-0.6,1.7-0.8
c0.6-0.2,1.3-0.3,2-0.3c0.4,0,0.7,0,1.1,0.1c0.4,0,0.7,0.1,1,0.2c0.3,0.1,0.6,0.2,0.9,0.3c0.3,0.1,0.5,0.2,0.7,0.3
c0.2,0.1,0.4,0.3,0.5,0.4c0.1,0.1,0.1,0.3,0.1,0.5v0.8c0,0.3-0.1,0.5-0.4,0.5c-0.1,0-0.3-0.1-0.6-0.2c-0.9-0.4-1.9-0.6-3.1-0.6
c-0.9,0-1.6,0.1-2.1,0.4c-0.5,0.3-0.8,0.8-0.8,1.4c0,0.4,0.2,0.8,0.5,1.1c0.3,0.3,0.9,0.6,1.8,0.9l2.3,0.7c1.1,0.4,2,0.9,2.5,1.5
c0.5,0.7,0.7,1.4,0.7,2.2c0,0.7-0.1,1.3-0.4,1.9c-0.3,0.5-0.7,1-1.2,1.4c-0.5,0.4-1.1,0.7-1.8,0.9C41.9,24.5,41.2,24.7,40.4,24.7z"
/>
<g>
<path class="st1" d="M43.4,32.4c-5.3,3.9-12.9,5.9-19.4,5.9c-9.2,0-17.5-3.4-23.7-9.1c-0.5-0.4,0-1.1,0.5-0.7
c6.8,3.9,15.1,6.3,23.8,6.3c5.8,0,12.2-1.2,18.1-3.7C43.5,30.8,44.3,31.8,43.4,32.4z"/>
<path class="st1" d="M45.6,29.9c-0.7-0.9-4.4-0.4-6.1-0.2c-0.5,0.1-0.6-0.4-0.1-0.7c3-2.1,7.9-1.5,8.5-0.8c0.6,0.7-0.2,5.7-3,8
c-0.4,0.4-0.8,0.2-0.7-0.3C44.8,34.3,46.3,30.8,45.6,29.9z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#035BDA;}
</style>
<g>
<path class="st0" d="M29.8,10.9l-7.1,14.3l12.5,14.5L12,42.3l36,0.4L29.8,10.9z M28.4,5.3L12.1,18.9L0,39.3l10.3-1L28.4,5.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 577 B

+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#1B1B1F;}
</style>
<g>
<path class="st0" d="M42.1,9.8l-15.2-9c-1.8-1.1-4-1.1-5.8,0L6,9.8C4.1,10.9,3,12.9,3,15v18c0,2.1,1.1,4.1,2.9,5.2l15.2,9
c1.8,1.1,4,1.1,5.8,0l15.2-9c1.8-1.1,2.9-3.1,2.9-5.2V15C45,12.9,43.9,10.9,42.1,9.8L42.1,9.8z M30.4,37.9v1.3
c0,0.2-0.1,0.3-0.2,0.4L29.4,40c-0.1,0.1-0.2,0-0.2-0.2v-1.3c-0.5,0.3-1.2,0.3-1.7,0.2c-0.1-0.1-0.1-0.2-0.1-0.3l0.3-1.2
c0-0.1,0.1-0.2,0.2-0.3c0,0,0,0,0.1-0.1c0,0,0.1,0,0.1,0c0.5,0.1,1.1,0.1,1.6-0.2c0.7-0.3,1.2-1,1.2-1.8c0-0.7-0.4-0.9-1.2-0.9
c-1.1,0-2.1-0.2-2.1-1.8c0-1.4,0.7-2.7,1.8-3.6v-1.3c0-0.2,0.1-0.3,0.2-0.4l0.7-0.5c0.1-0.1,0.2,0,0.2,0.2v1.3
c0.5-0.2,1-0.3,1.5-0.2c0.1,0.1,0.1,0.2,0.1,0.3l-0.3,1.2c0,0.1-0.1,0.2-0.1,0.2c0,0,0,0-0.1,0.1c0,0-0.1,0-0.1,0
c-0.5-0.1-1,0-1.4,0.2c-0.6,0.3-1,0.9-1.1,1.6c0,0.6,0.3,0.8,1.4,0.8c1.4,0,2,0.6,2,2C32.2,35.6,31.5,36.9,30.4,37.9L30.4,37.9z
M38.3,35.7c0,0.1,0,0.2-0.1,0.3l-3.8,2.3c0,0-0.1,0-0.1,0c0,0-0.1-0.1,0-0.1v-1c0-0.1,0.1-0.2,0.2-0.2l3.8-2.3c0,0,0.1,0,0.1,0
c0,0,0.1,0.1,0,0.1L38.3,35.7L38.3,35.7z M40.9,13.6l-14.3,8.9c-1.8,1.1-3.1,2.2-3.1,4.4v17.7c0,1.3,0.5,2.1,1.3,2.4
c-0.3,0-0.5,0.1-0.8,0.1c-0.8,0-1.7-0.2-2.4-0.7l-15.2-9C5,36.4,4.1,34.7,4.1,33V15c0-1.8,0.9-3.4,2.4-4.3l15.2-9
c1.5-0.9,3.3-0.9,4.8,0l15.2,9c1.2,0.8,2.1,2,2.3,3.4C43.4,13.1,42.3,12.8,40.9,13.6L40.9,13.6L40.9,13.6z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#161616;}
</style>
<g transform="matrix(2.791226 0 0 2.791226 71.368826 91.588681)">
<circle class="st0" cx="-17.1" cy="-24.2" r="2"/>
<path class="st0" d="M-17.1-32.8c-4,0-7.4,2.7-8.3,6.4c0,0,0,0.1,0,0.1c0,0.2,0.2,0.4,0.4,0.4h3.5c0.2,0,0.3-0.1,0.4-0.2
c0,0,0,0,0,0c0.7-1.5,2.3-2.6,4.1-2.6c2.5,0,4.5,2,4.5,4.5s-2,4.5-4.5,4.5c-1.8,0-3.4-1.1-4.1-2.6c0,0,0,0,0,0
c-0.1-0.1-0.2-0.2-0.4-0.2H-25c-0.2,0-0.4,0.2-0.4,0.4c0,0,0,0.1,0,0.1c1,3.7,4.3,6.4,8.3,6.4c4.7,0,8.6-3.8,8.6-8.6
S-12.3-32.8-17.1-32.8L-17.1-32.8z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 910 B

+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#03A9F4;}
.st1{fill:#0288D1;}
.st2{fill:#81D4FA;}
.st3{fill:#FFFFFF;}
.st4{fill:#37474F;}
.st5{fill:#01579B;}
</style>
<path class="st0" d="M41.5,19.6c0.4-1.9-0.1-4.1-2.7-6.5c-4.3,3.9-3,7.9-1.6,9.8c0,0-0.2,1.1-4.4,1.1S0,24,0,24s-2,17.5,17.5,17.5
c17,0,21.8-13.1,22.7-16.4C40.6,25,41,25,41.5,25c2.3,0,5.4-1.3,6.5-6C44.9,18,42.9,18.5,41.5,19.6z"/>
<path class="st1" d="M0.2,28.3C1,33.5,4.3,41.4,17.5,41.4c13.3,0,19.1-8,21.5-13.1H0.2z"/>
<path class="st2" d="M19.4,41.3c-1-0.4-5.5-1.2-6.3-7.6c-4.6,2-8.7,1.5-10.4,1.1c2.4,3.5,6.7,6.5,14.8,6.5
C18.1,41.4,18.8,41.4,19.4,41.3z"/>
<path class="st3" d="M17.5,30.5c-1.2,0-2.2,1-2.2,2.2c0,1.2,1,2.2,2.2,2.2s2.2-1,2.2-2.2C19.6,31.5,18.7,30.5,17.5,30.5z"/>
<path class="st4" d="M14.1,34.4c0.2,0.6,0,1.3-0.6,1.4c-3.6,1.1-6.7,1.2-9.1,1.2c-0.7-0.7-1.3-1.4-1.8-2.1c2.8,0,7.3-0.1,10-1.1
C13.2,33.7,13.8,33.9,14.1,34.4z M0,27.2c0,0,2,0.1,3.3-1.1c2,1.8,6.5,1.2,7.6,0c1.2,1.8,7.6,1.5,8.7,0c1.4,1.6,7.2,1.9,8.7,0
c0.5,1.6,7.4,2,8.7,0c1.2,1.2,5.5,2.1,8,0c0.6,1.3,2.9,1.1,2.9,1.1v1.1H0 M16.4,32.7c0,0.6,0.5,1.1,1.1,1.1s1.1-0.5,1.1-1.1
c0-0.6-0.5-1.1-1.1-1.1S16.4,32.1,16.4,32.7z"/>
<path class="st5" d="M9.8,24H4.4v-5.5h5.5V24z M20.7,18.5h-5.5V24h5.5V18.5z M31.6,18.5h-5.5V24h5.5V18.5z M15.3,13H9.8v5.5h5.5V13z
M26.2,13h-5.5v5.5h5.5V13z"/>
<path class="st1" d="M15.3,24H9.8v-5.5h5.5V24z M26.2,18.5h-5.5V24h5.5V18.5z M26.2,7.6h-5.5V13h5.5V7.6z M20.7,13h-5.5v5.5h5.5V13z
"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#EA4335;}
.st1{fill:#4285F4;}
.st2{fill:#34A853;}
.st3{fill:#FBBC05;}
</style>
<g>
<path class="st0" d="M30.5,15.4l1.5,0l4.2-4.2l0.2-1.8c-3.3-3-7.7-4.8-12.5-4.8c-8.7,0-16,5.9-18.1,13.9c0.5-0.3,1.4-0.1,1.4-0.1
l8.4-1.4c0,0,0.4-0.7,0.6-0.7c2-2.2,4.8-3.4,7.7-3.4C26.5,13,28.8,13.9,30.5,15.4L30.5,15.4z"/>
<path class="st1" d="M42.1,18.6c-1-3.6-3-6.7-5.7-9.1l-5.9,5.9c2.4,1.9,3.9,4.8,3.9,8.1v1c2.9,0,5.2,2.3,5.2,5.2
c0,2.9-2.3,5.2-5.2,5.2H24L23,36v6.3l1,1h10.4c7.5,0,13.6-6.1,13.6-13.6C48,25.1,45.7,21,42.1,18.6L42.1,18.6z"/>
<path class="st2" d="M13.6,43.3H24V35H13.6c-0.7,0-1.5-0.2-2.1-0.5l-1.5,0.5l-4.2,4.2l-0.4,1.4C7.7,42.3,10.6,43.3,13.6,43.3
L13.6,43.3z"/>
<path class="st3" d="M13.6,16.2C6.1,16.2,0,22.3,0,29.7c0,4.4,2.1,8.3,5.4,10.8l6-6c-1.9-0.8-3.1-2.7-3.1-4.8
c0-2.9,2.3-5.2,5.2-5.2c2.1,0,3.9,1.3,4.8,3.1l6-6C21.9,18.3,18,16.2,13.6,16.2L13.6,16.2z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Some files were not shown because too many files have changed in this diff Show More