Hi! If you've been having problems with the notion-enhancer, sorry about that. The desktop version has been a bit neglected recently because I've been focusing my development efforts towards a complete overhaul that will include the ability to run it as a Chrome extension too (it's working, it's better than ever before, I just need to finish updating all the individual mods and themes). The command-line installer is pretty buggy at the moment, but there is a working version pre-applied to Notion you can download as a .exe or .dmg from here, if you'd like to give it a go: https://github.com/notion-enhancer/notion-repackaged/releases Answer from TheDragonRing on reddit.com
🌐
Notion
notion.com › templates › html-css-js-renderer
HTML/CSS/JS Renderer Template | Notion Marketplace
HTML/CSS/JS Renderer
Render Web Components & Webpages Inside Notion
Price   $6.50
🌐
Reddit
reddit.com › r/notion › how to customise notion's css
r/Notion on Reddit: How to customise Notion's CSS
September 1, 2021 -

I don't like Notion's dark mode colours, so I spent way too long figuring out how to change it.

I found two ways to edit the CSS (and json) of Notion; either using nativefier or a browser + stylus extension. Nativefier has the added benefit of being able to use js, while browsers can use extensions.

My theme :)

Nativefier:

  • Go to https://github.com/nativefier/nativefier and follow the instructions there to install it.

    • Note: if using nativefier 'notion.so' or just typing nativefier in cmd doesn't work

  1. navigate to C:\Users\YOUR USER NAME\AppData\Roaming\npm (or just copy-paste this, with your computer's username inserted)

  2. click the address bar to copy the directory

  3. enter cd "above path" (with the "") into cmd and try the first command again.

  • Navigate to where the folder created is (in the npm folder usually) and move it to wherever you want it to be. Should be called something similar to "Webapp-win32-x64"

  • Go to that folder > resources > app > inject to add any css/json files in there! I don't think folders work though, but you can have multiple css/json files.

  • Some app settings are also found in resources > app > nativefier.json

    • Open it in an editor to change the settings, such as "hideWindowFrame"

  • Open the webapp exe file back in the first folder to launch Notion with any of your css/json edits.

Web Browser:

  • Go to notion.so on whatever browser you use

    • If your browser supports it, you can install the site as an app (I use Edge) so that it takes up a separate slot in the taskbar. This is not required, but I prefer this.

      • Note: installing the site as an app takes the icon and title of whatever page you have open. If notion.so renavigates to your home page, it will take the icon and title of that. To avoid this, go to notion.so and quickly install the site as an app before your homepage loads (easier with my terrible internet).

  • Install the stylus extension

  • Go to notion.so, press the stylus extension icon and write a style for notion.so (without anything after the /)

  • Any edits will update live in the notion webpage/app

CSS stuff

I would not recommend trying to make your own css theme from scratch if you do not know how to code css. There are a lot of elements that need to be edited, and it's easier to simply edit an existing theme. Full credit for the code goes to dragonwocky and the other contributors of Notion Enhancer, I simply copied the required parts and edited/added stuff to customise it to my need (I don't use Notion Enhancer cause I can't get it to work and I don't really need all its features).

To use a theme from Notion Enhancer:

  • Go to the github page > mods > core > css > theme.css

  • Copy and paste the code into Stylus / css file in Nativefier as described above.

  • Go to mods > core > variables.css and copy that in as well

  • go to mods > whatever theme you want to use (see all the themes by scrolling down the README.md)

  • Copy the code in app.css and variables.css into your own script

  • Also go to https://github.com/notion-enhancer/tweaks and https://www.notion.so/b45fb337c1ea4348a31903bb0769c3ef?v=14c05bc589944da497927be673f2c660 and other Notion Enhancer repositories for little customisations

  • colours can be changed by changing the :root variables

Custom CSS

Small things can be edited with inspect element, press ctrl+shift+i and select something you want to change. Try look for something like prefixed with a . to edit. The main css functions you would probably use are background-color, color (text colour) and display (set to none to remove something).

If you wish, you can find what I use here, which uses the dracula theme, and has some extra customisations. Everything before the Dracula theme script is a tweak/custom code, and some of the dracula theme is also edited (ctrl+f for [myedits] to see what i changed, and remove that line/uncomment if you want to remove it)

There also exists gloation, a css and js script to have a custom image background. Requires nativefier.

Removing '/' menu

