[Feature]: Allow custom theming of the dashboard
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 49/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- css, typescript
Research direction
Start by reading globals.css to see which theme variables are already exposed, then trace how the dashboard styles are served from @counterscale/server. The issue proposes three possible approaches but does not choose one; first clarify the supported theming surface with the maintainer. Done means deployers have a documented way to customize the dashboard palette, fonts, or spacing.
Written by the indexing model from the issue text.
Description
Feature Summary
Hi Ben, and thanks for Counterscale. My name is Ben as well, and I am a product designer/builder looking to find ways to contribute to more open-source projects. I run Counterscale for a small static site of mine and love the data it gives me.
I thought it would be fun if there was a way to restyle the dashboard (palette, font, spacing) if that is possible. globals.css already defines the palette as CSS variables (--background, --primary, --border, --barchart, …), which makes this look close to doable. What's missing is a supported way to override them from outside the package. I'd love to work on this if that is alright.
Possible approaches I could take:
- Serve an optional user stylesheet (for example
theme.css) afterglobals.css, so a deployer can override variables and fonts. Nothing changes if it isn't present. - Read a few
THEME_*values (accent color, font family) from env vars and inject them as:rootoverrides. - Document the existing variables as the supported theming surface.
Would I be able to work on any of these approaches in a PR? Great to meet you and thanks for making this awesome tool!
Component
@counterscale/server
Additional Context
No response
- Dominant language
- TypeScript
- Stars
- 2.2k
- Forks
- 136
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from benvinegar/counterscale
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
benvinegar/counterscale#272 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
benvinegar/counterscale#271 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
benvinegar/counterscale#267 ·
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
benvinegar/counterscale#257 ·
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
benvinegar/counterscale#255 ·
All issues in benvinegar/counterscale
Similar issues
-
Difficulty 1/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
area:plugins area:security area:skills bug has repro
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
anthropics/claude-code#105911 ·
Maintainers usually reply within 1 day
-
documentation good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
dev-five-git/devup-ui#879 ·
Maintainers usually reply within 11 days
-
openspec-apply-change skill: when blocked, may select a ready artifact unrelated to missingArtifactsOpen
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Fission-AI/OpenSpec#2165 ·
Maintainers usually reply within 1 day
-
🐞 bug 🧐 unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Tencent/tdesign-vue-next#7032 · 1 comment ·
Maintainers usually reply within 1 day