Repository navigation
Releases: leeuc10/blurssism
Release list
2.1.2 — 크레마 위쪽 틈 제거
고친 것 / Fixed
- 크레마 위 가장자리에 밝은 선이 띠와 따로 떠 보이던 틈. 가장자리 선을 띠와 같은 색의 "첫 줄"로 바꾸고, 띠의 2·5·10px 계단을 16px까지의 ease-out 곡선으로 바꿨어요. / The crema edge line now blends into the band; the band eases out without steps.
🤖 Generated with Claude Code
2.1.1 — 블러레마가 팔레트를 따라가지 않던 문제 수정
고친 것 / Fixed
@layer로 감싸면서 팔레트를 따라가는 크레마 띠·가장자리·빛 변수(--crema-band등의color-mix)와 리치 모드 블러 값이 계층 밖tokens.css고정값에 져서 블러레마가 항상 에스프레소빛이던 문제. 그 블록을 계층 밖으로 꺼냈어요(/* @unlayered */). / Palette-following crema variables now live outside the layer.- 팔레트·테마·배경을 바꿀 때 크레마 채움·띠·가장자리 색이 0.35초 동안 이어져요(
@property로 등록한 색 변수 전환). 블러 반경은 전환하지 않아요. / Crema colors transition smoothly on palette changes.
🤖 Generated with Claude Code
2.1.0 — 새 컴포넌트 9개, 상태 있는 Sheet·Toast, 로케일, 트리셰이킹, @layer, 테스트
2.0 검토에서 남겨 둔 14개 항목을 모두 반영한 릴리스예요. 기존 API는 그대로 동작해요(createBlurssism()만 deprecated).
올리기 전에 확인할 것 / Before upgrading
bundle.css가@layer blurssism으로 감싸져요. 계층 밖의 소비자 CSS가 명시도와 상관없이 이기므로 덮어쓰기가 쉬워졌지만,button { background: none }같은 전역 리셋도 이기니 리셋은@layer reset, blurssism;처럼 앞 계층에 두세요. /bundle.cssis now inside@layer blurssism; put global resets in an earlier layer.- NavBar 링크
<nav>의 이름이 "주요 메뉴"에서 "사이트 메뉴"로 바뀌었어요(TabBar와 같은 이름이라 랜드마크가 겹쳤어요). / NavBar's links landmark is now named "사이트 메뉴".- Tailwind 프리셋의 hex 색이
rgb(var(--x-rgb) / <alpha-value>)가 됐어요.bg-accent/50이 되고,tokens.css가--x-rgb변수를 함께 내보내요. / Tailwind colors support opacity modifiers.
새 컴포넌트 9개 / 9 new components (React·Svelte 5·CSS, 38개)
Textarea(자동 높이autoResize·maxRows),Alert(인라인 배너, info·positive·warning·danger, 닫기·행동),Link(밑줄 링크,external은 새 창 안내 포함),Pagination(처음·끝 고정, 생략 표시, 제어·비제어),Tabs(콘텐츠 탭, line·pill, WAI-ARIA tablist, 방향키),Accordion(네이티브<details name>, 단일·다중),Popover(네이티브 Popover API, 라이트 디스미스, 위치 자동),Menu(Popover 위의 role="menu", 방향키·Enter, 구분선·danger),Drawer(옆에서 나오는 모달 패널,persistentFrom="lg"면 데스크톱 사이드바로).Badge·Toast에info·warning톤.
상태를 가진 Sheet·Toast / Stateful Sheet and Toast
Sheet에open·onClose를 주면 네이티브<dialog>모달이 돼요: scrim, Esc·바깥 누르기, 손잡이를 80px 끌어내려 닫기, 포커스 복귀, 닫힘 애니메이션. 안 주면 전처럼 자리에 그려져요. md 이상은 가운데 카드.ToastProvider+useToast().show({ message, tone, actionLabel, duration }): 아래 가운데(lg 이상 오른쪽 아래)에 최대 3개 쌓이고 4초 뒤 사라지며 마우스를 올리면 멈춰요. Svelte는toast.show()+<Toaster />.Dialog·Sheet·Drawer가 닫힐 때도 애니메이션이 끝난 뒤 사라져요(data-closing).
로케일 / Locale
setLocale("en" | "ko" | 객체),getLocale(),onLocaleChange(). 오류 접두어, 뒤로, 달력 제목·날짜 라벨, 메뉴·페이지 이름 등 컴포넌트가 그리는 모든 문구가 로케일을 따라요. React는useLocale()로 다시 그리고, 컴포넌트마다localeprop으로 덮어쓸 수 있어요. Svelte는locale.current.
제어·비제어 / Controlled and uncontrolled
Switch(defaultChecked),SegmentedControl·TabBar·RadioGroup(defaultValue),Pagination(defaultPage),Tabs·Accordion·Popover·Menu가 Chip처럼 둘 다 돼요. 공용 훅useControllable()공개.
구조 / Structure
- React 원본이
src/react/*.js로 나뉘고 빌드가 한 파일로 합쳐요. 각 컴포넌트가/*#__PURE__*/가 붙은 최상위 선언이라 안 쓰는 컴포넌트는 번들러가 버려요.createBlurssism()은 deprecated(인자 무시). - 컴포넌트 변수:
--bl-btn-h·--bl-btn-h-md·--bl-field-h·--bl-icon-btn·--bl-chip-h·--bl-switch-w/h·--bl-tab-h·--bl-card-pad·--bl-dialog-w·--bl-sheet-w·--bl-toast-w. 영역에서 덮어쓰면 그 안의 컴포넌트가 따라가요. - 컴포넌트 CSS 조각
src/css/*.css, 타입 조각src/react/*.d.ts를 빌드가 합쳐요.
검사 / Checks
npm test: jsdom + React로 실제 동작(키보드, 제어·비제어, 다이얼로그 포커스·닫힘, 토스트 타이머)을 15개 테스트로 확인하고, axe-core로 대표 화면의 접근성 위반을 검사해요.npm run check에 포함.auditCrema()·checkCrema()에palette(한 화면에 팔레트 하나)와accent-area(강조·상태·장식색 면이 10% 초과, 90/10) 검사 추가.probeCremaCost(): 블러 비용을 실제로 재요.applyCremaPreference({ probe: true })면 느린 기기에서off로. 메모리를 알려 주지 않는 브라우저에서 코어 2개 이하도 저사양으로 봐요.- 크레마 벤치마크 페이지
scripts/bench/crema.html과 측정값을 브랜드북에 적었어요.
문서·글꼴 / Docs and fonts
docs/components/*.md에dist/index.d.ts에서 만든 Props 표(npm run docs, 빌드에 포함).- 브랜드북에 크레마 용어 표(crema-fill·tint·band·edge·light·saturate·모드가 각각 무엇인지)와 테스트·벤치마크 절. README와 브랜드북의 변경 이력 문장은 체인지로그로 옮겼어요.
fonts.dynamic.css: Pretendard·Gowun Batang 원본을 동적 서브셋으로 쓰는 선택지. 11,172자 전부 같은 글꼴이고 쓰인 글자 조각만 받아요(jsDelivr + Google Fonts). README에 글꼴 출처를 분명히 적었어요.
🤖 Generated with Claude Code
2.0.0 — 색 역할 정리, 타입 토큰화, forwardRef, glass 이름 제거
올리기 전에 확인할 것 / Before upgrading
primary버튼이ink채움에서 강조색(accent) 채움으로 바뀌었어요. 블랙 팔레트(기본)는 그대로 검정이고, 에스프레소·말차 같은 팔레트에서는 primary 버튼이 그 색이 돼요.variant="accent"는 primary의 별칭이라 그대로 동작해요(같은 클래스bl-btn-primary). /primarybuttons are now filled withaccent;accentis an alias ofprimary.- 타입 클래스에
bl-접두어가 붙었어요:.body→.bl-body,.title-1→.bl-title-1,.label→.bl-label등. 접두어 없는 이름은 소비자 CSS(.label,.body)와 충돌했어요. / Type classes are prefixed:.bl-body,.bl-title-1, …- 데스크톱 모드의 포인터를 따라오는 빛이 기본으로 꺼져요. 켜려면
applyCremaPreference({ pointerLight: true }). 리치 블러는 40/64px에서 32/48px로. / Pointer light is opt-in; rich blur is 32/48px.- 블랙 팔레트의
accent-ink(링크·활성 글자)가 검정에서 캐러멜빛(#653819, 다크#e2ab7a)으로 바뀌었어요. 본문ink와 같은 색이라 링크가 구분되지 않던 문제예요. / The black palette'saccent-inkis now caramel so links differ from body text.- 1.4의 glass 이름이 제거됐어요:
.bl-glass*·.bl-btn-glass·variant="glass"·data-glass·--glass-*·--crema(띠 색)·applyGlassPreference()·setGlassMode()·getGlassMode()·shouldReduceGlass()·GlassMode·GlassOptions·팔레트 값의glass-tint-accent. 1.5부터 예고한 대로예요. crema 이름으로 바꾸고, 남은 쓰임새는auditCrema()가legacy-glass로 찾아 줘요. / The 1.4 glass names are removed;auditCrema()reports leftovers.
정리 / Cleanup
- glass 별칭을 걷어내서
dist/bundle.css의 복제 선택자 104개와tokens.css의 이중 변수 선언이 사라졌어요. / Removing the aliases drops 104 duplicated selectors and the double variable declarations.
왜 2.0인가 / Why 2.0
- 1.6.x에서 기본 팔레트·글꼴·TabBar 동작 같은 보이는 변경이 마이너·패치 릴리스로 나갔어요. 2.0부터는 보이는 변경은 메이저에서만 해요. / Visible changes now ship only in major releases.
색 역할 / Color roles
- 블랙 팔레트에서
ink(본문)·accent(채움)·accent-ink(링크)가 사실상 한 색이라 primary 버튼과 accent 버튼이 구분되지 않고 링크 어포던스가 사라졌어요. primary를 accent 채움으로 합치고,accent-ink를 캐러멜빛으로 분리했어요. 대비 검사 108,550개 조합 그대로 통과.
블러레마 / Blurema
- 크레마가 흐린 유리가 아니라 매트한 황갈색 판으로 읽히던 문제. 거품 결 알파 .46→.26(다크 .24→.16), 크레마 띠 세기 42/26/16/10 → 30/18/10/6%(다크 30/16/10/7 → 24/13/8/5%), 채움 틴트 20→12%(다크 12→10%). / Lighter grain, band and tint so crema reads as frosted glass.
- 갤러리의 팔레트 선택 패널이 평평한 바탕 위의 크레마였어요(원칙 2 위반). 불투명 카드로 바꿨어요.
타이포그래피 / Typography
- 타입 스케일이 변수로 나와요:
--text-{이름}-size·-line·-weight·-tracking(이름: display·title-1·quote·title-2·title-3·body·body-strong·body-sm·label·caption). 컴포넌트 CSS의 하드코딩 px 43곳이 이 변수를 읽어서,:root { --text-body-size: 17px }처럼 덮어쓰면 입력창·카드까지 함께 바뀌어요. md 미만에서 제목이 줄어드는 규칙도 변수를 바꾸는 방식이라 MediaCard·Dialog 제목이 함께 줄어요. Tailwind 프리셋의fontSize도 같은 변수를 읽어요. / Type scale is now variables; components read them.
React
Button·IconButton·Chip·TextField(ref는<input>)·Select(<select>)·Checkbox(<input>)·Switch·RadioGroup·ListItem·Container·Grid가forwardRef예요. react-hook-form의register, 프로그램적 포커스가 돼요.displayName도 붙어요. / These components forward refs.
성능 / Performance
- 포인터 빛을 켰을 때도 포인터에서 420px 안에 있는 크레마 면만 매 프레임 다시 칠하고, 멀어진 면은 한 번만 화면 밖으로 보내요. 전에는 화면의 모든 블러 면에 매 프레임 인라인 속성을 써서 전부 다시 칠해졌어요.
- 저사양 판정에
(update: slow)(전자잉크 등)를 더했어요. 메모리를 알려 주지 않는 Safari·Firefox에서는 여전히prefers-reduced-transparency·데이터 절약·update: slow만 자동으로 잡히고, 나머지는setCremaMode("off")로 앱이 정해요. - 브랜드북의 "거품 결은 성능 부담이 거의 없다"는 문장을 지웠어요. 측정한 적이 없고, blend-mode와 함께 칠해지는 층이라 블러 예산 안에서 세는 게 맞아요.
🤖 Generated with Claude Code
1.6.0 — Blurssism 글꼴, 크레마 띠 전체로, 접근성·대비 강화
올리기 전에 확인할 것 / Before upgrading
- 글꼴을
tokens.css·bundle.css가 더 이상 불러오지 않아요.import "@caffeinecatkr/blurssism/fonts.css"(또는<link>)를 한 줄 더하거나, CDN 없이 쓰려면 그 자리에fonts.local.css를 불러오세요(패키지에 든 글꼴 파일을 씀). 글꼴 이름이 Blurssism Sans·Blurssism Serif로 바뀌었으니font-family에 Pretendard·Gowun Batang을 직접 썼다면var(--font-sans)·var(--font-serif)로 바꾸세요. / Fonts moved tofonts.css(CDN) orfonts.local.css(font files shipped in the package).TabBar가 lg(1120px)부터 스스로 숨고,NavBar링크는 lg부터 보여요(전에는 md부터). 계속 보이려면hideFrom={false}. / TabBar hides from lg by default; NavBar links show from lg.Dialog가 네이티브<dialog>로 바뀌었어요.className은 이제<dialog class="bl-dialog">에 붙어요. / Dialog renders a native<dialog>.TabBar는role="tablist"대신<nav>+aria-current="page"예요.[aria-selected]에 건 CSS는[aria-current="page"]로 바꾸세요. / TabBar uses<nav>+aria-current.
크레마 / Crema
- 크레마 띠가 위쪽에만 몰리지 않고 면 전체에 옅게 남아요(
crema-band-top·lip·mid·low토큰으로 세기 조절). / The crema band now spreads across the whole surface instead of pooling at the top. - 크레마 위 글자 대비를 뒤가 완전한 검정·흰색인 경우까지 검사해요(
npm run check, 8,760개 조합 추가, 전체 16,644개). 이에 맞춰 채움 불투명도와 다크 띠 세기를 조정하고, 두꺼운 크레마용 보조 글자색crema-ink-muted를 추가했어요. 얇은 크레마 위 글자(MediaCard 메타, 탭·내비게이션 링크)는ink예요. / Text-on-crema contrast is now checked over worst-case backdrops; fills and the dark band were tuned andcrema-ink-mutedwas added. - 선택된 탭과 내비게이션 링크는 불투명한
accent-soft+ 굵기 + 밑줄, 고른 팔레트는 체크 표시로 보여요(색만으로 알리지 않기). / Selected states no longer rely on color alone. - 크레마 안의 아이콘 버튼, 다이얼로그 뒤 scrim, 숨어 있는 툴팁은 블러를 쓰지 않아요(블러 예산). / Nested icon buttons, the dialog scrim and hidden tooltips no longer use blur.
- 데스크톱 모드의 포인터 빛이 문서 전체가 아니라 크레마 요소에만 좌표를 써서, 스타일 재계산과 스크롤 때 다시 그리기가 줄었어요. 그림자는 새 토큰
shadow-crema-rich·shadow-crema-rich-hover·shadow-sheet-rich(다크는 검정 기반)를 써요. / Pointer light no longer restyles the whole document; rich-mode shadows are tokens now. - 저사양 판정: 메모리 4GB 미만(전에는 4GB 이하)일 때
off, 코어 수는 메모리를 알려 주는 브라우저에서만 봐요.applyCremaPreference({ minMemory, minCores })로 바꿀 수 있어요. / Less aggressive low-end detection, now configurable. - 새 함수
auditCrema()·checkCrema(): 개발 중 블러 예산 초과, primary 버튼 2개 이상, 남은 glass 이름을 알려 줘요. / New dev-time audit.
고친 것 / Fixes
- 1.4 변수(
--glass-fill등)를 덮어써도 반영되지 않던 문제(1.5.0). 이제 옛 변수에 값이 있고 새 변수가 그 값을 읽어요. 1.4의--crema도--crema-tint가 읽어요. / Overriding 1.4--glass-*variables works again. - Svelte 진입점·CommonJS·
/utils가 utils 사본을 따로 들고 있어 브랜드 팔레트 등록과 크레마 모드 상태가 어긋나던 문제. 이제 모듈 하나(dist/utils.mjs, CJS는dist/utils.cjs)를 같이 써요. / One shared utils module. <html data-palette>안에<section data-theme="dark">처럼 테마만 따로 걸면 팔레트가 에스프레소로 돌아가던 문제. 팔레트 영역 안의 크레마 그림자 가장자리 색도 팔레트를 따라가요. / Nested theme regions keep the palette.- 투명도 줄이기 설정에서 크레마 버튼·아이콘 버튼의 블러가 남던 문제,
backdrop-filter미지원 브라우저의 버튼 대체. / Reduced transparency now covers buttons. Dialog: 크레마 안에서 열면 그 안에 갇히던 문제(네이티브showModal()로 최상위 층), 뒤 화면 inert·스크롤 잠금, Esc가 처음onClose를 부르던 문제,alert인데 바깥 클릭으로 닫히던 문제, 설명의aria-describedby.SegmentedControl·PalettePicker: 방향키로 고를 때 포커스가 따라가고, 고른 것이 없으면 첫 항목으로 들어와요.Calendar: 날짜 하나만 Tab에 들고 방향키·PageUp·PageDown으로 이동해요.Calendar:min·max를 날짜로 비교(min={new Date()}가 오늘을 막던 문제), 오늘 표시를 마운트 뒤에 정해 하이드레이션 어긋남 방지, 바깥에서value가 다른 달로 바뀌면 따라감.- React
Select: placeholder가 있으면 빈 값에서 시작(Svelte와 같게). Tooltip: 자식의aria-describedby를 덮어쓰지 않고 이어 붙임, Esc로 닫기, 최상위 층(popover)에 떠서overflow: hidden인 부모에 잘리지 않음.- 터치 기기에서 누르는 영역 44px(칩·팔레트·세그먼트·스위치·내비게이션 링크·아이콘 버튼, 달력 칸). README의 "44px" 설명을 실제와 맞췄어요.
- 고대비(강제 색상) 모드에서 선택·켜짐 상태가 사라지던 문제,
prefers-contrast: more대응, 동작 줄이기 범위 확대. paletteToCss·createPalette·CLI--id가 선택자를 깨는 id를 막아요(영문으로 시작, 영문·숫자·하이픈).- 노랑·연두 같은 밝은 브랜드색의 다크 장식색을 어둡게 맞춰 크레마 위 대비를 지켜요.
Table: caption이 없으면 스크롤 영역에 role·tabindex를 붙이지 않아요.
API
- React
Button이href일 때target·rel같은 링크 속성을 타입에서도 받아요.variant="glass"는 개발 중 한 번 안내해요. - React
Chip:defaultSelected·onChange로 스스로 바뀌는 모드. ReactTable:format(Svelte와 같음). SvelteListItem: 나머지 속성 전달. SvelteCheckbox:label에 스니펫. TabBar: 항목href,hideFrom.PalettePicker: 브랜드 팔레트 표시(custom),group="custom",value에 브랜드 id. 새 함수getCustomPalettes()·onCustomPalettesChange().- 패키지:
./fonts.css(CDN),./fonts.local.css와./fonts/*(woff2 3개 840KB와 SIL OFL 라이선스),./utils의require조건(dist/utils.cjs). 쓰이지 않던src/파일을 패키지에서 뺐어요. - 글꼴이 Blurssism Sans·Blurssism Serif로 바뀌었어요. Pretendard·Gowun Batang에서 KS X 1001 한글 2350자 + 영문·숫자·기호만 남긴 사본이고(OFL 예약 이름 때문에 이름을 바꿈), 조각 수백 개 대신 파일 하나씩 받아요. 2350자 밖의 드문 글자는 시스템 글꼴로 보여요.
scripts/subset-fonts.py로 만들어요. / Fonts are now Blurssism Sans and Serif: 2,350-syllable subsets of Pretendard and Gowun Batang, one file each.
개발 / Tooling
npm run check가 대비(크레마 위 포함), Svelte 타입, React 타입(tsc), 서버 렌더링 스모크 테스트를 함께 돌려요. GitHub Actions에서 빌드 재현성과 함께 검사해요.- 예제(
examples/*)가 npm 배포본 대신 저장소의 패키지(file:../..)를 써요.
npm: npm install @caffeinecatkr/blurssism@1.6.0
1.5.0 — 코드 이름 glass → crema
코드 이름 glass → crema · Renamed to crema
- 클래스
.bl-crema·.bl-crema-thick·.bl-crema-lite·.bl-btn-crema, 버튼variant="crema" - 속성
<html data-crema>, 함수applyCremaPreference()·setCremaMode()·getCremaMode()·shouldReduceCrema(), 타입CremaMode·CremaOptions - 토큰
--crema-fill·--crema-fill-strong·--crema-stroke·--crema-tint-accent·--crema-edge·--crema-band·--crema-grain·--crema-light·--shadow-crema·--crema-saturate(Tailwind 키 포함) - 옛 glass 이름은 2.0까지 별칭으로 그대로 동작 / the glass names stay as aliases until 2.0
- CSS: 옛 클래스·속성·변수를 같은 규칙에 함께 생성 / old selectors and variables are generated alongside
- 컴포넌트: 새 클래스와 옛 클래스를 함께 붙임 (
bl-crema bl-glass) / components emit both classes - 함수: 개발 중 콘솔에 한 번 새 이름 안내 / old functions log a one-time hint in development
- 브랜드 팔레트 값에
crema-tint-accent추가 (glass-tint-accent도 유지) - 1.4.1의 문서 용어 정리 포함 / includes the 1.4.1 docs changes
1.4에서 올릴 때: 옛 glass 이름은 2.0까지 그대로 동작해요. 바꾸는 표는 README에 있어요.
npm: npm install @caffeinecatkr/blurssism@1.5.0
1.4.1 — 문서 용어 정리 (유리 → 크레마)
문서만 바뀌었습니다. 코드와 화면은 1.4.0과 같습니다. / Docs only; code and visuals are the same as 1.4.0.
- 용어 정리: 떠 있는 블러레마 면을 한국어 "유리" → "크레마", 영어 "glass" → "crema"로 / floating Blurema surfaces are now called crema
- 위쪽 캐러멜빛 층은 "크레마 띠"(crema band)로 구분 / the top caramel layer is the crema band
- 코드 이름
bl-glass·data-glass·applyGlassPreference는 호환을 위해 그대로 / code names keepglass
1.4.0 — 블러레마 크레마, 데스크톱 모드, 브랜드색 팔레트
업데이트하면 데스크톱에서 화면이 조금 달라져요. 1.3처럼 쓰려면
applyGlassPreference({ rich: false })를 쓰세요.
Apps that callapplyGlassPreference()now get desktop mode on capable desktops. UseapplyGlassPreference({ rich: false })to keep the 1.3 look.
변경점
- 크레마 재질 변경 (블러레마: 크림색 젖빛 면, 거품 결 노이즈, 위쪽 캐러멜빛 크레마 띠)
- 리퀴드 글래스 느낌 줄임 (채도 180% → 125%, 흰 반사광 대신 크레마 가장자리)
- 크레마 띠 색이 팔레트를 따라 바뀜 (말차는 녹차빛, 블루는 하늘빛)
- 데스크톱 모드 추가 (블러 40/64px, 두 겹 그림자, 마우스를 따라오는 캐러멜빛, 크레마 화면당 6개)
- 크레마 모드 3단계 자동 전환 (끄기 · 기본 · 데스크톱)
- 데스크톱 모드 켜고 끄기 가능 (
applyGlassPreference({ rich: false }),setGlassMode()) - 브랜드색 팔레트 자동 생성 (
applyBrandColor("#색"), 라이트·다크 강조색 생성과 대비 자동 보정) - 상태색과 헷갈리는 브랜드색 경고 (빨강·노랑·초록)
- 터미널에서 팔레트 생성 (
npx @caffeinecatkr/blurssism palette "#색") - 대비 검사 확대 (702 → 7,884개 조합)
- 미리보기 추가 (블러레마 층·세 모드 비교, 브랜드색 만들기), 표지 그림에 블러레마 적용
- 문서 용어 정리 (떠 있는 면은 "크레마", 코드 이름
glass는 그대로) - 문의 메일 추가 (leeunchan10@gmail.com), 다른 디자인 시스템과 비교표 추가
- 버그 수정 (끄기 모드에서 유리 버튼 비침,
/utils타입 파일 누락)
English
- Blurema: a cream, frosted surface with foam grain and a caramel crema band that follows the palette
- Desktop mode (
data-glass="rich") with deeper blur, layered shadows and a pointer light; developers can switch it off - Brand-color palettes:
createPalette,applyBrandColor,paletteToCss, plus a CLI - 7,884 contrast pairs checked; contact email and a comparison with other design systems in the docs
npm: npm install @caffeinecatkr/blurssism@1.4.0
1.3.1 — 웹 기본 팔레트 7종
웹 기본 팔레트 · Web essential palettes
- 웹에서 자주 쓰는 색 7종 추가:
blue·indigo·violet·teal·emerald·pink·graphite
Seven common web colors, toned down to sit on the cream paper - 카페인 팔레트 6종과 기본값(
espresso)은 그대로 / caffeine palettes and the espresso default are unchanged - 팔레트에
group("caffeine"·"web") 추가,PalettePicker에groupprop / palettes now carry agroup;PalettePickercan show one group npm run check: 팔레트 13종 × 라이트·다크, 702개 대비 조합 통과 / 702 contrast pairs pass
blurssism 1.3.0 — 카페인 팔레트 · 반응형 · Svelte
npm install @caffeinecatkr/blurssism카페인 팔레트 · Caffeine palettes
- 기본 색이 카페인 계열로 바뀌었습니다: 우유 거품 크림색 바탕, 에스프레소 글자, 볶은 원두 갈색 강조, 크레마 장식색
New caffeine defaults: milk-foam paper, espresso ink, roasted-bean accent, crema decoration data-palette로 고르는 팔레트 6종 / six palettes:espresso·matcha·chai·coldbrew·mocha·classicPalettePicker,setPalette(),setTheme(). 324개 대비 조합 모두 WCAG 통과 / all 324 contrast pairs pass WCAG
1.2의 자두색을 그대로 쓰려면
<html data-palette="classic">/ To keep the 1.2 plum colors, setdata-palette="classic".
반응형 · Responsive
- 5단계
xs·sm600 ·md768 ·lg1120 ·xl1440, 그리드 4·8·12열 / five breakpoints with a 4/8/12-column grid Container,Grid,.bl-grid+.bl-span-md-6,.bl-hide-from-lg,useBreakpoint()- md 미만에서 제목 자동 축소, 다이얼로그는 아래 시트로 / smaller headings and bottom-sheet dialogs below md
- 터치 기기에서 조작 요소 44px 이상 / 44px touch targets on touch devices
Svelte 5
import { Button } from "@caffeinecatkr/blurssism/svelte": 컴포넌트 29개,bind:, 스니펫, 타입, SvelteKit 서버 렌더링 / 29 components with bindings, snippets, types and SvelteKit SSR- 예제 / example:
examples/sveltekit
전체 변경 / Full changes: CHANGELOG · 미리보기 / Preview: https://leeuc10.github.io/blurssism/
made by caffeinecat