Git Product home page Git Product logo

jerboa88 / dark-mode-for-outlook Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 30.13 MB

A browser extension/add-on that applies a better dark theme to Microsoft Outlook and removes ads.

Home Page: https://johng.io/projects/dark-mode-for-outlook/

License: MIT License

SCSS 58.53% JavaScript 36.71% HTML 4.76%
outlook microsoft-outlook dark-theme outlook-web dark-mode browser-extension extension addon chrome-extension firefox-extension

dark-mode-for-outlook's Introduction

Project logo

I am a recent graduate with a Bachelors Specialization in Computing Science from the University of Alberta. During my time at the U of A, I had the opportunity to share my expertise with Haemonetics Corporation in Edmonton, where I was involved in end-to-end development of their NexLynk Donor Management System.

Having a natural interest in science has allowed me to become familiar with a wide variety of tech related subjects including programming, design, and audio production. I have experience with frontend web technologies, backend development, cloud computing, as well as low-level programming like Arduino and MIPS assembly.

Some of my extracurricular interests include cats, cars, and music!


dark-mode-for-outlook's People

Contributors

dependabot[bot] avatar homelyseven250 avatar jerboa88 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

fieldfires

dark-mode-for-outlook's Issues

Add support for custom OWA URLs

What feature would you like?
Originally reported by Bernard. Some business users have their mail server hosted on a custom domain. A configuration option should be added so that users can add additional URLs where the dark theme will be applied.

Users of Microsoft Exchange usually have a mail URL that ends in /OWA so this could potentially be hardcoded, but it's probably a better idea to just create a configuration item so that URL patterns can be more specific.

https://docs.microsoft.com/en-us/exchange/troubleshoot/client-connectivity/set-up-web-access

Remove zip-local library from build process

Description
zip-local dep requires a version of jszip that is vulnerable to prototype pollution. Replace with a different library or patch zip-local.

Note that this doesn't pose any risk in our case because this library is only used in the build script. However, we should consider switching to a better maintained library regardless.

Left sidebar buttons missing on O365

Helpful info

  • Extension version: v3.3
  • Outlook script version: 20201228001.01

Describe the bug
Navigation buttons (mail, calendar, people, etc.) at the bottom of the left sidebar appear to be missing on the O365 variant of Outlook after the v3.3 fix. Possibly a result of hiding the sidebar ad (which does not exist on O365).

White border being shown below messages

Helpful info

  • Browser & version: All
  • Extension version: 3.6
  • Outlook script version: 20230616004.08

Describe the bug
After the latest Outlook redesign, a white border is being shown under all messages.

Steps to reproduce
Steps to reproduce the behavior:

  1. Go to any folder in Outlook

Expected behavior
Remove the white border or style it in a more visually appealing way.

Screenshots
If applicable, add screenshots to help explain your problem.

Other
Add any other context about the problem here.

Some buttons don't change color on hover

Describe the bug
Various buttons throughout the OWA don't react to hovering, making it harder to see what is being clicked. Examples:

  • Navigation bar buttons (Skype, Onenote, Settings, etc.)
  • Message right-click child menu. The parent context menu has hover effects, but none of the submenus do
  • Search suggestions
  • Search folder picker
  • Rich text formatting buttons when writing a message
  • Date picker popup

Ad being shown at top of message list

Helpful info

  • Browser & version: All
  • Extension version: 3.6
  • Outlook script version: 20230616004.08

Describe the bug
An ad is shown at the top of the message when in the Inbox.

Steps to reproduce
Steps to reproduce the behavior:

  1. Disable third-party ad-blockers
  2. Go to the Inbox

Expected behavior
All ads should be hidden.

Screenshots
image

Other
Add any other context about the problem here.

Ad being shown at top of message list

Helpful info

  • Browser & version: All
  • Extension version: 3.6
  • Outlook script version: 20221209009.13

Describe the bug
An ad is shown at the top of the message when in the Inbox.

Steps to reproduce
Steps to reproduce the behavior:

  1. Disable third-party ad-blockers
  2. Go to the Inbox

Expected behavior
All ads should be hidden.

Screenshots
image

Upgrade to Manifest V3

Description
See if it is worth upgrading to Chromium's Manifest V3 at this time and make all the necessary changes if so. Compatibility with other browsers must be considered.

Styles for message deletion/movement toast are broken (again)

Helpful info

  • Extension version: v3.3
  • Outlook script version: 20201228001.01

