Organizacja plików i folderów
Zorganizują Państwo punkty wejścia CSS, arkusze stylów komponentów i pliki konfiguracyjne tak, aby zachować przejrzystość, gdy projekty wyrosną poza pojedynczy plik.
Organizacja plików i folderów to bezpłatna lekcja Tailwind CSS Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Tailwind CSS Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Tailwind CSS Academy zawiera 4 lekcji w sumie.
Dlaczego organizacja plików ma znaczenie
W miarę rozrastania się projektów Tailwind zwiększa się liczba plików związanych z konfiguracją CSS — konfiguracją Tailwind, konfiguracją PostCSS, globalnymi arkuszami stylów i stylami na poziomie komponentów. Bez przejrzystej struktury pliki te rozpraszają się po projekcie i stają się trudne do znalezienia. Dobra organizacja plików od razu wskazuje, gdzie dodawać nowe wartości, gdzie znajdują się globalne nadpisania i które reguły CSS należą do danego komponentu.
Pliki konfiguracyjne w katalogu głównym
Pliki konfiguracyjne wpływające na cały proces budowania — tailwind.config.js, postcss.config.js i .prettierrc — znajdują się w katalogu głównym projektu, obok package.json. Są umieszczane na tym poziomie, ponieważ narzędzia budujące odnajdują je zgodnie z przyjętą konwencją. Nie należy umieszczać ich w src/, chyba że używany toolchain jawnie obsługuje wyszukiwanie konfiguracji poza katalogiem głównym.
my-project/
├── tailwind.config.js # ← root level
├── postcss.config.js # ← root level
├── .prettierrc # ← root level
├── package.json
├── src/
│ ├── styles/
│ │ └── globals.css # @tailwind directives
│ └── components/Katalog stylów
Umieść wszystkie pliki CSS w dedykowanym katalogu src/styles/. Głównym punktem wejścia jest globals.css, który zawiera trzy dyrektywy @tailwind, nadpisania @layer dla elementów bazowych oraz importy dodatkowych arkuszy stylów. Style właściwe dla komponentów umieszczaj w osobnych plikach, takich jak button.css lub prose-overrides.css, importowanych do globals.css.
src/styles/
├── globals.css # main entry: @tailwind base/components/utilities
├── base.css # @layer base: html, body, heading resets
├── components.css # @layer components: .btn, .card, .badge
├── utilities.css # @layer utilities: custom utility helpers
└── prose-overrides.css # @tailwindcss/typography customizationsBudowa pliku globals.css
Plik globals.css jest punktem wejścia importowanym do głównego pliku aplikacji. Zawiera trzy dyrektywy Tailwind w odpowiedniej kolejności, a następnie importy dodatkowych arkuszy stylów. Unikaj umieszczania w tym pliku niestandardowych stylów poza dyrektywami — dla przejrzystości trzymaj deklaracje własnych warstw w osobnych plikach importowanych tutaj.
/* src/styles/globals.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* Import custom layer files */
@import './base.css';
@import './components.css';
@import './utilities.css';Umieszczanie stylów CSS obok komponentów
W frameworkach opartych na komponentach, takich jak React lub Vue, można umieścić niewielki plik CSS obok pliku komponentu, gdy style są z nim ściśle powiązane. W projektach Tailwind zdarza się to jednak rzadko, ponieważ większość stylów znajduje się bezpośrednio w nazwach klas w znacznikach. Pliki CSS obok komponentów należy rezerwować wyłącznie dla stylów, których rzeczywiście nie da się wyrazić za pomocą utility classes — takich jak złożone selektory :focus-within lub reguły @keyframes.
src/components/
├── Button/
│ ├── Button.tsx
│ └── Button.module.css # Only if truly needed beyond Tailwind
├── Card/
│ ├── Card.tsx
│ └── Card.test.tsx
└── Modal/
└── Modal.tsx # No CSS file — pure Tailwind utilitiesOddzielanie rozszerzeń motywu
Gdy plik tailwind.config.js znacznie się rozrośnie, wyodrębnij obiekt theme.extend do osobnego pliku, takiego jak theme/extend.js. Dzięki temu główny plik konfiguracji pozostanie krótki i czytelny, a plik z rozszerzeniem motywu może rozwijać się bez ograniczeń. Zaimportuj rozszerzenie i użyj operatora spread w głównej konfiguracji.
// theme/extend.js
module.exports = {
colors: {
brand: { 50: '#eff6ff', 500: '#3b82f6', 900: '#1e3a8a' },
},
fontFamily: {
display: ['Inter', 'sans-serif'],
},
spacing: {
18: '4.5rem',
128: '32rem',
},
};
// tailwind.config.js
const themeExtend = require('./theme/extend');
module.exports = {
content: [...],
theme: { extend: themeExtend },
plugins: [...],
};Oddzielanie konfiguracji pluginów
Jeśli projekt korzysta z kilku pluginów Tailwind, a każdy z nich wymaga rozbudowanej konfiguracji, wyodrębnij konfigurację pluginów do osobnych plików w katalogu plugins/. Każdy plik eksportuje skonfigurowany plugin i jest importowany do tablicy plugins głównej konfiguracji. Ułatwia to sprawdzenie, które pluginy są aktywne, oraz niezależne dostosowywanie ich ustawień.
plugins/
├── typography.js # require('@tailwindcss/typography')({...})
├── forms.js # require('@tailwindcss/forms')({strategy:'class'})
└── custom-utils.js # custom plugin function
// tailwind.config.js
module.exports = {
plugins: [
require('./plugins/typography'),
require('./plugins/forms'),
require('./plugins/custom-utils'),
],
};Organizowanie plików z tokenami
Tokeny projektowe — kolory, typografia i odstępy — najlepiej definiować w osobnym katalogu tokens/, zamiast umieszczać je bezpośrednio w konfiguracji Tailwind. Każda kategoria tokenów znajduje się w osobnym pliku: tokens/colors.js, tokens/typography.js, tokens/spacing.js. Pliki te można jednocześnie współdzielić z narzędziami projektowymi, konfiguracjami Storybooka i konfiguracją Tailwind.
tokens/
├── colors.js # { primary: '#3b82f6', surface: '#ffffff', ... }
├── typography.js # { fontFamily: { sans: ['Inter', ...] }, ... }
└── spacing.js # { 18: '4.5rem', 128: '32rem', ... }
// tailwind.config.js
const colors = require('./tokens/colors');
const typography = require('./tokens/typography');
module.exports = {
theme: {
extend: { colors, ...typography },
},
};Wzorce glob dla treści
Wzorce glob dla treści powinny być uporządkowane i czytelne. Grupuj je według typu i lokalizacji pliku, zamiast zapisywać jeden ogólny wzorzec przeszukujący zbyt szeroki zakres. Dodaj komentarz do każdego wzorca, wyjaśniający, którą część projektu obejmuje. Aktywnie utrzymuj tę listę — usuwaj stare wzorce po zmianie lub usunięciu katalogów i dodawaj nowe, gdy wprowadzane są nowe typy plików.
// tailwind.config.js
content: [
// Pages and layouts
'./src/pages/**/*.{js,ts,jsx,tsx}',
'./src/layouts/**/*.{js,ts,jsx,tsx}',
// UI components
'./src/components/**/*.{js,ts,jsx,tsx}',
// Public HTML files
'./public/**/*.html',
// Email templates (if any)
'./emails/**/*.{js,ts,jsx,tsx}',
],Konwencje nazewnictwa warstw CSS
Podczas używania @layer do dodawania niestandardowych stylów stosuj spójne nazewnictwo. Używaj @layer base do resetów na poziomie elementów (np. a, h1, input), @layer components do wzorców łączących wiele utility classes i mających znaczące nazwy (.btn, .card), a @layer utilities do utility classes o jednym przeznaczeniu, których nie ma w domyślnym zestawie Tailwind. Nigdy nie łącz tych odpowiedzialności.
/* src/styles/base.css */
@layer base {
html { @apply scroll-smooth; }
h1 { @apply text-4xl font-extrabold; }
a { @apply text-blue-600 hover:text-blue-700; }
}
/* src/styles/components.css */
@layer components {
.btn { @apply rounded-lg px-4 py-2 font-semibold; }
}
/* src/styles/utilities.css */
@layer utilities {
.text-balance { text-wrap: balance; }
}README dotyczący konwencji stylów
Udokumentuj strukturę plików i katalogów w pliku README projektu lub w dedykowanym pliku STYLE_GUIDE.md. Dołącz diagram katalogu src/styles/, wyjaśnij, w którym pliku powinien znaleźć się każdy rodzaj stylu, i wskaż, kto odpowiada za utrzymanie wzorców glob dla treści. Nowi deweloperzy powinni móc zrozumieć, gdzie dodać nowy niestandardowy kolor lub klasę komponentu, czytając jedną stronę dokumentacji.
# CSS Architecture
## File Map
- `tailwind.config.js` — theme tokens, content globs, plugins
- `src/styles/globals.css` — entry point, @tailwind directives
- `src/styles/base.css` — element resets in @layer base
- `src/styles/components.css` — .btn, .card, .badge in @layer components
- `tokens/colors.js` — brand color palette
## Adding a new custom utility
Add to `src/styles/utilities.css` inside `@layer utilities { }`. Szybki test
Sprawdź swoją znajomość zagadnień z Tailwind CSS Mastery omawianych w tej lekcji.
Podsumowanie lekcji
W tej lekcji nauczyli się Państwo: przechowywania plików konfiguracyjnych w katalogu głównym projektu dla zapewnienia zgodności z toolchainem, organizowania stylów w katalogu src/styles/ z osobnymi plikami dla każdej warstwy oraz wyodrębniania tokenów motywu i pluginów do dedykowanych plików w miarę rozrastania się konfiguracji. Następnie omówimy współistnienie z dotychczasowym kodem CSS w istniejących projektach.
Ucz się HTML dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Organizacja plików i folderów” jest bezpłatna?
Tak — pełny tekst „Organizacja plików i folderów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Tailwind CSS Academy, przejdź na CoddyKit PRO. Kurs Tailwind CSS Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Organizacja plików i folderów”?
Zorganizują Państwo punkty wejścia CSS, arkusze stylów komponentów i pliki konfiguracyjne tak, aby zachować przejrzystość, gdy projekty wyrosną poza pojedynczy plik. Ćwiczysz Tailwind CSS Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Tailwind CSS Academy?
Nie wymagamy żadnego doświadczenia. Tailwind CSS Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Organizacja plików i folderów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Tailwind CSS Academy?
Tak. Każda lekcja Tailwind CSS Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Organizacja plików i folderów
- Współistnienie z istniejącym CSS
- CSS Modules i Tailwind
- Skalowanie Tailwind w monorepo