├── DESCRIPTION.txt ├── background.html ├── css ├── options.css └── picker │ ├── colorpicker.css │ └── layout.css ├── img ├── bg.png ├── icons │ ├── icon128.png │ ├── icon16.png │ ├── icon19.png │ ├── icon19_update.png │ └── icon48.png ├── picker │ ├── blank.gif │ ├── colorpicker_background.png │ ├── colorpicker_hex.png │ ├── colorpicker_hsb_b.png │ ├── colorpicker_hsb_h.png │ ├── colorpicker_hsb_s.png │ ├── colorpicker_indic.gif │ ├── colorpicker_overlay.png │ ├── colorpicker_rgb_b.png │ ├── colorpicker_rgb_g.png │ ├── colorpicker_rgb_r.png │ ├── colorpicker_select.gif │ ├── colorpicker_submit.png │ ├── custom_background.png │ ├── custom_hex.png │ ├── custom_hsb_b.png │ ├── custom_hsb_h.png │ ├── custom_hsb_s.png │ ├── custom_indic.gif │ ├── custom_rgb_b.png │ ├── custom_rgb_g.png │ ├── custom_rgb_r.png │ ├── custom_submit.png │ ├── select.png │ ├── select2.png │ └── slider.png └── screens │ ├── BTN.png │ ├── backC.png │ ├── borders.png │ ├── cbar.png │ ├── cbarM.png │ ├── favicon.png │ ├── footer.png │ ├── gbar.png │ ├── gbarB.png │ ├── gbarH.png │ ├── gbarO.png │ ├── h_side.png │ ├── h_tips.png │ ├── header.png │ ├── help.png │ ├── i_break.png │ ├── i_email.png │ ├── i_footer.png │ ├── i_like.png │ ├── i_note.png │ ├── i_share.png │ ├── i_star.png │ ├── i_tags.png │ ├── i_text.png │ ├── i_unread.png │ ├── linkC.png │ ├── logo.png │ ├── logoH.png │ ├── mricon.png │ ├── n_all.png │ ├── n_browse.png │ ├── n_explore.png │ ├── n_follow.png │ ├── n_home.png │ ├── n_icons.png │ ├── n_manage.png │ ├── n_na.png │ ├── n_new.png │ ├── n_notes.png │ ├── n_read.png │ ├── n_share.png │ ├── n_shareS.png │ ├── n_star.png │ ├── n_trends.png │ ├── n_your.png │ ├── nav.png │ ├── navA.png │ ├── out.png │ ├── s_all.png │ ├── s_button.png │ ├── s_filter.png │ ├── settings.png │ ├── t_el.png │ ├── t_refresh.png │ ├── t_title.png │ ├── t_top.png │ ├── t_view.png │ └── user.png ├── js ├── active.js ├── favicon.js ├── jquery-1.4.4.min.js ├── options.js ├── picker │ ├── colorpicker.js │ ├── eye.js │ ├── layout.js │ └── utils.js ├── stylesheet.js └── voice.js ├── manifest.json ├── options.html └── popup.html /DESCRIPTION.txt: -------------------------------------------------------------------------------- 1 | == ANNOUNCEMENTS == 2 | 3 | Well it's relatively stable, still not as full featured as I'd like but the word got out a bit faster than I expected 4 | Consider it tentatively out of beta. 5 | 6 | 7 | == WHAT DOES IT DO? == 8 | 9 | It is a personalized solution for those who are tired of useless and distracting elements in the Google Reader interface. 10 | It removes as much or as little as you want. It also adds functionality if you so choose. 11 | Look around the options page to see what it does first hand. Link below. 12 | 13 | 14 | == PERMISSIONS == 15 | 16 | Learn more about Chrome Extension permissions here: http://www.google.com/support/chrome/bin/answer.py?hl=en&answer=186213 17 | If you look as the permissions required by similar extensions in the Web Store, you will see that they are exactly the same 18 | so before you make assumptions based on two short and broad statements, please read the following: 19 | 20 | == "tabs" 21 | * This permissions results in the "This extensions can access your browsing history" warning. 22 | * I *NEVER* access your browsing history. 23 | * I need this permission to open tabs. I use this to open the options page on major updates. 24 | * This permission is also used to refresh the Google Calendar tab when you save your settings. 25 | == "bookmarks" 26 | * This permission results in the "This item can access your bookmars" warning. 27 | * I *NEVER* access, read, modify, store, or transmit any of bookmarks. 28 | * I need this permission to create a bookmark that is used to sync settings accross computers. 29 | == "http://*google.com/reader/*", "https://*google.com/reader/*" 30 | * This permission results in the "This extension can access your data on google.com/calendar" warning. 31 | * I *NEVER* access, read, store, or transmit your personal data. 32 | * I need this permission to run user scripts behind specific pages in the browser. 33 | * These scripts inject Javascript and CSS into Google Reader to enhance functionality and hide elements 34 | 35 | Still don't trust me? Go to [https://github.com/anstosa/Minimalist-Google-Reader] to see the entire source code. 36 | 37 | 38 | == OPTIONS == 39 | 40 | The Options page is easy to use and interactive features: 41 | * Screenshots when you mouseover options so you know what you're changing 42 | * Organized tabbed navigation 43 | * See it in action here: [http://www.anselsantosa.com/sites/MinimalistGoogleReader/options.html] 44 | 45 | The following elements can be modified individually: 46 | == GENERAL 47 | * Hide Minimalist for Google Reader options icon 48 | * Show favicon counter 49 | * Open items in background with [ v ] 50 | * Show transition animations 51 | * Rounded corners on input fields and textareas 52 | * Custom CSS input 53 | == THEME 54 | * Customize background color 55 | * Customize border color 56 | * Customize link color 57 | * Customize current item highlight 58 | * Customize button colors 59 | == GOOGLE BAR 60 | * Hide Google bar [click to toggle when hidden] 61 | * Make Google bar invisible until hover 62 | * Hide background & border 63 | * Hide Google links 64 | * Replace Google links with custom menu 65 | * Hide logged in 66 | * Hide Labs icon 67 | * Hide Settings link 68 | * Hide Help link 69 | * Hide Sign out link 70 | == HEADER 71 | * Hide header [click to toggle when hidden] 72 | * Hide logo 73 | * Use custom logo 74 | * Hide all search 75 | * Hide search filter dropdown 76 | * Hide search button 77 | == MAIN 78 | * Hide title bar 79 | * Hide expanded/list options 80 | * Hide toolbar 81 | * Hide new/all options 82 | * Hide Mark all as read button 83 | * Hide Refresh button 84 | * Hide view settings 85 | * Hide viewer footer 86 | * Hide Home sidebar 87 | * Hide Home tips 88 | * Hide Home Reader Blog 89 | * Hide Home Footer 90 | * Custom item body width 91 | * Hide break-out icon 92 | * Hide item footer 93 | * Hide footer text 94 | * Hide Add star 95 | * Hide Like 96 | * Hide Share 97 | * Hide Share with note 98 | * Hide Email 99 | * Hide Keep unread 100 | * Hide Edit tags 101 | == NAVIGATION 102 | * Hide Add a subscription button 103 | * Hide navigation 104 | * Custom nav width 105 | * Hide Home section 106 | * Hide icons 107 | * Dim icons 108 | * Hide All items link 109 | * Hide Starred items link 110 | * Hide Your stuff section 111 | * Hide Shared items 112 | * Hide Notes 113 | * Hide Trends 114 | * Hide Browse 115 | * Hide People you follow section 116 | * Hide new comments icon 117 | * Hide Sharing settings link 118 | * Hide Explore section 119 | * Hide Manage subscriptions 120 | == MORE? 121 | * Leave feature suggestions in the Issue Tracker: [http://code.google.com/p/minimalist-google-reader/issues] 122 | 123 | 124 | == HOW DO I WORK IT? == 125 | 126 | All the instructions you need are on the support page: 127 | [http://code.google.com/p/minimalist-google-reader/wiki/Support] 128 | 129 | 130 | == ISSUES TRACKING == 131 | 132 | I test as thoroughly as I can before each release, but bugs are bound to get through. 133 | Read, track, and submit bugs in the Issue Tracker: 134 | [http://code.google.com/p/minimalist-google-reader/issues] 135 | 136 | 137 | == QUESTION? == 138 | 139 | * Ping me on Twitter: @anstosa 140 | * Email me: ansel@anselsantosa.com 141 | 142 | 143 | == COMING SOON == 144 | 145 | Want to recommend a feature? Submit it in the Issues Tracker: 146 | [http://code.google.com/p/minimalist-google-reader/issues] 147 | 148 | 149 | == CHANGELOG == 150 | 151 | == 0.5.7 [8 APR] 152 | * Fixed: Check for old Google Bar not working 153 | * Fixed: Custom settings fields not loading from memory 154 | * Fixed: Accent color not applied to expanded item header and footer in list view 155 | == 0.5.6 [24 MAR] 156 | * Fixed: Header and Google bar toggle off automatically in full-screen mode 157 | == 0.5.5 [19 MAR] 158 | * Fixed: Top margin errors on resize 159 | * Changed: URL bar icons are smaller and lighter to not be intrusive 160 | == 0.5.4 [18 MAR] 161 | * Changed: Logos to comply with Google's branding guidelines 162 | == 0.5.3 [16 MAR] 163 | * Fixed: Google Bar features incompatible with new Google Bar 164 | == 0.5.2 [8 MAR] 165 | * Fixed: Mangage and sharing settings links not hiding. 166 | * Fixed: Item footer not hiding in list view 167 | * Fixed: Top item in list view not clickable 168 | == 0.5.1 [5 MAR] 169 | * Added: Hide Home Reader Blog 170 | * Added: Hide Home Footer 171 | * Added: [ v ] opens items in background tabs 172 | * Added: Custom item body width 173 | * Added: Dim icons until mouseover 174 | * Improved: Opening links in background doesn't flash the page 175 | * Fixed: Menu dropdown icon hidden in subscriptions 176 | * Fixed: Broken links in options 177 | * Fixed: Break-out icon not hiding 178 | * Fixed: Broken hover images in options 179 | == 0.5.0 [4 MAR] 180 | * First! 181 | 182 | 183 | == CREDITS == 184 | 185 | Most of Minimalist for Google Reader is written from the ground-up but some things are just perfect already: 186 | * favicon unread counter by Peter Wooley 187 | Full details on the About page: [http://www.anselsantosa.com/sites/MinimalistGoogleReader/options.html#abo] 188 | 189 | 190 | == LEGAL == 191 | 192 | I am not a Google Employee or officially affiliated with Google in any way. This extension is not endorsed by Google. 193 | Google, Google Reader, and the Google Reader logo are trademarks of Google Inc. 194 | Use of these trademarks is subject to Google Permissions. -------------------------------------------------------------------------------- /background.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 81 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /css/options.css: -------------------------------------------------------------------------------- 1 | * { 2 | -webkit-transition-property: height, background-color; 3 | -webkit-transition-duration: .15s; 4 | -webkit-transition-timing-function: ease-out; 5 | } 6 | body { 7 | background-color: #F2F2F2; 8 | color: #000; 9 | font-size: .75em; 10 | margin: 0; 11 | font-family: Helvetica, 'Trebuchet MS', sans-serif; 12 | } 13 | #OPTwrap { 14 | width: 800px; 15 | height: 100%; 16 | overflow: hidden; 17 | } 18 | #OPTside { 19 | background: url("../img/bg.png") repeat-x #222; 20 | text-align: right; 21 | position: fixed; 22 | top: 0; 23 | left: 0; 24 | float: left; 25 | width: 250px; 26 | height: 100%; 27 | overflow: auto; 28 | } 29 | #OPTside::-webkit-scrollbar { 30 | width: 0px; 31 | } 32 | #announce, #refresh, #refreshEI, #easterEgg_on, #easterEgg_off { 33 | display: none; 34 | color: #fff; 35 | margin-top: 10px; 36 | padding: 7px 20px 7px 0; 37 | background-color: rgba(200,200,200,.25); 38 | border-top: 1px solid #ccc; 39 | border-bottom: 1px solid #ccc; 40 | -webkit-box-shadow: 0 0 10px rgba(0,0,0,.5); 41 | } 42 | #refresh a, #refreshEI a { 43 | color: #ddd; 44 | } 45 | #refresh a:hover, #refreshEI a:hover { 46 | color: #fff; 47 | } 48 | #OPTside ul { 49 | list-style: none; 50 | padding: 0; 51 | } 52 | #OPTside li a { 53 | display: block; 54 | padding: 8px 20px 8px 0; 55 | color: #fff; 56 | text-decoration: none; 57 | } 58 | #OPTside li a.current { 59 | font-weight: bold; 60 | padding: 7px 20px 7px 0; 61 | border-top: 1px solid #ccc; 62 | border-bottom: 1px solid #ccc; 63 | background-color: rgba(0,153,255,.5) !important; 64 | color: #fff; 65 | text-decoration: none; 66 | } 67 | #OPTside li a:hover { 68 | background-color: rgba(200,200,200,.25); 69 | } 70 | .OPTmain { 71 | background-color: #F2F2F2; 72 | float: left; 73 | display: none; 74 | width: 529px; 75 | z-index: 1; 76 | position: absolute; 77 | top: 0; 78 | left: 250px; 79 | padding: 0 0 0 20px; 80 | height: 100%; 81 | -webkit-box-shadow: -30px -50px 30px -30px rgba(0,0,0,.85); 82 | } 83 | section { 84 | border-top: 1px solid #ccc; 85 | padding: 15px 0; 86 | overflow: hidden; 87 | } 88 | section > div { 89 | float: left; 90 | width: 379px; 91 | } 92 | .OPTmain ul { 93 | -webkit-margin-before: 0 !important; 94 | } 95 | p { 96 | margin: 0 0 10px 0; 97 | } 98 | h1, h2 { 99 | font-weight: normal; 100 | font-family: 'Raleway', Helvetica, 'Trebuchet MS', sans-serif; 101 | } 102 | h1 { 103 | color: #fff; 104 | font-size: 3em; 105 | margin: 10px 20px 10px 0; 106 | text-shadow: 0 0 1px #bbb; 107 | } 108 | h1.dark { 109 | color: #000; 110 | text-shadow: 0 0 1px #555; 111 | display: block; 112 | margin: 10px 0 11px 0; 113 | } 114 | h1 span { 115 | color: #aaa; 116 | text-shadow: 0 0 1px #eee; 117 | } 118 | h2 { 119 | color: #eee; 120 | text-shadow: 0 0 1px #ccc; 121 | font-size: 2.25em; 122 | margin: 30px 0 10px -15px; 123 | padding-bottom: 3px; 124 | border-bottom: 1px solid #eee; 125 | } 126 | h3 { 127 | font-size: 1em; 128 | font-family: 'Nobile', Helvetica, 'Trebuchet MS', sans-serif; 129 | margin: 0; 130 | width: 150px; 131 | float: left; 132 | display: block; 133 | color: #000; 134 | } 135 | table { 136 | font-size: 1em; 137 | } 138 | table td:first-child { 139 | padding-right: 5px; 140 | } 141 | table input.field { 142 | margin-left: 10px; 143 | } 144 | .column{ 145 | float: left; 146 | width: 50%; 147 | margin-bottom: 15px; 148 | } 149 | input[type = 'button'], .button { 150 | padding: 3px 20px; 151 | -webkit-border-radius: 2px; 152 | border-top: 1px solid #fff; 153 | border-left: 1px solid #fff; 154 | border-bottom: 1px solid #444; 155 | border-right: 1px solid #444; 156 | background: -webkit-gradient(linear, left bottom, left top, from(rgb(150,150,150)), to(rgb(200,200,200))); 157 | } 158 | input[type = 'button']:hover, .button:hover { 159 | background: -webkit-gradient(linear, left bottom, left top, from(rgb(150,150,150)), to(rgb(150,150,150))); 160 | } 161 | input[type = 'button']:active, .button:active { 162 | border-top: 1px solid #444; 163 | border-left: 1px solid #444; 164 | border-bottom: 1px solid #fff; 165 | border-right: 1px solid #fff; 166 | background: -webkit-gradient(linear, left top, left bottom, from(rgb(150,150,150)), to(rgb(200,200,200))); 167 | } 168 | input[type = 'button'].red { 169 | color: #fff; 170 | background: -webkit-gradient(linear, left bottom, left top, from(rgb(150,0,0)), to(rgb(200,0,0))); 171 | } 172 | input[type = 'button'].red:hover { 173 | background: -webkit-gradient(linear, left bottom, left top, from(rgb(200,0,0)), to(rgb(200,0,0))); 174 | } 175 | input[type = 'button'].red:active { 176 | background: -webkit-gradient(linear, left top, left bottom, from(rgb(150,0,0)), to(rgb(200,0,0))); 177 | } 178 | .button { 179 | font-weight: bold; 180 | text-decoration: none; 181 | background: -webkit-gradient(linear, left top, left bottom, from(rgba(0,153,255,.5)), to(rgba(0,153,255,1))); 182 | padding: 7px 30px; 183 | } 184 | .button:hover { 185 | color: #000; 186 | background: rgba(0,153,255,1); 187 | } 188 | .button:active { 189 | background: -webkit-gradient(linear, left bottom, left top, from(rgba(0,153,255,.5)), to(rgba(0,153,255,1))); 190 | } 191 | span.note, span.indent { 192 | margin-left: 25px; 193 | } 194 | span.note, span.note a { 195 | color: #666; 196 | font-style: italic; 197 | } 198 | span.note a:hover { 199 | color: #0099ff; 200 | } 201 | div.indent { 202 | -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,.75) inset; 203 | background-color: #d5d5d5; 204 | } 205 | div.indent.expanded { 206 | padding: 0 0 20px 25px; 207 | margin: 10px 0 10px; 208 | height: 275px; 209 | 210 | } 211 | div#attachCtable.indent.expanded { 212 | height: 300px; 213 | } 214 | .indent input.field { 215 | margin: 2px 2px 2px 0; 216 | } 217 | div.indent.compressed { 218 | height: 0; 219 | padding: 0; 220 | margin: 0; 221 | } 222 | div.indent.compressed table { 223 | display: none; 224 | } 225 | li { 226 | list-style-type: square; 227 | } 228 | input.field, textarea { 229 | padding: 0 2px 2px 2px; 230 | margin: 2px 0 2px 25px; 231 | outline: none; 232 | border: 1px solid #333; 233 | } 234 | input.field:hover, input.field:focus, textarea:hover, textarea:focus { 235 | background: #eee; 236 | color: #222; 237 | outline: none; 238 | } 239 | input.field:focus, textarea:focus { 240 | background: #fff; 241 | color: #000; 242 | -webkit-box-shadow:0 0 10px rgba(0,153,255,.5); 243 | border: 1px solid #0099ff; 244 | } 245 | textarea { 246 | margin-left: 2px; 247 | } 248 | a { 249 | 250 | color: #000; 251 | } 252 | a:hover { 253 | color: #0099ff; 254 | text-decoration: none; 255 | } 256 | #easterEggLink { 257 | text-decoration: none; 258 | } 259 | label:hover { 260 | color: #0099ff; 261 | cursor: pointer; 262 | text-decoration: underline; 263 | } 264 | #preview { 265 | position: absolute; 266 | background-color: #fff; 267 | padding: 15px; 268 | display: none; 269 | z-index: 999; 270 | -webkit-box-shadow: 0 0 20px rgba(0,0,0,.75); 271 | } 272 | #preview span { 273 | display: block; 274 | margin-top: 15px; 275 | color: #000; 276 | } 277 | #preview img { 278 | border: 1px solid #000; 279 | } 280 | #linkCLR, #backCLR, #borderCLR, #todayCLR,#Hcolor, #BTNcolor, #BTNborder, #BTNbottom, #BTNtop { 281 | position: relative; 282 | display: inline-block; 283 | width: 50px; 284 | margin-bottom: -4px; 285 | margin-left: 10px; 286 | height: 15px; 287 | border: 1px solid #000; 288 | cursor: pointer; 289 | } 290 | #linkCLR div, #backCLR div, #borderCLR div, #todayCLR div, #Hcolor div, #BTNcolor div, #BTNborder div, #BTNbottom div, #BTNtop div { 291 | width: 50px; 292 | height: 15px; 293 | } 294 | .J-Zh-I { 295 | margin: 5px 0 5px 5px; 296 | padding: 3px 8px; 297 | width: 82px; 298 | text-align: center; 299 | vertical-align: middle; 300 | font: 75% arial,sans-serif; 301 | font-size: 12px; 302 | color: #000; 303 | border: 1px solid #BBB; 304 | -webkit-border-radius: 3px; 305 | background: -webkit-gradient(linear,0% 40%,0% 70%,from(#F9F9F9),to(#E3E3E3)); 306 | } -------------------------------------------------------------------------------- /css/picker/colorpicker.css: -------------------------------------------------------------------------------- 1 | .colorpicker { 2 | width: 356px; 3 | height: 176px; 4 | overflow: hidden; 5 | position: absolute; 6 | background: url(../../img/picker/colorpicker_background.png); 7 | font-family: Arial, Helvetica, sans-serif; 8 | display: none; 9 | z-index: 999; 10 | } 11 | .colorpicker_color { 12 | width: 150px; 13 | height: 150px; 14 | left: 14px; 15 | top: 13px; 16 | position: absolute; 17 | background: #f00; 18 | overflow: hidden; 19 | cursor: crosshair; 20 | } 21 | .colorpicker_color div { 22 | position: absolute; 23 | top: 0; 24 | left: 0; 25 | width: 150px; 26 | height: 150px; 27 | background: url(../../img/picker/colorpicker_overlay.png); 28 | } 29 | .colorpicker_color div div { 30 | position: absolute; 31 | top: 0; 32 | left: 0; 33 | width: 11px; 34 | height: 11px; 35 | overflow: hidden; 36 | background: url(../../img/picker/colorpicker_select.gif); 37 | margin: -5px 0 0 -5px; 38 | } 39 | .colorpicker_hue { 40 | position: absolute; 41 | top: 13px; 42 | left: 171px; 43 | width: 35px; 44 | height: 150px; 45 | cursor: n-resize; 46 | } 47 | .colorpicker_hue div { 48 | position: absolute; 49 | width: 35px; 50 | height: 9px; 51 | overflow: hidden; 52 | background: url(../../img/picker/colorpicker_indic.gif) left top; 53 | margin: -4px 0 0 0; 54 | left: 0px; 55 | } 56 | .colorpicker_new_color { 57 | position: absolute; 58 | width: 60px; 59 | height: 30px; 60 | left: 213px; 61 | top: 13px; 62 | background: #f00; 63 | } 64 | .colorpicker_current_color { 65 | position: absolute; 66 | width: 60px; 67 | height: 30px; 68 | left: 283px; 69 | top: 13px; 70 | background: #f00; 71 | } 72 | .colorpicker input { 73 | background-color: transparent; 74 | border: 1px solid transparent; 75 | position: absolute; 76 | font-size: 10px; 77 | font-family: Arial, Helvetica, sans-serif; 78 | color: #898989; 79 | top: 4px; 80 | right: 11px; 81 | text-align: right; 82 | margin: 0; 83 | padding: 0; 84 | height: 11px; 85 | } 86 | .colorpicker_hex { 87 | position: absolute; 88 | width: 72px; 89 | height: 22px; 90 | background: url(../../img/picker/colorpicker_hex.png) top; 91 | left: 212px; 92 | top: 142px; 93 | } 94 | .colorpicker_hex input { 95 | right: 6px; 96 | } 97 | .colorpicker_field { 98 | height: 22px; 99 | width: 62px; 100 | background-position: top; 101 | position: absolute; 102 | } 103 | .colorpicker_field span { 104 | position: absolute; 105 | width: 12px; 106 | height: 22px; 107 | overflow: hidden; 108 | top: 0; 109 | right: 0; 110 | cursor: n-resize; 111 | } 112 | .colorpicker_rgb_r { 113 | background-image: url(../../img/picker/colorpicker_rgb_r.png); 114 | top: 52px; 115 | left: 212px; 116 | } 117 | .colorpicker_rgb_g { 118 | background-image: url(../../img/picker/colorpicker_rgb_g.png); 119 | top: 82px; 120 | left: 212px; 121 | } 122 | .colorpicker_rgb_b { 123 | background-image: url(../../img/picker/colorpicker_rgb_b.png); 124 | top: 112px; 125 | left: 212px; 126 | } 127 | .colorpicker_hsb_h { 128 | background-image: url(../../img/picker/colorpicker_hsb_h.png); 129 | top: 52px; 130 | left: 282px; 131 | } 132 | .colorpicker_hsb_s { 133 | background-image: url(../../img/picker/colorpicker_hsb_s.png); 134 | top: 82px; 135 | left: 282px; 136 | } 137 | .colorpicker_hsb_b { 138 | background-image: url(../../img/picker/colorpicker_hsb_b.png); 139 | top: 112px; 140 | left: 282px; 141 | } 142 | .colorpicker_submit { 143 | position: absolute; 144 | width: 22px; 145 | height: 22px; 146 | background: url(../../img/picker/colorpicker_submit.png) top; 147 | left: 322px; 148 | top: 142px; 149 | overflow: hidden; 150 | } 151 | .colorpicker_focus { 152 | background-position: center; 153 | } 154 | .colorpicker_hex.colorpicker_focus { 155 | background-position: bottom; 156 | } 157 | .colorpicker_submit.colorpicker_focus { 158 | background-position: bottom; 159 | } 160 | .colorpicker_slider { 161 | background-position: bottom; 162 | } 163 | -------------------------------------------------------------------------------- /css/picker/layout.css: -------------------------------------------------------------------------------- 1 | body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { 2 | margin:0; 3 | padding:0; 4 | } 5 | table { 6 | border-collapse:collapse; 7 | border-spacing:0; 8 | } 9 | fieldset,img { 10 | border:0; 11 | } 12 | address,caption,cite,code,dfn,em,strong,th,var { 13 | font-style:normal; 14 | font-weight:normal; 15 | } 16 | ol,ul { 17 | list-style:none; 18 | } 19 | caption,th { 20 | text-align:left; 21 | } 22 | h1,h2,h3,h4,h5,h6 { 23 | font-size:100%; 24 | font-weight:normal; 25 | } 26 | q:before,q:after { 27 | content:''; 28 | } 29 | abbr,acronym { border:0; 30 | } 31 | html, body { 32 | background-color: #fff; 33 | font-family: Arial, Helvetica, sans-serif; 34 | font-size: 12px; 35 | line-height: 18px; 36 | color: #52697E; 37 | } 38 | body { 39 | text-align: center; 40 | overflow: auto; 41 | } 42 | .wrapper { 43 | width: 700px; 44 | margin: 0 auto; 45 | text-align: left; 46 | } 47 | h1 { 48 | font-size: 21px; 49 | height: 47px; 50 | line-height: 47px; 51 | text-transform: uppercase; 52 | } 53 | .navigationTabs { 54 | height: 23px; 55 | line-height: 23px; 56 | border-bottom: 1px solid #ccc; 57 | } 58 | .navigationTabs li { 59 | float: left; 60 | height: 23px; 61 | line-height: 23px; 62 | padding-right: 3px; 63 | } 64 | .navigationTabs li a{ 65 | float: left; 66 | dispaly: block; 67 | height: 23px; 68 | line-height: 23px; 69 | padding: 0 10px; 70 | overflow: hidden; 71 | color: #52697E; 72 | background-color: #eee; 73 | position: relative; 74 | text-decoration: none; 75 | } 76 | .navigationTabs li a:hover { 77 | background-color: #f0f0f0; 78 | } 79 | .navigationTabs li a.active { 80 | background-color: #fff; 81 | border: 1px solid #ccc; 82 | border-bottom: 0px solid; 83 | } 84 | .tabsContent { 85 | border: 1px solid #ccc; 86 | border-top: 0px solid; 87 | width: 698px; 88 | overflow: hidden; 89 | } 90 | .tab { 91 | padding: 16px; 92 | display: none; 93 | } 94 | .tab h2 { 95 | font-weight: bold; 96 | font-size: 16px; 97 | } 98 | .tab h3 { 99 | font-weight: bold; 100 | font-size: 14px; 101 | margin-top: 20px; 102 | } 103 | .tab p { 104 | margin-top: 16px; 105 | clear: both; 106 | } 107 | .tab ul { 108 | margin-top: 16px; 109 | list-style: disc; 110 | } 111 | .tab li { 112 | margin: 10px 0 0 35px; 113 | } 114 | .tab a { 115 | color: #8FB0CF; 116 | } 117 | .tab strong { 118 | font-weight: bold; 119 | } 120 | .tab pre { 121 | font-size: 11px; 122 | margin-top: 20px; 123 | width: 668px; 124 | overflow: auto; 125 | clear: both; 126 | } 127 | .tab table { 128 | width: 100%; 129 | } 130 | .tab table td { 131 | padding: 6px 10px 6px 0; 132 | vertical-align: top; 133 | } 134 | .tab dt { 135 | margin-top: 16px; 136 | } 137 | 138 | #picker { 139 | position: relative; 140 | width: 36px; 141 | height: 36px; 142 | background: url(../../img/picker/select.png); 143 | } 144 | #picker div { 145 | position: absolute; 146 | top: 3px; 147 | left: 3px; 148 | width: 30px; 149 | height: 30px; 150 | background: url(../../img/picker/select.png) center; 151 | } 152 | #picker2 { 153 | position: absolute; 154 | top: 0; 155 | left: 0; 156 | width: 36px; 157 | height: 36px; 158 | background: url(../../img/picker/select2.png); 159 | } 160 | #picker2 div { 161 | position: absolute; 162 | top: 4px; 163 | left: 4px; 164 | width: 28px; 165 | height: 28px; 166 | background: url(../../img/picker/select2.png) center; 167 | } 168 | #pickerHolder2 { 169 | top: 32px; 170 | left: 0; 171 | width: 356px; 172 | height: 0; 173 | overflow: hidden; 174 | position: absolute; 175 | } 176 | #pickerHolder2 .colorpicker { 177 | background-image: url(../../img/picker/custom_background.png); 178 | position: absolute; 179 | bottom: 0; 180 | left: 0; 181 | } 182 | #pickerHolder2 .colorpicker_hue div { 183 | background-image: url(../../img/picker/custom_indic.gif); 184 | } 185 | #pickerHolder2 .colorpicker_hex { 186 | background-image: url(../../img/picker/custom_hex.png); 187 | } 188 | #pickerHolder2 .colorpicker_rgb_r { 189 | background-image: url(../../img/picker/custom_rgb_r.png); 190 | } 191 | #pickerHolder2 .colorpicker_rgb_g { 192 | background-image: url(../../img/picker/custom_rgb_g.png); 193 | } 194 | #pickerHolder2 .colorpicker_rgb_b { 195 | background-image: url(../../img/picker/custom_rgb_b.png); 196 | } 197 | #pickerHolder2 .colorpicker_hsb_s { 198 | background-image: url(../../img/picker/custom_hsb_s.png); 199 | display: none; 200 | } 201 | #pickerHolder2 .colorpicker_hsb_h { 202 | background-image: url(../../img/picker/custom_hsb_h.png); 203 | display: none; 204 | } 205 | #pickerHolder2 .colorpicker_hsb_b { 206 | background-image: url(../../img/picker/custom_hsb_b.png); 207 | display: none; 208 | } 209 | #pickerHolder2 .colorpicker_submit { 210 | background-image: url(../../img/picker/custom_submit.png); 211 | } 212 | #pickerHolder2 .colorpicker input { 213 | color: #778398; 214 | } 215 | #customWidget { 216 | position: relative; 217 | height: 36px; 218 | } 219 | -------------------------------------------------------------------------------- /img/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/bg.png -------------------------------------------------------------------------------- /img/icons/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/icons/icon128.png -------------------------------------------------------------------------------- /img/icons/icon16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/icons/icon16.png -------------------------------------------------------------------------------- /img/icons/icon19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/icons/icon19.png -------------------------------------------------------------------------------- /img/icons/icon19_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/icons/icon19_update.png -------------------------------------------------------------------------------- /img/icons/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/icons/icon48.png -------------------------------------------------------------------------------- /img/picker/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/blank.gif -------------------------------------------------------------------------------- /img/picker/colorpicker_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_background.png -------------------------------------------------------------------------------- /img/picker/colorpicker_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_hex.png -------------------------------------------------------------------------------- /img/picker/colorpicker_hsb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_hsb_b.png -------------------------------------------------------------------------------- /img/picker/colorpicker_hsb_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_hsb_h.png -------------------------------------------------------------------------------- /img/picker/colorpicker_hsb_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_hsb_s.png -------------------------------------------------------------------------------- /img/picker/colorpicker_indic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_indic.gif -------------------------------------------------------------------------------- /img/picker/colorpicker_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_overlay.png -------------------------------------------------------------------------------- /img/picker/colorpicker_rgb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_rgb_b.png -------------------------------------------------------------------------------- /img/picker/colorpicker_rgb_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_rgb_g.png -------------------------------------------------------------------------------- /img/picker/colorpicker_rgb_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_rgb_r.png -------------------------------------------------------------------------------- /img/picker/colorpicker_select.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_select.gif -------------------------------------------------------------------------------- /img/picker/colorpicker_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/colorpicker_submit.png -------------------------------------------------------------------------------- /img/picker/custom_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_background.png -------------------------------------------------------------------------------- /img/picker/custom_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_hex.png -------------------------------------------------------------------------------- /img/picker/custom_hsb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_hsb_b.png -------------------------------------------------------------------------------- /img/picker/custom_hsb_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_hsb_h.png -------------------------------------------------------------------------------- /img/picker/custom_hsb_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_hsb_s.png -------------------------------------------------------------------------------- /img/picker/custom_indic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_indic.gif -------------------------------------------------------------------------------- /img/picker/custom_rgb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_rgb_b.png -------------------------------------------------------------------------------- /img/picker/custom_rgb_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_rgb_g.png -------------------------------------------------------------------------------- /img/picker/custom_rgb_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_rgb_r.png -------------------------------------------------------------------------------- /img/picker/custom_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/custom_submit.png -------------------------------------------------------------------------------- /img/picker/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/select.png -------------------------------------------------------------------------------- /img/picker/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/select2.png -------------------------------------------------------------------------------- /img/picker/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/picker/slider.png -------------------------------------------------------------------------------- /img/screens/BTN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/BTN.png -------------------------------------------------------------------------------- /img/screens/backC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/backC.png -------------------------------------------------------------------------------- /img/screens/borders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/borders.png -------------------------------------------------------------------------------- /img/screens/cbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/cbar.png -------------------------------------------------------------------------------- /img/screens/cbarM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/cbarM.png -------------------------------------------------------------------------------- /img/screens/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/favicon.png -------------------------------------------------------------------------------- /img/screens/footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/footer.png -------------------------------------------------------------------------------- /img/screens/gbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/gbar.png -------------------------------------------------------------------------------- /img/screens/gbarB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/gbarB.png -------------------------------------------------------------------------------- /img/screens/gbarH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/gbarH.png -------------------------------------------------------------------------------- /img/screens/gbarO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/gbarO.png -------------------------------------------------------------------------------- /img/screens/h_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/h_side.png -------------------------------------------------------------------------------- /img/screens/h_tips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/h_tips.png -------------------------------------------------------------------------------- /img/screens/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/header.png -------------------------------------------------------------------------------- /img/screens/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/help.png -------------------------------------------------------------------------------- /img/screens/i_break.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_break.png -------------------------------------------------------------------------------- /img/screens/i_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_email.png -------------------------------------------------------------------------------- /img/screens/i_footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_footer.png -------------------------------------------------------------------------------- /img/screens/i_like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_like.png -------------------------------------------------------------------------------- /img/screens/i_note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_note.png -------------------------------------------------------------------------------- /img/screens/i_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_share.png -------------------------------------------------------------------------------- /img/screens/i_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_star.png -------------------------------------------------------------------------------- /img/screens/i_tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_tags.png -------------------------------------------------------------------------------- /img/screens/i_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_text.png -------------------------------------------------------------------------------- /img/screens/i_unread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/i_unread.png -------------------------------------------------------------------------------- /img/screens/linkC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/linkC.png -------------------------------------------------------------------------------- /img/screens/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/logo.png -------------------------------------------------------------------------------- /img/screens/logoH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/logoH.png -------------------------------------------------------------------------------- /img/screens/mricon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/mricon.png -------------------------------------------------------------------------------- /img/screens/n_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_all.png -------------------------------------------------------------------------------- /img/screens/n_browse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_browse.png -------------------------------------------------------------------------------- /img/screens/n_explore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_explore.png -------------------------------------------------------------------------------- /img/screens/n_follow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_follow.png -------------------------------------------------------------------------------- /img/screens/n_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_home.png -------------------------------------------------------------------------------- /img/screens/n_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_icons.png -------------------------------------------------------------------------------- /img/screens/n_manage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_manage.png -------------------------------------------------------------------------------- /img/screens/n_na.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_na.png -------------------------------------------------------------------------------- /img/screens/n_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_new.png -------------------------------------------------------------------------------- /img/screens/n_notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_notes.png -------------------------------------------------------------------------------- /img/screens/n_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_read.png -------------------------------------------------------------------------------- /img/screens/n_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_share.png -------------------------------------------------------------------------------- /img/screens/n_shareS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_shareS.png -------------------------------------------------------------------------------- /img/screens/n_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_star.png -------------------------------------------------------------------------------- /img/screens/n_trends.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_trends.png -------------------------------------------------------------------------------- /img/screens/n_your.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/n_your.png -------------------------------------------------------------------------------- /img/screens/nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/nav.png -------------------------------------------------------------------------------- /img/screens/navA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/navA.png -------------------------------------------------------------------------------- /img/screens/out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/out.png -------------------------------------------------------------------------------- /img/screens/s_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/s_all.png -------------------------------------------------------------------------------- /img/screens/s_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/s_button.png -------------------------------------------------------------------------------- /img/screens/s_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/s_filter.png -------------------------------------------------------------------------------- /img/screens/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/settings.png -------------------------------------------------------------------------------- /img/screens/t_el.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/t_el.png -------------------------------------------------------------------------------- /img/screens/t_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/t_refresh.png -------------------------------------------------------------------------------- /img/screens/t_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/t_title.png -------------------------------------------------------------------------------- /img/screens/t_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/t_top.png -------------------------------------------------------------------------------- /img/screens/t_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/t_view.png -------------------------------------------------------------------------------- /img/screens/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anstosa/Minimalist-Google-Reader/2402e091358c08d8b985cb3cafa613e7979dec51/img/screens/user.png -------------------------------------------------------------------------------- /js/active.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Minimalist for Google Reader 3 | // @author Ansel Santosa 4 | // @namespace http://chrome.google.com/webstore 5 | // @description Features that require one time initialization on complete page load. 6 | // ==/UserScript== 7 | 8 | chrome.extension.sendRequest({elements: "o"}, function(response) { 9 | 10 | //---- VARIABLES ----// 11 | // f_* whether one-time task is done 12 | var f_guser = false; 13 | var f_user = false; 14 | var f_settings = false; 15 | var f_help = false; 16 | var f_out = false; 17 | var f_gbarToggle = false; 18 | var f_headerToggle = false; 19 | var f_navToggle = false; 20 | var f_nav = false; 21 | var hiddenG = false; 22 | var hiddenH = false; 23 | var hiddenN = false; 24 | var trying = false; 25 | var keyinit = false; 26 | var guser; 27 | var today = null; 28 | var running = false; 29 | var allow = true; 30 | var oldGbar = false; 31 | var appsinit = false; 32 | //---- END VARIABLES ----// 33 | 34 | //---- CHECK PAGE LOAD ----// 35 | function getLoad() { 36 | return document.getElementById('reading-list-selector'); 37 | } 38 | function init() { 39 | if (getLoad() == today) return; 40 | if (today != null) 41 | today.removeEventListener("DOMSubtreeModified", run, false); 42 | if ((today = getLoad()) != null) { 43 | console.log("MINIMALIST GOOGLE READER: Google Reader loaded! Work the magic..."); 44 | today.addEventListener("DOMSubtreeModified", run, false); 45 | run(); 46 | } 47 | } 48 | //---- END CHECK PAGE LOAD ----// 49 | 50 | //---- MAIN LOOP ----// 51 | function run() { 52 | // only run loop if it hasn't run this second and isn't running already 53 | if (running || !allow) return true; 54 | else { 55 | running = true; 56 | allow = false; 57 | window.setTimeout(function() { 58 | allow = true; 59 | }, 500); 60 | } 61 | // go loop go! 62 | if (document.querySelectorAll("[id = 'gbar']").length > 0 && !appsinit) { 63 | oldGbar = true; 64 | appsinit = true; 65 | } 66 | console.log("MINIMALIST GOOGLE READER: **MAIN LOOP**"); 67 | if (response.o.nav && !f_navToggle) { 68 | console.log("MINIMALIST GOOGLE READER: Adding the nav hook..."); 69 | toggleNav(); 70 | f_navToggle = true; 71 | } 72 | if (response.o.gbarH && !f_gbarToggle) { 73 | console.log("MINIMALIST GOOGLE READER: hiding Google Bar & adding the header hook..."); 74 | try { 75 | var tbar = null; 76 | if (document.getElementById("gb")) 77 | tbar = document.getElementById("gb"); 78 | else tbar = document.getElementById("gbar"); 79 | if (oldGbar) { 80 | minimalist(tbar, false, "hideG"); 81 | minimalist(tbar.nextSibling, false, "hideG"); 82 | } else minimalist(tbar, false, "hideG"); 83 | var toggleG = document.createElement("div"); 84 | toggleG.setAttribute("id", "gbarToggle"); 85 | tbar.parentNode.insertBefore(toggleG, tbar); 86 | document.getElementById('logo-container').setAttribute('style','top: 45px;') 87 | document.getElementById('search').setAttribute('style','top: 45px;'); 88 | f_gbarToggle = true; 89 | toggleHeader(); 90 | } catch (e) { console.error(e); } 91 | } 92 | if (response.o.header && !f_headerToggle) { 93 | console.log("MINIMALIST GOOGLE READER: hiding header and adding toggle..."); 94 | var head = document.getElementById("logo-container"); 95 | try { 96 | if (!response.o.gbarH) { 97 | var toggle = document.createElement("div"); 98 | toggle.setAttribute("id", "headerToggle"); 99 | head.parentNode.insertBefore(toggle, head); 100 | } 101 | if (!response.o.gbarH ) 102 | toggleHeader(); 103 | f_headerToggle = true; 104 | } catch (e) { console.error(e); } 105 | } 106 | if (!keyinit) { 107 | try { 108 | if (response.o.gbarH) { 109 | hiddenG = true; 110 | document.getElementById('gbarToggle').addEventListener("click", toggleHeader, false); 111 | } 112 | if (response.o.header) { 113 | hiddenH = true; 114 | if (!response.o.gbarH) 115 | document.getElementById('headerToggle').addEventListener("click", toggleHeader, false); 116 | } 117 | if (response.o.nav) { 118 | hiddenN = true; 119 | document.getElementById('navToggle').addEventListener("click", toggleNav, false); 120 | } 121 | keyinit = true; 122 | } catch (e) {} 123 | } 124 | if (response.o.cbar && !document.getElementById('cbarOne')) { 125 | console.log("MINIMALIST GOOGLE READER: customizing Google links..."); 126 | if (oldGbar) { 127 | try { 128 | var one = document.getElementById("gbar").childNodes[0].childNodes[0]; 129 | one.setAttribute("href", response.o.c_u_1); 130 | one.setAttribute("target", response.o.c_t_1); 131 | one.innerHTML = response.o.c_n_1; 132 | var two = document.getElementById("gbar").childNodes[0].childNodes[2]; 133 | two.setAttribute("href", response.o.c_u_2); 134 | two.setAttribute("target", response.o.c_t_2); 135 | two.innerHTML = response.o.c_n_2; 136 | var three = document.getElementById("gbar").childNodes[0].childNodes[4]; 137 | three.setAttribute("href", response.o.c_u_3); 138 | three.setAttribute("target", response.o.c_t_3); 139 | three.innerHTML = response.o.c_n_3; 140 | var four = document.getElementById("gbar").childNodes[0].childNodes[6]; 141 | four.setAttribute("href", response.o.c_u_4); 142 | four.setAttribute("target", response.o.c_t_4); 143 | four.innerHTML = response.o.c_n_4; 144 | var five = document.getElementById("gbar").childNodes[0].childNodes[8]; 145 | five.setAttribute("style", "font-weight: normal;"); 146 | five.setAttribute("class", ""); 147 | five.innerHTML = "" + response.o.c_n_5 + ""; 148 | var six = document.getElementById("gbar").childNodes[0].childNodes[10]; 149 | six.setAttribute("href", response.o.c_u_6); 150 | six.setAttribute("target", response.o.c_t_6); 151 | six.innerHTML = response.o.c_n_6; 152 | if (response.o.cbarM) { 153 | var moreD = document.querySelectorAll("#gbar div.gbm")[0]; 154 | var current = document.createElement("div"); 155 | current.setAttribute('class','gb2'); 156 | var hr = document.createElement("div"); 157 | hr.setAttribute('class','gbd'); 158 | current.appendChild(hr); 159 | moreD.insertBefore(current, moreD.firstChild); 160 | current = document.createElement("a"); 161 | current.setAttribute('target','_blank'); 162 | current.setAttribute('class','gb2'); 163 | current.setAttribute('href','http://www.google.com'); 164 | current.appendChild(document.createTextNode("Web")); 165 | moreD.insertBefore(current, moreD.firstChild); 166 | current = document.createElement("a"); 167 | current.setAttribute('target','_blank'); 168 | current.setAttribute('class','gb2'); 169 | current.setAttribute('href','http://picasaweb.google.com'); 170 | current.appendChild(document.createTextNode("Photos")); 171 | moreD.insertBefore(current, moreD.firstChild); 172 | current = document.createElement("a"); 173 | current.setAttribute('target','_blank'); 174 | current.setAttribute('class','gb2'); 175 | current.setAttribute('href','http://www.google.com/calendar'); 176 | current.appendChild(document.createTextNode("Calendar")); 177 | moreD.insertBefore(current, moreD.firstChild); 178 | current = document.createElement("a"); 179 | current.setAttribute('target','_blank'); 180 | current.setAttribute('class','gb2'); 181 | current.setAttribute('href','http://docs.google.com'); 182 | current.appendChild(document.createTextNode("Documents")); 183 | moreD.insertBefore(current, moreD.firstChild); 184 | current = document.createElement("a"); 185 | current.setAttribute('target','_blank'); 186 | current.setAttribute('class','gb2'); 187 | current.setAttribute('href','http://mail.google.com/mail'); 188 | current.appendChild(document.createTextNode("Gmail")); 189 | moreD.insertBefore(current, moreD.firstChild); 190 | } else { 191 | var more = document.getElementById("gbar").childNodes[0].childNodes[12]; 192 | more.setAttribute("style","display: none !important;"); 193 | } 194 | } catch (e) { console.error(e); } 195 | } else { 196 | try { 197 | var one = document.getElementById("gbz").childNodes[1].childNodes[0].childNodes[0]; 198 | one.setAttribute("href", response.o.c_u_1); 199 | one.setAttribute("target", response.o.c_t_1); 200 | one.setAttribute("id", "cbarOne"); 201 | one.childNodes[1].innerHTML = response.o.c_n_1; 202 | var two = document.getElementById("gbz").childNodes[1].childNodes[1].childNodes[0]; 203 | two.setAttribute("href", response.o.c_u_2); 204 | two.setAttribute("target", response.o.c_t_2); 205 | two.childNodes[1].innerHTML = response.o.c_n_2; 206 | var three = document.getElementById("gbz").childNodes[1].childNodes[2].childNodes[0]; 207 | three.setAttribute("href", response.o.c_u_3); 208 | three.setAttribute("target", response.o.c_t_3); 209 | three.childNodes[1].innerHTML = response.o.c_n_3; 210 | var four = document.getElementById("gbz").childNodes[1].childNodes[3].childNodes[0]; 211 | four.setAttribute("href", response.o.c_u_4); 212 | four.setAttribute("target", response.o.c_t_4); 213 | four.childNodes[1].innerHTML = response.o.c_n_4; 214 | var five = document.getElementById("gbz").childNodes[1].childNodes[4].childNodes[0]; 215 | five.setAttribute("href", response.o.c_u_5); 216 | five.setAttribute("target", response.o.c_t_5); 217 | five.childNodes[1].innerHTML = response.o.c_n_5; 218 | var six = document.getElementById("gbz").childNodes[1].childNodes[5].childNodes[0]; 219 | six.setAttribute("href", response.o.c_u_6); 220 | six.setAttribute("target", response.o.c_t_6); 221 | six.childNodes[1].innerHTML = response.o.c_n_6; 222 | if (response.o.cbarM) { 223 | var moreD = document.querySelectorAll("#gbz div.gbm ol")[0]; 224 | var li = document.createElement("li"); 225 | li.setAttribute("class", "gbmtc"); 226 | var current = document.createElement("div"); 227 | current.setAttribute('class','gbmt gbmh'); 228 | var hr = document.createElement("div"); 229 | hr.setAttribute('class','gbd'); 230 | li.appendChild(hr); 231 | moreD.insertBefore(li, moreD.firstChild); 232 | current = document.createElement("a"); 233 | current.setAttribute('target','_blank'); 234 | current.setAttribute('class','gbmt'); 235 | current.setAttribute('href','http://www.google.com'); 236 | current.appendChild(document.createTextNode("Web")); 237 | li = document.createElement("li"); 238 | li.setAttribute("class", "gbmtc"); 239 | li.appendChild(current); 240 | moreD.insertBefore(li, moreD.firstChild); 241 | current = document.createElement("a"); 242 | current.setAttribute('target','_blank'); 243 | current.setAttribute('class','gbmt'); 244 | current.setAttribute('href','http://picasaweb.google.com'); 245 | current.appendChild(document.createTextNode("Photos")); 246 | li = document.createElement("li"); 247 | li.setAttribute("class", "gbmtc"); 248 | li.appendChild(current); 249 | moreD.insertBefore(current, moreD.firstChild); 250 | current = document.createElement("a"); 251 | current.setAttribute('target','_blank'); 252 | current.setAttribute('class','gbmt'); 253 | current.setAttribute('href','http://www.google.com/reader'); 254 | current.appendChild(document.createTextNode("Reader")); 255 | li = document.createElement("li"); 256 | li.setAttribute("class", "gbmtc"); 257 | li.appendChild(current); 258 | moreD.insertBefore(current, moreD.firstChild); 259 | current = document.createElement("a"); 260 | current.setAttribute('target','_blank'); 261 | current.setAttribute('class','gbmt'); 262 | current.setAttribute('href','http://docs.google.com'); 263 | current.appendChild(document.createTextNode("Documents")); 264 | li = document.createElement("li"); 265 | li.setAttribute("class", "gbmtc"); 266 | li.appendChild(current); 267 | moreD.insertBefore(current, moreD.firstChild); 268 | current = document.createElement("a"); 269 | current.setAttribute('target','_blank'); 270 | current.setAttribute('class','gbmt'); 271 | current.setAttribute('href','http://www.google.com/calendar'); 272 | current.appendChild(document.createTextNode("Calendar")); 273 | li = document.createElement("li"); 274 | li.setAttribute("class", "gbmtc"); 275 | li.appendChild(current); 276 | moreD.insertBefore(current, moreD.firstChild); 277 | } else { 278 | var more = document.getElementById("gbz").childNodes[1].childNodes[6]; 279 | more.setAttribute("style","display: none !important;"); 280 | } 281 | } catch (e) { console.error(e); } 282 | } 283 | } 284 | if ( !f_guser && (response.o.user || response.o.settings || response.o.help || response.o.out)) { 285 | console.log("MINIMALIST GOOGLE READER: targetting Google User bar..."); 286 | try { 287 | if (document.getElementById("guser")) { 288 | guser = document.getElementById("guser").firstChild; 289 | f_guser = true; 290 | } 291 | } catch (e) { console.error(e); } 292 | } 293 | if (response.o.user && !f_user && f_guser) { 294 | console.log("MINIMALIST GOOGLE READER: hiding signed in..."); 295 | try { 296 | var user = guser.childNodes[2]; 297 | user.setAttribute("style","display: none !important;"); 298 | user.parentNode.removeChild(user.nextSibling); 299 | f_user = true; 300 | } catch (e) { console.error(e); } 301 | } 302 | if (response.o.settings && !f_settings && f_guser) { 303 | console.log("MINIMALIST GOOGLE READER: hiding settings..."); 304 | try { 305 | var settings = guser.childNodes[5]; 306 | settings.setAttribute("style","display: none !important;"); 307 | settings.parentNode.removeChild(settings.nextSibling); 308 | f_settings = true; 309 | } catch (e) { console.error(e); } 310 | } 311 | if (response.o.help && !f_help && f_guser) { 312 | console.log("MINIMALIST GOOGLE READER: hiding help..."); 313 | try { 314 | var help = guser.childNodes[7]; 315 | help.setAttribute("style","display: none !important;"); 316 | help.parentNode.removeChild(help.nextSibling); 317 | f_help = true; 318 | } catch (e) { console.error(e); } 319 | } 320 | if (response.o.out && !f_out && f_guser) { 321 | console.log("MINIMALIST GOOGLE READER: hiding sign out..."); 322 | try { 323 | var out = guser.childNodes[9]; 324 | out.setAttribute("style","display: none !important;"); 325 | out.parentNode.removeChild(out.previousSibling); 326 | f_out = true; 327 | } catch (e) { console.error(e); } 328 | } 329 | running = false; 330 | } 331 | //---- END MAIN LOOP ----// 332 | 333 | //---- HELPER METHODS ----// 334 | function keypress(event) { 335 | element = event.target; 336 | elementName = element.nodeName.toLowerCase(); 337 | if (elementName == "input" || elementName == "textarea") return true; 338 | console.log("MINIMALIST GOOGLE READER: keystroke intercepted"); 339 | if (String.fromCharCode(event.which)=="g") { 340 | } 341 | // [ / ] 342 | if (response.o.header && event.which == "47" && !event.ctrlKey && !event.metaKey) { 343 | console.warn('search'); 344 | toggleHeader(); 345 | } 346 | // [ \ ] 347 | if ((response.o.header || response.o.gbarH) && (event.which == "92" || (event.which == "102" && (!hiddenG || !hiddenH))) && !event.ctrlKey && !event.metaKey) { 348 | toggleHeader(); 349 | } 350 | // [ ` ] tilde key 351 | if (response.o.nav && event.which == "96" && !event.ctrlKey && !event.metaKey) { 352 | toggleNav(); 353 | } 354 | // [ v ] 355 | if (response.o.v && event.which == "118") { 356 | var x, link; 357 | x = document.getElementById('current-entry'); 358 | if (x == null) { 359 | return; 360 | } 361 | x = x.getElementsByTagName('a'); 362 | link = x[0].getAttribute('href'); 363 | event.stopPropagation(); 364 | event.preventDefault(); 365 | chrome.extension.sendRequest({ "url" : link }); 366 | } 367 | return true; 368 | } 369 | 370 | function toggleHeader(){ 371 | if (response.o.gbarH && !response.o.header) { 372 | if (hiddenG) { 373 | if (oldGbar) { 374 | minimalist(document.getElementById('gbar'), true, "hideG"); 375 | minimalist(document.getElementById('guser'), true, "hideG"); 376 | minimalist(document.getElementsByClassName('gbh')[0], true, "hideG"); 377 | minimalist(document.getElementsByClassName('gbh')[1], true, "hideG"); 378 | } else { 379 | minimalist(document.getElementById('gb'), true, "hideG"); 380 | } 381 | document.getElementById('logo-container').setAttribute('style','top: 45px;') 382 | document.getElementById('search').setAttribute('style','top: 45px;'); 383 | document.getElementById('main').setAttribute('style','top: 75px;'); 384 | hiddenG = false; 385 | } else { 386 | if (oldGbar) { 387 | minimalist(document.getElementById('gbar'), false, "hideG"); 388 | minimalist(document.getElementById('guser'), false, "hideG"); 389 | minimalist(document.getElementsByClassName('gbh')[0], false, "hideG"); 390 | minimalist(document.getElementsByClassName('gbh')[1], false, "hideG"); 391 | } else { 392 | minimalist(document.getElementById('gb'), false, "hideG"); 393 | } 394 | document.getElementById('logo-container').setAttribute('style','top: 15px;') 395 | document.getElementById('search').setAttribute('style','top: 15px;'); 396 | document.getElementById('main').setAttribute('style','top: 45px;'); 397 | hiddenG = true; 398 | } 399 | } else if (response.o.gbarH && response.o.header) { 400 | if (hiddenH) { 401 | if (oldGbar) { 402 | minimalist(document.getElementById('gbar'), true, "hideG"); 403 | minimalist(document.getElementById('guser'), true, "hideG"); 404 | minimalist(document.getElementsByClassName('gbh')[0], true, "hideG"); 405 | minimalist(document.getElementsByClassName('gbh')[1], true, "hideG"); 406 | } else { 407 | minimalist(document.getElementById('gb'), true, "hideG"); 408 | } 409 | minimalist(document.getElementById('logo-container'), true, "hideH"); 410 | minimalist(document.getElementById('search'), true, "hideH"); 411 | document.getElementById('main').setAttribute('style','top: 75px;'); 412 | hiddenH = false; 413 | } else { 414 | if (oldGbar) { 415 | minimalist(document.getElementById('gbar'), false, "hideG"); 416 | minimalist(document.getElementById('guser'), false, "hideG"); 417 | minimalist(document.getElementsByClassName('gbh')[0], false, "hideG"); 418 | minimalist(document.getElementsByClassName('gbh')[1], false, "hideG"); 419 | } else { 420 | minimalist(document.getElementById('gb'), false, "hideG"); 421 | } 422 | minimalist(document.getElementById('logo-container'), false, "hideH"); 423 | minimalist(document.getElementById('search'), false, "hideH"); 424 | document.getElementById('main').setAttribute('style','top: 10px;'); 425 | hiddenH = true; 426 | } 427 | } else { 428 | if (hiddenH){ 429 | minimalist(document.getElementById('logo-container'), true, "hideH"); 430 | minimalist(document.getElementById('search'), true, "hideH"); 431 | document.getElementById('main').setAttribute('style','top: 65px;') 432 | hiddenH = false; 433 | } else { 434 | minimalist(document.getElementById('logo-container'), false, "hideH"); 435 | minimalist(document.getElementById('search'), false, "hideH"); 436 | document.getElementById('main').setAttribute('style','top: 35px;') 437 | hiddenH = true; 438 | } 439 | 440 | } 441 | } 442 | 443 | function toggleNav() { 444 | if (response.o.nav) { 445 | if (hiddenN) { 446 | document.getElementsByTagName('body')[0].setAttribute("class", "webkit loaded"); 447 | document.getElementById('chrome-lhn-menu').setAttribute("class","goog-button goog-button-base unselectable goog-inline-block goog-button-float-left goog-menu-button hidden"); 448 | hiddenN = false; 449 | } else { 450 | document.getElementsByTagName('body')[0].setAttribute("class", "webkit loaded lhn-hidden"); 451 | document.getElementById('chrome-lhn-menu').setAttribute("class","goog-button goog-button-base unselectable goog-inline-block goog-button-float-left goog-menu-button"); 452 | hiddenN = true; 453 | } 454 | } 455 | } 456 | 457 | function minimalist(element, remove, minClass) { 458 | var classes = new Array(); 459 | try { classes = element.getAttribute("min").split(" "); } catch(e) {} 460 | classes = removeItems(classes, minClass); 461 | if (!remove) classes.push(minClass); 462 | element.setAttribute("min", classes.join(" ")); 463 | } 464 | 465 | function removeItems(array, item) { 466 | var i = 0; 467 | while (i < array.length) { 468 | if (array[i] == item) 469 | array.splice(i, 1); 470 | else i++; 471 | } 472 | return array; 473 | } 474 | //---- END HELPER METHODS ----// 475 | 476 | // LISTENERS 477 | window.addEventListener("click", run, false); 478 | document.addEventListener("keypress", keypress, true); 479 | window.addEventListener("DOMSubtreeModified", init, false); 480 | }); -------------------------------------------------------------------------------- /js/favicon.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name GReader Favicon Alerts 3 | // @description Alerts you to the number of unread items in Google Reader. 4 | // @version 1.1 5 | // @date 2010-06-12 6 | // @author Peter Wooley 7 | // @namespace http://peterwooley.com 8 | // @include https://*.google.com/reader/view/* 9 | // @include http://*.google.com/reader/view/* 10 | // @include htt*://*.google.*/reader/view* 11 | // ==/UserScript== 12 | 13 | chrome.extension.sendRequest({elements: "o"}, function(response) { 14 | if (response.o.favicon) { 15 | 16 | new GReaderFaviconAlerts; 17 | 18 | function GReaderFaviconAlerts() { 19 | var self = this; 20 | 21 | this.construct = function() { 22 | this.head = document.getElementsByTagName("head")[0]; 23 | this.pixelMaps = { 24 | icons: { 25 | 'unread': 26 | [ 27 | ['','','','','#f4896a','#f4896a','#ee775a','#eb6c52','#eb6c52','#e45941','#d83a2b','#d83a2b','#d83a2b','#f6d6d4','',''], 28 | ['','','','#f4896a','#f4896a','#e99883','#f4896a','#ee775a','#eb6c52','#e45941','#de4733','#d83a2b','#d32e21','#ca1e18','',''], 29 | ['','','','#f4896a','#fcfbf4','#f8f6ee','#f8f6ee','#f2c2b0','#ee775a','#e45941','#de4733','#d83a2b','#d32e21','#ce251b','',''], 30 | ['','','','#f4896a','#f8f6ee','#f8f6ee','#f5f3ea','#f2f1e6','#f0e6da','#e5816e','#de4733','#d83a2b','#ce251b','#ca1e18','#e0ddce',''], 31 | ['','','','#f4896a','#e6d1c5','#e6d1c5','#e6d1c5','#f2f1e6','#f0eee2','#edeade','#df7263','#d32e21','#ce251b','#c61a16','#e3e0d0','#e0ddce'], 32 | ['','#0786fb','#0786fb','#0786fb','#0786fb','#0578e4','#0578e4','#0578e4','#0578e4','#3582cb','#dbd4cd','#cf4037','#ca1e18','#c61a16','#e3e0d0','#e0ddce'], 33 | ['#0787fd','#0786fb','#0786fb','#0786fb','#0578e4','#0578e4','#0578e4','#0471da','#036bce','#0366c7','#3582cb','#e99883','#c61a16','#c61a16','#e3e0d0','#e0ddce'], 34 | ['#0786fb','#fcfbf4','#dbe9f0','#9cc9ee','#238beb','#0578e4','#0578e4','#0471da','#036bce','#0366c7','#0366c7','#e7e4d4','#c61a16','#c61a16','#e0ddce','#dcdacb'], 35 | ['#0786fb','#f8f6ee','#f8f6ee','#f5f3ea','#f2f1e6','#8abbe3','#0471da','#0471da','#036bce','#0366c7','#0366c7','#e4e1d2','#cf4037','#c61a16','#e0ddce','#dcdacb'], 36 | ['#0786fb','#c1d0d5','#d7e0dd','#f5f3ea','#f2f1e6','#f0eee2','#c1d0d5','#1274d2','#0366c7','#0366c7','#0366c7','#d28677','#d05246','#c61a16','#e0ddce','#d7d6c8'], 37 | ['#0786fb','#f5f3ea','#f2f1e6','#c1d0d5','#e3e5de','#f0eee2','#edeade','#9bb9ce','#0366c7','#025fbc','#0366c7','#bf3634','#bf3634','#d2b9b4','#edeade','#d3d2c5'], 38 | ['#0786fb','#f2f1e6','#f0eee2','#f0eee2','#d1d9d5','#d1d9d5','#eae8da','#eae8da','#3582cb','#025fbc','#015ab3','#e9e8e2','#e3e5de','#fcfbf4','#f5f3ea','#d2cfc2'], 39 | ['#0471da','#c1d0d5','#c1d0d5','#edeade','#edeade','#cbd5d5','#eae8da','#e7e4d4','#9bb9ce','#015ab3','#015ab3','#fcfbf4','#f2f1e6','fcfbf4#','#fcfbf4','#d7d6c8'], 40 | ['#036bce','#edeade','#edeade','#c1d0d5','#eae8da','#eae8da','#aec2ca','#e7e4d4','#e4e1d2','#015ab3','#015ab3','#d3d2c5','#d3d2c5','#cdccc0','#cdccc0',''], 41 | ['#036bce','#d7e0dd','#d7e0dd','#cbd5d5','#ccd8d7','#d7e0dd','#9bb9ce','#d1d9d5','#d1d9d5','#015ab3','#015ab3','','','','',''], 42 | ['','#015ab3','#015ab3','#015ab3','#015ab3','#015ab3','#015ab3','#015ab3','#015ab3','#015ab3','','','','','',''], 43 | ] 44 | }, 45 | numbers: { 46 | 0: [ 47 | [1,1,1], 48 | [1,0,1], 49 | [1,0,1], 50 | [1,0,1], 51 | [1,1,1] 52 | ], 53 | 1: [ 54 | [0,1,0], 55 | [1,1,0], 56 | [0,1,0], 57 | [0,1,0], 58 | [1,1,1] 59 | ], 60 | 2: [ 61 | [1,1,1], 62 | [0,0,1], 63 | [1,1,1], 64 | [1,0,0], 65 | [1,1,1] 66 | ], 67 | 3: [ 68 | [1,1,1], 69 | [0,0,1], 70 | [0,1,1], 71 | [0,0,1], 72 | [1,1,1] 73 | ], 74 | 4: [ 75 | [0,0,1], 76 | [0,1,1], 77 | [1,0,1], 78 | [1,1,1], 79 | [0,0,1] 80 | ], 81 | 5: [ 82 | [1,1,1], 83 | [1,0,0], 84 | [1,1,1], 85 | [0,0,1], 86 | [1,1,1] 87 | ], 88 | 6: [ 89 | [0,1,1], 90 | [1,0,0], 91 | [1,1,1], 92 | [1,0,1], 93 | [1,1,1] 94 | ], 95 | 7: [ 96 | [1,1,1], 97 | [0,0,1], 98 | [0,0,1], 99 | [0,1,0], 100 | [0,1,0] 101 | ], 102 | 8: [ 103 | [1,1,1], 104 | [1,0,1], 105 | [1,1,1], 106 | [1,0,1], 107 | [1,1,1] 108 | ], 109 | 9: [ 110 | [1,1,1], 111 | [1,0,1], 112 | [1,1,1], 113 | [0,0,1], 114 | [1,1,0] 115 | ], 116 | '+': [ 117 | [0,0,0], 118 | [0,1,0], 119 | [1,1,1], 120 | [0,1,0], 121 | [0,0,0], 122 | ], 123 | 'k': [ 124 | [1,0,1], 125 | [1,1,0], 126 | [1,1,0], 127 | [1,0,1], 128 | [1,0,1], 129 | ] 130 | } 131 | }; 132 | 133 | this.timer = setInterval(this.poll, 500); 134 | this.poll(); 135 | 136 | return true; 137 | } 138 | 139 | this.drawUnreadCount = function(unread) { 140 | if(!self.textedCanvas) { 141 | self.textedCanvas = []; 142 | } 143 | 144 | if(!self.textedCanvas[unread]) { 145 | var iconCanvas = self.getUnreadCanvas(); 146 | var textedCanvas = document.createElement('canvas'); 147 | textedCanvas.height = textedCanvas.width = iconCanvas.width; 148 | var ctx = textedCanvas.getContext('2d'); 149 | ctx.drawImage(iconCanvas, 0, 0); 150 | 151 | ctx.fillStyle = "#eeeeee"; 152 | ctx.strokeStyle = "#888888"; 153 | ctx.strokeWidth = 1; 154 | 155 | var count = unread.length; 156 | 157 | if(count > 4) { 158 | unread = "1k+"; 159 | count = unread.length; 160 | } 161 | 162 | var bgHeight = self.pixelMaps.numbers[0].length; 163 | var bgWidth = 0; 164 | var padding = count < 4 ? 1 : 0; 165 | var topMargin = 2; 166 | 167 | for(var index = 0; index < count; index++) { 168 | bgWidth += self.pixelMaps.numbers[unread[index]][0].length; 169 | if(index < count-1) { 170 | bgWidth += padding; 171 | } 172 | } 173 | bgWidth = bgWidth > textedCanvas.width-4 ? textedCanvas.width-4 : bgWidth; 174 | 175 | ctx.fillRect(textedCanvas.width-bgWidth-4,topMargin,bgWidth+4,bgHeight+4); 176 | 177 | var digit; 178 | var digitsWidth = bgWidth; 179 | for(var index = 0; index < count; index++) { 180 | digit = unread[index]; 181 | 182 | if (self.pixelMaps.numbers[digit]) { 183 | var map = self.pixelMaps.numbers[digit]; 184 | var height = map.length; 185 | var width = map[0].length; 186 | 187 | ctx.fillStyle = "#000000"; 188 | 189 | for (var y = 0; y < height; y++) { 190 | for (var x = 0; x < width; x++) { 191 | if(map[y][x]) { 192 | ctx.fillRect(14- digitsWidth + x, y+topMargin+2, 1, 1); 193 | } 194 | } 195 | } 196 | 197 | digitsWidth -= width + padding; 198 | } 199 | } 200 | 201 | ctx.strokeRect(textedCanvas.width-bgWidth-3.5,topMargin+.5,bgWidth+3,bgHeight+3); 202 | 203 | self.textedCanvas[unread] = textedCanvas; 204 | } 205 | 206 | return self.textedCanvas[unread]; 207 | } 208 | this.getIcon = function() { 209 | return self.getUnreadCanvas().toDataURL('image/png'); 210 | } 211 | this.getUnreadCanvas = function() { 212 | if(!self.unreadCanvas) { 213 | self.unreadCanvas = document.createElement('canvas'); 214 | self.unreadCanvas.height = self.unreadCanvas.width = 16; 215 | 216 | var ctx = self.unreadCanvas.getContext('2d'); 217 | 218 | for (var y = 0; y < self.unreadCanvas.width; y++) { 219 | for (var x = 0; x < self.unreadCanvas.height; x++) { 220 | if (self.pixelMaps.icons.unread[y][x]) { 221 | ctx.fillStyle = self.pixelMaps.icons.unread[y][x]; 222 | ctx.fillRect(x, y, 1, 1); 223 | } 224 | } 225 | } 226 | } 227 | 228 | return self.unreadCanvas; 229 | } 230 | this.getUnreadCount = function() { 231 | matches = self.getSearchText().match(/\((.*)\)/); 232 | return matches ? matches[1] : false; 233 | } 234 | this.getUnreadCountIcon = function() { 235 | var unread = self.getUnreadCount(); 236 | return self.drawUnreadCount(unread).toDataURL('image/png'); 237 | } 238 | this.getSearchText = function() { 239 | return document.title; 240 | } 241 | this.poll = function() { 242 | if(self.getUnreadCount()) { 243 | self.setIcon(self.getUnreadCountIcon()); 244 | } else { 245 | self.setIcon(self.getIcon()); 246 | } 247 | } 248 | 249 | this.setIcon = function(icon) { 250 | var links = self.head.getElementsByTagName("link"); 251 | for (var i = 0; i < links.length; i++) 252 | if ((links[i].rel == "shortcut icon" || links[i].rel=="icon") && 253 | links[i].href != icon) 254 | self.head.removeChild(links[i]); 255 | else if(links[i].href == icon) 256 | return; 257 | 258 | var newIcon = document.createElement("link"); 259 | newIcon.type = "image/png"; 260 | newIcon.rel = "shortcut icon"; 261 | newIcon.href = icon; 262 | self.head.appendChild(newIcon); 263 | 264 | // Chrome hack for updating the favicon 265 | var shim = document.createElement('iframe'); 266 | shim.width = shim.height = 0; 267 | document.body.appendChild(shim); 268 | shim.src = "icon"; 269 | document.body.removeChild(shim); 270 | } 271 | 272 | this.toString = function() { return '[object GReaderFaviconAlerts]'; } 273 | 274 | return this.construct(); 275 | } 276 | } 277 | }); -------------------------------------------------------------------------------- /js/options.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | //---- LOAD ----// 3 | // defaults 4 | if (!localStorage["options"]) localStorage["options"] = "{}"; 5 | if (!localStorage["backCLR"]) localStorage["backCLR"] = "#ffffff"; 6 | if (!localStorage["borderCLR"]) localStorage["borderCLR"] = "#BBCCFF"; 7 | if (!localStorage["linkCLR"]) localStorage["linkCLR"] = "#2200cc"; 8 | if (!localStorage["Hcolor"]) localStorage["Hcolor"] = "#bbbbbb"; 9 | if (!localStorage["BTNcolor"]) localStorage["BTNcolor"] = "#000000"; 10 | if (!localStorage["BTNborder"]) localStorage["BTNborder"] = "#bbbbbb"; 11 | if (!localStorage["BTNbottom"]) localStorage["BTNbottom"] = "#f9f9f9"; 12 | if (!localStorage["BTNtop"]) localStorage["BTNtop"] = "#e3e3e3"; 13 | if (!localStorage["customCSSval"]) localStorage["customCSSval"] = " "; 14 | if (!localStorage["EIC_1"]) localStorage["EIC_1"] = ""; 15 | if (!localStorage["EIC_2"]) localStorage["EIC_2"] = ""; 16 | if (!localStorage["EIC_3"]) localStorage["EIC_3"] = ""; 17 | 18 | if(localStorage['options']){ 19 | var o = JSON.parse(localStorage['options']); 20 | // GENERAL 21 | $("#mricon").attr('checked', o.mricon); 22 | $("#favicon").attr('checked', o.favicon); 23 | $("#v").attr('checked', o.v); 24 | $("#trans").attr('checked', o.trans); 25 | $("#corners").attr('checked', o.corners); 26 | $("#customCSS").attr('checked', o.customCSS); 27 | if ((o.customCSSval != null) && (o.customCSSval != "")) 28 | $("#customCSSval").val(localStorage["customCSSval"]); 29 | // THEME 30 | $("#backC").attr('checked', o.backC); 31 | if ((o.backCLR != null) && (o.backCLR != "")) 32 | $("#backCLRsub").attr("style","background-color:" + o.backCLR + ";"); 33 | $("#borders").attr('checked', o.borders); 34 | if ((o.borderCLR != null) && (o.borderCLR != "")) 35 | $("#borderCLRsub").attr("style","background-color:" + o.borderCLR + ";"); 36 | $("#linkC").attr('checked', o.linkC); 37 | if ((o.linkCLR != null) && (o.linkCLR != "")) 38 | $("#linkCLRsub").attr("style","background-color:" + o.linkCLR + ";"); 39 | $("#BTN").attr('checked', o.BTN); 40 | if ((o.BTNcolor != null) && (o.BTNcolor != "")) 41 | $("#BTNcolorSUB").attr("style","background-color:" + o.BTNcolor + ";"); 42 | if ((o.BTNborder != null) && (o.BTNborder != "")) 43 | $("#BTNborderSUB").attr("style","background-color:" + o.BTNborder + ";"); 44 | if ((o.BTNbottom != null) && (o.BTNbottom != "")) 45 | $("#BTNbottomSUB").attr("style","background-color:" + o.BTNbottom + ";"); 46 | if ((o.BTNtop != null) && (o.BTNtop != "")) 47 | $("#BTNtopSUB").attr("style","background-color:" + o.BTNtop + ";"); 48 | $("#testButton").attr("style","color: " + o.BTNcolor + ";border: 1px solid " + o.BTNborder + ";background: -webkit-gradient(linear,0% 40%,0% 70%,from(" + o.BTNbottom + "),to(" + o.BTNtop + "));"); 49 | // GOOGLE BAR 50 | $("#gbarH").attr('checked', o.gbarH); 51 | $("#gbarO").attr('checked', o.gbarO); 52 | $("#gbarB").attr('checked', o.gbarB); 53 | $("#gbar").attr('checked', o.gbar); 54 | $("#cbar").attr('checked', o.cbar); 55 | if ((o.c_n_1 != null) && (o.c_n_1 != "")) 56 | $("#c_n_1").val(o.c_n_1); 57 | else $("#c_n_1").val("Gmail"); 58 | if ((o.c_u_1 != null) && (o.c_u_1 != "")) 59 | $("#c_u_1").val(o.c_u_1); 60 | else $("#c_u_1").val("https://mail.google.com"); 61 | if ((o.c_t_1 != null) && (o.c_t_1 != "")) 62 | $("#c_t_1").val(o.c_t_1); 63 | else $("#c_t_1").val("_blank"); 64 | if ((o.c_n_2 != null) && (o.c_n_2 != "")) 65 | $("#c_n_2").val(o.c_n_2); 66 | else $("#c_n_2").val("Calendar"); 67 | if ((o.c_u_2 != null) && (o.c_u_2 != "")) 68 | $("#c_u_2").val(o.c_u_2); 69 | else $("#c_u_2").val("http://www.google.com/calendar"); 70 | if ((o.c_t_2 != null) && (o.c_t_2 != "")) 71 | $("#c_t_2").val(o.c_t_2); 72 | else $("#c_t_2").val("_blank") 73 | if ((o.c_n_3 != null) && (o.c_n_3 != "")) 74 | $("#c_n_3").val(o.c_n_3); 75 | else $("#c_n_3").val("Documents"); 76 | if ((o.c_u_3 != null) && (o.c_u_3 != "")) 77 | $("#c_u_3").val(o.c_u_3); 78 | else $("#c_u_3").val("http://docs.google.com"); 79 | if ((o.c_t_3 != null) && (o.c_t_3 != "")) 80 | $("#c_t_3").val(o.c_t_3); 81 | else $("#c_t_3").val("_blank") 82 | if ((o.c_n_4 != null) && (o.c_n_4 != "")) 83 | $("#c_n_4").val(o.c_n_4); 84 | else $("#c_n_4").val("Reader"); 85 | if ((o.c_u_4 != null) && (o.c_u_4 != "")) 86 | $("#c_u_4").val(o.c_u_4); 87 | else $("#c_u_4").val("http://www.google.com/reader"); 88 | if ((o.c_t_5 != null) && (o.c_t_5 != "")) 89 | $("#c_t_5").val(o.c_t_5); 90 | else $("#c_t_5").val("_blank") 91 | if ((o.c_n_5 != null) && (o.c_n_5 != "")) 92 | $("#c_n_5").val(o.c_n_5); 93 | else $("#c_n_5").val("Photos"); 94 | if ((o.c_u_5 != null) && (o.c_u_5 != "")) 95 | $("#c_u_5").val(o.c_u_5); 96 | else $("#c_u_5").val("http://picasaweb.google.com"); 97 | if ((o.c_n_6 != null) && (o.c_n_6 != "")) 98 | $("#c_n_6").val(o.c_n_6); 99 | else $("#c_n_6").val("Web"); 100 | if ((o.c_u_6 != null) && (o.c_u_6 != "")) 101 | $("#c_u_6").val(o.c_u_6); 102 | else $("#c_u_6").val("http://www.google.com"); 103 | if ((o.c_t_6 != null) && (o.c_t_6 != "")) 104 | $("#c_t_6").val(o.c_t_6); 105 | else $("#c_t_6").val("_blank") 106 | $("#cbarM").attr('checked', o.cbarM); 107 | $("#user").attr('checked', o.user); 108 | $("#settings").attr('checked', o.settings); 109 | $("#help").attr('checked', o.help); 110 | $("#out").attr('checked', o.out); 111 | // HEADER 112 | $("#header").attr('checked', o.header); 113 | $("#logoH").attr('checked', o.logoH); 114 | $("#logo").attr('checked', o.logo); 115 | if ((o.logoSRC != null) && (o.logoSRC != "")) 116 | $("#logoSRC").val(o.logoSRC); 117 | else $("#logoSRC").val("http://www.example.com/image.jpg"); 118 | $("#s_all").attr('checked', o.s_all); 119 | $("#s_filter").attr('checked', o.s_filter); 120 | $("#s_button").attr('checked', o.s_button); 121 | // MAIN 122 | $("#t_title").attr('checked', o.t_title); 123 | $("#t_el").attr('checked', o.t_el); 124 | $("#t_top").attr('checked', o.t_top); 125 | $("#n_na").attr('checked', o.n_na); 126 | $("#n_read").attr('checked', o.n_read); 127 | $("#t_refresh").attr('checked', o.t_refresh); 128 | $("#t_view").attr('checked', o.t_view); 129 | $("#footer").attr('checked', o.footer); 130 | $("#h_side").attr('checked', o.h_side); 131 | $("#h_tips").attr('checked', o.h_tips); 132 | $("#h_blog").attr('checked', o.h_blog); 133 | $("#h_footer").attr('checked', o.h_footer); 134 | if ((o.itemW != null) && (o.itemW != "")) 135 | $("#itemW").val(o.itemW); 136 | else $("#itemW").val("650"); 137 | $("#i_break").attr('checked', o.i_break); 138 | $("#i_footer").attr('checked', o.i_footer); 139 | $("#i_text").attr('checked', o.i_text); 140 | $("#i_star").attr('checked', o.i_star); 141 | $("#i_like").attr('checked', o.i_like); 142 | $("#i_share").attr('checked', o.i_share); 143 | $("#i_note").attr('checked', o.i_note); 144 | $("#i_email").attr('checked', o.i_email); 145 | $("#i_unread").attr('checked', o.i_unread); 146 | $("#i_tags").attr('checked', o.i_tags); 147 | // NAVIGATION 148 | $("#nav").attr('checked', o.nav); 149 | $("#navA").attr('checked', o.navA); 150 | $("#n_icons").attr('checked', o.n_icons); 151 | $("#n_dim").attr('checked', o.n_dim); 152 | $("#n_manage").attr('checked', o.n_manage); 153 | if ((o.navW != null) && (o.navW != "")) 154 | $("#navW").val(o.navW); 155 | else $("#navW").val("260"); 156 | $("#n_home").attr('checked', o.n_home); 157 | $("#n_all").attr('checked', o.n_all); 158 | $("#n_star").attr('checked', o.n_star); 159 | $("#n_your").attr('checked', o.n_your); 160 | $("#n_share").attr('checked', o.n_share); 161 | $("#n_notes").attr('checked', o.n_notes); 162 | $("#n_trends").attr('checked', o.n_trends); 163 | $("#n_browse").attr('checked', o.n_browse); 164 | $("#n_follow").attr('checked', o.n_follow); 165 | $("#n_new").attr('checked', o.n_new); 166 | $("#n_shareS").attr('checked', o.n_shareS); 167 | $("#n_explore").attr('checked', o.n_explore); 168 | localStorage["uncheckedUpdate"] = false; 169 | $("#EIC_1").val(localStorage["EIC_1"]); 170 | $("#EIC_2").val(localStorage["EIC_2"]); 171 | $("#EIC_3").val(localStorage["EIC_3"]); 172 | } 173 | //---- END LOAD ----// 174 | 175 | //---- SAVE ----// 176 | function save(){ 177 | localStorage['options'] = JSON.stringify({ 178 | // GENERAL 179 | "mricon":$("#mricon").attr('checked'), 180 | "v":$("#v").attr('checked'), 181 | "favicon":$("#favicon").attr('checked'), 182 | "trans":$("#trans").attr('checked'), 183 | "corners":$("#corners").attr('checked'), 184 | "customCSS":$("#customCSS").attr('checked'), 185 | "customCSSval":$("#customCSSval").val().replace(/(\r\n|\n|\r)/gm,""), 186 | // THEME 187 | "backC":$("#backC").attr('checked'), 188 | "backCLR":localStorage["backCLR"], 189 | "borders":$("#borders").attr('checked'), 190 | "borderCLR":localStorage["borderCLR"], 191 | "linkC":$("#linkC").attr('checked'), 192 | "linkCLR":localStorage["linkCLR"], 193 | "BTN":$("#BTN").attr('checked'), 194 | "BTNcolor":localStorage["BTNcolor"], 195 | "BTNborder":localStorage["BTNborder"], 196 | "BTNbottom":localStorage["BTNbottom"], 197 | "BTNtop":localStorage["BTNtop"], 198 | // GOOGLE BAR 199 | "gbarH":$("#gbarH").attr('checked'), 200 | "gbarO":$("#gbarO").attr('checked'), 201 | "gbarB":$("#gbarB").attr('checked'), 202 | "gbar":$("#gbar").attr('checked'), 203 | "cbar":$("#cbar").attr('checked'), 204 | "c_n_1":$("#c_n_1").val(), 205 | "c_u_1":$("#c_u_1").val(), 206 | "c_t_1":$("#c_t_1").val(), 207 | "c_n_2":$("#c_n_2").val(), 208 | "c_u_2":$("#c_u_2").val(), 209 | "c_t_2":$("#c_t_2").val(), 210 | "c_n_3":$("#c_n_3").val(), 211 | "c_u_3":$("#c_u_3").val(), 212 | "c_t_3":$("#c_t_3").val(), 213 | "c_n_4":$("#c_n_4").val(), 214 | "c_u_4":$("#c_u_4").val(), 215 | "c_t_4":$("#c_t_4").val(), 216 | "c_n_5":$("#c_n_5").val(), 217 | "c_u_5":$("#c_u_5").val(), 218 | "c_t_5":$("#c_t_5").val(), 219 | "c_n_6":$("#c_n_6").val(), 220 | "c_u_6":$("#c_u_6").val(), 221 | "c_t_6":$("#c_t_6").val(), 222 | "cbarM":$("#cbarM").attr('checked'), 223 | "user":$("#user").attr('checked'), 224 | "settings":$("#settings").attr('checked'), 225 | "help":$("#help").attr('checked'), 226 | "out":$("#out").attr('checked'), 227 | // HEADER 228 | "header":$("#header").attr('checked'), 229 | "logoH":$("#logoH").attr('checked'), 230 | "logo":$("#logo").attr('checked'), 231 | "logoSRC":$("#logoSRC").val(), 232 | "s_all":$("#s_all").attr('checked'), 233 | "s_filter":$("#s_filter").attr('checked'), 234 | "s_button":$("#s_button").attr('checked'), 235 | // MAIN 236 | "t_title":$("#t_title").attr('checked'), 237 | "t_el":$("#t_el").attr('checked'), 238 | "t_top":$("#t_top").attr('checked'), 239 | "n_na":$("#n_na").attr('checked'), 240 | "n_read":$("#n_read").attr('checked'), 241 | "t_refresh":$("#t_refresh").attr('checked'), 242 | "t_view":$("#t_view").attr('checked'), 243 | "footer":$("#footer").attr('checked'), 244 | "h_side":$("#h_side").attr('checked'), 245 | "h_tips":$("#h_tips").attr('checked'), 246 | "h_blog":$("#h_blog").attr('checked'), 247 | "h_footer":$("#h_footer").attr('checked'), 248 | "itemW":$("#itemW").val(), 249 | "i_break":$("#i_break").attr('checked'), 250 | "i_footer":$("#i_footer").attr('checked'), 251 | "i_text":$("#i_text").attr('checked'), 252 | "i_star":$("#i_star").attr('checked'), 253 | "i_like":$("#i_like").attr('checked'), 254 | "i_share":$("#i_share").attr('checked'), 255 | "i_note":$("#i_note").attr('checked'), 256 | "i_email":$("#i_email").attr('checked'), 257 | "i_unread":$("#i_unread").attr('checked'), 258 | "i_tags":$("#i_tags").attr('checked'), 259 | // NAVIGATION 260 | "nav":$("#nav").attr('checked'), 261 | "navW":$("#navW").val(), 262 | "navA":$("#navA").attr('checked'), 263 | "n_icons":$("#n_icons").attr('checked'), 264 | "n_dim":$("#n_dim").attr('checked'), 265 | "n_manage":$("#n_manage").attr('checked'), 266 | "n_home":$("#n_home").attr('checked'), 267 | "n_all":$("#n_all").attr('checked'), 268 | "n_star":$("#n_star").attr('checked'), 269 | "n_your":$("#n_your").attr('checked'), 270 | "n_share":$("#n_share").attr('checked'), 271 | "n_notes":$("#n_notes").attr('checked'), 272 | "n_trends":$("#n_trends").attr('checked'), 273 | "n_browse":$("#n_browse").attr('checked'), 274 | "n_follow":$("#n_follow").attr('checked'), 275 | "n_new":$("#n_new").attr('checked'), 276 | "n_shareS":$("#n_shareS").attr('checked'), 277 | "n_explore":$("#n_explore").attr('checked'), 278 | }); 279 | localStorage["customCSSval"] = $("#customCSSval").val(); 280 | localStorage["EIC_1"] = $("#EIC_1").val(); 281 | localStorage["EIC_2"] = $("#EIC_2").val(); 282 | localStorage["EIC_3"] = $("#EIC_3").val(); 283 | $("#announce").attr("style", ""); 284 | $("#refreshEI").attr("style", ""); 285 | $("#refresh").attr("style", "display: block !important;"); 286 | } 287 | //---- END SAVE ----// 288 | 289 | //---- SAVE LISTENERS ----// 290 | document.getElementById("OPTgen").addEventListener("keyup", save, false); 291 | document.getElementById("OPTgen").addEventListener("click", save, false); 292 | document.getElementById("OPTthe").addEventListener("click", save, false); 293 | document.getElementById("OPTgoo").addEventListener("keyup", save, false); 294 | document.getElementById("OPTgoo").addEventListener("click", save, false); 295 | document.getElementById("OPThea").addEventListener("keyup", save, false); 296 | document.getElementById("OPThea").addEventListener("click", save, false); 297 | document.getElementById("OPTmai").addEventListener("click", save, false); 298 | document.getElementById("OPTgat").addEventListener("keyup", save, false); 299 | document.getElementById("OPTgat").addEventListener("click", save, false); 300 | document.getElementById("EIC_1").addEventListener("keyup", save, false); 301 | document.getElementById("EIC_2").addEventListener("keyup", save, false); 302 | document.getElementById("EIC_3").addEventListener("keyup", save, false); 303 | var pickers = document.getElementsByClassName("colorPicker"); 304 | for (var i = 0; i < pickers.length; i++) { 305 | pickers[i].addEventListener("click", save, false); 306 | pickers[i].addEventListener("keyup", save, false); 307 | } 308 | //---- END SAVE LISTENERS ----// 309 | 310 | //---- IMAGE PREVIEW ----// 311 | imagePreview = function(){ 312 | xOffset = -25; 313 | yOffset = -100; 314 | $("label:not([hide])").hover(function(e){ 315 | this.t = this.title; 316 | this.title = ""; 317 | var c = (this.t != "") ? "
" + this.t : "" + ""; 318 | $("body").append("

