Bird
Raised Fist0
SASSmarkup~5 mins

7-1 folder pattern in depth in SASS

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

The 7-1 folder pattern helps keep your Sass files organized and easy to find. It splits styles into clear sections so you can work faster and avoid confusion.

When your project has many styles and you want to keep them tidy.
When working with a team to make sure everyone knows where to put styles.
When you want to separate different parts like colors, layouts, and components.
When you want to reuse styles easily across pages.
When you want to avoid one big messy stylesheet.
Syntax
SASS
sass/
|- abstracts/
|   |- _variables.scss    // Sass variables
|   |- _mixins.scss       // Sass mixins
|   |- _functions.scss    // Sass functions
|- base/
|   |- _reset.scss        // Reset/normalize styles
|   |- _typography.scss   // Typography rules
|   |- _base.scss         // Base styles
|- components/
|   |- _buttons.scss      // Buttons
|   |- _carousel.scss     // Carousel
|   |- _modal.scss        // Modal
|- layout/
|   |- _header.scss       // Header
|   |- _footer.scss       // Footer
|   |- _sidebar.scss      // Sidebar
|   |- _grid.scss         // Grid system
|- pages/
|   |- _home.scss         // Home page styles
|   |- _about.scss        // About page styles
|- themes/
|   |- _theme.scss        // Theme styles
|- vendors/
|   |- _bootstrap.scss    // Bootstrap overrides
|- main.scss              // Main Sass file that imports all others

The folder names describe what kind of styles go inside.

Each folder has partial Sass files starting with an underscore (_).

Examples
This shows how you import partial files from different folders into your main Sass file.
SASS
@import 'abstracts/variables';
@import 'base/reset';
@import 'components/buttons';
Variables file stores colors and fonts to reuse everywhere.
SASS
// abstracts/_variables.scss
$primary-color: #3498db;
$font-stack: 'Helvetica Neue', sans-serif;
Button styles use variables from abstracts for consistent colors and fonts.
SASS
// components/_buttons.scss
.button {
  background-color: $primary-color;
  font-family: $font-stack;
  padding: 1rem 2rem;
  border: none;
  border-radius: 0.5rem;
}
Sample Program

This HTML uses styles compiled from Sass files organized with the 7-1 pattern. The button uses variables and mixins from abstracts, and layout styles come from layout folder.

SASS
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>7-1 Folder Pattern Example</title>
  <link rel="stylesheet" href="css/main.css" />
</head>
<body>
  <header class="site-header">
    <h1>Welcome to My Site</h1>
  </header>
  <main>
    <button class="button">Click Me</button>
  </main>
  <footer class="site-footer">
    <p>© 2024 My Site</p>
  </footer>
</body>
</html>
OutputSuccess
Important Notes

Always keep your main.scss clean by only importing partials.

Use clear folder names to help everyone understand your style structure.

Partial files start with an underscore (_) and are not compiled alone.

Summary

The 7-1 folder pattern organizes Sass files into 7 folders plus 1 main file.

This helps keep styles easy to find and maintain.

Use partial files and import them into main.scss for a clean workflow.

Practice

(1/5)
1. What is the main purpose of the 7-1 folder pattern in Sass?
easy
A. To reduce the size of CSS files by compressing them
B. To organize Sass files into 7 folders plus 1 main file for better structure
C. To automatically generate CSS without writing any Sass code
D. To create 7 different CSS themes from one Sass file

Solution

  1. Step 1: Understand the folder pattern concept

    The 7-1 pattern divides Sass files into 7 specific folders and 1 main file to keep code organized.
  2. Step 2: Identify the main goal of this structure

    This organization helps developers find and maintain styles easily, improving workflow.
  3. Final Answer:

    To organize Sass files into 7 folders plus 1 main file for better structure -> Option B
  4. Quick Check:

    7-1 pattern = organized folders + main file [OK]
Hint: Remember 7 folders + 1 main file = organized Sass [OK]
Common Mistakes:
  • Thinking it compresses CSS automatically
  • Believing it creates themes without extra code
  • Confusing it with CSS frameworks