Also found a way to remove the menu that pops up when you type '/' anywhere, with an option to show the menu if the '/' is the first character, and a fix for scrollbars disappearing when the menu pops up, very annoying when working on large pages where the page would scroll up because of the slightly larger width.Link to script here. (is already included in my script)

If you just want to remove the / menu entirely, the first 3 lines is all that is needed. To show it if you type '/' as the first character of a block, it requires a little config based on the resolution of your screen.

  • type a '/' as the first character of a block

  • Press ctrl+shift+i to open inspect element

  • Press the button on the top left of inspect element, and select the slash menu's scrollbar

  • Scroll up a little until you see something along the lines of <div style="position: fixed; left: 348.475px; top: 583.581px; pointer-events: none;">

  • Copy the value of left and paste it into the position in the script

  • Do the same for pages of full width, normal width and preview pages

  • If you have multiple monitors with different resolutions, you would have to do this for each monitor

  • EDIT: This seems to affect other blocks, so far I have found it to affect inline math blocks. Simple fix is to just add another left: value for inline math, same method as above.

  • EDIT 2: no longer need, updated both scripts. probably still has some bugs, but idk css enough to do it properly

  • Caveats:

    • the menu still exists, so the lag that comes with it is still there

    • pressing enter will still execute whatever the slash menu usually would execute

    • slash menu pops up if its the left most character, not only the first character of a new block

Have fun!

People also ask

How do I include custom CSS when generating images from Notion content?
You can use custom CSS by including it in the input data sent from Notion during the HTML/CSS to Image action setup. This allows you to style your images according to your needs.
🌐
zapier.com
zapier.com › apps › html/css to image integrations › notion and html/css to image integration
Notion HTML/CSS to Image Integration - Quick Connect - Zapier
Do I need coding skills to integrate Notion with HTML/CSS to Image?
No coding skills are required. Our platform guides you through setting up triggers and actions between Notion and HTML/CSS to Image, making it accessible even for non-developers.
🌐
zapier.com
zapier.com › apps › html/css to image integrations › notion and html/css to image integration
Notion HTML/CSS to Image Integration - Quick Connect - Zapier
What kind of data can be included from Notion when creating an image?
You can include text, lists, tables, and more from your Notion page. The integration translates these into HTML format before applying any CSS and generating an image.
🌐
zapier.com
zapier.com › apps › html/css to image integrations › notion and html/css to image integration
Notion HTML/CSS to Image Integration - Quick Connect - Zapier
🌐
Copytonotion
copytonotion.com › guides › set-up-css-selectors-for-notion-database-properties
How to set css selectors to automatically capture HTML content into Notion database properties
January 26, 2025 - Learn how to use CSS selectors with database properties in Copy To Notion web clipper. This step-by-step guide teaches you to set up and optimize CSS selectors for precise web content capture. Improve your web clipping efficiency and customize your Notion database form with advanced CSS selector techniques.
🌐
Notion
letsupgrade.notion.site › Notes-HTML-CSS-Zero-to-Hero-d5cd06ec15e84745b45ffc6f501ea717
Notes - HTML & CSS Zero to Hero
A tool that connects everyday work into one space. It gives you and your teams AI tools—search, writing, note-taking—inside an all-in-one, flexible workspace.
Top answer
1 of 6
1

I also looked for the answer for your question. I think this article is helpful for you to understand why we can improve the site's performance by inlining CSS. Below is my summary:

  1. To prevent render-blocking resource. The site only needs to request to the server once (for html files), they don't need to check <head> to request other times for css files.
  2. Notion might already check the performace and compared between using inline and not using inline. I think they chosed the better one.
  3. You should (but not always) use inline. Why? Because it may lead to First First Contentful Paint (FCP) -- because there are some things duplicated (in style), the browser takes much time to render again and again the same things for all DOM elements. As you can see, notion doesn't apply inline CSS for all of their elements, they use classes also. However, when you check their site speed test with Google's PageSpeed Insight, the first problem is FCP and the score is really really bad!!!

For me, the main problem Notion chose this way is the performance. They handle their site with components (all are in div even for headings,...). They depend too much on the styling of divs to make them become other HTML parts. These components are not always their, they appear when you add them, check them,... Notion also save your works automatically every second,... You can imagine the number of requests their server must listen to. That's why the performce (server side) is the most important thing they considered, I think.

Hope I can help and sorry for my bad English.

2 of 6
0

Generally you want to keep the css in a separate style sheet since it's much easier to maintain. Going through the HTML file to restyle the page is simply not efficient enough.

