Sass (uslublar varag'i tili) - Sass (stylesheet language)

Sass
Sass Logo Color.svg
LoyihalashtirilganXempton Ketlin
TuzuvchiNatali Vayzenbaum, Kris Eppshteyn
Birinchi paydo bo'ldi2006 yil 28-noyabr; 14 yil oldin (2006-11-28)
Barqaror chiqish
3.5.6 / 23.03.2018; 2 yil oldin (2018-03-23)[1]
Matnni yozishDinamik
OSO'zaro faoliyat platforma
LitsenziyaMIT litsenziyasi
Fayl nomi kengaytmalari.sass, .scss
Veb-saytsass-lang.com
Mayor amalga oshirish
Dart, Yoqut
Ta'sirlangan
CSS (ikkala "girintili" va SCSS)

YAML va Haml (kiruvchi sintaksis)

Kamroq (SCSS)
Ta'sirlangan
Kamroq, Qalam, Tritiy, Bootstrap (v4 +)

Sass (qisqacha sintaktik jihatdan ajoyib uslublar jadvallari) a oldingi protsessor skript tili anavi talqin qilingan yoki tuzilgan ichiga Kaskadli jadvallar (CSS). SassScript - bu ssenariy tilining o'zi.

Sass ikkitadan iborat sintaksislar. "Chiqib ketgan sintaksis" deb nomlangan asl sintaksis, shunga o'xshash sintaksisdan foydalanadi Haml.[2] U foydalanadi chuqurlik ajratmoq kod bloklari va yangi qator qoidalarni ajratish uchun belgilar. "SCSS" (Sassy CSS) yangi sintaksisida CSS formatidagi kabi blokirovka qilish formatidan foydalaniladi. Kod bloklarini belgilash uchun qavs va blok ichidagi qoidalarni ajratish uchun nuqta-verguldan foydalaniladi. Indentatsiyalangan sintaksis va SCSS fayllariga an'anaviy ravishda kengaytmalar navbati bilan .sass va .scss.

CSS3 ularga tegishli qoidalarni guruhlashtiradigan bir qator selektorlar va psevdo-selektorlardan iborat. Sass (ikkala sintaksisning ham katta kontekstida) CSS-ni an'anaviy ravishda mavjud bo'lgan bir nechta mexanizmlarni taqdim etish orqali kengaytiradi dasturlash tillari, ayniqsa ob'ektga yo'naltirilgan tillar, lekin bu CSS3 o'zi uchun mavjud emas. SassScript izohlanganda, Sass fayli bilan belgilanadigan turli selektorlar uchun CSS qoidalarining bloklarini yaratadi. Sass tarjimoni SassScript-ni CSS-ga tarjima qiladi. Shu bilan bir qatorda, Sass .sass yoki .scss fayli saqlanganida .sass yoki .scss faylini kuzatishi va uni .css fayliga tarjima qilishi mumkin.[3]

Chiqib ketgan sintaksis metall tildir. SCSS - bu ichki ichki til, haqiqiy CSS bir xil bo'lgan haqiqiy SCSS hisoblanadi semantik.

SassScript quyidagi mexanizmlarni taqdim etadi: o'zgaruvchilar, uyalash, aralashmalar va selektor meros olish.[2]

Tarix

Sass dastlab tomonidan ishlab chiqilgan Xempton Ketlin va Natali Vayzenbaum tomonidan ishlab chiqilgan.[4][5] Dastlabki versiyalaridan so'ng Weizenbaum va Chris Eppstein Sass-ni SassScript-da, Sass-fayllarida ishlatiladigan skript tili bilan kengaytirishni davom ettirdilar.

Asosiy dasturlar

SassScript bir nechta tillarda amalga oshirildi, e'tiborga loyiq dasturlar:

  • Asl nusxa ochiq manbali Yoqut 2006 yilda yaratilgan dastur,[6] chunki parvarish qiluvchilar yo'qligi sababli eskirgan va 2019 yil mart oyida hayot tugagan.[7][8]
  • Rasmiy ochiq manba Dart amalga oshirish.[6]
  • rasmiy ochiq manbali libSass C ++ amalga oshirish.
  • "sass" moduli sifatida nashr etilgan rasmiy JavaScript-ni amalga oshirish npm.
  • JSass, norasmiy Java amalga oshirish.[9]
  • phamlp, norasmiy SASS / SCSS dasturi PHP.[6]
  • Vaadin Java-ning Sass dasturiga ega.[10]
  • Firebug, a Firefox XUL ("meros") kengaytma veb-ishlab chiqish uchun.[11] O'shandan beri Firefox-ning o'ziga o'rnatilgan ishlab chiquvchi vositalar foydasiga bekor qilindi. Firefox 57 XUL kengaytmalarini qo'llab-quvvatlashni to'xtatgandan beri ishlamay qoldi.

Xususiyatlari

O'zgaruvchilar

Sass o'zgaruvchilarni aniqlashga imkon beradi. O'zgaruvchilar a bilan boshlanadi dollar belgisi ($). O'zgaruvchan topshiriq a bilan amalga oshiriladi yo'g'on ichak (:).[11]

SassScript to'rtta ma'lumot turini qo'llab-quvvatlaydi:[11]

  • Raqamlar (birliklarni hisobga olgan holda)
  • Iplar (tirnoq bilan yoki bo'lmasdan)
  • Ranglar (ism yoki ismlar)
  • Mantiqiy moddalar

O'zgaruvchilar bo'lishi mumkin dalillar yoki mavjud bo'lgan bir nechta natijalardan biri funktsiyalari.[12] Tarjima paytida o'zgaruvchilarning qiymatlari chiqarilgan CSS hujjatiga kiritiladi.[2]

SCSSSassTuzilgan CSS
$ asosiy rang: # 3bbfce;$ margin: 16px;.tarkib-navigatsiya {  chegara rang: $asosiy rang;  rang: qoraymoq($asosiy rang, 10%);}. chegara {  to'ldirish: $chekka / 2;  chekka: $chekka / 2;  chegara rang: $asosiy rang;}
$ asosiy rang: # 3bbfce$ margin: 16px.tarkib-navigatsiya  chegara rang: $ asosiy rang  rang: qoraymoq($ asosiy rang, 10%). chegara  to'ldirish: $ margin/2  chekka:  $ margin/2  chegara rang: $ asosiy rang
.kontent-navigatsiya {  chegara rang: # 3bbfce;  rang: # 2b9eab;}.chegara {  to'ldirish: 8px;  chekka: 8px;  chegara rang: # 3bbfce;}

Uyalash

CSS mantiqiy joylashtirishni qo'llab-quvvatlaydi, lekin kod bloklari o'zlari joylashtirilmagan. Sass ichki kodni bir-biriga kiritishga imkon beradi.[2]

SCSSSassTuzilgan CSS
stol.hl {  chekka: 2em 0;  td.ln {    matn bilan tekislash: to'g'ri;  }}li {  shrift: {    oila: serif;    vazn: qalin;    hajmi: 1.3em;  }}
stol.hl   chekka: 2em 0  td.ln     matn bilan tekislash: to'g'ri  li   shrift:     oila: serif    vazn: qalin    hajmi: 1.3em
stol.hl {  chekka: 2em 0;}stol.hl td.ln {  matn bilan tekislash: to'g'ri;}li {  shrift-oilaviy: serif;  shrift og'irligi: qalin;  shrift hajmi: 1.3em;}

Uyalashning yanada murakkab turlari, shu jumladan ism maydoni uyalar va ota-onalar murojaatlari Sass hujjatlarida muhokama qilinadi.[11]

SCSSSassTuzilgan CSS
@mixin stol tagligi {  th {    matn bilan tekislash: markaz;    shrift og'irligi: qalin;  }  td, th {    to'ldirish: 2px;  }}# ma'lumotlar {  @clude stol tagligi;}
= jadval asosi  th    matn bilan tekislash: markaz    shrift og'irligi: qalin  td, th    to'ldirish: 2px# ma'lumotlar  + stol bazasi
#ma'lumotlar th {  matn bilan tekislash: markaz;  shrift og'irligi: qalin;}#ma'lumotlar td, #ma'lumotlar th {  to'ldirish: 2px;}

Ko'chadan

Sass yordamida o'zgaruvchilar ustidan takrorlashga imkon beradi @uchun, @ har biri va @ while, o'xshash sinflar yoki identifikatorlarga ega elementlarga turli xil uslublarni qo'llash uchun ishlatilishi mumkin.

SassTuzilgan CSS
$ squareCount: 4@uchun $ i dan 1 orqali $ squareCount   # kvadrat-#{$ i}    fon rangi: qizil   kengligi: 50px * $ i   balandlik: 120px / $ i
#kvadrat-1 {  fon rangi: qizil;  kengligi: 50px;  balandlik: 120px;}#kvadrat-2 {  fon rangi: qizil;  kengligi: 100px;  balandlik: 60px;}#kvadrat-3 {  fon rangi: qizil;  kengligi: 150px;  balandlik: 40px;}

Argumentlar

Mixinlar shuningdek dalillarni qo'llab-quvvatlaydi.[2]

SassTuzilgan CSS
= chap($ dist)   suzmoq: chap  chekka-chap: $ dist# ma'lumotlar   + chap(10px)
#ma'lumotlar {  suzmoq: chap;  chekka-chap: 10px;}

Birgalikda

SassTuzilgan CSS
= jadval asosi  th    matn bilan tekislash: markaz    shrift og'irligi: qalin  td, th     to'ldirish: 2px= chap($ dist)   suzmoq: chap  chekka-chap: $ dist# ma'lumotlar   + chap(10px)  + stol bazasi
#ma'lumotlar {  suzmoq: chap;  chekka-chap: 10px;}#ma'lumotlar th {  matn bilan tekislash: markaz;  shrift og'irligi: qalin;}#ma'lumotlar td, #ma'lumotlar th {  to'ldirish: 2px;}

Selektor merosi

CSS3 esa Hujjat ob'ekti modeli (DOM) iyerarxiyasi, selektor merosiga yo'l qo'ymaydi. Sass-da, merosga @extend kalit so'zidan foydalanadigan va boshqa selektorga havola qilinadigan kod blokining ichkarisiga satr kiritish orqali erishiladi. Kengaytirilgan selektorning atributlari qo'ng'iroq qiluvchiga nisbatan qo'llaniladi.[2]

SassTuzilgan CSS
.xato  chegara: 1px # f00  fon: #fdd.error.intrusion   shrift hajmi: 1.3em  shrift og'irligi: qalin.badError   @extend .xato  chegara kengligi: 3px
.xato, .badError {  chegara: 1px # f00;  fon: #fdd;}.xato.tajovuz,.badError.tajovuz {  shrift hajmi: 1.3em;  shrift og'irligi: qalin;}.badError {  chegara kengligi: 3px;}

Sass qo'llab-quvvatlaydi ko'p meros.[11]

libSass

2012 yil HTML5 dasturchilar konferentsiyasida Sass yaratuvchisi Xempton Katlin, Catlin, Aaron Leung va muhandislik guruhi tomonidan ishlab chiqilgan Sass dasturining ochiq manba C ++ dasturini libSass-ning 1.0 versiyasini e'lon qildi. Moovweb.[13][14] Sassning amaldagi texnik xizmatchisi Kris Eppshteyn ham o'z hissasini qo'shish niyatini bildirdi.[15]

Catlinning so'zlariga ko'ra, libSass "har qanday narsaga [ped] tushirish va unda Sass bo'lishi mumkin ... Siz uni bugun Firefox-ga tashlab, Firefox-ni yaratishingiz mumkin va u o'sha erda to'planadi. Biz o'zimizning tahlilchimizni noldan yozdik buning iloji borligiga ishonch hosil qiling. "[16]

LibSass-ning dizayn maqsadlari:

  • Ishlash - Ishlab chiquvchilar Ruby-ning Sass-ga nisbatan 10 barobar tezlashishi haqida xabar berishdi.[17]
  • Osonroq integratsiya - libSass Sassni ko'proq dasturlarga qo'shishni osonlashtiradi. LibSass-dan oldin, Sass-ni tilga yoki dasturiy mahsulotga mahkam qo'shib, butun Ruby tarjimonini birlashtirish kerak edi. Aksincha, libSass statik ravishda bog'lanadigan kutubxona bo'lib, tashqi nolga bog'liqligi va C-ga o'xshash interfeysga ega bo'lib, Sassni to'g'ridan-to'g'ri boshqa dasturlash tillari va vositalariga o'rashni osonlashtiradi. Masalan, ochiq manba libSass ulanishlari endi mavjud Tugun, Boring va Yoqut.[14]
  • Moslik - libSass-ning maqsadi Sass-ning rasmiy Ruby dasturiga to'liq mos kelishdir. Ushbu maqsad 3.3-libsassda amalga oshirildi.[18]

IDE integratsiyasi

Sassning IDE integratsiyasi
IDEDasturiy ta'minotveb-sayt
Adobe Dreamweaver CC 2017 yilhttps://blogs.adobe.com/creativecloud/getting-started-with-css-preprocessors-less-and-sass/
Tutilish
EmakSCSS rejimihttps://github.com/antonj/scss-mode/
JetBrains IntelliJ IDEA (Ultimate Edition)https://www.jetbrains.com/idea/
JetBrains PhpStormhttp://www.jetbrains.com/phpstorm/
JetBrains RubyMinehttp://www.jetbrains.com/ruby/
JetBrains WebStormhttp://www.jetbrains.com/webstorm/
Microsoft Visual StudioMindscapehttp://www.mindscapehq.com/products/web-workbench
Microsoft Visual StudioSassyStudiohttp://visualstudiogallery.msdn.microsoft.com/85fa99a6-e4c6-4a1c-9f00-e6a8129b6f4d
Microsoft WebMatrixhttp://www.microsoft.com/web/
NetBeanshttp://plugins.netbeans.org/plugin/34929/scss-support
Vimhaml.ziphttp://www.vim.org/scripts/script.php?script_id=1433
Atomhttps://github.com/atom/language-sass
Visual Studio kodihttps://code.visualstudio.com/Docs/languages/css
Ajoyibhttps://github.com/P233/Syntax-highlighting-for-Sass
+ Ni tahrirlashhttps://www.editplus.com/others.html

Shuningdek qarang

Adabiyotlar

  1. ^ Oxirgi nashrlar
  2. ^ a b v d e f Media belgisi (3.2.12). "Sass - sintaktik ravishda ajoyib uslublar jadvallari". Sass-lang.com. Olingan 2014-02-23.
  3. ^ Sass - sintaktik ravishda ajoyib uslublar jadvallari Qo'llanma
  4. ^ "Sass: Sintaktik ravishda ajoyib uslublar varaqalari". sass-lang.com. Arxivlandi asl nusxasi 2013-09-01 kuni.
  5. ^ "Natali Vayzenbaumning blogi". Arxivlandi asl nusxasi 2007-10-11 kunlari.
  6. ^ a b v "Sass / Scss". Drupal.org. 2009-10-21. Olingan 2014-02-23.
  7. ^ Vayzenbaum, Natali. "Ruby Sass" Sass Blog "ning umrini tugatdi. sass.logdown.com. Olingan 2019-04-21.
  8. ^ "Sass: Ruby Sass". sass-lang.com. Olingan 2019-04-21.
  9. ^ "jsass - Sass kompilyatorining (va boshqa ba'zi yaxshi narsalar) Java dasturlari. - Google Project Hosting". Olingan 2014-02-23.
  10. ^ "SassCompiler (Vaadin 7.0.7 API)". Vaadin.com. 2013-06-06. Olingan 2014-02-23.
  11. ^ a b v d e Sass (Syntactically Awesome StyleSheets) SASS_REFERENCE
  12. ^ Modul: Sass :: Script :: Funktsiyalar Sass funktsiyalari
  13. ^ H. Katlin (2012-10-15). "Xemptonning mobil dizayndagi 6 qoidasi". HTML5 ishlab chiqaruvchilar konferentsiyasi. Olingan 2013-07-11.
  14. ^ a b M. Ketlin (2012-04-30). "libsass". Moovweb blogi. Arxivlandi asl nusxasi 2013-05-08 da. Olingan 2013-07-11.
  15. ^ C. Eppshteyn (2012-04-15). "Tweet". Olingan 2013-07-11.
  16. ^ A. Stacoviak va A. Torp (2013-06-26). "Sass, libsass, Xaml va boshqalar Xempton Ketlin bilan". Olingan 2013-07-30.
  17. ^ D. Le Nouil (2013-06-07). "Sassk va Burbon". Olingan 2013-07-11.
  18. ^ "Sass muvofiqligi". sass- moslik.github.io. Olingan 2019-11-29.

Tashqi havolalar