diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..8bd4ca5 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @2025-OSDC/team-colbrush diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..fb8aef3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug Report +about: Create a report to help us improve +title: '[BUG] ' +labels: 'bug' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce: +1. Run command '...' +2. See error + +**Expected behavior** +What you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Environment (please complete the following information):** +- OS: [e.g. macOS, Windows, Linux] +- Node version: [e.g. 18.0.0] +- React version: [e.g. 18.2.0] +- Colbrush version: [e.g. 1.15.0] +- Package manager: [e.g. npm, pnpm, yarn] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..621a3cb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: Question or Discussion + url: https://github.com/2025-OSDC/colbrush/discussions + about: Ask questions or discuss ideas with the community + - name: Documentation + url: https://www.colbrush.site + about: Visit our documentation website diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bf48507 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,24 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: '[FEATURE] ' +labels: 'enhancement' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. + +**Would you like to work on this feature?** +- [ ] Yes, I would like to implement this feature +- [ ] No, I'm just suggesting diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3927f17..f9fd560 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,30 +1,34 @@ - - + + -## 🚀 관련 이슈 - -- closed #1 +## 🚀 Related Issue + + +Closes # +## Type of Change +- [ ] Bug fix +- [ ] New feature +- [ ] Documentation update +- [ ] Performance improvement -## 📝 작업 내용 - -- 로그인 API 구현 +## 📝 Description + -## ✔️ 체크 리스트 -- [ ] Merge 하려는 브랜치가 올바른가? (`main` branch에 실수로 PR 생성 금지) -- [ ] Merge 하려는 PR 및 Commit들을 **로컬**에서 실행했을 때 에러가 발생하지 않았는가? +## ✔️ Checklist +- [ ] I've read the [Contributing Guide](CONTRIBUTING.md) +- [ ] I have checked that I'm merging into the correct branch (not `master` by mistake) +- [ ] I have tested these changes locally and they work without errors +- [ ] I have run `pnpm build` and it completes successfully +- [ ] I have run `pnpm lint` and there are no linting errors +- [ ] I have added/updated tests if needed +- [ ] I have updated documentation if needed - -## 📸 스크린샷 (선택) - +## 📸 Screenshots (Optional) + -## 💬 리뷰 요구사항(선택) - - - -## ➕ 추후 계획(선택) - +## 💬 Review Notes (Optional) + diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..a30ed30 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,184 @@ +# Contributor Covenant Code of Conduct + +[한국어 버전은 아래를 참조하세요](# 기여자 행동 강령 규약) + + +# Contributor Covenant 3.0 Code of Conduct + +## Our Pledge + +We pledge to make our community welcoming, safe, and equitable for all. + +We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of characteristics including race, ethnicity, caste, color, age, physical characteristics, neurodiversity, disability, sex or gender, gender identity or expression, sexual orientation, language, philosophy or religion, national or social origin, socio-economic position, level of education, or other status. The same privileges of participation are extended to everyone who participates in good faith and in accordance with this Covenant. + +## Encouraged Behaviors + +While acknowledging differences in social norms, we all strive to meet our community's expectations for positive behavior. We also understand that our words and actions may be interpreted differently than we intend based on culture, background, or native language. + +With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including: + +1. Respecting the **purpose of our community**, our activities, and our ways of gathering. +2. Engaging **kindly and honestly** with others. +3. Respecting **different viewpoints** and experiences. +4. **Taking responsibility** for our actions and contributions. +5. Gracefully giving and accepting **constructive feedback**. +6. Committing to **repairing harm** when it occurs. +7. Behaving in other ways that promote and sustain the **well-being of our community**. + + +## Restricted Behaviors + +We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct. + +1. **Harassment.** Violating explicitly expressed boundaries or engaging in unnecessary personal attention after any clear request to stop. +2. **Character attacks.** Making insulting, demeaning, or pejorative comments directed at a community member or group of people. +3. **Stereotyping or discrimination.** Characterizing anyone’s personality or behavior on the basis of immutable identities or traits. +4. **Sexualization.** Behaving in a way that would generally be considered inappropriately intimate in the context or purpose of the community. +5. **Violating confidentiality**. Sharing or acting on someone's personal or private information without their permission. +6. **Endangerment.** Causing, encouraging, or threatening violence or other harm toward any person or group. +7. Behaving in other ways that **threaten the well-being** of our community. + +### Other Restrictions + +1. **Misleading identity.** Impersonating someone else for any reason, or pretending to be someone else to evade enforcement actions. +2. **Failing to credit sources.** Not properly crediting the sources of content you contribute. +3. **Promotional materials**. Sharing marketing or other commercial content in a way that is outside the norms of the community. +4. **Irresponsible communication.** Failing to responsibly present content which includes, links or describes any other restricted behaviors. + + +## Reporting an Issue + +Tensions can occur between community members even when they are trying their best to collaborate. Not every conflict represents a code of conduct violation, and this Code of Conduct reinforces encouraged behaviors and norms that can help avoid conflicts and minimize harm. + +When an incident does occur, it is important to report it promptly. To report a possible violation, **[Colbrush GitHub Issues](https://github.com/2025-OSDC/colbrush/issues)** + +Community Moderators take reports of violations seriously and will make every effort to respond in a timely manner. They will investigate all reports of code of conduct violations, reviewing messages, logs, and recordings, or interviewing witnesses and other participants. Community Moderators will keep investigation and enforcement actions as transparent as possible while prioritizing safety and confidentiality. In order to honor these values, enforcement actions are carried out in private with the involved parties, but communicating to the whole community may be part of a mutually agreed upon resolution. + + +## Addressing and Repairing Harm + +If an investigation by the Community Moderators finds that this Code of Conduct has been violated, the following enforcement ladder may be used to determine how best to repair harm, based on the incident's impact on the individuals involved and the community as a whole. Depending on the severity of a violation, lower rungs on the ladder may be skipped. + +1) Warning + 1) Event: A violation involving a single incident or series of incidents. + 2) Consequence: A private, written warning from the Community Moderators. + 3) Repair: Examples of repair include a private written apology, acknowledgement of responsibility, and seeking clarification on expectations. +2) Temporarily Limited Activities + 1) Event: A repeated incidence of a violation that previously resulted in a warning, or the first incidence of a more serious violation. + 2) Consequence: A private, written warning with a time-limited cooldown period designed to underscore the seriousness of the situation and give the community members involved time to process the incident. The cooldown period may be limited to particular communication channels or interactions with particular community members. + 3) Repair: Examples of repair may include making an apology, using the cooldown period to reflect on actions and impact, and being thoughtful about re-entering community spaces after the period is over. +3) Temporary Suspension + 1) Event: A pattern of repeated violation which the Community Moderators have tried to address with warnings, or a single serious violation. + 2) Consequence: A private written warning with conditions for return from suspension. In general, temporary suspensions give the person being suspended time to reflect upon their behavior and possible corrective actions. + 3) Repair: Examples of repair include respecting the spirit of the suspension, meeting the specified conditions for return, and being thoughtful about how to reintegrate with the community when the suspension is lifted. +4) Permanent Ban + 1) Event: A pattern of repeated code of conduct violations that other steps on the ladder have failed to resolve, or a violation so serious that the Community Moderators determine there is no way to keep the community safe with this person as a member. + 2) Consequence: Access to all community spaces, tools, and communication channels is removed. In general, permanent bans should be rarely used, should have strong reasoning behind them, and should only be resorted to if working through other remedies has failed to change the behavior. + 3) Repair: There is no possible repair in cases of this severity. + +This enforcement ladder is intended as a guideline. It does not limit the ability of Community Managers to use their discretion and judgment, in keeping with the best interests of our community. + + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public or other spaces. Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 3.0, permanently available at [https://www.contributor-covenant.org/version/3/0/](https://www.contributor-covenant.org/version/3/0/). + +Contributor Covenant is stewarded by the Organization for Ethical Source and licensed under CC BY-SA 4.0. To view a copy of this license, visit [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/) + +For answers to common questions about Contributor Covenant, see the FAQ at [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq). Translations are provided at [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations). Additional enforcement and community guideline resources can be found at [https://www.contributor-covenant.org/resources](https://www.contributor-covenant.org/resources). The enforcement ladder was inspired by the work of [Mozilla’s code of conduct team](https://github.com/mozilla/inclusion). + + +--- + + +# 기여자 행동 강령 규약 + +## 서약 + +우리는 구성원, 기여자 및 리더로서 커뮤니티에 참여하여 연령, 신체 크기, 눈에 보이거나 보이지 않는 장애, 민족성, 성별, 성 정체성과 표현, 경력, 학력, 사회 경제적 지위, 국적, 외모, 인종, 카스트 제도, 피부색, 종교 또는 성적 정체성과 성적 성향에 관계없이 모든 사람을 차별하지 않을 것을 서약한다. + +우리는 개방적이고 친근하며 다양하고 포용적이며 건강한 커뮤니티에 기여하는 방식으로 행동하고 상호작용할 것을 서약한다. + +## 표준 + +커뮤니티의 긍정적인 환경을 위해 기여자가 해야 할 행동은 다음과 같다: + +* 다른 사람들에 대한 친절과 공감 표현 +* 서로 다른 의견 및 관점, 경험에 대한 존중 +* 건설적인 피드백을 제공 및 열린 마음으로 수락 +* 책임을 받아들이고 실수로 인해 영향을 받은 사람들에게 사과하며 경험을 통해 배움 +* 개인뿐만 아닌 전체 커뮤니티를 위한 최선의 방법에 집중 + +하지말아야 할 행동은 다음과 같다: + +* 성적인 언어와 이미지 사용, 성적 관심이나 어떤 종류의 접근 +* 소모적인 논쟁, 모욕적 또는 비하하는 댓글과 개인적 또는 정치적인 공격 +* 공개적이거나 개인적인 괴롭힘 +* 동의없는 집주소 또는 이메일 주소 등의 개인 정보의 공개 +* 부적절한 것으로 간주될 수 있는 다른 행위 + +## 집행 책임 + +커뮤니티 리더는 허용되는 행동의 기준을 명확히 하고 집행할 책임이 있으며 부적절하다고 여겨지는 모든 행동, 위협, 공격 또는 피해에 대해 적절하고 공정한 행동을 취한다. + +프로젝트 유지자는 이 행동 강령을 따르지 않은 댓글, 커밋, 코드, 위키 편집, 이슈와 그 외 다른 기여를 삭제, 수정 또는 거부할 권리와 책임이 있다. 또한, 부적당하거나 험악하거나 공격적이거나 해롭다고 생각하는 다른 행동을 한 기여자를 일시적 또는 영구적으로 퇴장시킬 수 있다. + +커뮤니티 리더는 이 행동 강령을 따르지 않는 댓글, 커밋, 코드, 위키 편집, 이슈와 그 외 다른 기여를 삭제, 수정 또는 거부할 권리와 책임이 있으며, 적절한 경우 중재적 의사결정에 대한 이유를 전달할 것이다. + +## 범위 + +이 행동 강령은 개인이 공개 영역에서 커뮤니티를 공식적으로 대표할 때를 포함하여 모든 커뮤니티 영역에 적용된다. 커뮤니티 대표의 예로 공식 이메일 주소 사용, 공식 소셜 미디어 계정을 통한 게시, 온/오프라인 이벤트에서 임명된 대표자의 활동이 있다. + +## 집행 + +모욕적이거나 괴롭힘 또는 그 외 하지말아야 할 행동을 발견하면 [Colbrush GitHub Issues](https://github.com/2025-OSDC/colbrush/issues)을 통해 집행 책임이 있는 커뮤니티 리더에게 보고한다. 모든 불만사항은 신속하고 공정하게 검토되고 조사될 것이다. + +커뮤니티 리더는 사건의 보고자의 사생활과 안전을 존중할 의무가 있다. + +## 집행 지침 + +커뮤니티 리더는 행동 강령 위반으로 간주되는 행동에 대한 결과를 결정할 때, 다음의 커뮤니티 영향 지침을 준수한다: + +### 1. 정정 + +**커뮤니티 영향**: 커뮤니티 내 부적절한 언어 사용이나 비전문적인 행동 또는 불쾌함을 주는 행동. + +**결과**: 커뮤니티 리더가 별도로 위반에 대한 명확성과 부적절함에 대한 이유를 설명하고 서면 경고. 공개 사과를 요청할 수 있다. + +### 2. 경고 + +**커뮤니티 영향**: 단일 사고 또는 연속된 행동 위반. + +**결과**: 지속적인 행동에 대한 결과에 대해 경고. 특정 기간동안 행동 강령을 시행하는 사람들과의 원치 않는 상호작용을 포함한 관련된 사람들과의 상호작용 금지. 소셜 미디어와 같은 외부 채널뿐만 아닌 커뮤니티 공간에서의 상호작용도 금지된다. 이 조항을 위반하면 일시적 혹은 영구적으로 제재로 이어질 수 있다. + +### 3. 일시적인 제재 + +**커뮤니티 영향**: 지속적으로 부적절한 행동을 포함한 심각한 커뮤니티 기준 위반. + +**결과**: 특정 기간동안 커뮤니티와의 어떠한 종류의 상호작용이나 공개적 소통이 일시적 제재. 이 기간동안 행동 강령을 시행하는 사람들과의 원치 않는 상호작용을 포함한 관련된 사람들과의 상호작용 금지. 소셜 미디어와 같은 외부 채널뿐만 아닌 커뮤니티 공간에서의 상호작용도 금지된다. 이 조항을 위반하면 일시적 혹은 영구적으로 제재로 이어질 수 있다. + +### 4. 영구 제재 + +**커뮤니티 영향**: 지속적인 부적절한 행동, 개인적인 괴롭힘 또는 개인의 계급에 대한 공격이나 폄하를 포함한 커뮤니티 표준 위반 패턴을 보임. + +**결과**: 커뮤니티와의 모든 종류의 공개적 교류를 영구적으로 제재. + +## 참고 + +이 행동 강령은 [기여자 규약][homepage] 의 2.1 버전을 변형하였습니다. 그 내용은 [https://www.contributor-covenant.org/ko/version/2/1/code-of-conduct.html][v2.1] 에서 확인할 수 있습니다. + +커뮤니티 영향 지침은 [Mozilla's code of conduct enforcement ladder][Mozilla CoC] 에서 영감을 얻었습니다. + +이 행동 강령에 관련한 일반적인 질문에 대한 대답은 [https://www.contributor-covenant.org/faq][FAQ]를 참고할 수 있습니다. 번역본은 [https://www.contributor-covenant.org/translations][translations]에서 볼 수 있습니다. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a90b93e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,332 @@ +# Contributing to Colbrush + +Thank you for your interest in contributing to Colbrush! We welcome contributions from the community. + +[한국어 버전은 아래를 참조하세요](#한국어) + +## 📋 Table of Contents + +- [Code of Conduct](#code-of-conduct) +- [How Can I Contribute?](#how-can-i-contribute) +- [Development Setup](#development-setup) +- [Pull Request Process](#pull-request-process) +- [Coding Guidelines](#coding-guidelines) + + +## 📜 Code of Conduct + +This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. + +## 🤝 How Can I Contribute? + +### Reporting Bugs + +Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include: + +- A clear and descriptive title +- Steps to reproduce the issue +- Expected behavior +- Actual behavior +- Screenshots (if applicable) +- Environment details (OS, Node version, React version, etc.) + +### Suggesting Enhancements + +Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include: + +- A clear and descriptive title +- A detailed description of the proposed feature +- Examples of how the feature would be used +- Why this enhancement would be useful + +### Pull Requests + +1. Fork the repository +2. Create a new branch from `develop` (not `master`) +3. Make your changes +4. Write or update tests as needed +5. Ensure all tests pass +6. Update documentation if needed +7. Submit a pull request + +## 🛠 Development Setup + +### Prerequisites + +- Node.js 18+ +- pnpm (recommended) or npm + +### Setup Steps + +```bash +# Clone your fork +git clone https://github.com/YOUR_USERNAME/colbrush.git +cd colbrush + +# Install dependencies +pnpm install + +# Build the project +pnpm build + +# Run in development mode +pnpm dev +``` + +### Project Structure + +``` +colbrush/ +├── src/ +│ ├── cli/ # CLI tool implementation +│ ├── client/ # React components and hooks +│ ├── devtools/ # Developer tools (SimulationFilter, etc.) +│ ├── core/ # Core color transformation logic +│ └── styles.css # Base styles +├── dist/ # Built files +└── tests/ # Test files +``` + +### Running Tests + +```bash +pnpm test +``` + +### Building + +```bash +pnpm build +``` + +## 🔄 Pull Request Process + +1. **Branch Naming**: Use Issue Number + - `feat/#42` for new features + - `fix/#27` for bug fixes + - `docs/#75` for documentation + - `refactor/#86` for refactoring + +2. **PR Title**: Use the format `[TAG/#ISSUE_NUMBER] Description` + - Examples: + - `✨ [FEAT/#42] Add support for monochromacy` + - `🐛 [FIX/#38] Fix theme persistence in localStorage` + - `📝 [DOCS/#45] Update installation guide` + +3. **Tags**: + - ✨ `FEAT` - New feature + - 🐛 `FIX` - Bug fix + - 📝 `DOCS` - Documentation + - ♻️ `REFACTOR` - Code refactoring + - ✅ `TEST` - Adding or updating tests + - 🎨 `STYLE` - Code style changes (formatting, etc.) + - ⚡️ `PERF` - Performance improvements + +4. **Fill out the PR template completely** + +5. **Ensure CI passes** - All checks must pass before merge + +6. **Request review** from maintainers + +7. **Address feedback** promptly and professionally + +## 📝 Coding Guidelines + +### TypeScript + +- Use TypeScript for all new code +- Provide proper type definitions +- Avoid using `any` type unless absolutely necessary + +### Code Style + +- Follow existing code formatting +- Run `pnpm lint` before committing +- Use meaningful variable and function names +- Add comments for complex logic + +### React Components + +- Use functional components with hooks +- Follow React best practices +- Keep components focused and reusable +- Document props with TypeScript interfaces + +### Testing + +- Write tests for new features +- Update tests when modifying existing features +- Aim for meaningful test coverage + + + +## ❓ Questions? + +Feel free to open an issue with your question, or reach out to the maintainers. + +--- + +# 한국어 + +## 📋 목차 + +- [행동 강령](#행동-강령) +- [기여 방법](#기여-방법) +- [개발 환경 설정](#개발-환경-설정) +- [Pull Request 프로세스](#pull-request-프로세스) +- [코딩 가이드라인](#코딩-가이드라인) + +## 📜 행동 강령 + +이 프로젝트와 모든 참여자는 [행동 강령](CODE_OF_CONDUCT.md)의 적용을 받습니다. 참여함으로써 본 강령을 준수할 것을 동의하는 것으로 간주됩니다. + +## 🤝 기여 방법 + +### 버그 제보 + +버그 리포트를 작성하기 전에 기존 이슈를 확인해 중복을 피해주세요. 버그 리포트 작성 시 다음을 포함해주세요: + +- 명확하고 설명적인 제목 +- 문제 재현 단계 +- 예상 동작 +- 실제 동작 +- 스크린샷 (해당되는 경우) +- 환경 정보 (OS, Node 버전, React 버전 등) + +### 기능 제안 + +기능 제안은 GitHub 이슈로 추적됩니다. 기능 제안 작성 시 다음을 포함해주세요: + +- 명확하고 설명적인 제목 +- 제안하는 기능에 대한 상세한 설명 +- 기능 사용 예시 +- 이 개선사항이 유용한 이유 + +### Pull Request + +1. 저장소를 Fork합니다 +2. `develop` 브랜치에서 새 브랜치를 생성합니다 (`master`가 아님) +3. 변경사항을 작성합니다 +4. 필요시 테스트를 작성하거나 업데이트합니다 +5. 모든 테스트가 통과하는지 확인합니다 +6. 필요시 문서를 업데이트합니다 +7. Pull Request를 제출합니다 + +## 🛠 개발 환경 설정 + +### 사전 요구사항 + +- Node.js 18+ +- pnpm (권장) 또는 npm + +### 설정 단계 + +```bash +# Fork한 저장소 클론 +git clone https://github.com/YOUR_USERNAME/colbrush.git +cd colbrush + +# 의존성 설치 +pnpm install + +# 프로젝트 빌드 +pnpm build + +# 개발 모드 실행 +pnpm dev +``` + +### 프로젝트 구조 + +``` +colbrush/ +├── src/ +│ ├── cli/ # CLI 도구 구현 +│ ├── client/ # React 컴포넌트와 훅 +│ ├── devtools/ # 개발자 도구 (SimulationFilter 등) +│ ├── core/ # 핵심 색상 변환 로직 +│ └── styles.css # 기본 스타일 +├── dist/ # 빌드된 파일 +└── tests/ # 테스트 파일 +``` + +### 테스트 실행 + +```bash +pnpm test +``` + +### 빌드 + +```bash +pnpm build +``` + +## 🔄 Pull Request 프로세스 + +1. **브랜치 이름**: 이슈번호 사용 + - `feat/#42` - 새 기능 + - `fix/#27` - 버그 수정 + - `docs/#75` - 문서 + - `refactor/#86` - 리팩토링 + +2. **PR 제목**: `[TAG/#이슈번호] 설명` 형식 사용 + - 예시: + - `✨ [FEAT/#42] 전색맹 지원 추가` + - `🐛 [FIX/#38] localStorage 테마 지속성 버그 수정` + - `📝 [DOCS/#45] 설치 가이드 업데이트` + +3. **태그**: + - ✨ `FEAT` - 새 기능 + - 🐛 `FIX` - 버그 수정 + - 📝 `DOCS` - 문서 + - ♻️ `REFACTOR` - 코드 리팩토링 + - ✅ `TEST` - 테스트 추가/업데이트 + - 🎨 `STYLE` - 코드 스타일 변경 (포맷팅 등) + - ⚡️ `PERF` - 성능 개선 + +4. **PR 템플릿 완전히 작성** + +5. **CI 통과 확인** - 모든 체크가 통과해야 합니다 + +6. **리뷰 요청** - 메인테이너에게 리뷰 요청 + +7. **피드백 대응** - 신속하고 전문적으로 대응 + +## 📝 코딩 가이드라인 + +### TypeScript + +- 모든 새 코드에 TypeScript 사용 +- 적절한 타입 정의 제공 +- 불가피한 경우를 제외하고 `any` 타입 사용 금지 + +### 코드 스타일 + +- 기존 코드 포맷팅 따르기 +- 커밋 전 `pnpm lint` 실행 +- 의미있는 변수명과 함수명 사용 +- 복잡한 로직에 주석 추가 + +### React 컴포넌트 + +- 훅을 사용한 함수형 컴포넌트 사용 +- React 모범 사례 준수 +- 컴포넌트는 집중적이고 재사용 가능하게 작성 +- TypeScript 인터페이스로 props 문서화 + +### 테스트 + +- 새 기능에 테스트 작성 +- 기존 기능 수정 시 테스트 업데이트 +- 의미있는 테스트 커버리지 목표 + + + +## ❓ 질문이 있으신가요? + +질문이 있으시면 이슈를 열거나 메인테이너에게 연락해주세요. + +--- + +Thank you for contributing to Colbrush! 🎨 diff --git a/README.md b/README.md index 437b719..afef58d 100644 --- a/README.md +++ b/README.md @@ -213,6 +213,19 @@ For more details, visit the **[👉 Colbrush Official Website](https://www.colbr | **윤수호** | **노하영** | [**김연진**](https://github.com/yeonjin719) | [**윤혜성**](https://github.com/hyesngy) | [**이준희**](https://github.com/jjjuni) | | PM | Designer | Frontend · Library Engineer | Frontend · Library Engineer | Frontend · Library Engineer | +## 🤝 Contributing + +We welcome contributions from the community! Colbrush is an open-source project, and we'd love your help to make it better. + +### How to Contribute + +- 🐛 **Report bugs** - Found a bug? [Open an issue](https://github.com/2025-OSDC/colbrush/issues) +- ✨ **Suggest features** - Have an idea? [Share it with us](https://github.com/2025-OSDC/colbrush/issues) +- 📝 **Improve documentation** - Help us make our docs better +- 💻 **Submit pull requests** - Fix bugs or add new features + +Please read our [Contributing Guide](CONTRIBUTING.md) for detailed information on how to contribute. + ## 📜 License MIT License