Skip to content

CSS Kullanımı

Bu belge, Falcon’da stillerin nasıl organize edildiğini ve ne zaman hangi yöntemi kullanacağını anlatır.

İki sistem birlikte çalışır; biri diğerinin yerine geçmez:

SistemNe için?Nerede?
Fix UI (fix-*)Buton, kart, rozet görünümü; isteğe bağlı fix-type-* (marketing)src/styles/components/, src/components/ui/
Tailwind CSS 4Sayfa düzeni (PageShell), shell, form alanları, blog prose, spacing/tek seferlik tipografi.astro / HTML class="..."
Yazı rolleri (marketing)fix-type-*Yazı Stilleri
Blog / uzun MDX@tailwindcss/typography (prose)Yazı Stilleri, MDX Kullanımı

Fix UI bir npm paketi değildir; proje içi fix-* BEM sınıfları ve _fix-*.css dosyalarıdır.


Stil akışı dört katmandan oluşur:

Token'lar → Bileşen CSS (fix-*) → Astro sarmalayıcı → Sayfa
(colors, spacing) _fix-button.css Button.astro index.astro
  1. Token — Renk, boşluk, radius, gölge (src/styles/tokens/). Tüm ekranların paleti buradan gelir.
  2. Bileşen CSS.fix-btn, .fix-card gibi sınıflar; token tüketir. Görünümü değiştirmek için önce buraya bak.
  3. Astro sarmalayıcıButton.astro, Card.astro; yalnızca doğru fix-* sınıflarını üretir, stil yazmaz. Input / Label / Textarea ise Tailwind utility kullanır.
  4. Sayfa — Layout için Tailwind (PageShell), buton/kart için <Button> / <Card> veya bilinçli fix-* sınıfı.

Özet: Tekrarlayan bileşen görünümü fix-* CSS’te; sayfa iskeleti, form alanları ve blog gövdesi Tailwind’de.


KatmanDosya / klasörGörevi
Tema + tokensrc/styles/core.css@theme, :root / .dark, body; token import’ları
Token parçalarısrc/styles/tokens/_*.css--primary, --space-m, --radius-l
Tipografi tokensrc/styles/tokens/_typography.css--text-h1, --text-h2, --leading-body — boyut ölçeği
Fix bileşenlerisrc/styles/components/_fix-*.css.fix-btn, .fix-card, .fix-type-* stilleri
Sayfa layoutsrc/components/layout/PageShell.astromax-w-6xl, yatay gutter, dikey section padding
Site yığınısrc/styles/site.cssImport zinciri + Tailwind + typography plugin
UI sarmalayıcısrc/components/ui/*.astroButton, Card, Input
Fix UI katalogsrc/pages/fix-ui/, src/components/fix-ui/Canlı bileşen demosu (/fix-ui)
Yüklemesrc/layouts/BaseLayout.astroimport '@/styles/site.css' (tek kez)

globals.css kullanılmaz — layout doğrudan site.css yükler.


Sıra önemlidir: önce tema ve Fix bileşenleri, sonra Tailwind ve typography eklentisi.

@import "./core.css";
@import "./components/_fix-button.css";
@import "./components/_fix-card.css";
@import "./components/_fix-type.css";
@import "./components/_fix-badge.css";
@import "./components/_fix-form.css";
@import "tailwindcss";
@plugin "@tailwindcss/typography";
@source "../components/**/*.{astro,...}";
@source "../layouts/**/*.{astro,...}";
@source "../pages/**/*.{astro,...}";
  • Performans: Tek CSS pipeline; Fix sınıfları statik CSS; Tailwind yalnızca kullanılan utility’leri üretir (@source ile tarama sınırlı).
  • @apply kullanılmaz — Fix bileşenleri düz CSS + var(--token) ile yazılır.

Tüm tasarım sistemi sınıfları fix- ile başlar; projede grep ile takip edilir.

TürÖrnek
Butonfix-btn, fix-btn--primary, fix-btn--outline, fix-btn--s
Kartfix-card, fix-card--elevated, fix-card__header, fix-card__body
Yazı rolüfix-type-h1, fix-type-body, fix-type-lead
Rozetfix-badge, fix-badge--success
Form (katalog)fix-form, fix-form__row — yalnızca /fix-ui demosu

CSS değişkenleri fix- almaz: --primary, --space-m, --radius-base.

Audit (kullanım kontrolü):

Terminal window
rg "fix-btn|fix-card|fix-type|fix-badge" src
rg "prose" src/components/blog

Buton/kart için uzun Tailwind zinciri (rounded-xl border bg-… px-4 py-2) yerine <Button> / <Card> veya fix-* kullan.


