toss/h6s
React용 헤드리스 캘린더 훅 라이브러리 — 날짜 계산과 선택 로직만 제공하고 UI는 자유롭게 구성
316+0이번 주0 찜
27포크0이슈
중간맛 분석
TypeScript 기반의 극소형 React 라이브러리(~3.5KB gzipped)로, useCalendar와 useSelection 훅을 제공합니다. 단일 선택·범위 선택·다중 선택 모드를 지원하고, 주말이나 과거 날짜처럼 특정 날짜를 비활성화할 수 있습니다. CSS 오버라이드나 클래스명 외우기 없이 순수 데이터만 받아서 여러분의 마크업과 스타일을 더하면 되므로, 디자인 시스템이 있는 프로젝트에서 바로 활용할 수 있고, Tailwind/Bootstrap/Vanilla CSS 예제도 제공됩니다.
이런 레포예요
이럴 때 쓰면 좋아요
- 날짜 선택이 필요한 호텔 예약, 휴가 신청 등 양식에서 커스텀 디자인 적용
- 디자인 시스템이 정해진 프로젝트에서 기존 스타일 가이드에 맞춰 캘린더 구성
- 여러 스타일(Tailwind, Bootstrap, CSS-in-JS)을 지원해야 하는 멀티 테마 애플리케이션
핵심 기능
headless 아키텍처로 UI 완전 자유도단일·범위·다중 선택 모드 지원날짜 비활성화(요일, 범위, 리스트) 정의 가능
대안 대비 차별점
기존 캘린더 라이브러리처럼 스타일과 컴포넌트를 강제하지 않고 순수 데이터와 훅만 제공해서, 어떤 CSS 방식이든 자유롭게 UI를 구성하면서도 3.5KB의 극소형 번들 크기를 유지합니다.
준비물
- React 프로젝트
바로 시작하기
- 패키지 설치
npm install @h6s/calendar
- 기본 캘린더 렌더링
import { useCalendar } from '@h6s/calendar';
function Calendar() {
const { headers, body, navigation } = useCalendar();
return (
<table>
<thead>
<tr>
{headers.weekdays.map(({ key, value }) => (
<th key={key}>{value.toLocaleDateString('en', { weekday: 'short' })}</th>
))}
</tr>
</thead>
<tbody>
{body.value.map((week) => (
<tr key={week.key}>
{week.value.map((day) => (
<td key={day.key}>{day.value.getDate()}</td>
))}
</tr>
))}
</tbody>
</table>
);
}
- 선택 기능 추가
const { body: selectionBody, select, selected } = useSelection({
mode: 'single',
body,
disabled: [
{ dayOfWeek: [0, 6] },
{ before: new Date() }
]
});
별 추이 · 7일
316+0 / 7일
활용성 · 따라 만들기 좋은가
따라 하기 좋음샘플 점수 36/100
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
⚪ 최근 활동 정보 없음 · 2020년 생성
이 레포에 깃밥 배지 달기
[](https://www.gitbap.com/r/toss/h6s)🔌 클로드에서 바로 써보기
깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.
방법 ① 커넥터 URL
클로드 설정 → 커넥터에 이 주소를 붙여넣기.
https://www.gitbap.com/api/mcp방법 ② 플러그인 (체험까지)
플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI가 README 기반으로 요약했습니다 · 원문 보기