Theming Bootstrap
Bootstrap 4ти жаңы орнотулган Sass өзгөрмөлөрү менен ыңгайлаштырыңыз, темаларды жана компоненттерди оңой өзгөртүү үчүн глобалдык стилдин артыкчылыктары.
Киришүү
Bootstrap 3те тематика негизинен LESSтеги өзгөрмөлөрдү жокко чыгаруулар, ыңгайлаштырылган CSS жана dist
файлдарыбызга кошкон өзүнчө тема стили жадыбалынан келип чыккан. Бир аз күч-аракет менен, Bootstrap 3тин көрүнүшүн негизги файлдарга тийбестен толугу менен өзгөртүүгө болот. Bootstrap 4 тааныш, бирок бир аз башкача ыкманы камсыз кылат.
Эми тематика Sass өзгөрмөлөрү, Sass карталары жана ыңгайлаштырылган CSS аркылуу ишке ашат. Мындан ары арналган тема стилдер жадыбалы жок; анын ордуна градиенттерди, көлөкөлөрдү жана башкаларды кошуу үчүн камтылган теманы иштете аласыз.
Sass
Өзгөрмөлөрдү, карталарды, аралашмаларды жана башкаларды пайдалануу үчүн биздин Sass булак файлдарын колдонуңуз. Серепчинин тегеректөөсүнө байланыштуу көйгөйлөрдүн алдын алуу үчүн түзүүдө биз Sass тегеректөө тактыгын 6га (демейки боюнча 5) чейин жогорулаттык.
Файл структурасы
Мүмкүн болушунча Bootstrapтын негизги файлдарын өзгөртүүдөн качыңыз. Sass үчүн бул Bootstrap импорттоочу өз стилдер жадыбалыңызды түзүүнү билдирет, ошондуктан сиз аны өзгөртүп жана кеңейте аласыз. Сиз npm сыяктуу пакет менеджерин колдонуп жатасыз деп ойлосоңуз, сизде төмөнкүдөй файл түзүмү болот:
Эгер сиз биздин баштапкы файлдарды жүктөп алган болсоңуз жана топтом башкаргычын колдонбосоңуз, Bootstrap булак файлдарын өзүңүздөн бөлөк кармап, ошол структурага окшош нерсени кол менен орноткуңуз келет.
Импорттоо
Сиздин custom.scss
, сиз Bootstrap булагы Sass файлдарын импорттойсуз. Сизде эки вариант бар: бардык Bootstrap камтыңыз же керектүү бөлүктөрүңүздү тандаңыз. Биз акыркыны кубаттайбыз, бирок биздин компоненттерибизде кээ бир талаптар жана көз карандылыктар бар. Ошондой эле биздин плагиндерибиз үчүн JavaScript кошушуңуз керек болот.
Ошол орнотуу менен, сиз Sass өзгөрмөлөрүнүн жана карталарыңыздын каалаганын өзгөртө баштасаңыз болот custom.scss
. // Optional
Ошондой эле зарыл болгон бөлүмдүн астына Bootstrap бөлүктөрүн кошо баштасаңыз болот . bootstrap.scss
Баштапкы чекит катары биздин файлдан толук импорттук стекти колдонууну сунуштайбыз .
Variable демейки
Bootstrap 4деги ар бир Sass өзгөрмөлөрү !default
Bootstrap'тын баштапкы кодун өзгөртпөстөн, өз Sassдагы өзгөрмөнүн демейки маанисин жокко чыгарууга мүмкүндүк берген желекти камтыйт. Керек болсо өзгөрмөлөрдү көчүрүңүз жана чаптаңыз, алардын маанилерин өзгөртүңүз жана !default
желекти алып салыңыз. Эгерде өзгөрмө мурунтан эле дайындалган болсо, анда ал Bootstrap ичиндеги демейки маанилер боюнча кайра дайындалбайт.
Bootstrap өзгөрмөлөрүнүн толук тизмесин scss/_variables.scss
.
Бир эле Sass файлынын ичиндеги өзгөрмөлөрдү жокко чыгаруулар демейки өзгөрмөлөргө чейин же кийин келиши мүмкүн. Бирок, Sass файлдарын жокко чыгарганда, Bootstrap'тин Sass файлдарын импорттоодон мурун сиздин жокко чыгарууларыңыз келиши керек.
Бул жерде Bootstrapти npm аркылуу импорттоо жана компиляциялоо background-color
үчүн color
өзгөргөн мисал келтирилген :<body>
Bootstrap ичиндеги каалаган өзгөрмө үчүн, анын ичинде төмөндөгү глобалдык опциялар үчүн зарыл болсо кайталаңыз.
Карталар жана циклдер
Bootstrap 4 бир нече Sass карталарын камтыйт, алар тиешелүү CSS үй-бүлөлөрүн түзүүнү жеңилдетет. Биз Sass карталарын түстөрүбүз, тордун үзүлүү чекиттери жана башкалар үчүн колдонобуз. Sass өзгөрмөлөрү сыяктуу эле, бардык Sass карталары !default
желекти камтыйт жана аларды жокко чыгарууга жана узартууга болот.
Биздин кээ бир Sass карталары демейки боюнча бош карталарга бириктирилген. Бул берилген Sass картасын оңой кеңейтүү үчүн жасалат, бирок картадан нерселерди алып салуу бир аз кыйыныраак болот.
Картаны өзгөртүү
Биздин картада болгон түстү өзгөртүү үчүн $theme-colors
, ыңгайлаштырылган Sass файлыңызга төмөнкүлөрдү кошуңуз:
Картага кошуу
дегенге жаңы түс $theme-colors
кошуу үчүн, жаңы ачкычты жана маанини кошуңуз:
Картадан алып салуу
$theme-colors
же башка картадан түстөрдү алып салуу үчүн колдонуңуз map-remove
. Аны биздин талаптар менен варианттардын ортосуна киргизишиңиз керек экенин унутпаңыз:
Керектүү ачкычтар
Bootstrap Sass карталарында белгилүү бир ачкычтардын болушун болжолдойт, анткени биз аларды өзүбүз колдонуп жана кеңейтебиз. Камтылган карталарды ыңгайлаштырганыңызда, белгилүү Sass картасынын ачкычы колдонулуп жаткан каталарга туш болушуңуз мүмкүн.
Мисалы, биз шилтемелер, баскычтар жана форма мамлекеттери үчүн primary
, success
, жана danger
баскычтарын колдонобуз. $theme-colors
Бул ачкычтардын маанилерин алмаштыруу эч кандай көйгөй жаратпашы керек, бирок аларды алып салуу Sass компиляция көйгөйлөрүн жаратышы мүмкүн. Мындай учурларда, ошол баалуулуктарды колдонгон Sass кодун өзгөртүү керек болот.
Функциялар
Bootstrap бир нече Sass функцияларын колдонот, бирок жалпы тематикага бир чакан топтому гана тиешелүү. Биз түстүү карталардан баалуулуктарды алуу үчүн үч функцияны коштук:
Булар сизге Sass картасынан бир түстү тандоого мүмкүндүк берет, ошондой эле сиз v3 тен түс өзгөрмөсүн кантип колдонсоңуз болот.
Бизде картадан түстүн белгилүү бир деңгээлин алуу үчүн дагы бир функция бар . $theme-colors
Терс деңгээлдеги маанилер түстү ачык кылат, ал эми жогорку деңгээлдер караңгылайт.
Иш жүзүндө, сиз функцияны чакырып, эки параметрден өтүңүз: түстүн аталышы $theme-colors
(мисалы, негизги же коркунучтуу) жана сандык деңгээл.
Кошумча функцияларды келечекте же кошумча Sass карталары үчүн деңгээл функцияларын түзүү үчүн өзүңүздүн жеке Sass кошсоңуз болот, ал тургай, эгер сиз кененирээк болгуңуз келсе, жалпы.
Түс контраст
Bootstrap программасына биз киргизген кошумча функциялардын бири - түс контраст функциясы color-yiq
. Ал көрсөтүлгөн негизги түскө негизделген ачык ( ) же кара ( ) контраст түсүн автоматтык түрдө кайтаруу үчүн YIQ түс мейкиндигин колдонот . Бул функция бир нече класстарды түзүп жаткан аралашмалар же циклдер үчүн өзгөчө пайдалуу.#fff
#111
Мисалы, биздин $theme-colors
картадан түстүү үлгүлөрдү түзүү үчүн:
Ал ошондой эле бир жолку контраст муктаждыктары үчүн колдонулушу мүмкүн:
Сиз ошондой эле түстүү карта функцияларыбыз менен негизги түстү көрсөтө аласыз:
Sass параметрлери
Bootstrap 4ти биздин орнотулган жеке өзгөрмөлөр файлыбыз менен ыңгайлаштырыңыз жана жаңы $enable-*
Sass өзгөрмөлөрү менен глобалдык CSS артыкчылыктарын оңой которуштуруу. Өзгөрмөнүн маанисин жокко чыгарып npm run test
, керек болсо кайра компиляциялаңыз.
scss/_variables.scss
Bootstrap файлындагы негизги глобалдык параметрлер үчүн бул өзгөрмөлөрдү таап, ыңгайлаштыра аласыз .
Variable | баалуулуктар | Description |
---|---|---|
$spacer |
1rem (демейки) же кандайдыр бир маани > 0 |
Биздин spacer утилиталарын программалык түрдө түзүү үчүн демейки spacer маанисин көрсөтөт . |
$enable-rounded |
true (демейки) жеfalse |
border-radius Ар кандай компоненттерде алдын ала аныкталган стилдерди иштетет . |
$enable-shadows |
true же false (демейки) |
box-shadow Ар кандай компоненттерде алдын ала аныкталган стилдерди иштетет . |
$enable-gradients |
true же false (демейки) |
background-image Ар кандай компоненттердеги стилдер аркылуу алдын ала аныкталган градиенттерди иштетет . |
$enable-transitions |
true (демейки) жеfalse |
transition Ар кандай компоненттерде алдын ала аныкталган s иштетет . |
$enable-prefers-reduced-motion-media-query |
true (демейки) жеfalse |
Колдонуучулардын браузеринин/иштөө тутумунун артыкчылыктарынын негизинде белгилүү бир анимацияларды/өткөөлдөрдү басуучу prefers-reduced-motion медиа суроону иштетет . |
$enable-hover-media-query |
true же false (демейки) |
Эскирген |
$enable-grid-classes |
true (демейки) жеfalse |
Тор системасы үчүн CSS класстарын түзүүнү иштетет (мисалы, .container , .row , .col-md-1 , ж.б.). |
$enable-caret |
true (демейки) жеfalse |
Псевдо элементтин каретасын иштетет .dropdown-toggle . |
$enable-print-styles |
true (демейки) жеfalse |
Басып чыгарууну оптималдаштыруу үчүн стилдерди иштетет. |
$enable-validation-icons |
true (демейки) жеfalse |
background-image Тексттик киргизүүлөрдөгү иконаларды жана валидация абалдары үчүн айрым ыңгайлаштырылган формаларды иштетет . |
Түс
Bootstrapтин ар кандай компоненттеринин жана утилиталарынын көбү Sass картасында аныкталган түстөрдүн сериясы аркылуу курулган. Бир катар эрежелер топтомун тез түзүү үчүн бул картаны Sass'та айлантса болот.
Бардык түстөр
Bootstrap 4те жеткиликтүү бардык түстөр Sass өзгөрмөлөрү жана scss/_variables.scss
файлдагы Sass картасы катары жеткиликтүү. Бул биз киргизген боз палитрага окшоп, кошумча көлөкөлөрдү кошуу үчүн кийинки кичинекей чыгарылыштарда кеңейтилет .
Буларды Sassыңызда кантип колдонсоңуз болот:
Түстүү пайдалуу класстар да жөндөө color
жана background-color
.
Келечекте биз төмөндөгү боз түстөр менен кылгандай, ар бир түстүн көлөкөлөрү үчүн Sass карталарын жана өзгөрмөлөрүн берүүнү максат кылабыз.
Тема түстөр
Биз түс схемаларын түзүү үчүн кичирээк түс палитрасын түзүү үчүн бардык түстөрдүн бир бөлүгүн колдонобуз, ошондой эле Sass өзгөрмөлөрү жана Bootstraps scss/_variables.scss
файлында Sass картасы катары жеткиликтүү.
Боз
Боз өзгөрмөлөрдүн кеңири топтому жана Sass картасы scss/_variables.scss
сиздин долбооруңуздагы боздун ырааттуу көлөкөлөрү үчүн. Көңүл буруңуз, бул нейтралдуу боз түскө караганда, назик көк тонго умтулган “муздак боз түстөр”.
ичинде scss/_variables.scss
сиз Bootstrap түс өзгөрмөлөрүн жана Sass картасын таба аласыз. $colors
Бул жерде Sass картасынын мисалы :
Картадагы маанилерди кошуп, алып салыңыз же өзгөртүңүз, алар башка көптөгөн компоненттерде кантип колдонулуп жатканын жаңыртыңыз. Тилекке каршы, азыркы учурда ар бир компонент бул Sass картасын колдоно бербейт. Келечектеги жаңыртуулар муну жакшыртууга аракет кылат. Ага чейин, ${color}
өзгөрмөлөрдү жана бул Sass картасын колдонууну пландаштырыңыз.
Компоненттер
Bootstrapтин көптөгөн компоненттери жана утилиталары @each
Sass картасынын үстүнөн кайталануучу циклдер менен курулган. Бул биздин компоненттин $theme-colors
варианттарын түзүү жана ар бир үзгүлтүккө учуратуу үчүн жооп берүүчү варианттарды түзүү үчүн өзгөчө пайдалуу. Бул Sass карталарын ыңгайлаштырганыңызда жана кайра компиляциялаганыңызда, бул циклдерде чагылдырылган өзгөртүүлөрүңүздү автоматтык түрдө көрөсүз.
Модификаторлор
Bootstrap компоненттеринин көбү база-модификатор классынын ыкмасы менен курулган. Бул стилдин басымдуу бөлүгү базалык класска камтылганын билдирет (мисалы, .btn
), ал эми стилдик вариациялар модификациялоочу класстар менен чектелет (мисалы, .btn-danger
). $theme-colors
Бул өзгөрткүч класстар биздин өзгөрткүч класстарыбыздын санын жана атын ыңгайлаштыруу үчүн картадан курулган .
Компонентке жана бардык фондо утилиталарга $theme-colors
модфикаторлорду түзүү үчүн картаны кантип айлантканыбыздын эки мисалы ..alert
.bg-*
Жооптуу
Бул Sass илмектери түстүү карталар менен эле чектелбейт. Сиз ошондой эле компоненттериңиздин же утилиталарыңыздын жооп берүүчү вариацияларын түзө аласыз. Мисалы, биздин жооп берүүчү текстти тегиздөө утилиталарын алалы, анда биз Sass картасы үчүн @each
циклди $grid-breakpoints
медиа суроо менен аралаштырабыз.
Эгер сиздин версияңызды өзгөртүү керек болсо $grid-breakpoints
, сиздин өзгөртүүлөрүңүз ошол картада кайталануучу бардык циклдерге колдонулат.
CSS өзгөрмөлөрү
Bootstrap 4 өзүнүн компиляцияланган CSSинде жыйырмага жакын CSS ыңгайлаштырылган касиеттерин (өзгөрмөлөрдү) камтыйт. Булар браузериңиздин инспекторунда, коддун кум чөйрөсүндө же жалпы прототипте иштөөдө тема түстөрүбүз, үзгүлтүккө учуроо чекиттерибиз жана негизги шрифт стектери сыяктуу кеңири колдонулган баалуулуктарга оңой жетүүнү камсыз кылат.
Жеткиликтүү өзгөрмөлөр
Бул жерде биз киргизген өзгөрмөлөр ( :root
талап кылынарын эске алыңыз). Алар биздин _root.scss
файлда жайгашкан.
Мисалдар
CSS өзгөрмөлөрү Sass'тын өзгөрмөлөрүнө окшош ийкемдүүлүктү сунуштайт, бирок браузерге кызмат кылуудан мурун компиляцияны талап кылбастан. Мисалы, бул жерде биз баракчабыздын шрифттерин жана CSS өзгөрмөлөрү менен шилтеме стилдерин баштапкы абалга келтирип жатабыз.
Үзүлүүчү өзгөрмөлөр
Адегенде биз CSS өзгөрмөлөрүбүзгө үзүлүүчү чекиттерди кошконубуз менен (мисалы, --breakpoint-md
), булар медиа сурамдарда колдоого алынбайт , бирок алар медиа сурамдарында эрежелер топтомунда дагы эле колдонулушу мүмкүн . Бул үзүлүүчү өзгөрмөлөр JavaScript тарабынан колдонулушу мүмкүн болгон шартта артка шайкештик үчүн компиляцияланган CSSде кала берет. спецификациядан көбүрөөк маалымат алыңыз .
Бул жерде колдоого алынбаган нерселердин мисалы :
Бул жерде колдоого алынган мисал :