Skip to content

An Obsidian plugin enables you writing notes with atomic CSS that supported by UnoCSS directly in Obsidian, with hot-reload support!

License

Notifications You must be signed in to change notification settings

nolebase/obsidian-plugin-unocss

Repository files navigation

Obsidian Plugin UnoCSS

Note

This is one of the plugins of the collections of plugins called Nólëbase Integrations. You can explore the other plugins in the collection in the official documentation site of Nólëbase Integrations.


Write your notes in Obsidian with UnoCSS.

🤔 Why

If you're not yet familiar with Nólëbase or the accompanying Nólëbase Integrations, let me introduce you. Nólëbase is an open-source knowledge base that utilizes VitePress for rendering, and it is a collaborative effort from its community of contributors.

To integrate Obsidian plugins with VitePress-rendered pages effectively, we launched the Nólëbase Integrations project. This initiative aims to create a suite of plugins that enhance the functionality of popular Obsidian plugins, enabling them to be able to work in the browsers as rendered pages.

When crafting documentation in Nólëbase, creating numerous visual components is crucial for enhancing the documents with dynamic and interactive user interfaces. This not only makes the content more digestible but also more engaging. Previously, Obsidian lacked the functionality to effectively integrate and apply styles from atomic CSS frameworks like Tailwind CSS and Windi CSS to HTML elements within its platform.

This is where Obsidian UnoCSS Plugin kicks in, it allows you to write your notes in Obsidian with UnoCSS. By doing so, it has built a bridge by allowing the use of sufficiently simple and user-friendly atomic CSS classes, which enhances the aesthetics and functionality of the notes and documents we write in Obsidian.

🎨 Features

💡 What can you do with it

  • Embed interactive components in your notes.
  • Style your notes with atomic CSS classes.
  • Use themes and color schemes from UnoCSS communities.
  • Import the icons from Iconify.
  • Animate your notes.
  • Documenting color theories.
  • Documenting UI/UX knowledge.
  • Demonstrating the back scene of Mathemathics and Physics like manim
  • And more...

📺 Demos

Show me what you can do

How it looks like

demo-1.mp4

What is the markup like

It's all basic just a set of HTML.

Warning

To learn more about what are the meanings of classes, I recommend you to use the documentation sites of Tailwind CSS and Windi CSS as references.

demo-2.mp4

Hot-reloading capabilities in live preview mode

Note

To do so, you need to split your Obsidian view into two panes, and choose "Source mode" for the editing pane where you wanted to view and edit the HTML markup.

demo-3.mp4

😎 How to install

Warning

Currently Obsidian UnoCSS Plugin is in alpha stage, it wasn't guaranteed to work properly and keep the compatibility with the future versions of itself.

But it is encouraged to try it out and give feedbacks. If you find and bugs or have any suggestions, please feel free to open an issue on GitHub.

Currently, it is a bit hard to install the plugin for now before it is published to the official Obsidian plugin store. Manual downloading and installation is required.

Install with beta testing helper BRAT plugin

  1. Install the BRAT plugin right from the official Obsidian plugin store.
  2. Enable the BRAT plugin in the community plugins settings menu.
  3. Open Command palette to choose BRAT: Plugins: Add a beta plugin for testing.
  4. Copy and paste the following link to the first field of the new prompted dialog:
https://github.com/nolebase/obsidian-plugin-unocss
  1. Find the needed released version on Release page of Obsidian UnoCSS Plugin, for example, fill in 0.1.0.
  2. Enable the "UnoCSS" plugin from the Installed plugins list.

Install manually

  1. Navigate to the Release page of Obsidian UnoCSS Plugin
  2. Find the latest version of the plugin.
  3. Download the main.js file and manifest.json file.
  4. Open up the .obsidian/plugins directory of your Obsidian vault.
  5. If no .obsidian/plugins directory exists, create one.
  6. Create a new directory named obsidian-plugin-unocss inside the .obsidian/plugins directory.
  7. Move main.js file and manifest.json file into the obsidian-plugin-unocss directory.

The directory structure should look like this after these steps:

❯ tree
.
├── main.js
├── manifest.json
  1. Enable the "UnoCSS" plugin from the "Installed plugins" list.

⏳ TODOs

  • Auto completion for CSS classes.
  • Annotation decoration for UnoCSS identifiable classes.

💻 How to develop

  1. As Build a plugin - Developer Documentation has suggested, create a separate vault for development.
  2. (Optional) Install the hot-reload plugin: pjeby/hot-reload.
  3. Create a .obsidian/plugins directory in the vault root.
  4. Clone this repository into the .obsidian/plugins directory.
  5. Install dependencies
pnpm install

If you use @antfu/ni, you can also use the following command:

ni
  1. Build the plugin
pnpm run build

If you use @antfu/ni, you can also use the following command:

nr build
  1. Reload Obsidian to see the changes. (If you use the hot-reload plugin, you don't need to reload Obsidian manually.)

Reloading can be called from the command palette with Reload app without saving command.

🔨 How to build

pnpm run build

If you use @antfu/ni, you can also use the following command:

nr build

Written with ♥