From dec9ad8f0afc81acf6d97f771b022c66096213a9 Mon Sep 17 00:00:00 2001 From: kuro Date: Thu, 28 Jun 2018 21:07:06 -0500 Subject: [PATCH] Initial commit for dark mode support in Stylish for Safari --- stylish.safariextension/about.html | 2 +- .../assets/checkDarkMode.js | 14 + .../assets/dark-buttons.css | 67 ++ .../assets/dark-styles.css | 748 ++++++++++++++++++ stylish.safariextension/assets/edit.js | 253 +++--- stylish.safariextension/assets/global.js | 253 ++++-- stylish.safariextension/edit.html | 12 +- stylish.safariextension/images/bg-dark.jpg | Bin 0 -> 8324 bytes stylish.safariextension/images/busy-dark.gif | Bin 0 -> 32919 bytes stylish.safariextension/manage.html | 2 +- stylish.safariextension/search.html | 2 +- stylish.safariextension/settings.html | 35 +- 12 files changed, 1174 insertions(+), 214 deletions(-) create mode 100644 stylish.safariextension/assets/checkDarkMode.js create mode 100644 stylish.safariextension/assets/dark-buttons.css create mode 100644 stylish.safariextension/assets/dark-styles.css create mode 100644 stylish.safariextension/images/bg-dark.jpg create mode 100644 stylish.safariextension/images/busy-dark.gif diff --git a/stylish.safariextension/about.html b/stylish.safariextension/about.html index 13bc17e..2032471 100644 --- a/stylish.safariextension/about.html +++ b/stylish.safariextension/about.html @@ -3,8 +3,8 @@ About - + diff --git a/stylish.safariextension/assets/checkDarkMode.js b/stylish.safariextension/assets/checkDarkMode.js new file mode 100644 index 0000000..a51a8d2 --- /dev/null +++ b/stylish.safariextension/assets/checkDarkMode.js @@ -0,0 +1,14 @@ +/* Quick check to see if Dark Mode is enabled, and use the appropriate CSS if so.*/ +safari.self.addEventListener('message', setDarkMode, false); + +safari.self.tab.dispatchMessage('getDarkMode'); + + +function setDarkMode(msg) { + if (msg.name == 'isDarkMode') { + var isDarkMode = msg.message; + if (isDarkMode == "on") + $('head').append(''); + + } +} \ No newline at end of file diff --git a/stylish.safariextension/assets/dark-buttons.css b/stylish.safariextension/assets/dark-buttons.css new file mode 100644 index 0000000..f09a25a --- /dev/null +++ b/stylish.safariextension/assets/dark-buttons.css @@ -0,0 +1,67 @@ +button, +.button { + display: inline-block; + background: #0e52a5 -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255,255,255,.3)), to(rgba(255,255,255,.1))); + border: 1px solid; + border-color: rgba(0,0,0,.1) rgba(0,0,0,.2) rgba(0,0,0,.5) rgba(0,0,0,.2); + box-shadow: inset 0 1px 0 0 rgba(255,255,255,.3), 0 1px 2px 0 rgba(0,0,0,.3); + border-radius: 12px; + color: rgb(210, 210, 210); + font-size: 10px; + font-weight: normal; + line-height: 1; + width: 92px; + padding: 2px 0 3px; + text-align: center; + text-shadow: 0 -1px 1px rgba(0,0,0,.1); + margin-right: .5em; + box-sizing: border-box; + transition: all .2s ease-in; +} +button.red, +.button.red { + background-color:#ac2c2c; +} + +button:hover, +button.hover, +.button:hover, +.button.hover { + background-image: gradient(linear, 0 0, 0 100%, from(rgba(255,255,255,.2)), to(rgba(255,255,255,.05))); + box-shadow: inset 0 1px 0 0 rgba(255,255,255,.2); + cursor: pointer; + text-shadow: 0 -1px 1px rgba(0,0,0,.2); + text-decoration: none; +} + +button:active, +.button:active { + background-image:none; + border:1px solid rgba(0,0,0,.5); + box-shadow:inset 0 0 6px 3px rgba(0,0,0,.2), 0 1px 0 0 rgb(90, 90, 90); + text-shadow:0 -1px 1px rgba(0,0,0,.4); +} + +button[disabled], button.disabled, +button[disabled]:hover, button.disabled:hover, +button[disabled]:active, button.disabled:active, + +.button[disabled], .button.disabled, +.button[disabled]:hover, .button.disabled:hover, +.button[disabled]:active, .button.disabled:active { + background-color:rgb(85, 85, 85); + color:rgb(40, 40, 40); + box-shadow:none; + border-color:rgba(0,0,0,.2); + box-shadow:none; + cursor:not-allowed; + text-shadow:0 1px 1px rgba(255,255,255,.5); +} + +a { + color:#08C; + text-decoration:none; +} +a:hover { + text-decoration:underline; +} \ No newline at end of file diff --git a/stylish.safariextension/assets/dark-styles.css b/stylish.safariextension/assets/dark-styles.css new file mode 100644 index 0000000..6ea0ff7 --- /dev/null +++ b/stylish.safariextension/assets/dark-styles.css @@ -0,0 +1,748 @@ +/* Used for the dark mode.*/ + +@import 'reset.css'; +@import 'dark-buttons.css'; + +.cln:after { + content:'.'; + display:block; + clear:both; + visibility:hidden; + height:0; +} + +.fl { + float:left; +} +.fr { + float:right; +} +.hide { + display:none; +} + +html { + background:#0a0a0a url(../images/bg-dark.jpg) 50% 0 repeat-x; +} + +body { + width:980px; + height:100%; + margin:20px auto; + background:rgb(40, 40, 40); + border-radius:4px; + box-shadow: rgba(0,0,0,.3) 0 1px 3px; + color:rgb(210, 210, 210); + font-size:14px; + + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} + +h1, h2, h3, h4, h5 ,h6 { + color: rgb(210, 210, 210); +} + +#menu { + width:192px; + height:100%; + float:left; + border-right:1px solid rgb(30, 30, 30); + padding:10px 0 45px 0; +} +#menu header { + font-size:1.3em; + line-height:1.4; + padding-left:16px; + position:relative; +} +#menu nav { + padding:7px 0; +} +#menu a { + display:block; + position: relative; + color: rgb(160, 160, 160); + height: 18px; + padding: 9px 0 8px 16px; + transition: all 0s ease-in-out; + border: 0px solid rgb(40, 40, 40); + border-width:0px 0; +} +#menu a:hover { + color: #08c; + text-decoration: none; +} +#menu a.active { + border-color: rgb(20, 20, 20); + background-color: rgb(60, 60, 60); + color:rgb(210, 210, 210); +} +#menu a svg { + position: absolute; + right: 10px; + top: 50%; + transform:translate(-50%,-50%); + width: 12px; + height: 12px; + border:1px solid #000; + background: rgb(40, 40, 40); + border-radius: 50%; + margin: 0; + fill: #000; + transition: all 0s ease-in-out; +} + +#menu a:hover svg { + background: rgb(60, 60, 60); +} +#menu a.active svg { + background: #1280b8; +} + + +#content { + margin-left:192px; + border-left:1px solid rgb(20, 20, 20); + padding:10px 32px; +} +#content header { + +} +#content article { + +} +#content dl, +#content footer { + float:left; + width:100%; +} +#content dt { + color:rgb(210, 210, 210); + font-size: 1.3em; + line-height: 1.4; + font-weight:bold; + position:relative; + opacity:1; + transition: opacity .4s ease-in-out; +} +#content dt .badge { + position:static; + margin-left:10px; +} +#content dd { + border-bottom: 1px solid rgb(20, 20, 20); + margin-bottom: 18px; + padding-right: 54px; + padding-bottom:18px; +} +#content dd:last-child { + border:0; +} +#content dd p { + padding:8px 0; +} +#content dd h3 { + padding:8px 0 0 0; +} + +.applies { + clear:both; + overflow:hidden; + padding:10px 0 5px 0; +} +.applies li, #subcategory-list li { + display:inline-block; + line-height:1; + padding:2px 6px; + background:rgb(30, 30, 30); + border:1px solid rgb(20, 20, 20); + border-radius:4px; + color:rgb(160, 160, 160); + margin:0 4px 8px 4px; +} +#subcategory-list { + text-align:justify; + margin:0 -4px; +} + +#styleslist dd { + padding-right:0; + opacity:1; + transition: opacity .4s ease-in-out; + position: relative; +} +#styleslist div span.busy { + display:inline-block; + width:11px; + height:11px; + background:url(../images/busy-dark.gif) 50% 50% no-repeat; + position:relative; + top:2px; +} +#styleslist dd span.message { + font-size:12px; + color:rgb(160, 160, 160); +} +#styleslist nav { +} +#styleslist dd:hover nav { +} +#styleslist nav button.red { + float:right; +} + +button.submit { + display: none; +} +.custom button.submit2 { + display: inline-block; +} + +/* badges */ + +#subcategory-list li { + color:#08C; +} +#subcategory-list li:hover { + color:rgb(20, 20, 20); + background:#ff9a13; + cursor:pointer; + border:1px solid #f88c13; +} + +#subcategory-list i { + display:block; + float:right; + margin-left:6px; + font-style:normal; + background:#ff9a13; + color:rgb(20, 20, 20); + font-size:9px; + padding:3px 4px; + border-radius:3px; + display:none; +} + +.badge { + position:absolute; + right:8px; + top:4px; + padding:0 8px; + display:inline-block; + color:rgb(20, 20, 20); + height:16px; + line-height:16px; + font-size:11px; + font-weight:normal; + -webkit-font-smoothing:auto; + background:-webkit-gradient(linear, left top, left bottom, from(#ff8e14), to(#ffa312)); + border-radius:4px; + box-shadow:inset 0 1px 1px rgba(0,0,0,.3); + text-shadow:0 -1px 0 rgba(0,0,0,.2); + text-decoration:none; + vertical-align:1px; +} +.badge.userstyles { + background:#86cece; + color:#497a7a; + box-shadow:none; + text-shadow:0 1px 0 rgba(255,255,255,.6); +} +.badge.userstyles:hover { + background:#497a7a; + color:rgb(20, 20, 20); + text-shadow:none; + text-decoration:none; +} + +/* EDIT */ + +#content dd.editor { + padding-right:0; + border:0; + margin:0; +} +#content dd.editor fieldset, #content p.stitle { + border-bottom: 1px solid rgb(20, 20, 20); + padding-bottom:18px; + position:relative; +} + +.styleseditor fieldset { + padding-top:10px; +} +.styleseditor label { + display:inline-block; + width:70px; + font-size:12px; +} +p.code label { + vertical-align:top; +} + +.styleseditor select { + margin:0; +} +.styleseditor input[name="rule"] { + width:220px; + margin:0 6px; + background: rgb(20, 20, 20); + color:rgb(160, 160, 160); + border:1px solid rgb(30, 30, 30); +} +.styleseditor p.stitle input { + width:508px; + background: rgb(20, 20, 20); + color:rgb(160, 160, 160); + border:1px solid rgb(30, 30, 30); +} + +textarea.code { + display:inline-block; + width:500px; + background: rgb(20, 20, 20); + border:1px solid rgb(30, 30, 30); + padding:4px 6px; + color:rgb(160, 160, 160); + border-radius:4px; + margin:0; + font-family: monospace; + font-size:12px; + tab-size: 4; +} +textarea.code:focus { + border-color:#bbb; + color:rgb(210, 210, 210); +} + +.controls.section { + padding:0; + position:absolute; + right:0; + top:10px; +} +p.controls { + padding-bottom:8px; +} + +fieldset p.rule .add { + display:none; +} +fieldset p.rule:last-of-type .add { + display:inline; +} + +.rule label { + d1isplay:none; +} +.rule.first label { + d1isplay:block; +} +.rule.first .remove { + d1isplay:none; +} + +#styleslist dt.disabled, +#styleslist dd.disabled { + opacity:.5; + filter: grayscale(100%); +} + +#styleslist dd.custom .checkupdate, +#styleslist dd.custom .update { + display: none; +} + +/* SEARCH */ + +.ad { + display:none; +} + +#searchresult.busy { + background:url(../images/busy-dark.gif) 61% 16px no-repeat; +} +#searchresult dt { + padding:8px 0 18px 162px; + border-bottom: 1px solid rgb(20, 20, 20); + overflow:hidden; + clear:both; +} +#searchresult dd { + padding:18px 0; + margin:0; + border:0; + clear:both; +} + +.style-brief { + padding-bottom:18px; + border-bottom: 1px solid rgb(20, 20, 20); + margin-bottom: 18px; + position:relative; + list-style: none; + min-height: 100px; +} +.style-brief.busy { + background:url(../images/busy-dark.gif) 85% 34px no-repeat; +} +.style-brief.installed { +} + +.style-brief-text header { + font-size:1.5em; + font-weight:bold; + text-transform:capitalize; + color:rgb(210, 210, 210); +} +.style-brief-text { + margin-left:164px; +} +#content .style-brief-text p { + line-height:14px; + padding:8px 140px 8px 0; + color:rgb(160, 160, 160); + overflow:hidden; + text-overflow:ellipsis; +} +.style-brief.last-child { + border: 0; +} + +.listing-left-info { + width: 157px; + height: 101px; + float: left; + margin-left: -6px; + position: relative; +} +.listing-left-info figure, +.no-screenshots { + width: 145px; + height: 83px; + border: 4px solid rgb(20, 20, 20); + background: linear-gradient(to bottom, #f1f1f1 0%,#d6d5d5 100%); + box-shadow: 0 1px 2px rgba(0,0,0,.3); + color: transparent; + font-size: 0; +} + +.screenshot-thumbnail, .no-screenshots { + float:left; + margin:5px 6px; + width:145px; + height:83px; + overflow:hidden; + line-height:83px; + vertical-align:center; + transform: translate3d(0, 0, 0); +} + +.no-screenshots:after { + content:''; + position: absolute; + left:50%; + top:50%; + font-size: 14px; + + transform:translate(-50%,-50%); +} + +.screenshot-thumbnail img { + position:relative; + display:inline-block; + width:145px; + height:auto; + vertical-align:middle; + /* + -webkit-transform: scale(1); + -webkit-transition: all 400ms ease-in-out; + */ + image-rendering:optimizeQuality; + transform: translate3d(0, 0, 0); +} +.screenshot-thumbnail img:hover { + /* + -webkit-transform: scale(1.5); + */ + cursor:pointer; + transform:translate3d(0,0,0); +} + +.style-brief a { + cursor:default; + text-decoration:none; + color:rgb(160, 160, 160); +} + +.style-brief:hover { +} +.style-brief.installed:hover { +} + +.style-install { + position:absolute; + right:0; + top:30px; +} + +.style-brief-stats { + color:rgb(160, 160, 160); + font-size:12px; +} + +.ratio, .ratio span { + display:inline-block; + position: relative; + color: rgb(20, 20, 20); + overflow: hidden; +} +.ratio span { + position: absolute; + color: #2d7ab6; + left:0; + top:0; + width: 100%; + height: 100%; +} + +/* PAGINATION */ + +.pagination { + width:100%; + text-align:center; + margin:32px 0 0 0; +} + +.pagination a { + display:inline-block; + text-decoration:none; + color:rgb(160, 160, 160); + width:11px; + height:11px; + margin:0 1px; +} +.pagination a.point { + + width: 8px; + height: 8px; + border-radius:50%; + border:1px solid rgb(20, 20, 20); + background: rgb(30, 30, 30); +} +.pagination .prev { + margin:0 10px 0 0; + display: none; +} +.pagination .next { + margin:0 0 0 10px; + display: none; +} +.pagination a:hover { + background: rgb(60, 60, 60); + border-color: rgb(30, 30, 30); +} +.pagination a.active { + background: #32a7e1; + border-color: #1991cd; +} + +#content footer { + color:rgb(160, 160, 160); + text-align:center; +} + +/* POPUP */ + +#popup { + position:fixed; + z-index:9999; + left:0; + top:0; + height:100%; + width:100%; + background:rgba(255,255,255,.8); +} +#popup img { + display:block; + position:absolute; + z-index:1; + left:50%; + top:50%; + width:95%; + height:auto; + max-width:640px; + min-width:320px; + border:4px solid #fff; + box-shadow:0 8px 32px rgba(0,0,0,.8); + transform:translate3d(0,0,0) translate(-50%, -50%); + transition: opacity .4s ease-in-out; + image-rendering:optimizeQuality; + background: #fff; +} +#popup img.before { + z-index:2; + box-shadow:none; + opacity:0; +} +#popup img.before:hover { + opacity:1; +} + +/* SETTINGS */ + +.loginform fieldset { + display:inline-block; + padding-right:16px; +} + +#logoutform { + +} +#logoutform fieldset { + +} + +.loginform.busy fieldset.controls, +.importexportform.busy fieldset { + background:url(../images/busy-dark.gif) 100% 50% no-repeat; +} +#logoutform fieldset.controls { + padding:0 0 0 16px; + background-position:0 50%; +} + +#content.settings dd { + padding-right:0; +} + +dt sup { + font-weight:normal; + font-size:.6em; + color:rgb(160, 160, 160); +} + +.settings dd { + padding-top:10px; + overflow:hidden; + clear:both; +} + +.userinfo { + text-align:left; + float:none; + display:static; +} +.userinfo li { + font-size:11px; + color:rgb(160, 160, 160); +} + +#importexport span { + position:relative; +} +#importexport span input { + opacity:.01; + position:absolute; + left:0; + top:-3px; + width:90px; + margin:0; + padding:0 1px; + font-size:18px; + line-height:1px; +} +::-webkit-file-upload-button { cursor:pointer;} + +/* ANIMATION */ + +.ani { + transition:all 200ms ease-in-out; +} + +/* ADS */ + +#menu a.mackeeper { + display: block; + text-decoration: none; + width: 160px; + height: 600px; + background: #e7f8ff url(https://sobolev.us/download/stylish/mackeeper/tall.png) 50% 50% no-repeat; + background-size: cover; + padding: 0; + margin: 9px 0 8px 16px; + border-radius: 10px; + transition: none; +} +#menu a.mackeeper:after { + position: absolute; + top: 100%; + padding: 10px 4px; + content: 'Install MacKeeper to support this extension develpment!'; + font-size: 11px; + color: rgb(210, 210, 210); +} +@media screen and ( max-height: 900px ){ + #menu a.mackeeper { + height: 142px; + background-image: url(https://sobolev.us/download/stylish/mackeeper/small.png); + border-radius: 4px; + } +} + +/* SOCIAL */ + +.social, +#menu a.coffee { + transform: translate3d(0,0,0); + filter: grayscale(100%); + opacity:.5; + transition:all 200ms ease-in-out; +} +.social:hover, +#menu a.coffee:hover { + filter: grayscale(1%); + opacity:1; +} + +#fblike, +#gplus, +#tw { + display:inline-block; + width:82px; + height: 20px; + margin: 8px 0 0 16px; +} +#gplus, +#tw { + width:60px; + margin:8px 0 0 8px; +} +#tw { + width:63px; +} +/* no counter */ +#gplus { + width:36px; +} +#fblike { + width:52px; +} + +/* COFFEE */ + +#menu a.coffee { + background: rgba(37, 19, 7, .5) url(../images/coffee.png) 10px 50% no-repeat; + background-size: 12px auto; + padding: 0 0 0 30px; + color: rgb(20, 20, 20); + text-align: left; + font-size: 12px; + font-weight: 600; + display: block; + border-radius: 4px; + line-height: 28px; + height: 28px; + margin: 4px 10px 0 17px; +} \ No newline at end of file diff --git a/stylish.safariextension/assets/edit.js b/stylish.safariextension/assets/edit.js index 9c6a7d8..c91d1c1 100644 --- a/stylish.safariextension/assets/edit.js +++ b/stylish.safariextension/assets/edit.js @@ -7,113 +7,144 @@ var tpl1 = '
{H1}
400?32:16); + if (!(rules1 + rules2 + rules3 + rules4).length) { + rules1 = tpl3.replace(/\{NUM\}/g, 0).replace(/\{RULE\}/g, '').replace(/value=\"global\"/g, 'value="global" selected'); + } - }); - $('#save').val(id); - $('#content').addClass('inprogress'); - zen_textarea.setup(); - updateControls(); - } + $('.styleseditor').append($(stpl.replace(/\{RULES\}/g, rules1 + rules2 + rules3 + rules4))); + $('.styleseditor textarea').last().val(section.code).attr('rows', section.code.length > 400 ? 32 : 16); + + }); + $('#save').val(id); + $('#content').addClass('inprogress'); + zen_textarea.setup(); + updateControls(); +} $(window) - .keydown(function(event) { - if (event.altKey) { + .keydown(function (event) { + if (event.altKey) { altKey = true; $('#save').html('Quick Save'); } }) - .keyup(function(event) { - if (!event.altKey) { + .keyup(function (event) { + if (!event.altKey) { altKey = false; $('#save').html('Save Style'); } }) - .keypress(function() { + .keypress(function () { saved = false; }); -window.onbeforeunload = function(e) { +window.onbeforeunload = function (e) { if (e && !saved) return 'Some changes are not saved!'; } -function ping(name,data) { +function ping(name, data) { safari.self.tab.dispatchMessage(name, data); } - + function pong(event) { var n = event.name, m = event.message, t = event.target; - switch(n) { + switch (n) { case 'setInstalledStyles': renderStylesList(m); - break; + break; case 'editStyle': editStyle(m.id, m.json); - break; + break; } } diff --git a/stylish.safariextension/assets/global.js b/stylish.safariextension/assets/global.js index 3f11856..5b0236b 100644 --- a/stylish.safariextension/assets/global.js +++ b/stylish.safariextension/assets/global.js @@ -1,29 +1,29 @@ var DB = { - set: function(name, data) { + set: function (name, data) { safari.extension.settings.setItem(name, data); return; }, - get: function(name) { + get: function (name) { return safari.extension.settings.getItem(name); }, - delete: function(name) { + delete: function (name) { safari.extension.settings.removeItem(name); return; }, - clear: function() { + clear: function () { safari.extension.settings.clear(); return; }, - size: function() { + size: function () { return Object.keys(safari.extension.settings).length; }, - key: function(i) { + key: function (i) { return Object.keys(safari.extension.settings)[i]; }, - check: function(name) { + check: function (name) { return !(DB.get(name) === null); }, - upgrade: function() { + upgrade: function () { var name, value, dbversion = DB.check('dbversion') ? DB.get('dbversion') : 1; @@ -49,23 +49,25 @@ var DB = { DB.set('dbversion', 3); } - + DB.set('settings', default_settings); } return; - } + } } -var usss = 'https://userstyles.org/styles/browse/', href, +var usss = 'https://userstyles.org/styles/browse/', + href, w = window, page, skip_items = ['uuid', 'settings', 'dbversion', 'ad'], default_settings = { context: 'on', minify: 'on', - tracking: 'on' + tracking: 'on', + darkmode: 'off' }, settings; @@ -73,6 +75,7 @@ DB.upgrade(); settings = loadSettings(); // safari.extension.settings.settings + function ping(event, name, data) { if (page = event.target.page) { page.dispatchMessage(name, data); @@ -84,106 +87,142 @@ function pong(event) { t = event.target, m = event.message, l; - switch(n) { + switch (n) { case 'installStyle': installStyle(m); - break; + break; case 'saveStyle': saveData(m.id, m.json); - if (!m.import) pingAll('applyStyle', {id: m.id}); - break; + if (!m.import) pingAll('applyStyle', { + id: m.id + }); + break; case 'disableStyle': disableStyle(m.id); - pingAll('disableStyle', {id: m.id}); - break; + pingAll('disableStyle', { + id: m.id + }); + break; case 'enableStyle': enableStyle(m.id); - pingAll('enableStyle', {id: m.id}); - break; + pingAll('enableStyle', { + id: m.id + }); + break; case 'updateStyle': updateStyle(m.id, m.json); - pingAll('updateStyle', {id:m.id, css: m.json}); - break; + pingAll('updateStyle', { + id: m.id, + css: m.json + }); + break; case 'editStyle': - pingAll('editStyle', {id: m.id, json: DB.get(m.id)}); - break; + pingAll('editStyle', { + id: m.id, + json: DB.get(m.id) + }); + break; case 'deleteStyle': deleteStyle(m.id); - pingAll('removeStyle', {id: m.id}); - break; + pingAll('removeStyle', { + id: m.id + }); + break; case 'submitStyle': submitStyle(m.id); - break; + break; case 'getInstalledStyles': if (l = DB.size()) { var list = []; - for (var i=0;i/)[1]; //log(token); var id = 71868; //post('https://userstyles.org/styles/create',{ - post('https://userstyles.org/styles/update',{ - + post('https://userstyles.org/styles/update', { + 'utf8': '✓', 'authenticity_token': token, 'style[short_description]': 'Short description', @@ -269,7 +313,7 @@ function submitStyle(id) { '_method': 'put', 'style[id]': id, 'commit': 'Save' - },function(data){ + }, function (data) { //log(data); }, true); }); @@ -298,18 +342,23 @@ function saveData(id, json) { } function getHost(url) { - var a = document.createElement('a'), host; + var a = document.createElement('a'), + host; a.href = url; - host = a.hostname.replace('www.',''); + host = a.hostname.replace('www.', ''); return host; } function installStyle(m) { - var styleurl = 'https://userstyles.org/styles/chrome/'+m.id+'.json'; - getJSON(styleurl, m.options, function(json) { + var styleurl = 'https://userstyles.org/styles/chrome/' + m.id + '.json'; + getJSON(styleurl, m.options, function (json) { saveData(m.id, json); - pingAll('applyStyle', {id: m.id}); - pingAll('updateListing', {id: m.id}); + pingAll('applyStyle', { + id: m.id + }); + pingAll('updateListing', { + id: m.id + }); }); }; @@ -333,7 +382,7 @@ function analytics(data) { an: 'Stylish for Safari' }, options; - switch(data.type){ + switch (data.type) { case 'event': options = { t: 'event', @@ -342,13 +391,13 @@ function analytics(data) { el: data.label, ev: data.value } - break; + break; case 'screenview': options = { t: 'screenview', cd: data.title } - break; + break; case 'pageview': options = { t: 'pageview', @@ -356,27 +405,40 @@ function analytics(data) { dp: data.page, dt: data.title } - break; + break; case 'exception': options = { t: 'exception', exd: data.description, exf: data.fatal } - break; + break; } - post('http://www.google-analytics.com/collect', extend(payload_data,options)); + post('http://www.google-analytics.com/collect', extend(payload_data, options)); }; -window.onerror = function(message, url, line) { - error({message: message, url: url, line: line}); +window.onerror = function (message, url, line) { + error({ + message: message, + url: url, + line: line + }); return true; }; function error(m) { if (settings.tracking == 'on') { - analytics({type:'event', category: 'Error', action: getfilename(m.url), label: m.message + ' (' + m.line + ')', value: m.line}); - analytics({type:'exception', description: m.message + ' ('+getfilename(m.url)+' '+m.line+')'}); + analytics({ + type: 'event', + category: 'Error', + action: getfilename(m.url), + label: m.message + ' (' + m.line + ')', + value: m.line + }); + analytics({ + type: 'exception', + description: m.message + ' (' + getfilename(m.url) + ' ' + m.line + ')' + }); } console.error(message); }; @@ -392,22 +454,32 @@ function validate(event) { } return true; }; + function contextmenu(event) { -// log(event); -// if (event.userInfo === "IMG") { -// event.contextMenu.appendContextMenuItem("enlarge", "Enlarge Item"); -// } + // log(event); + // if (event.userInfo === "IMG") { + // event.contextMenu.appendContextMenuItem("enlarge", "Enlarge Item"); + // } } -analytics({type:'screenview', title:'Global'}); +analytics({ + type: 'screenview', + title: 'Global' +}); function showAd() { - getAdUrl(function(url) { + getAdUrl(function (url) { try { var newTab = safari.application.activeBrowserWindow.openTab(); if (newTab) newTab.url = url; - } catch(er) { - analytics({type:'event', category: 'Error', action: 'global.js', label: 'ShowAd() Error', value: 411}); + } catch (er) { + analytics({ + type: 'event', + category: 'Error', + action: 'global.js', + label: 'ShowAd() Error', + value: 411 + }); } }); @@ -416,8 +488,8 @@ function showAd() { function getAdUrl(callback) { var request = new XMLHttpRequest; - request.open('GET', 'https://sobolev.us/download/stylish/geo.php?_='+ Math.random()*10E19, true); - request.onload = function() { + request.open('GET', 'https://sobolev.us/download/stylish/geo.php?_=' + Math.random() * 10E19, true); + request.onload = function () { var country = request.responseText, tier = 3, paramss = 'phexafc9b4dbb6b5bd9f9298a3ada19cd2e8cb90ecedd0c69dd8d7caa2cedbced9d8dbdbc8d0d5d7c8d5a9d9929695a69bc0ccd9abaa92d2d7d8dfe0d4d0c8c4e6e3c0d895d498939a92a4cec8dd', @@ -433,8 +505,17 @@ function getAdUrl(callback) { paramss = 'phexafc9b4dbb6b5bd9f9298a3ada19cd2e8cb90ecedd0c69dd8d7caa2cedbced9d8dbdbc8d0d5d7c8d5a7d9929695a69bc0ccd9abaa92d2d7d8dfe0d4d0c8c4e6e3c0d893d498939a92a4cec8dd'; } - callback('http://downloadmacsoft.com/paramss='+paramss+'&trt='+trt+'&tid_ext='+tid_ext); + callback('http://downloadmacsoft.com/paramss=' + paramss + '&trt=' + trt + '&tid_ext=' + tid_ext); }; request.send(); +} + +safari.application.addEventListener('message', setDM, false); + +function setDM(msg) { + if (msg.name == 'getDarkMode') { + var isDark = settings.darkmode; + safari.application.activeBrowserWindow.activeTab.page.dispatchMessage('isDarkMode', isDark); + } } \ No newline at end of file diff --git a/stylish.safariextension/edit.html b/stylish.safariextension/edit.html index b9bbe30..b4dfeee 100644 --- a/stylish.safariextension/edit.html +++ b/stylish.safariextension/edit.html @@ -1,27 +1,29 @@ + Styles editor - - - + + + - + - +
+ \ No newline at end of file diff --git a/stylish.safariextension/images/bg-dark.jpg b/stylish.safariextension/images/bg-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2dc11ba30ccc4b4aa0739fb7c3496ee48e0d19e6 GIT binary patch literal 8324 zcmeGhTWlOx_0I0v>&JTIO=9AfQYIVcQPlN5?6ue1y0&+{e$Z^heF5+Eef?jMHy|! zZfHA58`GYqs!bjT;Fp?h7)UjlZQ!DAMO8!&LdU32+wJdD>&nK45lFx@p%uLmM=5jm zQM=0Rb5NEHYQMvl?f8-@ZwMfG4H2kc(61m5vFU+i8aeboAus76ZZGE3-$2vIQ&Uq@ zTjQy%_4w-R>U~X1Jf0;@&C8ZGEnC*?^N?Z!qcgvz8tUsCybXW*Sj27-sQ#+ z-^~cnUqQYabQsk-DL-=fD5sCoe+x!Z`bnw>w5*~?0fljKLe#jbs@*lUb@kMIB841I zi`a-L7v*%g998b>nkuKK4TwIcYvs~#Ro^CNnSaN=NcHlAN1souYH7-x$hNgB`)88w z)rUr}Ub@Dr(N8_|!b5BNzc$9DUVT>USaEvuoBUsXIQ_HP(p%RD);@OZ;TOMt^33o5 z`mN)yoqhZLExCzD9{=`_etzx`A9N0G%}*Y9;yXY7#rbzW^dW}>v~>}k+|^Z4qQc7X zQWt2j!@sO5vhUz>tig%Q%+?LLYq2y>2tF~WTU5yoRuZg~T8kBf;1(({~q496p zD*ST|*3PM*Uql`!nbU`Q&~?|L;nh9*DHG0^@U#hMO?bwHXH9s{gy&6YjelLgQvbqS zrnI$&P%JT=cHu08T(}Lg5GNwRttPm}%h$emJ$Rz|=rgm;yhR+BOC#V=`mFh$73mQC=$*H)bDXf#^XaNI^3Ea)?Hwh({VKp&}NA>WVfu z^oW>*s7aNh7QK+4smC!_7usZHH79hCk4>6*UY{Kg2Q=vJK?;gvhTc3`n9BniXu@8dm=7% zW|9D!Xz)J44xwN!2NV%%*teiiCg$ijpR_TsEdu@vP+L4vg29n*Vu;MYK_B7F(ibew z%b2_%N&jzX#1~jJUZ@No;sp!#a9j~;2)B@fGN@Q@tT~P~2cg#xjG4ubUO>a&9D6%% zmC3plcbzyE4cl=Sk#j%`G~6hQ@+g2f#K5Yv9WZ9vVJ^Fr<6xA1idc}rLYnH~u2d57 zT8Pc8&dMc;Q|IM4tA&9^9DozUjy^!ni(Ztlqufvdq2_m|D(&MR`MSb?gR6(KL!D{N{MOW#OvAftgPY4RX1@d~5y93arx&Z4zJ z)EUeegDJy>JPqKJw%=J&#ENZ(IKL8;R`ZoxQ8goKV@$q+%ggejIL1$D!|KpjdcC#S z)mZ2X=Gt*t+0`csdCOBv4C99^G+6HD_#9Iri*M}&uV@RfZ?Vvo?Dg4vQWj;U%(*^8 zeqzujz!0=SmawmDHMt0zxXPEWZgnCogEwG3S+Z>2fUk!~JU*YD26*LJpx^Y`3C-#rzdDijO6#?Vs*QBvbm-F_lG z4sDDM`f0+VZSVGz8z{XkJwhjCg{Pyf9RW7n9-=$DTEiWo_GtJ{eCO^AhN8hxM<5iA zhhp(am^OdIaJkvj5&IP@0ziHIu)3kQey^u&MBD!uC`}>+OU+q(V8HOdhB;0X&|C*{vs! z8NuLqzs#2KoWuR_q}rpMoqeIU{=R`&d#Wwj-qF|D9!?EJI#L6vRJhX`Gc2hZBe6Ul z15#QAfs5y|VJ60ey8k{*AL9EVL4_;LPBX$s`5k6U z6lfA(afZb=!*0LIOz@oFL<;}0_YI+waGR+xd%i6On=0qDNk-xO@(>+X7SG-P7kE=< zDaej9Ql5t;BjA}{DIhD|HOeGJfnT=_9*8s94S=%-9LW5UxWoHgMY6P`8UITM~Y;o^A1kN*?? ztNN^7{`^LIA7FL-07rV=`q}Byd#?VW&y0JYI6~{^rc1xP{gG?O4?CCs0DbRjkA8mo zKtCJ3tN7ggUCmE!yQm(UUGoqG$AQm3y7FCZw&acWe)-5IeP;UUt?xE`FmNZt?JG^q zc)D-=v~*zj;-ZQLQzxJEmochtu>$#WvK77l4M&tH?Dt{bU zb+3BxyU2M*^H&1D8U&@TQja}4@c28cMkvq;zs1`Fsu=K;31>`r+Jv(vJYzx-LdIF+ GU;hWPzu9j`(WJ+88YOV zN8_QJp@Q*zG{YW^SNj>Rn-L>MjMR;{Zbs>5^ytygKKtw#-HaVOcHFpe&pr2?N~QAg z@$vQb_4D%!2nYxa3=9ei3Jwkq4Go<*apEN1Jg=LuM>APB;g4p@lqplEPMtPwT0}%d zWMt%vFTOZ?_H4CUJ$LTh`Sa($teXW37A#!2aM7Ygix)3mvSi6Cue|a*-NeSmE?v4b zE-r4_vSrJcFMsvbSAYNe-^a(tzxLW|D_5@k!yo>zN;iM};~!st{q;ZTCLtjqF)=Yo zH_6G#DJdzdSFcV@OvW^hO^#r4b(5Eum!F@% zUN;*yY}mMQPjl8cv@+-PqW8=FFM1XV1R( z-g_T>@Ig~k)46l!&g7cXDF+}zxJ<;s<-SFe8b(MQ*=UHkask3ae3 zlfV4sFW0YMzj5Qn&6_uG-MZD%(sKLu?N2}b^v<0-t*xzh@813Fv(G;N{PTPF?tSsa z7hit)#x85=9_Qs-@pIux8HvE-FM%A|NVmp4}SRJhaZ3Z@o#_o z+rx(s|Ni&C|Mb&O|Mx5{(uum{=_WUi4fUw^OFZ9Qw#7B9AwSd9rPs33gfiK{0M#W`YKTvk zt!ZvhuM$mTmA}W0m_DxMsYZ&hlaXEz0(%Y_Db0+%ab9^tF(F+(F2~cV{Gzh7W=MG2 z{HzEYNnU~7nY3M(hpP9?7;Gf9@E!89+A*capbd5@;h&zZjgy-W9-}_B-@)6((R4_B zi{m_p#xFLHG;KDhd|SS5po8gywt+I&Zb1>r!+tm2Bl^zq?MA~bLU&HDUE6oh+%rRL z<@*1?HTZ`r6bdINC%qHk=WqP-b3mVe903?Q1^6qD0~$ILgeL-yf=7qIu=a<57o7t5 zii3d80-OUl1aJiCp8_}nnE&zP$AkZnkdO(w!6`t4vw((91boGrKnDU&0~`Uw|BM+k zX3m`X(n~KzMMce-GiTnsc{l>1qoZ*M#Kgq#5kRK^9|U{~&=Ig=#R}mmzy|@J0^pyI z0GtCj1?V8?>?{x-2Ye#nSiqq`gOdTr0-Xss4R99V2q-8hC@d@l|68|iEh{VAzJ2?y zUAy+~-CI*rvw#17908bv2M@mW)?0K6;0OT!@4ovkj(}swj^Px*hzUGJPJ#E| ze;)?{odSFWT)K4WH#`NT=M8!a0Jn7n;8RTAjvd-`!Y}cx2>_R`$;&izG+tDbP?qNM ztm+f#^o2edR%WSQOA9&=a>5UO@sXs9QOB5f?b=nTRCb8@FJv5mGvg3?mU$uLK>Lx_KLfN$=pRY^ z&wn!G_zN&+sEKQqd6CAGy0f(V`};%PF#w!29++dG^fW+TNIhUD#)Wjh@WKmFcK{B7 zC%~ccBF2F^#2y3KnRgNCEcQ$~BwvI%>pestl258n)Qfl*%0D~+8~_b`fW8$V(g8Sx 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 Se*#Z`0#APePk#ai2LA_>!e*ub literal 0 HcmV?d00001 diff --git a/stylish.safariextension/manage.html b/stylish.safariextension/manage.html index 09fa3f6..e0d1018 100644 --- a/stylish.safariextension/manage.html +++ b/stylish.safariextension/manage.html @@ -3,8 +3,8 @@ Styles manager - + diff --git a/stylish.safariextension/search.html b/stylish.safariextension/search.html index d9729f0..0838844 100644 --- a/stylish.safariextension/search.html +++ b/stylish.safariextension/search.html @@ -3,8 +3,8 @@ Search user styles - + diff --git a/stylish.safariextension/settings.html b/stylish.safariextension/settings.html index 2c30e98..643647c 100644 --- a/stylish.safariextension/settings.html +++ b/stylish.safariextension/settings.html @@ -1,15 +1,16 @@ + Stylish Settings - + - +
-
Import/Export Stylesβ
+
Import/Export Styles + β +
@@ -61,27 +66,35 @@

Stylish

- +
- +
Extension settings

- +

- + +

+

+

- +
- + + \ No newline at end of file