Docs / Glossary and FAQ

Glossary and Frequently Asked Questions

Glossary of Terms

This section explains all the technical terms you'll encounter.

Web Development Terms

HTML (HyperText Markup Language)

CSS (Cascading Style Sheets)

JavaScript

Webpage vs Website

Browser


SCSS/Sass Terms

SCSS (Sassy CSS)

Sass (Syntactically Awesome Style Sheets)

Variable

Nesting

.card {
  .title {
    // Styles for .title inside .card
  }
}

Mixin

@mixin rounded {
  border-radius: 10px;
}

.button {
  @include rounded;
}

Import

Partial

Compile/Compilation


Bootstrap Terms

Bootstrap

Component

Utility Class

Grid System

<div class="row">
  <div class="col-md-6">Left half</div>
  <div class="col-md-6">Right half</div>
</div>

Responsive

Breakpoint


NPM/Node Terms

Node.js (or just "Node")

NPM (Node Package Manager)

Package

package.json

node_modules

Script

Dependency


File/Folder Terms

Directory

Path

Root

Source (src)

Distribution (dist)

Extension


CSS Terms

Selector

p { }              /* All <p> elements */
.button { }        /* Elements with class="button" */
#header { }        /* Element with id="header" */

Property

Value

Rule/Rule Set

.button {           /* Selector */
  color: blue;      /* Property: value; */
  padding: 10px;
}

Class

<div class="card">
<p class="card">

Multiple elements can have the same class.

ID

<div id="header">

Only one element should have a specific ID.

Declaration

Pseudo-class

a:hover { }        /* When hovering over link */
a:focus { }        /* When link is focused */
input:disabled { } /* When input is disabled */

Media Query

@media (min-width: 768px) {
  /* Styles for screens 768px and wider */
}

Color Terms

Hex Code

RGB (Red Green Blue)

RGBA (Red Green Blue Alpha)

Opacity

Contrast


Size/Measurement Terms

px (Pixels)

rem (Root EM)

em

% (Percent)

vh (Viewport Height)

vw (Viewport Width)


Layout Terms

Box Model

Padding

Margin

Border

Flexbox

Grid


Development Terms

Build

Compile

Watch/Watch Mode

Terminal/Command Line

IDE (Integrated Development Environment)

Syntax

Comment

// This is a comment
/* This is also a comment */

Frequently Asked Questions

General Questions

Q: Do I need to know how to code to use this?

A: You need basic knowledge, but this documentation teaches you everything step-by-step. Start with the BEGINNERS_GUIDE.md.

Q: Can I use this for commercial projects?

A: Yes! This theme is MIT licensed, meaning you can use it for any purpose, including commercial projects.

Q: Do I need an internet connection to develop?

A: After initial setup (installing packages), you can develop offline. However, if using Google Fonts or CDN resources, those need internet.

Q: Will this work with WordPress/React/Vue/etc?

A: The compiled CSS (css/custom.css) works with any framework or CMS. Just link to it like any CSS file.


Installation Questions

Q: Which version of Node.js should I install?

A: Install the LTS (Long Term Support) version from nodejs.org. As of 2024, that's version 20.x.

Q: How much disk space does this project need?

A: About 200-300 MB after installing all packages (mostly in node_modules).

Q: Can I delete node_modules to save space?

A: Yes, but you'll need to run npm install again before you can build. Delete it when you're not working on the project if you need space.

Q: Do I need to install Bootstrap separately?

A: No! Running npm install installs Bootstrap and all other dependencies automatically.


Customization Questions

Q: Can I change just one color without affecting everything?

A: Yes! Bootstrap uses specific variables. For example, to change only button colors, modify the button-specific variables without changing $primary.

Q: How do I add my company's brand colors?

A: Define your colors in _variables.scss, then assign them to Bootstrap's theme color variables:

$company-blue: #1a2b3c;
$primary: $company-blue;

Q: Can I use images in my theme?

A: Yes! Put images in a folder like src/images/, then reference them in CSS:

