Skip to content

Instantly share code, notes, and snippets.

@BrittonWinterrose
Last active March 19, 2019 17:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BrittonWinterrose/d396e6999928ce2cae18d4cbc57116f3 to your computer and use it in GitHub Desktop.
Save BrittonWinterrose/d396e6999928ce2cae18d4cbc57116f3 to your computer and use it in GitHub Desktop.
Dark Slack Theme

Dark Slack Theme

How to do it?

1.) copy this code:

// First make sure the wrapper app is loaded
document.addEventListener("DOMContentLoaded", function() {

  // Then get its webviews
  let webviews = document.querySelectorAll(".TeamView webview");

  // Fetch our CSS in parallel ahead of time
  const cssPath = 'https://raw.githubusercontent.com/Nockiro/slack-black-theme/3ea2efdfb96ccc91549837ab237d57104181bbf8/custom.css';
  let cssPromise = fetch(cssPath).then(response => response.text());

  let customCustomCSS = `
  :root {
     /* Modify these to change your theme colors: */
     --primary: #09F;
     --text: #CCC;
     --background: #080808;
     --background-elevated: #222;
  }
  `

  // Insert a style tag into the wrapper view
  cssPromise.then(css => {
     let s = document.createElement('style');
     s.type = 'text/css';
     s.innerHTML = css + customCustomCSS;
     document.head.appendChild(s);
  });

  // Wait for each webview to load
  webviews.forEach(webview => {
     webview.addEventListener('ipc-message', message => {
        if (message.channel == 'didFinishLoading')
           // Finally add the CSS into the webview
           cssPromise.then(css => {
              let script = `
                    let s = document.createElement('style');
                    s.type = 'text/css';
                    s.id = 'slack-custom-css';
                    s.innerHTML = \`${css + customCustomCSS}\`;
                    document.head.appendChild(s);
                    `
              webview.executeJavaScript(script);
           })
     });
  });
});

2.) Paste it at the end of the /Applications/Slack.app/Contents/Resources/app.asar.unpacked/src/static/ssb-interop.js file.

3.) Sudo save.

4.) Relaunch Slack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment