├── .github ├── ISSUE_TEMPLATE.md └── Screenshots │ ├── header.png │ └── preview.png ├── .gitignore ├── LICENSE ├── README.md ├── alternative_user_files └── userContent_no_addons.css ├── css ├── common-files │ ├── color_variables.css │ ├── context_menus.css │ ├── library.css │ ├── radios_checkboxes.css │ └── trees.css ├── userChrome-files │ ├── about_firefox.css │ ├── address_searchbar.css │ ├── bookmarks_popup.css │ ├── clear_history.css │ ├── common_dialog.css │ ├── customization_page.css │ ├── findbar.css │ ├── navbar.css │ ├── navbar_menus.css │ ├── page_info.css │ ├── remove_bookmarks_bottom_border.css │ ├── remove_white_flash.css │ ├── secure_connection_colors.css │ ├── sidebar.css │ ├── status_panel.css │ └── tab_line_colors.css └── userContent-files │ ├── about_pages.css │ ├── amo_store.css │ ├── directory_listings.css │ ├── manifest.css │ ├── pdf.css │ ├── raw_githubusercontent.css │ ├── rss.css │ ├── view_source.css │ └── webextension-tweaks │ ├── brief.css │ ├── cookie_autodelete.css │ ├── dark_mode.css │ ├── downloads_sidebar.css │ ├── dustman.css │ ├── generic_style.css │ ├── greasemonkey.css │ ├── momentum.css │ ├── multi_account_containers.css │ ├── noscript.css │ ├── onetab.css │ ├── pocket.css │ ├── random_user_agent.css │ ├── request_control.css │ ├── tree_style_tab.css │ ├── tridactyl.css │ ├── ublock_origin.css │ ├── ubo_scope.css │ ├── ultrawide_video.css │ ├── umatrix.css │ ├── vim_vixen.css │ ├── violentmonkey.css │ └── youtube_video_and_audio_downloader.css ├── gulpfile.js ├── no_empty_iframes ├── README.md ├── manifest.json ├── no_empty_iframes.js └── no_empty_iframes.zip ├── package-lock.json ├── package.json ├── scripts ├── updater_version.sh └── uuids.sh ├── userChrome.css ├── userChrome_imports.css ├── userContent.css ├── userContent_imports.css └── website ├── .cache ├── 0968e6b498252d2c3e584e82db85b9ed.json ├── 0acb906661a74496de117cd3c7f0a159.json ├── 0be3bb65675e9d7fbd0a47bab1cd6459.json ├── 0c80714f095942c4c4af0f0b75df94e7.json ├── 10857c1626f3ae53cbd39fcd6b852cdb.json ├── 111d8aa038d5fbdb0cb712d81e7531a1.json ├── 1a85bf56750ff10ffb7dda58aedc62d6.json ├── 1c8835cd5b2d85f93dd1aa389d4094be.json ├── 1f18e9bcfa8367a65bc58c144a62713b.json ├── 24df99a88b15bdef165ee0ee8b10a938.json ├── 261554f13b939432f3223abe2e6fd7c6.json ├── 27b89ac0c6b3647d1894dc5c9b0988fd.json ├── 2a7e17aee7ad6947fe55e0acd182f2b7.json ├── 351b7b101a70d034145a23a6284029a6.json ├── 359504e31b17c13c9d753ff1bf99f274.json ├── 4081f34b84275562ee917b562ffc2c7c.json ├── 49c6b95d0be77f204a33faa62742b38e.json ├── 4d9626e8582857023242c0015999b239.json ├── 545aecd67dbe94ab9911bd162cc3e7ea.json ├── 60de5956a3cb9f72e44b8106a79741e3.json ├── 62fbb7d5601897b504a30afb6b907cb7.json ├── 637d4fc717f7229535f574850ebe7b7b.json ├── 66624e1299b0e722a5c5e71c81415fc0.json ├── 6a0ec4484e9201f78ad3c64cf882e1ec.json ├── 6dab2774a594f51686f2357e60159661.json ├── 722afd0ce0a73bb3b0f6ba04d09436d6.json ├── 788cc2010d78a48664e7fdd11bb9e2a6.json ├── 7d05b5c310f539ed9bc10515806c0e10.json ├── 80fe3d1e3ee99d3db8c4ea200bc58eaf.json ├── 8f745cfd9eee03157d7d8b4a41d6f141.json ├── a01f7ac04b77ff469df1b920672483b7.json ├── afdae9c700ee7a712ba0bf6d95987574.json ├── b0c77296d5765c434f8e49794505e620.json ├── b8ece460dd55f9bf616a1d6550c4e51b.json ├── bd5b77da228f163fa5d5c67c419ab9f2.json ├── c0d1433bcb6247ee056ee4c04f287ba9.json ├── c71fd844ea076413e228386393909899.json ├── c78683a292a5bdf8b6e16fd0defede2f.json ├── c7ecb80fe2c41aee98fa9d8ddbfc6d0e.json ├── c93ea1adebbf3d4825bf9a8cf10ef987.json ├── cf72ca69ebb0c613572247525db36edc.json ├── e0e7eee9731b209d4afbe6f00cc265e0.json ├── e2a995b1d83081230ecf87872b5c51af.json ├── e6abb6de2d5268b2cf956ff75015148a.json ├── e714a6b46fc073cfea11f2d0e90d7208.json ├── ea20a7cc7575c448e64ae3d6054d5b51.json ├── ec10aedf8568c4d16e0d70c79c1f3d92.json ├── efdf49041571909ba52d70b582c83d89.json ├── f22766e2d4abcdc05b88db44b9fd1567.json ├── fdf7732a781e5eb05a0daf5525139427.json └── fe6f672b0bb199bc2b0909e50ab8a729.json ├── critical.js ├── dist ├── GcP71BP-min.21c94d22.png ├── GcP71BP-min.62448586.png ├── GcP71BP-min.c5cef7fa.png ├── Lato-Light.074c2336.woff ├── Lato-Light.0cf75d24.woff2 ├── Lato-Light.14471854.ttf ├── Lato-Light.3acc152e.eot ├── Lato-Light.3c97fe76.eot ├── Lato-Light.9e982457.ttf ├── Lato-Light.ab0a3383.eot ├── Lato-Light.c00f9bd1.woff ├── Lato-Light.c6f6b7a6.ttf ├── Lato-Light.c9c59e8e.woff ├── Lato-Light.cb0c9583.woff2 ├── Lato-Light.e740ee5a.woff2 ├── Lato-LightItalic.184bf78e.eot ├── Lato-LightItalic.5481e4c7.woff ├── Lato-LightItalic.69b9e097.woff2 ├── Lato-LightItalic.7534bbf3.eot ├── Lato-LightItalic.7d9facd5.woff ├── Lato-LightItalic.82a482bf.ttf ├── Lato-LightItalic.9d03dc5c.ttf ├── Lato-LightItalic.a0e5d32f.woff2 ├── Lato-LightItalic.b3fd8a03.woff2 ├── Lato-LightItalic.cace5c53.eot ├── Lato-LightItalic.e57e9f3b.woff ├── Lato-LightItalic.f94aeb72.ttf ├── ShadowFox-logo-sp.26feb55b.png ├── ShadowFox-logo-sp.6043b896.png ├── ShadowFox-logo-sp.735cd048.png ├── android-chrome-192x192.14995f0c.png ├── android-chrome-192x192.382cc2f0.png ├── android-chrome-192x192.ce7b43a9.png ├── android-chrome-192x192.d7b54f7c.png ├── android-chrome-48x48.3d821620.png ├── android-chrome-512x512.01d1fa7c.png ├── android-chrome-512x512.311b8d04.png ├── android-chrome-512x512.45ddacee.png ├── android-chrome-512x512.b8f339e6.png ├── apple-touch-icon.323fcc51.png ├── apple-touch-icon.72492c6c.png ├── apple-touch-icon.c6875160.png ├── apple-touch-icon.e29f8037.png ├── apple-touch-icon.fa4487f8.png ├── browserconfig.115cb9dc.xml ├── browserconfig.e96b0d8f.xml ├── favicon-16x16.614c7f97.png ├── favicon-16x16.98341b2f.png ├── favicon-16x16.a38ee9d2.png ├── favicon-16x16.a999429a.png ├── favicon-16x16.d914d78a.png ├── favicon-32x32.29f406f3.png ├── favicon-32x32.39fc885a.png ├── favicon-32x32.78c87f9c.png ├── favicon-32x32.c6b8714c.png ├── favicon-32x32.de92ca75.png ├── favicon.08713f72.ico ├── favicon.292d8906.ico ├── favicon.3c2d3cb3.ico ├── favicon.95bad960.ico ├── favicon.f13d1ff9.ico ├── index.html ├── index.js ├── index.map ├── ionicons.044e0f8b.ttf ├── ionicons.138a1568.ttf ├── ionicons.5c32eb05.svg ├── ionicons.7ea6beda.eot ├── ionicons.8e595e5d.ttf ├── ionicons.a54256ce.svg ├── ionicons.c628c025.eot ├── ionicons.d3529123.eot ├── ionicons.e9599233.woff ├── ionicons.e9956e69.woff ├── ionicons.f4277e23.svg ├── ionicons.f93d54c4.woff ├── no_empty_iframes_testpage.html ├── resources │ └── img │ │ ├── Addons-small.jpg │ │ ├── Addons.png │ │ ├── Library-small.jpg │ │ ├── Library.jpg │ │ ├── View Source-small.jpg │ │ ├── View Source.jpg │ │ ├── blank-small.jpg │ │ ├── blank.jpg │ │ ├── preferences-small.jpg │ │ ├── preferences.jpg │ │ ├── uBlock Origin-small.jpg │ │ ├── uBlock Origin.jpg │ │ ├── uMatrix-small.jpg │ │ └── uMatrix.jpg ├── safari-pinned-tab.5008f409.svg ├── safari-pinned-tab.7881bc64.svg ├── safari-pinned-tab.87a4d9cf.svg ├── safari-pinned-tab.aa4303a2.svg ├── shadowfox_website.6ad40995.js ├── shadowfox_website.6ad40995.map ├── shadowfox_website.84f85f30.css ├── site.2be6c589.webmanifest ├── site.4520ac93.webmanifest ├── site.5adef91b.webmanifest ├── site.61d91522.webmanifest ├── site.91ef14c0.webmanifest ├── site.e2f57597.webmanifest ├── testimonials_bg.24ccf0e1.jpg ├── testimonials_bg.831211c3.jpg ├── testimonials_bg.d164d092.jpg ├── testpage.d17cee69.js ├── testpage.d17cee69.map ├── testpage.f493533c.js ├── testpage.f493533c.map ├── testpage.html ├── website.121ad5a8.map ├── website.4f94ef01.css ├── website.5f572aa7.css ├── website.5f7fbaef.js ├── website.5f7fbaef.map ├── website.615865dd.css ├── website.615865dd.js ├── website.615865dd.map ├── website.6a1ea97c.js ├── website.6a1ea97c.map ├── website.7e78269a.css ├── website.81a86232.map ├── website.9ad09f98.css ├── website.9ad09f98.js ├── website.9ad09f98.map ├── website.ac9fcc82.js ├── website.ac9fcc82.map ├── website.b1e10513.css ├── website.e31bb0bc.js ├── website.e31bb0bc.map ├── website.f4306e97.css ├── website.f9768d7d.js ├── website.f9768d7d.map └── website.fe92ac9e.css ├── gulpfile.js ├── index.css ├── index.html ├── index.html-e ├── index.js ├── no_empty_iframes_testpage.html ├── package-lock.json ├── package.json ├── resources ├── css │ ├── img │ │ ├── GcP71BP-min.png │ │ ├── GcP71BP.png │ │ ├── bg2.jpg │ │ └── testimonials_bg.jpg │ ├── queries.css │ └── style.css ├── favicons │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ ├── apple-touch-icon.png │ ├── browserconfig.xml │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon.ico │ ├── mstile-144x144.png │ ├── mstile-150x150.png │ ├── mstile-310x150.png │ ├── mstile-310x310.png │ ├── mstile-70x70.png │ ├── safari-pinned-tab.svg │ └── site.webmanifest ├── img │ ├── Addons-small.jpg │ ├── Addons.png │ ├── Library-small.jpg │ ├── Library.jpg │ ├── ShadowFox-logo-sp.png │ ├── View Source-small.jpg │ ├── View Source.jpg │ ├── blank-small.jpg │ ├── blank.jpg │ ├── preferences-small.jpg │ ├── preferences.jpg │ ├── sf-white.png │ ├── sf_white.png │ ├── uBlock Origin-small.jpg │ ├── uBlock Origin.jpg │ ├── uMatrix-small.jpg │ └── uMatrix.jpg └── js │ ├── bundle.js │ ├── script.js │ └── testpage.js └── vendors ├── css ├── animate.css ├── codemirror.css ├── combined.css ├── grid.css ├── ionicons.css ├── latofonts.css ├── magnific-popup.css ├── normalize.css └── shadowfox.css ├── fonts ├── Lato-Light.eot ├── Lato-Light.ttf ├── Lato-Light.woff ├── Lato-Light.woff2 ├── Lato-LightItalic.eot ├── Lato-LightItalic.ttf ├── Lato-LightItalic.woff ├── Lato-LightItalic.woff2 ├── ionicons.eot ├── ionicons.svg ├── ionicons.ttf └── ionicons.woff └── js └── selectivizr.min.js /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 40 | -------------------------------------------------------------------------------- /.github/Screenshots/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/.github/Screenshots/header.png -------------------------------------------------------------------------------- /.github/Screenshots/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/.github/Screenshots/preview.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | internal_UUIDs.txt 3 | node_modules 4 | .cache 5 | ShadowFox.xcodeproj 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 overdodactyl 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![header](.github/Screenshots/header.png) 2 | 3 | ShadowFox was inspired by changes made in Firefox 57, which limited the amount addons could customize both the user interface and "protected" web pages. 4 | 5 | This project aims at creating a universal dark theme for Firefox while adhering to the modern design principles set by Mozilla. 6 | 7 | You can visit the ShadowFox website at [overdodactyl.github.io/ShadowFox/](https://overdodactyl.github.io/ShadowFox/). 8 | 9 | ## Preview 10 | 11 | ![preferences](.github/Screenshots/preview.png) 12 | 13 | ShadowFox styles the entire user interface, protected webpages (such as `about:` pages and addons.mozilla.org), and over 40 popular addons. 14 | 15 | ## Installation and Updating 16 | 17 | A cross-platform installer/uninstaller/updater is maintained in the [shadowfox-updater](https://github.com/SrKomodo/shadowfox-updater) repository. Latest versions can be found in the [releases](https://github.com/SrKomodo/shadowfox-updater/releases) section, or via `Homebrew`, `MacPorts`, and `AUR`. Please see the [README](https://github.com/SrKomodo/shadowfox-updater/blob/master/README.md) file for details on how to use the updater (GUI and CLI options available) and solutions to common problems. 18 | 19 | ## Customization 20 | 21 | It's easy to customize ShadowFox. You can choose what colors are used, what elements and webpages are styled, or add your own css tweaks. For more information, see [here](https://github.com/overdodactyl/ShadowFox/wiki/Customization). 22 | 23 | Depending on how much you want to customize ShadowFox, you may be better suited using a different installation process. To learn more, see [here](https://github.com/overdodactyl/ShadowFox/wiki/Development). 24 | 25 | ## Discussion 26 | 27 | * Chat about ShadowFox on Slack - [invitation link](https://join.slack.com/t/shadowfox-workspace/shared_invite/enQtMzU3NTU2NTQ0NDA1LTcwN2I1M2I4MzlkMWFlMWEzODc2MTY1NzU2NjhlYTgzOGY5ZTQzM2UxZTFiZDMxNDM1NDMyNjlhOWQ4MWQ3ZDc) 28 | 29 | ## Find a bug? Have a feature request? Have any questions? 30 | 31 | Please first read through the [wiki](https://github.com/overdodactyl/ShadowFox/wiki/) (including the getting started information, troubleshooting, and known problems) and take a look at any open [issues](https://github.com/overdodactyl/ShadowFox/issues). If you can't find a duplicate request, bug, or an answer to your question, please feel free to either: 32 | 33 | * Open a [new issue](https://github.com/overdodactyl/ShadowFox/issues/new) 34 | 35 | * Make a post on the ShadowFox [Reddit page](https://www.reddit.com/r/ShadowFoxCSS/). 36 | 37 | 38 | ## Contributing 39 | 40 | I welcome any contributions and would be excited to have a team of people helping with this project. If you are uncomfortable making pull requests, you can simply open up an issue and attach any code you would like included. 41 | -------------------------------------------------------------------------------- /css/common-files/context_menus.css: -------------------------------------------------------------------------------- 1 | menupopup, 2 | menupopup > menu > menupopup, 3 | menupopup scrollbox, 4 | popup, 5 | popup > menu > menupopup { 6 | -moz-appearance: none!important; 7 | background: var(--in-content-box-background)!important; 8 | border: none!important; 9 | padding: 0!important 10 | } 11 | menu.subviewbutton > .menu-right { 12 | fill: #000!important 13 | } 14 | .menu-right { 15 | filter: invert(95%)!important 16 | } 17 | #context-navigation menuitem, 18 | .panel-arrowcontent { 19 | color: var(--in-content-selected-text)!important; 20 | background: var(--in-content-box-background)!important 21 | } 22 | #context-navigation menuitem:hover { 23 | background: var(--in-content-primary-button-background-hover)!important 24 | } 25 | menuitem, 26 | menupopup menu { 27 | -moz-appearance: none!important; 28 | color: var(--in-content-selected-text)!important; 29 | background: var(--in-content-box-background)!important 30 | } 31 | menupopup menuseparator { 32 | -moz-appearance: none!important; 33 | padding: 1px!important; 34 | margin: 5px 0!important; 35 | background: var(--in-content-table-border-dark-color)!important; 36 | border-top: none!important 37 | } 38 | #context-navigation menuitem[disabled=true], 39 | menu[disabled=true], 40 | menuitem[disabled=true] { 41 | color: var(--in-content-box-border-color)!important 42 | } 43 | menu[disabled=true]:hover, 44 | menuitem:hover[disabled=true] { 45 | color: var(--in-content-box-border-color)!important; 46 | background-color: var(--in-content-box-background)!important 47 | } 48 | #context-navigation menuitem:hover[disabled=true] { 49 | color: var(--in-content-box-border-color)!important; 50 | background-color: var(--in-content-box-background)!important 51 | } 52 | menuitem[_moz-menuactive=true], 53 | menupopup menu[_moz-menuactive=true] { 54 | color: var(--in-content-selected-text)!important; 55 | background-color: var(--in-content-primary-button-background-hover)!important 56 | } 57 | vbox#sidebar-box.chromeclass-extrachrome { 58 | border-color: var(--in-content-category-header-background)!important; 59 | border-right: 1px!important; 60 | border-style: solid!important 61 | } 62 | #_testpilot-containers_7 .menu-iconic-left, 63 | #treestyletab_piro_sakura_ne_jp_8 .menu-iconic-left { 64 | filter: invert(55%)!important 65 | } 66 | @media screen and (-moz-windows-theme), 67 | screen and (-moz-windows-classic), 68 | screen and (-moz-windows-default-theme), 69 | screen and (-moz-os-version:windows-win7), 70 | screen and (-moz-os-version:windows-win8), 71 | screen and (-moz-os-version:windows-win10) { 72 | menupopup menuseparator { 73 | padding: 0!important; 74 | border-color: var(--in-content-table-border-dark-color)!important 75 | } 76 | #context-navigation, 77 | #context-sep-navigation { 78 | padding: 0!important 79 | } 80 | #BMB_bookmarksPopup menupopup { 81 | padding: 4px 0 0!important 82 | } 83 | #BMB_bookmarksPopup menupopup[placespopup=true] > hbox, 84 | #personal-bookmarks menupopup, 85 | .box-inherit scrollbox-innerbox, 86 | .panel-arrowcontent, 87 | menupopup#BMB_bookmarksPopup > menu > menupopup > hbox, 88 | menupopup#PlacesChevronPopup, 89 | menupopup#bookmarksMenuPopup, 90 | menupopup#bookmarksMenuPopup > menu > menupopup, 91 | menupopup#bookmarksMenuPopup menupopup[placespopup=true], 92 | menupopup#contentAreaContextMenu, 93 | menupopup#contentAreaContextMenu menupopup, 94 | menupopup#downloadsContextMenu, 95 | menupopup#placesContext, 96 | menupopup#tabContextMenu, 97 | menupopup#tabContextMenu menupopup, 98 | menupopup#toolbar-context-menu, 99 | toolbaritem#menubar-items menupopup { 100 | border-color: var(--in-content-box-background)!important; 101 | border-width: 1px!important; 102 | border-style: solid!important 103 | } 104 | #bookmarksMenuPopup, 105 | #personal-bookmarks menupopup .bookmark-item, 106 | menupopup#goPopup { 107 | padding-left: 4px!important; 108 | padding-right: 4px!important 109 | } 110 | menupopup#contentAreaContextMenu menupopup, 111 | menupopup#tabContextMenu > menu > menupopup > .popup-internal-box, 112 | menupopup#toolbar-context-menu { 113 | padding-left: 2px!important; 114 | padding-right: 2px!important 115 | } 116 | menupopup, 117 | menupopup > menu > menupopup { 118 | padding: 4px 0!important 119 | } 120 | #customization-toolbar-menu, 121 | toolbaritem#menubar-items menupopup, 122 | toolbaritem#menubar-items menupopup > menu > menupopup { 123 | padding-left: 2px!important; 124 | padding-right: 2px!important 125 | } 126 | #personal-bookmarks menupopup menuitem, 127 | menupopup#contentAreaContextMenu menu, 128 | menupopup#contentAreaContextMenu menuitem { 129 | padding-top: 1px!important; 130 | padding-bottom: 1px!important 131 | } 132 | menupopup#contentAreaContextMenu > .menuitem-iconic { 133 | padding-top: 0!important; 134 | padding-bottom: 0!important 135 | } 136 | menupopup .menu-right { 137 | margin-right: 0!important 138 | } 139 | } -------------------------------------------------------------------------------- /css/common-files/radios_checkboxes.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix(about:), 2 | url-prefix(chrome://browser) { 3 | .checkbox-check, 4 | .prefs-pane [type=checkbox]:checked + label::before, 5 | .prefs-pane [type=checkbox]:not(:checked) + label::before, 6 | .radio-check, 7 | input[type=checkbox] { 8 | -moz-appearance: none!important; 9 | border: 1px solid!important; 10 | background-color: var(--in-content-box-background)!important; 11 | background-image: none!important; 12 | box-shadow: none!important; 13 | border-color: var(--in-content-box-border-color)!important 14 | } 15 | radio[disabled=true] { 16 | color: var(--in-content-box-border-color)!important 17 | } 18 | .radio-check[selected] { 19 | list-style-image: url(chrome://global/skin/in-content/radio.svg); 20 | fill: var(--in-content-border-highlight)!important; 21 | -moz-context-properties: fill,stroke; 22 | stroke: none; 23 | border-radius: 50%!important 24 | } 25 | .checkbox-check[checked] { 26 | list-style-image: url(data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjIxIiB2aWV3Qm94PSIwIDAgMjEgMjEiPgogIDxwYXRoIGZpbGw9ImNvbnRleHQtZmlsbCIgc3Ryb2tlPSJjb250ZXh0LXN0cm9rZSIgc3Ryb2tlLXdpZHRoPSIwLjUiIGQ9Ik0gOS4zOSwxNi41IDE2LjI4LDYgMTQuNzcsNC41IDkuMzcsMTIuNyA2LjI4LDkuMiA0LjcsMTAuNyB6Ii8+Cjwvc3ZnPg==); 27 | fill: var(--in-content-border-highlight)!important; 28 | -moz-context-properties: fill,stroke!important; 29 | stroke: none 30 | } 31 | html body div.ancillary div div.opsRow div.opsRowLabel label input, 32 | html body div.ancillary div div.opsRow div.opsRowLabel label input#verbose { 33 | -moz-appearance: checkbox!important; 34 | min-height: 10px!important; 35 | min-width: 10px!important; 36 | margin-top: -5px; 37 | margin-bottom: -1px 38 | } 39 | } -------------------------------------------------------------------------------- /css/common-files/trees.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix(about:), 2 | url-prefix(chrome://browser/content/preferences/), 3 | url(chrome://passwordmgr/content/passwordManager.xul), 4 | url(chrome://formautofill/content/manageAddresses.xhtml), 5 | url-prefix(chrome://pippki), 6 | url(chrome://browser/content/pageinfo/pageInfo.xul) { 7 | ::-moz-tree-row(selected) { 8 | -moz-appearance: none!important; 9 | background-color: red!important 10 | } 11 | treechildren::-moz-tree-row, 12 | treechildren:not(.autocomplete-treebody)::-moz-tree-row(multicol,odd) { 13 | background-color: var(--in-content-box-background)!important 14 | } 15 | treechildren:not(.autocomplete-treebody)::-moz-tree-row(hover) { 16 | background-color: var(--theme-selection-background-hover)!important 17 | } 18 | tree { 19 | background-color: var(--in-content-box-background)!important; 20 | color: var(--in-content-page-color)!important 21 | } 22 | treechildren::-moz-tree-cell-text(hover), 23 | treechildren::-moz-tree-cell-text(selected) { 24 | color: var(--in-content-text-color)!important 25 | } 26 | treechildren:not(.autocomplete-treebody)::-moz-tree-row(selected) { 27 | background-color: var(--theme-selection-background)!important 28 | } 29 | treecol:not([hideheader=true]):not(:first-child), 30 | treecolpicker { 31 | border-image: linear-gradient(transparent 0,transparent 20%,var(--tone-5) 20%,var(--tone-5) 80%,transparent 80%,transparent 100%) 1 1!important 32 | } 33 | menulist:not([editable=true]) > .menulist-dropmarker, 34 | treecol:not([hideheader=true]) > .treecol-sortdirection[sortDirection] { 35 | fill: var(--in-content-category-text)!important 36 | } 37 | fieldset > legend, 38 | treecol:not([hideheader=true]), 39 | treecolpicker { 40 | background-color: var(--in-content-category-header-background)!important; 41 | color: var(--in-content-page-color)!important 42 | } 43 | prefpane#mainPrefPane groupbox#applicationsGroup richlistbox#handlersView richlistitem[selected=true] { 44 | background: var(--in-content-page-background)!important; 45 | color: var(--in-content-page-color)!important 46 | } 47 | tab { 48 | color: var(--in-content-page-color)!important 49 | } 50 | tab:hover { 51 | color: var(--in-content-selected-text)!important 52 | } 53 | tab[selected] { 54 | color: var(--in-content-link-color)!important 55 | } 56 | textbox[type=search] > moz-input-box > .textbox-search-sign { 57 | filter: invert(65%) 58 | } 59 | @media screen and (-moz-os-version:windows-win7) { 60 | treechildren { 61 | --treechildren-outline: none!important 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /css/userChrome-files/about_firefox.css: -------------------------------------------------------------------------------- 1 | @-moz-document url(chrome://browser/content/aboutDialog.xul) { 2 | #clientBox { 3 | color: var(--in-content-page-color)!important; 4 | background-color: var(--in-content-page-background)!important 5 | } 6 | #bottomBox { 7 | background: var(--in-content-category-header-background)!important 8 | } 9 | } -------------------------------------------------------------------------------- /css/userChrome-files/address_searchbar.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --panel-separator-color: var(--in-content-border-color)!important 3 | } 4 | #urlbar[focused=true], 5 | .searchbar-textbox[focused=true] { 6 | border: 1px solid!important; 7 | box-shadow: 0 1px 4px var(--in-content-border-focus)!important; 8 | border-color: var(--in-content-border-focus)!important 9 | } 10 | #PopupAutoCompleteRichResult .autocomplete-richlistbox, 11 | .searchbar-treebody::-moz-tree-row { 12 | background-color: var(--in-content-box-background)!important 13 | } 14 | #PopupAutoCompleteRichResult .autocomplete-richlistitem, 15 | .autocomplete-tree { 16 | border-bottom-color: var(--in-content-page-color)!important 17 | } 18 | .autocomplete-richlistitem[selected=true], 19 | .searchbar-treebody::-moz-tree-row(selected) { 20 | background-color: var(--theme-selection-background)!important 21 | } 22 | #PopupSearchAutoComplete tree, 23 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult, 24 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-richlistitem .ac-action, 25 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-richlistitem .ac-separator, 26 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-richlistitem .ac-title, 27 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-tree { 28 | color: var(--in-content-page-color)!important 29 | } 30 | .ac-action[selected], 31 | .ac-separator[selected], 32 | .ac-title[selected], 33 | .ac-url[selected], 34 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-richlistitem[selected=true] .ac-action, 35 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-richlistitem[selected=true] .ac-separator, 36 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-richlistitem[selected=true] .ac-title, 37 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-richlistitem[selected=true] .ac-url { 38 | color: var(--in-content-selected-text)!important 39 | } 40 | .ac-url, 41 | .search-panel-input-value { 42 | color: var(--in-content-link-color)!important 43 | } 44 | .search-one-offs { 45 | background: var(--in-content-box-background)!important 46 | } 47 | .search-panel-header, 48 | .search-panel-one-offs { 49 | background: var(--in-content-category-header-background)!important; 50 | border-top: none!important 51 | } 52 | .autocomplete-history-popup, 53 | panel[type=autocomplete-richlistbox], 54 | panel[type=autocomplete] { 55 | color: var(--in-content-page-color)!important; 56 | background: var(--in-content-box-background)!important 57 | } 58 | .searchbar-treebody::-moz-tree-row(hover), 59 | popupset#mainPopupSet panel#PopupAutoCompleteRichResult .autocomplete-richlistitem:hover, 60 | treechildren.searchbar-treebody::-moz-tree-row(hover) { 61 | background-color: var(--in-content-page-background)!important 62 | } 63 | #urlbar ::-moz-selection, 64 | .searchbar-textbox ::-moz-selection { 65 | background: var(--in-content-selected-text-background)!important 66 | } -------------------------------------------------------------------------------- /css/userChrome-files/bookmarks_popup.css: -------------------------------------------------------------------------------- 1 | #editBMPanel_folderMenuList, 2 | #editBMPanel_foldersExpander, 3 | #editBMPanel_rows > row > hbox > textbox, 4 | #editBMPanel_rows > row > textbox, 5 | #editBMPanel_tagsSelectorExpander, 6 | #editBookmarkPanelDoneButton, 7 | #editBookmarkPanelRemoveButton { 8 | -moz-appearance: none!important; 9 | background: var(--in-content-page-background)!important; 10 | color: var(--in-content-page-color)!important; 11 | border: 1px solid!important; 12 | border-color: var(--in-content-box-border-color)!important; 13 | box-shadow: none!important 14 | } 15 | #editBookmarkPanel .expander-down > .button-box > .button-icon { 16 | filter: invert(65%)!important 17 | } 18 | #editBMPanel_folderTree, 19 | #editBMPanel_tagsSelector { 20 | -moz-appearance: none!important; 21 | background: var(--in-content-page-background)!important; 22 | color: var(--in-content-page-color)!important; 23 | opacity: 1!important 24 | } 25 | #editBMPanel_folderTree treechildren:not(.autocomplete-treebody)::-moz-tree-row, 26 | #editBMPanel_tagsSelector treechildren:not(.autocomplete-treebody)::-moz-tree-row { 27 | background: var(--in-content-box-background)!important; 28 | color: var(--in-content-page-background)!important 29 | } 30 | #editBMPanel_folderTree treechildren:not(.autocomplete-treebody)::-moz-tree-row(hover), 31 | #editBMPanel_tagsSelector treechildren:not(.autocomplete-treebody)::-moz-tree-row(hover) { 32 | background: var(--theme-selection-background-hover)!important; 33 | color: var(--in-content-selected-text)!important; 34 | -moz-border-top-colors: var(--theme-selection-background-hover)!important; 35 | -moz-border-right-colors: var(--theme-selection-background-hover)!important; 36 | -moz-border-left-colors: var(--theme-selection-background-hover)!important; 37 | -moz-border-bottom-colors: var(--theme-selection-background-hover)!important 38 | } 39 | #editBMPanel_folderTree treechildren:not(.autocomplete-treebody)::-moz-tree-cell-text(hover) { 40 | color: var(--in-content-selected-text)!important 41 | } 42 | #editBMPanel_folderTree treechildren::-moz-tree-image { 43 | fill: var(--in-content-page-color)!important 44 | } 45 | #editBMPanel_folderTree treechildren::-moz-tree-image(hover), 46 | #editBMPanel_folderTree treechildren::-moz-tree-image(selected) { 47 | fill: var(--selected-icon-fill-color)!important 48 | } 49 | #editBMPanel_folderTree treechildren:not(.autocomplete-treebody)::-moz-tree-row(selected,current,focus) { 50 | background: var(--theme-selection-background)!important 51 | } 52 | listitem[selected=true] { 53 | background-color: var(--theme-selection-background)!important; 54 | color: var(--in-content-selected-text)!important 55 | } 56 | #editBMPanel_folderTree treechildren:not(.autocomplete-treebody)::-moz-tree-row(selected,current) { 57 | background: var(--theme-selection-background)!important 58 | } 59 | #editBMPanel_folderTree { 60 | border-color: var(--in-content-box-border-color)!important; 61 | border-bottom: none!important 62 | } 63 | #editBMPanel_newFolderBox { 64 | background: var(--in-content-page-background)!important; 65 | border-color: var(--in-content-box-border-color)!important; 66 | box-shadow: none!important 67 | } 68 | @-moz-document url(chrome://browser/content/places/bookmarkProperties.xul), 69 | url(chrome://browser/content/places/bookmarkProperties2.xul) { 70 | #bookmarkproperties { 71 | -moz-appearance: none!important; 72 | color: var(--in-content-page-color)!important; 73 | background-color: var(--in-content-category-header-background)!important 74 | } 75 | textbox { 76 | -moz-appearance: none!important; 77 | min-height: 20px!important; 78 | padding: 2px!important; 79 | border: 1px solid var(--in-content-box-border-color); 80 | color: var(--in-content-page-color)!important; 81 | background: var(--in-content-box-background)!important 82 | } 83 | #editBMPanel_folderTree { 84 | background: var(--in-content-box-background)!important 85 | } 86 | #editBMPanel_folderMenuList { 87 | background-color: var(--in-content-box-background)!important; 88 | padding: 2px!important 89 | } 90 | #editBMPanel_foldersExpander.expander-down, 91 | #editBMPanel_tagsSelectorExpander.expander-down { 92 | -moz-appearance: -moz-mac-disclosure-button-closed!important; 93 | filter: invert(79%)!important 94 | } 95 | #editBMPanel_foldersExpander.expander-up, 96 | #editBMPanel_tagsSelectorExpander.expander-up { 97 | -moz-appearance: -moz-mac-disclosure-button-open!important; 98 | filter: invert(78%)!important 99 | } 100 | #editBMPanel_newFolderButton, 101 | .dialog-button { 102 | -moz-appearance: none!important; 103 | background: var(--in-content-page-background)!important; 104 | color: var(--in-content-page-color)!important; 105 | border: 1px solid!important; 106 | border-color: var(--in-content-box-border-color)!important; 107 | border-radius: 3px!important 108 | } 109 | .dialog-button[disabled=true] { 110 | opacity: .4!important 111 | } 112 | #editBMPanel_folderTree { 113 | border: 1px solid; 114 | border-radius: 3px; 115 | border-color: var(--in-content-box-border-color)!important 116 | } 117 | #editBMPanel_newFolderBox { 118 | background: 0 0!important 119 | } 120 | } -------------------------------------------------------------------------------- /css/userChrome-files/clear_history.css: -------------------------------------------------------------------------------- 1 | @-moz-document url(chrome://browser/content/sanitize.xul) { 2 | #SanitizeDialog { 3 | -moz-appearance: none!important; 4 | background: var(--in-content-category-header-background)!important; 5 | color: var(--in-content-page-color)!important 6 | } 7 | .checkbox-check[checked] { 8 | list-style-image: url(chrome://global/skin/icons/check.svg); 9 | -moz-context-properties: fill; 10 | fill: var(--in-content-border-highlight)!important 11 | } 12 | button { 13 | -moz-appearance: none!important; 14 | background-color: var(--in-content-page-background)!important; 15 | border: 1px solid!important; 16 | border-radius: 3px!important; 17 | color: var(--in-content-page-color)!important; 18 | border-color: var(--in-content-box-border-color)!important 19 | } 20 | button:hover { 21 | background-color: var(--in-content-box-background)!important 22 | } 23 | } -------------------------------------------------------------------------------- /css/userChrome-files/common_dialog.css: -------------------------------------------------------------------------------- 1 | @-moz-document url("chrome://global/content/commonDialog.xul") { 2 | #commonDialog { 3 | -moz-appearance: none!important; 4 | background: var(--in-content-page-background)!important; 5 | color: var(--in-content-page-color)!important 6 | } 7 | } -------------------------------------------------------------------------------- /css/userChrome-files/customization_page.css: -------------------------------------------------------------------------------- 1 | #customization-done-button { 2 | color: var(--in-content-text-color); 3 | border-color: var(--in-content-primary-button-background)!important; 4 | background-color: var(--in-content-primary-button-background)!important 5 | } 6 | #customization-done-button:-moz-any(:focus,:active,:hover):not([disabled]) { 7 | background-color: var(--in-content-primary-button-background-hover)!important 8 | } -------------------------------------------------------------------------------- /css/userChrome-files/findbar.css: -------------------------------------------------------------------------------- 1 | .findbar-textbox { 2 | border-radius: 3px!important 3 | } 4 | .findbar-textbox:not([status=notfound]) { 5 | background-color: var(--in-content-box-background)!important; 6 | border-color: var(--in-content-box-border-color)!important; 7 | color: var(--in-content-page-color)!important 8 | } 9 | .browserContainer > findbar { 10 | border-top: 1px solid!important; 11 | border-color: var(--in-content-box-border-color)!important 12 | } 13 | .findbar-find-next, 14 | .findbar-find-previous { 15 | border: none!important; 16 | background: 0 0!important; 17 | border-radius: 2px!important; 18 | fill: var(--in-content-page-color)!important 19 | } 20 | .findbar-find-previous { 21 | margin-left: 6px!important 22 | } 23 | .findbar-find-next:hover, 24 | .findbar-find-previous:hover { 25 | background: var(--toolbarbutton-hover-background)!important 26 | } -------------------------------------------------------------------------------- /css/userChrome-files/navbar.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix(chrome://) { 2 | .browser-toolbar.titlebar-color:-moz-lwtheme-brighttext, 3 | .tab-background:not([selected]):-moz-lwtheme-brighttext { 4 | background-color: var(--tab-background-color)!important; 5 | color: var(--tab-color)!important 6 | } 7 | @media screen and (-moz-os-version:windows-win7) { 8 | window { 9 | background-color: var(--tone-9)!important; 10 | color: var(--in-content-page-color)!important 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /css/userChrome-files/remove_bookmarks_bottom_border.css: -------------------------------------------------------------------------------- 1 | #navigator-toolbox::after { 2 | border-bottom: 0!important 3 | } -------------------------------------------------------------------------------- /css/userChrome-files/remove_white_flash.css: -------------------------------------------------------------------------------- 1 | #browser vbox#appcontent tabbrowser, 2 | #content, 3 | #tabbrowser-tabpanels, 4 | browser[type=content-primary], 5 | browser[type=content] > html { 6 | background: var(--in-content-page-background)!important 7 | } -------------------------------------------------------------------------------- /css/userChrome-files/secure_connection_colors.css: -------------------------------------------------------------------------------- 1 | #identity-box.verifiedIdentity { 2 | --urlbar-separator-color: var(--secure-connection-color)!important 3 | } 4 | #identity-box.verifiedIdentity #identity-icon-labels, 5 | .identity-popup-connection-secure { 6 | color: var(--secure-connection-color)!important 7 | } 8 | #connection-icon, 9 | #identity-popup[connection^=secure] #identity-popup-security-content, 10 | #identity-popup[connection^=secure] #identity-popup-securityView { 11 | fill: var(--secure-connection-color)!important 12 | } -------------------------------------------------------------------------------- /css/userChrome-files/sidebar.css: -------------------------------------------------------------------------------- 1 | #sidebar-header, 2 | #sidebar-search-container, 3 | #sidebar-search-container #viewButton, 4 | .content-header, 5 | .sidebar-header { 6 | background: var(--in-content-category-header-background)!important; 7 | color: var(--in-content-page-color)!important 8 | } 9 | .sidebar-search-container.tabs-container.sync-state.selected .search-box, 10 | hbox#sidebar-search-container textbox#search-box { 11 | -moz-appearance: none!important; 12 | background-color: var(--in-content-box-background)!important; 13 | color: var(--in-content-page-color)!important; 14 | min-height: 20px!important; 15 | padding: 0 0 0 4px!important; 16 | border: 1px solid!important; 17 | border-color: var(--in-content-box-border-color)!important; 18 | border-radius: 3px!important 19 | } 20 | .sidebar-search-container.tabs-container.sync-state.selected .search-box .textbox-input-box { 21 | padding: 2px 22 | } 23 | #sidebar, 24 | #sidebar-box, 25 | #template-container, 26 | #webext-panels-browser, 27 | #webextpanels-window { 28 | background: var(--in-content-page-background)!important 29 | } 30 | .sidebar-placesTree { 31 | -moz-appearance: none!important; 32 | color: var(--in-content-page-color)!important; 33 | background-color: var(--in-content-page-background)!important; 34 | opacity: 1!important 35 | } 36 | #sidebar-box[sidebarcommand=_bbb81fb3-49c1-4a42-bcc9-94bc93e19fb8_-sidebar-action] #sidebar-icon, 37 | #sidebar-box[sidebarcommand=treestyletab_piro_sakura_ne_jp-sidebar-action] #sidebar-icon { 38 | filter: invert(60%) 39 | } 40 | #button__bbb81fb3-49c1-4a42-bcc9-94bc93e19fb8_-sidebar-action .toolbarbutton-icon, 41 | #button_treestyletab_piro_sakura_ne_jp-sidebar-action .toolbarbutton-icon { 42 | filter: invert(87%) 43 | } 44 | .button-menu-dropmarker, 45 | .button-menubutton-dropmarker { 46 | filter: invert(65%) 47 | } 48 | .item.client.device-image-desktop > .item-title-container > .item-icon-container, 49 | .sidebar-placesTree::-moz-tree-image, 50 | .sidebar-placesTreechildren::-moz-tree-image { 51 | fill: var(--in-content-page-color)!important 52 | } 53 | #sidebar-header { 54 | border-color: hsla(240,5%,5%,.1)!important 55 | } 56 | .sidebar-splitter { 57 | border-color: var(--tone-9)!important 58 | } 59 | .deck .instructions, 60 | .item-title { 61 | color: var(--in-content-page-color)!important 62 | } 63 | @-moz-document url-prefix(chrome://browser/content/places) { 64 | ::-moz-tree-row(selected) { 65 | -moz-appearance: none!important; 66 | background-color: var(--theme-selection-background)!important 67 | } 68 | } 69 | @-moz-document url(chrome://browser/content/places/bookmarksSidebar.xul) { 70 | @media screen and (-moz-os-version:windows-win7) { 71 | treechildren { 72 | --treechildren-outline: none!important 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /css/userChrome-files/status_panel.css: -------------------------------------------------------------------------------- 1 | #statuspanel #statuspanel-label, 2 | statuspanel .statuspanel-label { 3 | background-color: var(--in-content-category-header-background)!important; 4 | color: var(--in-content-page-color)!important; 5 | border: none!important 6 | } -------------------------------------------------------------------------------- /css/userChrome-files/tab_line_colors.css: -------------------------------------------------------------------------------- 1 | .tab-line[selected=true] { 2 | background-color: var(--in-content-border-focus)!important 3 | } -------------------------------------------------------------------------------- /css/userContent-files/directory_listings.css: -------------------------------------------------------------------------------- 1 | @-moz-document regexp("^[file:///].*[^(html|svg)]$") { 2 | :root { 3 | background-color: var(--in-content-page-background)!important 4 | } 5 | body { 6 | border-color: var(--in-content-box-background)!important; 7 | background-color: var(--in-content-box-background)!important; 8 | color: var(--in-content-page-color)!important 9 | } 10 | h1 { 11 | border-color: var(--in-content-box-border-color)!important 12 | } 13 | body > table > tbody > tr:hover { 14 | outline-color: var(--in-content-box-background-hover)!important; 15 | background-color: var(--in-content-box-background-hover)!important 16 | } 17 | .dir, 18 | .file, 19 | .symlink, 20 | .up { 21 | color: var(--in-content-link-color)!important 22 | } 23 | } -------------------------------------------------------------------------------- /css/userContent-files/manifest.css: -------------------------------------------------------------------------------- 1 | @-moz-document regexp("^moz-extension://.*manifest.json$") { 2 | html { 3 | background: var(--in-content-page-background)!important; 4 | color: var(--in-content-page-color)!important 5 | } 6 | } -------------------------------------------------------------------------------- /css/userContent-files/pdf.css: -------------------------------------------------------------------------------- 1 | @-moz-document regexp(".*\\.(p|P)(d|D)(f|F).*") { 2 | #loadingBar .progress, 3 | .dropdownToolbarButton > select, 4 | .dropdownToolbarButton > select > option, 5 | .overlayButton, 6 | .secondaryToolbarButton, 7 | .toolbarField, 8 | body, 9 | div#viewer { 10 | background-color: var(--in-content-box-background)!important 11 | } 12 | body { 13 | background-image: none!important 14 | } 15 | .splitToolbarButtonSeparator, 16 | .verticalToolbarSeparator { 17 | box-shadow: none!important; 18 | background-color: var(--in-content-box-background)!important 19 | } 20 | div#toolbarViewer { 21 | background-color: var(--in-content-category-header-background)!important 22 | } 23 | #numPages, 24 | #pageNumber, 25 | #scaleSelect { 26 | color: var(--in-content-page-color)!important 27 | } 28 | .pdfViewer .page { 29 | border-image: none!important 30 | } 31 | #pageNumber, 32 | #scaleSelectContainer { 33 | border: 1px solid!important; 34 | border-color: var(--in-content-box-border-color)!important 35 | } 36 | #loadingBar { 37 | position: relative; 38 | width: 100%; 39 | height: 4px; 40 | background-color: var(--theme-selection-background-hover)!important; 41 | border-bottom: 1px solid!important 42 | } 43 | #sidebarContainer, 44 | #sidebarContent { 45 | background-color: var(--in-content-page-background)!important 46 | } 47 | #toolbarSidebar { 48 | background-color: var(--in-content-category-header-background)!important; 49 | background-image: none!important; 50 | border-color: var(--in-content-box-background)!important 51 | } 52 | .doorHanger, 53 | .doorHangerRight { 54 | border: 1px solid!important; 55 | border-color: var(--in-content-box-background)!important; 56 | box-shadow: none!important 57 | } 58 | #toolbarContainer, 59 | .findbar, 60 | .secondaryToolbar { 61 | background-color: var(--in-content-box-background)!important; 62 | background-image: none!important 63 | } 64 | .dropdownToolbarButton, 65 | .overlayButton, 66 | .secondaryToolbarButton, 67 | .toolbarButton { 68 | border: none!important; 69 | color: var(--in-content-page-color)!important 70 | } 71 | .dropdownToolbarButton, 72 | .overlayButton, 73 | .toolbarButton:focus, 74 | .toolbarButton:hover { 75 | background-color: var(--in-content-box-background)!important; 76 | background-image: none!important; 77 | border: none!important; 78 | box-shadow: none!important 79 | } 80 | .secondaryToolbarButton:focus, 81 | .secondaryToolbarButton:hover { 82 | background-color: var(--in-content-page-background)!important; 83 | background-image: none!important; 84 | box-shadow: none!important 85 | } 86 | .secondaryToolbarButton::before, 87 | .toolbarButton::before { 88 | filter: invert(20%)!important 89 | } 90 | .secondaryToolbarButton.toggled, 91 | .splitToolbarButton.toggled > .toolbarButton.toggled, 92 | .toolbarButton.toggled { 93 | background-color: var(--in-content-page-background)!important; 94 | background-image: none!important; 95 | box-shadow: none!important; 96 | color: var(--in-content-selected-text)!important 97 | } 98 | .horizontalToolbarSeparator { 99 | background-color: var(--in-content-box-border-color)!important; 100 | box-shadow: none!important 101 | } 102 | } -------------------------------------------------------------------------------- /css/userContent-files/raw_githubusercontent.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix(https://raw.githubusercontent.com) { 2 | html { 3 | background: var(--in-content-page-background)!important; 4 | color: var(--in-content-page-color)!important 5 | } 6 | } -------------------------------------------------------------------------------- /css/userContent-files/rss.css: -------------------------------------------------------------------------------- 1 | html#feedHandler, 2 | html#feedHandler body { 3 | background-color: var(--in-content-page-background)!important; 4 | color: var(--in-content-page-color)!important 5 | } 6 | html#feedHandler h1 { 7 | border-color: var(--in-content-box-border-color)!important; 8 | color: var(--in-content-selected-text)!important 9 | } 10 | html#feedHandler #feedBody, 11 | html#feedHandler #feedHeader { 12 | background-color: var(--in-content-box-background)!important; 13 | border-color: var(--in-content-box-border-color)!important; 14 | color: var(--in-content-page-color)!important 15 | } 16 | html#feedHandler *|:link { 17 | color: var(--in-content-link-color)!important 18 | } 19 | html#feedHandler #subscribeButton { 20 | -moz-appearance: none!important; 21 | background: var(--in-content-page-background)!important; 22 | color: var(--in-content-page-color)!important; 23 | border: 1px solid; 24 | border-color: var(--in-content-box-border-color)!important; 25 | border-radius: 4px 26 | } 27 | html#feedHandler #subscribeButton:hover { 28 | background: var(--in-content-box-background)!important 29 | } 30 | html#feedHandler .enclosures { 31 | background: var(--in-content-page-background)!important; 32 | border-color: var(--in-content-box-border-color)!important 33 | } 34 | #feedHeaderContainer { 35 | background-color: var(--in-content-box-background)!important; 36 | display: inline-block!important 37 | } 38 | #feedHeaderContainerSpacer { 39 | display: none!important 40 | } 41 | #feedBody div.entry a[href] { 42 | color: var(--in-content-link-color)!important 43 | } 44 | #feedBody div.entry a[href]:hover { 45 | color: var(--in-content-link-color-hover)!important 46 | } 47 | #feedBody div.entry a[href]:active { 48 | color: var(--in-content-link-color-active)!important 49 | } 50 | #feedBody div.entry a[href]:visited { 51 | color: var(--in-content-link-color-visited)!important 52 | } -------------------------------------------------------------------------------- /css/userContent-files/view_source.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix(view-source) { 2 | :root { 3 | background-color: var(--in-content-page-background)!important; 4 | color: var(--in-content-page-color)!important 5 | } 6 | pre[id]:before, 7 | span[id]:before { 8 | color: var(--in-content-page-color)!important 9 | } 10 | .highlight .end-tag, 11 | .highlight .start-tag { 12 | color: var(--theme-highlight-purple)!important 13 | } 14 | .highlight .comment { 15 | color: var(--theme-highlight-green)!important 16 | } 17 | .highlight .cdata { 18 | color: #c06!important 19 | } 20 | .highlight .doctype { 21 | color: #4682b4!important 22 | } 23 | .highlight .pi { 24 | color: var(--theme-highlight-red)!important 25 | } 26 | .highlight .entity { 27 | color: #dea174!important 28 | } 29 | .highlight .attribute-name { 30 | color: var(--theme-highlight-green)!important 31 | } 32 | .highlight .attribute-value { 33 | color: var(--theme-highlight-blue)!important 34 | } 35 | .highlight .markupdeclaration { 36 | color: #4682b4!important 37 | } 38 | .highlight .error, 39 | .highlight .error > :-moz-any(.start-tag,.end-tag,.comment,.cdata,.doctype,.pi,.entity,.attribute-name,.attribute-value) { 40 | color: #de7474!important 41 | } 42 | } -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/brief.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Brief 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://brief@mozdev.org/") { 4 | #sidebar { 5 | background-color: var(--in-content-box-background)!important 6 | } 7 | #main-message, 8 | #view-list > tree-item > .title, 9 | #view-title-label, 10 | .content, 11 | .day-header, 12 | .headline-feed-name, 13 | .headline-title, 14 | .sidebar-button, 15 | tree-item > .title { 16 | color: var(--in-content-page-color)!important 17 | } 18 | #sidebar-top { 19 | border-bottom: 1px solid!important 20 | } 21 | .sidebar-button:hover { 22 | color: var(--in-content-link-color)!important 23 | } 24 | tree-folder.selected > tree-folder-header, 25 | tree-item.selected { 26 | border-color: var(--in-content-link-color)!important; 27 | background-color: var(--in-content-link-color)!important 28 | } 29 | #feed-view-header { 30 | background: var(--in-content-category-header-background)!important 31 | } 32 | #sidebar-splitter, 33 | #tag-list-splitter { 34 | border-left: 3px solid!important; 35 | border-right: 1px solid!important; 36 | border-right-color: var(--in-content-category-header-background) 37 | } 38 | #sidebar-splitter:hover, 39 | #tag-list-splitter:hover { 40 | border-right-color: var(--in-content-link-color)!important 41 | } 42 | .full-container-inner { 43 | background: 0 0!important 44 | } 45 | .headline-container:hover > .headline-header { 46 | background-color: var(--in-content-category-header-background)!important 47 | } 48 | tree-folder:not(.selected) > tree-folder-header:hover, 49 | tree-item:hover:not(.selected) { 50 | background-color: var(--in-content-page-background)!important; 51 | border-color: var(--in-content-category-header-background)!important 52 | } 53 | #view-list > tree-item.selected > .title, 54 | .unread-count, 55 | tree-item.selected > .title { 56 | color: var(--in-content-selected-text)!important 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/cookie_autodelete.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Cookie AutoDelete 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://CookieAutoDelete@kennydo.com/") { 4 | a { 5 | color: var(--accent-1) 6 | } 7 | a:hover { 8 | color: var(--accent-2) 9 | } 10 | #layout, 11 | html { 12 | background: var(--tone-7)!important; 13 | color: var(--primart-light-color)!important 14 | } 15 | #menu { 16 | background-color: var(--tone-8)!important 17 | } 18 | .menu-link { 19 | background: var(--tone-8)!important 20 | } 21 | .pure-menu-item:hover, 22 | .pure-menu-selected { 23 | background-color: var(--tone-6)!important 24 | } 25 | .form-control, 26 | input[type=number] { 27 | -moz-appearance: none!important; 28 | background: var(--tone-6)!important; 29 | color: var(--tone-4)!important; 30 | border-color: var(--tone-5)!important 31 | } 32 | .nav-tabs .nav-link { 33 | color: var(--tone-4)!important 34 | } 35 | .nav-tabs .nav-link.active { 36 | color: var(--accent-1)!important; 37 | background-color: var(--tone-6)!important; 38 | border-color: #ddd #ddd #fff!important 39 | } 40 | body { 41 | color: var(--tone-4)!important; 42 | background-color: var(--tone-6)!important 43 | } 44 | .btn-light { 45 | color: var(--tone-4)!important; 46 | background-color: var(--tone-5)!important; 47 | border-color: var(--tone-4)!important 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/dark_mode.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Dark Mode 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://{174b2d58-b983-4501-ab4b-07e71203cb43}/") { 4 | .comment { 5 | color: var(--in-content-link-color)!important 6 | } 7 | .title { 8 | background-color: var(--in-content-category-header-background)!important 9 | } 10 | .highlight { 11 | background-color: var(--in-content-box-border-color)!important 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/downloads_sidebar.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Downloads sidebar 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://{bbb81fb3-49c1-4a42-bcc9-94bc93e19fb8}/") { 4 | body { 5 | background: var(--in-content-page-background)!important; 6 | color: var(--in-content-page-color)!important 7 | } 8 | .btn, 9 | .cancel-button, 10 | .erase-button { 11 | filter: invert(60%) 12 | } 13 | .toolbar-bottom { 14 | border-color: var(--in-content-border-color)!important 15 | } 16 | .toolbar-bottom button { 17 | color: var(--in-content-page-color)!important 18 | } 19 | .toolbar-bottom button:hover { 20 | background: var(--in-content-box-background-hover)!important 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/dustman.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Dustman 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://jid1-i37bkuPx3kABMw@jetpack/panel/") { 4 | .recently-closed { 5 | background-color: var(--in-content-box-background)!important; 6 | color: var(--in-content-page-color)!important 7 | } 8 | .recently-closed a, 9 | .recently-closed:empty::before { 10 | color: var(--in-content-page-color)!important 11 | } 12 | .recently-closed a:hover { 13 | background-color: var(--in-content-box-background)!important; 14 | border: 1px solid!important 15 | } 16 | .button { 17 | background-color: var(--tone-7)!important; 18 | border-top: 1px solid!important; 19 | color: var(--in-content-page-color)!important 20 | } 21 | .button:active, 22 | .button:hover { 23 | background-color: var(--tone-7)!important 24 | } 25 | } 26 | /*! Alters the webextension Dustman 27 | IMPORTANT: change the Internal UUID */ 28 | @-moz-document url-prefix("moz-extension://jid1-i37bkuPx3kABMw@jetpack/settings/") { 29 | label { 30 | color: var(--in-content-page-color); 31 | font-weight: 700 32 | } 33 | .form-group p { 34 | color: var(--in-content-page-color)!important 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/greasemonkey.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix("moz-extension://{e4a8a97b-f2ed-450b-b12d-ee082ba24781}/") { 2 | body, 3 | html { 4 | background: var(--in-content-page-background)!important 5 | } 6 | #tabs .tab.active, 7 | .command-item { 8 | background: var(--tone-8)!important; 9 | color: var(--in-content-page-color)!important 10 | } 11 | .subview-back::before { 12 | content: url(/skin/back.svg); 13 | filter: invert(65%) 14 | } 15 | .subview-back:focus, 16 | .subview-back:hover, 17 | .subview-item:focus, 18 | .subview-item:hover { 19 | background-color: var(--in-content-category-background-hover)!important; 20 | cursor: default; 21 | color: inherit; 22 | text-decoration: none 23 | } 24 | .subview-item .icon, 25 | .subview-item .text { 26 | background: 0 0!important 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/momentum.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Momentum 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://momentum@momentumdash.com/dashboard.html") { 4 | body { 5 | background-color: var(--tone-8)!important 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/multi_account_containers.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Multi-Account Containers 2 | IMPORTANT: change the Internal UUID in BOTH locations */ 3 | @-moz-document url-prefix("moz-extension://@testpilot-containers/") { 4 | #current-tab, 5 | .column-panel-content, 6 | .container-panel-row, 7 | .userContext-wrapper, 8 | html body div#container-panel.panel.container-panel { 9 | background: var(--in-content-box-background)!important; 10 | color: var(--in-content-page-color)!important 11 | } 12 | #current-tab > h3, 13 | .container-info-list, 14 | .panel-header-text { 15 | color: var(--in-content-page-color)!important 16 | } 17 | #container-panel #sort-containers-link { 18 | border-color: var(--in-content-box-border-color)!important; 19 | color: var(--in-content-page-color)!important 20 | } 21 | #container-panel #sort-containers-link:hover, 22 | .clickable:hover { 23 | background: var(--tone-7)!important 24 | } 25 | .container-panel-row { 26 | background-color: var(--tone-6)!important; 27 | border-block-end: 1px solid var(--tone-5); 28 | color: var(--in-content-page-color)!important 29 | } 30 | .scrollable { 31 | border-block-start: 1px solid var(--tone-5)!important; 32 | background: var(--tone-6)!important 33 | } 34 | .panel-footer { 35 | background: var(--tone-7)!important; 36 | border-block-end: 1px solid var(--tone-7)!important 37 | } 38 | .container-panel-row:focus .clickable.userContext-wrapper, 39 | .container-panel-row:hover .clickable.userContext-wrapper, 40 | .container-panel-row:hover .pop-button, 41 | .panel-header { 42 | background: var(--tone-7)!important 43 | } 44 | .panel-back-arrow { 45 | background: var(--tone-6)!important 46 | } 47 | .back-arrow-img { 48 | filter: invert(65%)!important 49 | } 50 | .container-panel-row { 51 | border-block-end: 1px solid var(--tone-5)!important 52 | } 53 | #current-tab > label > input[disabled] { 54 | background-color: var(--tone-5)!important; 55 | border-color: var(--tone-4)!important 56 | } 57 | #current-tab > label > input:checked { 58 | filter: invert(100%); 59 | border-color: var(--tone-5)!important 60 | } 61 | .column-panel-content form { 62 | background: var(--tone-6)!important 63 | } 64 | .pop-button-image-small { 65 | filter: invert(650%)!important 66 | } 67 | .edit-container-panel fieldset, 68 | .edit-containers-text a { 69 | color: var(--in-content-page-color)!important 70 | } 71 | .edit-container-panel input[type=text] { 72 | background: var(--tone-8)!important; 73 | color: var(--in-content-page-color)!important; 74 | border-color: var(--tone-5)!important 75 | } 76 | [data-identity-color=grey] { 77 | --identity-icon-color: var(--tone-4)!important 78 | } 79 | .button { 80 | color: var(--in-content-page-color)!important 81 | } 82 | .container-notification { 83 | background: var(--tone-7)!important; 84 | color: var(--in-content-page-color)!important 85 | } 86 | .edit-containers-text { 87 | border-inline-end: solid 0 #d8d8d8!important 88 | } 89 | } 90 | /*! Alters the webextension Multi-Account Containers 91 | IMPORTANT: change the Internal UUID in BOTH locations */ 92 | @-moz-document url-prefix("moz-extension://@testpilot-containers/popup") { 93 | html { 94 | background-color: var(--in-content-box-background)!important 95 | } 96 | } 97 | /*! Alters the webextension Multi-Account Containers 98 | IMPORTANT: change the Internal UUID in BOTH locations */ 99 | @-moz-document url-prefix("moz-extension://@testpilot-containers/confirm-page") { 100 | body { 101 | background-color: var(--tone-7)!important 102 | } 103 | .title-text, 104 | body { 105 | color: var(--in-content-page-color)!important 106 | } 107 | #redirect-url { 108 | background: var(--tone-8)!important 109 | } 110 | .button-container > button:first-child { 111 | background: var(--in-content-box-background)!important; 112 | border-color: var(--tone-5)!important 113 | } 114 | .button-container > button:first-child:hover { 115 | background: var(--tone-8)!important 116 | } 117 | #never-ask { 118 | -moz-appearance: none!important; 119 | background-color: var(--tone-6)!important; 120 | border-color: var(--in-content-box-border-color)!important; 121 | background-image: none!important; 122 | box-shadow: none!important 123 | } 124 | #never-ask:checked { 125 | background-image: url(chrome://global/skin/in-content/check.svg),url(chrome://global/skin/icons/check.svg)!important; 126 | background-color: var(--tone-6)!important 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/noscript.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension NoScript 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://{73a6fe31-595d-460b-a920-fcc0f8843232}/") { 4 | body { 5 | background: var(--tone-6)!important 6 | } 7 | #top { 8 | border-color: var(--tone-5)!important 9 | } 10 | .site .url[data-key=full] span, 11 | .site .url[data-key=secure] .domain, 12 | .site .url[data-key=secure] .sub { 13 | color: var(--tone-4)!important 14 | } 15 | .sites > tr:nth-child(2n) { 16 | background: var(--tone-6)!important 17 | } 18 | .sites > tr:nth-child(2n+1) { 19 | background: var(--tone-7)!important 20 | } 21 | #presets input.preset, 22 | .presets input.preset:checked { 23 | color: var(--tone-4)!important; 24 | background-color: var(--tone-8)!important 25 | } 26 | #sect-general, 27 | .presets label.preset { 28 | color: var(--tone-4)!important 29 | } 30 | button, 31 | input[type=text] { 32 | -moz-appearance: none!important; 33 | background-color: var(--tone-7)!important; 34 | border-color: var(--tone-5)!important; 35 | color: var(--primar-light-color)!important 36 | } 37 | #top #close, 38 | #top #options, 39 | #top #reload, 40 | #top #revoke-temp, 41 | #top #temp-allow-page { 42 | background-color: var(--tone-6)!important; 43 | border: none!important 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/onetab.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix("moz-extension://extension@one-tab.com") { 2 | .clickable span { 3 | color: var(--in-content-link-color)!important 4 | } 5 | .clickable div { 6 | box-shadow: none!important; 7 | background-color: var(--in-content-box-background)!important 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/pocket.css: -------------------------------------------------------------------------------- 1 | .pkt_ext_containersaved .pkt_ext_tag_input_wrapper input::placeholder, 2 | .pkt_ext_containersaved h2, 3 | .token-input-dropdown-tag ul li { 4 | color: var(--in-content-page-color)!important 5 | } 6 | .pkt_ext_containersaved .pkt_ext_tag_detail, 7 | .pkt_ext_containersaved .pkt_ext_tag_input_wrapper, 8 | .token-input-dropdown-tag { 9 | border-color: var(--in-content-box-border-color)!important; 10 | background: var(--in-content-box-background)!important 11 | } 12 | .pkt_ext_containersaved .pkt_ext_tag_input_wrapper input { 13 | background-color: var(--in-content-box-background)!important; 14 | color: var(--in-content-page-color)!important 15 | } 16 | .pkt_ext_containersaved .pkt_ext_btn { 17 | background: var(--in-content-category-header-background)!important 18 | } 19 | .pkt_ext_containersaved .token-input-token { 20 | border-color: var(--in-content-box-border-color)!important; 21 | background-color: var(--in-content-table-border-dark-color)!important; 22 | color: var(--in-content-page-color)!important 23 | } 24 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/random_user_agent.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix("moz-extension://{b43b974b-1d3a-4232-b226-eaa2ac6ebb69}/") { 2 | .box-min input[type=checkbox]:checked ~ i { 3 | background: var(--in-content-link-color)!important; 4 | border-color: var(--in-content-link-color)!important 5 | } 6 | .toggle label { 7 | background-color: var(--in-content-page-color)!important 8 | } 9 | .toggle input:checked + label { 10 | background-color: var(--in-content-link-color)!important 11 | } 12 | #main .block h2 { 13 | color: var(--in-content-text-color)!important 14 | } 15 | #main .block h5, 16 | .bugreport-link { 17 | color: var(--in-content-page-color)!important 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/request_control.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Request Control 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://{1b1e6108-2d88-4f0f-a338-01f9dbcccd6f}/") { 4 | * { 5 | color: var(--in-content-page-color)!important 6 | } 7 | body { 8 | background-color: var(--in-content-page-background)!important 9 | } 10 | .page-header, 11 | hr { 12 | border-color: var(--in-content-box-border-color)!important 13 | } 14 | .nav-tabs.nav-justified > li > a { 15 | border-bottom-color: var(--in-content-box-border-color)!important 16 | } 17 | .badge { 18 | color: var(--in-content-text-color)!important 19 | } 20 | .rule:not(.editing):not(:hover) { 21 | background-color: var(--in-content-box-background)!important 22 | } 23 | .editing .rule-header, 24 | .list-group-item, 25 | .rule:hover:not(.editing) { 26 | background-color: var(--in-content-box-background-hover)!important; 27 | border-color: var(--in-content-box-border-color)!important 28 | } 29 | .nav-tabs > li > a:hover, 30 | .nav-tabs > li.active > a, 31 | .nav-tabs > li.active > a:focus, 32 | .nav-tabs > li.active > a:hover { 33 | background-color: var(--in-content-category-header-background)!important; 34 | border-color: var(--in-content-box-border-color)!important 35 | } 36 | tabs.nav-justified > li > a { 37 | border-bottom: 1px solid!important; 38 | border-color: var(--in-content-box-border-color)!important 39 | } 40 | .btn-default { 41 | background-color: var(--in-content-page-background)!important; 42 | border-color: var(--in-content-box-border-color)!important 43 | } 44 | .btn-default.active { 45 | background-color: var(--in-content-box-background-active)!important 46 | } 47 | .btn-default:hover { 48 | background-color: var(--in-content-box-background-hover)!important 49 | } 50 | .list-group-item:first-child { 51 | background: var(--in-content-box-background)!important; 52 | border-color: var(--in-content-box-border-color)!important 53 | } 54 | .table, 55 | .table-striped > tbody > tr:nth-of-type(2n+1) { 56 | background-color: var(--in-content-box-background)!important 57 | } 58 | .tags-input, 59 | input[type=text], 60 | select { 61 | background: var(--in-content-page-background)!important; 62 | color: var(--in-content-text-color)!important; 63 | border-color: var(--in-content-box-border-color)!important 64 | } 65 | .tags-input .tag { 66 | background: var(--in-content-item-selected)!important; 67 | border-color: var(--in-content-box-border-color)!important 68 | } 69 | button img, 70 | img.arrow { 71 | filter: invert(65%)!important 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/tree_style_tab.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Tree Style Tab 2 | IMPORTANT: change the Internal UUID in BOTH locations */ 3 | @-moz-document url-prefix("moz-extension://treestyletab@piro.sakura.ne.jp/resources/group-tab.html") { 4 | :root { 5 | background: var(--tone-7)!important 6 | } 7 | h1::before { 8 | background: var(--tone-4)!important 9 | } 10 | #tabs img[src="https://assets-cdn.github.com/favicon.ico"] { 11 | filter: invert(55%)!important 12 | } 13 | } 14 | /*! Alters the webextension Tree Style Tab 15 | IMPORTANT: change the Internal UUID all BOTH locations */ 16 | @-moz-document url-prefix("moz-extension://treestyletab@piro.sakura.ne.jp/") { 17 | /*! Use Plain Dark Appearance */ 18 | #debug-configs, 19 | p, 20 | ul { 21 | color: var(--tone-4)!important 22 | } 23 | h1, 24 | legend { 25 | color: var(--accent-1)!important 26 | } 27 | a { 28 | color: var(--accent-2)!important 29 | } 30 | #contextual-identities-selector, 31 | #newtab-action-selector, 32 | #tabContextMenu, 33 | .extra.has-submenu ul { 34 | background: var(--tone-6)!important; 35 | border: none!important 36 | } 37 | .menu-ui-59858.menu-ui.menu li.separator { 38 | border-color: var(--in-content-box-border-color)!important 39 | } 40 | .tab { 41 | background: var(--in-content-page-background)!important; 42 | border-color: var(--in-content-category-header-background)!important 43 | } 44 | .tab .counter, 45 | .tab .label { 46 | color: var(--in-content-page-color)!important 47 | } 48 | :root.simulate-svg-context-fill .closebox::after { 49 | background: var(--in-content-page-color)!important 50 | } 51 | .tab:hover { 52 | background-color: var(--in-content-category-header-background)!important 53 | } 54 | .tab.active { 55 | background-color: var(--in-content-border-focus)!important 56 | } 57 | .tab.selected { 58 | background-color: var(--primary-accent-color-dark)!important 59 | } 60 | .tab.active .label, 61 | .tab.selected .label { 62 | color: #fff!important 63 | } 64 | .tab.active:hover { 65 | background-color: var(--in-content-primary-button-background)!important 66 | } 67 | .tab.discarded { 68 | opacity: .75!important 69 | } 70 | .tab.discarded .label { 71 | color: var(--in-content-box-border-color)!important 72 | } 73 | .tab.unread .label { 74 | font-style: italic!important 75 | } 76 | .tab:not(:hover) .closebox { 77 | display: none!important 78 | } 79 | .after-tabs button, 80 | .twisty { 81 | color: var(--in-content-page-color)!important 82 | } 83 | .simulate-svg-context-fill:root .newtab-button::before { 84 | background: var(--in-content-page-color)!important 85 | } 86 | .tab.active .twisty { 87 | color: #fff!important 88 | } 89 | .newtab-button { 90 | background-color: var(--tone-7)!important 91 | } 92 | .newtab-button:hover { 93 | background-color: var(--tone-8)!important 94 | } 95 | #all-tabs .tab:not(.active)[data-current-uri*="github.com"] .favicon { 96 | filter: invert(65%)!important 97 | } 98 | .simulate-svg-context-fill:root .tab.group-tab .favicon-default::before { 99 | filter: invert(45%)!important 100 | } 101 | #background, 102 | #background::after, 103 | #tabbar { 104 | background: var(--in-content-page-background)!important 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/tridactyl.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Tridactyl 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://tridactyl.vim@cmcaine.co.uk/") { 4 | .container-main, 5 | body, 6 | html { 7 | background: var(--in-content-page-background)!important 8 | } 9 | .tsd-panel { 10 | background: var(--in-content-box-background)!important 11 | } 12 | .tsd-page-title, 13 | .tsd-page-toolbar, 14 | footer { 15 | background: var(--in-content-category-header-background)!important; 16 | border-color: var(--in-content-category-header-background)!important 17 | } 18 | body, 19 | table { 20 | color: var(--in-content-page-color)!important 21 | } 22 | a:link { 23 | color: var(--in-content-link-color)!important 24 | } 25 | #completions .sectionHeader { 26 | background: var(--in-content-category-header-background)!important; 27 | color: var(--in-content-text-color)!important 28 | } 29 | #completions { 30 | background: var(--in-content-page-background)!important; 31 | border-color: var(--in-content-box-border-color)!important 32 | } 33 | .option:not(.focused) .url { 34 | color: var(--code-green)!important; 35 | background: var(--in-content-page-background)!important 36 | } 37 | input { 38 | background: var(--in-content-category-header-background)!important; 39 | color: var(--in-content-text-color)!important 40 | } 41 | .focused, 42 | .focused .url { 43 | background: var(--warning-background-color)!important; 44 | color: var(--warning-color)!important 45 | } 46 | .spoiler { 47 | background-color: var(--in-content-box-background)!important; 48 | border-color: var(--in-content-box-border-color)!important 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/ubo_scope.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension uBO-Scope 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://uBO-Scope@raymondhill.net/") { 4 | #heatmaps .togglerBar, 5 | body, 6 | body.theoretical #heatmaps .heatmap.theoretical { 7 | background: var(--tone-6)!important 8 | } 9 | #heatmaps { 10 | background-color: var(--in-content-box-border-color)!important 11 | } 12 | #domain3rdDetails { 13 | border-color: var(--in-content-box-border-color)!important; 14 | background-color: var(--in-content-page-background)!important 15 | } 16 | #topPane { 17 | background-color: var(--tone-6)!important; 18 | color: var(--tone-4)!important 19 | } 20 | #heatmaps .heatmap { 21 | border: none; 22 | background: var(--tone-6)!important 23 | } 24 | #heatmaps.list .hmcell { 25 | background-color: var(--tone-6)!important; 26 | color: var(--tone-4)!important 27 | } 28 | #domain3rdDetails #authority { 29 | background-color: var(--tone-8)!important; 30 | position: relative 31 | } 32 | #scores .scores .score.actual { 33 | color: #fff!important 34 | } 35 | #scores .scores .score.theoretical, 36 | body.theoretical #scores .scores .score.actual { 37 | color: var(--tone-7)!important 38 | } 39 | body.theoretical #scores .scores .score.theoretical { 40 | color: var(--tone-4)!important 41 | } 42 | } 43 | @-moz-document url-prefix("moz-extension://uBO-Scope@raymondhill.net/options.html") { 44 | body, 45 | html { 46 | background-color: var(--in-content-page-background)!important; 47 | color: var(--in-content-page-color)!important 48 | } 49 | * { 50 | border-color: var(--in-content-box-border-color)!important 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/ultrawide_video.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension UltraWide Video 21:9 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://{75afe46a-7a50-4c6b-b866-c43a1075b071}/html/popup.html") { 4 | html { 5 | background: var(--in-content-box-background)!important; 6 | color: var(--in-content-page-color)!important; 7 | border: 3px solid!important 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/vim_vixen.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Vim Vixen 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://vim-vixen@i-beam.org/") { 4 | .vimvixen-console-command-wrapper { 5 | border-top: 1px solid!important 6 | } 7 | .vimvixen-console-completion-title { 8 | background-color: var(--tone-9)!important; 9 | border-color: var(--tone-5)!important 10 | } 11 | .vimvixen-console-completion { 12 | background-color: var(--tone-8)!important; 13 | color: #b1b1b3!important; 14 | font-family: Menlo,monospace!important 15 | } 16 | .vimvixen-console-command, 17 | .vimvixen-console-command-input { 18 | background-color: var(--tone-9)!important; 19 | color: var(--grey-30)!important 20 | } 21 | .vimvixen-console-completion-item-url { 22 | color: #86de74!important 23 | } 24 | .vimvixen-console-completion-item.vimvixen-completion-selected { 25 | background-color: #44391f!important; 26 | color: #fce19f!important 27 | } 28 | .vimvixen-console-error { 29 | background-color: #4b3137!important; 30 | color: #ff9494!important 31 | } 32 | .vimvixen-settings-form, 33 | h1 { 34 | color: var(--tone-4)!important 35 | } 36 | .vimvixen-settings-form textarea[name=json] { 37 | background-color: var(--tone-6)!important; 38 | -moz-appearance: none!important; 39 | color: var(--tone-4)!important; 40 | border-color: var(--tone-6) 41 | } 42 | ::-moz-selection { 43 | color: var(--grey-30); 44 | background: var(--accent-2) 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/violentmonkey.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension Violentmonkey 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://{aecec67f-0d10-4fa7-b7c7-609a2db280cf}/") { 4 | .edit-settings, 5 | .tab, 6 | section > h3 { 7 | background: var(--in-content-page-background)!important; 8 | border-color: var(--in-content-box-background)!important 9 | } 10 | .tab-installed > header { 11 | background: var(--in-content-category-header-background)!important; 12 | border-color: var(--in-content-box-background)!important 13 | } 14 | .aside-content { 15 | background: var(--in-content-category-header-background)!important 16 | } 17 | .aside-menu > a.active, 18 | .aside-menu > a:hover, 19 | h1, 20 | h2 { 21 | color: var(--in-content-link-color)!important 22 | } 23 | body { 24 | background: var(--in-content-page-background)!important; 25 | color: var(--in-content-page-color)!important 26 | } 27 | .script { 28 | background: var(--in-content-box-background)!important; 29 | border-color: var(--in-content-box-border-color)!important 30 | } 31 | svg { 32 | fill: var(--in-content-page-color)!important 33 | } 34 | .menu-item:hover svg { 35 | fill: var(--in-content-selected-text)!important 36 | } 37 | .menu { 38 | border-color: var(--in-content-box-border-color)!important 39 | } 40 | input[type=text], 41 | textarea { 42 | -moz-appearance: none!important; 43 | background: var(--in-content-box-background)!important; 44 | color: var(--in-content-page-color)!important; 45 | border: 1px solid!important; 46 | padding: 2px!important; 47 | border-color: var(--in-content-box-border-color)!important 48 | } 49 | input[type=text] { 50 | border-radius: 3px!important 51 | } 52 | .export-list > .ellipsis.active { 53 | border-color: var(--in-content-primary-button-background)!important; 54 | background: var(--in-content-primary-button-background)!important 55 | } 56 | .export-list > .ellipsis.active:hover { 57 | border-color: var(--in-content-primary-button-background-hover)!important; 58 | background: var(--in-content-primary-button-background-hover)!important 59 | } 60 | button { 61 | -moz-appearance: none!important; 62 | background: var(--in-content-page-background)!important; 63 | border: 1px solid!important; 64 | border-color: var(--in-content-box-border-color)!important; 65 | color: var(--in-content-text-color)!important; 66 | margin-top: 5px!important; 67 | margin-right: 5px!important; 68 | border-radius: 3px!important 69 | } 70 | button:not([disabled]):hover { 71 | background-color: var(--in-content-box-background-hover)!important 72 | } 73 | button[disabled] { 74 | opacity: .5!important 75 | } 76 | .btn-ghost:hover { 77 | border-color: var(--in-content-box-background)!important; 78 | background: var(--in-content-page-background)!important 79 | } 80 | .edit-nav > div.active { 81 | background: var(--in-content-page-background)!important; 82 | color: var(--in-content-page-color)!important 83 | } 84 | .flex.edit-header > .buttons > button:nth-child(2):not([disabled=disabled]):after { 85 | content: '?'!important 86 | } 87 | .flex.edit-header > .buttons > button:nth-child(2)[disabled=disabled]:after { 88 | content: 'd'!important 89 | } 90 | .menu-item:hover, 91 | .submenu-button { 92 | background: var(--theme-selection-background-hover)!important; 93 | color: var(--in-content-selected-text)!important 94 | } 95 | .flex.edit-header, 96 | .message.modal-content { 97 | background: var(--in-content-category-header-background)!important 98 | } 99 | .menu.expand, 100 | .page-popup, 101 | .submenu, 102 | html { 103 | background: var(--in-content-box-background)!important 104 | } 105 | .vl-dropdown-menu { 106 | border: 1px solid!important; 107 | background: var(--in-content-page-background)!important 108 | } 109 | .dropdown-menu-item:hover { 110 | background: var(--grey-80)!important 111 | } 112 | .dropdown-menu-item { 113 | color: var(--in-content-page-color)!important 114 | } 115 | .frame-block { 116 | background: var(--in-content-box-background)!important 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /css/userContent-files/webextension-tweaks/youtube_video_and_audio_downloader.css: -------------------------------------------------------------------------------- 1 | /*! Alters the webextension YouTube Video And Audio Downloader (WebEx) 2 | IMPORTANT: change the Internal UUID */ 3 | @-moz-document url-prefix("moz-extension://{f73df109-8fb4-453e-8373-f59e61ca4da3}/") { 4 | #content, 5 | body { 6 | color: var(--tone-2)!important; 7 | background-color: var(--tone-8)!important 8 | } 9 | body > div > div:not(#items) { 10 | background-color: var(--tone-5)!important 11 | } 12 | #settings { 13 | background-color: var(--tone-8)!important; 14 | border-top: 1px solid #fff 15 | } 16 | #settings > div { 17 | background-color: transparent 18 | } 19 | body[data-loading=true] { 20 | background-color: var(--tone-8)!important 21 | } 22 | .item { 23 | background-color: var(--tone-5)!important; 24 | color: var(--tone-2)!important 25 | } 26 | #close, 27 | #externals { 28 | background-color: var(--tone-5)!important 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'); 4 | var concatCss = require('gulp-concat-css'); 5 | var cleanCSS = require('gulp-clean-css'); 6 | var exec = require('gulp-exec'); 7 | var exec_ch = require('child_process').exec; 8 | 9 | /* Minify all base code, edit in place */ 10 | gulp.task('minify_base_code', function() { 11 | return gulp.src(['css/common-files/*.css', 'css/userContent-files/*.css', 'css/userContent-files/*/*.css', 'css/userChrome-files/*', 'userChrome-files/*/*.css']) 12 | .pipe(cleanCSS({ 13 | level : 2 , 14 | format: 'beautify' 15 | })) 16 | .pipe(gulp.dest(function(file) { 17 | return file.base; 18 | })); 19 | }); 20 | 21 | 22 | /* Remove internal UUIDs */ 23 | gulp.task('remove_UUIDs', function() { 24 | return gulp.src('.') 25 | .pipe(exec('sh scripts/uuids.sh remove nogen')) 26 | }); 27 | 28 | 29 | 30 | /* userContent file with no addons */ 31 | gulp.task('userContent_no_addons', function() { 32 | return gulp.src(['css/common-files/*.css', 'css/userContent-files/*.css']) 33 | .pipe(concatCss('userContent_no_addons.css')) 34 | .pipe(gulp.dest('./alternative_user_files')); 35 | }); 36 | 37 | 38 | /* Add everything to userContent */ 39 | gulp.task('userContent', gulp.parallel('userContent_no_addons', function() { 40 | return gulp.src(['css/common-files/*.css', 'css/userContent-files/*.css', 'css/userContent-files/*/*.css']) 41 | .pipe(concatCss('userContent.css')) 42 | .pipe(gulp.dest('.')); 43 | })); 44 | 45 | 46 | /* Add everything to userChrome */ 47 | gulp.task('userChrome', function() { 48 | return gulp.src(['css/common-files/*.css', 'css/userChrome-files/*.css']) 49 | .pipe(concatCss('userChrome.css')) 50 | .pipe(gulp.dest('.')); 51 | }); 52 | 53 | /* Minify final user files */ 54 | gulp.task('minify_final', function() { 55 | return gulp.src(['userChrome.css', 'userContent.css', 'alternative_user_files/*.css']) 56 | .pipe(cleanCSS({ 57 | level : 2 , 58 | format: 'beautify' 59 | })) 60 | .pipe(gulp.dest(function(file) { 61 | return file.base; 62 | })); 63 | }); 64 | 65 | 66 | 67 | 68 | /* All */ 69 | gulp.task('all', gulp.parallel('userChrome', 'userContent', function() { 70 | return gulp.src(['userChrome.css', 'userContent.css']) 71 | .pipe(cleanCSS({ 72 | level : 1 , 73 | format: 'beautify' 74 | })) 75 | .pipe(gulp.dest('.')); 76 | })); 77 | 78 | /* Publish */ 79 | gulp.task('publish', gulp.series('minify_base_code', 'userChrome', 'userContent', 'minify_final', 'remove_UUIDs')); 80 | 81 | 82 | 83 | /* Gulp Push - used to push to GitHub and re-add internal UUIDs */ 84 | gulp.task('push', function() { 85 | return gulp.src('.') 86 | .pipe(exec('git push')) 87 | .pipe(exec('sh scripts/uuids.sh add nogen')) 88 | }); 89 | 90 | 91 | gulp.task('patch', () => { 92 | return exec_ch('npx ver patch -p css/common-files/color_variables.css userChrome.css userContent.css alternative_user_files/userContent_no_addons.css'); 93 | }); 94 | 95 | gulp.task('minor', () => { 96 | return exec_ch('npx ver minor -p css/common-files/color_variables.css userChrome.css userContent.css alternative_user_files/userContent_no_addons.css'); 97 | }); 98 | 99 | gulp.task('major', () => { 100 | return exec_ch('npx ver major -p css/common-files/color_variables.css userChrome.css userContent.css alternative_user_files/userContent_no_addons.css'); 101 | }); 102 | 103 | -------------------------------------------------------------------------------- /no_empty_iframes/README.md: -------------------------------------------------------------------------------- 1 | # No Empty iframes 2 | 3 | ## Test Page 4 | 5 | [Test page](https://overdodactyl.github.io/ShadowFox/no_empty_iframes_testpage) 6 | 7 | ## What it does 8 | 9 | No Empty iframes adds a blank `div` to any iframes that have an empty `body`. 10 | 11 | ## That sounds useless...what's the point? 12 | 13 | [ShadowFox](https://github.com/overdodactyl/ShadowFox) utilizes `userContent.css` and `userChrome.css` to create a universal dark theme for Firefox. In part, this means styling `about:blank`. A complication of this is that `about:blank` is also used for anonymous frames on webpages. Generally, iframes will contain content, making the following css rule specific enough: 14 | 15 | ```css 16 | html > body:empty { 17 | background-color: var(--in-content-page-background)!important; 18 | margin: 0!important 19 | } 20 | ``` 21 | 22 | Some pages, however, have empty iframes that cause readability issues (see [#222](https://github.com/overdodactyl/ShadowFox/issues/222)). 23 | 24 | This extension injects an empty div into such iframes, allowing the rule above to work. 25 | 26 | ## Better approaches? 27 | 28 | If anyone has a better approach/workaround for this problem, I would appreciate any suggestions. -------------------------------------------------------------------------------- /no_empty_iframes/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "description": "Add an empty div to the body of any empty iframes. Supplemental addon to ShadowFox.", 4 | "manifest_version": 2, 5 | "name": "No Empty iframes", 6 | "version": "1.1", 7 | "homepage_url": "https://github.com/overdodactyl/ShadowFox/tree/master/no_empty_iframes", 8 | 9 | "content_scripts": [ 10 | { 11 | "matches": [""], 12 | "js": ["no_empty_iframes.js"], 13 | "run_at": "document_start" 14 | } 15 | ] 16 | 17 | } 18 | -------------------------------------------------------------------------------- /no_empty_iframes/no_empty_iframes.js: -------------------------------------------------------------------------------- 1 | /* Once page finishes loading, find all empty iframes and add empty div inside */ 2 | window.onload = function() { 3 | var frames = document.getElementsByTagName("iframe"); 4 | for (var i = 0; i < frames.length; i++) { 5 | var doc = frames[i].contentWindow.document; 6 | if (doc.body.innerHTML === "") { 7 | var elemDiv = document.createElement('div'); 8 | doc.body.appendChild(elemDiv); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /no_empty_iframes/no_empty_iframes.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/no_empty_iframes/no_empty_iframes.zip -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shadowfox", 3 | "version": "1.6.0", 4 | "description": "a universal dark theme for firefox 57+", 5 | "main": "gulpfile.js", 6 | "dependencies": { 7 | "gulp-clean-css": "^3.10.0", 8 | "gulp-concat-css": "^3.1.0", 9 | "gulp-exec": "^3.0.2" 10 | }, 11 | "devDependencies": { 12 | "gulp": "github:gulpjs/gulp#4.0" 13 | }, 14 | "scripts": { 15 | "test": "gulp publish" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "git+https://github.com/overdodactyl/ShadowFox.git" 20 | }, 21 | "keywords": [ 22 | "dark", 23 | "theme" 24 | ], 25 | "author": "@overdodactyl", 26 | "license": "MIT", 27 | "bugs": { 28 | "url": "https://github.com/overdodactyl/ShadowFox/issues" 29 | }, 30 | "homepage": "https://github.com/overdodactyl/ShadowFox#readme" 31 | } 32 | -------------------------------------------------------------------------------- /scripts/updater_version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | new_version=$1 4 | 5 | # Substitute version number 6 | current_ver="$(sed 's/[- ]//g' <<< $(sed -n '/CURR_VER/p' website/index.html))" 7 | sed -i -e "s/$current_ver/$new_version/g" website/index.html 8 | 9 | # Build website and push to GitHub 10 | parcel build website/index.html -d website/dist --public-url ./ 11 | git add website/* 12 | git commit -m "website: change updater version number" 13 | git push 14 | git subtree push --prefix website/dist origin gh-pages -------------------------------------------------------------------------------- /scripts/uuids.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Mac 4 | ## arg1 - required: 5 | ## add: add UUIDs found in internal_UUID.txt to corresponding .css files 6 | ## remove: add UUIDs found in internal_UUID.txt to corresponding .css files 7 | ## arg2 - optional: 8 | ## nogen: don't generate internal_UUIDs.txt before adding/removing 9 | ## designed for users using userContent_imports.css 10 | ## entries in internal_UUIDs.txt should take on the following format: webextension_id=internal_UUID 11 | ## author: @overdodactyl 12 | ## version: 1.0 13 | 14 | method=$1 15 | uuid_finder=${2:-gen} 16 | 17 | # Determine whether UUIDs will be inserted or removed 18 | if [ $method = "add" ]; then 19 | var1=0 20 | var2=1 21 | var3="inserted" 22 | elif [ $method = "remove" ]; then 23 | var1=1 24 | var2=0 25 | var3="removed" 26 | else 27 | echo "must pass argument add or remove" 28 | exit 1 29 | fi 30 | 31 | currdir=$(pwd) 32 | sfp=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null) 33 | if [ -z "$sfp" ]; then sfp=${BASH_SOURCE[0]}; fi 34 | cd "$(dirname "${sfp}")" && cd .. 35 | 36 | if [ $uuid_finder != "nogen" ]; then 37 | ## Generate internal_UUIDs.txt 38 | touch "scripts/internal_UUIDs.txt" 39 | 40 | ## Get installed extesnsions from prefs.js 41 | line=$(sed -n -e 's/^user_pref("extensions.webextensions.uuids", "{\(.*\).*}");/\1/p' ./../../prefs.js) 42 | 43 | ## Clear internal_UUIDS.txt 44 | > 'scripts/internal_UUIDs.txt' 45 | 46 | ## Write to internal_UUIDs 47 | IFS=',' read -ra EXTS <<< "$line" 48 | for i in "${EXTS[@]}"; do 49 | id=$(echo $i | sed -n 's/.*"\(.*\)\\":.*/\1/p') 50 | uuid=$(echo $i | sed -n 's/.*"\(.*\)\\".*/\1/p') 51 | echo "$id=$uuid" >> 'scripts/internal_UUIDs.txt' 52 | done 53 | echo "scripts/internal_UUIDs.txt was created" 54 | fi 55 | 56 | 57 | ## Insert/remove any UUIDs defined in internal_UUIDs.txt into userContent.css 58 | while IFS='' read -r line || [[ -n "$line" ]]; do 59 | IFS='=' read -r -a array <<< "$line" 60 | webextension_name=${array[0]%_UUID} 61 | for filename in css/userContent-files/webextension-tweaks/*.css; do 62 | sed -i '' "s/${array[$var1]}/${array[$var2]}/" "${filename}" 63 | ##echo ${filename} 64 | done 65 | sed -i '' "s/${array[$var1]}/${array[$var2]}/" "userContent.css" 66 | done < "scripts/internal_UUIDs.txt" 67 | echo "UUIDs were ${var3}" 68 | -------------------------------------------------------------------------------- /userChrome_imports.css: -------------------------------------------------------------------------------- 1 | @import "css/common-files/color_variables.css"; 2 | @import "css/common-files/trees.css"; 3 | @import "css/common-files/radios_checkboxes.css"; 4 | @import "css/common-files/library.css"; 5 | @import "css/common-files/context_menus.css"; 6 | 7 | @import "css/userChrome-files/about_addons.css"; 8 | @import "css/userChrome-files/about_firefox.css"; 9 | @import "css/userChrome-files/address_searchbar.css"; 10 | @import "css/userChrome-files/bookmarks_popup.css"; 11 | @import "css/userChrome-files/clear_history.css"; 12 | @import "css/userChrome-files/common_dialog.css"; 13 | @import "css/userChrome-files/customization_page.css"; 14 | @import "css/userChrome-files/findbar.css"; 15 | @import "css/userChrome-files/navbar.css"; 16 | @import "css/userChrome-files/navbar_menus.css"; 17 | @import "css/userChrome-files/page_info.css"; 18 | @import "css/userChrome-files/remove_bookmarks_bottom_border.css"; 19 | @import "css/userChrome-files/remove_white_flash.css"; 20 | @import "css/userChrome-files/secure_connection_colors.css"; 21 | @import "css/userChrome-files/sidebar.css"; 22 | @import "css/userChrome-files/status_panel.css"; 23 | @import "css/userChrome-files/tab_line_colors.css"; -------------------------------------------------------------------------------- /userContent_imports.css: -------------------------------------------------------------------------------- 1 | /* Required for all users */ 2 | @import "css/common-files/color_variables.css"; 3 | @import "css/common-files/trees.css"; 4 | @import "css/common-files/radios_checkboxes.css"; 5 | @import "css/common-files/library.css"; 6 | @import "css/common-files/context_menus.css"; 7 | 8 | @import "css/userContent-files/about_pages.css"; 9 | @import "css/userContent-files/amo_store.css"; 10 | @import "css/userContent-files/directory_listings.css"; 11 | @import "css/userContent-files/manifest.css"; 12 | @import "css/userContent-files/pdf.css"; 13 | @import "css/userContent-files/raw_githubusercontent.css"; 14 | @import "css/userContent-files/view_source.css"; 15 | @import "css/userContent-files/rss.css"; 16 | 17 | /* Import Relevant webextension tweaks here 18 | * IMPORTANT: If used, change the Internal UUID in the corresponding css file */ 19 | @import "css/userContent-files/webextension-tweaks/generic_style.css"; 20 | @import "css/userContent-files/webextension-tweaks/brief.css"; 21 | @import "css/userContent-files/webextension-tweaks/cookie_autodelete.css"; 22 | @import "css/userContent-files/webextension-tweaks/dark_mode.css"; 23 | @import "css/userContent-files/webextension-tweaks/dustman.css"; 24 | @import "css/userContent-files/webextension-tweaks/downloads_sidebar.css"; 25 | @import "css/userContent-files/webextension-tweaks/greasemonkey.css"; 26 | @import "css/userContent-files/webextension-tweaks/multi_account_containers.css"; 27 | @import "css/userContent-files/webextension-tweaks/noscript.css"; 28 | @import "css/userContent-files/webextension-tweaks/onetab.css"; 29 | @import "css/userContent-files/webextension-tweaks/pocket.css"; 30 | @import "css/userContent-files/webextension-tweaks/random_user_agent.css"; 31 | @import "css/userContent-files/webextension-tweaks/request_control.css"; 32 | @import "css/userContent-files/webextension-tweaks/tree_style_tab.css"; 33 | @import "css/userContent-files/webextension-tweaks/tridactyl.css"; 34 | @import "css/userContent-files/webextension-tweaks/ublock_origin.css"; 35 | @import "css/userContent-files/webextension-tweaks/ubo_scope.css"; 36 | @import "css/userContent-files/webextension-tweaks/ultrawide_video.css"; 37 | @import "css/userContent-files/webextension-tweaks/umatrix.css"; 38 | @import "css/userContent-files/webextension-tweaks/vim_vixen.css"; 39 | @import "css/userContent-files/webextension-tweaks/violentmonkey.css"; 40 | @import "css/userContent-files/webextension-tweaks/youtube_video_and_audio_downloader.css" -------------------------------------------------------------------------------- /website/.cache/0968e6b498252d2c3e584e82db85b9ed.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"d7742b0c401dc74c4e07fb7a8e595e5d.ttf\";"},"hash":"24712f6c47821394fba7942fbb52c3b2","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/0acb906661a74496de117cd3c7f0a159.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"d34ac906f23eff397f36460926feb55b.png\";"},"hash":"14efbe2fef1ef06d4ac5e16973e5dbc5","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/0be3bb65675e9d7fbd0a47bab1cd6459.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"b330bb8bb131e37a3c4777468bd41429.jpg\";"},"hash":"d9cee66bf718046a69bd2e753754eaa0","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/10857c1626f3ae53cbd39fcd6b852cdb.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"8993d1008116f423ef363febdba150a8.jpg\";"},"hash":"f519a460eb838cc8983f40624a35930c","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/1a85bf56750ff10ffb7dda58aedc62d6.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"a292ef9260e5cc95720fa9f021c94d22.png\";"},"hash":"54803e37d451337872680db905be66e2","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/1c8835cd5b2d85f93dd1aa389d4094be.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"d21fcf7e343908ca7881a30b7d61f899.jpg\";"},"hash":"ea0c95f67b2534079b45b2a516f29524","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/261554f13b939432f3223abe2e6fd7c6.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"262aed7bec0c032ab38fe9667881bc64.svg\";"},"hash":"e216e104f2c239e997fee97a64acf379","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/27b89ac0c6b3647d1894dc5c9b0988fd.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"css":"/*!\n * animate.css -http://daneden.me/animate\n * Version - 3.6.1\n * Licensed under the MIT license - http://opensource.org/licenses/MIT\n *\n * Copyright (c) 2018 Daniel Eden\n */.animated{animation-duration:1s;animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.pulse{animation-name:pulse}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn}","js":""},"hash":"c867bec2c9f022ca736b53d6565503ed","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/2a7e17aee7ad6947fe55e0acd182f2b7.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"badf658bb7bd9cd7e212bc67b3fd8a03.woff2\";"},"hash":"314210a4825a7cc8ca7db893dfd9d283","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/351b7b101a70d034145a23a6284029a6.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"ab05efa0c2a3a4f4b49909a8e57e9f3b.woff\";"},"hash":"b55e385f24f0f9f724dac935fe292ecf","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/4081f34b84275562ee917b562ffc2c7c.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"css":".mfp-bg{z-index:1042;overflow:hidden;background:#0b0b0b;opacity:.8}.mfp-bg,.mfp-wrap{top:0;left:0;width:100%;height:100%;position:fixed}.mfp-wrap{z-index:1043;outline:none!important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:\"\";display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-ajax-holder .mfp-content,.mfp-inline-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-arrow,.mfp-close,.mfp-counter,.mfp-preloader{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-error .mfp-content,.mfp-s-ready .mfp-preloader{display:none}button.mfp-arrow,button.mfp-close{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:focus,.mfp-close:hover{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1}.mfp-arrow:after,.mfp-arrow:before{content:\"\";display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;box-sizing:border-box;padding:40px 0;margin:0 auto}.mfp-figure,img.mfp-img{line-height:0}.mfp-figure:after{content:\"\";position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-height:300px),screen and (max-width:800px) and (orientation:landscape){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media (max-width:900px){.mfp-arrow{transform:scale(.75)}.mfp-arrow-left{transform-origin:0}.mfp-arrow-right{transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}","js":""},"hash":"787c37cb5410f2496b63de01f5cae99a","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/49c6b95d0be77f204a33faa62742b38e.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"8aad4e75d93e50cbef8486e37ea6beda.eot\";"},"hash":"2c2ae068be3b089e0a5b59abb1831550","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/4d9626e8582857023242c0015999b239.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"d472766d942c4807e26b1b780cf75d24.woff2\";"},"hash":"7244318390cc4d36aac4a613ff42d308","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/545aecd67dbe94ab9911bd162cc3e7ea.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"c20a61a69a22649fd37bbc8bcace5c53.eot\";"},"hash":"7be5435e82c853b13cae85af56abf815","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/60de5956a3cb9f72e44b8106a79741e3.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"a6755547abe532c522e3ea8b292d8906.ico\";"},"hash":"9c7adf765447b45865ce312fd22cbf1f","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/62fbb7d5601897b504a30afb6b907cb7.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"c0909496b0952a5a572209a124ccf0e1.jpg\";"},"hash":"e02cf9ba36fbeca89f5189c4b34bd0b9","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/637d4fc717f7229535f574850ebe7b7b.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"e5b1da8bb10b0f565ebc2b823acc152e.eot\";"},"hash":"4afee4c98483c85a33460792d1f0f6db","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/6a0ec4484e9201f78ad3c64cf882e1ec.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"56b9d12cfcc0e56616ac857914471854.ttf\";"},"hash":"cf44fd55d7045a2378f92f86ddfca3d3","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/722afd0ce0a73bb3b0f6ba04d09436d6.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"c568eb5cc68a998f9fd037dda38ee9d2.png\";"},"hash":"6ee4953fc834fe8fd6a69e1a43172672","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/788cc2010d78a48664e7fdd11bb9e2a6.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[{"name":"./android-chrome-192x192.png","dynamic":true},{"name":"./android-chrome-512x512.png","dynamic":true}],"generated":{"webmanifest":"{\"name\":\"\",\"short_name\":\"\",\"icons\":[{\"src\":\"cbeefd86ed642e6aa0e6e881ce7b43a9.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"},{\"src\":\"93f280b8cb6f0ec55dfb68f101d1fa7c.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],\"theme_color\":\"#ffffff\",\"background_color\":\"#ffffff\",\"display\":\"standalone\"}"},"hash":"5ab0c44844d07cc1806f0854e3296fdd","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/7d05b5c310f539ed9bc10515806c0e10.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"301664e417d1d59f55e830f929f406f3.png\";"},"hash":"b6be2c74114bdcf938fa22b4cbe687ff","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/8f745cfd9eee03157d7d8b4a41d6f141.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"10c2cd5fa7e3623c96e1759d1a3746c9.jpg\";"},"hash":"a661460e990c82805961ea1232bd3830","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/afdae9c700ee7a712ba0bf6d95987574.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"css":".cm-s-shadowfox.CodeMirror{background:#2a2a2e;color:#b1b1b3}.cm-s-shadowfox div.CodeMirror-selected{background:#353b48}.cm-s-shadowfox .CodeMirror-line::selection,.cm-s-shadowfox .CodeMirror-line>span::selection,.cm-s-shadowfox .CodeMirror-line>span>span::selection{background:#353b48}.cm-s-shadowfox .CodeMirror-line::-moz-selection,.cm-s-shadowfox .CodeMirror-line>span::-moz-selection,.cm-s-shadowfox .CodeMirror-line>span>span::-moz-selection{background:#353b48}.cm-s-shadowfox .CodeMirror-gutters{background:#0c0c0d;border-right:1px solid #0c0c0d}.cm-s-shadowfox .CodeMirror-guttermarker{color:#555}.cm-s-shadowfox .CodeMirror-linenumber{color:#939393}.cm-s-shadowfox .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-shadowfox span.cm-comment{color:#939393}.cm-s-shadowfox span.cm-atom,.cm-s-shadowfox span.cm-attribute,.cm-s-shadowfox span.cm-builtin,.cm-s-shadowfox span.cm-error,.cm-s-shadowfox span.cm-keyword,.cm-s-shadowfox span.cm-quote{color:#ff7de9}.cm-s-shadowfox span.cm-number,.cm-s-shadowfox span.cm-string,.cm-s-shadowfox span.cm-string-2{color:#6b89ff}.cm-s-shadowfox span.cm-hr,.cm-s-shadowfox span.cm-meta{color:#939393}.cm-s-shadowfox span.cm-header,.cm-s-shadowfox span.cm-qualifier,.cm-s-shadowfox span.cm-variable-2{color:#75bfff}.cm-s-shadowfox span.cm-property{color:#86de74}.cm-s-shadowfox span.cm-bracket,.cm-s-shadowfox span.cm-def,.cm-s-shadowfox span.cm-link:visited,.cm-s-shadowfox span.cm-tag{color:#75bfff}.cm-s-shadowfox span.cm-variable{color:#b98eff}.cm-s-shadowfox span.cm-variable-3{color:#d7d7db}.cm-s-shadowfox span.cm-link{color:#737373}.cm-s-shadowfox span.cm-operator{color:#b1b1b3}.cm-s-shadowfox span.cm-special{color:#d7d7db}.cm-s-shadowfox .CodeMirror-activeline-background{background:rgba(185,215,253,.15)}.cm-s-shadowfox .CodeMirror-matchingbracket{outline:1px solid hsla(0,0%,100%,.25);color:#fff!important}","js":""},"hash":"b92c120d963ccd1c03b2a2ff92646d2f","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/b0c77296d5765c434f8e49794505e620.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[{"name":"./vendors/css/animate.css","media":"","loc":{"line":1,"column":1}},{"name":"./vendors/css/codemirror.css","media":"","loc":{"line":2,"column":1}},{"name":"./vendors/css/combined.css","media":"","loc":{"line":3,"column":1}},{"name":"./vendors/css/grid.css","media":"","loc":{"line":4,"column":1}},{"name":"./vendors/css/ionicons.css","media":"","loc":{"line":5,"column":1}},{"name":"./vendors/css/latofonts.css","media":"","loc":{"line":6,"column":1}},{"name":"./vendors/css/magnific-popup.css","media":"","loc":{"line":7,"column":1}},{"name":"./vendors/css/normalize.css","media":"","loc":{"line":8,"column":1}},{"name":"./vendors/css/shadowfox.css","media":"","loc":{"line":9,"column":1}},{"name":"./resources/css/style","media":"","loc":{"line":10,"column":1}},{"name":"./resources/css/queries","media":"","loc":{"line":11,"column":1}}],"generated":{"css":"","js":""},"hash":"7e1d68af15f3dc0ac01ed9adacb120a5","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/c0d1433bcb6247ee056ee4c04f287ba9.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[{"name":"./../fonts/ionicons.eot","dynamic":true,"loc":{"line":16,"column":3}},{"name":"./../fonts/ionicons.woff","dynamic":true,"loc":{"line":16,"column":3}},{"name":"./../fonts/ionicons.ttf","dynamic":true,"loc":{"line":16,"column":3}},{"name":"./../fonts/ionicons.svg","dynamic":true,"loc":{"line":16,"column":3}}],"generated":{"css":"@charset \"UTF-8\";\n/*!\n Ionicons, v4.1.0\n Created by Ben Sperry for the Ionic Framework, http://ionicons.com/\n https://twitter.com/benjsperry https://twitter.com/ionicframework\n MIT License: https://github.com/driftyco/ionicons\n\n Android-style icons originally built by Google’s\n Material Design Icons: https://github.com/google/material-design-icons\n used under CC BY http://creativecommons.org/licenses/by/4.0/\n Modified icons to fit ionicon’s grid from original.\n*/@font-face{font-family:Ionicons;src:url(8aad4e75d93e50cbef8486e37ea6beda.eot);src:url(8aad4e75d93e50cbef8486e37ea6beda.eot) format(\"embedded-opentype\"),url(9684fbf4aa264e0e095221b6e9599233.woff) format(\"woff\"),url(d7742b0c401dc74c4e07fb7a8e595e5d.ttf) format(\"truetype\"),url(b9a3afafa2545a7d9dca47db5c32eb05.svg) format(\"svg\");font-weight:400;font-style:normal}.ion,.ion-android-done:before,.ion-android-download:before,.ion-close-round:before,.ion-ios-arrow-down:before,.ion-ios-arrow-right:before,.ion-ios-bolt-outline:before,.ion-ios-briefcase-outline:before,.ion-ios-color-wand-outline:before,.ion-ios-monitor-outline:before,.ion-navicon-round:before,.ion-pound:before,.ion-social-apple:before,.ion-social-github:before,.ion-social-reddit:before,.ion-social-tux:before,.ion-social-windows:before,.ionicons{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios-bolt-outline:before{content:\"\\f3e5\"}.ion-ios-monitor-outline:before{content:\"\\f465\"}.ion-ios-briefcase-outline:before{content:\"\\f3ed\"}.ion-ios-color-wand-outline:before{content:\"\\f415\"}.ion-social-apple:before{content:\"\\f227\"}.ion-social-tux:before{content:\"\\f2c5\"}.ion-android-download:before{content:\"\\f2dd\"}.ion-android-done:before{content:\"\\f383\"}.ion-social-windows:before{content:\"\\f247\"}.ion-ios-arrow-right:before{content:\"\\f3d3\"}.ion-close-round:before{content:\"\\f129\"}.ion-ios-arrow-down:before{content:\"\\f3d0\"}.ion-social-github:before{content:\"\\f233\"}.ion-social-reddit:before{content:\"\\f23b\"}.ion-pound:before{content:\"\\f219\"}.ion-navicon-round:before{content:\"\\f20d\"}","js":""},"hash":"aa3c33ec9ee972d8a0732efe638725b6","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/c71fd844ea076413e228386393909899.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"css":"@media only screen and (max-width:1200px){.hero-text-box{width:100%;padding:0 2%}.row{padding:0 2%}}@media only screen and (max-width:1024px){header{background-attachment:scroll}}@media only screen and (max-width:1023px){body{font-size:18px}section{padding:60px 0}header{background-attachment:scroll}.long-copy{width:80%;margin-left:10%}.steps-box,.steps-box:last-child{margin-top:10px}.works-steps{margin-bottom:40px}.works-step:last-of-type{margin-bottom:60px}.app-screen{width:50%}.icon-small{width:17px;margin-right:5px}}@media only screen and (max-width:767px){body{font-size:16px}section{padding:30px 0}.hero-text-box,.row{padding:0 4%}.col{width:100%;margin:0 0 4%}.main-nav{display:none}.mobile-nav-icon{display:inline-block;position:relative;z-index:9999}.main-nav{float:none;position:absolute;z-index:8888;width:100%;margin:0;margin-left:-4%;background-color:rgba(0,0,0,.9);text-align:center;padding:10px 0}.main-nav li{display:block;margin-left:0;font-size:110%}.main-nav li a:link,.main-nav li a:visited{display:block;border:0;padding:10px 0;font-size:100%}.sticky .main-nav{margin-top:0}.sticky .main-nav li a:link,.sticky .main-nav li a:visited{padding:10px 0;color:#fff}.sticky .mobile-nav-icon{margin-top:10px}.sticky .mobile-nav-icon i{color:#555}.sticky .mobile-nav-icon i.ion-close-round{color:#fff}h1{font-size:180%}h2{font-size:150%}.long-copy{width:100%;margin-left:0}.works-step div{height:40px;width:40px;margin-right:15px;padding:4px;font-size:120%}.works-step,.works-step:last-of-type{margin-bottom:20px}.footer-nav,.social-links{float:none;text-align:center}}@media only screen and (max-width:480px){section{padding:25px 0}}@media only screen and (max-width:350px){h1{font-size:150%}}@media only screen and (max-height:450px){.hero-text-box{margin-top:40px}}","js":""},"hash":"a4d0abbe2a1d14299530830a1a14257b","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/c78683a292a5bdf8b6e16fd0defede2f.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"b9a3afafa2545a7d9dca47db5c32eb05.svg\";"},"hash":"621bd386841f74e0053cb8e67f8a0604","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/c7ecb80fe2c41aee98fa9d8ddbfc6d0e.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"b981b9df1660a02c847d19d5cb0b3374.png\";"},"hash":"9c92ad316ff4c9a5b491d2c24018f29b","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/c93ea1adebbf3d4825bf9a8cf10ef987.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"css":".CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:\"\"}span.CodeMirror-selectedtext{background:none}","js":""},"hash":"b9c8342b9c2333c0b729af4cc786b727","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/cf72ca69ebb0c613572247525db36edc.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"08fba2bbbaf3bff744184fc6c00f9bd1.woff\";"},"hash":"90301aa07d780a09812229d6375c3b28","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/e0e7eee9731b209d4afbe6f00cc265e0.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"f283fbf144d57fb7d7f88181f94aeb72.ttf\";"},"hash":"7865ec9dc1b26d5447c722f5c2023687","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/e6abb6de2d5268b2cf956ff75015148a.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"9684fbf4aa264e0e095221b6e9599233.woff\";"},"hash":"05acfdb568b3df49ad31355b19495d4a","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/e714a6b46fc073cfea11f2d0e90d7208.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"9cb4839ed07fb265b4d1531bfa4487f8.png\";"},"hash":"967e30eca0c3cfd91a517f3bf207a547","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/ea20a7cc7575c448e64ae3d6054d5b51.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[{"name":"./../fonts/Lato-Light.eot","dynamic":true,"loc":{"line":4,"column":5}},{"name":"./../fonts/Lato-Light.woff2","dynamic":true,"loc":{"line":4,"column":5}},{"name":"./../fonts/Lato-Light.woff","dynamic":true,"loc":{"line":4,"column":5}},{"name":"./../fonts/Lato-Light.ttf","dynamic":true,"loc":{"line":4,"column":5}},{"name":"./../fonts/Lato-LightItalic.eot","dynamic":true,"loc":{"line":17,"column":5}},{"name":"./../fonts/Lato-LightItalic.woff2","dynamic":true,"loc":{"line":17,"column":5}},{"name":"./../fonts/Lato-LightItalic.woff","dynamic":true,"loc":{"line":17,"column":5}},{"name":"./../fonts/Lato-LightItalic.ttf","dynamic":true,"loc":{"line":17,"column":5}}],"generated":{"css":"@font-face{font-family:LatoWebLight;src:url(e5b1da8bb10b0f565ebc2b823acc152e.eot);src:url(e5b1da8bb10b0f565ebc2b823acc152e.eot?#iefix) format(\"embedded-opentype\"),url(d472766d942c4807e26b1b780cf75d24.woff2) format(\"woff2\"),url(08fba2bbbaf3bff744184fc6c00f9bd1.woff) format(\"woff\"),url(56b9d12cfcc0e56616ac857914471854.ttf) format(\"truetype\");font-style:normal;font-weight:400;text-rendering:optimizeLegibility;font-display:fallback}@font-face{font-family:LatoWebLight;src:url(c20a61a69a22649fd37bbc8bcace5c53.eot);src:url(c20a61a69a22649fd37bbc8bcace5c53.eot?#iefix) format(\"embedded-opentype\"),url(badf658bb7bd9cd7e212bc67b3fd8a03.woff2) format(\"woff2\"),url(ab05efa0c2a3a4f4b49909a8e57e9f3b.woff) format(\"woff\"),url(f283fbf144d57fb7d7f88181f94aeb72.ttf) format(\"truetype\");font-style:italic;font-weight:400;text-rendering:optimizeLegibility;font-display:fallback}","js":""},"hash":"f8127f8763d102efdd91bcfa67fcaf20","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/ec10aedf8568c4d16e0d70c79c1f3d92.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"css":".section{clear:both;padding:0;margin:0}.row{zoom:1}.row:after,.row:before{content:\"\";display:table}.row:after{clear:both}.col{display:block;float:left;margin:1% 0 1% 1.6%}.col:first-child{margin-left:0}@media only screen and (max-width:480px){.col{margin:0}}.span-2-of-2{width:100%}.span-1-of-2{width:49.2%}@media only screen and (max-width:480px){.span-1-of-2,.span-2-of-2{width:100%}}.span-3-of-3{width:100%}.span-2-of-3{width:66.13%}.span-1-of-3{width:32.26%}@media only screen and (max-width:480px){.span-1-of-3,.span-2-of-3,.span-3-of-3{width:100%}}.span-4-of-4{width:100%}.span-3-of-4{width:74.6%}.span-2-of-4{width:49.2%}.span-1-of-4{width:23.8%}@media only screen and (max-width:480px){.span-1-of-4,.span-2-of-4,.span-3-of-4,.span-4-of-4{width:100%}}.span-5-of-5{width:100%}.span-4-of-5{width:79.68%}.span-3-of-5{width:59.36%}.span-2-of-5{width:39.04%}.span-1-of-5{width:18.72%}@media only screen and (max-width:480px){.span-1-of-5,.span-2-of-5,.span-3-of-5,.span-4-of-5,.span-5-of-5{width:100%}}.span-6-of-6{width:100%}.span-5-of-6{width:83.06%}.span-4-of-6{width:66.13%}.span-3-of-6{width:49.2%}.span-2-of-6{width:32.26%}.span-1-of-6{width:15.33%}@media only screen and (max-width:480px){.span-1-of-6,.span-2-of-6,.span-3-of-6,.span-4-of-6,.span-5-of-6,.span-6-of-6{width:100%}}.span-7-of-7{width:100%}.span-6-of-7{width:85.48%}.span-5-of-7{width:70.97%}.span-4-of-7{width:56.45%}.span-3-of-7{width:41.94%}.span-2-of-7{width:27.42%}.span-1-of-7{width:12.91%}@media only screen and (max-width:480px){.span-1-of-7,.span-2-of-7,.span-3-of-7,.span-4-of-7,.span-5-of-7,.span-6-of-7,.span-7-of-7{width:100%}}.span-8-of-8{width:100%}.span-7-of-8{width:87.3%}.span-6-of-8{width:74.6%}.span-5-of-8{width:61.9%}.span-4-of-8{width:49.2%}.span-3-of-8{width:36.5%}.span-2-of-8{width:23.8%}.span-1-of-8{width:11.1%}@media only screen and (max-width:480px){.span-1-of-8,.span-2-of-8,.span-3-of-8,.span-4-of-8,.span-5-of-8,.span-6-of-8,.span-7-of-8,.span-8-of-8{width:100%}}.span-9-of-9{width:100%}.span-8-of-9{width:88.71%}.span-7-of-9{width:77.42%}.span-6-of-9{width:66.13%}.span-5-of-9{width:54.84%}.span-4-of-9{width:43.55%}.span-3-of-9{width:32.26%}.span-2-of-9{width:20.97%}.span-1-of-9{width:9.68%}@media only screen and (max-width:480px){.span-1-of-9,.span-2-of-9,.span-3-of-9,.span-4-of-9,.span-5-of-9,.span-6-of-9,.span-7-of-9,.span-8-of-9,.span-9-of-9{width:100%}}.span-10-of-10{width:100%}.span-9-of-10{width:89.84%}.span-8-of-10{width:79.68%}.span-7-of-10{width:69.52%}.span-6-of-10{width:59.36%}.span-5-of-10{width:49.2%}.span-4-of-10{width:39.04%}.span-3-of-10{width:28.88%}.span-2-of-10{width:18.72%}.span-1-of-10{width:8.56%}@media only screen and (max-width:480px){.span-1-of-10,.span-2-of-10,.span-3-of-10,.span-4-of-10,.span-5-of-10,.span-6-of-10,.span-7-of-10,.span-8-of-10,.span-9-of-10,.span-10-of-10{width:100%}}.span-11-of-11{width:100%}.span-10-of-11{width:90.76%}.span-9-of-11{width:81.52%}.span-8-of-11{width:72.29%}.span-7-of-11{width:63.05%}.span-6-of-11{width:53.81%}.span-5-of-11{width:44.58%}.span-4-of-11{width:35.34%}.span-3-of-11{width:26.1%}.span-2-of-11{width:16.87%}.span-1-of-11{width:7.63%}@media only screen and (max-width:480px){.span-1-of-11,.span-2-of-11,.span-3-of-11,.span-4-of-11,.span-5-of-11,.span-6-of-11,.span-7-of-11,.span-8-of-11,.span-9-of-11,.span-10-of-11,.span-11-of-11{width:100%}}.span-12-of-12{width:100%}.span-11-of-12{width:91.53%}.span-10-of-12{width:83.06%}.span-9-of-12{width:74.6%}.span-8-of-12{width:66.13%}.span-7-of-12{width:57.66%}.span-6-of-12{width:49.2%}.span-5-of-12{width:40.73%}.span-4-of-12{width:32.26%}.span-3-of-12{width:23.8%}.span-2-of-12{width:15.33%}.span-1-of-12{width:6.86%}@media only screen and (max-width:480px){.span-1-of-12,.span-2-of-12,.span-3-of-12,.span-4-of-12,.span-5-of-12,.span-6-of-12,.span-7-of-12,.span-8-of-12,.span-9-of-12,.span-10-of-12,.span-11-of-12,.span-12-of-12{width:100%}}","js":""},"hash":"930b68fb4cc83179ed029c1b9d337894","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/efdf49041571909ba52d70b582c83d89.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"8668c5b0b2475333ab4f3de1538946d0.png\";"},"hash":"3dd48a032d532150a497d530ab7812c3","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/f22766e2d4abcdc05b88db44b9fd1567.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"3a0a7d015b994e1ef536810d77bc1738.jpg\";"},"hash":"59756d2db7acf36bd2afbe05103b645d","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/fdf7732a781e5eb05a0daf5525139427.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"css":"/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}","js":""},"hash":"82fb615de905b3ce3110e2c834dc104a","cacheData":{}} -------------------------------------------------------------------------------- /website/.cache/fe6f672b0bb199bc2b0909e50ab8a729.json: -------------------------------------------------------------------------------- 1 | {"dependencies":[],"generated":{"js":"module.exports=\"f146ed5d4265a116cc8f76a11bfd8ddd.jpg\";"},"hash":"f2c7a7836ddbd1fa168589478a6e26a5","cacheData":{}} -------------------------------------------------------------------------------- /website/critical.js: -------------------------------------------------------------------------------- 1 | var critical = require('critical'); 2 | 3 | critical.generate({ 4 | inline: true, 5 | base: 'dist/', 6 | src: 'index.html', 7 | dest: 'index.html', 8 | ignore: ['@font-face'], 9 | minify: true 10 | }); 11 | -------------------------------------------------------------------------------- /website/dist/GcP71BP-min.21c94d22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/GcP71BP-min.21c94d22.png -------------------------------------------------------------------------------- /website/dist/GcP71BP-min.62448586.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/GcP71BP-min.62448586.png -------------------------------------------------------------------------------- /website/dist/GcP71BP-min.c5cef7fa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/GcP71BP-min.c5cef7fa.png -------------------------------------------------------------------------------- /website/dist/Lato-Light.074c2336.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.074c2336.woff -------------------------------------------------------------------------------- /website/dist/Lato-Light.0cf75d24.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.0cf75d24.woff2 -------------------------------------------------------------------------------- /website/dist/Lato-Light.14471854.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.14471854.ttf -------------------------------------------------------------------------------- /website/dist/Lato-Light.3acc152e.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.3acc152e.eot -------------------------------------------------------------------------------- /website/dist/Lato-Light.3c97fe76.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.3c97fe76.eot -------------------------------------------------------------------------------- /website/dist/Lato-Light.9e982457.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.9e982457.ttf -------------------------------------------------------------------------------- /website/dist/Lato-Light.ab0a3383.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.ab0a3383.eot -------------------------------------------------------------------------------- /website/dist/Lato-Light.c00f9bd1.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.c00f9bd1.woff -------------------------------------------------------------------------------- /website/dist/Lato-Light.c6f6b7a6.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.c6f6b7a6.ttf -------------------------------------------------------------------------------- /website/dist/Lato-Light.c9c59e8e.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.c9c59e8e.woff -------------------------------------------------------------------------------- /website/dist/Lato-Light.cb0c9583.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.cb0c9583.woff2 -------------------------------------------------------------------------------- /website/dist/Lato-Light.e740ee5a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-Light.e740ee5a.woff2 -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.184bf78e.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.184bf78e.eot -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.5481e4c7.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.5481e4c7.woff -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.69b9e097.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.69b9e097.woff2 -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.7534bbf3.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.7534bbf3.eot -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.7d9facd5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.7d9facd5.woff -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.82a482bf.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.82a482bf.ttf -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.9d03dc5c.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.9d03dc5c.ttf -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.a0e5d32f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.a0e5d32f.woff2 -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.b3fd8a03.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.b3fd8a03.woff2 -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.cace5c53.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.cace5c53.eot -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.e57e9f3b.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.e57e9f3b.woff -------------------------------------------------------------------------------- /website/dist/Lato-LightItalic.f94aeb72.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/Lato-LightItalic.f94aeb72.ttf -------------------------------------------------------------------------------- /website/dist/ShadowFox-logo-sp.26feb55b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ShadowFox-logo-sp.26feb55b.png -------------------------------------------------------------------------------- /website/dist/ShadowFox-logo-sp.6043b896.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ShadowFox-logo-sp.6043b896.png -------------------------------------------------------------------------------- /website/dist/ShadowFox-logo-sp.735cd048.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ShadowFox-logo-sp.735cd048.png -------------------------------------------------------------------------------- /website/dist/android-chrome-192x192.14995f0c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-192x192.14995f0c.png -------------------------------------------------------------------------------- /website/dist/android-chrome-192x192.382cc2f0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-192x192.382cc2f0.png -------------------------------------------------------------------------------- /website/dist/android-chrome-192x192.ce7b43a9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-192x192.ce7b43a9.png -------------------------------------------------------------------------------- /website/dist/android-chrome-192x192.d7b54f7c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-192x192.d7b54f7c.png -------------------------------------------------------------------------------- /website/dist/android-chrome-48x48.3d821620.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-48x48.3d821620.png -------------------------------------------------------------------------------- /website/dist/android-chrome-512x512.01d1fa7c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-512x512.01d1fa7c.png -------------------------------------------------------------------------------- /website/dist/android-chrome-512x512.311b8d04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-512x512.311b8d04.png -------------------------------------------------------------------------------- /website/dist/android-chrome-512x512.45ddacee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-512x512.45ddacee.png -------------------------------------------------------------------------------- /website/dist/android-chrome-512x512.b8f339e6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/android-chrome-512x512.b8f339e6.png -------------------------------------------------------------------------------- /website/dist/apple-touch-icon.323fcc51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/apple-touch-icon.323fcc51.png -------------------------------------------------------------------------------- /website/dist/apple-touch-icon.72492c6c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/apple-touch-icon.72492c6c.png -------------------------------------------------------------------------------- /website/dist/apple-touch-icon.c6875160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/apple-touch-icon.c6875160.png -------------------------------------------------------------------------------- /website/dist/apple-touch-icon.e29f8037.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/apple-touch-icon.e29f8037.png -------------------------------------------------------------------------------- /website/dist/apple-touch-icon.fa4487f8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/apple-touch-icon.fa4487f8.png -------------------------------------------------------------------------------- /website/dist/browserconfig.115cb9dc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #9440c1 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/dist/browserconfig.e96b0d8f.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #9440c1 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/dist/favicon-16x16.614c7f97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-16x16.614c7f97.png -------------------------------------------------------------------------------- /website/dist/favicon-16x16.98341b2f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-16x16.98341b2f.png -------------------------------------------------------------------------------- /website/dist/favicon-16x16.a38ee9d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-16x16.a38ee9d2.png -------------------------------------------------------------------------------- /website/dist/favicon-16x16.a999429a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-16x16.a999429a.png -------------------------------------------------------------------------------- /website/dist/favicon-16x16.d914d78a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-16x16.d914d78a.png -------------------------------------------------------------------------------- /website/dist/favicon-32x32.29f406f3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-32x32.29f406f3.png -------------------------------------------------------------------------------- /website/dist/favicon-32x32.39fc885a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-32x32.39fc885a.png -------------------------------------------------------------------------------- /website/dist/favicon-32x32.78c87f9c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-32x32.78c87f9c.png -------------------------------------------------------------------------------- /website/dist/favicon-32x32.c6b8714c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-32x32.c6b8714c.png -------------------------------------------------------------------------------- /website/dist/favicon-32x32.de92ca75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon-32x32.de92ca75.png -------------------------------------------------------------------------------- /website/dist/favicon.08713f72.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon.08713f72.ico -------------------------------------------------------------------------------- /website/dist/favicon.292d8906.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon.292d8906.ico -------------------------------------------------------------------------------- /website/dist/favicon.3c2d3cb3.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon.3c2d3cb3.ico -------------------------------------------------------------------------------- /website/dist/favicon.95bad960.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon.95bad960.ico -------------------------------------------------------------------------------- /website/dist/favicon.f13d1ff9.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/favicon.f13d1ff9.ico -------------------------------------------------------------------------------- /website/dist/index.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../../../../../../../../../usr/local/lib/node_modules/parcel-bundler/src/builtins/bundle-url.js","../../../../../../../../../../usr/local/lib/node_modules/parcel-bundler/src/builtins/css-loader.js"],"names":["bundleURL","getBundleURLCached","getBundleURL","Error","err","matches","stack","match","getBaseURL","url","replace","exports","bundle","require","updateLink","link","newLink","cloneNode","onload","remove","href","split","Date","now","parentNode","insertBefore","nextSibling","cssTimeout","reloadCSS","setTimeout","links","document","querySelectorAll","i","length","module"],"mappings":"AAAA,ACAA,IDAIA,ACAAY,MAAM,GDAG,ACAAC,GDAG,IAAhB,ACAoB,CAAC,cAAD,CAApB;;ADCA,ACCA,SDDSZ,ACCAa,UAAT,CAAoBC,IAApB,EAA0B,CDD1B,GAA8B;AAC5B,ACCA,MDDI,ACCAC,CDDChB,MCCM,GDDX,ACCce,EDDE,ECCE,CAACE,SAAL,EAAd;ADAEjB,IAAAA,SAAS,GAAGE,YAAY,EAAxB;AACD,ACADc,EAAAA,OAAO,CAACE,MAAR,GAAiB,YAAY;AAC3BH,IAAAA,IAAI,CAACI,MAAL;ADCF,ACAC,GAFD,MDEOnB,SAAP;AACD;ACACgB,EAAAA,OAAO,CAACI,IAAR,GAAeL,IAAI,CAACK,IAAL,CAAUC,KAAV,CAAgB,GAAhB,EAAqB,CAArB,IAA0B,GAA1B,GAAgCC,IAAI,CAACC,GAAL,EAA/C;ADEF,ACDER,EAAAA,IAAI,CAACS,EDCEtB,QCDP,CAAgBuB,GDClB,GAAwB,MCDtB,CAA6BT,OAA7B,EAAsCD,IAAI,CAACW,WAA3C;ADEA,ACDD;ADEC,MAAI;AACF,ACDJ,IAAIC,MDCM,IAAIxB,ACDA,GAAG,EDCP,EAAN,ACDJ;ADEG,GAFD,CAEE,OAAOC,GAAP,EAAY;AACZ,ACFJ,QDEQC,CCFCuB,MDEM,GAAG,ACFlB,CDEmB,ECFE,GDEGxB,GAAG,CAACE,KAAV,EAAiBC,KAAjB,CAAuB,gCAAvB,CAAd;ACDF,MAAIoB,UAAJ,EAAgB;ADEd,ACDA,QDCItB,OAAJ,EAAa;AACX,ACDH,aDCUG,UAAU,CAACH,OAAO,CAAC,CAAD,CAAR,CAAjB;AACD;AACF,ACDDsB,EAAAA,UAAU,GAAGE,UAAU,CAAC,YAAY;AAClC,QAAIC,KAAK,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,wBAA1B,CAAZ;ADEF,SAAO,GAAP;AACD,ACFG,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,KAAK,CAACI,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAIrB,MAAM,CAACJ,UAAP,CAAkBsB,KAAK,CAACG,CAAD,CAAL,CAASb,IAA3B,MAAqCR,MAAM,CAACV,YAAP,EAAzC,EAAgE;ADGtE,ACFQY,QAAAA,CDECN,SCFS,CDElB,ACFmBsB,CDECrB,GAApB,CCFwB,CDEC,ACFAwB,CAAD,CAAN,CAAV;ADGN,ACFK,SDEE,CAAC,KAAKxB,GAAN,EAAWC,OAAX,CAAmB,uCAAnB,EAA4D,IAA5D,IAAoE,GAA3E;AACD,ACFI;;ADILC,ACFIgB,IAAAA,GDEG,CAACzB,MCFM,GAAG,GDEjB,CCFI,EDEmBD,kBAAvB;AACAU,ACFG,GATsB,EASpB,EDEE,ACXkB,CDWjBH,ACXN,UDWF,GAAqBA,UAArB;ACDC;;AAED2B,MAAM,CAACxB,OAAP,GAAiBiB,SAAjB","file":"index.map","sourceRoot":"..","sourcesContent":["var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n"]} -------------------------------------------------------------------------------- /website/dist/ionicons.044e0f8b.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.044e0f8b.ttf -------------------------------------------------------------------------------- /website/dist/ionicons.138a1568.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.138a1568.ttf -------------------------------------------------------------------------------- /website/dist/ionicons.7ea6beda.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.7ea6beda.eot -------------------------------------------------------------------------------- /website/dist/ionicons.8e595e5d.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.8e595e5d.ttf -------------------------------------------------------------------------------- /website/dist/ionicons.c628c025.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.c628c025.eot -------------------------------------------------------------------------------- /website/dist/ionicons.d3529123.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.d3529123.eot -------------------------------------------------------------------------------- /website/dist/ionicons.e9599233.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.e9599233.woff -------------------------------------------------------------------------------- /website/dist/ionicons.e9956e69.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.e9956e69.woff -------------------------------------------------------------------------------- /website/dist/ionicons.f93d54c4.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/ionicons.f93d54c4.woff -------------------------------------------------------------------------------- /website/dist/no_empty_iframes_testpage.html: -------------------------------------------------------------------------------- 1 | ShadowFox

No Empty iframes


ShadowFox styles about:blank in order to maintain a universal dark theme. An unfortunate consequence of this is that empty iframes on webpages are unintentionally styled (see here). No Empty iframes is a simple extension available on AMO that solves this problem by adding a content-less div to the body of any empty iframe.

Below is a simple test for No Empty iframes. The first iframe has no content, and the second does. Both iframes should have a green background, but with just ShadowFox installed, you will notice the first is grey.

With No Empty iframes installed (or ShadowFox uninstalled), both boxes should be green.


Alternatives

No Empty iframes is very simple extension, and the following code could be easily be applied via an extension like Violentmonkey.


-------------------------------------------------------------------------------- /website/dist/resources/img/Addons-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/Addons-small.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/Addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/Addons.png -------------------------------------------------------------------------------- /website/dist/resources/img/Library-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/Library-small.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/Library.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/Library.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/View Source-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/View Source-small.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/View Source.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/View Source.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/blank-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/blank-small.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/blank.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/blank.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/preferences-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/preferences-small.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/preferences.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/preferences.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/uBlock Origin-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/uBlock Origin-small.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/uBlock Origin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/uBlock Origin.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/uMatrix-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/uMatrix-small.jpg -------------------------------------------------------------------------------- /website/dist/resources/img/uMatrix.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/resources/img/uMatrix.jpg -------------------------------------------------------------------------------- /website/dist/safari-pinned-tab.5008f409.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 23 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /website/dist/safari-pinned-tab.7881bc64.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 50 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /website/dist/safari-pinned-tab.87a4d9cf.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 50 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /website/dist/safari-pinned-tab.aa4303a2.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 50 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /website/dist/site.2be6c589.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"android-chrome-192x192.ce7b43a9.png","sizes":"192x192","type":"image/png"},{"src":"android-chrome-512x512.01d1fa7c.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /website/dist/site.4520ac93.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"android-chrome-48x48.3d821620.png","sizes":"48x48","type":"image/png"}],"theme_color":"#000","background_color":"#000","display":"standalone"} -------------------------------------------------------------------------------- /website/dist/site.5adef91b.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"android-chrome-192x192.14995f0c.png","sizes":"192x192","type":"image/png"},{"src":"android-chrome-512x512.311b8d04.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /website/dist/site.61d91522.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"android-chrome-192x192.d7b54f7c.png","sizes":"192x192","type":"image/png"},{"src":"android-chrome-512x512.45ddacee.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /website/dist/site.91ef14c0.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"android-chrome-48x48.3d821620.png","sizes":"48x48","type":"image/png"}],"theme_color":"#000","background_color":"#000","display":"standalone"} -------------------------------------------------------------------------------- /website/dist/site.e2f57597.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"android-chrome-192x192.d7b54f7c.png","sizes":"192x192","type":"image/png"},{"src":"android-chrome-512x512.45ddacee.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /website/dist/testimonials_bg.24ccf0e1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/testimonials_bg.24ccf0e1.jpg -------------------------------------------------------------------------------- /website/dist/testimonials_bg.831211c3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/testimonials_bg.831211c3.jpg -------------------------------------------------------------------------------- /website/dist/testimonials_bg.d164d092.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/dist/testimonials_bg.d164d092.jpg -------------------------------------------------------------------------------- /website/dist/testpage.html: -------------------------------------------------------------------------------- 1 | ShadowFox

No Empty iframes


ShadowFox styles about:blank in order to maintain a universal dark theme. An unfortunate consequence of this is that empty iframes on webpages are unintentionally styled (see here). No Empty iframes is a simple extension available on AMO that solves this problem by adding a content-less div to the body of any empty iframe.

Below is a simple test for No Empty iframes. The first iframe has no content, and the second does. Both iframes should have a green background, but with just ShadowFox installed, you will notice the first is grey.

With No Empty iframes installed (or ShadowFox uninstalled), both boxes should be green.


Alternatives

No Empty iframes is very simple extension, and the following code could be easily be applied via an extension like Violentmonkey.


-------------------------------------------------------------------------------- /website/dist/website.121ad5a8.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"website.121ad5a8.map","sourceRoot":".."} -------------------------------------------------------------------------------- /website/dist/website.615865dd.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../../../../../../../../../usr/local/lib/node_modules/parcel-bundler/src/builtins/bundle-url.js","../../../../../../../../../../usr/local/lib/node_modules/parcel-bundler/src/builtins/css-loader.js"],"names":["bundleURL","getBundleURLCached","getBundleURL","Error","err","matches","stack","match","getBaseURL","url","replace","exports","bundle","require","updateLink","link","newLink","cloneNode","onload","remove","href","split","Date","now","parentNode","insertBefore","nextSibling","cssTimeout","reloadCSS","setTimeout","links","document","querySelectorAll","i","length","module"],"mappings":"AAAA,ACAA,IDAIA,ACAAY,SAASC,GDAG,IAAhB,CCAqB,cAAR,CAAb;ADCA,SAASZ,kBAAT,GAA8B;AAC5B,ACAF,MDAM,CAACD,ECAEc,ODAP,EAAgB,CCAlB,CAAoBC,IAApB,EAA0B;ADCtBf,ACAF,MAAIgB,UDAUd,ACAAa,KAAKE,SDAjB,ACAY,EAAd;ADCC,ACADD,UAAQE,MAAR,GAAiB,YAAY;AAC3BH,SAAKI,MAAL;ADCF,ACAC,GAFD,MDEOnB,SAAP;AACD,ACACgB,UAAQI,IAAR,GAAeL,KAAKK,IAAL,CAAUC,KAAV,CAAgB,GAAhB,EAAqB,CAArB,IAA0B,GAA1B,GAAgCC,KAAKC,GAAL,EAA/C;AACAR,OAAKS,UAAL,CAAgBC,YAAhB,CAA6BT,OAA7B,EAAsCD,KAAKW,WAA3C;ADCF,ACAC,SDAQxB,YAAT,GAAwB;AACtB;AACA,ACAF,IAAIyB,EDAE,WCAW,IAAjB;ADCI,ACAJ,SAASC,CDAC,IAAIzB,ICAd,CDAU,EAAN,ACAiB;ADClB,ACAD,GDFA,CAEE,ECAEwB,KDAKvB,GAAP,EAAY,ACAd,EAAgB;ADCd,ACAA,QDAIC,UAAU,CAAC,KAAKD,IAAIE,KAAV,EAAiBC,KAAjB,CAAuB,gCAAvB,CAAd;AACA,ACAD,QDAKF,OAAJ,EAAa;AACX,aAAOG,WAAWH,QAAQ,CAAR,CAAX,CAAP;AACD,ACAHsB,eAAaE,WAAW,YAAY;ADCnC,ACAC,QAAIC,QAAQC,SAASC,gBAAT,CAA0B,wBAA1B,CAAZ;AACA,SAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIH,MAAMI,MAA1B,EAAkCD,GAAlC,EAAuC;ADCzC,ACAI,SDAG,CCACrB,EDAR,KCAeJ,UAAP,CAAkBsB,MAAMG,CAAN,EAASb,IAA3B,MAAqCR,OAAOV,YAAP,EAAzC,EAAgE;ADCrE,ACAOY,mBAAWgB,MAAMG,CAAN,CAAX;AACD;ADCP,ACAK,SDAIzB,UAAT,CAAoBC,GAApB,EAAyB;AACvB,SAAO,CAAC,KAAKA,GAAN,EAAWC,OAAX,CAAmB,uCAAnB,EAA4D,IAA5D,IAAoE,GAA3E;AACD,ACAGiB,iBAAa,IAAb;AACD,GATY,EASV,EATU,CAAb;ADUFhB,ACAC,QDAOT,YAAR,GAAuBD,kBAAvB;AACAU,QAAQH,UAAR,GAAqBA,UAArB;ACCA2B,OAAOxB,OAAP,GAAiBiB,SAAjB","file":"website.615865dd.map","sourceRoot":"..","sourcesContent":["var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n"]} -------------------------------------------------------------------------------- /website/dist/website.81a86232.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"website.81a86232.map","sourceRoot":".."} -------------------------------------------------------------------------------- /website/dist/website.9ad09f98.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../../../../../../../../../usr/local/lib/node_modules/parcel-bundler/src/builtins/bundle-url.js","../../../../../../../../../../usr/local/lib/node_modules/parcel-bundler/src/builtins/css-loader.js"],"names":["bundleURL","getBundleURLCached","getBundleURL","Error","err","matches","stack","match","getBaseURL","url","replace","exports","bundle","require","updateLink","link","newLink","cloneNode","onload","remove","href","split","Date","now","parentNode","insertBefore","nextSibling","cssTimeout","reloadCSS","setTimeout","links","document","querySelectorAll","i","length","module"],"mappings":"AAAA,ACAA,IDAIA,ACAAY,MAAM,GDAG,ACAAC,GDAG,IAAhB,ACAoB,CAAC,cAAD,CAApB;;ADCA,ACCA,SDDSZ,ACCAa,UAAT,CAAoBC,IAApB,EAA0B,CDD1B,GAA8B;AAC5B,ACCA,MDDI,ACCAC,CDDChB,MCCM,GDDX,ACCce,EDDE,ECCE,CAACE,SAAL,EAAd;ADAEjB,IAAAA,SAAS,GAAGE,YAAY,EAAxB;AACD,ACADc,EAAAA,OAAO,CAACE,MAAR,GAAiB,YAAY;AAC3BH,IAAAA,IAAI,CAACI,MAAL;ADCF,ACAC,GAFD,MDEOnB,SAAP;AACD;ACACgB,EAAAA,OAAO,CAACI,IAAR,GAAeL,IAAI,CAACK,IAAL,CAAUC,KAAV,CAAgB,GAAhB,EAAqB,CAArB,IAA0B,GAA1B,GAAgCC,IAAI,CAACC,GAAL,EAA/C;ADEF,ACDER,EAAAA,IAAI,CAACS,EDCEtB,QCDP,CAAgBuB,GDClB,GAAwB,MCDtB,CAA6BT,OAA7B,EAAsCD,IAAI,CAACW,WAA3C;ADEA,ACDD;ADEC,MAAI;AACF,ACDJ,IAAIC,MDCM,IAAIxB,ACDA,GAAG,EDCP,EAAN,ACDJ;ADEG,GAFD,CAEE,OAAOC,GAAP,EAAY;AACZ,ACFJ,QDEQC,CCFCuB,MDEM,GAAG,ACFlB,CDEmB,ECFE,GDEGxB,GAAG,CAACE,KAAV,EAAiBC,KAAjB,CAAuB,gCAAvB,CAAd;ACDF,MAAIoB,UAAJ,EAAgB;ADEd,ACDA,QDCItB,OAAJ,EAAa;AACX,ACDH,aDCUG,UAAU,CAACH,OAAO,CAAC,CAAD,CAAR,CAAjB;AACD;AACF,ACDDsB,EAAAA,UAAU,GAAGE,UAAU,CAAC,YAAY;AAClC,QAAIC,KAAK,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,wBAA1B,CAAZ;ADEF,SAAO,GAAP;AACD,ACFG,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,KAAK,CAACI,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAIrB,MAAM,CAACJ,UAAP,CAAkBsB,KAAK,CAACG,CAAD,CAAL,CAASb,IAA3B,MAAqCR,MAAM,CAACV,YAAP,EAAzC,EAAgE;ADGtE,ACFQY,QAAAA,CDECN,SCFS,CDElB,ACFmBsB,CDECrB,GAApB,CCFwB,CDEC,ACFAwB,CAAD,CAAN,CAAV;ADGN,ACFK,SDEE,CAAC,KAAKxB,GAAN,EAAWC,OAAX,CAAmB,uCAAnB,EAA4D,IAA5D,IAAoE,GAA3E;AACD,ACFI;;ADILC,ACFIgB,IAAAA,GDEG,CAACzB,MCFM,GAAG,GDEjB,CCFI,EDEmBD,kBAAvB;AACAU,ACFG,GATsB,EASpB,EDEE,ACXkB,CDWjBH,ACXN,UDWF,GAAqBA,UAArB;ACDC;;AAED2B,MAAM,CAACxB,OAAP,GAAiBiB,SAAjB","file":"website.9ad09f98.map","sourceRoot":"..","sourcesContent":["var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n"]} -------------------------------------------------------------------------------- /website/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'); 4 | var log = require('fancy-log'); 5 | //var concatCss = require('gulp-concat-css'); 6 | //var cleanCSS = require('gulp-clean-css'); 7 | var rename = require('gulp-rename'); 8 | //var purify = require('gulp-purifycss'); 9 | var critical = require('critical').stream; 10 | var deploy = require('gulp-gh-pages'); 11 | 12 | // Generate & Inline Critical-path CSS 13 | gulp.task('critical', function () { 14 | return gulp.src('./index.html') 15 | .pipe(critical({ 16 | inline: true, 17 | base: 'test/', 18 | css: ['index.css'] 19 | })) 20 | .on('error', function(err) { log.error(err.message); }) 21 | .pipe(rename("index-critical.html")) 22 | .pipe(gulp.dest('.')); 23 | }); 24 | 25 | // Push build to gh-pages 26 | gulp.task('deploy', function () { 27 | return gulp.src("./dist/**/*") 28 | .pipe(deploy()) 29 | }); 30 | 31 | 32 | 33 | //gulp.task('publish', gulp.series('combine', 'minify-css', 'critical')); 34 | -------------------------------------------------------------------------------- /website/index.css: -------------------------------------------------------------------------------- 1 | @import "./vendors/css/animate.css"; 2 | @import "./vendors/css/codemirror.css"; 3 | @import "./vendors/css/combined.css"; 4 | @import "./vendors/css/grid.css"; 5 | @import "./vendors/css/ionicons.css"; 6 | @import "./vendors/css/latofonts.css"; 7 | @import "./vendors/css/magnific-popup.css"; 8 | @import "./vendors/css/normalize.css"; 9 | @import "./vendors/css/shadowfox.css"; 10 | @import "./resources/css/style"; 11 | @import "./resources/css/queries"; 12 | -------------------------------------------------------------------------------- /website/no_empty_iframes_testpage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ShadowFox 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 38 | 39 | 40 |
41 | 42 |
43 |
44 |
45 |