Image preview"+ c +"

"); 319 | $("#preview img") 320 | .css("max-width", window.innerWidth - 100) 321 | .css("max-height", window.innerHeight - 100); 322 | if ($("#preview").width() > (window.innerWidth - e.pageX - 130)) { 323 | $("#preview") 324 | .css("top",(e.pageY - xOffset) + "px") 325 | .css("left",(e.pageX - ($("#preview").width() - (window.innerWidth - e.pageX) + 75)) + "px") 326 | .fadeIn("fast"); 327 | } else if ($("#preview").height() > (window.innerHeight - e.pageY - 55)) { 328 | $("#preview") 329 | .css("top",(e.pageY - ($("#preview").height() + 55)) + "px") 330 | .css("left",(e.pageX + yOffset) + "px") 331 | .fadeIn("fast"); 332 | } else { 333 | $("#preview") 334 | .css("top",(e.pageY - xOffset) + "px") 335 | .css("left",(e.pageX + yOffset) + "px") 336 | .fadeIn("fast"); 337 | } 338 | }, 339 | function(){ 340 | this.title = this.t; 341 | $("#preview").remove(); 342 | }); 343 | $("a.preview").mousemove(function(e){ 344 | if ($("#preview").width() > (window.innerWidth - e.pageX - 100) || $("#preview").height() > (window.innerHeight - e.pageY - 25)) { 345 | $("#preview") 346 | .css("top",(e.pageY + 75 - ($("#preview").height() - (window.innerHeight - e.pageY))) + "px") 347 | .css("left",(e.pageX - 75 - ($("#preview").width() - (window.innerWidth - e.pageX))) + "px") 348 | .fadeIn("fast"); 349 | } else { 350 | $("#preview") 351 | .css("top",(e.pageY - xOffset) + "px") 352 | .css("left",(e.pageX + yOffset) + "px") 353 | .fadeIn("fast"); 354 | } 355 | }); 356 | }; 357 | $(document).ready(function(){ 358 | imagePreview(); 359 | }); 360 | //---- END IMAGE PREVIEW ----// 361 | }); 362 | 363 | // UPDATE EXAMPLE BUTTON 364 | function updateButton() { 365 | $("#testButton").attr("style","border: 1px solid #" + localStorage["BTNborder"] + ";background: -webkit-gradient(linear,0% 40%,0% 70%,from(#" + localStorage["BTNbottom"] + "),to(#" + localStorage["BTNtop"] + "));"); 366 | } 367 | 368 | // NAVIGATION HANDLER 369 | var last = "gen"; 370 | function navigate(link) { 371 | $("#OPT" + last).attr("style", ""); 372 | $("#OPT" + link).attr("style", "display: block;"); 373 | //document.getElementById("OPT" + link).scrollTop = 0; 374 | $("#" + last).attr("class", ""); 375 | $("#" + link).attr("class", "current"); 376 | //document.getElementById("OPTside").scrollTop = 0; 377 | last = link; 378 | } 379 | 380 | // RESET CUSTOM BUTTONS COLORS 381 | function cButtonReset() { 382 | localStorage["BTNcolor"] = "#000000"; 383 | localStorage["BTNborder"] = "#bbbbbb"; 384 | localStorage["BTNbottom"] = "#f9f9f9"; 385 | localStorage["BTNtop"] = "#ded5de"; 386 | window.location.reload(); 387 | } 388 | 389 | //---- EXPORT/IMPORT ----// 390 | function export(EIid) { 391 | var prefOut = new Array(); 392 | prefOut[0] = localStorage["options"]; 393 | prefOut[1] = localStorage["borderCLR"]; 394 | prefOut[2] = localStorage["itemCLR"]; 395 | prefOut[3] = localStorage["BTNcolor"]; 396 | prefOut[4] = localStorage["BTNborder"]; 397 | prefOut[5] = localStorage["BTNbottom"]; 398 | prefOut[6] = localStorage["BTNtop"]; 399 | prefOut[7] = localStorage["customCSSval"]; 400 | prefOut[8] = localStorage["backCLR"]; 401 | prefOut[9] = localStorage["linkCLR"]; 402 | var prefsOut = prefOut[0]; // fencepost 403 | for (var i = 1; i <= 9; i++) { 404 | prefsOut += '\n' + prefOut[i]; 405 | } 406 | document.getElementById(EIid).innerHTML = prefsOut; 407 | if (EIid == "EIC_3") localStorage["EIC_3"] = prefsOut; // backup existing to Custom 3 408 | } 409 | 410 | function import(EIid) { 411 | var prefsIn = document.getElementById(EIid).value; 412 | var prefIn = prefsIn.split("\n"); 413 | localStorage["options"] = prefIn[0]; 414 | localStorage["borderCLR"] = prefIn[1]; 415 | localStorage["itemCLR"] = prefIn[2]; 416 | localStorage["BTNcolor"] = prefIn[3]; 417 | localStorage["BTNborder"] = prefIn[4]; 418 | localStorage["BTNbottom"] = prefIn[5]; 419 | localStorage["BTNtop"] = prefIn[6]; 420 | localStorage["customCSSval"] = prefIn[7]; 421 | localStorage["backCLR"] = prefIn[8]; 422 | localStorage["linkCLR"] = prefIn[9]; 423 | window.location.hash = "imps"; 424 | window.location.reload(); 425 | } 426 | //---- END EXPORT/IMPORT ----// 427 | 428 | // EASTER EGG 429 | function easterEgg() { 430 | if (!localStorage['easterEgg']) { 431 | localStorage['easterEgg'] = true; 432 | $('#easterEgg_off').attr('style','display:none;'); 433 | $('#easterEgg_on').attr('style','display:block;'); 434 | } else { 435 | localStorage.removeItem('easterEgg'); 436 | $('#easterEgg_on').attr('style','display:none;'); 437 | $('#easterEgg_off').attr('style','display:block;'); 438 | } 439 | } -------------------------------------------------------------------------------- /js/picker/colorpicker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Color picker 4 | * Author: Stefan Petre www.eyecon.ro 5 | * 6 | * Dual licensed under the MIT and GPL licenses 7 | * 8 | */ 9 | (function ($) { 10 | var ColorPicker = function () { 11 | var 12 | ids = {}, 13 | inAction, 14 | charMin = 65, 15 | visible, 16 | tpl = '
', 17 | defaults = { 18 | eventName: 'click', 19 | onShow: function () {}, 20 | onBeforeShow: function(){}, 21 | onHide: function () {}, 22 | onChange: function () {}, 23 | onSubmit: function () {}, 24 | color: 'ff0000', 25 | livePreview: true, 26 | flat: false 27 | }, 28 | fillRGBFields = function (hsb, cal) { 29 | var rgb = HSBToRGB(hsb); 30 | $(cal).data('colorpicker').fields 31 | .eq(1).val(rgb.r).end() 32 | .eq(2).val(rgb.g).end() 33 | .eq(3).val(rgb.b).end(); 34 | }, 35 | fillHSBFields = function (hsb, cal) { 36 | $(cal).data('colorpicker').fields 37 | .eq(4).val(hsb.h).end() 38 | .eq(5).val(hsb.s).end() 39 | .eq(6).val(hsb.b).end(); 40 | }, 41 | fillHexFields = function (hsb, cal) { 42 | $(cal).data('colorpicker').fields 43 | .eq(0).val(HSBToHex(hsb)).end(); 44 | }, 45 | setSelector = function (hsb, cal) { 46 | $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100})); 47 | $(cal).data('colorpicker').selectorIndic.css({ 48 | left: parseInt(150 * hsb.s/100, 10), 49 | top: parseInt(150 * (100-hsb.b)/100, 10) 50 | }); 51 | }, 52 | setHue = function (hsb, cal) { 53 | $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); 54 | }, 55 | setCurrentColor = function (hsb, cal) { 56 | $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); 57 | }, 58 | setNewColor = function (hsb, cal) { 59 | $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); 60 | }, 61 | keyDown = function (ev) { 62 | var pressedKey = ev.charCode || ev.keyCode || -1; 63 | if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { 64 | return false; 65 | } 66 | var cal = $(this).parent().parent(); 67 | if (cal.data('colorpicker').livePreview === true) { 68 | change.apply(this); 69 | } 70 | }, 71 | change = function (ev) { 72 | var cal = $(this).parent().parent(), col; 73 | if (this.parentNode.className.indexOf('_hex') > 0) { 74 | cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); 75 | } else if (this.parentNode.className.indexOf('_hsb') > 0) { 76 | cal.data('colorpicker').color = col = fixHSB({ 77 | h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), 78 | s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), 79 | b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) 80 | }); 81 | } else { 82 | cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ 83 | r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), 84 | g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), 85 | b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) 86 | })); 87 | } 88 | if (ev) { 89 | fillRGBFields(col, cal.get(0)); 90 | fillHexFields(col, cal.get(0)); 91 | fillHSBFields(col, cal.get(0)); 92 | } 93 | setSelector(col, cal.get(0)); 94 | setHue(col, cal.get(0)); 95 | setNewColor(col, cal.get(0)); 96 | cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); 97 | }, 98 | blur = function (ev) { 99 | var cal = $(this).parent().parent(); 100 | cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); 101 | }, 102 | focus = function () { 103 | charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; 104 | $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); 105 | $(this).parent().addClass('colorpicker_focus'); 106 | }, 107 | downIncrement = function (ev) { 108 | var field = $(this).parent().find('input').focus(); 109 | var current = { 110 | el: $(this).parent().addClass('colorpicker_slider'), 111 | max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), 112 | y: ev.pageY, 113 | field: field, 114 | val: parseInt(field.val(), 10), 115 | preview: $(this).parent().parent().data('colorpicker').livePreview 116 | }; 117 | $(document).bind('mouseup', current, upIncrement); 118 | $(document).bind('mousemove', current, moveIncrement); 119 | }, 120 | moveIncrement = function (ev) { 121 | ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); 122 | if (ev.data.preview) { 123 | change.apply(ev.data.field.get(0), [true]); 124 | } 125 | return false; 126 | }, 127 | upIncrement = function (ev) { 128 | change.apply(ev.data.field.get(0), [true]); 129 | ev.data.el.removeClass('colorpicker_slider').find('input').focus(); 130 | $(document).unbind('mouseup', upIncrement); 131 | $(document).unbind('mousemove', moveIncrement); 132 | return false; 133 | }, 134 | downHue = function (ev) { 135 | var current = { 136 | cal: $(this).parent(), 137 | y: $(this).offset().top 138 | }; 139 | current.preview = current.cal.data('colorpicker').livePreview; 140 | $(document).bind('mouseup', current, upHue); 141 | $(document).bind('mousemove', current, moveHue); 142 | }, 143 | moveHue = function (ev) { 144 | change.apply( 145 | ev.data.cal.data('colorpicker') 146 | .fields 147 | .eq(4) 148 | .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) 149 | .get(0), 150 | [ev.data.preview] 151 | ); 152 | return false; 153 | }, 154 | upHue = function (ev) { 155 | fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); 156 | fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); 157 | $(document).unbind('mouseup', upHue); 158 | $(document).unbind('mousemove', moveHue); 159 | return false; 160 | }, 161 | downSelector = function (ev) { 162 | var current = { 163 | cal: $(this).parent(), 164 | pos: $(this).offset() 165 | }; 166 | current.preview = current.cal.data('colorpicker').livePreview; 167 | $(document).bind('mouseup', current, upSelector); 168 | $(document).bind('mousemove', current, moveSelector); 169 | }, 170 | moveSelector = function (ev) { 171 | change.apply( 172 | ev.data.cal.data('colorpicker') 173 | .fields 174 | .eq(6) 175 | .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) 176 | .end() 177 | .eq(5) 178 | .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) 179 | .get(0), 180 | [ev.data.preview] 181 | ); 182 | return false; 183 | }, 184 | upSelector = function (ev) { 185 | fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); 186 | fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); 187 | $(document).unbind('mouseup', upSelector); 188 | $(document).unbind('mousemove', moveSelector); 189 | return false; 190 | }, 191 | enterSubmit = function (ev) { 192 | $(this).addClass('colorpicker_focus'); 193 | }, 194 | leaveSubmit = function (ev) { 195 | $(this).removeClass('colorpicker_focus'); 196 | }, 197 | clickSubmit = function (ev) { 198 | var cal = $(this).parent(); 199 | var col = cal.data('colorpicker').color; 200 | cal.data('colorpicker').origColor = col; 201 | setCurrentColor(col, cal.get(0)); 202 | cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); 203 | }, 204 | show = function (ev) { 205 | var cal = $('#' + $(this).data('colorpickerId')); 206 | cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); 207 | var pos = $(this).offset(); 208 | var viewPort = getViewport(); 209 | var top = pos.top + this.offsetHeight; 210 | var left = pos.left; 211 | if (top + 176 > viewPort.t + viewPort.h) { 212 | top -= this.offsetHeight + 176; 213 | } 214 | if (left + 356 > viewPort.l + viewPort.w) { 215 | left -= 356; 216 | } 217 | cal.css({left: left + 'px', top: top + 'px'}); 218 | if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { 219 | cal.show(); 220 | } 221 | $(document).bind('mousedown', {cal: cal}, hide); 222 | return false; 223 | }, 224 | hide = function (ev) { 225 | if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { 226 | if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { 227 | ev.data.cal.hide(); 228 | } 229 | $(document).unbind('mousedown', hide); 230 | } 231 | }, 232 | isChildOf = function(parentEl, el, container) { 233 | if (parentEl == el) { 234 | return true; 235 | } 236 | if (parentEl.contains) { 237 | return parentEl.contains(el); 238 | } 239 | if ( parentEl.compareDocumentPosition ) { 240 | return !!(parentEl.compareDocumentPosition(el) & 16); 241 | } 242 | var prEl = el.parentNode; 243 | while(prEl && prEl != container) { 244 | if (prEl == parentEl) 245 | return true; 246 | prEl = prEl.parentNode; 247 | } 248 | return false; 249 | }, 250 | getViewport = function () { 251 | var m = document.compatMode == 'CSS1Compat'; 252 | return { 253 | l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), 254 | t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), 255 | w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), 256 | h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) 257 | }; 258 | }, 259 | fixHSB = function (hsb) { 260 | return { 261 | h: Math.min(360, Math.max(0, hsb.h)), 262 | s: Math.min(100, Math.max(0, hsb.s)), 263 | b: Math.min(100, Math.max(0, hsb.b)) 264 | }; 265 | }, 266 | fixRGB = function (rgb) { 267 | return { 268 | r: Math.min(255, Math.max(0, rgb.r)), 269 | g: Math.min(255, Math.max(0, rgb.g)), 270 | b: Math.min(255, Math.max(0, rgb.b)) 271 | }; 272 | }, 273 | fixHex = function (hex) { 274 | var len = 6 - hex.length; 275 | if (len > 0) { 276 | var o = []; 277 | for (var i=0; i -1) ? hex.substring(1) : hex), 16); 287 | return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; 288 | }, 289 | HexToHSB = function (hex) { 290 | return RGBToHSB(HexToRGB(hex)); 291 | }, 292 | RGBToHSB = function (rgb) { 293 | var hsb = { 294 | h: 0, 295 | s: 0, 296 | b: 0 297 | }; 298 | var min = Math.min(rgb.r, rgb.g, rgb.b); 299 | var max = Math.max(rgb.r, rgb.g, rgb.b); 300 | var delta = max - min; 301 | hsb.b = max; 302 | if (max != 0) { 303 | 304 | } 305 | hsb.s = max != 0 ? 255 * delta / max : 0; 306 | if (hsb.s != 0) { 307 | if (rgb.r == max) { 308 | hsb.h = (rgb.g - rgb.b) / delta; 309 | } else if (rgb.g == max) { 310 | hsb.h = 2 + (rgb.b - rgb.r) / delta; 311 | } else { 312 | hsb.h = 4 + (rgb.r - rgb.g) / delta; 313 | } 314 | } else { 315 | hsb.h = -1; 316 | } 317 | hsb.h *= 60; 318 | if (hsb.h < 0) { 319 | hsb.h += 360; 320 | } 321 | hsb.s *= 100/255; 322 | hsb.b *= 100/255; 323 | return hsb; 324 | }, 325 | HSBToRGB = function (hsb) { 326 | var rgb = {}; 327 | var h = Math.round(hsb.h); 328 | var s = Math.round(hsb.s*255/100); 329 | var v = Math.round(hsb.b*255/100); 330 | if(s == 0) { 331 | rgb.r = rgb.g = rgb.b = v; 332 | } else { 333 | var t1 = v; 334 | var t2 = (255-s)*v/255; 335 | var t3 = (t1-t2)*(h%60)/60; 336 | if(h==360) h = 0; 337 | if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3} 338 | else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3} 339 | else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3} 340 | else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3} 341 | else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3} 342 | else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3} 343 | else {rgb.r=0; rgb.g=0; rgb.b=0} 344 | } 345 | return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; 346 | }, 347 | RGBToHex = function (rgb) { 348 | var hex = [ 349 | rgb.r.toString(16), 350 | rgb.g.toString(16), 351 | rgb.b.toString(16) 352 | ]; 353 | $.each(hex, function (nr, val) { 354 | if (val.length == 1) { 355 | hex[nr] = '0' + val; 356 | } 357 | }); 358 | return hex.join(''); 359 | }, 360 | HSBToHex = function (hsb) { 361 | return RGBToHex(HSBToRGB(hsb)); 362 | }, 363 | restoreOriginal = function () { 364 | var cal = $(this).parent(); 365 | var col = cal.data('colorpicker').origColor; 366 | cal.data('colorpicker').color = col; 367 | fillRGBFields(col, cal.get(0)); 368 | fillHexFields(col, cal.get(0)); 369 | fillHSBFields(col, cal.get(0)); 370 | setSelector(col, cal.get(0)); 371 | setHue(col, cal.get(0)); 372 | setNewColor(col, cal.get(0)); 373 | }; 374 | return { 375 | init: function (opt) { 376 | opt = $.extend({}, defaults, opt||{}); 377 | if (typeof opt.color == 'string') { 378 | opt.color = HexToHSB(opt.color); 379 | } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { 380 | opt.color = RGBToHSB(opt.color); 381 | } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { 382 | opt.color = fixHSB(opt.color); 383 | } else { 384 | return this; 385 | } 386 | return this.each(function () { 387 | if (!$(this).data('colorpickerId')) { 388 | var options = $.extend({}, opt); 389 | options.origColor = opt.color; 390 | var id = 'collorpicker_' + parseInt(Math.random() * 1000); 391 | $(this).data('colorpickerId', id); 392 | var cal = $(tpl).attr('id', id); 393 | if (options.flat) { 394 | cal.appendTo(this).show(); 395 | } else { 396 | cal.appendTo(document.body); 397 | } 398 | options.fields = cal 399 | .find('input') 400 | .bind('keyup', keyDown) 401 | .bind('change', change) 402 | .bind('blur', blur) 403 | .bind('focus', focus); 404 | cal 405 | .find('span').bind('mousedown', downIncrement).end() 406 | .find('>div.colorpicker_current_color').bind('click', restoreOriginal); 407 | options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); 408 | options.selectorIndic = options.selector.find('div div'); 409 | options.el = this; 410 | options.hue = cal.find('div.colorpicker_hue div'); 411 | cal.find('div.colorpicker_hue').bind('mousedown', downHue); 412 | options.newColor = cal.find('div.colorpicker_new_color'); 413 | options.currentColor = cal.find('div.colorpicker_current_color'); 414 | cal.data('colorpicker', options); 415 | cal.find('div.colorpicker_submit') 416 | .bind('mouseenter', enterSubmit) 417 | .bind('mouseleave', leaveSubmit) 418 | .bind('click', clickSubmit); 419 | fillRGBFields(options.color, cal.get(0)); 420 | fillHSBFields(options.color, cal.get(0)); 421 | fillHexFields(options.color, cal.get(0)); 422 | setHue(options.color, cal.get(0)); 423 | setSelector(options.color, cal.get(0)); 424 | setCurrentColor(options.color, cal.get(0)); 425 | setNewColor(options.color, cal.get(0)); 426 | if (options.flat) { 427 | cal.css({ 428 | position: 'relative', 429 | display: 'block' 430 | }); 431 | } else { 432 | $(this).bind(options.eventName, show); 433 | } 434 | } 435 | }); 436 | }, 437 | showPicker: function() { 438 | return this.each( function () { 439 | if ($(this).data('colorpickerId')) { 440 | show.apply(this); 441 | } 442 | }); 443 | }, 444 | hidePicker: function() { 445 | return this.each( function () { 446 | if ($(this).data('colorpickerId')) { 447 | $('#' + $(this).data('colorpickerId')).hide(); 448 | } 449 | }); 450 | }, 451 | setColor: function(col) { 452 | if (typeof col == 'string') { 453 | col = HexToHSB(col); 454 | } else if (col.r != undefined && col.g != undefined && col.b != undefined) { 455 | col = RGBToHSB(col); 456 | } else if (col.h != undefined && col.s != undefined && col.b != undefined) { 457 | col = fixHSB(col); 458 | } else { 459 | return this; 460 | } 461 | return this.each(function(){ 462 | if ($(this).data('colorpickerId')) { 463 | var cal = $('#' + $(this).data('colorpickerId')); 464 | cal.data('colorpicker').color = col; 465 | cal.data('colorpicker').origColor = col; 466 | fillRGBFields(col, cal.get(0)); 467 | fillHSBFields(col, cal.get(0)); 468 | fillHexFields(col, cal.get(0)); 469 | setHue(col, cal.get(0)); 470 | setSelector(col, cal.get(0)); 471 | setCurrentColor(col, cal.get(0)); 472 | setNewColor(col, cal.get(0)); 473 | } 474 | }); 475 | } 476 | }; 477 | }(); 478 | $.fn.extend({ 479 | ColorPicker: ColorPicker.init, 480 | ColorPickerHide: ColorPicker.hidePicker, 481 | ColorPickerShow: ColorPicker.showPicker, 482 | ColorPickerSetColor: ColorPicker.setColor 483 | }); 484 | })(jQuery) -------------------------------------------------------------------------------- /js/picker/eye.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Zoomimage 4 | * Author: Stefan Petre www.eyecon.ro 5 | * 6 | */ 7 | (function($){ 8 | var EYE = window.EYE = function() { 9 | var _registered = { 10 | init: [] 11 | }; 12 | return { 13 | init: function() { 14 | $.each(_registered.init, function(nr, fn){ 15 | fn.call(); 16 | }); 17 | }, 18 | extend: function(prop) { 19 | for (var i in prop) { 20 | if (prop[i] != undefined) { 21 | this[i] = prop[i]; 22 | } 23 | } 24 | }, 25 | register: function(fn, type) { 26 | if (!_registered[type]) { 27 | _registered[type] = []; 28 | } 29 | _registered[type].push(fn); 30 | } 31 | }; 32 | }(); 33 | $(EYE.init); 34 | })(jQuery); 35 | -------------------------------------------------------------------------------- /js/picker/layout.js: -------------------------------------------------------------------------------- 1 | (function($){ 2 | var initLayout = function() { 3 | var hash = window.location.hash.replace('#', ''); 4 | var currentTab = $('ul.navigationTabs a') 5 | .bind('click', showTab) 6 | .filter('a[rel=' + hash + ']'); 7 | if (currentTab.size() == 0) { 8 | currentTab = $('ul.navigationTabs a:first'); 9 | } 10 | showTab.apply(currentTab.get(0)); 11 | $('#colorpickerHolder').ColorPicker({flat: true}); 12 | $('#colorpickerHolder2').ColorPicker({ 13 | flat: true, 14 | color: '#00ff00', 15 | onSubmit: function(hsb, hex, rgb) { 16 | $('#colorSelector2 div').css('backgroundColor', '#' + hex); 17 | } 18 | }); 19 | $('#colorpickerHolder2>div').css('position', 'absolute'); 20 | var widt = false; 21 | $('#colorSelector2').bind('click', function() { 22 | $('#colorpickerHolder2').stop().animate({height: widt ? 0 : 173}, 500); 23 | widt = !widt; 24 | }); 25 | $('#colorpickerField1, #colorpickerField2, #colorpickerField3').ColorPicker({ 26 | onSubmit: function(hsb, hex, rgb, el) { 27 | $(el).val(hex); 28 | $(el).ColorPickerHide(); 29 | }, 30 | onBeforeShow: function () { 31 | $(this).ColorPickerSetColor(this.value); 32 | } 33 | }) 34 | .bind('keyup', function(){ 35 | $(this).ColorPickerSetColor(this.value); 36 | }); 37 | $('#colorSelector').ColorPicker({ 38 | color: '#0000ff', 39 | onShow: function (colpkr) { 40 | $(colpkr).fadeIn(500); 41 | return false; 42 | }, 43 | onHide: function (colpkr) { 44 | $(colpkr).fadeOut(500); 45 | return false; 46 | }, 47 | onChange: function (hsb, hex, rgb) { 48 | $('#colorSelector div').css('backgroundColor', '#' + hex); 49 | } 50 | }); 51 | }; 52 | 53 | var showTab = function(e) { 54 | var tabIndex = $('ul.navigationTabs a') 55 | .removeClass('active') 56 | .index(this); 57 | $(this) 58 | .addClass('active') 59 | .blur(); 60 | $('div.tab') 61 | .hide() 62 | .eq(tabIndex) 63 | .show(); 64 | }; 65 | 66 | EYE.register(initLayout, 'init'); 67 | })(jQuery) -------------------------------------------------------------------------------- /js/picker/utils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Utilities 4 | * Author: Stefan Petre www.eyecon.ro 5 | * 6 | */ 7 | (function($) { 8 | EYE.extend({ 9 | getPosition : function(e, forceIt) 10 | { 11 | var x = 0; 12 | var y = 0; 13 | var es = e.style; 14 | var restoreStyles = false; 15 | if (forceIt && jQuery.curCSS(e,'display') == 'none') { 16 | var oldVisibility = es.visibility; 17 | var oldPosition = es.position; 18 | restoreStyles = true; 19 | es.visibility = 'hidden'; 20 | es.display = 'block'; 21 | es.position = 'absolute'; 22 | } 23 | var el = e; 24 | if (el.getBoundingClientRect) { // IE 25 | var box = el.getBoundingClientRect(); 26 | x = box.left + Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) - 2; 27 | y = box.top + Math.max(document.documentElement.scrollTop, document.body.scrollTop) - 2; 28 | } else { 29 | x = el.offsetLeft; 30 | y = el.offsetTop; 31 | el = el.offsetParent; 32 | if (e != el) { 33 | while (el) { 34 | x += el.offsetLeft; 35 | y += el.offsetTop; 36 | el = el.offsetParent; 37 | } 38 | } 39 | if (jQuery.browser.safari && jQuery.curCSS(e, 'position') == 'absolute' ) { 40 | x -= document.body.offsetLeft; 41 | y -= document.body.offsetTop; 42 | } 43 | el = e.parentNode; 44 | while (el && el.tagName.toUpperCase() != 'BODY' && el.tagName.toUpperCase() != 'HTML') 45 | { 46 | if (jQuery.curCSS(el, 'display') != 'inline') { 47 | x -= el.scrollLeft; 48 | y -= el.scrollTop; 49 | } 50 | el = el.parentNode; 51 | } 52 | } 53 | if (restoreStyles == true) { 54 | es.display = 'none'; 55 | es.position = oldPosition; 56 | es.visibility = oldVisibility; 57 | } 58 | return {x:x, y:y}; 59 | }, 60 | getSize : function(e) 61 | { 62 | var w = parseInt(jQuery.curCSS(e,'width'), 10); 63 | var h = parseInt(jQuery.curCSS(e,'height'), 10); 64 | var wb = 0; 65 | var hb = 0; 66 | if (jQuery.curCSS(e, 'display') != 'none') { 67 | wb = e.offsetWidth; 68 | hb = e.offsetHeight; 69 | } else { 70 | var es = e.style; 71 | var oldVisibility = es.visibility; 72 | var oldPosition = es.position; 73 | es.visibility = 'hidden'; 74 | es.display = 'block'; 75 | es.position = 'absolute'; 76 | wb = e.offsetWidth; 77 | hb = e.offsetHeight; 78 | es.display = 'none'; 79 | es.position = oldPosition; 80 | es.visibility = oldVisibility; 81 | } 82 | return {w:w, h:h, wb:wb, hb:hb}; 83 | }, 84 | getClient : function(e) 85 | { 86 | var h, w; 87 | if (e) { 88 | w = e.clientWidth; 89 | h = e.clientHeight; 90 | } else { 91 | var de = document.documentElement; 92 | w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; 93 | h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; 94 | } 95 | return {w:w,h:h}; 96 | }, 97 | getScroll : function (e) 98 | { 99 | var t=0, l=0, w=0, h=0, iw=0, ih=0; 100 | if (e && e.nodeName.toLowerCase() != 'body') { 101 | t = e.scrollTop; 102 | l = e.scrollLeft; 103 | w = e.scrollWidth; 104 | h = e.scrollHeight; 105 | } else { 106 | if (document.documentElement) { 107 | t = document.documentElement.scrollTop; 108 | l = document.documentElement.scrollLeft; 109 | w = document.documentElement.scrollWidth; 110 | h = document.documentElement.scrollHeight; 111 | } else if (document.body) { 112 | t = document.body.scrollTop; 113 | l = document.body.scrollLeft; 114 | w = document.body.scrollWidth; 115 | h = document.body.scrollHeight; 116 | } 117 | if (typeof pageYOffset != 'undefined') { 118 | t = pageYOffset; 119 | l = pageXOffset; 120 | } 121 | iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0; 122 | ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0; 123 | } 124 | return { t: t, l: l, w: w, h: h, iw: iw, ih: ih }; 125 | }, 126 | getMargins : function(e, toInteger) 127 | { 128 | var t = jQuery.curCSS(e,'marginTop') || ''; 129 | var r = jQuery.curCSS(e,'marginRight') || ''; 130 | var b = jQuery.curCSS(e,'marginBottom') || ''; 131 | var l = jQuery.curCSS(e,'marginLeft') || ''; 132 | if (toInteger) 133 | return { 134 | t: parseInt(t, 10)||0, 135 | r: parseInt(r, 10)||0, 136 | b: parseInt(b, 10)||0, 137 | l: parseInt(l, 10) 138 | }; 139 | else 140 | return {t: t, r: r, b: b, l: l}; 141 | }, 142 | getPadding : function(e, toInteger) 143 | { 144 | var t = jQuery.curCSS(e,'paddingTop') || ''; 145 | var r = jQuery.curCSS(e,'paddingRight') || ''; 146 | var b = jQuery.curCSS(e,'paddingBottom') || ''; 147 | var l = jQuery.curCSS(e,'paddingLeft') || ''; 148 | if (toInteger) 149 | return { 150 | t: parseInt(t, 10)||0, 151 | r: parseInt(r, 10)||0, 152 | b: parseInt(b, 10)||0, 153 | l: parseInt(l, 10) 154 | }; 155 | else 156 | return {t: t, r: r, b: b, l: l}; 157 | }, 158 | getBorder : function(e, toInteger) 159 | { 160 | var t = jQuery.curCSS(e,'borderTopWidth') || ''; 161 | var r = jQuery.curCSS(e,'borderRightWidth') || ''; 162 | var b = jQuery.curCSS(e,'borderBottomWidth') || ''; 163 | var l = jQuery.curCSS(e,'borderLeftWidth') || ''; 164 | if (toInteger) 165 | return { 166 | t: parseInt(t, 10)||0, 167 | r: parseInt(r, 10)||0, 168 | b: parseInt(b, 10)||0, 169 | l: parseInt(l, 10)||0 170 | }; 171 | else 172 | return {t: t, r: r, b: b, l: l}; 173 | }, 174 | traverseDOM : function(nodeEl, func) 175 | { 176 | func(nodeEl); 177 | nodeEl = nodeEl.firstChild; 178 | while(nodeEl){ 179 | EYE.traverseDOM(nodeEl, func); 180 | nodeEl = nodeEl.nextSibling; 181 | } 182 | }, 183 | getInnerWidth : function(el, scroll) { 184 | var offsetW = el.offsetWidth; 185 | return scroll ? Math.max(el.scrollWidth,offsetW) - offsetW + el.clientWidth:el.clientWidth; 186 | }, 187 | getInnerHeight : function(el, scroll) { 188 | var offsetH = el.offsetHeight; 189 | return scroll ? Math.max(el.scrollHeight,offsetH) - offsetH + el.clientHeight:el.clientHeight; 190 | }, 191 | getExtraWidth : function(el) { 192 | if($.boxModel) 193 | return (parseInt($.curCSS(el, 'paddingLeft'))||0) 194 | + (parseInt($.curCSS(el, 'paddingRight'))||0) 195 | + (parseInt($.curCSS(el, 'borderLeftWidth'))||0) 196 | + (parseInt($.curCSS(el, 'borderRightWidth'))||0); 197 | return 0; 198 | }, 199 | getExtraHeight : function(el) { 200 | if($.boxModel) 201 | return (parseInt($.curCSS(el, 'paddingTop'))||0) 202 | + (parseInt($.curCSS(el, 'paddingBottom'))||0) 203 | + (parseInt($.curCSS(el, 'borderTopWidth'))||0) 204 | + (parseInt($.curCSS(el, 'borderBottomWidth'))||0); 205 | return 0; 206 | }, 207 | isChildOf: function(parentEl, el, container) { 208 | if (parentEl == el) { 209 | return true; 210 | } 211 | if (!el || !el.nodeType || el.nodeType != 1) { 212 | return false; 213 | } 214 | if (parentEl.contains && !$.browser.safari) { 215 | return parentEl.contains(el); 216 | } 217 | if ( parentEl.compareDocumentPosition ) { 218 | return !!(parentEl.compareDocumentPosition(el) & 16); 219 | } 220 | var prEl = el.parentNode; 221 | while(prEl && prEl != container) { 222 | if (prEl == parentEl) 223 | return true; 224 | prEl = prEl.parentNode; 225 | } 226 | return false; 227 | }, 228 | centerEl : function(el, axis) 229 | { 230 | var clientScroll = EYE.getScroll(); 231 | var size = EYE.getSize(el); 232 | if (!axis || axis == 'vertically') 233 | $(el).css( 234 | { 235 | top: clientScroll.t + ((Math.min(clientScroll.h,clientScroll.ih) - size.hb)/2) + 'px' 236 | } 237 | ); 238 | if (!axis || axis == 'horizontally') 239 | $(el).css( 240 | { 241 | left: clientScroll.l + ((Math.min(clientScroll.w,clientScroll.iw) - size.wb)/2) + 'px' 242 | } 243 | ); 244 | } 245 | }); 246 | if (!$.easing.easeout) { 247 | $.easing.easeout = function(p, n, firstNum, delta, duration) { 248 | return -delta * ((n=n/duration-1)*n*n*n - 1) + firstNum; 249 | }; 250 | } 251 | 252 | })(jQuery); -------------------------------------------------------------------------------- /js/stylesheet.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Minimalist for Google Reader 3 | // @author Ansel Santosa 4 | // @namespace http://chrome.google.com/webstore 5 | // @description Stylesheet construction and injection 6 | // ==/UserScript== 7 | 8 | chrome.extension.sendRequest({elements: 'o'}, function(response) { 9 | var css = ""; 10 | 11 | css += "input:not(#search-restrict-input), textarea { outline: 0; margin: 1px !important; border: 1px solid !important; border-color: #585858 #B0B0B0 #B0B0B0 #B0B0B0 !important; }\n"; 12 | css += "input:focus, textarea:focus { outline: 0; margin: 0px !important; border: 2px solid #BCF !important; }\n"; 13 | css += "#nav:not([min ~= 'hideN']) { width: " + response.o.navW + "px !important; }\n"; 14 | css += "#chrome { margin-left: " + response.o.navW + "px; }\n"; 15 | css += "#chrome[min ~= 'hideN'] { margin-left: 0; }\n"; 16 | css += "#gbar, #guser { height: 20px; padding-bottom: 0 !important; }\n"; 17 | css += ".subscribe-button { padding-left: 0 !important; background: none; }\n"; 18 | css += "#main, #search, #logo-container { margin-top: 5px !important; }" 19 | 20 | /*css += "#nav { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAK8CAMAAAD/Ke59AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE5QTFRFHx8fMzMzMjIyNjY2MTExMDAwLi4uLy8vLS0tNTU1NDQ0Hh4eKysrHR0dLCwsKioqKCgoKSkpICAgJSUlJiYmJycnJCQkISEhIyMjIiIiHhf88QAAAR9JREFUeNrs1NtuwyAMBmCS5tSWcgiHwPu/6LwsEm2BhATSadJuflnflYWN0eVCKSJkHJFSVYUeD87Rv51s9Y9dr87qMw3jFOO+8W1jLGi3235rmrDdX0xKsPsZVlWFrH0ySmdrC1hdpxpEAev7b1O+qbA1TaZxOk2e8ah1IesWa31rd5sQYAjFTfmmPOt7Z8NQyBhzJmWydd26EfI5G4aQQSyG8YYpdchIyMhe0xqu6DgKkWUYZ5qUUYPLsBjEm1H6+wY/ajbOU0z7phcTopgx5gy2c8UgnE3TixlTwpRaN5j0umlhrWf6kEmZYMZsGrzkToNIMCEyzZioQVfZpkOmS5i1YNYeNKiiZkyCzV2FzIbMJttcnWDWtz8SXwIMAM8UwWqEpG2GAAAAAElFTkSuQmCC) repeat-x #222 !important;}" 21 | + "#nav [class*='link'], #nav [id*='link'], #nav [class*='lk'], #nav [id*='lk'] { color: #fff !important; }" 22 | + ".scroll-tree li, .lhn-section { background: transparent !important; background-color: transparent !important; }" 23 | + "#sub-tree::-webkit-scrollbar { width: 0px; }";*/ 24 | 25 | // GENERAL 26 | if (response.o.trans) 27 | css += "* { -webkit-transition-property: background-color, border-color, color, opacity, width, top; -webkit-transition-duration: .15s; -webkit-transition-timing-function: ease-out; }\n"; 28 | if (response.o.corners) 29 | css += "input, textarea { -webkit-border-radius: 5px; }\n"; 30 | if (response.o.backC) { 31 | css += "body, .scroll-tree li, .lhn-section, #entries .entry { background: " + response.o.backCLR + " !important; background-color: " + response.o.backCLR + " !important; }\n"; 32 | } 33 | if (response.o.borders) { 34 | css += "#chrome-header, #chrome-view-links, #chrome-lhn-toggle:hover, #lhn-selectors .selected, #lhn-selectors .selected:hover, .scroll-tree li .tree-link-selected, .scroll-tree li .tree-link-selected:hover, .scroll-tree li a.tree-link-selected .tree-item-action-container { background: " + response.o.borderCLR + " !important; background-color: " + response.o.borderCLR + " !important; }\n"; 35 | css += "#viewer-footer, #viewer-header, #chrome-lhn-toggle, .selector:not(.selected):hover, a.link:hover { background: " + lighten(lighten(response.o.borderCLR)) + " !important; background-color: " + lighten(lighten(response.o.borderCLR)) + " !important; }\n"; 36 | css += "a.link:hover div:last-child { background-color: " + lighten(lighten(response.o.borderCLR)) + "; }\n"; 37 | css += "#viewer-container, #entries.list .read .collapsed, #entries.list .entry .entry-actions { background: " + lighten(lighten(lighten(response.o.borderCLR))) + " !important; background-color: " + lighten(lighten(lighten(response.o.borderCLR))) + " !important; }\n"; 38 | css += ".selected > a.link:hover { background: transparent !important; background-color: transparent !important; }\n"; 39 | css += "#current-entry .card, #viewer-footer, #viewer-top-controls, #chrome, .lhn-section, .gbh, .gbd, #entries.list #current-entry .collapsed, #entries.list #current-entry.expanded, #entries.list #current-entry.expanded .entry-actions { border-color: " + response.o.borderCLR + " }\n"; 40 | css += "#chrome-lhn-toggle-icon { display: none; }\n"; 41 | } 42 | if (response.o.BTN) { 43 | css += ".goog-button-base-content { color: " + response.o.BTNcolor + " !important; }\n"; 44 | css += ".goog-button-base-inner-box { background: -webkit-gradient(linear,0% 40%,0% 70%,from(" + response.o.BTNbottom + "),to(" + response.o.BTNtop + ")) !important; }\n"; 45 | css += ".goog-button-base-top-shadow { display: none; }\n"; 46 | css += ".goog-button-base-pos { border-color: " + response.o.BTNborder + " !important; }\n"; 47 | } else { 48 | css += ".goog-button-base-content { color: #000 !important; }\n"; 49 | css += ".goog-button-base-inner-box { background: -webkit-gradient(linear,0% 40%,0% 70%,from(#f9f9f9),to(#ded5de)) !important; }\n"; 50 | css += ".goog-button-base-top-shadow { display: none; }\n"; 51 | css += ".goog-button-base-pos { border-color: #bbb !important; }\n"; 52 | } 53 | if (response.o.linkC) 54 | css += "[class *= 'link'], [id *= 'link'], [class *= 'lk'], [id *= 'lk'], .st-more, .mv-dayname, .dp-sb-cur, .mg-print, .mg-refresh, .ui-dtsr-unselected, .qnb-quickadd, a, a[class *= 'gb'] { color: " + response.o.linkCLR + " !important; }\n"; 55 | // GOOGLE BAR 56 | if (response.o.gbar) 57 | css += "#gbar, #gbz { display: none !important; }\n"; 58 | if (response.o.gbarH) { 59 | css += "#gbx1, #gbx2, #gbz, #gbg { top: 10px !important; }\n"; 60 | css += "#gbx3, #gbx4 { top: 12px !important; }\n"; 61 | css += "#gbs { top: 42px !important; }\n"; 62 | css += "#gbarToggle { background-color: rgb(0,0,0,0); height: 10px !important; cursor: pointer !important;}\n"; 63 | css += "#gbarToggle:hover { background-color: rgba(0,0,0,.5); }\n"; 64 | css += ".gbh, .gbd { top: 34px; }\n"; 65 | css += "#logo-container[min ~= 'hideG'] { top: 50px !important; }\n"; 66 | css += "#logo-search[min ~= 'hideG'] { top: 50px !important; }\n"; 67 | css += "#search[min ~= 'hideG'] { top: 75px !important; }\n"; 68 | } 69 | if (response.o.gbarO) { 70 | css += "#gbz, #gbg, #gbx3, #gbx4 ,#guser, #gbar { opacity: 0; -webkit-transition-delay: .25s; }\n"; 71 | css += "#gb:hover #gbz, #gb:hover #gbg, #gb:hover #gbx3, #gb:hover #gb:hover #gbx4, #gbar:hover, #guser:hover { opacity: 1 !important; }\n" 72 | } 73 | if (response.o.gbarB) 74 | css += ".gbh, .gbd, #gbx3, #gbx4 { background-image: none !important; background-color: rgba(255,255,255,0) !important; border: 0 !important; }\n"; 75 | // HEADER 76 | if (response.o.header || response.o.gbarH) { 77 | css += "[min ~= 'hideH'], [min ~= 'hideH'] *, [min ~= 'hideG'], [min ~= 'hideG'] * { opacity: 0; margin: 0 !important; padding: 0 !important; height: 0 !important; }\n"; 78 | css += "[min ~= 'hideH'] *, [min ~= 'hideG'] * { display: none; }\n"; 79 | } 80 | if (response.o.header) { 81 | //css += "[min ~= 'hideH'] #ntowner { margin-top: -20px !importnat; opacity: 1 !important; }\n"; 82 | } 83 | if (response.o.header && !response.o.gbarH) { 84 | css += "#headerToggle { z-index: 9999; background-color: rgba(0,0,0,0); position: absolute; top: 25px; height: 10px !important; width: 100%; cursor: pointer !important;}\n"; 85 | css += "#headerToggle:hover { background-color: rgba(0,0,0,.15); }\n"; 86 | } 87 | if (response.o.logo) { 88 | css += "#logo { background: url(" + response.o.logoSRC + ") !important; background-position: 0% 0%; background-repeat: no-repeat no-repeat; }\n"; 89 | } 90 | if (response.o.logoH) { 91 | css += "#logo-container { display: none !important; }\n"; 92 | css += "#search { left: 10px !important; }\n"; 93 | } 94 | if (response.o.s_all) 95 | css += "#search { display: none !important; }\n"; 96 | if (response.o.s_filter) 97 | css += "#search-restrict { display: none !important; }\n"; 98 | if (response.o.s_button) 99 | css += "#search-submit { display: none !important; }\n"; 100 | // MAIN 101 | if (response.o.t_title) { 102 | css += "#chrome-header { display: none !important; }\n"; 103 | if (response.o.borders) 104 | css += "#chrome-viewer-container { border-top: 1px solid " + response.o.borderCLR + " !important; }\n"; 105 | else css += "#chrome-viewer-container { border-top: 1px solid #C2CFF1 !important; }\n"; 106 | } 107 | if (response.o.t_el) 108 | css += "#chrome-view-links { display: none; }\n"; 109 | if (response.o.t_top) 110 | css += "#viewer-header { display: none; }\n"; 111 | if (response.o.n_na) 112 | css += "#viewer-all-new-links { display: none; }\n"; 113 | if (response.o.n_read) 114 | css += "#mark-all-as-read-split-button { display: none; }\n"; 115 | if (response.o.t_refresh) 116 | css += "#viewer-refresh { display: none; }\n"; 117 | if (response.o.t_view) 118 | css += "#stream-prefs-menu { display: none; }\n"; 119 | if (response.o.footer) 120 | css += "#viewer-footer { display: none; }\n"; 121 | if (response.o.h_side) 122 | css += "#right-section { display: none; }\n"; 123 | if (response.o.h_tips) 124 | css += "#tips { display: none; }\n"; 125 | if (response.o.h_blog) 126 | css += "#team-messages { display: none; }\n"; 127 | if (response.o.h_footer) { 128 | css += "#overview-footer { display: none; }\n"; 129 | css += "#sections { border: 0 !important; border-color: transparent !important; }\n"; 130 | } 131 | if ((response.o.itemW != 0) && (response.o.itemW != 650)) 132 | css += ".entry .entry-body, .entry .entry-title, .entry .entry-likers { max-width: " + response.o.itemW + "px !important; }\n"; 133 | if (response.o.i_break) 134 | css += ".entry-title-go-to { background: none !important; }\n"; 135 | if (response.o.i_footer) 136 | css += ".entry-actions { display: none; }\n"; 137 | if (response.o.i_text) { 138 | css += ".entry-actions span, .entry-actions span span { display: inline-block; width: 16px !important; margin: 0 5px 0 0 !important; padding: 0 !important; color: transparent !important; }\n"; 139 | css += ".action-area { margin-top: -4px !important; }\n"; 140 | css += ".entry-actions span:nth-of-type(7) { display: none !important; }\n"; 141 | } 142 | if (response.o.i_star) 143 | css += ".star { display: none !important; }\n"; 144 | if (response.o.i_like) 145 | css += ".like { display: none !important; }\n"; 146 | if (response.o.i_share) 147 | css += ".broadcast { display: none !important; }\n"; 148 | if (response.o.i_note) 149 | css += ".broadcast-with-note { display: none !important; }\n"; 150 | if (response.o.i_email) 151 | css += ".email { display: none !important; }\n"; 152 | if (response.o.i_unread) 153 | css += ".read-state { display: none !important; }\n"; 154 | if (response.o.i_tags) 155 | css += ".tag { display: none !important; }\n"; 156 | // NAVIGATION 157 | if (response.o.nav) { 158 | css += "#navToggle { z-index: 999; background-color: rgba(0,0,0,0); width: 10px !important; cursor: pointer !important; }\n"; 159 | css += "#navToggle:hover { background: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,.15)), to(rgba(0,0,0,0))); }\n"; 160 | css += "td[min ~= 'hideN'] { width: 0px !important; opacity: 0 !important; overflow: hidden !important; }\n"; 161 | css += "#sidebar:not([min ~= 'hideN']) { width: " + (parseInt(response.o.navW) + 10) + "px !important; }\n"; 162 | css += "#sidebar, #sidebar[min ~= 'hideN'] + #mainnav { border-left: 10px solid #fff; }\n"; 163 | //css += "#sidebar, #nav { width: " + response.o.navW + "px; opacity: 1; }\n"; 164 | } 165 | if (response.o.navA) 166 | css += "#lhn-add-subscription-section { display: none; }\n"; 167 | if (response.o.n_icons) { 168 | css += ".selector-icon, .scroll-tree .icon, .scroll-tree .sub-icon, #recommendations-tree .sub-icon { display: none; }\n"; 169 | css += ".scroll-tree .name { padding-left: 0;}" 170 | } 171 | if (response.o.n_dim) { 172 | css += ".scroll-tree .icon { opacity: .5; }\n"; 173 | css += ".scroll-tree li:hover > a > .icon { opacity: 1;}" 174 | } 175 | if (response.o.n_manage || response.o.n_shareS) 176 | css += ".lhn-section-footer, .lhn-section-footer * { visibility: hidden !important; height: 0px !important; }\n"; 177 | if (response.o.n_home) 178 | css += "#lhn-selectors { display: none; }\n"; 179 | if (response.o.n_all) 180 | css += "#reading-list-selector { display: none; }\n"; 181 | if (response.o.n_star) 182 | css += "#star-selector { display: none; }\n"; 183 | if (response.o.n_your) 184 | css += "#your-items-tree-item-0-main { display: none; }\n"; 185 | if (response.o.n_share) 186 | css += "#your-items-tree-item-1-link { display: none; }\n"; 187 | if (response.o.n_notes) 188 | css += "#your-items-tree-item-2-link { display: none; }\n"; 189 | if (response.o.n_trends) 190 | css += "#trends-selector { display: none; }\n"; 191 | if (response.o.n_browse) 192 | css += "#directory-selector { display: none; }\n"; 193 | if (response.o.n_follow) 194 | css += "#friends-tree-container { display: none; }\n"; 195 | if (response.o.n_new) 196 | css += "#lhn-friends-indicator { display: none; }\n"; 197 | if (response.o.n_explore) 198 | css += "#recommendations-tree-container { display: none; }\n"; 199 | // CUSTOM 200 | if (response.o.customCSS) 201 | css += response.o.customCSSval; 202 | 203 | //---- INJECT CSS ----// 204 | var heads = document.getElementsByTagName("head"); 205 | if (heads.length > 0) { 206 | var node = document.createElement("style"); 207 | node.type = "text/css"; 208 | node.appendChild(document.createTextNode(css)); 209 | heads[0].appendChild(node); 210 | } 211 | //---- END INJECT CSS ----// 212 | 213 | //---- HELPER METHODS ----// 214 | function HexToR(h) { return parseInt((cutHex(h)).substring(0,2),16) } 215 | function HexToG(h) { return parseInt((cutHex(h)).substring(2,4),16) } 216 | function HexToB(h) { return parseInt((cutHex(h)).substring(4,6),16) } 217 | function cutHex(h) { return (h.charAt(0) == "#") ? h.substring(1,7) : h } 218 | function lighten(one) { 219 | if (one.indexOf('rgb') == -1) { 220 | var r = HexToR(one) + 30; 221 | var g = HexToG(one) + 30; 222 | var b = HexToB(one) + 30; 223 | } else { 224 | var rgb = one.split(","); 225 | var r = parseInt(rgb[0].substring(4)) + 20; 226 | var g = parseInt(rgb[1]) + 20; 227 | var b = parseInt(rgb[2].substring(0,rgb[2].indexOf("\)"))) + 20; 228 | } 229 | if (r > 255) 230 | r = 255; 231 | if (g > 255) 232 | g = 255; 233 | if (b > 255) 234 | b = 255; 235 | return "rgb(" + r + "," + g + "," + b + ")"; 236 | } 237 | //---- HELPER METHODS ----// 238 | }); -------------------------------------------------------------------------------- /js/voice.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Ansel's Google Voice tweaks 3 | // @author Ansel Santosa 4 | // @date 11/03/2010 5 | // @namespace Google Voice 6 | // @include http://google.com/voice/* 7 | // @include https://google.com/voice/* 8 | // @include http://*.google.com/voice/* 9 | // @include https://*.google.com/voice/* 10 | // ==/UserScript== 11 | 12 | chrome.extension.sendRequest({elements: 'e'}, function(response) { 13 | if(response.e) { 14 | try 15 | { 16 | // Create array of hide targets 17 | var hide = new Array(); 18 | hide[0] = "#gbar"; // Google universal nav bar 19 | hide[1] = "#gc-sidebar-invite-header"; // Sidebar - Invite 20 | hide[2] = ".gc-footer-inbox"; // Inbox - Footer 21 | hide[3] = "#gc-inbox-select"; // Top Toolbar - Select 22 | hide[4] = "#gc-inbox-archive"; // Top Toolbar - Archive 23 | hide[5] = "#gc-inbox-more-actions"; // Top Toolbar - More Actions 24 | hide[6] = "#gc-inbox-allunread"; // Top Toolbar - Show 25 | hide[7] = "#gc-help-balance"; // Sidebar - Credit - Help icon 26 | hide[8] = "[id=\":65\"]"; // Sidebar - Starred 27 | hide[9] = "[id=\":66\"]"; // Sidebar - Spam 28 | hide[10] = "[id=\":67\"]"; // Sidebar - Trash 29 | // Fencepost for hide 30 | var css = hide[0]; 31 | // Assemble targets for hide 32 | for (i = 1; i < hide.length; i++) 33 | { 34 | css += ", " + hide[i]; 35 | } 36 | // Add attributes for hide 37 | css += " {display: none !important;}"; 38 | // Move number 39 | css += "#gc-header-did-display {position: absolute !important; top: 4px !important; left: 10px !important;}"; 40 | // Font 41 | //css += "body, .gc-message-sms-actions, .gc-simple-menu, .gc-message-list, .gc-message-sms-row, .gc-message-tbl-metadata, .gc-message-sms-show, .gc-message-sms-text, .goog-menuitem-content {font-family: \"Helvetica Neue LT\", sans-serif !important;}"; 42 | // Go gray 43 | //css += ".gc-inbox-sidebar-header, .gc-inbox-view-header, .goog-splitpane-handle {background-color:#C7CACC;}"; 44 | //css += ".gc-message-sms-text {color:#333 !important;}"; 45 | //css += ".gc-message-sms-from, .gc-under gc-message-name-link {color:#222 !important;}"; 46 | //css += "a, .gc-control {color:#333 !important;}"; 47 | // Add stylesheet 48 | var heads = document.getElementsByTagName("head"); 49 | if (heads.length > 0) { 50 | var node = document.createElement("style"); 51 | node.type = "text/css"; 52 | var text = document.createTextNode(css); 53 | node.appendChild(text); 54 | heads[0].appendChild(node); 55 | } 56 | } 57 | catch (eErr) 58 | { 59 | alert ("Oh noes! Error: " + eErr + "\n Tell Ansel to fix it..."); 60 | } 61 | return; 62 | } 63 | }); -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Minimalist for Google Reader™", 3 | "version": "0.5.7", 4 | "description": "Individually hide almost 50 interface elements and add custom logos, and more...", 5 | "icons": { 6 | "16": "img/icons/icon16.png", 7 | "48": "img/icons/icon48.png", 8 | "128": "img/icons/icon128.png" }, 9 | "page_action": { 10 | "default_icon": "img/icons/icon19.png", 11 | "default_title": "Minimalist for Google Reader Options", 12 | "default_popup": "popup.html" 13 | }, 14 | "background_page": "background.html", 15 | "content_scripts": [ { 16 | "matches": [ "http://www.google.com/reader/*", "https://www.google.com/reader/*" ], 17 | "js": [ "js/stylesheet.js" , "js/active.js", "js/favicon.js" ], 18 | "run_at": "document_end", 19 | "all_frames": true 20 | }, { 21 | "matches": [ "http://www.google.com/voice/*", "https://www.google.com/voice/*" ], 22 | "js": [ "js/voice.js" ], 23 | "all_frames": true 24 | } ], 25 | "converted_from_user_script": true, 26 | "options_page": "options.html", 27 | "permissions": [ 28 | "tabs", 29 | "bookmarks", 30 | "http://www.google.com/reader/*", 31 | "https://www.google.com/reader/*" 32 | ] 33 | } -------------------------------------------------------------------------------- /options.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Minimalist for Google Reader Options 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 131 | 144 | 160 | 161 | 162 |
163 |
164 |

