Trudno na nie odpowiedzieć. Obie opcje mają swoje zalety i wady.
Osobiście nie lubię czytać jednego OGROMNEGO pliku CSS, a jego utrzymanie jest bardzo trudne. Z drugiej strony podzielenie go powoduje dodatkowe żądania HTTP, które mogą potencjalnie spowolnić działanie.
Moja opinia byłaby jedną z dwóch rzeczy.
1) Jeśli wiesz, że Twój CSS NIGDY nie zmieni się po jego utworzeniu, zbudowałbym wiele plików CSS na etapie programowania (dla czytelności), a następnie ręcznie je połączę przed uruchomieniem (w celu zmniejszenia żądań HTTP)
2) Jeśli wiesz, że od czasu do czasu zmienisz swój CSS i musisz zachować jego czytelność, zbudowałbym osobne pliki i używałbym kodu (pod warunkiem, że używasz jakiegoś języka programowania), aby je połączyć czas kompilacji środowiska wykonawczego (minimalizacja / kombinacja środowiska wykonawczego jest świnią zasobów).
W przypadku obu opcji zdecydowanie zalecam buforowanie po stronie klienta, aby jeszcze bardziej ograniczyć żądania HTTP.
EDYCJA:
Znalazłem tego bloga, który pokazuje, jak łączyć CSS w czasie wykonywania, używając tylko kodu. Warto rzucić okiem (choć sam tego jeszcze nie testowałem).
EDYCJA 2:
W czasie projektowania postanowiłem używać osobnych plików oraz procesu kompilacji w celu zminimalizowania i połączenia. W ten sposób mogę mieć oddzielny (zarządzalny) css podczas tworzenia i odpowiedni monolityczny zminimalizowany plik w czasie wykonywania. Nadal mam pliki statyczne i mniejszy narzut systemowy, ponieważ nie wykonuję kompresji / minimalizacji w czasie wykonywania.
Uwaga: jeśli chodzi o kupujących, zdecydowanie polecam użycie narzędzia bundler jako części procesu kompilacji. Niezależnie od tego, czy budujesz z poziomu IDE, czy ze skryptu kompilacji, program pakujący może być uruchamiany w systemie Windows za pomocą dołączonego exe
lub może być uruchamiany na dowolnym komputerze, na którym jest już uruchomiony plik node.js.