2. Which of the following is the correct way to import a partial file named _buttons.scss into main.scss using the 7-1 pattern?
easy
A. @import 'buttons';
B. @import '_buttons.scss';
C. @import 'buttons.scss';
D. @import 'buttons/_buttons';

Solution

  1. Step 1: Recall Sass partial import syntax

    Partial files start with an underscore and are imported without the underscore or file extension.
  2. Step 2: Apply correct import syntax

    So, _buttons.scss is imported as @import 'buttons'; in main.scss.
  3. Final Answer:

    @import 'buttons'; -> Option A
  4. Quick Check:

    Import partials without underscore or extension [OK]
Hint: Drop underscore and .scss when importing partials [OK]
Common Mistakes:
  • Including underscore in import statement
  • Adding .scss extension in import
  • Using folder path incorrectly
3. Given this folder structure in the 7-1 pattern:
sass/
├── abstracts/_variables.scss
├── base/_reset.scss
├── components/_buttons.scss
└── main.scss

What will happen if main.scss contains:
@import 'abstracts/variables';
@import 'base/reset';
@import 'components/buttons';

and you compile main.scss?
medium
A. All styles from variables, reset, and buttons partials will be combined into one CSS file
B. Only the styles from main.scss will be compiled, ignoring imports
C. A syntax error will occur because folder names cannot be used in imports
D. The compiler will create separate CSS files for each imported partial

Solution

  1. Step 1: Understand how imports work in Sass

    When you import partials in main.scss, their styles are combined into one CSS output.
  2. Step 2: Analyze the import paths

    Using folder names like abstracts/variables is valid and imports the partial correctly.
  3. Final Answer:

    All styles from variables, reset, and buttons partials will be combined into one CSS file -> Option A
  4. Quick Check:

    Imports merge partials into one CSS [OK]
Hint: Imports combine partials into one CSS file [OK]
Common Mistakes:
  • Thinking imports create separate CSS files
  • Believing folder names are invalid in imports
  • Assuming imports are ignored during compilation
4. You have this import in main.scss:
@import 'layout/grid';
But when compiling, you get an error: File to import not found or unreadable: layout/_grid.scss.
What is the most likely cause?
medium
A. Sass does not support nested folders in imports
B. You should import as @import 'layout/_grid.scss'; including underscore and extension
C. The main.scss file must be inside the layout folder
D. The file _grid.scss is missing from the layout folder

Solution

  1. Step 1: Check the error message

    The error says the file layout/_grid.scss cannot be found or read.
  2. Step 2: Understand import rules

    Importing @import 'layout/grid'; expects a file named _grid.scss inside the layout folder.
  3. Final Answer:

    The file _grid.scss is missing from the layout folder -> Option D
  4. Quick Check:

    Missing partial file causes import error [OK]
Hint: Check if partial file exists in correct folder [OK]
Common Mistakes:
  • Including underscore and extension in import
  • Moving main.scss into partial folders
  • Assuming Sass disallows folder nesting
5. In the 7-1 folder pattern, you want to add a new component style for a card UI element. Where should you place the partial file and how should you import it in main.scss?
hard
A. Place _card.scss in the root sass folder and import with @import 'card';
B. Place _card.scss in the base folder and import with @import 'base/card';
C. Place _card.scss in the components folder and import with @import 'components/card';
D. Place _card.scss in the abstracts folder and import with @import 'abstracts/card';

Solution

  1. Step 1: Identify the correct folder for UI components

    The 7-1 pattern uses the components folder for UI parts like buttons, cards, and modals.
  2. Step 2: Use proper import syntax in main.scss

    Place _card.scss inside components and import as @import 'components/card';.
  3. Final Answer:

    Place _card.scss in components folder and import with @import 'components/card'; -> Option C
  4. Quick Check:

    UI parts go in components folder [OK]
Hint: Put UI parts in components folder, import with folder/name [OK]
Common Mistakes:
  • Putting components in base or abstracts folders
  • Importing with underscore or .scss extension
  • Placing partials outside organized folders