Describe the bug
Styles for the toasts shown when a message is moved/deleted are broken once again. When fixing, need to confirm that styles work with all possible reading pane positions.

Screenshots
image

Some messages do not show up correctly on a dark background when built-in dark mode is disabled

Describe the bug
Originally reported by Derrick. When the built-in Outlook dark mode is not enabled (and sometimes it is completely disabled by admins on O365), some messages do not show up correctly on a dark background. There are currently styles to try to force message text to display as a lighter color, but this does not always work as there are an infinite amount of ways an email can be structured.

This is an issue both while writing and viewing emails.

Potential solutions:

  1. Send PATCH request to https://consumer.suite.office.com/api/settings/usertheme with payload {"IsDarkmode":true}. In testing this endpoint seems to be blocked by CORS, so I'm unsure if forcing a request through would have any effect. Manually replaying the XHR does nothing either. Interestingly, this request is triggered when updating the themeData.IsDarkTheme property via React DevTools, although changing the property doesn't actually update the page.
  2. Modify React properties that control dark mode and force an update. The relevant property is $r.props.themeData.IsDarkTheme. This could be challenging because it seems like Outlook exclusively uses props instead of state, and I'm not aware of a method of updating the props and triggering an update after the props are first defined. We may have to modify the relevant property before any React components are loaded if using this approach.
  3. Send POST request to https://outlook.live.com/owa/0/service.svc?action=UpdateUserConfiguration&app=Mail&n=xx with payload: {"__type":"UpdateUserConfigurationJsonRequest:#Exchange","Header":{"__type":"JsonRequestHeaders:#Exchange","RequestServerVersion":"V2018_01_08","TimeZoneContext":{"__type":"TimeZoneContext:#Exchange","TimeZoneDefinition":{"__type":"TimeZoneDefinitionType:#Exchange","Id":"Mountain Standard Time"}}},"Body":{"__type":"UpdateUserConfigurationOwaRequest:#Exchange","UserConfiguration":{"__type":"ServiceUserConfiguration:#Exchange","UserConfigurationName":{"__type":"UserConfigurationNameType:#Exchange","BaseFolderId":{"__type":"DistinguishedFolderId:#Exchange","Id":"root"},"Name":"OWA.UserOptions"},"Dictionary":[{"__type":"UserConfigurationDictionaryEntry:#Exchange","DictionaryKey":{"__type":"UserConfigurationDictionaryObject:#Exchange","Type":"String","Value":["isDarkModeTheme"]},"DictionaryValue":{"__type":"UserConfigurationDictionaryObject:#Exchange","Type":"Boolean","Value":["true"]}}]}}}. This seems to be the endpoint that actually updates user configuration.
  4. Inject a script that performs contrast-checking on each piece of text and adjusts the colors as appropriate. Apparently this is what Outlook does themselves to make emails readable when using the built-in dark mode, but it seems more difficult to deobfuscate the original code that does this instead of rewriting it from scratch. This may be the only way of fixing message styling since the methods above may not work with O365.

Floating ad being shown on bottom of screen

Helpful info

  • Browser & version: All
  • Extension version: 3.6
  • Outlook script version: 20230616004.08

Describe the bug
An ad is shown at the bottom of the message list when the screen is narrow

Steps to reproduce
Steps to reproduce the behavior:

  1. Disable third-party ad-blockers
  2. Go to any folder in Outlook

Expected behavior
All ads should be hidden.

Screenshots
image

Other
Add any other context about the problem here.

Improve styling of advanced search pane

What feature would you like?
On the advanced search pane, horizontal borders should be removed and input fields should be styled to match existing search boxes on the page (same border radius, background color, etc.).

Other
image

Rewrite styles for Firefox mobile

What feature would you like?
Existing styles for Outlook mobile were broken a while ago by an Outlook update. These need to be rewritten from scratch

Improve build script to further automate publishing of new releases

Description
Publishing new releases is always a hassle because each store requires different deliverables. Update the build script so that these items can be generated automatically to speed up the process. Specifically:

Chromium

  • Create full size webstore screenshots and generate smaller versions for Chromium webstore and others

Edge:

  • A 300x300 extension icon (maybe generate a 256px icon and add it to the manifest instead?)

Firefox:

  • Zipped source code (include entire project folder except node_modules and build)

Opera:

  • An (optional) 300x188 promo image for Opera
  • Store listing text (en and es) that does not contain any emojis

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.