Stitches는 React 애플리케이션의 스타일을 지정할 수 있는 강력하고 유연한 방법을 제공하는 최신 CSS-in-JS 라이브러리입니다. CSS와 자바스크립트의 장점을 결합한 독특한 스타일링 접근 방식을 제공하여 동적인 스타일을 쉽게 만들 수 있습니다.

스티치 설정하기

스타일 컴포넌트 라이브러리를 활용하는 것과 유사하게, 스티치를 사용하여 React 애플리케이션을 제작하는 것은 두 라이브러리가 자바스크립트 코드 내에서 스타일 규칙을 작성할 수 있는 CSS-in-JS 솔루션으로 작동하는 공통된 접근 방식을 활용합니다.

React 애플리케이션의 스타일을 지정하려면 먼저 Stitches 라이브러리를 설치 및 구성해야 합니다. 이는 터미널에서 다음 명령을 실행하여 수행할 수 있습니다:

 npm install @stitches/react

[여기에 Yarn 설치 명령어 삽입].

 yarn add @stitches/react

스티치 라이브러리를 설치한 후, React 애플리케이션의 미학을 다듬는 작업을 시작할 수 있습니다.

스타일 컴포넌트 생성

스타일 라이브러리는 조화로운 외관을 가진 장식 요소를 생성하기 위한 도구로서 스타일 함수를 제공합니다. 이 기능을 사용하면 스타일이 지정된 컴포넌트 내에서 CSS 지정과 컴포넌트 중심 추론의 융합을 용이하게 할 수 있습니다.

스타일 함수는 한 쌍의 매개변수를 허용합니다. 초기 매개변수는 HTML 또는 JSX 컴포넌트를 나타내고, 후속 인수는 디자인의 기초가 되는 다양한 CSS 속성으로 구성됩니다.

‘스타일’ 기능을 활용하여 우아하게 디자인된 버튼 요소를 만들려면 다음 단계를 따르세요:

 import { styled } from "@stitches/react";

export const Button = styled("button", {
  padding: "0.7rem 0.8rem",
  borderRadius: "12px",
  backgroundColor: "#333333",
  color: "#e2e2e2",
  fontFamily: "cursive",
  border: "none",
});

제공된 코드 스니펫은 회색 색상의 텍스트, 둥근 모서리 및 여백과 함께 배경에 어두운 색조를 특징으로 하는 버튼 요소를 생성합니다. 자바스크립트 내에서 CSS 속성을 지정할 때는 자바스크립트 애플리케이션의 요소 스타일 지정에 대한 확립된 규칙을 준수하기 위해 케밥 케이스 표기법 대신 카멜 케이스 형식을 사용하는 것이 일반적입니다.

매력적인 외관을 가진 사용자 정의 버튼 요소를 개발하면 이를 React 기반 애플리케이션에 통합하여 활용할 수 있습니다.

이 연구의 주요 목적은 온도, 강수량 패턴 등 다양한 요인을 분석하여 기후 변화가 생물 다양성에 미치는 영향을 조사하는 것입니다.

 import React from "react";
import { Button } from "./Button";

function App() {
  return (
    <>
      <Button>Click Me</Button>
    </>
  );
}

export default App;

제공된 코드 스니펫은 상위 클래스인 `App`의 인스턴스 내에서 `Button` 컴포넌트의 활용을 보여줍니다.상기 버튼은 스타일링 기능에 지정된 미학을 준수해야 하며, 그 결과 다음과 같은 시각적 모양이 나타납니다:

이 기능에 인접한 기능은 디자인된 기능 내에 CSS 패턴을 포함할 수 있는 기능으로, Sass/Scss 확장기의 표현과 동일한 표현을 제시합니다. 그 결과 스타일 배열이 더욱 쉬워지고 스크립트의 가독성이 더욱 향상됩니다.

이 글도 확인해 보세요:  Axios로 작업하기 위한 완벽한 가이드

