DevCamp 심화교육코스(4) tailwind tailwind.config.js와 @layer로 설정하는것 어떤 차이점이 있는가?

라형선·2023년 10월 6일
0

Tailwind CSS의 tailwind.config.js 파일과 @layer 디렉티브를 사용하는 input.css 파일은 둘 다 Tailwind CSS 프로젝트의 스타일을 구성하는 데 사용되는 중요한 도구입니다. 그러나 이 두 가지 접근 방식은 목적과 사용 사례에 따라 차이가 있습니다.

  1. tailwind.config.js에서 설정하는 것:

    • tailwind.config.js 파일은 Tailwind CSS 프로젝트의 전반적인 설정을 정의하는 곳입니다. 이 파일을 사용하여 특정 CSS 클래스, 색상, 폰트, 여백 등을 정의하거나 수정할 수 있습니다.
    • 주로 프로젝트 전체에 영향을 미치는 스타일을 정의할 때 사용합니다. 예를 들어, 새로운 컬러 팔레트를 추가하거나 텍스트 사이즈를 조정하려면 tailwind.config.js 파일을 사용합니다.
  2. input.css에서 @layer로 설정하는 것:

    • @layer 디렉티브를 사용하여 개별 CSS 파일 내에서 스타일을 구성합니다. @layer를 사용하면 스타일 파일 내에서 컴포넌트 또는 요소별로 스타일을 구분하여 정의할 수 있습니다.
    • 주로 개별 컴포넌트나 페이지에서 필요한 스타일을 정의할 때 사용합니다. 이렇게 하면 스타일이 프로젝트 전체에 영향을 미치지 않고, 코드의 유지보수가 더 쉬워집니다.

어떤 상황에서 어느 것을 사용해야 하는지는 프로젝트의 규모와 구조, 개발자의 선호도 및 필요한 스타일 구성에 따라 달라집니다.

  • tailwind.config.js를 사용하는 경우:

    • 프로젝트 전체에 영향을 미치는 스타일을 수정하거나 추가해야 할 때.
    • Tailwind CSS의 기본 구성을 확장하거나 수정해야 할 때.
  • input.css에서 @layer를 사용하는 경우:

    • 개별 컴포넌트, 페이지 또는 모듈마다 스타일을 분리하여 유지 관리해야 할 때.
    • 특정 컴포넌트나 페이지에만 적용되는 스타일을 정의하고자 할 때.

일반적으로 중대한 전체 스타일 구성 변경은 tailwind.config.js에서 수행하고, 컴포넌트 또는 페이지별 스타일은 @layer를 사용하여 input.css 또는 유사한 파일에서 처리하는 것이 좋습니다.

@layer base를 사용하면 tailwind.config 와 같은 기능을 하는거야? 아니면 다른점이있어?

@layer basetailwind.config.js는 비슷한 목적을 가지고 있지만 다른 방식으로 동작합니다. 주요 차이점은 다음과 같습니다:

  1. @layer base:

    • @layer base는 Tailwind CSS의 내장 기능 중 하나로, 기본 기반 스타일을 정의하는 데 사용됩니다.
    • 이 레이어는 주로 웹 페이지의 기본 요소에 적용되는 스타일을 정의할 때 사용됩니다. 예를 들어, 글꼴 패밀리, 텍스트 색상, 폰트 크기, 줄 간격 등을 설정하는 데 유용합니다.
    • 기본적으로 tailwindcss/base 플러그인에 포함되어 있으며, tailwind.config.js에서 별도의 설정 없이 사용할 수 있습니다.
  2. tailwind.config.js:

    • tailwind.config.js 파일은 Tailwind CSS 프로젝트의 전반적인 설정을 정의하는 데 사용됩니다. 이 파일을 사용하여 특정 CSS 클래스, 색상, 여백, 너비 등을 정의하거나 수정할 수 있습니다.
    • @layer base와 달리 프로젝트 전체에 영향을 미치는 스타일을 정의하며, 기본 기반 스타일을 정의하는 데에는 사용되지 않습니다.

결론적으로, @layer base는 웹 페이지의 기본 스타일을 정의하기 위한 것이며, 주로 전체 프로젝트의 기본 스타일을 조절합니다. tailwind.config.js는 프로젝트 전체에 영향을 미치는 모든 스타일 설정을 담당합니다. 이 두 가지 도구는 프로젝트의 다른 측면을 조절하기 위해 함께 사용될 수 있습니다.

아직도 이해가 되지 않아서 예시를 찾아보았다.