Also, If you want to have multiple elements with the same attributes, doing the styling on the specific element would take much more time.

🌐
Notion
notion.com › templates › super-css-guide
Super CSS Guide Template by Luis⚡Rincón | Notion Marketplace
Super CSS Guide
Your copy and paste code snippets guide for Notion & Super ⚡ websites. Improve your Notion website style with using this CSS Library exclusively for Super.so
Price   $49.00
Find elsewhere
🌐
DeepakNess
deepakness.com › blog › notion-like-html-pages
Create Notion-like HTML Pages | DeepakNess
December 25, 2021 - Recently, I discovered mvoloskov’s potion project on Github and decided to give it a try. It turned out to be cool. mvoloskov’s potion is basically a CSS file that makes your HTML pages look much like a Notion public page — that header image, icon, and everything.
🌐
Super
super.so › guides › how-to-customize-your-site-with-custom-code
Notion Custom CSS - Add Custom Code to Notion (2026)
Does that mean there’s no way at all to write custom code in Notion? Not exactly. You can add custom HTML, CSS, or JS to Notion by connecting it with Super.
🌐
Notion VIP
notion.vip › insights › create-stunning-notion-sites-custom-styles-fonts-scripts-and-code
Notion VIP: Create Stunning Notion Sites: Custom Styles, Fonts, Scripts and Code
To tap into Notion's new compatibility ... front-end fundamentals, especially CSS for defining your custom styles. If you need to fill some gaps in your knowledge, this is an excellent learning opportunity. A foundational understanding of HTML, CSS and JavaScript will give you a whole ...
🌐
Notion Enhancer
notion-enhancer.github.io › advanced › tweaks
Tweaks | notion-enhancer
css: .notion-page-view-discussion, .notion-page-view-discussion + [style*='width: 100%; height: 1px;'] { display: none !important; }
🌐
Integrately
integrately.com › integrations › html-css-to-image › notion
How to integrate HTML/CSS to Image & Notion | 1 click ▶️ integrations
Improve productivity and simplify workflows with top 10 Notion integrations. Enhance your business processes effectively. ... HTML/CSS to Image is a tool that converts HTML and CSS code into an image.
🌐
GitHub
gist.github.com › s1kee › a853d9c7710ec4ec7011f638463db52f
notion.css · GitHub
notion.css · This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters ·
🌐
Notion
brickspacelab.notion.site › Adding-custom-CSS-3121c6e89c384649b329164edbf389b4
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
A tool that connects everyday work into one space. It gives you and your teams AI tools—search, writing, note-taking—inside an all-in-one, flexible workspace.
🌐
NoteForms
noteforms.com › notion-form › how-to-inject-CSS-and-JavaScript-code-to-a-notion-form
How to add CSS and JavaScript in a Notion Form? - NoteForms
Enhance Notion forms via 'Advanced' settings. Input custom CSS, JavaScript for design, interactivity. Test across devices, browsers for compatibility, top performance. Upgrade form aesthetics, functionality.
🌐
Reddit
reddit.com › r/notion › custom widgets using html/css/js?
r/Notion on Reddit: Custom widgets using HTML/CSS/JS?
March 29, 2022 -

I'm new to the world of Notion and I was wondering if there's any way to create custom widgets or blocks using HTML/CSS/JS and embedding them in my pages. I'm a software engineering student so I'm familiar with working with websites and apps. Rn I wanted to make a movie card that has the title input, poster input, 5 star rating system that I can click on, and a date input for when I watched the movie. I'm also planning on making other stuff in the future. Any good tutorial links or videos would also be helpful. Thanks!

🌐
Simple.ink
simple.ink › guides › how-to-embed-widgets-notion
How to embed any widget in Notion | Best Notion Widgets 2024
Also if you have web development skills, you can create custom widgets for Notion. This typically involves creating an HTML file with CSS and JavaScript, then hosting it online and embedding it in Notion using the "/embed" block.
🌐
Notion Enhancer
notion-enhancer.github.io › documentation › concepts
Concepts | notion-enhancer
Put together, these form a HTML element. The majority of Notion's HTML is generated by JavaScript. ... CSS is a styling language that specifies how the browser should render HTML content.
🌐
GitHub
github.com › topics › notion
notion · GitHub Topics · GitHub
原创 Notion | Wolai | FlowUs 组件库 —— Html widgets that can be embedded into Notion, FlowUs, Wolai.