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.