Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6e2ae7da5 | ||
|
|
a885931831 | ||
|
|
2eb51f7ca7 | ||
|
|
7e1bd3d18e | ||
|
|
94e5d9b305 | ||
|
|
02e70848b1 | ||
|
|
b8eac52689 | ||
|
|
73b66e2e86 | ||
|
|
0e50efb5ea | ||
|
|
dc6764e387 | ||
|
|
2ba5ac332b | ||
|
|
b9a0b93067 | ||
|
|
6596bce68a | ||
|
|
6d74c9f719 | ||
|
|
02525cabb5 | ||
|
|
8974b2de19 | ||
|
|
61fe3d9de8 | ||
|
|
62d0524f34 | ||
|
|
b3b328876f | ||
|
|
f598e3ab50 | ||
|
|
78ff8e4500 | ||
|
|
98ef9db51a | ||
|
|
14c8807234 | ||
|
|
c3787fcde0 | ||
|
|
5166b0345c | ||
|
|
4d602cfce2 | ||
|
|
e981a86dee |
4
.vscode/phosphor-home.code-snippets
vendored
4
.vscode/phosphor-home.code-snippets
vendored
@@ -21,8 +21,8 @@
|
||||
"{",
|
||||
"\tname: \"${1:name}\",",
|
||||
"\tcategories: [IconCategory${2:categories}],",
|
||||
"\ttags: [${3:tags}],",
|
||||
"\tIcon: ${4:icon},",
|
||||
"\ttags: [\"*new*\", ${3:tags}],",
|
||||
"\tIcon: Icons.${4:icon},",
|
||||
"},"
|
||||
],
|
||||
"description": "Create an IconEntry for phosphor-home"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
Phosphor is a flexible icon family for interfaces, diagrams, presentations — whatever, really.
|
||||
|
||||
- 683 icons and counting
|
||||
- 772 icons and counting
|
||||
- 6 weights: **Thin**, **Light**, **Regular**, **Bold**, **Fill**, and **Duotone**
|
||||
- Designed at 16 x 16px to read well small and scale up big
|
||||
- Raw stroke information retained to fine-tune the style
|
||||
@@ -93,6 +93,8 @@ ReactDOM.render(<App />, document.getElementById("root"));
|
||||
- [phosphor-react](https://github.com/phosphor-icons/phosphor-react) ▲ Phosphor icon component library for React
|
||||
- [phosphor-vue](https://github.com/phosphor-icons/phosphor-vue) ▲ Phosphor icon component library for Vue
|
||||
- [phosphor-icons](https://github.com/phosphor-icons/phosphor-icons) ▲ Phosphor icons for Vanilla JS
|
||||
- [phosphor-flutter](https://github.com/phosphor-icons/phosphor-flutter) ▲ Phosphor IconData library for Flutter
|
||||
- [phosphor-webcomponents](https://github.com/phosphor-icons/phosphor-webcomponents) ▲ Phosphor icons as Web Components
|
||||
- [phosphor-figma](https://github.com/phosphor-icons/phosphor-figma) ▲ Phosphor icons Figma plugin
|
||||
|
||||
## License
|
||||
|
||||
11
package.json
11
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "phosphor-home",
|
||||
"version": "1.1.2",
|
||||
"version": "1.3.1",
|
||||
"license": "MIT",
|
||||
"homepage": "https://phosphoricons.com",
|
||||
"author": {
|
||||
@@ -22,18 +22,19 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"file-saver": "^2.0.2",
|
||||
"framer-motion": "^2.1.0",
|
||||
"framer-motion": "^3.10.0",
|
||||
"fuse.js": "^6.4.1",
|
||||
"phosphor-react": "^1.1.2",
|
||||
"phosphor-react": "^1.3.1",
|
||||
"react": "^17.0.1",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-dropdown-select": "^4.4.2",
|
||||
"react-ga": "^3.1.2",
|
||||
"react-hotkeys-hook": "^3.2.1",
|
||||
"react-scripts": "3.4.1",
|
||||
"react-use": "^15.3.2",
|
||||
"recoil": "^0.1.2",
|
||||
"recoil": "^0.1.3",
|
||||
"svg2png-converter": "^1.0.0",
|
||||
"tinycolor2": "^1.4.1"
|
||||
"tinycolor2": "^1.4.2"
|
||||
},
|
||||
"scripts": {
|
||||
"analyze": "source-map-explorer 'build/static/js/*.js'",
|
||||
|
||||
242
public/assets/phosphor-android/cadmium/wallpaper.json
Normal file
242
public/assets/phosphor-android/cadmium/wallpaper.json
Normal file
@@ -0,0 +1,242 @@
|
||||
{
|
||||
"Collections": [
|
||||
{
|
||||
"name": "abstract",
|
||||
"preview_url": "https://i.imgur.com/xBCTxrP.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/xBCTxrPl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "architecture",
|
||||
"preview_url": "https://i.imgur.com/pdV0KQ1.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/pdV0KQ1l.jpg"
|
||||
},
|
||||
{
|
||||
"name": "landscape",
|
||||
"preview_url": "https://i.imgur.com/EEBaeFE.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/EEBaeFEl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "minimal",
|
||||
"preview_url": "https://i.imgur.com/peX5qVO.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/peX5qVOl.jpg"
|
||||
}
|
||||
],
|
||||
"Wallpapers": [
|
||||
{
|
||||
"name": "Antelope Canyon",
|
||||
"author": "Daniel Olah Nvez",
|
||||
"url": "https://i.imgur.com/KYglyUn.png",
|
||||
"thumbnail": "https://i.imgur.com/KYglyUl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Fractured Light",
|
||||
"author": "Chris Limbrick",
|
||||
"url": "https://i.imgur.com/MILbsga.png",
|
||||
"thumbnail": "https://i.imgur.com/MILbsgal.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "The Forest Path",
|
||||
"author": "Kristaps Ungurs",
|
||||
"url": "https://i.imgur.com/95QLblG.png",
|
||||
"thumbnail": "https://i.imgur.com/95QLblGl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Taken",
|
||||
"author": "Touann Gatouillat",
|
||||
"url": "https://i.imgur.com/otCPhH7.png",
|
||||
"thumbnail": "https://i.imgur.com/otCPhH7l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Construct",
|
||||
"author": "Florian Olivo",
|
||||
"url": "https://i.imgur.com/7CxJsXn.png",
|
||||
"thumbnail": "https://i.imgur.com/7CxJsXnl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Redline",
|
||||
"author": "Sergio Ibannez",
|
||||
"url": "https://i.imgur.com/uja4O1m.png",
|
||||
"thumbnail": "https://i.imgur.com/uja4O1ml.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "End Of Line",
|
||||
"author": "Claudio Schwarz-Purzlbaum",
|
||||
"url": "https://i.imgur.com/2ZiqhE3.png",
|
||||
"thumbnail": "https://i.imgur.com/2ZiqhE3l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Downtown",
|
||||
"author": "Van Mendoza",
|
||||
"url": "https://i.imgur.com/sKizrcp.png",
|
||||
"thumbnail": "https://i.imgur.com/sKizrcpl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Omnicorp",
|
||||
"author": "Irina Iriser",
|
||||
"url": "https://i.imgur.com/Zx11fXx.png",
|
||||
"thumbnail": "https://i.imgur.com/Zx11fXxl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Pinball Wizard",
|
||||
"author": "Joey Banks",
|
||||
"url": "https://i.imgur.com/XpVCRrj.png",
|
||||
"thumbnail": "https://i.imgur.com/XpVCRrjl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Chinatown",
|
||||
"author": "Donny Jiang",
|
||||
"url": "https://i.imgur.com/mz8mTVC.png",
|
||||
"thumbnail": "https://i.imgur.com/mz8mTVCl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "FDR Drive",
|
||||
"author": "Donny Jiang",
|
||||
"url": "https://i.imgur.com/elbdmZk.png",
|
||||
"thumbnail": "https://i.imgur.com/elbdmZkl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Through the Fog",
|
||||
"author": "Zhimai Zhang",
|
||||
"url": "https://i.imgur.com/KQIss5a.png",
|
||||
"thumbnail": "https://i.imgur.com/KQIss5al.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Kids Will Play",
|
||||
"author": "Perry C",
|
||||
"url": "https://i.imgur.com/IieNbdS.png",
|
||||
"thumbnail": "https://i.imgur.com/IieNbdSl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Double Blind",
|
||||
"author": "Pau Casals",
|
||||
"url": "https://i.imgur.com/kKyn0dW.png",
|
||||
"thumbnail": "https://i.imgur.com/kKyn0dWl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "All-Seeing Eye",
|
||||
"author": "Alex Rainer",
|
||||
"url": "https://i.imgur.com/HtyCalZ.png",
|
||||
"thumbnail": "https://i.imgur.com/HtyCalZl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Methylene",
|
||||
"author": "Pim Myten",
|
||||
"url": "https://i.imgur.com/vOAYeEW.png",
|
||||
"thumbnail": "https://i.imgur.com/vOAYeEWl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Nexus",
|
||||
"author": "Alexander Popov",
|
||||
"url": "https://i.imgur.com/3q2e7N2.png",
|
||||
"thumbnail": "https://i.imgur.com/3q2e7N2l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Synthetic",
|
||||
"author": "Leyy M",
|
||||
"url": "https://i.imgur.com/ASKhMFU.png",
|
||||
"thumbnail": "https://i.imgur.com/ASKhMFUl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Nondeterminism",
|
||||
"author": "Alex Perez",
|
||||
"url": "https://i.imgur.com/6dtZBAW.png",
|
||||
"thumbnail": "https://i.imgur.com/6dtZBAWl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "In the Beginning",
|
||||
"author": "Pawel Czerwinski",
|
||||
"url": "https://i.imgur.com/gBSjMh2.png",
|
||||
"thumbnail": "https://i.imgur.com/gBSjMh2l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "The Swarm",
|
||||
"author": "Vino Li",
|
||||
"url": "https://i.imgur.com/yljYDqp.png",
|
||||
"thumbnail": "https://i.imgur.com/yljYDqpl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Moonrise",
|
||||
"author": "Adrian Swancar",
|
||||
"url": "https://i.imgur.com/NiSCb6W.png",
|
||||
"thumbnail": "https://i.imgur.com/NiSCb6Wl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Cerro",
|
||||
"author": "Tamas Tuzes Katai",
|
||||
"url": "https://i.imgur.com/5u4aM1y.png",
|
||||
"thumbnail": "https://i.imgur.com/5u4aM1yl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
}
|
||||
]
|
||||
}
|
||||
409
public/assets/phosphor-android/carbon/wallpaper.json
Normal file
409
public/assets/phosphor-android/carbon/wallpaper.json
Normal file
@@ -0,0 +1,409 @@
|
||||
{
|
||||
"Collections": [
|
||||
{
|
||||
"name": "Abstract",
|
||||
"preview_url": "https://i.imgur.com/8DTRYwb.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/8DTRYwbl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Architecture",
|
||||
"preview_url":"https://i.imgur.com/t6BTASJ.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/t6BTASJl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Landscape",
|
||||
"preview_url": "https://i.imgur.com/G8cgftc.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/G8cgftcl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Minimal",
|
||||
"preview_url": "https://i.imgur.com/Srt9bP3.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/Srt9bP3l.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Solids",
|
||||
"preview_url": "https://i.imgur.com/fzL4yoj.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/fzL4yojl.jpg"
|
||||
}
|
||||
],
|
||||
"Wallpapers": [
|
||||
{
|
||||
"name": "Arctic",
|
||||
"author": "Phosphor",
|
||||
"url": "https://i.imgur.com/4qopfYy.png",
|
||||
"thumbnail": "https://i.imgur.com/4qopfYyl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "solids"
|
||||
},
|
||||
{
|
||||
"name": "Saffron",
|
||||
"author": "Phosphor",
|
||||
"url": "https://i.imgur.com/fzL4yoj.png",
|
||||
"thumbnail": "https://i.imgur.com/fzL4yojl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "solids"
|
||||
},
|
||||
{
|
||||
"name": "Heliotrope",
|
||||
"author": "Phosphor",
|
||||
"url": "https://i.imgur.com/QsrKIjp.png",
|
||||
"thumbnail": "https://i.imgur.com/QsrKIjpl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "solids"
|
||||
},
|
||||
{
|
||||
"name": "Jade",
|
||||
"author": "Phosphor",
|
||||
"url": "https://i.imgur.com/Z29e7f7.png",
|
||||
"thumbnail": "https://i.imgur.com/Z29e7f7l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "solids"
|
||||
},
|
||||
{
|
||||
"name": "Soft Dunes",
|
||||
"author": "Kunj Parekh",
|
||||
"url": "https://i.imgur.com/vIAE5jd.png",
|
||||
"thumbnail": "https://i.imgur.com/vIAE5jdl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscapes"
|
||||
},
|
||||
{
|
||||
"name": "Lake at Dawn",
|
||||
"author": "Max Fuchs",
|
||||
"url": "https://i.imgur.com/4Nmefrv.png",
|
||||
"thumbnail": "https://i.imgur.com/4Nmefrvl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Doors of Perception",
|
||||
"author": "Philipp Berndt",
|
||||
"url": "https://i.imgur.com/Srt9bP3.png",
|
||||
"thumbnail": "https://i.imgur.com/Srt9bP3l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "TwoTone",
|
||||
"author": "Samuel Zeller",
|
||||
"url": "https://i.imgur.com/8DTRYwb.png",
|
||||
"thumbnail": "https://i.imgur.com/8DTRYwbl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Empty Court",
|
||||
"author": "35mm",
|
||||
"url": "https://i.imgur.com/rPSLdCD.png",
|
||||
"thumbnail": "https://i.imgur.com/rPSLdCDl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Edge of the Pool",
|
||||
"author": "Autumn Studio",
|
||||
"url": "https://i.imgur.com/qNXWTej.png",
|
||||
"thumbnail": "https://i.imgur.com/qNXWTejl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "One in the Hand",
|
||||
"author": "Rainon Franco",
|
||||
"url": "https://i.imgur.com/QhW4UDc.png",
|
||||
"thumbnail": "https://i.imgur.com/QhW4UDcl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Solitude",
|
||||
"author": "Braxton Stuntz",
|
||||
"url": "https://i.imgur.com/QlQ9tMO.png",
|
||||
"thumbnail": "https://i.imgur.com/QlQ9tMOl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Double Fault",
|
||||
"author": "Dane Deaner",
|
||||
"url": "https://i.imgur.com/ERMWJSe.png",
|
||||
"thumbnail": "https://i.imgur.com/ERMWJSel.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Lomo 800",
|
||||
"author": "Markus Spiske",
|
||||
"url": "https://i.imgur.com/bHPWGPQ.png",
|
||||
"thumbnail": "https://i.imgur.com/bHPWGPQl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Clothespins",
|
||||
"author": "Plush Design Studio",
|
||||
"url": "https://i.imgur.com/xPyXBL9.png",
|
||||
"thumbnail": "https://i.imgur.com/xPyXBL9l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Memory Tapes",
|
||||
"author": "Imani Clovis",
|
||||
"url": "https://i.imgur.com/cmWuvUT.png",
|
||||
"thumbnail": "https://i.imgur.com/cmWuvUTl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Contours in White",
|
||||
"author": "Jean Philippe del Berghe",
|
||||
"url": "https://i.imgur.com/wjxl9xT.png",
|
||||
"thumbnail": "https://i.imgur.com/wjxl9xTl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Awaiting Inspiration",
|
||||
"author": "Joanna Kosinska",
|
||||
"url": "https://i.imgur.com/SBtlZmn.png",
|
||||
"thumbnail": "https://i.imgur.com/SBtlZmnl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Succulent",
|
||||
"author": "Khai Sze Ong",
|
||||
"url": "https://i.imgur.com/yDD2wz8.png",
|
||||
"thumbnail": "https://i.imgur.com/yDD2wz8l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Tracks in the Sand",
|
||||
"author": "Ruben Bagues",
|
||||
"url": "https://i.imgur.com/G8cgftc.png",
|
||||
"thumbnail": "https://i.imgur.com/G8cgftcl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Starched Linen",
|
||||
"author": "Annie Spratt",
|
||||
"url": "https://i.imgur.com/W9nAQVR.png",
|
||||
"thumbnail": "https://i.imgur.com/W9nAQVRl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Delamination",
|
||||
"author": "Wesley Tingey",
|
||||
"url": "https://i.imgur.com/VNJ3xWG.png",
|
||||
"thumbnail": "https://i.imgur.com/VNJ3xWGl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Look Up",
|
||||
"author": "Tony Dinh",
|
||||
"url": "https://i.imgur.com/t6BTASJ.png",
|
||||
"thumbnail": "https://i.imgur.com/t6BTASJl.jpgg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Keep to the Right",
|
||||
"author": "hello i m nik",
|
||||
"url": "https://i.imgur.com/SHp6pkv.png",
|
||||
"thumbnail": "https://i.imgur.com/SHp6pkvl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Pink Paper",
|
||||
"author": "Alex Koch",
|
||||
"url": "https://i.imgur.com/OHPR80R.png",
|
||||
"thumbnail": "https://i.imgur.com/OHPR80Rl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Lavender Dunes",
|
||||
"author": "Alex Koch",
|
||||
"url": "https://i.imgur.com/Sb50W4f.png",
|
||||
"thumbnail": "https://i.imgur.com/Sb50W4fl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Cotton Candy Clouds",
|
||||
"author": "Autumn Studio",
|
||||
"url": "https://i.imgur.com/43Vf2hT.png",
|
||||
"thumbnail": "https://i.imgur.com/43Vf2hTl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Pineapple",
|
||||
"author": "Pineaaple Supply Co.",
|
||||
"url": "https://i.imgur.com/YK9TyNk.png",
|
||||
"thumbnail": "https://i.imgur.com/YK9TyNkl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Cuttings",
|
||||
"author": "Alex Loup",
|
||||
"url": "https://i.imgur.com/wp2S7TK.png",
|
||||
"thumbnail": "https://i.imgur.com/wp2S7TKl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Textured Ombre Wall",
|
||||
"author": "Bharath G.S.",
|
||||
"url": "https://i.imgur.com/kxBGzva.png",
|
||||
"thumbnail": "https://i.imgur.com/kxBGzval.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "The Loading Dock",
|
||||
"author": "Ph. B.",
|
||||
"url": "https://i.imgur.com/NmL5Ldm.png",
|
||||
"thumbnail": "https://i.imgur.com/NmL5Ldml.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Leaning Dwarf Pine",
|
||||
"author": "Caleb George",
|
||||
"url": "https://i.imgur.com/crgckrr.png",
|
||||
"thumbnail": "https://i.imgur.com/crgckrrl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Dunes in Hard Light",
|
||||
"author": "Heather Shevlin",
|
||||
"url": "https://i.imgur.com/LG0G1IO.png",
|
||||
"thumbnail": "https://i.imgur.com/LG0G1IOl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "3 Balloons",
|
||||
"author": "Amy Shamblen",
|
||||
"url": "https://i.imgur.com/5HHCh12.png",
|
||||
"thumbnail": "https://i.imgur.com/5HHCh12l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Bicolor Bricks",
|
||||
"author": "Pawel Czerwinski",
|
||||
"url": "https://i.imgur.com/i4VrEDH.png",
|
||||
"thumbnail": "https://i.imgur.com/i4VrEDHl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Acrid Sky",
|
||||
"author": "W",
|
||||
"url": "https://i.imgur.com/RUSz9mM.png",
|
||||
"thumbnail": "https://i.imgur.com/RUSz9mMl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Salmon Colored Smoke",
|
||||
"author": "Pawel Czerwinski",
|
||||
"url": "https://i.imgur.com/8wehlrT.png",
|
||||
"thumbnail": "https://i.imgur.com/8wehlrTl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Polygonal Grid",
|
||||
"author": "Scott Webb",
|
||||
"url": "https://i.imgur.com/voUtZhY.png",
|
||||
"thumbnail": "https://i.imgur.com/voUtZhYl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Clay Courts",
|
||||
"author": "Ph. B.",
|
||||
"url": "https://i.imgur.com/yd7OmyV.png",
|
||||
"thumbnail": "https://i.imgur.com/yd7OmyVl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Lavender on Yellow",
|
||||
"author": "Mona Eendra",
|
||||
"url": "https://i.imgur.com/p8T1V7N.png",
|
||||
"thumbnail": "https://i.imgur.com/p8T1V7Nl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal,landscape"
|
||||
},
|
||||
{
|
||||
"name": "Whispering Pines",
|
||||
"author": "Mads Schmidt Rasmussen",
|
||||
"url": "https://i.imgur.com/FLkrDVZ.png",
|
||||
"thumbnail": "https://i.imgur.com/FLkrDVZl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "All the Light Touches",
|
||||
"author": "Eberhard Grossgasteiger",
|
||||
"url": "https://i.imgur.com/cwUvsmS.png",
|
||||
"thumbnail": "https://i.imgur.com/cwUvsmSl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
public/assets/phosphor-android/classic/app_feature_mercury_a.jpg
Normal file
BIN
public/assets/phosphor-android/classic/app_feature_mercury_a.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 82 KiB |
BIN
public/assets/phosphor-android/classic/app_feature_mercury_b.jpg
Normal file
BIN
public/assets/phosphor-android/classic/app_feature_mercury_b.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 108 KiB |
350
public/assets/phosphor-android/classic/wallpaper.json
Normal file
350
public/assets/phosphor-android/classic/wallpaper.json
Normal file
@@ -0,0 +1,350 @@
|
||||
{
|
||||
"Collections": [
|
||||
{
|
||||
"name": "abstract",
|
||||
"preview_url": "https://i.imgur.com/xBCTxrP.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/xBCTxrPl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "architecture",
|
||||
"preview_url": "https://i.imgur.com/pdV0KQ1.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/pdV0KQ1l.jpg"
|
||||
},
|
||||
{
|
||||
"name": "landscape",
|
||||
"preview_url": "https://i.imgur.com/EEBaeFE.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/EEBaeFEl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "minimal",
|
||||
"preview_url": "https://i.imgur.com/peX5qVO.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/peX5qVOl.jpg"
|
||||
}
|
||||
],
|
||||
"Wallpapers": [
|
||||
{
|
||||
"name": "Dunes at Dusk",
|
||||
"author": "Jeremy Bishop",
|
||||
"url": "https://i.imgur.com/EEBaeFE.png",
|
||||
"thumbnail": "https://i.imgur.com/EEBaeFEl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Black Sand",
|
||||
"author": "Adrien Olichon",
|
||||
"url": "https://i.imgur.com/Yt8zaUn.png",
|
||||
"thumbnail": "https://i.imgur.com/Yt8zaUnl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Disappearing Coastline",
|
||||
"author": "Chris Coe",
|
||||
"url": "https://i.imgur.com/hq4aENh.png",
|
||||
"thumbnail": "https://i.imgur.com/hq4aENhl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal,landscape"
|
||||
},
|
||||
{
|
||||
"name": "Setting Out",
|
||||
"author": "Tim Trad",
|
||||
"url": "https://i.imgur.com/42uDJkj.png",
|
||||
"thumbnail": "https://i.imgur.com/42uDJkjl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Dark Tides",
|
||||
"author": "Mike Yukhtenko",
|
||||
"url": "https://i.imgur.com/XSIIUAQ.png",
|
||||
"thumbnail": "https://i.imgur.com/XSIIUAQl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Rogue Wave",
|
||||
"author": "Jack B",
|
||||
"url": "https://i.imgur.com/YVHtCTT.png",
|
||||
"thumbnail": "https://i.imgur.com/YVHtCTTl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Strata",
|
||||
"author": "Joshua Oluwagbemiga",
|
||||
"url": "https://i.imgur.com/uvRONTa.png",
|
||||
"thumbnail": "https://i.imgur.com/uvRONTal.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Condolences",
|
||||
"author": "Annie Spratt",
|
||||
"url": "https://i.imgur.com/peX5qVO.png",
|
||||
"thumbnail": "https://i.imgur.com/peX5qVOl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Ferns",
|
||||
"author": "Andras Vas",
|
||||
"url": "https://i.imgur.com/wXvAISN.png",
|
||||
"thumbnail": "https://i.imgur.com/wXvAISNl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Blades of Grass",
|
||||
"author": "Claudio Testa",
|
||||
"url": "https://i.imgur.com/0QOoq8R.png",
|
||||
"thumbnail": "https://i.imgur.com/0QOoq8Rl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Lush",
|
||||
"author": "Ian Espinosa",
|
||||
"url": "https://i.imgur.com/AumRAb4.png",
|
||||
"thumbnail": "https://i.imgur.com/AumRAb4l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Amethyst Bloom",
|
||||
"author": "Alyssa Smith",
|
||||
"url": "https://i.imgur.com/96JmZIF.png",
|
||||
"thumbnail": "https://i.imgur.com/96JmZIFl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Carbon",
|
||||
"author": "David Jorre",
|
||||
"url": "https://i.imgur.com/hkN3ioi.png",
|
||||
"thumbnail": "https://i.imgur.com/hkN3ioil.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Charred Remains",
|
||||
"author": "Brian Patrick Tagalog",
|
||||
"url": "https://i.imgur.com/SbyCpR2.png",
|
||||
"thumbnail": "https://i.imgur.com/SbyCpR2l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Make a Wish",
|
||||
"author": "Wil Stewart",
|
||||
"url": "https://i.imgur.com/VeuzvUA.png",
|
||||
"thumbnail": "https://i.imgur.com/VeuzvUAl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Resonance",
|
||||
"author": "Luke Stackpoole",
|
||||
"url": "https://i.imgur.com/94SjlPi.png",
|
||||
"thumbnail": "https://i.imgur.com/94SjlPil.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "An Endless Mist",
|
||||
"author": "Yoal Desurmont",
|
||||
"url": "https://i.imgur.com/Qkng6Dm.png",
|
||||
"thumbnail": "https://i.imgur.com/Qkng6Dml.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Elevation",
|
||||
"author": "Manuel Will",
|
||||
"url": "https://i.imgur.com/yQMGOAb.png",
|
||||
"thumbnail": "https://i.imgur.com/yQMGOAbl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Rock Show",
|
||||
"author": "Raphael Schaller",
|
||||
"url": "https://i.imgur.com/DMi6ffB.png",
|
||||
"thumbnail": "https://i.imgur.com/DMi6ffBl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Motes",
|
||||
"author": "Samuel Zeller",
|
||||
"url": "https://i.imgur.com/kOIWSNJ.png",
|
||||
"thumbnail": "https://i.imgur.com/kOIWSNJl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Birds on a Wire",
|
||||
"author": "Adrian Kirkegaard",
|
||||
"url": "https://i.imgur.com/M3dlKS4.png",
|
||||
"thumbnail": "https://i.imgur.com/M3dlKS4l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Interleaved",
|
||||
"author": "Ron Whitaker",
|
||||
"url": "https://i.imgur.com/QQ7WQvD.png",
|
||||
"thumbnail": "https://i.imgur.com/QQ7WQvDl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Elliptic",
|
||||
"author": "Tobias van Schneider",
|
||||
"url": "https://i.imgur.com/xBCTxrP.png",
|
||||
"thumbnail": "https://i.imgur.com/xBCTxrPl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Convergence",
|
||||
"author": "Josh Rose",
|
||||
"url": "https://i.imgur.com/uqBhWYH.png",
|
||||
"thumbnail": "https://i.imgur.com/uqBhWYHl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Baffles",
|
||||
"author": "Elena Saharova",
|
||||
"url": "https://i.imgur.com/l2L6u1E.png",
|
||||
"thumbnail": "https://i.imgur.com/l2L6u1El.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Polygonal",
|
||||
"author": "Carrie Yang",
|
||||
"url": "https://i.imgur.com/pdV0KQ1.png",
|
||||
"thumbnail": "https://i.imgur.com/pdV0KQ1l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "S-Curve",
|
||||
"author": "Tobias van Schneider",
|
||||
"url": "https://i.imgur.com/Y1A9GTi.png",
|
||||
"thumbnail": "https://i.imgur.com/Y1A9GTil.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Galaxy Swirls",
|
||||
"author": "Pawel Czerwinski",
|
||||
"url": "https://i.imgur.com/KrxLGxy.png",
|
||||
"thumbnail": "https://i.imgur.com/KrxLGxyl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Prismatic Dreams",
|
||||
"author": "Sean Sinclair",
|
||||
"url": "https://i.imgur.com/byLsXXB.png",
|
||||
"thumbnail": "https://i.imgur.com/byLsXXBl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Slot Canyon",
|
||||
"author": "Meric Dagli",
|
||||
"url": "https://i.imgur.com/hB90xvB.png",
|
||||
"thumbnail": "https://i.imgur.com/hB90xvBl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Crescent Moonrise",
|
||||
"author": "Val Vesa",
|
||||
"url": "https://i.imgur.com/nfoPdRd.png",
|
||||
"thumbnail": "https://i.imgur.com/nfoPdRdl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Eye of the Storm",
|
||||
"author": "Breno Machado",
|
||||
"url": "https://i.imgur.com/BliGpTl.png",
|
||||
"thumbnail": "https://i.imgur.com/BliGpTll.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Thundercloud",
|
||||
"author": "Bryan Minear",
|
||||
"url": "https://i.imgur.com/mK8JE0t.png",
|
||||
"thumbnail": "https://i.imgur.com/mK8JE0tl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Departmental Security",
|
||||
"author": "Bartosz Wanot",
|
||||
"url": "https://i.imgur.com/wRN7lDd.png",
|
||||
"thumbnail": "https://i.imgur.com/wRN7lDdl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "CMatrix",
|
||||
"author": "Maekus Spiske",
|
||||
"url": "https://i.imgur.com/QAsjQkP.png",
|
||||
"thumbnail": "https://i.imgur.com/QAsjQkPl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Neon Serif",
|
||||
"author": "Zuzanna Adamcyzk",
|
||||
"url": "https://i.imgur.com/3edF6DE.png",
|
||||
"thumbnail": "https://i.imgur.com/3edF6DEl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
}
|
||||
]
|
||||
}
|
||||
422
public/assets/phosphor-android/helium/wallpaper.json
Normal file
422
public/assets/phosphor-android/helium/wallpaper.json
Normal file
@@ -0,0 +1,422 @@
|
||||
{
|
||||
"Collections": [
|
||||
{
|
||||
"name": "abstract",
|
||||
"preview_url": "",
|
||||
"preview_thumbnail_url": ""
|
||||
},
|
||||
{
|
||||
"name": "architecture",
|
||||
"preview_url": "",
|
||||
"preview_thumbnail_url": ""
|
||||
},
|
||||
{
|
||||
"name": "landscape",
|
||||
"preview_url": "",
|
||||
"preview_thumbnail_url": ""
|
||||
},
|
||||
{
|
||||
"name": "minimal",
|
||||
"preview_url": "",
|
||||
"preview_thumbnail_url": ""
|
||||
}
|
||||
],
|
||||
"Wallpapers": [
|
||||
{
|
||||
"name": "Retro Sunrise",
|
||||
"author": "Maxim Medvedev",
|
||||
"url": "https://i.imgur.com/kCtyGwT.png",
|
||||
"thumbnail": "https://i.imgur.com/kCtyGwTl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Tawny Peak",
|
||||
"author": "Andreas Kind",
|
||||
"url": "https://i.imgur.com/fqxcpJU.png",
|
||||
"thumbnail": "https://i.imgur.com/fqxcpJUl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "First Light",
|
||||
"author": "Adrien Olichon",
|
||||
"url": "https://i.imgur.com/EakVjSC.png",
|
||||
"thumbnail": "https://i.imgur.com/EakVjSCl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Rosy Dunes",
|
||||
"author": "Paxel Nolbert",
|
||||
"url": "https://i.imgur.com/lD06npE.png",
|
||||
"thumbnail": "https://i.imgur.com/lD06npEl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Waking Up",
|
||||
"author": "Dhaval Parmar",
|
||||
"url": "https://i.imgur.com/eBenVs8.png",
|
||||
"thumbnail": "https://i.imgur.com/eBenVs8l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "The Great Outdoors",
|
||||
"author": "Gauravdeep Singh Bansal",
|
||||
"url": "https://i.imgur.com/gJ40ptR.png",
|
||||
"thumbnail": "https://i.imgur.com/gJ40ptRl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Make a Wish",
|
||||
"author": "Diego Ph",
|
||||
"url": "https://i.imgur.com/vJagBNf.png",
|
||||
"thumbnail": "https://i.imgur.com/vJagBNfl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Lateral Strike",
|
||||
"author": "Damon Lam",
|
||||
"url": "https://i.imgur.com/BeZHVcY.png",
|
||||
"thumbnail": "https://i.imgur.com/BeZHVcYl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Starfield",
|
||||
"author": "Guilherme Stecanella",
|
||||
"url": "https://i.imgur.com/pDjDeVr.png",
|
||||
"thumbnail": "https://i.imgur.com/pDjDeVrl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Smallness",
|
||||
"author": "Melanie Magdalena",
|
||||
"url": "https://i.imgur.com/658blVF.png",
|
||||
"thumbnail": "https://i.imgur.com/658blVFl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Alone at the Summit",
|
||||
"author": "Aleks Dahlberg",
|
||||
"url": "https://i.imgur.com/YKeQ9sc.png",
|
||||
"thumbnail": "https://i.imgur.com/YKeQ9scl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Like Waves",
|
||||
"author": "Calvin Ma",
|
||||
"url": "https://i.imgur.com/wbNiiie.png",
|
||||
"thumbnail": "https://i.imgur.com/wbNiiiel.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Cloud Cover",
|
||||
"author": "Adrian",
|
||||
"url": "https://i.imgur.com/02uf66E.png",
|
||||
"thumbnail": "https://i.imgur.com/02uf66El.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Tiled",
|
||||
"author": "Fabrizio Conti",
|
||||
"url": "https://i.imgur.com/mAfbAsG.png",
|
||||
"thumbnail": "https://i.imgur.com/mAfbAsGl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Brutalism",
|
||||
"author": "Andrej Lisakov",
|
||||
"url": "https://i.imgur.com/9JlGo4m.png",
|
||||
"thumbnail": "https://i.imgur.com/9JlGo4ml.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Arrayed",
|
||||
"author": "Robert Haverly",
|
||||
"url": "https://i.imgur.com/SGA180g.png",
|
||||
"thumbnail": "https://i.imgur.com/SGA180gl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Placidity",
|
||||
"author": "Julian Bock",
|
||||
"url": "https://i.imgur.com/T7PwRnh.png",
|
||||
"thumbnail": "https://i.imgur.com/T7PwRnhl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Sea Change",
|
||||
"author": "Samara Doole",
|
||||
"url": "https://i.imgur.com/ekcUJ2M.png",
|
||||
"thumbnail": "https://i.imgur.com/ekcUJ2Ml.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Choppy",
|
||||
"author": "Imleedh Ali",
|
||||
"url": "https://i.imgur.com/2bk3vxM.png",
|
||||
"thumbnail": "https://i.imgur.com/2bk3vxMl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Below the Crush",
|
||||
"author": "Jeremy Bishop",
|
||||
"url": "https://i.imgur.com/h244SGI.png",
|
||||
"thumbnail": "https://i.imgur.com/h244SGIl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Betta",
|
||||
"author": "Aung Soe Min",
|
||||
"url": "https://i.imgur.com/YOBYine.png",
|
||||
"thumbnail": "https://i.imgur.com/YOBYinel.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Last One in the Pack",
|
||||
"author": "Alfaz Sayed",
|
||||
"url": "https://i.imgur.com/tP0SOFS.png",
|
||||
"thumbnail": "https://i.imgur.com/tP0SOFSl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Basement Window",
|
||||
"author": "Taylor Young",
|
||||
"url": "https://i.imgur.com/V7srimE.png",
|
||||
"thumbnail": "https://i.imgur.com/V7srimEl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Cellular",
|
||||
"author": "Christina Kirschnerova",
|
||||
"url": "https://i.imgur.com/lePTybt.png",
|
||||
"thumbnail": "https://i.imgur.com/lePTybtl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Ignition",
|
||||
"author": "Roland Larsson",
|
||||
"url": "https://i.imgur.com/v4si6N2.png",
|
||||
"thumbnail": "https://i.imgur.com/v4si6N2l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Falling Light",
|
||||
"author": "Rene Bohmer",
|
||||
"url": "https://i.imgur.com/1U953Cb.png",
|
||||
"thumbnail": "https://i.imgur.com/1U953Cbl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Vices",
|
||||
"author": "Jaredd Craig",
|
||||
"url": "https://i.imgur.com/a2xwnHK.png",
|
||||
"thumbnail": "https://i.imgur.com/a2xwnHKl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Your Worst Nightmare",
|
||||
"author": "Elti Meshau",
|
||||
"url": "https://i.imgur.com/9ajAMtL.png",
|
||||
"thumbnail": "https://i.imgur.com/9ajAMtLl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Tail Lights",
|
||||
"author": "Shaunak Mirashi",
|
||||
"url": "https://i.imgur.com/tL6d50t.png",
|
||||
"thumbnail": "https://i.imgur.com/tL6d50tl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Rapid Transit",
|
||||
"author": "Kevin Clyde Berbano",
|
||||
"url": "https://i.imgur.com/JxXJxDZ.png",
|
||||
"thumbnail": "https://i.imgur.com/JxXJxDZl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Storms Ahead",
|
||||
"author": "Luke Stackpoole",
|
||||
"url": "https://i.imgur.com/ZBMCKbt.png",
|
||||
"thumbnail": "https://i.imgur.com/ZBMCKbtl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Truss",
|
||||
"author": "Phil Botha",
|
||||
"url": "https://i.imgur.com/q4qNcui.png",
|
||||
"thumbnail": "https://i.imgur.com/q4qNcuil.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "T",
|
||||
"author": "Joshua Rivera",
|
||||
"url": "https://i.imgur.com/84O8dFa.png",
|
||||
"thumbnail": "https://i.imgur.com/84O8dFal.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Shadows on the Wall",
|
||||
"author": "Rene Bohmer",
|
||||
"url": "https://i.imgur.com/09GgsVW.png",
|
||||
"thumbnail": "https://i.imgur.com/09GgsVWl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Fluid Dynamics",
|
||||
"author": "Pawel Czerwinski",
|
||||
"url": "https://i.imgur.com/AaD8SLO.png",
|
||||
"thumbnail": "https://i.imgur.com/AaD8SLOl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Ombre",
|
||||
"author": "Elliott Engelmann",
|
||||
"url": "https://i.imgur.com/5jsq9Jg.png",
|
||||
"thumbnail": "https://i.imgur.com/5jsq9Jgl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Black Sand",
|
||||
"author": "Adrien Olichon",
|
||||
"url": "https://i.imgur.com/Yt8zaUn.png",
|
||||
"thumbnail": "https://i.imgur.com/Yt8zaUnl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Carbon",
|
||||
"author": "David Jorre",
|
||||
"url": "https://i.imgur.com/hkN3ioi.png",
|
||||
"thumbnail": "https://i.imgur.com/hkN3ioil.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Charred Remains",
|
||||
"author": "Brian Patrick Tagalog",
|
||||
"url": "https://i.imgur.com/SbyCpR2.png",
|
||||
"thumbnail": "https://i.imgur.com/SbyCpR2l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,minimal"
|
||||
},
|
||||
{
|
||||
"name": "Water Fountain",
|
||||
"author": "Quin Stevenson",
|
||||
"url": "https://i.imgur.com/Bz5u4HA.png",
|
||||
"thumbnail": "https://i.imgur.com/Bz5u4HAl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "minimal"
|
||||
},
|
||||
{
|
||||
"name": "Interleaved",
|
||||
"author": "Ron Whitaker",
|
||||
"url": "https://i.imgur.com/QQ7WQvD.png",
|
||||
"thumbnail": "https://i.imgur.com/QQ7WQvDl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Elliptic",
|
||||
"author": "Tobias van Schneider",
|
||||
"url": "https://i.imgur.com/xBCTxrP.png",
|
||||
"thumbnail": "https://i.imgur.com/xBCTxrPl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Convergence",
|
||||
"author": "Josh Rose",
|
||||
"url": "https://i.imgur.com/uqBhWYH.png",
|
||||
"thumbnail": "https://i.imgur.com/uqBhWYHl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "S-Curve",
|
||||
"author": "Tobias van Schneider",
|
||||
"url": "https://i.imgur.com/Y1A9GTi.png",
|
||||
"thumbnail": "https://i.imgur.com/Y1A9GTil.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
}
|
||||
]
|
||||
}
|
||||
207
public/assets/phosphor-android/krypton/wallpaper.json
Normal file
207
public/assets/phosphor-android/krypton/wallpaper.json
Normal file
@@ -0,0 +1,207 @@
|
||||
{
|
||||
"Collections": [
|
||||
{
|
||||
"name": "abstract",
|
||||
"preview_url": "https://i.imgur.com/xBCTxrP.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/xBCTxrPl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "architecture",
|
||||
"preview_url": "https://i.imgur.com/pdV0KQ1.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/pdV0KQ1l.jpg"
|
||||
},
|
||||
{
|
||||
"name": "landscape",
|
||||
"preview_url": "https://i.imgur.com/EEBaeFE.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/EEBaeFEl.jpg"
|
||||
},
|
||||
{
|
||||
"name": "minimal",
|
||||
"preview_url": "https://i.imgur.com/peX5qVO.png",
|
||||
"preview_thumbnail_url": "https://i.imgur.com/peX5qVOl.jpg"
|
||||
}
|
||||
],
|
||||
"Wallpapers": [
|
||||
{
|
||||
"name": "Echoes Of",
|
||||
"author": "Zoltan Tasi",
|
||||
"url": "https://i.imgur.com/OVKso33.png",
|
||||
"thumbnail": "https://i.imgur.com/OVKso33l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Gradient #4B",
|
||||
"author": "Luke Chesser",
|
||||
"url": "https://i.imgur.com/iFrJbfE.png",
|
||||
"thumbnail": "https://i.imgur.com/iFrJbfEl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Orthogonal",
|
||||
"author": "Etienne Beauregard",
|
||||
"url": "https://i.imgur.com/cFyjq7V.png",
|
||||
"thumbnail": "https://i.imgur.com/cFyjq7Vl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Filters Through",
|
||||
"author": "Martin Adams",
|
||||
"url": "https://i.imgur.com/r7MFJxM.png",
|
||||
"thumbnail": "https://i.imgur.com/r7MFJxMl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Gehry",
|
||||
"author": "Sascha Yeryomin",
|
||||
"url": "https://i.imgur.com/jf5NX7F.png",
|
||||
"thumbnail": "https://i.imgur.com/jf5NX7Fl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "The Benevolent Corp.",
|
||||
"author": "Alex Iby",
|
||||
"url": "https://i.imgur.com/SrgJtef.png",
|
||||
"thumbnail": "https://i.imgur.com/SrgJtefl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Bokehd",
|
||||
"author": "Kristaps Solims",
|
||||
"url": "https://i.imgur.com/HzU9KSK.png",
|
||||
"thumbnail": "https://i.imgur.com/HzU9KSKl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Confluence",
|
||||
"author": "Ash Edmonds",
|
||||
"url": "https://i.imgur.com/HWwYY1t.png",
|
||||
"thumbnail": "https://i.imgur.com/HWwYY1tl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "What Lies Beyond",
|
||||
"author": "Cheng Feng",
|
||||
"url": "https://i.imgur.com/BjdQkxh.png",
|
||||
"thumbnail": "https://i.imgur.com/BjdQkxhl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Stairstep",
|
||||
"author": "Dawid Sokolowski",
|
||||
"url": "https://i.imgur.com/VXzW2tV.png",
|
||||
"thumbnail": "https://i.imgur.com/VXzW2tVl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Bluesmoke",
|
||||
"author": "Albert Bleeker",
|
||||
"url": "https://i.imgur.com/mrltonO.png",
|
||||
"thumbnail": "https://i.imgur.com/mrltonOl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Tensegrity",
|
||||
"author": "Luca Bravo",
|
||||
"url": "https://i.imgur.com/N69Gk81.png",
|
||||
"thumbnail": "https://i.imgur.com/N69Gk81l.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "architecture"
|
||||
},
|
||||
{
|
||||
"name": "Vertical Integration",
|
||||
"author": "Pawl Czerwinski",
|
||||
"url": "https://i.imgur.com/rWVitPA.png",
|
||||
"thumbnail": "https://i.imgur.com/rWVitPAl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "T",
|
||||
"author": "Joshua Rivera",
|
||||
"url": "https://i.imgur.com/84O8dFa.png",
|
||||
"thumbnail": "https://i.imgur.com/84O8dFal.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Ripples",
|
||||
"author": "Julian Bock",
|
||||
"url": "https://i.imgur.com/T7PwRnh.png",
|
||||
"thumbnail": "https://i.imgur.com/T7PwRnhl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Light Speed",
|
||||
"author": "Adrien Olichon",
|
||||
"url": "https://i.imgur.com/cprtb1M.png",
|
||||
"thumbnail": "https://i.imgur.com/cprtb1Ml.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Dunes at Dusk",
|
||||
"author": "Jeremy Bishop",
|
||||
"url": "https://i.imgur.com/EEBaeFE.png",
|
||||
"thumbnail": "https://i.imgur.com/EEBaeFEl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Black Sand",
|
||||
"author": "Adrien Olichon",
|
||||
"url": "https://i.imgur.com/Yt8zaUn.png",
|
||||
"thumbnail": "https://i.imgur.com/Yt8zaUnl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "landscape"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "Interleaved",
|
||||
"author": "Ron Whitaker",
|
||||
"url": "https://i.imgur.com/QQ7WQvD.png",
|
||||
"thumbnail": "https://i.imgur.com/QQ7WQvDl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
{
|
||||
"name": "Elliptic",
|
||||
"author": "Tobias van Schneider",
|
||||
"url": "https://i.imgur.com/xBCTxrP.png",
|
||||
"thumbnail": "https://i.imgur.com/xBCTxrPl.jpg",
|
||||
"downloadable": true,
|
||||
"copyright": "CC0",
|
||||
"collections": "abstract,architecture"
|
||||
},
|
||||
]
|
||||
}
|
||||
@@ -15,10 +15,10 @@ h2 {
|
||||
}
|
||||
|
||||
img {
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
pre,
|
||||
@@ -65,9 +65,10 @@ button.main-button {
|
||||
transform: translate(0, 0);
|
||||
transition: all 0.2s ease;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
user-select: none;
|
||||
margin: 0 24px 24px 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,12 +7,14 @@ import IconGrid from "../IconGrid/IconGrid";
|
||||
import Footer from "../Footer/Footer";
|
||||
import ErrorBoundary from "../ErrorBoundary/ErrorBoundary";
|
||||
import Notice from "../Notice/Notice";
|
||||
import useIconParameters from "../../hooks/useIconParameters";
|
||||
|
||||
const errorFallback = <Notice message="Search error" />;
|
||||
// const waitingFallback = <Notice type="wait" message="Loading..." />;
|
||||
const waitingFallback = <Notice type="none" message="" />;
|
||||
|
||||
const App: React.FC<any> = () => {
|
||||
useIconParameters();
|
||||
|
||||
return (
|
||||
<React.StrictMode>
|
||||
<Header />
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
left: 50%;
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
input.color-input {
|
||||
|
||||
@@ -48,9 +48,9 @@ footer .links {
|
||||
|
||||
.illustrations-footer {
|
||||
display: none;
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ header {
|
||||
top: -158px;
|
||||
}
|
||||
|
||||
#billiard-ball {
|
||||
.billiard-ball {
|
||||
position: absolute;
|
||||
left: 132px;
|
||||
top: -98px;
|
||||
@@ -72,13 +72,13 @@ header {
|
||||
top: 152px;
|
||||
}
|
||||
|
||||
#warning {
|
||||
.warning {
|
||||
position: absolute;
|
||||
left: 394px;
|
||||
top: -304px;
|
||||
}
|
||||
|
||||
#tablet {
|
||||
.tablet {
|
||||
position: absolute;
|
||||
left: 672px;
|
||||
top: -900px;
|
||||
@@ -94,18 +94,18 @@ header {
|
||||
height: 612px;
|
||||
}
|
||||
|
||||
#cutting-mat {
|
||||
.cutting-mat {
|
||||
position: absolute;
|
||||
left: 96px;
|
||||
}
|
||||
|
||||
#receipt {
|
||||
.receipt {
|
||||
position: absolute;
|
||||
left: -36px;
|
||||
top: 190px;
|
||||
}
|
||||
|
||||
#calculator {
|
||||
.calculator {
|
||||
position: absolute;
|
||||
left: 632px;
|
||||
top: 170px;
|
||||
@@ -131,7 +131,7 @@ header {
|
||||
top: -158px;
|
||||
}
|
||||
|
||||
#billiard-ball {
|
||||
.billiard-ball {
|
||||
position: absolute;
|
||||
left: 900px;
|
||||
top: 400px;
|
||||
@@ -148,30 +148,30 @@ header {
|
||||
top: 694px;
|
||||
}
|
||||
|
||||
#warning {
|
||||
.warning {
|
||||
position: absolute;
|
||||
left: 1170px;
|
||||
top: 400px;
|
||||
}
|
||||
|
||||
#tablet {
|
||||
.tablet {
|
||||
position: absolute;
|
||||
left: 578px;
|
||||
top: -900px;
|
||||
}
|
||||
|
||||
#cutting-mat {
|
||||
.cutting-mat {
|
||||
position: absolute;
|
||||
left: 120px;
|
||||
}
|
||||
|
||||
#receipt {
|
||||
.receipt {
|
||||
position: absolute;
|
||||
left: -16px;
|
||||
top: 190px;
|
||||
}
|
||||
|
||||
#calculator {
|
||||
.calculator {
|
||||
position: absolute;
|
||||
left: 924px;
|
||||
top: 114px;
|
||||
|
||||
@@ -41,22 +41,22 @@ const Header: React.FC<HeaderProps> = () => {
|
||||
<img src={markerPurple} id="marker-purple" alt="" />
|
||||
<img src={paperclips} id="paperclips" alt="" />
|
||||
<img src={paperclipsThree} id="paperclips-three" alt="" />
|
||||
<img id="tablet" src={tabletSpec} alt="" />
|
||||
<img id="tablet" className="inspectable xray" src={tablet} alt="" />
|
||||
<img id="billiard-ball" src={billiardBallSpec} alt="" />
|
||||
<img className="tablet" src={tabletSpec} alt="" />
|
||||
<img className="tablet inspectable xray" src={tablet} alt="" />
|
||||
<img className="billiard-ball" src={billiardBallSpec} alt="" />
|
||||
<img
|
||||
id="billiard-ball"
|
||||
className="inspectable xray"
|
||||
className="billiard-ball inspectable xray"
|
||||
src={billiardBall}
|
||||
alt=""
|
||||
/>
|
||||
|
||||
<img id="warning" src={warningSpec} alt="" />
|
||||
<img id="warning" className="inspectable xray" src={warning} alt="" />
|
||||
<img className="warning" src={warningSpec} alt="" />
|
||||
<img className="warning inspectable xray" src={warning} alt="" />
|
||||
</div>
|
||||
<div className="intro">
|
||||
<h2>
|
||||
Phosphor is a flexible icon family for interfaces, diagrams, presentations —
|
||||
Phosphor is a flexible icon family for interfaces, diagrams,
|
||||
presentations —
|
||||
<wbr />
|
||||
whatever, really.
|
||||
</h2>
|
||||
@@ -73,19 +73,17 @@ const Header: React.FC<HeaderProps> = () => {
|
||||
<Links />
|
||||
</div>
|
||||
<div className="illustrations-bottom">
|
||||
<img id="cutting-mat" src={cuttingMatSpec} alt="" />
|
||||
<img className="cutting-mat" src={cuttingMatSpec} alt="" />
|
||||
<img
|
||||
id="cutting-mat"
|
||||
className="inspectable xray"
|
||||
className="cutting-mat inspectable xray"
|
||||
src={cuttingMat}
|
||||
alt=""
|
||||
/>
|
||||
<img id="receipt" src={receiptSpec} alt="" />
|
||||
<img id="receipt" className="inspectable xray" src={receipt} alt="" />
|
||||
<img id="calculator" src={calculatorSpec} alt="" />
|
||||
<img className="receipt" src={receiptSpec} alt="" />
|
||||
<img className="receipt inspectable xray" src={receipt} alt="" />
|
||||
<img className="calculator" src={calculatorSpec} alt="" />
|
||||
<img
|
||||
id="calculator"
|
||||
className="inspectable xray"
|
||||
className="calculator inspectable xray"
|
||||
src={calculator}
|
||||
alt=""
|
||||
/>
|
||||
|
||||
@@ -20,22 +20,22 @@ const panelVariants = {
|
||||
open: {
|
||||
opacity: 1,
|
||||
height: "100%",
|
||||
marginTop: 4,
|
||||
marginBottom: 4,
|
||||
// transition: { stiffness: 600, damping: 32, duration: 0.2 },
|
||||
marginTop: "4px",
|
||||
marginBottom: "4px",
|
||||
transition: { type: "tween", duration: 0.1 },
|
||||
},
|
||||
collapsed: {
|
||||
opacity: 0,
|
||||
height: 0,
|
||||
marginTop: 0,
|
||||
marginBottom: 0,
|
||||
// transition: { stiffness: 600, damping: 32, duration: 0.2 },
|
||||
height: "0px",
|
||||
marginTop: "0px",
|
||||
marginBottom: "0px",
|
||||
transition: { type: "tween", duration: 0.1 },
|
||||
},
|
||||
};
|
||||
|
||||
const contentVariants = {
|
||||
open: { opacity: 1, transition: { duration: 0.2 } },
|
||||
collapsed: { opacity: 0, transition: { duration: 0.1 } },
|
||||
open: { opacity: 1, transition: { duration: 0.2, delay: 0.1 } },
|
||||
collapsed: { opacity: 0, transition: { duration: 0 } },
|
||||
};
|
||||
|
||||
const buttonColor = "#35313D";
|
||||
@@ -242,6 +242,7 @@ const DetailsPanel: React.FC<InfoPanelProps> = (props) => {
|
||||
animate="open"
|
||||
exit="collapsed"
|
||||
variants={contentVariants}
|
||||
title="Close"
|
||||
>
|
||||
<X
|
||||
className="close-icon"
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
justify-content: center;
|
||||
margin: 4px;
|
||||
border-radius: 16px;
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
cursor: pointer;
|
||||
/* transition: background-color 100ms ease; */
|
||||
}
|
||||
@@ -46,6 +46,24 @@
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 536px) {
|
||||
.grid-container {
|
||||
padding: 32px 8px;
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
width: 108px;
|
||||
height: unset;
|
||||
padding: 4px 0;
|
||||
justify-content: flex-start;
|
||||
border: 2px solid transparent;
|
||||
}
|
||||
|
||||
.grid-item p {
|
||||
padding: 0 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.info-box {
|
||||
position: relative;
|
||||
display: flex;
|
||||
@@ -64,6 +82,10 @@
|
||||
.icon-usage {
|
||||
padding-left: 10% !important;
|
||||
}
|
||||
|
||||
.snippet pre {
|
||||
padding: 12px 8px 12px 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-preview {
|
||||
@@ -95,9 +117,9 @@
|
||||
align-items: center;
|
||||
text-overflow: ellipsis;
|
||||
color: black;
|
||||
user-select: all;
|
||||
-moz-user-select: all;
|
||||
-webkit-user-select: all;
|
||||
user-select: all;
|
||||
}
|
||||
|
||||
.snippet pre:focus {
|
||||
@@ -106,9 +128,9 @@
|
||||
|
||||
@keyframes select {
|
||||
to {
|
||||
user-select: text;
|
||||
-moz-user-select: text;
|
||||
-webkit-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -43,26 +43,6 @@ const Links: React.FC<LinksProps> = () => {
|
||||
</OutboundLink>
|
||||
</span>
|
||||
</div>
|
||||
{/* <div>
|
||||
<ArrowElbowDownRight size={24} />
|
||||
<OutboundLink
|
||||
className="nav-link"
|
||||
to="https://www.figma.com/file/xMCDSp5g0g7Fw8aMyAdVVr/Phosphor-Icon-Library-0.6.0"
|
||||
eventLabel="Figma library"
|
||||
>
|
||||
Figma library
|
||||
</OutboundLink>
|
||||
</div>
|
||||
<div>
|
||||
<ArrowElbowDownRight size={24} />
|
||||
<OutboundLink
|
||||
className="nav-link"
|
||||
to="https://www.figma.com/community/plugin/892854133443228626/Phosphor-Icons"
|
||||
eventLabel="Figma plugin"
|
||||
>
|
||||
Figma plugin
|
||||
</OutboundLink>
|
||||
</div> */}
|
||||
<div>
|
||||
<ArrowElbowDownRight size={24} />
|
||||
<a
|
||||
|
||||
@@ -15,11 +15,15 @@
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
.search-bar:focus-within .keys {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.search-bar input {
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
border: none;
|
||||
margin-left: 12px;
|
||||
margin: 0 12px;
|
||||
padding: 0;
|
||||
font-size: 16px;
|
||||
color: white;
|
||||
@@ -48,6 +52,17 @@
|
||||
cursor: wait;
|
||||
}
|
||||
|
||||
.keys {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
min-width: 42px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 558px) {
|
||||
#search-icon {
|
||||
display: none;
|
||||
@@ -58,3 +73,9 @@
|
||||
width: 60%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 858px) and (max-width: 1100px) {
|
||||
.search-bar {
|
||||
flex-basis: 320px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,33 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import React, { useState, useEffect, useRef, MutableRefObject } from "react";
|
||||
import { useRecoilState } from "recoil";
|
||||
import { useDebounce } from "react-use";
|
||||
import { MagnifyingGlass, X, HourglassHigh } from "phosphor-react";
|
||||
import { useHotkeys } from "react-hotkeys-hook";
|
||||
import { Command, MagnifyingGlass, X, HourglassHigh } from "phosphor-react";
|
||||
import ReactGA from "react-ga";
|
||||
|
||||
import { searchQueryAtom } from "../../state/atoms";
|
||||
import "./SearchInput.css";
|
||||
|
||||
const apple = /iPhone|iPod|iPad|Macintosh|MacIntel|MacPPC/i;
|
||||
const isApple = apple.test(window.navigator.platform);
|
||||
|
||||
const mobile = /Android|iPhone|iPod|iPad|Opera Mini|IEMobile/i;
|
||||
const isMobile = mobile.test(window.navigator.userAgent);
|
||||
|
||||
type SearchInputProps = {};
|
||||
|
||||
const SearchInput: React.FC<SearchInputProps> = () => {
|
||||
const [value, setValue] = useState<string>("");
|
||||
const [query, setQuery] = useRecoilState(searchQueryAtom);
|
||||
const inputRef = useRef<HTMLInputElement>() as MutableRefObject<HTMLInputElement>;
|
||||
|
||||
useHotkeys("ctrl+k,cmd+k", (e) => {
|
||||
e.preventDefault();
|
||||
if (!e.repeat) {
|
||||
inputRef.current?.focus();
|
||||
inputRef.current.select();
|
||||
}
|
||||
});
|
||||
|
||||
/* eslint-disable react-hooks/exhaustive-deps */
|
||||
useEffect(() => {
|
||||
@@ -28,13 +44,15 @@ const SearchInput: React.FC<SearchInputProps> = () => {
|
||||
() => {
|
||||
if (value !== query) {
|
||||
setQuery(value);
|
||||
!!value && ReactGA.event({ category: "Search", action: "Query", label: value });
|
||||
!!value &&
|
||||
ReactGA.event({ category: "Search", action: "Query", label: value });
|
||||
}
|
||||
!!value && void document
|
||||
.getElementById("beacon")
|
||||
?.scrollIntoView({ block: "start", behavior: "smooth" });
|
||||
!!value &&
|
||||
void document
|
||||
.getElementById("beacon")
|
||||
?.scrollIntoView({ block: "start", behavior: "smooth" });
|
||||
},
|
||||
250,
|
||||
500,
|
||||
[value]
|
||||
);
|
||||
|
||||
@@ -49,6 +67,7 @@ const SearchInput: React.FC<SearchInputProps> = () => {
|
||||
<div className="search-bar">
|
||||
<MagnifyingGlass id="search-icon" size={24} />
|
||||
<input
|
||||
ref={inputRef}
|
||||
id="search-input"
|
||||
title="Search for icon names, categories, or keywords"
|
||||
aria-label="Search for an icon"
|
||||
@@ -62,6 +81,7 @@ const SearchInput: React.FC<SearchInputProps> = () => {
|
||||
key === "Enter" && currentTarget.blur()
|
||||
}
|
||||
/>
|
||||
{!value && !isMobile && <Keys>{isApple ? <Command /> : "Ctrl + "}K</Keys>}
|
||||
{value ? (
|
||||
isReady() ? (
|
||||
<X className="clear-icon" size={18} onClick={handleCancelSearch} />
|
||||
@@ -73,4 +93,8 @@ const SearchInput: React.FC<SearchInputProps> = () => {
|
||||
);
|
||||
};
|
||||
|
||||
const Keys: React.FC<{}> = ({ children }) => (
|
||||
<div className="keys">{children}</div>
|
||||
);
|
||||
|
||||
export default SearchInput;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React from "react";
|
||||
import { useSetRecoilState } from "recoil";
|
||||
import React, { useMemo } from "react";
|
||||
import { useRecoilState } from "recoil";
|
||||
import Select from "react-dropdown-select";
|
||||
import { PencilLine } from "phosphor-react";
|
||||
|
||||
@@ -45,7 +45,12 @@ const options: WeightOption[] = [
|
||||
type StyleInputProps = {};
|
||||
|
||||
const StyleInput: React.FC<StyleInputProps> = () => {
|
||||
const setStyle = useSetRecoilState(iconWeightAtom);
|
||||
const [style, setStyle] = useRecoilState(iconWeightAtom);
|
||||
|
||||
const currentStyle = useMemo(
|
||||
() => [options.find((option) => option.value === style)!!],
|
||||
[style]
|
||||
);
|
||||
|
||||
const handleStyleChange = (values: WeightOption[]) =>
|
||||
setStyle(values[0].value as IconStyle);
|
||||
@@ -53,7 +58,7 @@ const StyleInput: React.FC<StyleInputProps> = () => {
|
||||
return (
|
||||
<Select
|
||||
options={options}
|
||||
values={[options[2]]}
|
||||
values={currentStyle}
|
||||
searchable={false}
|
||||
labelField="key"
|
||||
onChange={handleStyleChange}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
menu.toolbar {
|
||||
nav.toolbar {
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: -1px;
|
||||
padding: 0;
|
||||
|
||||
@@ -10,14 +10,14 @@ type ToolbarProps = {};
|
||||
|
||||
const Toolbar: React.FC<ToolbarProps> = () => {
|
||||
return (
|
||||
<menu className="toolbar" id="toolbar">
|
||||
<nav className="toolbar" id="toolbar">
|
||||
<div className="toolbar-contents">
|
||||
<StyleInput />
|
||||
<SearchInput />
|
||||
<SizeInput />
|
||||
<ColorInput />
|
||||
</div>
|
||||
</menu>
|
||||
</nav>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
16
src/hooks/useDebounce.ts
Normal file
16
src/hooks/useDebounce.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { DependencyList, useEffect } from "react";
|
||||
import useTimeoutFn from "./useTimeoutFn";
|
||||
|
||||
export type UseDebounceReturn = [() => boolean | null, () => void];
|
||||
|
||||
export default function useDebounce(
|
||||
fn: Function,
|
||||
ms: number = 0,
|
||||
deps: DependencyList = []
|
||||
): UseDebounceReturn {
|
||||
const [isReady, cancel, reset] = useTimeoutFn(fn, ms);
|
||||
|
||||
useEffect(reset, deps);
|
||||
|
||||
return [isReady, cancel];
|
||||
}
|
||||
@@ -1,13 +1,18 @@
|
||||
import { useWindowSize } from "react-use";
|
||||
|
||||
const MOBILE_BREAKPOINT = 536;
|
||||
|
||||
const GRID_PADDING = 32; // .grid-container { padding }
|
||||
const TOOLBAR_WIDTH = 17; // IS THIS BROWSER-SPECIFIC?
|
||||
const MAX_GRID_WIDTH = 1120; // .grid { max-width }
|
||||
const ITEM_WIDTH = 168; // .grid-item { width; height; margin }
|
||||
const ITEM_WIDTH_MOBILE = 108; // .grid-item { width; height; margin }
|
||||
|
||||
export default (): number => {
|
||||
const { width } = useWindowSize();
|
||||
const itemWidth = width <= MOBILE_BREAKPOINT ? ITEM_WIDTH_MOBILE : ITEM_WIDTH;
|
||||
|
||||
return Math.floor(
|
||||
Math.min(width - GRID_PADDING - TOOLBAR_WIDTH, MAX_GRID_WIDTH) / ITEM_WIDTH
|
||||
Math.min(width - GRID_PADDING - TOOLBAR_WIDTH, MAX_GRID_WIDTH) / itemWidth
|
||||
);
|
||||
};
|
||||
|
||||
37
src/hooks/useIconParameters.ts
Normal file
37
src/hooks/useIconParameters.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { useEffect } from "react";
|
||||
import { useSearchParam } from "react-use";
|
||||
import { useSetRecoilState } from "recoil";
|
||||
import TinyColor from "tinycolor2";
|
||||
import { iconColorAtom, iconWeightAtom, iconSizeAtom } from "../state/atoms";
|
||||
import { IconStyle } from "../lib";
|
||||
|
||||
export default () => {
|
||||
const weight = useSearchParam("weight")?.replace(/["']/g, "");
|
||||
const size = useSearchParam("size")?.replace(/["']/g, "");
|
||||
const color = useSearchParam("color")?.replace(/["']/g, "");
|
||||
|
||||
const setColor = useSetRecoilState(iconColorAtom);
|
||||
const setWeight = useSetRecoilState(iconWeightAtom);
|
||||
const setSize = useSetRecoilState(iconSizeAtom);
|
||||
|
||||
useEffect(() => {
|
||||
if (weight) {
|
||||
if (weight.toUpperCase() in IconStyle) setWeight(weight as IconStyle);
|
||||
}
|
||||
}, [weight, setWeight]);
|
||||
|
||||
useEffect(() => {
|
||||
if (size) {
|
||||
const normalizedSize = parseInt(size);
|
||||
if (typeof normalizedSize === "number" && isFinite(normalizedSize))
|
||||
setSize(Math.min(Math.max(normalizedSize, 16), 96));
|
||||
}
|
||||
}, [size, setSize]);
|
||||
|
||||
useEffect(() => {
|
||||
if (color) {
|
||||
const normalizedColor = TinyColor(color);
|
||||
if (normalizedColor.isValid()) setColor(normalizedColor.toHexString());
|
||||
}
|
||||
}, [color, setColor]);
|
||||
};
|
||||
37
src/hooks/useThrottle.ts
Normal file
37
src/hooks/useThrottle.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
import useUnmount from "./useUnmount";
|
||||
|
||||
const useThrottle = <T>(value: T, ms: number = 200) => {
|
||||
const [state, setState] = useState<T>(value);
|
||||
const timeout = useRef<ReturnType<typeof setTimeout>>();
|
||||
const nextValue = useRef(null) as any;
|
||||
const hasNextValue = useRef(0) as any;
|
||||
|
||||
useEffect(() => {
|
||||
if (!timeout.current) {
|
||||
setState(value);
|
||||
const timeoutCallback = () => {
|
||||
if (hasNextValue.current) {
|
||||
hasNextValue.current = false;
|
||||
setState(nextValue.current);
|
||||
timeout.current = setTimeout(timeoutCallback, ms);
|
||||
} else {
|
||||
timeout.current = undefined;
|
||||
}
|
||||
};
|
||||
timeout.current = setTimeout(timeoutCallback, ms);
|
||||
} else {
|
||||
nextValue.current = value;
|
||||
hasNextValue.current = true;
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [value]);
|
||||
|
||||
useUnmount(() => {
|
||||
timeout.current && clearTimeout(timeout.current);
|
||||
});
|
||||
|
||||
return state;
|
||||
};
|
||||
|
||||
export default useThrottle;
|
||||
44
src/hooks/useTimeoutFn.ts
Normal file
44
src/hooks/useTimeoutFn.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { useCallback, useEffect, useRef } from "react";
|
||||
|
||||
export type UseTimeoutFnReturn = [() => boolean | null, () => void, () => void];
|
||||
|
||||
export default function useTimeoutFn(
|
||||
fn: Function,
|
||||
ms: number = 0
|
||||
): UseTimeoutFnReturn {
|
||||
const ready = useRef<boolean | null>(false);
|
||||
const timeout = useRef<ReturnType<typeof setTimeout>>();
|
||||
const callback = useRef(fn);
|
||||
|
||||
const isReady = useCallback(() => ready.current, []);
|
||||
|
||||
const set = useCallback(() => {
|
||||
ready.current = false;
|
||||
timeout.current && clearTimeout(timeout.current);
|
||||
|
||||
timeout.current = setTimeout(() => {
|
||||
ready.current = true;
|
||||
callback.current();
|
||||
}, ms);
|
||||
}, [ms]);
|
||||
|
||||
const clear = useCallback(() => {
|
||||
ready.current = null;
|
||||
timeout.current && clearTimeout(timeout.current);
|
||||
}, []);
|
||||
|
||||
// update ref when function changes
|
||||
useEffect(() => {
|
||||
callback.current = fn;
|
||||
}, [fn]);
|
||||
|
||||
// set on mount, clear on unmount
|
||||
useEffect(() => {
|
||||
set();
|
||||
|
||||
return clear;
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [ms]);
|
||||
|
||||
return [isReady, clear, set];
|
||||
}
|
||||
12
src/hooks/useUnmount.ts
Normal file
12
src/hooks/useUnmount.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { useRef, useEffect } from "react";
|
||||
|
||||
const useUnmount = (fn: () => any): void => {
|
||||
const fnRef = useRef(fn);
|
||||
|
||||
// update the ref each render so if it change the newest callback will be invoked
|
||||
fnRef.current = fn;
|
||||
|
||||
useEffect(() => () => fnRef.current(), []);
|
||||
};
|
||||
|
||||
export default useUnmount;
|
||||
4778
src/lib/icons.ts
4778
src/lib/icons.ts
File diff suppressed because it is too large
Load Diff
@@ -15,7 +15,7 @@ export enum IconCategory {
|
||||
COMMERCE = "commerce",
|
||||
COMMUNICATION = "communications",
|
||||
DESIGN = "design",
|
||||
DEVELOPMENT = "development",
|
||||
DEVELOPMENT = "technology & development",
|
||||
OFFICE = "office",
|
||||
EDITOR = "editor",
|
||||
FINANCE = "finances",
|
||||
|
||||
Reference in New Issue
Block a user