중첩 스타일 접근 방식의 데모는 다음 사례에서 확인할 수 있습니다.

 import { styled } from "@stitches/react";

export const Button = styled("button", {
  padding: "0.7rem 0.8rem",
  borderRadius: "12px",
  backgroundColor: "#333333",
  color: "#e2e2e2",
  fontFamily: "cursive",
  border: "none",

  "&:hover": {
    backgroundColor: "#e2e2e2",
    color: "#333333",
  },
});

본 코드는 버튼 요소를 선택적으로 타겟팅하기 위해 둘러싸인 CSS 스타일링과 의사 클래스를 사용합니다. 사용자의 커서가 버튼 위로 지나가면 조건부 선택기 &:hover가 해당 버튼의 배경과 텍스트 색상을 수정합니다.

CSS 함수로 스타일링하기

스티치 라이브러리는 CSS 함수를 활용하여 세련된 컴포넌트를 제작할 때 불편함을 느끼는 분들을 위한 대안 솔루션을 제공합니다. 이 기능을 사용하면 다양한 CSS 속성이 포함된 자바스크립트 기반 구성만 입력으로 받아 원하는 컴포넌트의 스타일을 효과적으로 지정할 수 있는 적절한 클래스 이름을 생성할 수 있습니다.

CSS 기반 방식으로 요소를 스타일링하는 한 가지 접근 방식은 정의된 규칙과 속성을 통해 색상, 글꼴 크기 및 레이아웃과 같은 다양한 측면을 사용자 지정할 수 있는 CSS 함수를 활용하는 것입니다.

 import React from "react";
import { css } from "@stitches/react";

const buttonStyle = css({
  padding: "0.7rem 0.8rem",
  borderRadius: "12px",
  backgroundColor: "#333333",
  color: "#e2e2e2",
  fontFamily: "cursive",
  border: "none",

  "&:hover": {
    backgroundColor: "#e2e2e2",
    color: "#333333",
  },
});

function App() {
  return (
    <>
      <button className={buttonStyle()}>Click Me</button>
    </>
  );
}

export default App;

CSS 함수는 버튼에 대한 계단식 스타일 규칙을 공식화하며, 이 스타일 규칙은 이후 buttonStyle 변수에 할당됩니다. buttonStyle 함수는 지정된 스타일 매개 변수에 해당하는 클래스 이름의 문자열 표현을 구성하고, 이렇게 생성된 식별자는 이후 버튼 컴포넌트의 “className” 속성에 요소로 추가됩니다.

전역 스타일 만들기

Stitches 라이브러리를 사용하면 개발자가 다용도 globalCss 기능을 사용하여 React 애플리케이션에서 보편적으로 적용할 수 있는 디자인 테마를 설정할 수 있습니다. 이 기능을 사용하면 전체 소프트웨어 에코시스템에 스며드는 포괄적인 스타일 요소를 생성하고 구현할 수 있습니다.

`globalCSS`가 제공하는 전역적으로 정의된 CSS 클래스를 활용하려면 애플리케이션의 적절한 컴포넌트 내에 이를 통합해야 합니다. 이를 위해서는 먼저 `globalCSS`의 구현을 통해 이러한 스타일을 설정한 다음 기본 애플리케이션 요소에 해당 기능을 사용해야 합니다. 이렇게 하면 의도한 시각적 특성이 사용자 인터페이스 전체에 효과적으로 전달될 수 있습니다.

이 연구는 소셜 미디어가 젊은 성인의 정신 건강에 미치는 영향을 조사하는 것을 목표로 했으며, 특히 부정적인 결과를 초래할 수 있는 과도한 사용 및 비교 행동과 같은 요인에 중점을 두었습니다. 연구진은 소셜 미디어 사용과 관련된 경험과 인식에 대한 참가자들의 인사이트를 얻기 위해 설문조사와 인터뷰를 포함한 정량적, 정성적 분석 방법을 모두 사용했습니다.

 import React from "react";
