So verwenden Sie Sass zum Erstellen eines Projekts mit mehreren Themen

Der Workflow des Frontend-Entwicklers hat sich in den letzten Jahren stark verändert. Mehr Komplexität, höhere Anforderungen und größere Projekte bringen uns zu neuen Technologien wie Vorprozessoren. Ich persönlich liebe meinen Präprozessor-Workflow und möchte Sass heutzutage für meine Projekte nicht mehr missen - ohne ihn wäre ich ein Durcheinander.

Insbesondere in einer Situation, in der Sass mir geholfen hat, ist das Erstellen eines einzigen soliden Frontends, das verschiedene Themen haben kann - das Ändern von Farben, Bildern oder der Schriftarten mit Leichtigkeit. Heute werde ich meinen Workflow beschreiben, ich hoffe, Sie nehmen etwas Nützliches weg.

Grundstruktur

Hier ist die Struktur eines Beispielprojekts. Sie können alle Teilprodukte verwenden, von denen Sie denken, dass sie logisch aufgenommen werden sollten. Der Schlüssel ist, einen separaten Ordner für Themen und einen neuen Ordner zu haben .scss Datei für jedes Thema. 

Ordnerstruktur

| - _scss / | - | - _base / | - | - | - _config.scss | - | - _layouts / | - | - | - _l-grid.scss | - | - | - _l-default.scss | - | - _module / | - | - | - _m-accordions.scss | - | - | - _m-teasers.scss | - | -_themes / | - | - | - _light-theme / | - | - | - | - light .scss | - | - application.scss

Erstellen Sie die Basis mit einer Hauptdatei

In dem application.scss Datei importieren Sie alle Ihre Teile und ignorieren den Ordner _themen / An diesem Punkt. Dies bildet die Grundlage, auf der wir verschiedene Themen erstellen können.

@charset 'UTF-8'; // 1.Basis @import '_base / _config.scss'; // 2.Layouts @import '_layouts / _l-grid', '_layouts / _l-default'; // 3.Module @import '_modules / _m-accordions', '_modules / _m-teasers';

Aufbau

Farben, Schriftarten und vieles mehr

Das Konfigurieren Ihres Projekts ist sehr wichtig. Hier kommen Variablen zur Rettung, die es uns ermöglichen, Standardwerte festzulegen und Werte später auf der Designebene zu überschreiben. Hier sehen Sie einige Variablen für Farben, Schriftarten und Rahmeneinstellungen.

Weitere Informationen zum Benennen von Variablen finden Sie in Jim Nielsens Tipp: Benennen Sie Ihre SASS-Variablen modular.

@charset "UTF-8"; // Farben $ schwarz: # 000; $ white: #fff; $ red: # e2061c; $ graues Licht: # c9c8c8; $ grau: # 838282; $ grau-dunkel: # 333333; $ blau: # 253652; // Corp-Colors $ corp-color: $ blue! Default; $ corp-color-dark: dunkler ($ corp-color, 15%)! default; $ corp-color-second: $ red! default; $ corp-color-second-dark: dunkler ($ corp-color-second, 15%)! default; // Font $ base-font-size: 1.8! Default; $ base-font-family: Helvetica, Arial, Sans-Serif! default; $ base-font-color: $ gray-dark! default; // Border $ base-border-radius: 2px! Default; $ abgerundeter Rahmenradius: 50%! default; $ base-border-color: $ gray! default;

Der Schlüssel zu dieser Phase liegt in der Verwendung von !Standard Flag hinter den Variablendeklarationen. Auf diese Weise können Sie sie innerhalb des Designs überschreiben .scss Dateien; das !Standard effektiv sagt "Verwenden Sie diesen Wert, wenn er nicht anderweitig definiert ist".

Hintergrundbilder

Häufig erstellen Entwickler keine Variablen für Bilder, sondern schreiben URLs direkt in Selektoren. Ein Ansatz, der mir gefällt, besteht darin, alle Pfade in Partials zu entfernen und sie als Variablen in die Konfigurationsdatei einzufügen. Dies macht Ihr Leben einfacher und das Projekt besser wartbar.

// Images $ sprite: '… /images/base/sprite.png'! Default; $ colorbox-background: '… /images/base/colorbox-background.png'! default;

Beispiel eines Basismoduls

Hier sehen Sie einige Hintergrundvariablen in Aktion. Dies ist ein modularer Teil für ein Akkordeon, der die globale Variable verwendet $ Sprite aber auch eine Variable setzen und verwenden $ Akkordeon-Bgcolor Welches ist spezifisch für das Modul. 

// 1.Konfigurieren Sie $ accordion-bgcolor: $ gray! Default; // 2.Base .m-Akkordeon padding: 20px; Hintergrund: $ Akkordeon-bgcolor;  .m-accordion__trigger background: url ($ sprite) no-repeat; 

So erstellen Sie ein Design

In Ihrer Designdatei (z. B. _themen / _light-theme / light.scss Importieren Sie aus der obigen Demo - Struktur die application.scss das enthält alle Module, Layouts und so weiter. Dies ist die Basis für alles. Mit einem Thema legen wir eine zweite Ebene darüber. Nichts mehr. Sobald Sie importiert haben application.scss Fügen Sie dieselben Variablen hinzu, die zuvor verwendet wurden, definieren Sie jedoch Werte, die für dieses Thema spezifisch sind. 

Wenn Sie mit dieser Technik neue Module zur Basis des Projekts hinzufügen, werden diese automatisch (und harmlos) in allen unseren Themen zusammengestellt.

@charset 'UTF-8'; // 1.Overwrite Zeug $ corp-color: $ grey; $ corp-color-darken: dunkler ($ corp-color, 10%); $ corp-color-second: $ blue; $ corp-color-second-dark: dunkler ($ corp-color-second, 10%); $ base-font-size: 1.6; $ base-font-family: Droid Sans, Georgia, Arial; $ base-border-radius: 0px; $ base-border-color: $ gray-light; // Images $ sprite: '… /images/light/sprite.png'; $ colorbox-background: '… /images/light/colorbox-background.png'; $ Akkordeon-Grundfarbe: $ Grau-Licht; // 2. Grundthema importieren @import '… /… / application';

Mehrere Dateien in Sass ansehen

Der letzte Schritt ist das Kompilieren von Sass in CSS und das Erhalten von zwei verschiedenen Dateien zur Verwendung. Wir müssen kompilieren application.scss und das light.scss. Mit der Kommandozeile würden Sie etwa Folgendes verwenden:

sass --watch YOUR / PATH / application.scss: DEIN / CSSPATH / application.css DEIN / PATH / _themes / _light-theme / light.scss: DEIN / CSSPATH / light.css

Wenn Sie eine App wie CodeKit oder Prepros App verwenden, wird das Kompilieren eher visuell.

Umfassen die light.css Datei in den Kopf Ihrer Seite und werfen Sie einen Blick auf Ihre frisch gestaltete Website.

Fazit

Wie Sie sehen können, ist es hilfreich und unkompliziert, mehrere Themendateien zu haben, die alle auf einer soliden Grundlage basieren. Fühlen Sie sich frei, Fragen zu stellen oder Feedback zu geben und teilen Sie Ihre Erfahrungen mit uns im Kommentarbereich.