zola/documentation/content/sass/index.html
2024-12-10 12:16:49 +00:00

307 lines
16 KiB
HTML

<!DOCTYPE html>
<html lang="en-gb">
<head>
<meta charset="UTF-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Everything you need to make a static site engine in one binary.">
<meta name="author" content="Vincent Prouillet">
<title>Sass | Zola </title>
<link rel="stylesheet" href="https://www.getzola.org/site.css">
<link rel="icon" href="https://www.getzola.org/favicon.ico">
</head>
<body>
<header>
<a class="header__logo white" href="https:&#x2F;&#x2F;www.getzola.org&#x2F;">Zola</a>
<nav>
<ul>
<li><a class="white" href="https://www.getzola.org/documentation/" class="nav-link">Docs</a></li>
<li><a class="white" href="https://www.getzola.org/themes/" class="nav-link">Themes</a></li>
<li><a class="white" href="https://zola.discourse.group/" class="nav-link">Forum</a></li>
<li><a class="white" href="https://github.com/getzola/zola" class="nav-link">GitHub</a></li>
</ul>
<div class="search-container">
<input id="search" type="search" placeholder="🔎 Search the docs">
<div class="search-results">
<div class="search-results__items"></div>
</div>
</div>
</nav>
</header>
<div class="content content--reversed">
<div class="documentation">
<aside class="documentation__sidebar">
<ul>
<li>
<span class="documentation__sidebar__title">Getting Started</span>
<ul>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;getting-started&#x2F;overview&#x2F;">Overview</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;getting-started&#x2F;installation&#x2F;">Installation</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;getting-started&#x2F;cli-usage&#x2F;">CLI usage</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;getting-started&#x2F;directory-structure&#x2F;">Directory structure</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;getting-started&#x2F;configuration&#x2F;">Configuration</a>
</li>
</ul>
</li>
<li>
<span class="documentation__sidebar__title">Content</span>
<ul>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;overview&#x2F;">Overview</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;section&#x2F;">Section</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;page&#x2F;">Page</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;shortcodes&#x2F;">Shortcodes</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;linking&#x2F;">Internal links &amp; deep linking</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;table-of-contents&#x2F;">Table of Contents</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;syntax-highlighting&#x2F;">Syntax Highlighting</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;taxonomies&#x2F;">Taxonomies</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;search&#x2F;">Search</a>
</li>
<li class="active">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;sass&#x2F;">Sass</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;image-processing&#x2F;">Image processing</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;content&#x2F;multilingual&#x2F;">Multilingual sites</a>
</li>
</ul>
</li>
<li>
<span class="documentation__sidebar__title">Templates</span>
<ul>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;overview&#x2F;">Overview</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;pages-sections&#x2F;">Sections and Pages</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;pagination&#x2F;">Pagination</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;taxonomies&#x2F;">Taxonomies</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;feeds&#x2F;">Feeds</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;sitemap&#x2F;">Sitemap</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;robots&#x2F;">Robots.txt</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;404&#x2F;">404 error page</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;archive&#x2F;">Archive</a>
</li>
</ul>
</li>
<li>
<span class="documentation__sidebar__title">Themes</span>
<ul>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;themes&#x2F;overview&#x2F;">Overview</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;themes&#x2F;installing-and-using-themes&#x2F;">Installing &amp; using themes</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;themes&#x2F;creating-a-theme&#x2F;">Creating a theme</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;themes&#x2F;extending-a-theme&#x2F;">Customizing a theme</a>
</li>
</ul>
</li>
<li>
<span class="documentation__sidebar__title">Deployment</span>
<ul>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;overview&#x2F;">Overview</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;sourcehut&#x2F;">Sourcehut Pages</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;netlify&#x2F;">Netlify</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;github-pages&#x2F;">GitHub Pages</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;gitlab-pages&#x2F;">GitLab Pages</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;codeberg-pages&#x2F;">Codeberg Pages</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;edgio&#x2F;">Edgio</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;vercel&#x2F;">Vercel</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;zeabur&#x2F;">Zeabur</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;cloudflare-pages&#x2F;">Cloudflare Pages</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;flyio&#x2F;">Fly.io</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;aws-s3&#x2F;">AWS S3 Bucket</a>
</li>
<li class="">
<a href="https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;deployment&#x2F;docker-image&#x2F;">Docker image</a>
</li>
</ul>
</li>
</ul>
</aside>
<div class="documentation__content">
<h1>Sass</h1>
<p>Sass is a popular CSS preprocessor that adds special features (e.g., variables, nested rules) to facilitate the
maintenance of large sets of CSS rules. If you're curious about what Sass
is and why it might be useful for styling your static site, the following links
may be of interest:</p>
<ul>
<li>The <a href="https://sass-lang.com/">official Sass website</a></li>
<li><a href="https://alistapart.com/article/why-sass">Why Sass?</a>, by Dan Cederholm</li>
</ul>
<p>It currently uses <a href="https://github.com/connorskees/grass">grass</a>, a Rust implementation of Sass roughly equivalent
with dart-sass.</p>
<h2 id="using-sass-in-zola"><a class="zola-anchor" href="#using-sass-in-zola" aria-label="Anchor link for: using-sass-in-zola">🔗</a>Using Sass in Zola</h2>
<p>Zola always compiles Sass files in theme directories.
However, for Zola to process files in the <code>sass</code> folder, you need to set <code>compile_sass = true</code> in your <code>config.toml</code>.</p>
<p>Zola processes any files with the <code>sass</code> or <code>scss</code> extension in the <code>sass</code>
folder, and places the processed output into a <code>css</code> file with the same folder
structure and base name into the <code>public</code> folder:</p>
<pre data-lang="bash" style="background-color:#383838;color:#e6e1dc;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#da4939;">.
</span><span>└── sass
</span><span> ├── style.scss // -</span><span style="color:#cc7833;">&gt;</span><span> ./public/style.css
</span><span> ├── indented_style.sass // -</span><span style="color:#cc7833;">&gt;</span><span> ./public/indented_style.css
</span><span> ├── _include.scss </span><span style="font-style:italic;color:#7c7865;"># This file won&#39;t get put into the `public` folder, but other files can @import it.
</span><span> ├── assets
</span><span> │ ├── fancy.scss // -</span><span style="color:#cc7833;">&gt;</span><span> ./public/assets/fancy.css
</span><span> │ ├── same_name.scss // -</span><span style="color:#cc7833;">&gt;</span><span> ./public/assets/same_name.css
</span><span> │ ├── same_name.sass </span><span style="font-style:italic;color:#7c7865;"># CONFLICT! This has the same base name as the file above, so Zola will return an error.
</span><span> │ └── _common_mixins.scss </span><span style="font-style:italic;color:#7c7865;"># This file won&#39;t get put into the `public` folder, but other files can @import it.
</span><span> └── secret-side-project
</span><span> └── style.scss // -</span><span style="color:#cc7833;">&gt;</span><span> ./public/secret-side-project/style.css
</span></code></pre>
<p>Files with a leading underscore in the name are not placed into the <code>public</code>
folder, but can still be used as <code>@import</code> dependencies. For more information, see the &quot;Partials&quot; section of
<a href="https://sass-lang.com/guide">Sass Basics</a>.</p>
<p>Files with the <code>scss</code> extension use &quot;Sassy CSS&quot; syntax,
while files with the <code>sass</code> extension use the &quot;indented&quot; syntax: <a href="https://sass-lang.com/documentation/syntax">https://sass-lang.com/documentation/syntax</a>.
Zola will return an error if <code>scss</code> and <code>sass</code> files with the same
base name exist in the same folder to avoid confusion -- see the example above.</p>
</div>
</div>
</div>
<footer>
©2017-2024 — <a class="white" href="https://www.vincentprouillet.com">Vincent Prouillet</a> and <a class="white" href="https://github.com/getzola/zola/graphs/contributors">contributors</a>
</footer>
<script type="text/javascript" src="https://www.getzola.org/elasticlunr.min.js"></script>
<script type="text/javascript" src="https://www.getzola.org/search.js"></script>
</body>
</html>