# Doneut **A Simple progress circle for your Obsidian headings.** **Doneut** automatically places a small SVG progress ring next to any heading that has checkboxes underneath it. Check something off - the ring updates instantly, right inside Reading View. If you Hit 100%, you'll get a confetti burst. 🎉 --- ## How it works 1. Write a heading (`## My Tasks`). 2. Add checkboxes under it (`- [ ] Do the thing`). 3. Doneut draws a progress ring right next to the heading title. 4. Every time you tick a checkbox, the ring fills up in real time. It works out of the box. No configurations needed. --- ## Features - **Live progress rings** — SVG rings rendered inline next to headings, updating dynamically as you check/uncheck items. - **Proportional sizing** — rings scale down automatically for deeper heading levels (H1 is biggest, H6 is smallest). - **Fully customisable** — every visual detail is exposed in Settings: - Ring base size and per-level size scaling - Stroke width and per-level scaling - Track color (background ring) - Progress / fill color - Stroke linecap (`round`, `flat`, `square`) - Fill animation duration - Percentage label (show/hide, font size, per-level scaling, color) - Confetti on completion (toggle) - Per heading-level toggles (H1–H6) - Choose color per heading (color of the progressCircle) - **Live settings preview** — see your ring update in the settings panel as you tweak values. - **Theme-aware defaults** — when no custom color is set, the ring uses your Obsidian theme's accent and border colors automatically. - **Works on desktop and mobile.** --- ## Screenshots

Doneut Playground

Per Heading Customization

--- ## Installation ### From the Community Plugin list (recommended) 1. Open Obsidian → **Settings → Community plugins**. 2. Disable Safe mode if prompted. 3. Click **Browse**, search for **Doneut**, and install. 4. Enable the plugin. ### Manual install 1. Download `main.js`, `manifest.json`, and `styles.css` from the [latest release](https://github.com/prajwal-56/doneut/releases/latest). 2. Copy the three files into your vault at: ``` /.obsidian/plugins/doneut/ ``` 3. Reload Obsidian and enable Doneut under **Settings → Community plugins**. --- ## Settings Open **Settings → Doneut** to customise the plugin. A live preview ring updates as you change values. | Setting | Description | |---|---| | Enable plugin | Master toggle — turns all rings on or off. | | Confetti on completion | Plays a confetti burst when a heading hits 100%. | | Base ring size (H1) | Diameter (px) of the ring next to an H1 heading. | | Size decrease per level | How many px smaller each deeper heading's ring gets. | | Stroke width (H1) | Track/arc thickness (px) for H1. | | Stroke decrease per level | How much thinner the stroke gets for deeper headings. | | Track color | Background ring color. Reset button restores theme default. | | Progress color | Fill/arc color. Reset button restores theme accent. | | Stroke linecap | Shape of the arc ends: Round, Flat, or Square. | | Animation duration | How long (ms) the fill transition plays. | | Show percentage text | Toggle the % label inside the ring. | | Font size (H1) | Base label font size for H1. | | Font size decrease per level | How much smaller the label gets for deeper headings. | | Text color | Label color. Reset button restores theme default. | | H1–H6 toggles | Choose exactly which heading levels show a ring. | | Reset to defaults | Wipes all customisation back to factory defaults. | --- ## Releasing a new version 1. Bump `version` in `manifest.json` (SemVer) and update `minAppVersion` if needed. 2. Add the new version to `versions.json`: ```json { "1.0.1": "1.4.0" } ``` 3. Run `npm version patch` (or `minor` / `major`) — this syncs `package.json` and stages the changed files automatically. 4. Push a tag matching the version (no `v` prefix): ```bash git tag 1.0.1 git push origin 1.0.1 ``` 5. The GitHub Actions [release workflow](.github/workflows/release.yml) will build and create a draft release automatically. Review it, then publish. --- ## Development ```bash # Clone git clone https://github.com/prajwal-56/doneut cd doneut # Install dependencies (Node 18+ required) npm install # Watch mode (auto-recompiles on save) npm run dev # Production build npm run build # Lint npm run lint ``` Copy `main.js`, `manifest.json`, and `styles.css` into your vault's plugin folder to test locally. --- ## Contributing Issues and pull requests are welcome at [github.com/prajwal-56/doneut](https://github.com/prajwal-56/doneut/issues). Please keep pull requests focused and add a description of what changed and why. Feel free to fork and do anything with it 🙌🏻. --- ## Support If you liked any of my works , feel free to [buy me a coffee](https://prajwal-56.github.io/donate) or [support me](https://prajwal-56.github.io/donate) [![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-prawmathean-FFDD00?style=flat&logo=buy-me-a-coffee&logoColor=black)](https://prajwal-56.github.io/donate) --- ## License [0-BSD](LICENSE) — do whatever you want with it.