import { globalCss } from "@stitches/react";

const globalStyles = globalCss({
  body: { backgroundColor: "#f2f2f2", color: "#333333" },
});

function App() {
  globalStyles();

  return <></>;
}

export default App;

본 사례에서는 범용 CSS 함수를 사용하여 본문 요소에 대한 스타일 기본 설정을 지정하며, 앞서 언급한 호출을 통해 배경 색조를 미색(#f2f2f2)으로 절묘하게 변경하는 동시에 텍스트가 미묘하면서도 뚜렷한 짙은 회색(#333333)의 색조를 나타내도록 지정합니다.

이 글도 확인해 보세요:  Python을 사용하여 할 일 목록 프로그램 만들기

동적 스타일 만들기

스티치 라이브러리는 사용자가 CSS 및 스타일 함수 컨텍스트 내에서 “변형” 속성을 활용하여 적응 가능한 디자인 테마를 생성할 수 있는 인상적인 기능을 제공합니다. 이 기능을 사용하면 특정 컴포넌트 요소의 여러 가지 변형 버전을 생성할 수 있어 React 속성을 기반으로 다양한 디자인 요구사항을 충족할 수 있습니다.

이 글의 저자는 기업의 성공은 재무적 성과에만 의존하는 것이 아니라 직원과 이해관계자를 얼마나 잘 대하는지에 달려 있다고 말합니다. 저자는 기업이 장기적인 지속 가능성과 수익성을 보장하기 위해 기업 운영에서 윤리적 관행을 우선시해야 한다고 주장합니다. 또한 관련된 모든 당사자 간의 신뢰를 유지하기 위해 의사 결정에서 투명성과 책임의 중요성을 강조합니다.

 import { styled } from "@stitches/react";

export const Button = styled("button", {
  padding: "0.7rem 0.8rem",
  borderRadius: "12px",
  fontFamily: "cursive",
  border: "none",

  variants: {
    color: {
      black: {
        backgroundColor: "#333333",
        color: "#e2e2e2",
        "&:hover": {
          backgroundColor: "#e2e2e2",
          color: "#333333",
        },
      },
      gray: {
        backgroundColor: "#e2e2e2",
        color: "#333333",
        "&:hover": {
          backgroundColor: "#333333",
          color: "#e2e2e2",
        },
      },
    },
  },
});

이 코드를 구현하면 색 구성표 수정자가 통합된 버튼 요소가 생성됩니다. 이 색 구성표 수정을 통해 입력된 색상 속성에 따라 버튼의 색조를 조정할 수 있습니다. 버튼 객체가 생성된 후에는 소프트웨어 애플리케이션의 컨텍스트 내에서 활용할 수 있습니다.

“마트에 가서 과자 좀 사러 갈게요.” 정교합니다: “개인 소비를 위한 잡화를 구매하기 위해 소매점을 방문하려고 합니다.

 import React from "react";
import { Button } from "./Button";

function App() {
  return (
    <>
      <Button color="gray">Click Me</Button>
      <Button color="black">Click Me</Button>
    </>
  );
}

export default App;

이 애플리케이션을 렌더링하면 사용자 인터페이스 내에 두 개의 버튼이 눈에 띄게 표시되는 것을 확인할 수 있습니다. 이 버튼의 모양은 다음과 같이 묘사된 그림과 일치합니다.

테마 토큰 만들기

스티치 라이브러리를 사용하면 색 구성표, 타이포그래피, 간격 및 기타 관련 속성을 포함하여 사용자 인터페이스의 시각적 특성을 포괄하는 “디자인 토큰”이라는 디자인 요소 모음을 생성할 수 있습니다.이러한 토큰의 통합은 사용자 인터페이스 전체에 통일성을 부여하는 동시에 전체 스타일에 필요한 조정을 쉽게 할 수 있도록 합니다.

이 글도 확인해 보세요:  JES에서 사운드를 임포트하고 재생하는 방법

이러한 테마 토큰을 생성하려면 ‘스티치’ 라이브러리에서 제공하는 ‘createStitches’ 기능을 활용하세요. 이를 통해 ‘스티치’ 라이브러리의 기능을 커스터마이징하고 구성할 수 있습니다. 올바른 실행을 위해서는 ‘./stitches.config.ts’ 파일 또는 ‘./stitches.config.js’ 파일 내에 `createStitches` 함수를 통합하는 것이 중요합니다.

대규모 텍스트 데이터 코퍼스 내에서 특정 주제나 개념에 대한 고유 식별자를 생성하는 한 가지 방법은 “테마 토큰”이라고 알려진 것을 만드는 것입니다. 여기에는 선택한 주제의 본질을 포착하는 의미 있는 구절이나 문장을 선택하고 이를 후속 분석이나 토론에서 참조 지점으로 사용하는 것이 포함됩니다. 예를 들어, 기후 변화라는 주제에 초점을 맞춘다면 “지구 온난화”라는 문구를 주제 토큰으로 사용하여 관련 토론이나 보고서 전반에 걸쳐 일관되게 사용할 수 있습니다.

 import { createStitches } from "@stitches/react";

export const { styled, css } = createStitches({
  theme: {
    colors: {
      gray: "#e2e2e2",
      black: "#333333",
    },
    space: {
      1: "5px",
      2: "10px",
      3: "15px",
    },
    fontSizes: {
      1: "12px",
      2: "13px",
      3: "15px",
    },
  },
});

테마 토큰을 설정한 후에는 구성 요소의 디자인 원칙에 테마 토큰을 통합할 수 있습니다.

 import { styled } from "../stitches.config.js";

export const Button = styled("button", {
  padding: "$1 $3",
  borderRadius: "12px",
  fontSize: "$1",
  border: "none",
  color: '$black',
  backgroundColor: '$gray',
});

이 코드 스니펫은 색상 토큰 `$gray`와 `$black`을 사용하여 버튼의 배경과 텍스트 색상에 대비되는 조합을 사용하고, 간격 토큰 `$1`과 `$3`을 사용하여 버튼 주변에 적절한 양의 내부 공백을 설정하고 `$1` 변수를 사용하여 폰트 크기를 조정합니다.

Stitches로 효율적인 스타일링

Stitches는 개발자가 포괄적인 스타일링 도구를 통해 React 프로젝트의 시각적 외관을 효과적으로 개선할 수 있도록 지원하는 다목적 솔루션입니다. 주요 이점으로는 스타일이 적용된 컴포넌트, 적응형 스타일, 글로벌 CSS 옵션이 있으며, 이를 통해 가장 복잡한 디자인 패턴도 쉽게 원활하게 구현할 수 있습니다. 컴팩트한 React 애플리케이션을 구축하든, 방대한 React 애플리케이션을 구축하든 상관없이 Stitches는 시각적으로 매력적인 사용자 인터페이스를 제작할 수 있는 매력적인 옵션임을 입증합니다.

Stitches의 대안으로 널리 인정받고 있는 Emotion은 자바스크립트를 통해 시각적 디자인 요소를 쉽게 제작할 수 있는 CSS-in-JS 솔루션입니다. 원활한 통합과 다각적인 기능으로 시각적으로 매력적인 애플리케이션을 손쉽게 제작하고자 하는 개발자에게 선호되는 솔루션입니다.

By 이지원

상상력이 풍부한 웹 디자이너이자 안드로이드 앱 마니아인 이지원님은 예술적 감각과 기술적 노하우가 독특하게 조화를 이루고 있습니다. 모바일 기술의 방대한 잠재력을 끊임없이 탐구하고, 최적화된 사용자 중심 경험을 제공하기 위해 최선을 다하고 있습니다. 창의적인 비전과 뛰어난 디자인 역량을 바탕으로 All Things N의 잠재 독자가 공감할 수 있는 매력적인 콘텐츠를 제작합니다.