Tailwind CSS Academy · Lekcja

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.

Lekcja 1 z 413 kroki

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 customizations

Budowa 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 utilities

Oddzielanie 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.

Bezpłatny start

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

  1. Organizacja plików i folderów
  2. Współistnienie z istniejącym CSS
  3. CSS Modules i Tailwind
  4. Skalowanie Tailwind w monorepo
← Powrót do Tailwind CSS Academy