사용자 스킨 등록. FORM-only 검증 + 가드레일 클램프 후 런타임 <style> 로
.og-container[data-og-skin="id"] 블록을 주입(브라우저 환경). 반환은 조정 결과.
/ Register a user skin. After FORM-only validation and guardrail clamps, injects a
.og-container[data-og-skin="id"] block via a runtime <style> (browser env). Returns the adjusted result.
스킨 id / Skin id
FORM 토큰 델타 / FORM token delta
조정된 델타 + 경고 목록 / Adjusted delta plus warnings
등록된 스킨 델타 조회(없으면 undefined). / Get a registered skin delta (undefined if absent).
스킨 id 등록 여부. / Whether a skin id is registered.
등록된 모든 스킨 id(내장 + 사용자). / All registered skin ids (built-in + user).
내장 스킨 등록(주입 없음 — CSS 는 skins.css 가 전달). 검증/가드레일은 동일 적용. / Register a built-in skin (no injection — CSS is delivered by skins.css). Validation/guardrails still apply.
스킨 id / Skin id
FORM 토큰 델타 / FORM token delta
스킨(FORM 축 — 모서리·테두리·그림자·밀도 등 "생김새")을 등록하는 전역 레지스트리. 등록하면 내부에서 벌어지는 일:
define()은 색 리터럴이 없는지 검사 → 접근성 가드레일 클램프 →.og-container[data-og-skin="id"] { ... }규칙을 담은<style>태그를 문서 head 에 주입한다. 그리드 쪽에서data-og-skin="id"속성만 설정하면 이 CSS 가 매치되어 적용된다. 내장 스킨은registerBuiltin()으로 검증+가드레일만 거치고 실제 CSS 는 정적 번들 skins.css 가 이미 담당하므로 별도 주입이 없다. / A global registry for registering skins (the FORM axis — corner/border/shadow/density, i.e. "shape"). What happens internally when you register:define()checks for no color literals → clamps via accessibility guardrails → injects a<style>tag into document head containing a.og-container[data-og-skin="id"] { ... }rule. The grid side only needs to set thedata-og-skin="id"attribute for this CSS to match and apply. Built-in skins go throughregisterBuiltin()for validation + guardrails only — their CSS is already owned by the static skins.css bundle, so no injection happens.Example