{"componentChunkName":"component---src-templates-contentful-post-js","path":"/post/sass-use/","result":{"pageContext":{"id":"5QH7awF9P94mXkiT0BpGEF","post":{"title":"🔧 Sassでのファイル管理と名前空間の活用方法","slug":"sass-use","contentful_id":"5QH7awF9P94mXkiT0BpGEF","isDisplay":true,"updatedAt":"2024年04月14日","metadata":{"tags":[{"name":"CSS","id":"84327022-58f2-5a9c-9773-61bc30dbc69d"},{"name":"Sass","id":"ee9c1728-f431-5b77-9105-a1f6cd2918ca"}]},"id":"8da58602-edd2-5769-b6cc-605f351a5b00","image":{"url":"https://images.ctfassets.net/ow38ejy06foj/5Jdu35hRFAMqjgoRowSwvC/87b68a69e206fe272148aba0d42805f2/tom244_82711_flat_illustration_it_office_7ddb1cdd-af52-499a-8f1b-78107b393f14.png"},"body":{"childMarkdownRemark":{"html":"<p>SassはCSSのメンテナンス性と再利用性を向上させるための強力なツールです。しかし、その全ての機能を最大限に活用するためには、ファイルの管理方法や、モジュールシステムの理解が不可欠です。この記事では、Sassのファイル名の先頭にアンダーバーを付ける慣習、<code class=\"language-text\">@use</code>と<code class=\"language-text\">@forward</code>ディレクティブの使い方、そして名前空間の管理について解説します。</p>\n<h2 id=\"_-アンダーバーのファイル名について\" style=\"position:relative;\"><a href=\"#_-%E3%82%A2%E3%83%B3%E3%83%80%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" aria-label=\"_ アンダーバーのファイル名について permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>_ アンダーバーのファイル名について</h2>\n<p>Sassでは、ファイル名の先頭にアンダースコア(<code class=\"language-text\">_</code>)を付けることで、そのファイルが部分的なファイル（パーシャル）であることを示します。パーシャルは、他のSassファイルによってインポートされることを意図していますが、単独でコンパイルされることはありません。これにより、複数のスタイルシートをモジュール化し、プロジェクトをより管理しやすくすることができます。</p>\n<h2 id=\"ファイル読み込みと名前空間\" style=\"position:relative;\"><a href=\"#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%81%A8%E5%90%8D%E5%89%8D%E7%A9%BA%E9%96%93\" aria-label=\"ファイル読み込みと名前空間 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ファイル読み込みと名前空間</h2>\n<p>Sassの<code class=\"language-text\">@use</code>ルールを使うと、他のファイルの変数やミックスイン、関数などを読み込んで使用することができます。\n※ @importは古い書い方なので使わないこと。</p>\n<p>_mixin.sass</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre class=\"language-css\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@mixin</span> <span class=\"token function\">second-color</span><span class=\"token punctuation\">(</span>$color<span class=\"token punctuation\">,</span> $fWeight<span class=\"token punctuation\">)</span></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> $color<span class=\"token punctuation\">;</span>\n    <span class=\"token property\">font-weight</span><span class=\"token punctuation\">:</span> $fWeight<span class=\"token punctuation\">;</span>\n    <span class=\"token property\">cursor</span><span class=\"token punctuation\">:</span> pointer<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre class=\"language-css\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@use</span> <span class=\"token string\">\"mixin\"</span><span class=\"token punctuation\">;</span></span>\n\n<span class=\"token selector\">.container</span> <span class=\"token punctuation\">{</span>\n  @include mixin.<span class=\"token function\">second-color</span><span class=\"token punctuation\">(</span>$<span class=\"token property\">color</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'yellow'</span><span class=\"token punctuation\">,</span> $<span class=\"token property\">fWeight</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'bold'</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>さらに、<code class=\"language-text\">as</code>キーワードを使ってエイリアス（別名）を定義し、より短い名前空間を使用することも可能です。</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre class=\"language-css\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@use</span> <span class=\"token string\">\"mixin\"</span> as mxn<span class=\"token punctuation\">;</span></span>\n<span class=\"token selector\">.container</span> <span class=\"token punctuation\">{</span>\n  @include mxn.<span class=\"token function\">second-color</span><span class=\"token punctuation\">(</span>$<span class=\"token property\">color</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'yellow'</span><span class=\"token punctuation\">,</span> $<span class=\"token property\">fWeight</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'bold'</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"forward-について\" style=\"position:relative;\"><a href=\"#forward-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" aria-label=\"forward について permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>@forward について</h2>\n<p><code class=\"language-text\">@forward</code>ルールは、スタイルシートが別のスタイルシートを公開することを許可し、プロジェクト全体で再利用可能なコードの集約を可能にします。例えば、複数のミックスインや関数を含む<code class=\"language-text\">_mixin.sass</code>ファイルを、<code class=\"language-text\">_global.scss</code>を介して他のすべてのファイルに利用可能にすることができます。</p>\n<p>_global.scss</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">@forward \"mixin\"</code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre class=\"language-css\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@use</span> <span class=\"token string\">\"global\"</span> as *<span class=\"token punctuation\">;</span></span>\n\n<span class=\"token selector\">.container</span> <span class=\"token punctuation\">{</span>\n  @include <span class=\"token function\">second-color</span><span class=\"token punctuation\">(</span>$<span class=\"token property\">color</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'yellow'</span><span class=\"token punctuation\">,</span> $<span class=\"token property\">fWeight</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'bold'</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span></code></pre></div>"}}},"previousPostId":"aa020e3c-6383-5f04-a127-66c4803e0a31","nextPostId":"c7e68530-5ea2-5328-8796-a2a2d56696ac","site":{"siteMetadata":{"title":"PWE Tech "}},"next":{"id":"c7e68530-5ea2-5328-8796-a2a2d56696ac","title":"📊 GASでスプレッドシートの操作をマスターしよう","slug":"gas-spreadsheet"},"previous":{"id":"aa020e3c-6383-5f04-a127-66c4803e0a31","title":"📝 GASで効率的なログ出力をマスターしよう！","slug":"gas"}}},"staticQueryHashes":["1324386404","3257411868"],"slicesMap":{}}