jalad25_Okudagram/CONTRIBUTING.md
2026-05-26 05:23:01 -05:00

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...

  1. Fork the repository and create your branch from main.
  2. Make your changes to theme.css in a clear, focused commit history.
  3. Follow the style guide below.
  4. Test your changes in a local Obsidian vault: copy manifest.json and theme.css into <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.
  5. 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 !important unless 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-light rules.

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 @themepadd comment block at the top of theme.css. Theme PADD parses this header to find the settings.json file in the repo. If it's removed, the plugin can no longer load customization options for users.
  • Changes to settings.json must 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, apply kinds, etc.).
  • If you add a new --okudagram-* palette variable, also expose it in settings.json so users can customize it through Theme PADD. Conversely, if you rename or remove a palette variable, update settings.json accordingly 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.