시작하며
나는 평소 GitHub에 올라오는 JS/TS 기반 오픈소스들을 구경하는걸 좋아한다. 흥미로운 프로젝트들을 보면 스타를 눌러주는데, 이런 좋은 프로젝트들을 다른 사람들에게도 공유하면 좋겠다는 생각이 들었다.
특히 오픈소스를 볼 때마다 항상 왜 이 프로젝트를 시작했는지, 어떤 철학을 가지고 있는지 찾아보려 노력한다. 대부분의 의미 있는 오픈소스 프로젝트들은 문제 해결이나 특정한 신념에서 시작되었기 때문이다. 이러한 배경 설명은 보통 프로젝트의 문서에서 찾을 수 있는데, 많은 사람들이 놓치기도 한다. 그래서 이번 큐레이션에서는 각 프로젝트의 기술적인 특징뿐만 아니라, 그들이 가진 철학도 함께 소개하려 한다.
이 글을 시작으로 그동안 발견한 오픈소스들을 카테고리별로 정리하고, 각 프로젝트에 대한 개인적인 감상을 작성해보려 한다.
Collection of Animated Components
그래서 이 글은 첫 번째 시리즈로, React 기반 애니메이션 컴포넌트 관련 오픈소스 프로젝트들을 소개하려 한다.
최근 shadcn/ui의 인기와 함께 재사용 가능한 컴포넌트 컬렉션 라이브러리들이 늘어나는 추세다. 이러한 라이브러리들의 특징은 npm 패키지로 설치하는 것이 아닌, 사용자의 프로젝트에 직접 컴포넌트 코드를 복사하여 커스터마이징할 수 있다는 점이다.
이번 글에서는 단순한 디자인 시스템을 넘어서 독특한 인터랙션과 애니메이션에 초점을 맞춘 흥미로운 프로젝트들을 소개하려 한다.
Magic UI
Links
- GitHub: magicuidesign/magicui
- Website: magicui.design
About
UI Library for Design Engineers
Animated components and effects you can copy and paste into your apps. Free. Open Source.
Magic UI는 랜딩 페이지와 마케팅 자료 제작을 위한 컴포넌트 컬렉션이다. 복사 붙여넣기만으로 바로 사용할 수 있어 편리하다.
Why?
이 프로젝트는 좋은 디자인이 소프트웨어에 중요한 가치를 더한다는 믿음에서 시작되었다. 웹에서 신뢰를 구축하는 주요 방법 중 하나가 바로 디자인이며, 이는 방문자가 고객이 되기 전 평가하는 첫 번째 요소다.
Linear.app의 랜딩 페이지에서 영감을 받아 시작되었으며, shadcn/ui의 영향을 받았다.
Review
"좋은 디자인은 곧 이 소프트웨어에 많은 관심을 두었다고 느끼게 하여 고객들에게 신뢰를 쌓을 수 있다는 믿음"이 인상깊었다.
실제 랜딩 페이지에 적용되어있는 서비스들을 쇼케이스로 보여주고 있는데, 내가 어떻게 활용할 수 있을지 바로 상상이 되어서 좋았다.
React Bits
Links
- GitHub: DavidHDev/react-bits
- Website: reactbits.dev
About
An open source collection of animated, interactive & fully customizable React components for building stunning, memorable user interfaces.
React Bits는 UI 개발을 간소화하기 위해 설계된 애니메이션 및 인터랙티브 React 컴포넌트 라이브러리다. 간단한 텍스트 애니메이션부터 복잡한 3D 컴포넌트까지, 독특하고 임팩트 있는 웹사이트를 만드는 데 필요한 모든 것을 제공한다.
jsrepo를 통해 CLI 설치를 지원하여 shadcn/ui와 유사한 개발 경험을 제공한다.
Why?
React Bits는 단순함을 핵심 철학으로 삼는다. 최소한의 의존성을 유지하면서도 프로젝트에 자연스럽게 통합되는 코드를 제공한다. 대부분의 컴포넌트는 의존성이 없거나, 부드러운 효과를 위해 단일 애니메이션 라이브러리만을 사용하여 더 깨끗한 코드와 충분한 커스터마이징의 여지를 남긴다.
Review
jsrepo를 통해 CLI 설치를 지원할 수 있게 해준 것을 보고, 앞으로 이렇게 사용자가 쉽게 커스터마이징 가능하도록 제공하는 오픈소스가 많아질 것 같다고 생각했다.
Motion-Primitives
Links
- GitHub: ibelick/motion-primitives
- Website: motion-primitives.com
About
UI kit to make beautiful, animated interfaces, faster. Customizable. Open Source.
Motion-Primitives는 Motion과 Tailwind CSS로 구축된 재사용 가능한 애니메이션 컴포넌트 컬렉션이다. 웹 프로젝트에 부드럽고 매력적인 애니메이션을 추가하여 더 인터랙티브하고 즐거운 경험을 제공한다. 엔지니어, 디자이너, 그리고 창업자를 위해 제작되었다.
Why?
개발자로서 실제 프로젝트에 적합한 고품질 애니메이션 컴포넌트를 찾는 데 어려움을 겪었던 경험에서 시작되었다. Motion-Primitives는 이러한 간극을 메우기 위해 만들어졌으며, 마케팅 웹사이트와 웹 애플리케이션을 개선할 수 있는 즉시 사용 가능하고 커스터마이징 가능한 컴포넌트를 제공한다.
Review
메인테이너의 말처럼 shadcn/ui와 tailwind CSS가 유명해지기 전에는 애니메이션 컴포넌트의 레퍼런스를 찾기 힘들었다. 하지만 이들이 제시한 컨셉이 인기를 끌면서 요즘은 이런 유려한 디자인 컴포넌트들이 오픈소스로 많이 공개되고 있다. 개발은 분명 쉬워졌지만, 이제는 복사-붙여넣기한 코드를 제대로 이해하는 데 더 많은 시간을 투자해야 한다고 생각한다.
cult-ui
Links
- GitHub: nolly-studio/clut-ui
- Website: cult-ui.com
About
Components crafted for Design Engineers. Styled using Tailwind CSS, fully compatible with Shadcn, and easy to integrate—just copy and paste. MIT 🤌
Why?
이 오픈소스는 철학을 알 수 있는 페이지가 따로 없었지만, Introduction 페이지를 보니 shadcn/ui과 동일하게 이루어져 있다는 것을 보아 shadcn/ui에서 영감을 받은 듯 하다.
Review
fully compatible with Shadcn이라고 적혀있었는데 대부분의 컴포넌트들이 지원하고 있지 않고 Manual로 추가하도록 되어있다는게 아쉬웠다.
Fancy
Links
- GitHub: danielpetho/fancy
- Website: fancycomponents.dev
A growing library of fancy, fun, animated react components & microinteractions to make the web fun again. Free & Open Source.
Fancy Components는 재미있고 독특한 사용 가능한 컴포넌트와 마이크로 인터랙션 컬렉션이다. React, TypeScript, Tailwind CSS, Motion을 주로 사용하여 구축되었다.
Why?
웹 UI의 표준화는 많은 장점을 가져왔지만, 동시에 웹을 다소 지루하게 만들었다. 이 프로젝트는 웹에 다시 재미를 불어넣고자 한다. 수상 경력이 있는 사이트들의 독특하고 매력적인 컴포넌트들을 재현하여, 개발자들이 직접 사용하거나 영감을 얻을 수 있도록 제공한다.
Review
마이크로 인터랙션(Micro Interactions)이라는 용어를 처음 알게 되었다. 웹사이트나 앱에서 사용자와의 작은 규모 상호작용을 디자인하는 것을 의미하는데,
이 프로젝트에서 제공하는 마우스 호버나 클릭에 따른 디자인 변화 같은 컴포넌트들을 보면서 인터랙션을 이렇게도 디자인할 수 있다는 새로운 인사이트를 얻었다.
Framer ground
Links
- GitHub: code-env/Framer-ground
- Website: ground.bossadizenith.me
About
Elevate your web projects with fine, small animated components.
Framer ground는 프로젝트에 바로 사용할 수 있는 애니메이션과 인터랙션 컴포넌트 컬렉션이다. TailwindCSS, ReactJS/NextJS, Framer-motion, TypeScript로 만들어졌다. UI 컴포넌트 라이브러리가 아닌, 웹사이트를 더 생동감 있게 만들어주는 애니메이션 효과에 집중한 컬렉션이다.
Why?
개발자가 framer-motion을 학습하며 만든 프로젝트로, 웹사이트에 멋진 애니메이션을 쉽게 추가하고 싶은 다른 개발자들과 그 경험을 공유하고자 시작되었다. 기본적인 레이아웃만 TailwindCSS로 제공하고, 색상이나 폰트 같은 디자인 요소는 자유롭게 수정할 수 있다.
Review
대표적인 애니메이션 라이브러리인 framer-motion을 학습하면서 만든 컴포넌트를 공유했다는 것이 인상 깊었다.
마치며
이번 큐레이션에서는 React 기반의 애니메이션 컴포넌트 라이브러리들을 살펴보았다.
소개된 프로젝트들은 모두 shadcn/ui 스타일의 복사-붙여넣기 방식을 채택하고 있지만, 각자만의 고유한 철학과 목표를 가지고 있다는 점이 인상적이다. 어떤 프로젝트는 마케팅에 특화된 컴포넌트를 제공하고, 또 다른 프로젝트는 최소한의 의존성을 추구하는 등 각각의 특색이 있다. 이러한 다양성이 오픈소스 생태계를 더욱 풍부하게 만든다고 생각한다.
다음 글에서는 다른 주제의 오픈소스들을 소개하도록 하겠다.