Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

LaravelにおけるTailwindCSSのベストプラクティス(スタイルを使い回したい場合の話)

概要

使用技術

  • Laravel10
  • Vite
  • Vue3
  • TailwindCSS3.3

ユースケース

①プロジェクト全体でスタイルを使い回したい場合

  • グローバルなCSSファイル(resources/css/app.css)にスタイルをTailwindCSSのスタイルを書く
resources/css/app.css
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

.btn-custom1 {
  @apply bg-blue-500 text-white font-bold py-2 px-4 rounded;
}

②特定のVueコンポーネント専用のスタイルをそのコンポーネント内で使い回したい場合(コンポーネントの外にスタイルを漏らしたくない)

  • Vueコンポーネントの<style scoped>ブロックに@applyディレクティブを書く
buttons.vue
<template>
  <button class="btn-custom2">Button2-1</button>
  <button class="btn-custom2">Button2-2</button>
</template>

<style scoped>
.btn-custom2 {
  @apply bg-blue-500 text-white font-bold py-2 px-4 rounded;
}
</style>

③特定のbladeテンプレート専用のスタイルをそのblade内で使い回したい場合(bladeの外にスタイルを漏らしたくない)

  • Vueと同じくblade内の<style scoped>ブロックに@applyディレクティブを書くことで専用のスタイルとしたいが、chat-gpt4に聞いたところこれはできない模様。
    • chat-gpt4の回答 → @apply ディレクティブは、PostCSSプラグインの一部として機能し、ビルド時にCSSを処理する必要があります。これは、ビルドプロセスを経ていない生のBladeファイルでは機能しません。
  • どのように書くのが良いと思いますか?
buttons.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	@vite('resources/css/app.css')
</head>
<body>
    <button class="btn-custom3">Button3-1</button>
	<button class="btn-custom3">Button3-2</button>
</body>

// ↓に書いたTailwindCSSのスタイルはビルドされずスタイリングされない
<style scoped>
    .btn-custom3 {
        @apply bg-red-500 text-white font-bold py-2 px-4 rounded;
    }
</style>
</html>

以上、ご意見をよろしくお願いいたします!

0

Your answer might help someone💌