{"id":14637759,"url":"https://github.com/primary-theme/obsidian","last_synced_at":"2025-05-14T18:06:30.136Z","repository":{"id":38224547,"uuid":"423185632","full_name":"primary-theme/obsidian","owner":"primary-theme","description":"Comfy, playful but productive theme for Obsidian. \"Primary instantly puts you in a relaxed state that opens the door to creativity and exploration. Wonderfully executed down to the smallest details,\"","archived":false,"fork":false,"pushed_at":"2024-10-21T08:06:18.000Z","size":76882,"stargazers_count":1271,"open_issues_count":57,"forks_count":50,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-05-11T16:02:00.587Z","etag":null,"topics":["dark-theme","light-theme","obsidian-md","obsidian-theme","theme"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/primary-theme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"ceciliamay","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2021-10-31T15:28:30.000Z","updated_at":"2025-05-11T15:05:12.000Z","dependencies_parsed_at":"2023-02-14T11:01:45.419Z","dependency_job_id":"7607c6bc-5c7d-4a51-a6f7-d70085caa94a","html_url":"https://github.com/primary-theme/obsidian","commit_stats":{"total_commits":478,"total_committers":12,"mean_commits":"39.833333333333336","dds":0.06485355648535562,"last_synced_commit":"c5ba0b09a8195d09f11e01e815c86dd71f228d3f"},"previous_names":["primary-theme/obsidian","ceciliamay/obsidianmd-theme-primary"],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primary-theme%2Fobsidian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primary-theme%2Fobsidian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primary-theme%2Fobsidian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primary-theme%2Fobsidian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/primary-theme","download_url":"https://codeload.github.com/primary-theme/obsidian/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198514,"owners_count":22030965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dark-theme","light-theme","obsidian-md","obsidian-theme","theme"],"created_at":"2024-09-10T02:01:14.696Z","updated_at":"2025-05-14T18:06:25.127Z","avatar_url":"https://github.com/primary-theme.png","language":"CSS","funding_links":["https://ko-fi.com/ceciliamay","https://ko-fi.com/E1E76SQX8'"],"categories":["CSS"],"sub_categories":[],"readme":"![Primary for Obsidian Overview](https://github.com/primary-theme/obsidian/blob/main/assets/obsidian-overview-header.png)\r\n\u003ch1 align=\"center\"\u003ePrimary for \u003ca href=\"https://obsidian.md\"\u003eObsidian\u003c/a\u003e\u003c/h1\u003e\r\n\u003cp align=\"center\"\u003e\r\n    \u003ca href=\"https://github.com/primary-theme/obsidian/stargazers\"\u003e\u003cimg alt=\"Repo stars\" src=\"https://img.shields.io/github/stars/primary-theme/obsidian?style=for-the-badge\u0026logoColor=EEE7DD\u0026labelColor=593E21\u0026color=D6971B\"\u003e\u003c/a\u003e\r\n    \u003ca href=\"./LICENSE\"\u003e\u003cimg alt=\"Repo License\" src=\"https://img.shields.io/github/license/primary-theme/obsidian?style=for-the-badge\u0026logoColor=EEE7DD\u0026labelColor=593E21\u0026color=BF3F35\"\u003e\u003c/a\u003e\r\n    \u003ca href=\"\"\u003e\u003cimg alt=\"Repository Contributors\" src=\"https://img.shields.io/github/contributors/primary-theme/obsidian?style=for-the-badge\u0026logoColor=EEE7DD\u0026labelColor=593E21\u0026color=23739B\"\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp align=\"center\" style=\"font-style: italic;\"\u003e\r\n    Winner of \u003ca href=\"http://obsidian.md/october2021\"\u003eObsidian October 2021\u003c/a\u003e's Best Theme ✨\r\n    \u003cblockquote\u003e\r\n    Primary is soft, chewy, comforting — like a chocolate chip cookie, or a warm brownie. Primary instantly puts you in a relaxed state that opens the door to creativity and exploration. Wonderfully executed down to the smallest details, Primary ran away with first place.\r\n    \u003c/blockquote\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp align=\"right\"\u003e\r\n    \u003cstrong\u003eObsidian October 2021 Judges\u003c/strong\u003e\r\n\u003c/p\u003e\r\n\r\n\u003csmall\u003e\r\n    This refresh wouldn't be possible without my \u003ca href=\"https://github.com/primary-theme/obsidian/releases/tag/v.2.7.0\"\u003esupporters\u003c/a\u003e!\r\n    \u003cbr\u003e\u003cbr\u003e\r\n    If you like the theme, consider supporting its development by making a one-time donation or subscribe monthly (with perks!) through \u003ca href=\"https://ko-fi.com/ceciliamay\"\u003eKo-fi\u003c/a\u003e.\r\n    \u003cbr\u003e\u003cbr\u003e\r\n    Thank you so much for your patronage!\r\n    \u003cbr\u003e\u003cbr\u003e\r\n\u003c/small\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n    \u003ca href='https://ko-fi.com/E1E76SQX8' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi1.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n## 🧭 Navigation\r\n- [🧭 Navigation](#-navigation)\r\n- [🖼️ Previews](#️-previews)\r\n  - [Light Mode](#light-mode)\r\n    - [Desktop](#desktop)\r\n    - [Tablet](#tablet)\r\n    - [Mobile](#mobile)\r\n  - [Dark Mode](#dark-mode)\r\n    - [Desktop](#desktop-1)\r\n    - [Tablet](#tablet-1)\r\n    - [Mobile](#mobile-1)\r\n- [🍭 Design Approach](#-design-approach)\r\n  - [🌞 Principles](#-principles)\r\n    - [Opinionated but Open](#opinionated-but-open)\r\n    - [Functional Design](#functional-design)\r\n    - [Balance of Aesthetic and Optimization](#balance-of-aesthetic-and-optimization)\r\n    - [Top quality. Know you're in good hands.](#top-quality-know-youre-in-good-hands)\r\n    - [A Collection of Fashion Houses](#a-collection-of-fashion-houses)\r\n- [📖 Installation](#-installation)\r\n  - [Install Official Release](#install-official-release)\r\n  - [Install Beta Version](#install-beta-version)\r\n- [🧸 Features, Customization, and Plugins](#-features-customization-and-plugins)\r\n- [🚧 Disclaimer](#-disclaimer)\r\n- [🌺 Contributing](#-contributing)\r\n  - [Non-developers](#non-developers)\r\n  - [Developers](#developers)\r\n    - [Build Instructions](#build-instructions)\r\n    - [Setting up your Theme Dev Environment](#setting-up-your-theme-dev-environment)\r\n    - [Code, Build and Test](#code-build-and-test)\r\n  - [License](#license)\r\n- [🧠 Creating Primary](#-creating-primary)\r\n- [🩵 Credits](#-credits)\r\n\r\n## 🖼️ Previews\r\n\r\n### Light Mode\r\n\r\n#### Desktop\r\n\r\n![Primary for Obsidian on Desktop - Light Mode](https://github.com/primary-theme/obsidian/blob/main/assets/desktop-1_light-mode.png)\r\n\r\n![Primary for Obsidian on Desktop - Light Mode](https://github.com/primary-theme/obsidian/blob/main/assets/desktop-2_light-mode.png)\r\n\r\n![Primary for Obsidian on Desktop - Light Mode](https://github.com/primary-theme/obsidian/blob/main/assets/desktop-3_light-mode.png)\r\n\r\n#### Tablet\r\n\r\n\u003cp align=\"center\"\u003e\r\n\u003cimg alt=\"Primary for Obsidian on Tablet - Light Mode\" src=\"https://github.com/primary-theme/obsidian/blob/main/assets/tablet-1_light-mode.png\" width=\"768px\"\u003e\r\n\u003c/p\u003e\r\n\r\n#### Mobile\r\n\r\n\u003cp align=\"center\"\u003e\r\n\u003cimg alt=\"Primary for Obsidian on Tablet - Light Mode\" src=\"https://github.com/primary-theme/obsidian/blob/main/assets/mobile-1_light-mode.png\" width=\"320px\"\u003e\r\n\u003c/p\u003e\r\n\r\n### Dark Mode\r\n\r\n#### Desktop\r\n\r\n![Primary for Obsidian on Desktop - Dark Mode](https://github.com/primary-theme/obsidian/blob/main/assets/desktop-1_dark-mode.png)\r\n\r\n![Primary for Obsidian on Desktop - Dark Mode](https://github.com/primary-theme/obsidian/blob/main/assets/desktop-2_dark-mode.png)\r\n\r\n![Primary for Obsidian on Desktop - Dark Mode](https://github.com/primary-theme/obsidian/blob/main/assets/desktop-3_dark-mode.png)\r\n\r\n#### Tablet\r\n\r\n\u003cp align=\"center\"\u003e\r\n\u003cimg alt=\"Primary for Obsidian on Tablet - Dark Mode\" src=\"https://github.com/primary-theme/obsidian/blob/main/assets/tablet-1_dark-mode.png\" width=\"768px\"\u003e\r\n\u003c/p\u003e\r\n\r\n#### Mobile\r\n\r\n\u003cp align=\"center\"\u003e\r\n\u003cimg alt=\"Primary for Obsidian on Tablet - Dark Mode\" src=\"https://github.com/primary-theme/obsidian/blob/main/assets/mobile-1_dark-mode.png\" width=\"320px\"\u003e\r\n\u003c/p\u003e\r\n\r\n## 🍭 Design Approach\r\n\r\nPrimary is an opinionated Obsidian theme that merges play with work.\r\n\r\nFine-tuned to pixel and color perfection, Primary aims to take away the need to think about customization, so that you can focus on what matters – the concepts, that link, this great idea.\r\n\r\nDespite being opinionated, it has plenty of options and ways to make it yours.\r\n\r\nStay tuned, because Primary will come in more flavors soon.\r\n\r\n### 🌞 Principles\r\n\r\n#### Opinionated but Open\r\n\r\nFrom high-level concept down to pixel-level perfection, we bring not only a theme, but an artistic experience.\r\n\r\nWork doesn’t have to be boring, so we’re bringing play through Primary by putting you in interesting color environments.\r\n\r\nA beautiful palette is to each their own, but we’re dedicated to allowing you to taste different versions of what we think is beautiful.\r\n\r\nWe made Primary to allow you to easily customize things on your own through snippets. Most of the code isn't hard coded, and the whole palette will be accessible through Style Settings.\r\n\r\n#### Functional Design\r\n\r\n- Primary forces you to focus on the files/note panes by lifting it up visually through dimming the sidebars\r\n- Lower contrast/chroma for not so important things, and higher contrast/chroma to bring a sense of urgency.\r\n- Layers (through visual cues of shadows, blur, and color) help establish different levels of the space\r\n- Borders can easily garner attention due to the space they take (size, shape and color wise), but we added them with purpose: to either separate or lift\r\n\r\n#### Balance of Aesthetic and Optimization\r\n\r\nPrimary is dedicated to serve bigger vaults. By following a design structure, it allows us to keep Primary’s code lean, lessening potential performance overhead while keeping its visual language.\r\n\r\nThis means sacrificing preset customizability. Most Primary users seem to use it out of the box, so we're putting out options in Style Settings for most customization use cases or special cases only.\r\n\r\nInstead of presets, we exposed the variables, so that you're free to edit them to your liking. The caveat is that you do have to have some CSS knowledge, but rest assured we're here to explain as much as we can.\r\n\r\nYou will also be able to import Presets or create snippets, all using the exposed variables!\r\n\r\n#### Top quality. Know you're in good hands.\r\n\r\nPrimary was built with every component's state in mind. Quality is considering the little things, that one may not know matters, but affects the overall experience.\r\n\r\nWe're here to build slow and deliberate, considering every pixel, fine tuning down to the decimals. Questions like: how does this thickness make me feel? What do these mix of colors trigger within me? We review the theme again and again every second you're immersed in it.\r\n\r\nBy giving you the best quality, we offload the stress of having to tinker to make Obsidian better by offering you a beautiful piece of product that just works.\r\n\r\n#### A Collection of Fashion Houses\r\n\r\nPrimary isn’t here to give every single UI possibility. We’re here to give you just the Primary experience, but allow you to experience different fashion houses.\r\n\r\nAdditional color palettes and theme presets options will be available for those who want Primary’s design principles to better suit their personality.\r\n\r\n## 📖 Installation\r\n\r\n### Install Official Release\r\n\r\nThis option will give you access to public releases.\r\n\r\n1. Open up Obsidian and go to Settings.\r\n2. Inside Settings, head over to the Appearance tab.\r\n3. Under Themes, you should find a button called, `Manage`. Click on it. This will open up the Community Themes page.\r\n4. On the search bar, type `Primary`, and click the one that says, `By Cecilia May`. It should open up the theme.\r\n5. Click `Install and Use` to install the theme! Enjoy.\r\n\r\n### Install Beta Version\r\n\r\nThis option is exclusive to monthly subscribers of Primary.\r\n\r\n1. Head on over to [Primary's Ko-fi](https://ko-fi.com/ceciliamay) page.Under Buy a Coffee, choose Membership and subscribe to get access to member exclusive posts.\r\n2. After subscribing, head over to the `Posts` tab. This is under the header, just below my name and ko-fi link.\r\n3. Once in the Posts tab, you should be able to find posts usually titled along the lines of `Primary x.x.x-beta (Monthly Subscriber Exclusive)`. Click on the latest post.\r\n4. The post includes the full Release Notes so you're fully informed what new features or fixes you get for that release! To get the a copy of that beta, scroll down a bit until you find the `Click here to download the CSS file.` link. This should take you to a GitHub gist page.\r\n5. On the GitHub gist page at the top right side, click **Download Zip**. This will give you a `.zip` file with 1 file inside, the `primary-x.x.x-beta.css` file (where x.x.x is the version number).\r\n6. Unzip the file and copy the CSS file.\r\n7. Paste it under your vault's `.obsidian/themes` folder. You can open this folder through Obsidian. To do so, open up *Settings*, and go to the *Appearance* tab. Under `Themes`, there's an icon beside the theme dropdown. Click it to open the themes folder. It should open up the folder `Vault Name/.obsidian/themes`. Paste the CSS file there.\r\n8. Go back to Obsidian and open up your Command Palette. Type `Reload app without saving` and press enter so that your Obsidian gets reloaded and ensures it identifies the CSS file.\r\n9. Once your Obsidian has reloaded, open up Settings -\u003e Appearance tab. Under the `Themes` dropdown, select the `primary-x.x.x-beta` you downloaded. This should load the theme.\r\n10. Reload the app again for best results.\r\n\r\n## 🧸 Features, Customization, and Plugins\r\n\r\nFor a complete and up to date list of features, customization options, customization guide, and supported plugins, head on over to [Primary for Obsidian Full Guide](https://primary-theme.github.io/).\r\n\r\n## 🚧 Disclaimer\r\n\r\nThe theme, as stated in the license, is provided as is. The theme is originally designed to be of personal use with macOS, Windows, and mobile. It isn't thoroughly tested in all operating systems, or in all use cases (considering Obsidian's flexibility).\r\n\r\nThe theme is a heavily modified version of Obsidian so it may break with future updates. It may also clash with other CSS snippets you have (or plugins' CSS styling).\r\n\r\nConsider contributing to this open project if you'd like to support a necessary feature or plugin, or share your CSS snippets in the discussion page!\r\n\r\n## 🌺 Contributing\r\n\r\n### Non-developers\r\n\r\nIf you are not a developer, a great way to contribute to the theme is by reporting issues and feature requests! You can do so through the [Issues Page](https://github.com/primary-theme/obsidian/issues).\r\n\r\nDon't have a GitHub account? Consider sending a message through [Twitter](https://x.com/ceciliamay_) or send me a report directly via [Email](mailto:contact.ceciliamay@gmail.com).\r\n\r\nAnother great way to contribute is by sharing screenshots of how you use Primary! You can share them on Twitter and tagging @primarytheme or me @ceciliamay_ . You can also send them through the Discussions Page.\r\n\r\n### Developers\r\n\r\n#### Build Instructions\r\n\r\nLet's start by installing the essentials.\r\n\r\nPrimary is written with a mix of CSS and [Sass](https://sass-lang.com/guide/). If you haven't, do install Sass.\r\n\r\n```\r\nsudo gem install sass\r\n```\r\n\r\nAfter that, we need to install [GruntJS](https://gruntjs.com/configuring-tasks). Grunt allows developers to run various tasks that would otherwise be tedious. In our case, we want our repo to follow Obisidan's repository guidelines while making it easy for us to debug.\r\n\r\nPrerequisites would be installing any [NodeJS](https://nodejs.org/en/download/package-manager/current) version.\r\n\r\n```\r\nnpm install -g grunt-cli\r\n```\r\n\r\n#### Setting up your Theme Dev Environment\r\n\r\nWithin the repo's path, run `npm install` to build all the necessary modules.\r\n\r\nThen, go to the `.env.example` and **define your local Obsidian vault path**.\r\n\r\nUpdate the `OBSIDIAN_PATH` to the local path of your Obsidian theme folder.\r\n\r\nOnce done, rename the file from `.env.example` to `.env`.\r\n\r\n#### Code, Build and Test\r\n\r\nRun the command below when you start writing code and testing.\r\n\r\n```\r\nnpx grunt\r\n```\r\n\r\n\u003e [!NOTE] What does the command do?\r\n\u003e The command activates the grunt file so that when you save a file in the repo, the Grunt file watches for your save, compiles the CSS and Sass files, minifies it, and copies it in to two locations — one into this repository, and one into the defined path in the `.env` file. This ensures we have an identical copy for testing live within your vault, and one ready for publishing!\r\n\r\n### License\r\n\r\n// TODO: Write Licensing terms.\r\n\r\n## 🧠 Creating Primary\r\n\r\nI had 3 problems I wanted to solve.\r\n\r\n1. I needed a theme that would give me instant visual context. Much like how Cybertron is, but less cyber-y.\r\n2. I needed a theme that would remind me that my PKM is fun and welcoming.\r\n3. I needed a theme that would remind me that my PKM is not perfect.\r\n\r\nI decided to make a theme for my own use. (Coincidentally, I found out about Obsidian October at last minute. I literally didn't start until 10 days ago. HAHAHA. This event really pushed me to start making it!)\r\n\r\nBUT, going back to the theme, I wanted to solve these three problems.\r\n\r\nComing from my experience in watercoloring back in high school (and expressing that color science nerd-side of mine), I figured I wanted to go back to the basics. I thought, why not primary colors? In paint mixing for most works, a defined set of \"primary colors\" (or a limited palette) are all you need! Each text emphasis would correspond to a primary color. To me, italics felt blue, bold felt red, and links felt yellow. And so Problem #1 was solved.\r\n\r\nNow, what else has primary colors? Well, I remembered Bauhaus and Ikea. My favorite Ikea items were the wooden toys. They also came in primary colors. Despite the primary colors as a basis of the design, I still wanted it to be warm (as in, feeling cozy) and not so \"in your face\" or \"poppy\". While working on the theme, I stumbled upon one of my indie favorites, *I'm Fine by Hazel English*. The music video actually is just pages of retro magazines. What I noticed was how colorful but calming these pages were. I've gone through old magazines myself. The aspect I was most fascinated with was how the aging and yellowing affected the colors... The luxurious green was now minty. The blues were subdued. The reds were cozy. I decided to combine all of their visual language and concluded a summary explained in these following words: Warm. Wood is Warm. Primary Colors. Warm Primary Colors. Warm and Primary SCHOOLS. Primary is children? Children love to play. Children love games. Ikea wooden toys with primary colors that children love to play with? Anyway, Problem #2 is now solved.\r\n\r\nAll of these design choices and coincidences tied perfectly to this feeling of imperfectness. Like, a kid growing up. Karla—the ever so slightly weird looking font I've chosen for Primary—looks like a better version of your handwriting in 5th grade. The cherry on top was when I figured out how to create that specific button and box shadows style. It felt like the interface of a game I used to play!\r\n\r\nThus, 3 personal problems solved through this theme. I really enjoyed making this. I hope it'll give you joy too.\r\n\r\nI'm planning to update it as best as I can and create more themes hopefully with a different design.\r\n\r\nIf you've read all the way down here, well, what the heck. Thank you for listening to my TED talk. Please go back to writing your notes or whatever was more important than my rambles. Hahaha!\r\n\r\n\u003csmall style=\"font-style: italic;\"\u003ewritten 2021-11-01\u003c/small\u003e\r\n\r\n## 🩵 Credits\r\n\r\nI owe a lot to jdanielmourao ([Sanctum](https://github.com/jdanielmourao/obsidian-sanctum)), kepano ([Minimal](https://github.com/kepano/obsidian-minimal)), chetachiezikeuzor ([Yin and Yang](https://github.com/chetachiezikeuzor/Yin-and-Yang-Theme)), and sainhe ([Gruvbox Material](https://github.com/sainnhe/gruvbox-material) and [Everforest](https://github.com/sainnhe/everforest))! Their work inspired me design-wise and their themes helped me a lot in creating mine.\r\n\r\nI would also like to thank the Community for continuously giving me inspiration! It's been that way since I joined the Obsidian Discord. I would never forget the welcoming and incredible response I received when I first posted Primary to the group. I'm forever grateful.\r\n\r\nLastly, I would like to say that I am very blessed to have such active, loving, and supportive users. Despite being inactive for a couple of years, many have stood by the theme, continued to support and encourage me. I cannot fathom this support, but I deeply appreciate it.\r\n\r\nThank you guys for everything.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprimary-theme%2Fobsidian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprimary-theme%2Fobsidian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprimary-theme%2Fobsidian/lists"}