Przejdź do głównej treści
Grafika przedstawia ukryty obrazek

Jak stworzyć własny framework CSS na wzór Bootstrap 5: krok po kroku

Obraz ilustrujacy Jak stworzy wasny framework CSS na wzr Bootstrap 5 krok po kroku

Frameworki CSS, takie jak Bootstrap, ułatwiają budowanie responsywnych, nowoczesnych interfejsów użytkownika. Ale co jeśli potrzebujesz czegoś lżejszego, prostszego, bardziej dopasowanego do Twoich potrzeb? W tym artykule pokażę Ci, jak stworzyć własny mini-framework CSS inspirowany Bootstrapem 5 – od planowania, przez kod, aż po gotowy plik CSS.

Dlaczego warto stworzyć własny framework?

  • Masz pełną kontrolę nad stylami i klasami
  • Framework może być lekki i szybki
  • Łatwiej go dostosować do konkretnego projektu
  • Uczysz się, jak działają takie systemy jak Bootstrap i Tailwind

Krok 1: Zaplanuj strukturę

Podstawowy framework powinien zawierać:

  • Reset CSS – wyzerowanie domyślnych styli przeglądarek
  • Siatkę (grid) – np. na bazie Flexboxa
  • Typografię – nagłówki, paragrafy, rozmiary czcionek
  • Komponenty bazowe – przyciski, kontenery
  • Klasy narzędziowe (utilities) – marginesy, paddings, wyrównania tekstu
  • Zmienna konfiguracja – np. kolory, odstępy

Krok 2: Utwórz strukturę plików

Tworzymy katalog projektu z plikami .scss:

/css-framework/
    scss/
        _reset.scss
        _variables.scss
        _grid.scss
        _typography.scss
        _buttons.scss
        _utilities.scss
        main.scss
    style.css (skompilowany plik wynikowy)

Krok 3: Kod SCSS – fragmenty

Zmienne (_variables.scss)

$primary: #0d6efd;
$secondary: #6c757d;
$danger: #dc3545;
$gray-900: #212529;

$font-size-base: 1rem;
$spacing: 1rem;

Reset (_reset.scss)

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  font-family: sans-serif;
}

Grid (_grid.scss)

.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}

[class^="col-"] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  flex: 1 0 0%;
}

.col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

Typografia (_typography.scss)

body {
  font-size: $font-size-base;
  line-height: 1.5;
  color: $gray-900;
}

h1, h2, h3 {
  font-weight: 600;
  margin-bottom: 0.5rem;
}

Przyciski (_buttons.scss)

.button {
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
  font-size: $font-size-base;
  border: none;
  cursor: pointer;

  &.primary {
    background-color: $primary;
    color: white;
  }

  &.danger {
    background-color: $danger;
    color: white;
  }
}

Utilities (_utilities.scss)

.m-1 { margin: 0.25rem !important; }
.p-1 { padding: 0.25rem !important; }
.text-center { text-align: center !important; }

.container {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1rem;
}

Import wszystkiego (main.scss)

@import "variables";
@import "reset";
@import "grid";
@import "typography";
@import "buttons";
@import "utilities";

Krok 4: Kompilacja SCSS do CSS

Aby skompilować main.scss do gotowego style.css, użyj terminala:

sass scss/main.scss style.css --style=expanded

Jeśli nie masz sass, zainstaluj go:

npm install -g sass

Krok 5: Demo HTML

Poniżej prosty plik HTML pokazujący użycie Twojego frameworka:

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>Demo Frameworka CSS</title>
  <link rel="stylesheet" href="style.css" />
</head>
<body>

  <div class="container p-1">
    <h1 class="text-center">Mój Mini Framework CSS</h1>
    <div class="row mt-1">
      <div class="col-6 p-1">
        <h2>Lewa kolumna</h2>
        <button class="button primary">Akcja</button>
      </div>
      <div class="col-6 p-1">
        <h2>Prawa kolumna</h2>
        <button class="button danger">Usuń</button>
      </div>
    </div>
  </div>

</body>
</html>

Gotowy plik CSS

Możesz pobrać gotowy skompilowany plik CSS tutaj:

Pobierz style.css

Zobacz demo

Co dalej?

Twój framework możesz teraz:

  • Rozbudować o inne komponenty (karty, modale, formularze)
  • Opublikować na GitHubie jako open source
  • Zbudować wersję CDN (np. przez jsDelivr)
  • Podpiąć do własnych projektów lub dokumentacji

Podsumowanie

Stworzenie własnego frameworka CSS nie jest trudne – wystarczy dobra organizacja kodu, przemyślana struktura i kilka podstawowych komponentów. Dzięki temu zyskujesz lekki, szybki i własny zestaw narzędzi, który możesz rozwijać według własnych potrzeb.

29 maja 2025 6

Kategorie

programowanie

Dziękujemy!
()

Powiązane wpisy

Ilustracja tematu Automatyczny motyw Bootstrap 53 na bazie pory dnia
4 stycznia 2025 6 min 71

Automatyczny motyw Bootstrap 5.3 na bazie pory dnia

ux
Czytaj więcej
Obraz ilustrujacy Kontrast RGB wzgldem WCAG  jak go obliczy i poprawi
26 lutego 2025 7 min 75

Kontrast RGB względem WCAG – jak go obliczyć i poprawić

ux
Czytaj więcej
Grafika przedstawia UX Design na stronach opartych na Bootstrap 5
3 marca 2025 3 min 13

UX Design na stronach opartych na Bootstrap 5

ux
Czytaj więcej
Wymiana doświadczeń

Masz podobne doświadczenia?

Chętnie poznam Twoją perspektywę i porozmawiam o tym temacie szerzej.

Napisz do mnie

Każda perspektywa może wnieść coś wartościowego do dyskusji.

Twoja prywatność i pliki cookies

  1. Ta strona internetowa wykorzystuje wyłącznie niezbędne pliki cookies, które są wymagane do jej prawidłowego działania – m.in. do poprawnego wyświetlania treści, zapamiętania podstawowych ustawień przeglądarki oraz zapewnienia stabilności serwisu.
  2. Nie stosuję plików cookies w celach marketingowych, reklamowych ani analitycznych.
  3. Strona ma charakter wyłącznie informacyjny i nie zawiera formularzy kontaktowych, rejestracyjnych ani zakupowych, przez które dane mogłyby być przesyłane na serwer.
  4. Nie zbieram danych osobowych podczas zwykłego korzystania z witryny.
  5. Serwis nie korzysta z certyfikatu SSL, jednak ze względu na informacyjny charakter strony nie jest wymagane przesyłanie poufnych danych. Zalecam jednak, aby nigdy nie wpisywać haseł ani danych osobowych na stronach bez szyfrowanego połączenia.
  6. Korzystając z tej strony, wyrażasz zgodę na używanie wyłącznie niezbędnych plików cookies.

Więcej informacji znajdziesz w mojej polityce prywatności.