Thanks for your interest! This repo is designed to be beginner-friendly and great for practicing PRs.
Browse Issues and look for:
good-first-issue- Perfect for beginnershelp-wanted- We need help herecomponent- Add a new componenttheme- Add a color schemedocs- Improve documentation
# Fork the repo on GitHub, then:
git clone https://github.com/YOUR_USERNAME/terminal-ui.git
cd terminal-ui
pnpm install
pnpm run devOpen http://localhost:3000 to see the playground.
git checkout -b feat/my-awesome-feature
# or
git checkout -b fix/that-annoying-bugBranch naming:
feat/- New featuresfix/- Bug fixesdocs/- Documentationstyle/- Visual changesrefactor/- Code improvements
Adding a Component:
# Create component file
touch components/terminal-progress.tsx
# Add to exports
# Update components/index.ts
# Add example
# Update app/playground/page.tsxComponent Template:
'use client'
import { ReactNode } from 'react'
interface TerminalProgressProps {
percent: number
label?: string
}
export function TerminalProgress({ percent, label }: TerminalProgressProps) {
return (
<div className="terminal-progress">
<div className="terminal-progress-bar" style={{ width: `${percent}%` }} />
{label && <span>{label}</span>}
</div>
)
}# Build and check for errors
pnpm run build
# Format code
pnpm run format
# Run lint
pnpm run lintBefore opening a PR, make sure your description is reviewer-friendly:
- Lead with impact: what user/developer problem did you solve?
- List concrete changes: 2-5 bullets is usually perfect
- Include validation commands: paste exactly what you ran
- Add screenshots for UI changes: before/after if possible
- Call out follow-ups: mention intentionally deferred work
Recommended structure:
## Summary
## Problem / Motivation
## Changes
## Validation
## Screenshots (if UI)
## Follow-upsgit add .
git commit -m "feat: add terminal progress bar component"Commit message format:
<type>: <description>
[optional body]
Types:
feat:- New featurefix:- Bug fixdocs:- Documentationstyle:- Formatting, stylingrefactor:- Code restructuringtest:- Add testschore:- Maintenance
git push origin feat/my-awesome-featureThen open a PR on GitHub!
PR Title Format:
feat: add progress bar component
fix: terminal prompt cursor position
docs: improve installation guide
PR Description Template:
## What does this PR do?
Adds a new `TerminalProgress` component for showing progress bars.
## Screenshots
[Add screenshot if UI change]
## Checklist
- [x] Component is documented
- [x] Example added to playground
- [x] Code is formatted
- [x] Build passes- Use TypeScript - Type everything
- Follow existing patterns - Check similar components
- Keep it simple - One component, one purpose
- Make it accessible - ARIA labels, keyboard nav
- Mobile-friendly - Test on small screens
Every component should:
- Export a named function (not default)
- Have TypeScript props interface
- Include JSDoc comments
- Work with keyboard navigation
- Have a playground example
Example:
/**
* Displays a terminal-style progress bar
* @param percent - Progress percentage (0-100)
* @param label - Optional label text
*/
export function TerminalProgress({ percent, label }: TerminalProgressProps) {
// ...
}Found a bug? Open an issue!
Include:
- Description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Your environment (OS, browser)
Have an idea? Open an issue!
Describe:
- What problem does it solve?
- What would the API look like?
- Any examples or mockups?
- 💬 Open a discussion
- 🐦 Tweet @OpenKnots
All contributors will be added to the README! We appreciate every PR.
Pro Tip: This repo is perfect for testing code-flow, our maintainer console. Contributors can use it to learn the PR workflow!