Minimalist

165 | 166 |
167 | Subtract until it breaks
The way of the minimalist 168 |
169 |
170 | Settings saved!
Refresh Google Reader to apply 171 |

Some changes require browser restart 172 |
173 |
174 | Import successful!
Refresh Google Reader to apply 175 |
176 |
177 | Easter Egg enabled!
Refresh Voice to apply 178 |
179 |
180 | Easter Egg disabled...
181 |
182 | 183 | 184 | 200 | 201 |
202 |
203 |

Google Reader | general

204 |
205 |

Options Icon

206 |
207 | 208 |  
209 | NOT RECOMMENDED: Only shows up in Google Reader 210 |
211 |
212 |
213 |

Favicon Counter

214 |
215 | 216 |  
217 |
218 |
219 |
220 |

Keyboard Shortcuts

221 |
222 | 223 |  
224 |
225 |
226 |
227 |

Animate Transitions

228 |
229 | 230 |  
231 | Very subtle. Not possible for all transitions.
232 | 233 |
234 |
235 |
236 |

Fields & Input

237 |
238 | 239 |  
240 |
241 |
242 |
243 |

Custom CSS

244 |
245 | 246 |  
247 | 248 |
249 | Don't know CSS? Ask questions and see examples here 250 |
251 |
252 |
253 |
254 |

