6.2 KiB
Contributing to Okudagram
Thank you for your interest in contributing! This document outlines the process for contributing to the project. For end-user documentation, see README.md.
Code of Conduct
By participating in this project, you agree to maintain a respectful and inclusive environment. Be kind, constructive, and professional in all interactions.
Reporting Bugs
Bugs are tracked as GitHub issues using the bug report template, which prompts for the reproduction steps, version info, and other details needed to triage the issue.
Before opening a new bug report:
- Search existing issues to see if it has already been reported.
- Make sure you are running the latest version of the theme and the minimum required version of Obsidian.
- Try to reproduce the bug in a clean vault with other plugins disabled or removed.
Suggesting Enhancements
Feature requests are tracked as GitHub issues using the feature request template. The template focuses on the problem you're trying to solve before the proposed solution.
Before opening an issue, check the ROADMAP.md to make sure your idea isn't already planned or out of scope for this theme, and check the milestones page to make sure it isn't already scheduled for a release.
If your idea is still in an early stage and you'd like to discuss it before filing a formal request, open an Ideas discussion instead.
Accepted feature requests are assigned a milestone (e.g. v2.3.0) indicating which release they're planned for. Issues without a milestone have not yet been scheduled. They may still be accepted, but no release has been committed to.
Questions and Discussion
For usage questions, styling help, or sharing how you use the theme, please open a discussion rather than an issue. Discussion categories include Q&A, Ideas, and Show & Tell, each with its own template.
Contributing Code
Before you start...
- Check the ROADMAP.md to make sure the same change isn't already planned.
- Check the milestones page to see which release an issue is scheduled for. If you'd like to work on an issue, comment on it before starting so it can be confirmed available and not already in progress by someone else.
- Open an issue or discussion for non-trivial changes so we can agree on the approach. Small fixes (typos, doc improvements, obvious bugs) can skip this.
- Scope each pull request to one issue, bug, or feature. Bundled changes are harder to review.
Once you are ready to edit...
- Fork the repository and create your branch from
main. - Make your changes to
theme.cssin a clear, focused commit history. - Follow the style guide below.
- Test your changes in a local Obsidian vault: copy
manifest.jsonandtheme.cssinto<vault>/.obsidian/themes/Okudagram/, then reload Obsidian and verify the affected UI surfaces. Note that themes can break in non-obvious ways across Obsidian versions, so test against the current public release. - Update documentation (README.md) if your changes affect user-facing behavior or scope.
Creating a Pull Request
When creating a pull request you'll be met with a default pull request template. It includes a list of template names that can be appended to the pull request URL to create a PR using one of the specialized templates. If you are unsure of which template to use, the default is fine. Fill out the chosen template and select Create pull request when you are ready.
Pull Request Templates
For more specific changes, you can use one of the specialized templates:
| Type of change | Template URL parameter |
|---|---|
| New feature | ?template=feature.md |
| Bug fix | ?template=bugfix.md |
| Documentation | ?template=docs.md |
| Refactor | ?template=refactor.md |
Style
- Match the existing formatting in
theme.css(2-space indent, nested selectors where they help readability). - Use the existing palette custom properties (
--okudagram-peach, etc.) rather than hardcoding hex values. - Avoid
!importantunless you've confirmed Obsidian's default rule can't be beaten by specificity alone. - Avoid
:has, unless absolutely necessary. - Dark mode only! See the note in the README.md. Don't add
.theme-lightrules.
Theme PADD integration
Okudagram ships with a settings.json so users can customize the palette through the Theme PADD plugin without editing CSS. If you're contributing to the theme, please keep this integration intact:
- Do not remove or modify the
@themepaddcomment block at the top oftheme.css. Theme PADD parses this header to find thesettings.jsonfile in the repo. If it's removed, the plugin can no longer load customization options for users. - Changes to
settings.jsonmust follow the spec at Jalad25/theme-padd. When adding new customizable variables or palette presets, refer to that repo for the supported schema (field types,applykinds, etc.). - If you add a new
--okudagram-*palette variable, also expose it insettings.jsonso users can customize it through Theme PADD. Conversely, if you rename or remove a palette variable, updatesettings.jsonaccordingly so the plugin doesn't try to apply a stale variable name.
License
By contributing to this project you agree that your contributions will be licensed under the GNU General Public License v3.0.