기능이 장식을 이긴다
장식은 시간이 지나면 낡는다. 기능은 오래 간다. 우리는 그림자와 그라디언트로 우아함을 흉내내지 않고, 정확한 여백과 위계로 우아함을 얻는다.
“덜어낼 게 없을 때 완성이다.”
우리는 시스템을 짓습니다. 눈에 보이는 것부터 눈에 보이지 않는 것까지. 이 페이지는 위브솔루션즈가 로고 · 컬러 · 타이포그래피 · 여백 · 모션을 어떻게 다루는지에 대한 공개된 브랜드 헌법이자, 개발자가 그대로 복사해 쓰는 토큰 참조서입니다.
에이전틱 엔지니어링 회사의 디자인 헌법. 코드처럼 정확하고, 코드처럼 재사용 가능하고, 코드처럼 문서화된다.
장식은 시간이 지나면 낡는다. 기능은 오래 간다. 우리는 그림자와 그라디언트로 우아함을 흉내내지 않고, 정확한 여백과 위계로 우아함을 얻는다.
“덜어낼 게 없을 때 완성이다.”
우리 정체성은 터미널에서 시작한다. Monospace, blinking cursor, ANSI 색, 정확한 격자. 이 언어를 웹에도, 문서에도, 로고에도 그대로 가져온다.
“$ echo hello”
Atlas 는 엔터프라이즈 정색이고, Weady 는 시원한 하늘색이고, Mono Writer 는 크래프트 종이색이다. 다른 톤을 쓴다. 그러나 여백 · 위계 · 조판 규칙은 같은 체계에서 온다.
한글은 Pretendard, 라틴 코드는 JetBrains Mono. 한글은 break-keep 로 어절이 깨지지 않게 조판한다. 위계는 굵기와 크기와 색으로 만든다. 아이콘은 최소한만.
움직임 자체가 목적이 되면 소음이다. 우리는 상태 전환(spring), 강조(fade-up), 지속(cursor-blink) 등 의미를 실어 나를 때만 애니메이션을 쓴다. Easing 은 4종으로 통일.
We've Solutions 마스터 워드마크 아래에 4개의 트랙 · 17개 서브 브랜드가 있습니다. 각 로고는 독립적인 정체성을 가지지만, 여백 · 라운드 · 격자 규칙을 공유합니다.

마스터 로고는 모든 하위 브랜드가 최종적으로 귀속되는 상위 표식. Header · Footer · 명함 · OG 이미지 · 문서 표지에서 사용. 최소 사용 크기는 24px, 여백은 로고 심볼의 1/4.

마스터 팔레트 4색 + 시맨틱 토큰 8종 + 상태 4종. Mint 는 유일한 강조색이고, 나머지는 정보 위계를 위한 도구입니다. 각 스와치를 눌러 hex/rgb/hsl 값을 복사할 수 있습니다.
한글은 Pretendard Variable, 라틴 코드는 JetBrains Mono. 위계는 굵기 · 크기 · 색으로만 만들며, 밑줄이나 배경색으로 강조하지 않습니다.
$ curl -s "https://wevesolutions.co.kr"
> HTTP/2 200
> content-type: text/html; charset=utf-8
// 우리는 시스템을 짓습니다.
export const brand = {
identity: "agentic-engineering",
voice: "precise + human",
animation: "meaningful only",
};break-keep 클래스로 어색한 어절 중간 줄바꿈 방지. 특정 어절이 여전히 어색하면 whitespace-nowrap span 으로 통째로 묶는다.기본 단위는 4px. 여백은 4의 배수만 사용합니다. 이 규칙 하나로 정렬 이슈의 90% 가 사라집니다.
네 개의 곡선. 그 이상은 필요하지 않습니다. 각 easing 은 특정 상황을 위한 도구고, 무엇을 쓸지가 곧 무엇을 말하는지입니다.
모든 앱 아이콘은 SVG 원본에서 시작해 sharp → webp 로 흐릅니다. 이 파이프라인 덕분에 새 서비스 추가 시 5분 안에 4 사이즈 · 팔레트 최적 · webp 서빙본까지 완성됩니다.
각 브랜드는 타겟과 목적에 맞춰 다른 톤을 씁니다. Atlas 의 엔터프라이즈 정색과 Weady 의 시원한 하늘색과 Mono Writer 의 종이색은 다르지만, 여백 · 위계 · 조판 규칙은 같은 체계에서 옵니다.
이 페이지 자체가 우리 토큰의 진실의 원본. src/app/globals.css 의 @theme 블록이 여기에 실시간으로 반영됩니다. 새 프로젝트를 시작할 땐 이 블록을 통째로 복사하면 됩니다.
@theme {
/* Brand */
--color-mint: #00C4B4;
--color-navy: #264E76;
--color-sky: #97C7EB;
/* Semantic · dark-first */
--color-bg-primary: #131313;
--color-bg-secondary: #1A1A1A;
--color-surface-default: #1A1A1A;
--color-surface-raised: #242424;
--color-surface-sunken: #0D0D0D;
--color-foreground: #FFFFFF;
--color-muted: #B3B3B3;
--color-subtle: #666666;
--color-line: #333333;
/* State */
--color-success: #4CAF50;
--color-warning: #FFA500;
--color-error: #FF6B6B;
--color-info: #97C7EB;
/* Fonts */
--font-sans: var(--font-pretendard), 'Pretendard Variable', -apple-system, system-ui, sans-serif;
--font-mono: var(--font-jetbrains), 'JetBrains Mono', Menlo, Consolas, monospace;
/* Radius */
--radius-sm: 6px;
--radius-md: 10px;
--radius-lg: 16px;
--radius-xl: 24px;
/* Easing */
--ease-default: cubic-bezier(0.4, 0, 0.2, 1);
--ease-in: cubic-bezier(0.4, 0, 1, 1);
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}// Tailwind v4 · @theme 로 정의된 토큰이 자동 클래스가 됩니다.
// Color
<div className="bg-bg-primary text-foreground border-line" />
<span className="text-mint" />
<button className="bg-navy hover:bg-mint text-white" />
// Typography
<p className="font-sans" />
<code className="font-mono text-mint" />
// Radius
<div className="rounded-lg" /> {/* 16px */}
<div className="rounded-xl" /> {/* 24px */}
// Motion
<div className="transition ease-spring duration-300" />
<div className="animate-fade-up" />
<span className="animate-cursor-blink" />// 로고 컴포넌트 (재사용)
import AtlasLogo from "@/components/logos/AtlasLogo";
<AtlasLogo size={96} priority />
// 브랜드 데이터에서 팔레트 가져오기
import { BRANDS } from "@/data/design/brands";
const atlas = BRANDS.find((b) => b.slug === "atlas");
// atlas.colors.primary === "#264E76"같은 정보를 다르게 말하면 다른 사람이 됩니다. 우리는 진지하고 정확하되, 필요할 때 따뜻하게 말합니다.
문서만으로는 부족합니다. 아래는 이 디자인 시스템이 실제 서비스에서 어떻게 살아 움직이는지 보여주는 여섯 개의 얼굴입니다. 각 카드를 눌러 직접 확인해 보세요.
이 페이지는 진화합니다. 새 서비스가 등록되면 여기 반영되고, 토큰이 바뀌면 여기가 먼저 업데이트됩니다. 궁금한 점이나 협업 문의는 contact.