.hero {
  background-image: url('../images/hero-bg.jpg');
}

Q: How do I make everything bigger/smaller?

A: Change the base font size and spacer:

$font-size-base: 1rem;  // Bigger: 1.125rem, Smaller: 0.875rem
$spacer: 1rem;          // Bigger: 1.25rem, Smaller: 0.75rem

Q: Can I use this theme with the regular Bootstrap CSS?

A: No, this replaces Bootstrap's CSS. But you can use Bootstrap's JavaScript (bootstrap.bundle.min.js).


Technical Questions

Q: What's the difference between .css and .scss files?

A:

Q: Why do I need to build/compile?

A: Browsers can't read SCSS files. Building converts your SCSS to CSS that browsers understand.

Q: Can I edit the CSS file directly instead of SCSS?

A: You can, but don't! The CSS file gets overwritten every time you build. Always edit SCSS files.

Q: What does "!default" mean?

A:

$primary: blue !default;

Means: "Use blue unless someone already defined $primary elsewhere." It allows overriding.

Q: What's the difference between @import and @use?

A:


Build Questions

Q: Why does the build show deprecation warnings?

A: These are warnings about future Sass versions. They don't affect functionality now. You can ignore them.

Q: How long should a build take?

A: First build: 5-15 seconds. Subsequent builds: 2-5 seconds. Watch mode rebuilds: 1-3 seconds.

Q: Can I speed up builds?

A: Watch mode (npm run watch) is fastest because it only rebuilds changed files.

Q: Do I need to build before viewing the demo?

A: The project comes pre-built, so you can view demo/index.html immediately. Build only when you make changes.

Q: What if I get "out of memory" errors?

A: Increase Node's memory limit:

export NODE_OPTIONS="--max-old-space-size=4096"

Then try building again.


Styling Questions

Q: Why doesn't my color look the same in different browsers?

A: Monitor calibration and browser color profiles vary. This is normal. Colors should be very similar though.

Q: What's a good contrast ratio for accessibility?

A:

Q: How do I know if my colors are accessible?

A: Use online tools like WebAIM Contrast Checker. Input your foreground and background colors.

Q: Should I use px or rem?

A: Use rem for most things (better accessibility). Use px for:

Q: What's the difference between margin and padding?

A:


Responsive Design Questions

Q: What screen sizes should I design for?

A: Bootstrap's breakpoints:

Test all three ranges.

Q: How do I make something only show on mobile?

A:

<div class="d-block d-md-none">Mobile only</div>

Q: How do I make something only show on desktop?

A:

<div class="d-none d-md-block">Desktop only</div>

Q: Can I add custom breakpoints?

A: Yes, but it's complex. Better to use Bootstrap's existing breakpoints.

Q: Why does my site look weird on iPhone/Android?

A: Make sure you have the viewport meta tag:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Component Questions

Q: How do I change button styles?

A: Modify button variables in _variables.scss:

$btn-padding-y: 0.5rem;
$btn-padding-x: 1rem;
$btn-border-radius: 0.25rem;

Q: Can I create custom button colors?

A: Yes! Add to theme colors:

$theme-colors: (
  "primary": $primary,
  "my-custom": #ff6b6b
);

Then use: <button class="btn btn-my-custom">Button</button>

Q: How do I make tables more compact?

A: Use the .table-sm class:

<table class="table table-sm">

Or change the table padding variables.

Q: Can I change the navbar height?

A: Yes, modify navbar padding:

$navbar-padding-y: 0.5rem;

Workflow Questions

Q: What's the best workflow for developing?

A:

  1. Open terminal, run npm run watch
  2. Open demo/index.html in browser
  3. Edit SCSS files
  4. Save
  5. Browser auto-rebuilds (refresh to see changes)

Q: Should I edit demo/index.html?

A: Yes, it's there for testing. Or create your own HTML files.

Q: How do I add my HTML page?

A:

  1. Create mypage.html anywhere
  2. Link to the CSS:
<link rel="stylesheet" href="path/to/css/custom.css">

Q: Can I organize my SCSS files differently?

A: Yes! Create more partial files and import them in custom.scss:

@import 'variables';
@import 'my-custom-file';
@import 'another-file';

Deployment Questions

Q: How do I use this theme on my live website?

A:

  1. Run npm run build
  2. Copy css/custom.css to your server
  3. Copy js/bootstrap.bundle.min.js to your server
  4. Link to them in your HTML

Q: Do I need to upload node_modules?

A: No! Only upload the dist folder (or just the files in it).

Q: Do I need to upload src folder?

A: No, only if you want to edit SCSS on the server (unusual). Usually just upload dist.

Q: Can I rename custom.css?

A: Yes, but update the link in your HTML:

<link rel="stylesheet" href="my-theme.css">

Troubleshooting Questions

Q: My changes aren't showing up. Why?

A: Common causes:

  1. Forgot to run npm run build
  2. Browser cached old CSS (hard refresh: Ctrl+Shift+R)
  3. Edited the CSS file instead of SCSS
  4. Looking at the wrong page

Q: I got an error. What do I do?

A:

  1. Read the error message - it often tells you exactly what's wrong
  2. Check TROUBLESHOOTING.md for common errors
  3. Undo your last change - does it work again?
  4. Search for the error message online

Q: How do I reset everything if I break something?

A:

# Delete generated files
rm -rf dist node_modules

# Reinstall
npm install
npm run build

Q: Can I undo my changes?

A: If using Git:

git checkout -- path/to/file.scss

If not using Git, you'll need to manually revert or restore from backup.


Best Practices Questions

Q: Should I comment my code?

A: Yes! Explain why you made changes:

// Increased button padding for better mobile touch targets
$btn-padding-y: 0.625rem;

Q: How should I name custom classes?

A: Use descriptive, lowercase names with hyphens:

.user-profile-card { }      // Good
.Card123 { }                // Bad
.usrPrflCrd { }             // Bad

Q: Should I use !important?

A: Avoid it if possible. It makes styles hard to override later. Use more specific selectors instead.

Q: How do I organize my custom styles?

A: Group related styles together with comments:

// =============================
// Custom Components
// =============================

// User Profile Card
.user-profile-card { }

// Dashboard Widgets
.dashboard-widget { }

Learning Questions

Q: I'm stuck. What should I learn first?

A: In this order:

  1. Basic HTML (structure)
  2. Basic CSS (styling)
  3. How to use Bootstrap classes
  4. SCSS variables
  5. Advanced SCSS features

Q: What resources do you recommend?

A:

Q: How long does it take to learn this?

A: Basic customization (colors, spacing): 1-2 days

Q: Is web development hard?

A: The basics are easy. Advanced techniques take time. This documentation makes it easier!


Quick Reference

Common Commands

npm install          # Install all packages
npm run build        # Build once
npm run watch        # Build and watch for changes
npm run dev          # Build and watch
node --version       # Check Node version
npm --version        # Check NPM version

Common File Paths

src/scss/_variables.scss     → Edit colors, sizes, spacing
src/scss/custom.scss         → Add custom styles
css/custom.css          → Generated CSS (don't edit!)
demo/index.html              → Test page
package.json                 → Project configuration

Common Variable Patterns

$variable-name: value !default;              // Define variable
property: $variable-name;                     // Use variable
property: $variable-name * 2;                 // Math with variable
property: darken($variable-name, 10%);        // Function with variable

Common CSS Patterns

.class-name {                                // Class selector
  property: value;                           // Declaration
}

#id-name {                                   // ID selector
  property: value;
}

.parent .child {                             // Descendant selector
  property: value;
}

.element:hover {                             // Hover state
  property: value;
}

@media (min-width: 768px) {                  // Media query
  .responsive {
    property: value;
  }
}

This glossary should help you understand the terminology used throughout the documentation. Refer back to it whenever you encounter unfamiliar terms!