2020-08-14 13:36:36 +02:00
..
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00
2020-08-14 13:36:36 +02:00

ZEN'S STYLESHEETS
-----------------

Don't panic!

There are a lot of files in this Sass folder. A lot. 56, actually.

I swear to you I'm going to give you a good reason not to panic. Just give me
a minute. (ヘ・_・)ヘ┳━┳

Okay, how about just panicking slightly while I collect my thoughts.
(╯°□°)╯︵ ┻━┻

Okay. Okay. There _are_ 56 Sass files in this sub-theme, but it's not as bad as
it first seems.

Why not just one stylesheet?

- For performance reasons you should always have all of your CSS in a single
  file to minimize the number of HTTP requests the user's browser needs to do.
  Fortunately, Drupal has a "Aggregate and compress CSS" feature that will
  automatically combine all the CSS files from its modules and themes into one
  file. You can turn on that feature under "Bandwidth Optimization" on the page:
    Administration > Configuration > Development > Performance
  So Drupal allows us (if we want) to use more than one stylesheet file, but
  still serves all the styles in one file to our users.

- When developing a site using a single stylesheet, it can become unwieldy to
  scroll and find the place you need to edit. As a deadline becomes imminent,
  developers often start stuffing new styles at the bottom of the stylesheet,
  completely destroying any stylesheet organization.

- Instead of one monolithic stylesheet, Zen sub-themes' CSS files are organized
  into many small stylesheets. Once you learn the organization (described
  below) it becomes easier to find the right place to add new styles.

- All the Sass files are imported into the styles.scss so all the CSS is output
  to the styles.css file.

ORGANIZATION OF STYLESHEETS
---------------------------

All of the styles in this sub-theme are built using component-based designs. To
learn more about component-based design, watch the Drupalcon presentation,
"Style Guide Driven Development: All hail the robot overlords!"
https://events.drupal.org/losangeles2015/sessions/style-guide-driven-development-all-hail-robot-overlords

The Sass files are organized in a simple file hierarchy, and, best of all are
documented in a style guide which is super easy to keep up-to-date. Open the
style guide to learn more about the styles and Sass used in this sub-theme.

Open the styleguide/index.html file in a web browser.


ABOUT SASS
----------

This directory includes Sass versions of Zen's CSS files.

Sass is a language that is just normal CSS plus some extra features, like
variables, nested rules, math, mixins, etc. If your stylesheets are written in
Sass, helper applications can convert them to standard CSS so that you can
include the CSS in the normal ways with your theme.

To learn more about Sass, visit: http://sass-lang.com

Since Sass is just a language, we also need an executable that can easily
convert Sass files into CSS. We use node-sass to convert our files to CSS. And
we use Gulp.js to run node-sass and many other useful front-end tasks.


DEVELOPING WITH SASS
--------------------

To automatically generate the CSS versions of the scss while you are doing theme
development, you'll need to tell Gulp to "watch" the sass directory so that
any time a .scss file is changed it will automatically generate a CSS file in
your sub-theme's css directory:

  gulp watch


MOVING YOUR CSS TO PRODUCTION
-----------------------------

Simple! Generate your CSS with: gulp

And don't forget to turn on Drupal's CSS aggregation. :-)