Thanks for your interest in contributing!
devtemDesign is a lightweight, zero-dependency declarative page engine. We welcome improvements to templates, sections, accessibility, documentation, and the FSCSS source.
- Report bugs or request features via Issues
- Improve documentation or examples
- Add or refine templates
- Fix accessibility / responsive issues
- Improve the FSCSS modules or the compile workflow
- Submit pull requests
-
Fork the repository and clone your fork:
git clone https://github.com/YOUR_USERNAME/devtemDesign.git cd devtemDesign -
Install dependencies:
npm install
-
Work on styles in the
fscss/directory. The compiled output lives instyle.css. -
Compile FSCSS → CSS:
npm run build:css # or npx fscss fscss/main.fscss style.css -
Test changes by opening a simple HTML page that loads
style.css+script.jsand callsdevtemDesign(...).
devtemDesign/
├── fscss/ # Source styles (FSCSS modules)
│ ├── main.fscss # Entry point – imports all partials
│ ├── _tokens.fscss
│ ├── _base.fscss
│ ├── _effects.fscss
│ ├── _nav.fscss
│ ├── _buttons.fscss
│ ├── _hero.fscss
│ ├── _sections.fscss
│ ├── _pricing.fscss
│ ├── _faq-cta.fscss
│ ├── _footer.fscss
│ ├── _motion.fscss
│ └── _responsive.fscss
├── style.css # Compiled CSS (generated – do not edit by hand)
├── script.js # Engine
├── .github/workflows/ # CI that compiles FSCSS on push
└── package.json
Important: Edit the files under fscss/. Never hand-edit style.css — it is overwritten by the compiler and by GitHub Actions.
- Keep the library zero-dependency.
- Prefer plain, readable vanilla JS.
- Maintain the public API:
devtemDesign(containerId, config)returns{ setTemplate, destroy }. - Respect
prefers-reduced-motionand fine-pointer media queries. - Keep accessibility in mind (ARIA, focus management, skip link, etc.).
- Prefer the existing design tokens (
--accent,--glass-bg, etc.). - Use FSCSS property shorthands where they improve readability (
px,py,rounded,bg,fs,fw,pos,size, etc.). - Keep selectors and cascade compatible with the current HTML structure generated by the engine.
- Test both dark and light templates (especially
paper).
When adding a new template:
- Add an entry to the
templatesobject inscript.js. - Provide a complete set of the core tokens (
--accent,--accent2,--accent3,--text,--muted,--bg-deep, glass values, etc.). - Mark light themes with the second argument to
mk(..., true). - Update the README template table.
-
Create a feature branch:
git checkout -b feature/your-change
-
Make your changes and ensure CSS compiles cleanly:
npm run build:css
-
Commit with a clear message (Conventional Commits style is appreciated):
feat: add testimonials section fix: drawer focus trap on Escape docs: clarify theme token overrides style: improve pricing card hover -
Push and open a Pull Request against
main. -
Fill in the PR description: what changed, why, and how to test it.
CI will automatically recompile style.css when files under fscss/ change.
Be respectful and constructive. Harassment or discriminatory behavior will not be tolerated. See Contributor Covenant for guidance.
Open an issue or start a discussion. We’re happy to help.