npmjs.com visual tweaks

Styles npmjs.com README pages similarly to GitHub's (font, size, colors, but not syntax highlighting), and makes the content wider

As of 2018-03-22. See the latest version.

  1. // ==UserScript==
  2. // @name npmjs.com visual tweaks
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.7.0
  5. // @description Styles npmjs.com README pages similarly to GitHub's (font, size, colors, but not syntax highlighting), and makes the content wider
  6. // @author joeytwiddle
  7. // @copyright 2018, Paul "Joey" Clark (http://neuralyte.org/~joey)
  8. // @license MIT
  9. // @match https://www.npmjs.com/*
  10. // @grant GM_addStyle
  11. // ==/UserScript==
  12.  
  13. // Motivation: I didn't like the visual context switching between reading Github READMEs and npm READMEs, so I made READMEs on npm look similar to READMEs on Github.
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. // I want to scale down the fonts and everything else a bit. This was an easy way to do that.
  19. //GM_addStyle('.container { transform: scale(0.92); transform-origin: 50% 0; }');
  20.  
  21. // Fill (almost) the whole width of the screen, like Wide-Github does.
  22. //GM_addStyle('.container { width: 98%; max-width: 100%; }');
  23. GM_addStyle("#top { max-width: 100%; }");
  24.  
  25. // Set fonts like GitHub
  26. GM_addStyle('#readme { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Source Sans Pro", "Lucida Grande", sans-serif; }');
  27. GM_addStyle('#readme { font-family: line-height: 1.5;}');
  28. //GM_addStyle('pre, code, kbd, samp { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; }');
  29. // Set fonts how I like them (configurable through browser)
  30. //GM_addStyle('pre, code, kbd, samp { font-family: monospace; }');
  31. // I don't know why, but "monospace" shrinks the font considerably on my Linux, whilst "monospace,monospace" does not.
  32. // Also "monospace,monospace" is what the site itself adopted on 2018/3/22. This rule will just ensure it stays this way!
  33. GM_addStyle('pre, code, kbd, samp { font-family: monospace,monospace; }');
  34.  
  35. // Set font sizes like GitHub
  36. // A snippet of code appearing within a paragraph
  37. GM_addStyle('code { font-size: 85%; }');
  38. // A line of code on its own
  39. GM_addStyle('pre > code { font-size: 100%; }');
  40. // A block of code
  41. GM_addStyle('pre { font-size: 82%; line-height: 1.4; }');
  42.  
  43. // Darker text
  44. if (navigator.userAgent.match(/Mac OS X/)) {
  45. // Weirdly, on Mac, the font strokes on npmjs.com appear slightly thinner than those on Github, for a reason I cannot understand. To compensate, I use a darker color.
  46. GM_addStyle('.markdown p, .markdown li { color: #111; }');
  47. } else {
  48. // Github 2016 (my preference)
  49. GM_addStyle('.markdown p, .markdown li { color: #333; }');
  50. // Github 2017
  51. //GM_addStyle('.markdown p, .markdown li { color: #24292e; }');
  52. }
  53.  
  54. // The boxes around inline code snippets
  55. GM_addStyle('code { border-radius: 3px; padding: 0.2em 0.4em !important; }');
  56.  
  57. // Links should be normal weight (npm makes them bolder)
  58. GM_addStyle('.markdown p a, .markdown li a { font-weight: initial; }');
  59.  
  60. // Padding around code blocks and snippets
  61. // A snippet of code appearing within a paragraph
  62. GM_addStyle('code { padding: 0.2em 0.2em; }');
  63. // A line of code on its own
  64. GM_addStyle('pre > code { padding: 1em 2em; }');
  65.  
  66. // Reduce the large padding inside code blocks to be more like Github's
  67. GM_addStyle('pre { padding: 1.1rem !important; }');
  68.  
  69. // Lighter background on code blocks and snippets
  70. GM_addStyle('.markdown .highlight, .markdown code { background-color: #f6f8fa; }');
  71.  
  72. // More of a gap after each paragraph? Wasn't actually needed. The problem was wrapping due to insufficient width.
  73. //GM_addStyle('div, .highlight { padding-bottom: 20px; }');
  74.  
  75. // Thicker font for section headers
  76. GM_addStyle('.markdown h1, .markdown h2, .markdown h3, .markdown h4, .markdown h5, .markdown h6 { font-weight: 600; }');
  77.  
  78. // Use the npm font for section headers, even though we aren't using it for main text. (This is a divergence from Github's markdown scheme.)
  79. //GM_addStyle(".markdown h1, .markdown h2, .markdown h3, .markdown h4, .markdown h5, .markdown h6 { font-family: 'Source Sans Pro', 'Lucida Grande', sans-serif; }");
  80.  
  81. // There was absolutely no padding on the new styling. At low widths, the text could touch the edge of the screen. No thanks!
  82. //GM_addStyle(".markdown { padding-left: 1em; padding-right: 1em; }");
  83. // Better to do it for the whole content, including the tabs across the top
  84. //GM_addStyle("#top { padding-left: 1em; padding-right: 1em; }");
  85. // At larger widths we can enjoy greater padding
  86. GM_addStyle("#top { padding-left: 2%; padding-right: 2%; }");
  87.  
  88. // Make the sidebar look like a hovering card
  89. // Sadly this now reaches all the way down to the bottom of the README
  90. GM_addStyle(".package__rightSidebar___9dMXo { padding: 0em 1.4em !important; box-shadow: 0 0 16px 0 #00000016; margin-top: 2rem; }");
  91. // This widens the gap between the two panels, so the shadow doesn't overlap too much
  92. GM_addStyle(".markdown { padding-right: 0.5em; }");
  93. // This graph does not scale down well to low resolutions, with or without our changes. I will wait and see if they fix that.
  94. })();