Google Reader | theme

255 |
256 |

Background

257 |
258 | 259 |  

260 | 261 |
262 |
263 |
264 |

Borders

265 |
266 | 267 |  

268 | NOTE: Dark/main color. Lighter tint calculated automatically
269 |
270 |
271 |
272 |

Links

273 |
274 | 275 |  

276 |
277 |
278 |
279 |

Buttons

280 |
281 | 282 |  
Test button
283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 |
Font
Border
Top
Bottom
304 |
305 |
306 |
307 |
308 |

Google Reader | google bar

309 |
310 |

Hide All

311 |
312 | 313 |  
314 | [ \ ] or click blank stripe to toggle

315 | 316 |  
317 | Note: This will simplify appearance, not save pixels 318 |
319 |
320 |
321 |

Appearance

322 |
323 | 324 |  
325 |
326 |
327 |
328 |

Google Links

329 |
330 | 331 |  
332 | 333 |  
334 | Show input table 335 | 363 |
364 |
365 |
366 |

Google User Bar

367 |
368 | 369 |  
370 | 371 |  
372 | 373 |  
374 | 375 |  
376 | WARNING: if you check this box you will have to toggle MinGreader 377 | off with the URL bar icon to sign out 378 |
379 |
380 |
381 |
382 |

Google Reader | header

383 |
384 |

Hide All

385 |
386 | 387 |  
388 | Click blank stripe to toggle, [ / ] to focus search, [ \ ] to toggle 389 |
390 |
391 |
392 |

Logo

393 |
394 | 395 |  
396 | 397 |  
398 |
399 | 138x30px max. Input via URL or Convert to Base64
400 | Base64 conversion via URL or via upload 401 |
402 |
403 |
404 |

Search

405 |
406 | 407 |  
408 | 409 |  
410 | 411 |  
412 |
413 |
414 |
415 |
416 |

Google Reader | main

417 |
418 |

Toolbar

419 |
420 | 421 |  
422 | 423 |  
424 |
425 | 426 |  
427 | 428 |  
429 | 430 |  
431 | 432 |  
433 | 434 |  
435 |
436 |
437 |
438 |

Footer

439 |
440 | 441 |  
442 |
443 |
444 |
445 |

Home

446 |
447 | 448 |  
449 | 450 |  
451 | 452 |  
453 | 454 |  
455 |
456 |
457 |
458 |

Custom item width

459 |
460 | pixels
461 | Default is 650 462 |
463 |
464 |
465 |

Items

466 |
467 | 468 |  
469 | 470 |  
471 | 472 |  
473 | 474 |  
475 | 476 |  
477 | 478 |  
479 | 480 |  
481 | 482 |  
483 | 484 |  
485 | 486 |  
487 |
488 |
489 |
490 |
491 |

