Skip to content

Layers

CSS sırası, önceliklerini etkileyecektir. Motor kuralların sırasını korurken, bazen bazı yardımcı programları sıralarını açıkça kontrol etmek için gruplamak isteyebilirsiniz.

Usage

Tailwind CSS'in üç sabit katman (base, components, utilities) sunduğunun aksine, UnoCSS katmanları istediğiniz gibi tanımlamanıza olanak tanır. Katmanı ayarlamak için, kurallarınızın üçüncü öğesi olarak metadata geçebilirsiniz:

ts
rules: [
  [/^m-(\d)$/, ([, d]) => ({ margin: `${d / 4}rem` }), { layer: 'utilities' }],
  // katmanı atlarsanız, varsayılan `default` olacaktır
  ['btn', { padding: '4px' }],
]

Bu şunu oluşturacaktır:

css
/* layer: default */
.btn { padding: 4px; }
/* layer: utilities */
.m-2 { margin: 0.5rem; }

Katman ayrıca her preflight üzerinde ayarlanabilir:

ts
preflights: [
  {
    layer: 'my-layer',
    getCSS: async () => (await fetch('my-style.css')).text(),
  },
]

Ordering

Katmanların sırasını şu şekilde kontrol edebilirsiniz:

ts
layers: {
  'components': -1,
  'default': 1,
  'utilities': 2,
  'my-layer': 3,
}

Belirtilen sıraya sahip olmayan katmanlar alfabetik olarak sıralanacaktır.

Özel CSS'nizin katmanlar arasında olmasını istediğinizde, giriş modülünüzü güncelleyebilirsiniz:

ts
// 'uno:[layer-name].css'
import 'uno:components.css'

// 'components' ve 'utilities' olmayan katmanlar buraya geri dönecektir
import 'uno.css'

// kendi CSS'iniz
import './my-custom.css'

// "utilities" katmanı en yüksek önceliğe sahip olacaktır
import 'uno:utilities.css'

CSS Cascade Layers

CSS Cascade Layers'ı şu şekilde çıkarabilirsiniz:

ts
outputToCssLayers: true

CSS Layer adlarını şu şekilde değiştirebilirsiniz:

ts
outputToCssLayers: {
  cssLayerName: (layer) => {
    // Varsayılan katman "utilities" CSS katmanına çıkarılacaktır.
    if (layer === 'default')
      return 'utilities'

    // Shortcuts katmanı "utilities" CSS katmanının "shortcuts" alt katmanına çıkarılacaktır.
    if (layer === 'shortcuts')
      return 'utilities.shortcuts'

    // Diğer tüm katmanlar adlarını CSS katman adı olarak kullanacaktır.
  }
}

Layers using variants

Katmanlar varyantlar kullanılarak oluşturulabilir.

uno-layer-<name>: bir UnoCSS katmanı oluşturmak için kullanılabilir.

html
<p class="uno-layer-my-layer:text-xl">text</p>
css
/* layer: my-layer */
.uno-layer-my-layer\:text-xl{ font-size:1.25rem; line-height:1.75rem; }

layer-<name>: bir CSS @layer oluşturmak için kullanılabilir.

html
<p class="layer-my-layer:text-xl">text</p>
css
/* layer: default */
@layer my-layer{ .layer-my-layer\:text-xl{ font-size:1.25rem; line-height:1.75rem; } }

Released under the MIT License.