Zestaw startowy design systemu bez frameworka
Zestaw startowy design systemu bez frameworka
Frameworki CSS typu Bootstrap, Tailwind czy Bulma przyspieszają pracę – ale często wprowadzają zbędny balast, nadmiar klas i trudności w dopasowaniu do własnego stylu.
Dobra wiadomość? Możesz stworzyć własny „mini-framework” – lekki, prosty i dopasowany do twojego stylu, oparty na zmiennych i klasach komponentowych.
1. Struktura pliku – warstwy i porządek
Zacznij od zorganizowania kodu w warstwach przy pomocy @layer (jeśli używasz go globalnie) lub po prostu przyjęcia logicznego podziału:
- reset.css – zerowanie stylów i ustawienia bazowe,
- variables.css – zmienne kolorów, spacingu, fontów,
- base.css – typografia, linki, nagłówki, listy,
- components.css – przyciski, karty, formularze, itp.,
- utilities.css – klasy pomocnicze (tekst, marginesy, kolory).
2. Plik variables.css
:root {
/* Kolory */
--color-primary: #0d6efd;
--color-accent: #ffc107;
--color-text: #212529;
--color-muted: #6c757d;
--color-bg: #f8f9fa;
/* Typografia */
--font-base: 16px;
--font-lg: 1.5rem;
--font-md: 1rem;
--font-sm: 0.875rem;
/* Odstępy */
--space-sm: 0.5rem;
--space-md: 1rem;
--space-lg: 2rem;
/* Promienie */
--radius: 0.5rem;
}
3. Plik base.css
body {
font-family: system-ui, sans-serif;
font-size: var(--font-base);
background-color: var(--color-bg);
color: var(--color-text);
line-height: 1.6;
margin: 0;
padding: 0;
}
h1, h2, h3 {
color: var(--color-primary);
font-weight: 600;
margin-bottom: var(--space-sm);
}
4. Plik components.css
Przykładowy przycisk:
.button {
display: inline-block;
padding: var(--space-sm) var(--space-md);
font-size: var(--font-md);
background: var(--color-primary);
color: white;
border: none;
border-radius: var(--radius);
cursor: pointer;
transition: background-color 0.3s ease;
}
.button:hover {
background: #0a58ca;
}
Przykładowa karta:
.card {
background: white;
padding: var(--space-md);
border-radius: var(--radius);
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
margin-bottom: var(--space-md);
}
5. Plik utilities.css
.text-center {
text-align: center;
}
.text-muted {
color: var(--color-muted);
}
.mt-lg {
margin-top: var(--space-lg);
}
.p-sm {
padding: var(--space-sm);
}
6. Jak to wdrożyć?
W HTML załaduj wszystkie pliki w kolejności:
<link rel="stylesheet" href="reset.css"> <link rel="stylesheet" href="variables.css"> <link rel="stylesheet" href="base.css"> <link rel="stylesheet" href="components.css"> <link rel="stylesheet" href="utilities.css">
Dobre praktyki
- Zawsze korzystaj z tych samych zmiennych w komponentach i typografii
- Twórz komponenty, które można łatwo kopiować między projektami
- Nie nadpisuj stylów globalnych na siłę – zamiast tego izoluj je przez
@scopelub selektory komponentowe - Trzymaj każdą kategorię stylów w osobnym pliku – łatwiej zarządzać
Ćwiczenie
Zbuduj własny mini design system do małego projektu (np. portfolio, landing page):
- stwórz 5 plików CSS z opisanym podziałem,
- zdefiniuj zmienne i styl bazowy,
- stwórz minimum 3 komponenty (np.
.button,.card,.alert), - dodaj klasy pomocnicze (
.text-center,.mt-mditp.).
Wniosek
Własny system designowy w CSS to prostota, elastyczność i kontrola. Nie potrzebujesz frameworka, by pracować profesjonalnie – wystarczy dobrze zorganizowany kod, dobór zmiennych i klasy komponentowe. To podejście pozwala tworzyć strony szybciej, czytelniej i bez niepotrzebnego obciążenia.