tailwind.config.js 파일은 Tailwind CSS 프로젝트의 전체 구성과 기본 설정을 다루는 데 사용됩니다. 아래는 몇 가지 tailwind.config.js 파일에서 정의할 수 있는 설정 및 예제입니다:

  1. 색상 설정:

    module.exports = {
      theme: {
        extend: {
          colors: {
            primary: '#3498db',
            secondary: '#e74c3c',
          },
        },
      },
    }

    이 설정을 통해 새로운 색상 변수를 추가하고, 전체 프로젝트에서 사용할 수 있습니다.

  2. 폰트 설정:

    module.exports = {
      theme: {
        extend: {
          fontFamily: {
            custom: ['CustomFont', 'sans'],
          },
        },
      },
    }

    이 설정을 통해 새로운 폰트 패밀리를 정의하고, 전체 프로젝트에서 이 폰트를 사용할 수 있습니다.

  3. 여백 및 패딩 설정:

    module.exports = {
      theme: {
        extend: {
          spacing: {
            '16': '4rem',
            '32': '8rem',
          },
        },
      },
    }

    이 설정을 통해 새로운 여백과 패딩 값을 추가하고, 컴포넌트 및 레이아웃 디자인에 사용할 수 있습니다.

  4. 확장 및 추가 클래스:

    module.exports = {
      extend: {
        plugins: [
          require('@tailwindcss/forms'),
          require('@tailwindcss/typography'),
        ],
      },
    }

    여기서는 다양한 플러그인을 확장하고 추가하여 Tailwind CSS에 새로운 클래스와 스타일 기능을 제공합니다.

  5. 기본 텍스트 크기 설정:

    module.exports = {
      theme: {
        fontSize: {
          'xs': '0.75rem',
          'sm': '0.875rem',
        },
      },
    }

    이 설정을 통해 프로젝트의 텍스트 크기를 조절하거나 새로운 텍스트 크기를 추가할 수 있습니다.

tailwind.config.js 파일을 사용하여 이러한 설정을 정의하고 확장함으로써, 프로젝트 전체에서 일관된 디자인을 유지하고 기본 스타일을 제어할 수 있습니다.

@layer base 예시

tailwind.config.js 파일은 Tailwind CSS 프로젝트의 전체 구성과 기본 설정을 다루는 데 사용됩니다. 아래는 몇 가지 tailwind.config.js 파일에서 정의할 수 있는 설정 및 예제입니다:

  1. 색상 설정:

    module.exports = {
      theme: {
        extend: {
          colors: {
            primary: '#3498db',
            secondary: '#e74c3c',
          },
        },
      },
    }

    이 설정을 통해 새로운 색상 변수를 추가하고, 전체 프로젝트에서 사용할 수 있습니다.

  2. 폰트 설정:

    module.exports = {
      theme: {
        extend: {
          fontFamily: {
            custom: ['CustomFont', 'sans'],
          },
        },
      },
    }

    이 설정을 통해 새로운 폰트 패밀리를 정의하고, 전체 프로젝트에서 이 폰트를 사용할 수 있습니다.

  3. 여백 및 패딩 설정:

    module.exports = {
      theme: {
        extend: {
          spacing: {
            '16': '4rem',
            '32': '8rem',
          },
        },
      },
    }

    이 설정을 통해 새로운 여백과 패딩 값을 추가하고, 컴포넌트 및 레이아웃 디자인에 사용할 수 있습니다.

  4. 확장 및 추가 클래스:

    module.exports = {
      extend: {
        plugins: [
          require('@tailwindcss/forms'),
          require('@tailwindcss/typography'),
        ],
      },
    }

    여기서는 다양한 플러그인을 확장하고 추가하여 Tailwind CSS에 새로운 클래스와 스타일 기능을 제공합니다.

  5. 기본 텍스트 크기 설정:

    module.exports = {
      theme: {
        fontSize: {
          'xs': '0.75rem',
          'sm': '0.875rem',
        },
      },
    }

    이 설정을 통해 프로젝트의 텍스트 크기를 조절하거나 새로운 텍스트 크기를 추가할 수 있습니다.

tailwind.config.js 파일을 사용하여 이러한 설정을 정의하고 확장함으로써, 프로젝트 전체에서 일관된 디자인을 유지하고 기본 스타일을 제어할 수 있습니다.

예시를 보고나니 이해가 됬다. tailwind.config.js는 테일윈드의 기본설정 xs,sm,(spaceing의 단위)16 등의 단위를 사용자 지정으로 변경하는데 사용되는 것 이였고

@layer base 는 태그의 기본설정 h1, h2등에 기본적으로 저장되어있는 속성을 변경시킬 수 있는 것 이였다.

profile
형선

0개의 댓글