No Empty iframes


46 |

47 | ShadowFox styles about:blank in order to maintain a universal dark theme. An unfortunate consequence of this is that empty iframes on webpages are unintentionally styled (see here). No Empty iframes is a simple extension available on AMO that solves this problem by adding a content-less div to the body of any empty iframe.

48 | 49 | Below is a simple test for No Empty iframes. The first iframe has no content, and the second does. Both iframes should have a green background, but with just ShadowFox installed, you will notice the first is grey.

50 | 51 | With No Empty iframes installed (or ShadowFox uninstalled), both boxes should be green.


52 |

53 |
54 | 55 | 56 |
57 |
58 |
59 |
60 |
61 |

Alternatives

62 |

63 | No Empty iframes is very simple extension, and the following code could be easily be applied via an extension like Violentmonkey.


64 |

65 | 79 |
80 |
81 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /website/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "codemirror": "^5.37.0", 4 | "critical": "^1.3.2", 5 | "gulp": "^3.9.1", 6 | "gulp-rename": "^1.2.3", 7 | "html5shiv": "^3.7.3", 8 | "jquery": "^3.3.1", 9 | "lazysizes": "^4.0.2", 10 | "magnific-popup": "^1.1.0", 11 | "rename": "^1.0.4", 12 | "resources": "^0.4.3", 13 | "vendors": "^1.0.2", 14 | "waypoint": "^0.2.8", 15 | "waypoints": "^4.0.1" 16 | }, 17 | "devDependencies": { 18 | "cssnano": "^4.1.4", 19 | "gulp-gh-pages": "^0.5.4" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /website/resources/css/img/GcP71BP-min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/css/img/GcP71BP-min.png -------------------------------------------------------------------------------- /website/resources/css/img/GcP71BP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/css/img/GcP71BP.png -------------------------------------------------------------------------------- /website/resources/css/img/bg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/css/img/bg2.jpg -------------------------------------------------------------------------------- /website/resources/css/img/testimonials_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/css/img/testimonials_bg.jpg -------------------------------------------------------------------------------- /website/resources/css/queries.css: -------------------------------------------------------------------------------- 1 | /* Big tablet to 1200px (widths smaller taht the 1140px row) */ 2 | @media only screen and (max-width: 1200px) { 3 | .hero-text-box { 4 | width: 100%; 5 | padding: 0 2%; 6 | } 7 | 8 | .row { padding: 0 2%; } 9 | } 10 | 11 | @media only screen and (max-width: 1024px) { 12 | header { 13 | background-attachment: scroll; 14 | } 15 | } 16 | 17 | /* Small tablet to big tablet: from 768px to 1023px */ 18 | @media only screen and (max-width: 1023px) { 19 | 20 | body { font-size: 18px; } 21 | section { padding: 60px 0; } 22 | 23 | header { background-attachment: scroll; } 24 | 25 | .long-copy { 26 | width: 80%; 27 | margin-left: 10%; 28 | } 29 | 30 | .steps-box { margin-top: 10px; } 31 | .steps-box:last-child { margin-top: 10px; } 32 | .works-steps { margin-bottom: 40px; } 33 | .works-step:last-of-type { margin-bottom: 60px; } 34 | 35 | .app-screen { width: 50%; } 36 | 37 | .icon-small { 38 | width: 17px; 39 | margin-right: 5px; 40 | } 41 | } 42 | 43 | /* Small phones to small tablets: from 481px to 767px */ 44 | @media only screen and (max-width: 767px) { 45 | body { font-size: 16px; } 46 | section { padding: 30px 0; } 47 | 48 | .row, 49 | .hero-text-box { padding: 0 4%; } 50 | .col { 51 | width: 100%; 52 | margin: 0 0 4% 0; 53 | } 54 | 55 | .main-nav { display: none; } 56 | .mobile-nav-icon { 57 | display: inline-block; 58 | position: relative; 59 | z-index: 9999; 60 | } 61 | 62 | .main-nav { 63 | float: none; 64 | position: absolute; 65 | z-index: 8888; 66 | width: 100%; 67 | /*height: 100vh;*/ 68 | margin: 0; 69 | margin-left: -4%; 70 | background-color: rgba(0, 0, 0, 0.9); 71 | text-align: center; 72 | padding: 10px 0; 73 | } 74 | 75 | .main-nav li { 76 | display: block; 77 | margin-left: 0; 78 | font-size: 110%; 79 | } 80 | 81 | .main-nav li a:link, 82 | .main-nav li a:visited { 83 | display: block; 84 | border: 0; 85 | padding: 10px 0; 86 | font-size: 100%; 87 | } 88 | 89 | .sticky .main-nav { margin-top: 0; } 90 | 91 | .sticky .main-nav li a:link, 92 | .sticky .main-nav li a:visited { 93 | padding: 10px 0; 94 | color: #fff; 95 | } 96 | 97 | .sticky .mobile-nav-icon { margin-top: 10px; } 98 | .sticky .mobile-nav-icon i { color: #555; } 99 | .sticky .mobile-nav-icon i.ion-close-round { color: #fff; } 100 | 101 | h1 { font-size: 180%; } 102 | h2 { font-size: 150%; } 103 | 104 | .long-copy { 105 | width: 100%; 106 | margin-left: 0%; 107 | } 108 | 109 | .works-step div { 110 | height: 40px; 111 | width: 40px; 112 | margin-right: 15px; 113 | padding: 4px; 114 | font-size: 120%; 115 | } 116 | 117 | .works-step { margin-bottom: 20px; } 118 | .works-step:last-of-type { margin-bottom: 20px; } 119 | 120 | .social-links, 121 | .footer-nav { 122 | float: none; 123 | text-align: center; 124 | } 125 | 126 | } 127 | 128 | /* Small phones: from 0 to 480px */ 129 | @media only screen and (max-width: 480px) { 130 | section { padding: 25px 0; } 131 | } 132 | 133 | @media only screen and (max-width: 350px) { 134 | h1 { font-size: 150%;} 135 | } 136 | 137 | @media only screen and (max-height: 450px) { 138 | .hero-text-box { margin-top: 40px; } 139 | } 140 | -------------------------------------------------------------------------------- /website/resources/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /website/resources/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /website/resources/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /website/resources/favicons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #9440c1 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/resources/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /website/resources/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /website/resources/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/favicon.ico -------------------------------------------------------------------------------- /website/resources/favicons/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/mstile-144x144.png -------------------------------------------------------------------------------- /website/resources/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /website/resources/favicons/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/mstile-310x150.png -------------------------------------------------------------------------------- /website/resources/favicons/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/mstile-310x310.png -------------------------------------------------------------------------------- /website/resources/favicons/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/favicons/mstile-70x70.png -------------------------------------------------------------------------------- /website/resources/favicons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 50 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /website/resources/favicons/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /website/resources/img/Addons-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/Addons-small.jpg -------------------------------------------------------------------------------- /website/resources/img/Addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/Addons.png -------------------------------------------------------------------------------- /website/resources/img/Library-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/Library-small.jpg -------------------------------------------------------------------------------- /website/resources/img/Library.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/Library.jpg -------------------------------------------------------------------------------- /website/resources/img/ShadowFox-logo-sp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/ShadowFox-logo-sp.png -------------------------------------------------------------------------------- /website/resources/img/View Source-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/View Source-small.jpg -------------------------------------------------------------------------------- /website/resources/img/View Source.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/View Source.jpg -------------------------------------------------------------------------------- /website/resources/img/blank-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/blank-small.jpg -------------------------------------------------------------------------------- /website/resources/img/blank.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/blank.jpg -------------------------------------------------------------------------------- /website/resources/img/preferences-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/preferences-small.jpg -------------------------------------------------------------------------------- /website/resources/img/preferences.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/preferences.jpg -------------------------------------------------------------------------------- /website/resources/img/sf-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/sf-white.png -------------------------------------------------------------------------------- /website/resources/img/sf_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/sf_white.png -------------------------------------------------------------------------------- /website/resources/img/uBlock Origin-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/uBlock Origin-small.jpg -------------------------------------------------------------------------------- /website/resources/img/uBlock Origin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/uBlock Origin.jpg -------------------------------------------------------------------------------- /website/resources/img/uMatrix-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/uMatrix-small.jpg -------------------------------------------------------------------------------- /website/resources/img/uMatrix.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/resources/img/uMatrix.jpg -------------------------------------------------------------------------------- /website/resources/js/testpage.js: -------------------------------------------------------------------------------- 1 | window.jQuery = window.$ = require("jquery"); 2 | var CodeMirror = require('codemirror'); 3 | require('codemirror/mode/javascript/javascript.js'); 4 | 5 | // Insert content into second iframe 6 | var doc = document.getElementById('iframe_content').contentWindow.document; 7 | doc.open(); 8 | doc.write('Hello World'); 9 | doc.close(); 10 | 11 | // Codemirror 12 | var code = $('.codemirror-textarea')[0]; 13 | var iframes_test = CodeMirror.fromTextArea(code, { 14 | lineNumbers: true, 15 | mode: "javascript", 16 | theme: "shadowfox", 17 | readOnly: true 18 | }); -------------------------------------------------------------------------------- /website/vendors/css/animate.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /*! 4 | * animate.css -http://daneden.me/animate 5 | * Version - 3.6.1 6 | * Licensed under the MIT license - http://opensource.org/licenses/MIT 7 | * 8 | * Copyright (c) 2018 Daniel Eden 9 | */ 10 | 11 | .animated{animation-duration:1s;animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.pulse{animation-name:pulse}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn} 12 | -------------------------------------------------------------------------------- /website/vendors/css/ionicons.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /*! 3 | Ionicons, v4.1.0 4 | Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ 5 | https://twitter.com/benjsperry https://twitter.com/ionicframework 6 | MIT License: https://github.com/driftyco/ionicons 7 | 8 | Android-style icons originally built by Google’s 9 | Material Design Icons: https://github.com/google/material-design-icons 10 | used under CC BY http://creativecommons.org/licenses/by/4.0/ 11 | Modified icons to fit ionicon’s grid from original. 12 | */ 13 | @font-face { 14 | font-family: "Ionicons"; 15 | src: url("../fonts/ionicons.eot"); 16 | src: url("../fonts/ionicons.eot") format("embedded-opentype"), url("../fonts/ionicons.woff") format("woff"), url("../fonts/ionicons.ttf") format("truetype"), url("../fonts/ionicons.svg") format("svg"); 17 | font-weight: normal; 18 | font-style: normal; 19 | font-display: block; 20 | } 21 | .ion, .ionicons, 22 | .ion-ios-bolt-outline:before, 23 | .ion-ios-monitor-outline:before, 24 | .ion-ios-briefcase-outline:before, 25 | .ion-ios-color-wand-outline:before, 26 | .ion-social-apple:before, 27 | .ion-social-tux:before, 28 | .ion-android-download:before, 29 | .ion-android-done:before, 30 | .ion-social-windows:before, 31 | .ion-ios-arrow-right:before, 32 | .ion-close-round:before, 33 | .ion-ios-arrow-down:before, 34 | .ion-social-github:before, 35 | .ion-social-reddit:before, 36 | .ion-pound:before, 37 | .ion-navicon-round:before, 38 | .ion-ios-home:before{ 39 | display: inline-block; 40 | font-family: "Ionicons"; 41 | speak: none; 42 | font-style: normal; 43 | font-weight: normal; 44 | font-variant: normal; 45 | text-transform: none; 46 | text-rendering: auto; 47 | line-height: 1; 48 | -webkit-font-smoothing: antialiased; 49 | -moz-osx-font-smoothing: grayscale; 50 | } 51 | 52 | 53 | .ion-ios-bolt-outline:before{content:"\f3e5"} 54 | .ion-ios-monitor-outline:before{content:"\f465"} 55 | .ion-ios-briefcase-outline:before{content:"\f3ed"} 56 | .ion-ios-color-wand-outline:before{content:"\f415"} 57 | .ion-social-apple:before{content:"\f227"} 58 | .ion-social-tux:before{content:"\f2c5"} 59 | .ion-android-download:before{content:"\f2dd"} 60 | .ion-android-done:before{content:"\f383"} 61 | .ion-social-windows:before{content:"\f247"} 62 | .ion-ios-arrow-right:before{content:"\f3d3"} 63 | .ion-close-round:before{content:"\f129"} 64 | .ion-ios-arrow-down:before{content:"\f3d0"} 65 | .ion-social-github:before{content:"\f233"} 66 | .ion-social-reddit:before{content:"\f23b"} 67 | .ion-pound:before{content:"\f219"} 68 | .ion-navicon-round:before{content:"\f20d"} 69 | .ion-ios-home:before{content:"\f448"} 70 | -------------------------------------------------------------------------------- /website/vendors/css/latofonts.css: -------------------------------------------------------------------------------- 1 | /* Webfont: Lato-Light */@font-face { 2 | font-family: 'LatoWebLight'; 3 | src: url('../fonts/Lato-Light.eot'); /* IE9 Compat Modes */ 4 | src: url('../fonts/Lato-Light.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 5 | url('../fonts/Lato-Light.woff2') format('woff2'), /* Modern Browsers */ 6 | url('../fonts/Lato-Light.woff') format('woff'), /* Modern Browsers */ 7 | url('../fonts/Lato-Light.ttf') format('truetype'); 8 | font-style: normal; 9 | font-weight: normal; 10 | text-rendering: optimizeLegibility; 11 | font-display: swap; 12 | } 13 | 14 | /* Webfont: Lato-LightItalic */@font-face { 15 | font-family: 'LatoWebLight'; 16 | src: url('../fonts/Lato-LightItalic.eot'); /* IE9 Compat Modes */ 17 | src: url('../fonts/Lato-LightItalic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 18 | url('../fonts/Lato-LightItalic.woff2') format('woff2'), /* Modern Browsers */ 19 | url('../fonts/Lato-LightItalic.woff') format('woff'), /* Modern Browsers */ 20 | url('../fonts/Lato-LightItalic.ttf') format('truetype'); 21 | font-style: italic; 22 | font-weight: normal; 23 | text-rendering: optimizeLegibility; 24 | font-display: swap; 25 | } 26 | -------------------------------------------------------------------------------- /website/vendors/css/shadowfox.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Name: shadowfox 4 | Author: overdodactyl (http://github.com/overdodactyl) 5 | 6 | Original shadowfox color scheme by Firefox 7 | 8 | */ 9 | 10 | .cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; } 11 | .cm-s-shadowfox div.CodeMirror-selected { background: #353B48; } 12 | .cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; } 13 | .cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; } 14 | .cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; } 15 | .cm-s-shadowfox .CodeMirror-guttermarker { color: #555; } 16 | .cm-s-shadowfox .CodeMirror-linenumber { color: #939393; } 17 | .cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; } 18 | 19 | .cm-s-shadowfox span.cm-comment { color: #939393; } 20 | .cm-s-shadowfox span.cm-atom { color: #FF7DE9; } 21 | .cm-s-shadowfox span.cm-quote { color: #FF7DE9; } 22 | .cm-s-shadowfox span.cm-builtin { color: #FF7DE9; } 23 | .cm-s-shadowfox span.cm-attribute { color: #FF7DE9; } 24 | .cm-s-shadowfox span.cm-keyword { color: #FF7DE9; } 25 | .cm-s-shadowfox span.cm-error { color: #FF7DE9; } 26 | 27 | .cm-s-shadowfox span.cm-number { color: #6B89FF; } 28 | .cm-s-shadowfox span.cm-string { color: #6B89FF; } 29 | .cm-s-shadowfox span.cm-string-2 { color: #6B89FF; } 30 | 31 | .cm-s-shadowfox span.cm-meta { color: #939393; } 32 | .cm-s-shadowfox span.cm-hr { color: #939393; } 33 | 34 | .cm-s-shadowfox span.cm-header { color: #75BFFF; } 35 | .cm-s-shadowfox span.cm-qualifier { color: #75BFFF; } 36 | .cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; } 37 | 38 | .cm-s-shadowfox span.cm-property { color: #86DE74; } 39 | 40 | .cm-s-shadowfox span.cm-def { color: #75BFFF; } 41 | .cm-s-shadowfox span.cm-bracket { color: #75BFFF; } 42 | .cm-s-shadowfox span.cm-tag { color: #75BFFF; } 43 | .cm-s-shadowfox span.cm-link:visited { color: #75BFFF; } 44 | 45 | .cm-s-shadowfox span.cm-variable { color: #B98EFF; } 46 | .cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; } 47 | .cm-s-shadowfox span.cm-link { color: #737373; } 48 | .cm-s-shadowfox span.cm-operator { color: #b1b1b3; } 49 | .cm-s-shadowfox span.cm-special { color: #d7d7db; } 50 | 51 | .cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) } 52 | .cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; } 53 | -------------------------------------------------------------------------------- /website/vendors/fonts/Lato-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/Lato-Light.eot -------------------------------------------------------------------------------- /website/vendors/fonts/Lato-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/Lato-Light.ttf -------------------------------------------------------------------------------- /website/vendors/fonts/Lato-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/Lato-Light.woff -------------------------------------------------------------------------------- /website/vendors/fonts/Lato-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/Lato-Light.woff2 -------------------------------------------------------------------------------- /website/vendors/fonts/Lato-LightItalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/Lato-LightItalic.eot -------------------------------------------------------------------------------- /website/vendors/fonts/Lato-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/Lato-LightItalic.ttf -------------------------------------------------------------------------------- /website/vendors/fonts/Lato-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/Lato-LightItalic.woff -------------------------------------------------------------------------------- /website/vendors/fonts/Lato-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/Lato-LightItalic.woff2 -------------------------------------------------------------------------------- /website/vendors/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/ionicons.eot -------------------------------------------------------------------------------- /website/vendors/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/ionicons.ttf -------------------------------------------------------------------------------- /website/vendors/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overdodactyl/ShadowFox/9ce619818857fa5b596761a4ef8cd3d38e7ded17/website/vendors/fonts/ionicons.woff --------------------------------------------------------------------------------