KKUT Docs

Stil Kütüphanesi

Bu bölümde CSS kodlarının style etiketiyle yazdırılması ve kaynak kodun küçültülmesi (minify) ile ilgili kullanımlar anlatılmıştır.

Bu bölümde CSS kodlarının <style> etiketiyle yazdırılması ve kaynak kodun küçültülmesi (minify) ile ilgili kullanımlar anlatılmıştır.

Bölüm Başlıkları

# Yöntemler
# Compress
# Dinamik Stil Dosyası

# Yöntemler

Style::open() : string
Style::close() : string
Style::type(string $type) : this
Style::library(string ...$libraries) : this
Style::tag() : this
Style::compress(callable|string $content) : string

# Compress KUT 1.0’da desteklenir

CSS kodunu anlamını değiştirmeden küçültür: yorumlar ve gereksiz boşluklar kaldırılır, bildirim bloklarının son noktalı virgülü atılır. Tırnak içindeki metinler ve url(...) değerleri bayt bayt korunur. Kod içinde bir <style> sarmalayıcısı varsa çıkarılır.

Script::compress() ile farkı: Script::compress() JavaScript kodunu paketleyip karıştırır (obfuscate). Style::compress() yalnız küçültür; çıktı okunabilir CSS olarak kalır ve tarayıcının ayrıştırdığı kurallar birebir aynıdır.

Parametreler

callable|string $content CSS kodu ya da çıktısı CSS olan bir geri çağırım (çıktı tamponlanır).
return string

Kullanım

@Style::compress('.card { color : red ; /* not */ margin: 0 auto !important; }')
.card{color :red;margin:0 auto!important}

Style::tag() ile birlikte çağrıldığında çıktı otomatik olarak <style> etiketi içine alınır:

@Style::tag()->compress
({[|
    .card { color: red; }
|]})
<style type="text/css">
.card{color:red}
</style>

Bilinmesi gerekenler

  • Seçicilerde iki nokta üst üsteden önceki boşluk korunur; .a :hover ile .a:hover farklı seçicilerdir.
  • + ve - çevresindeki boşluklara dokunulmaz; calc(100% - 2rem) geçerli kalır.
  • Küçültme sıkıştırma (gzip/brotli) yerine geçmez; sunucu sıkıştırmasıyla birlikte kullanılır.

# Dinamik Stil Dosyası

Ayarlara göre üretilen bir stil dosyası, görünümü CSS olarak basan bir kontrolcü aksiyonu ile sunulabilir. Tarayıcı dosyayı doğrudan istediği için aksiyon :void olarak işaretlenmez (void aksiyonlar yalnız AJAX isteklerinde çalışır) ve çıktı die() ile gönderilir.

Dosya: Controllers/Styles.php
namespace Project\Controllers;

use Style;
use Import;

class Styles extends Controller
{
    public function theme()
    {
        $css = Style::compress((string) Import::usable()->view('Styles/theme'));

        header('Content-Type: text/css; charset=utf-8');

        die($css);
    }
}

Görünüm (Views/Styles/theme.wizard.php) CSS kodunu bir <style> öğesi içinde yazar; bu öğe @media gibi kuralların şablon yönergesi olarak derlenmesini engeller. Wizard'ın bitişik }} dizisini yazdırma kapanışı saydığını unutmayın: iki kapanış süslü parantezinin arasına bir satır sonu koyun.

KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.