DurumKullan
Buton, kart, rozet<Button>, <Card>, <Badge> veya fix-*
Marketing başlık / lead / gövdefix-type-h1, fix-type-lead, fix-type-bodyYazı Stilleri
Blog / uzun MDX gövdesiprose + semantic modifier’lar (BlogPostView)
Blog post başlığı (tek seferlik)Tailwind: text-3xl, font-extrabold vb.
Sayfa layout, grid, responsivePageShell + Tailwind: flex, gap-4, md:grid-cols-2
Form alanları (production)<Input>, <Label>, <Textarea> (Tailwind)
Tüm sitede renk / boşluk değişimisrc/styles/tokens/
Bir butonun hover rengi_fix-button.css (veya ilgili token)
Yeni sayfaBaseLayout + PageShell; sayfada CSS import etme

---
import BaseLayout from '@/layouts/BaseLayout.astro';
import PageShell from '@/components/layout/PageShell.astro';
import Button from '@/components/ui/Button.astro';
import Card from '@/components/ui/Card.astro';
---
<BaseLayout title="Örnek">
<PageShell>
<h1 class="fix-type-h1">Başlık</h1>
<Button variant="primary">Kaydet</Button>
<Card variant="elevated">
<div class="fix-card__body">İçerik</div>
</Card>
</PageShell>
</BaseLayout>
  • PageShell → bölüm genişliği (max-w-6xl), yatay gutter, dikey padding (Tailwind).
  • fix-type-h1 → marketing başlığı; token tabanlı rol.
  • Buton/kart görünümü → Fix UI; stiller sayfada tanımlanmaz.

Örneğin primary buton rengi veya kart gölgesi:

  1. src/styles/tokens/_colors.css--primary (tüm bileşenler)
  2. src/styles/components/_fix-button.css.fix-btn--primary (yalnızca buton)
  3. İsteğe bağlı: <Button class="…"> — ek sınıf; çakışan özellikte Tailwind utility genelde kazanır (site.css sırasında fix CSS, Tailwind’den önce gelir).

Yeni bileşen: token → _fix-yeni.csssite.css import → ui/Yeni.astro → (isteğe bağlı) /fix-ui katalog satırı.

Sayfa dosyasına dokunmana çoğu zaman gerek yok.

Ayrıntılı palet ve açık/koyu tablolar: Renk Ve Tema.

core.css içindeki @theme eşlemesi sayesinde (ör. --color-primary: var(--primary)) semantic utility’ler token ile uyumludur: bg-background, text-muted-foreground, border-border. Yine de kart/buton şekli için fix-* tercih edilir.


Sayfa (index.astro)
BaseLayout.astro → import site.css (bir kez)
site.css
→ core.css (tema + token import)
→ _fix-button.css, _fix-card.css, _fix-type.css, _fix-badge.css, _fix-form.css
→ tailwindcss + @tailwindcss/typography
→ @source (components, layouts, pages taranır)
Sayfa içi:
<PageShell> → max-w-6xl, py-16 … (stil: Tailwind)
<Button> → fix-btn fix-btn--primary (stil: _fix-button.css)
<article class="prose …"> (stil: Typography plugin)

YapYapma
CSS’i yalnızca BaseLayout üzerinden yükleHer sayfada import "...css"
Buton/kart için <Button> / <Card> veya fix-*Kart/butonda uzun Tailwind utility zinciri
Token’ları tokens/ veya core.csscore.css içine @import "tailwindcss"
Bileşen stilini _fix-*.css’te toplacore.css içinde .fix-btn tanımı
Layout/spacing ve blog prose için TailwindFix dosyalarında @apply
Görünüm değişince token veya component CSSOnlarca sayfada aynı class="..." kopyası

Paketler: tailwindcss, @tailwindcss/vite, @tailwindcss/typography (dev)
astro.config.mjs: Vite eklentisi
Kısayol: @/src/

tailwind.config.js zorunlu değil; @theme ve @source CSS içinde.


Rehber bölümü gelince:

DocsLayout.astro → import "@/styles/docs.css"
docs.css → core + fix bileşenleri + tailwindcss + yalnızca docs @source

Site ve docs CSS’i ayrı kalır; gereksiz sınıf üretimi azalır.


  • npm run build hatasız tamamlanmalı.
  • rg "fix-btn" srcButton.astro, _fix-button.css ve sayfa kullanımlarını göstermeli.
  • Buton/kart stilleri yalnızca src/styles/components/_fix-*.css ve token dosyalarında olmalı.
  • Canlı bileşen kataloğu: geliştirme sunucusunda /fix-ui.

Token’lar ve fix-* bileşen stilleri CSS katmanında; sayfa düzeni, form alanları ve blog gövdesi Tailwind’de; yükleme BaseLayout’ta. Buton ve kart tek yerden yönetilir; override için _fix-*.css düzenle veya class prop kullan.