UTILS.
100% 브라우저 내 실행
💅

CSS를 JS 스타일 객체로 변환

CSS 선언 블록을 React 인라인 스타일, styled-components, Emotion용 JavaScript 스타일 객체로 변환합니다. 속성을 camelCase로 만듭니다.

— 여기에 결과가 표시됩니다 —

이 도구에 대하여

CSS를 JS 스타일 객체로 변환 도구는 CSS 블록을 React 인라인 스타일이나 styled-components, Emotion 같은 CSS-in-JS 라이브러리에 적합한 JavaScript 객체로 변환합니다. 선언을 브라우저에서 로컬로 파싱하며 아무것도 업로드하지 않으므로, 스타일시트를 인라인 스타일로 옮기는 것은 붙여넣고 복사하기만 하면 됩니다.

각 속성 이름은 camelCase 됩니다. background-color는 backgroundColor, z-index는 zIndex가 됩니다. 벤더 접두사는 React의 규칙을 따릅니다. 선두의 -ms-는 소문자 ms(msFilter)가 되고, -webkit-, -moz-, -o-는 대문자로 Webkit, Moz, O(WebkitBoxShadow)가 됩니다. 커스텀 속성(--brand-color)은 인용된 키로 그대로 유지됩니다. 값은 기본적으로 문자열로 출력되어 단위와 !important를 보존하며, 숫자 토글을 켜면 순수 정수와 소수가 인용 없는 숫자가 됩니다. 유효한 JavaScript 식별자인 키는 인용 없이 남고 나머지는 자동으로 인용됩니다.

입력이 순수 선언 블록(셀렉터 없음)이면 하나의 평면 객체를 만들며, 이는 React style prop에 완벽합니다. 입력이 셀렉터가 있는 전체 규칙을 포함하면 styled/Emotion 모드가 각 셀렉터 문자열을 키로 하는 중첩 객체(그 라이브러리들이 받아들이는 객체 구문)를 출력합니다. 출력 const 이름을 제어할 수 있으며, 전체는 const styles = { ... };로 작성되어 붙여넣을 준비가 됩니다.

자주 묻는 질문

속성 이름은 어떻게 변환되나요?
하이픈이 있는 속성은 camelCase 됩니다(background-color는 backgroundColor). 벤더 접두사는 React를 따릅니다. -ms-는 소문자 ms 접두사가 되고, -webkit-, -moz-, -o-는 Webkit, Moz, O가 됩니다. --foo 같은 커스텀 속성은 인용된 키로 유지됩니다.
값은 숫자인가요, 문자열인가요?
기본적으로 모든 값은 문자열이며, 이는 항상 안전하고 단위와 !important를 그대로 유지합니다. 숫자 토글을 켜면 순수하게 숫자인 값(z-index: 10 등)이 인용 없는 숫자로 출력됩니다.
두 모드의 차이는 무엇인가요?
React 인라인 모드는 선언 블록에서 하나의 평면 객체를 출력합니다. Styled / Emotion 모드는 셀렉터 문자열을 키로 하는 중첩 객체를 출력하며, 이는 여러 규칙에 대해 styled-components와 Emotion이 받아들이는 객체 구문과 일치합니다.
셀렉터가 있는 전체 CSS 규칙도 처리하나요?
네. 입력에 셀렉터와 중괄호가 있으면 각 규칙이 셀렉터 키 아래의 자체 중첩 객체로 파싱됩니다. 셀렉터 없는 순수 선언 목록은 하나의 평면 스타일 객체를 만듭니다.

더 많은 도구