Google Reader | navigation

492 |
493 |

Hide All

494 |
495 | 496 |  
497 | [ ` ] tilde key or click blank stripe to toggle

498 |
499 |
500 |
501 |

Overall

502 |
503 | 504 |  
505 | 506 |  
507 | 508 |  
509 | 510 |  
511 |
512 |
513 |
514 |

Custom width

515 |
516 | pixels
517 | Default is 260 518 |
519 |
520 |
521 |

Home section

522 |
523 | 524 |  
525 | 526 |  
527 | 528 |  
529 | 530 |  
531 | 532 |  
533 | 534 |  
535 | 536 |  
537 | 538 |  
539 |
540 |
541 |
542 |

People you follow section

543 |
544 | 545 |  
546 | 547 |  
548 | 549 |  
550 |
551 |
552 |
553 |

Explore section

554 |
555 | 556 |  
557 |
558 |
559 |
560 |
561 |

Google Reader | import/export

562 |
563 |

Import/Export

564 |
565 | To transfer settings, click "Export", copy everything, paste it back in another browser and click "Import". 566 |

567 |
568 | 569 | 570 |
571 |
572 |
573 |
574 |

Presets

575 |
576 | Warning: clicking a preset will replace your current settings. Your current settings will be saved to "Custom 3", overriding it's contents.

577 |
578 | 588 | 598 | 608 | 618 |
619 | 620 | 621 | 622 |

623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 |
637 |
638 |
639 |
640 |

Full Reset

641 |
642 | If you are having problems and just want to start fresh, use this button. It will clear all local settings and reset them to Google Reader's default. 643 |

644 | 645 |
646 |
647 |
648 |
649 |

Google Reader | more

650 |
651 |

Extensions

652 |
653 | 665 |
666 |
667 |
668 |

Bugs & Ideas

669 |
670 | I'm always looking for new ideas and bugs to fix. I respond in the Issue Tracker, email, and Twitter within an hour if I'm awake [UTC-8].

671 | 680 |
681 |
682 |
683 |
684 |

Google Reader | changes

685 | 691 |
692 |

Announcements

693 |
694 | 695 |
696 |
697 |
698 |

What's new

699 |
700 | Full changelog on Google Code

701 | 729 |
730 |
731 |
732 |

Rate & Review

733 |
734 | Like Minimalist for Google Reader?
Please rate and review it in the Web Store! 735 |
736 |
737 |
738 |

Donate

739 |
740 |

This is a personal project and I am a full-time student, please support me by donating so I can keep Minimalist for Google Reader up to date and competitive.

741 |
742 | Donate 743 |
744 |
745 |
746 |

Bugs & Ideas

747 |
748 | I'm always looking for new ideas and bugs to fix. I respond in the Issue Tracker, email, and Twitter within an hour if I'm awake [UTC-8].

749 | 758 |
759 |
760 |
761 |
762 |

Google Reader | about

763 |
764 |

Credits

765 |
766 |

My name is Ansel Santosa [@anstosa]. I'm an Informatics student at the University of Washington in Seattle studying to to a UX Designer.
767 |
768 | I created Minimalist for Gmail because none of the others on the market would cut it for me. It was just a handful of personal scripts for a while. But I recently decided to polish and publish.
769 |
770 | Since then I have published Minimalist for Google Calendar now Minimalst for Google Reader is just the second in what I hope will become a suite of Google webapp customizers.

771 |
772 | I wrote the vast majority of the code myself, but some things were perfect already:

773 | 776 |
777 |
778 |
779 |

Rate & Review

780 |
781 | Like Minimalist for Google Reader?
Please rate and review it in the Web Store! 782 |
783 |
784 |
785 |

Donate

786 |
787 |

This is a personal project and I am a full-time student, please support me by donating so I can keep Minimalist for Google Reader up to date and competitive.

788 |
789 | Donate 790 |
791 |
792 |
793 |
794 |

Google Reader | support

795 |
796 |

Support Page

797 |
798 | Try the official support page first. Otherwise, see below: 799 |
800 |
801 |
802 |

Bugs & Ideas

803 |
804 | I'm always looking for new ideas and bugs to fix. I respond in the Issue Tracker, email, and Twitter within an hour if I'm awake [UTC-8].

805 | 814 |
815 |
816 |
817 |
818 | 845 | 846 | -------------------------------------------------------------------------------- /popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 42 | 56 | 75 | 88 | 89 | 90 |

Minimalist
Google Reader

91 |
92 |
93 | 94 | 95 | --------------------------------------------------------------------------------