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.
This article is currently available in Turkish. Its English translation is being prepared.
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
| 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.
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; }')
Style::tag() ile birlikte çağrıldığında çıktı otomatik olarak <style> etiketi içine alınır:
@Style::tag()->compress
({[|
.card { color: red; }
|]})
.card{color:red}
</style>
Bilinmesi gerekenler
- Seçicilerde iki nokta üst üsteden önceki boşluk korunur;
.a :hoverile.a:hoverfarklı 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.
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.