API Utility
API-и утилита як абзори ба Sass асосёфта барои тавлиди синфҳои коммуналӣ мебошад.
Утилитҳои Bootstrap бо API утилитаи мо тавлид мешаванд ва онҳоро барои тағир додан ё васеъ кардани маҷмӯи пешфарзии синфҳои утилитаҳои мо тавассути Sass истифода бурдан мумкин аст. API-и хидматрасонии мо ба як қатор харитаҳои Sass ва функсияҳо барои тавлиди оилаҳои синфҳо бо имконоти гуногун асос ёфтааст. Агар шумо бо харитаҳои Sass шинос набошед, барои оғоз кардани ҳуҷҷатҳои расмии Sass мутолиа кунед .
Харита $utilities
дорои тамоми хидматҳои мо мебошад ва баъдтар бо $utilities
харитаи фармоишии шумо, агар мавҷуд бошад, якҷоя карда мешавад. Харитаи хидматрасонӣ рӯйхати калидии гурӯҳҳои коммуналиро дар бар мегирад, ки имконоти зеринро қабул мекунанд:
Варианти | Навъи | Арзиши пешфарз | Тавсифи |
---|---|---|---|
property |
Талаб карда мешавад | – | Номи амвол, ин метавонад сатр ё массиви сатр бошад (масалан, бандҳои уфуқӣ ё маржа). |
values |
Талаб карда мешавад | – | Рӯйхати арзишҳо ё харита, агар шумо нахоҳед, ки номи синф бо арзиш якхела бошад. Агар null ҳамчун калиди харита истифода шавад, class ба номи синф пешнавис карда намешавад. |
class |
Ихтиёрӣ | нул | Номи синфи тавлидшуда. Агар таъмин нашуда бошад ва property массиви сатр бошад, class пешфарз ба унсури якуми массив муқаррар карда property мешавад. Агар дода нашуда бошад ва property сатр бошад, values калидҳо барои class номҳо истифода мешаванд. |
css-var |
Ихтиёрӣ | false |
Мантиқӣ барои тавлиди тағирёбандаҳои CSS ба ҷои қоидаҳои CSS. |
css-variable-name |
Ихтиёрӣ | нул | Номи фармоишии ғайрипрефикси барои тағирёбандаи CSS дар дохили маҷмӯи қоидаҳо. |
local-vars |
Ихтиёрӣ | нул | Харитаи тағирёбандаҳои маҳаллии CSS барои тавлиди илова ба қоидаҳои CSS. |
state |
Ихтиёрӣ | нул | Рӯйхати вариантҳои псевдосинфи (масалан, :hover ё :focus ) барои тавлид. |
responsive |
Ихтиёрӣ | false |
Лоиқӣ нишон медиҳад, ки оё синфҳои ҷавобгӯ бояд тавлид шаванд. |
rfs |
Ихтиёрӣ | false |
Лоиқӣ барои имкон додани миқёси моеъ бо RFS . |
print |
Ихтиёрӣ | false |
Лоиқӣ нишон медиҳад, ки оё синфҳои чопӣ бояд тавлид шаванд. |
rtl |
Ихтиёрӣ | true |
Мантиқӣ нишон медиҳад, ки оё утилита бояд дар RTL нигоҳ дошта шавад. |
API шарҳ дод
Ҳама тағирёбандаҳои коммуналӣ ба $utilities
тағирёбанда дар ҷадвали услуби мо илова карда мешаванд _utilities.scss
. Ҳар як гурӯҳи хидматрасониҳо чунин менамояд:
$utilities: (
"opacity": (
property: opacity,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Ки инҳоро мебарорад:
.opacity-0 { opacity: 0; }
.opacity-25 { opacity: .25; }
.opacity-50 { opacity: .5; }
.opacity-75 { opacity: .75; }
.opacity-100 { opacity: 1; }
Амвол
Калиди зарурӣ property
бояд барои ҳама гуна утилита муқаррар карда шавад ва он бояд дорои хосияти дурусти CSS бошад. Ин амвол дар маҷмӯи қоидаҳои утилитаи тавлидшуда истифода мешавад. Вақте ки class
калид партофта мешавад, он инчунин ҳамчун номи синфи пешфарз хизмат мекунад. Фоидаро баррасӣ кунед text-decoration
:
$utilities: (
"text-decoration": (
property: text-decoration,
values: none underline line-through
)
);
Натиҷа:
.text-decoration-none { text-decoration: none !important; }
.text-decoration-underline { text-decoration: underline !important; }
.text-decoration-line-through { text-decoration: line-through !important; }
Арзишҳо
Калидро истифода баред, values
то муайян кунед, ки кадом арзишҳои муайяншуда property
бояд дар номҳо ва қоидаҳои синфи тавлидшуда истифода шаванд. Метавонад рӯйхат ё харита бошад (дар утилитаҳо ё дар тағирёбандаи Sass муқаррар карда шудааст).
Ҳамчун рӯйхат, ба монанди text-decoration
утилитаҳо :
values: none underline line-through
Ҳамчун харита, ба монанди opacity
утилитаҳо :
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
Ҳамчун як тағирёбандаи Sass, ки рӯйхат ё харитаро муқаррар мекунад, ба монанди position
хидматҳои мо :
values: $position-values
Синф
class
Имкониятро барои тағир додани префикси синф, ки дар CSS тартиб дода шудааст, истифода баред . Масалан, барои тағир додан .opacity-*
аз .o-*
:
$utilities: (
"opacity": (
property: opacity,
class: o,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Натиҷа:
.o-0 { opacity: 0 !important; }
.o-25 { opacity: .25 !important; }
.o-50 { opacity: .5 !important; }
.o-75 { opacity: .75 !important; }
.o-100 { opacity: 1 !important; }
Агар , барои ҳар як калид class: null
синфҳо тавлид мекунад :values
$utilities: (
"visibility": (
property: visibility,
class: null,
values: (
visible: visible,
invisible: hidden,
)
)
);
Натиҷа:
.visible { visibility: visible !important; }
.invisible { visibility: hidden !important; }
Утилитҳои тағирёбандаи CSS
Опсияи css-var
логикиро ба танзим гузоред ва API ба ҷои қоидаҳои true
муқаррарӣ тағирёбандаҳои маҳаллии CSS-ро барои селектори додашуда тавлид мекунад . property: value
Иловаи ихтиёрӣ css-variable-name
барои гузоштани номи тағирёбандаи CSS аз номи синф.
.text-opacity-*
Хизматҳои коммуналии моро ба назар гиред . Агар мо опсияро илова css-variable-name
кунем, мо баромади фармоишӣ мегирем.
$utilities: (
"text-opacity": (
css-var: true,
css-variable-name: text-alpha,
class: text-opacity,
values: (
25: .25,
50: .5,
75: .75,
100: 1
)
),
);
Натиҷа:
.text-opacity-25 { --bs-text-alpha: .25; }
.text-opacity-50 { --bs-text-alpha: .5; }
.text-opacity-75 { --bs-text-alpha: .75; }
.text-opacity-100 { --bs-text-alpha: 1; }
Тағйирёбандаҳои маҳаллии CSS
local-vars
Имкониятро барои муайян кардани харитаи Sass истифода баред , ки тағирёбандаҳои маҳаллии CSS-ро дар маҷмӯи қоидаҳои синфи хидматрасон тавлид кунад. Лутфан қайд кунед, ки он метавонад кори иловагиро барои истеъмоли он тағирёбандаҳои маҳаллии CSS дар қоидаҳои CSS тавлидшуда талаб кунад. Масалан, .bg-*
хизматрасониҳои моро дида бароед:
$utilities: (
"background-color": (
property: background-color,
class: bg,
local-vars: (
"bg-opacity": 1
),
values: map-merge(
$utilities-bg-colors,
(
"transparent": transparent
)
)
)
);
Натиҷа:
.bg-primary {
--bs-bg-opacity: 1;
background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
}
Штатхо
state
Имкониятро барои тавлиди вариантҳои псевдосинф истифода баред . Мисолҳои псевдосинфҳо :hover
ва :focus
. Вақте ки рӯйхати иёлотҳо пешниҳод карда мешаванд, барои он псевдокласс номҳои синфӣ сохта мешаванд. Масалан, барои тағир додани шаффофият дар мавқеъ, илова кунед state: hover
ва шумо .opacity-hover:hover
дар CSS-и тартибдодаи худ хоҳед гирифт.
Ба якчанд синфҳои псевдо-синфҳо лозим аст? Рӯйхати аз фосила ҷудошударо истифода баред: state: hover focus
.
$utilities: (
"opacity": (
property: opacity,
class: opacity,
state: hover,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Натиҷа:
.opacity-0-hover:hover { opacity: 0 !important; }
.opacity-25-hover:hover { opacity: .25 !important; }
.opacity-50-hover:hover { opacity: .5 !important; }
.opacity-75-hover:hover { opacity: .75 !important; }
.opacity-100-hover:hover { opacity: 1 !important; }
Ҷавобгар
responsive
Барои тавлиди утилитаҳои ҷавобгӯ (масалан, .opacity-md-25
) дар тамоми нуқтаҳои буриш мантиқиро илова кунед .
$utilities: (
"opacity": (
property: opacity,
responsive: true,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Натиҷа:
.opacity-0 { opacity: 0 !important; }
.opacity-25 { opacity: .25 !important; }
.opacity-50 { opacity: .5 !important; }
.opacity-75 { opacity: .75 !important; }
.opacity-100 { opacity: 1 !important; }
@media (min-width: 576px) {
.opacity-sm-0 { opacity: 0 !important; }
.opacity-sm-25 { opacity: .25 !important; }
.opacity-sm-50 { opacity: .5 !important; }
.opacity-sm-75 { opacity: .75 !important; }
.opacity-sm-100 { opacity: 1 !important; }
}
@media (min-width: 768px) {
.opacity-md-0 { opacity: 0 !important; }
.opacity-md-25 { opacity: .25 !important; }
.opacity-md-50 { opacity: .5 !important; }
.opacity-md-75 { opacity: .75 !important; }
.opacity-md-100 { opacity: 1 !important; }
}
@media (min-width: 992px) {
.opacity-lg-0 { opacity: 0 !important; }
.opacity-lg-25 { opacity: .25 !important; }
.opacity-lg-50 { opacity: .5 !important; }
.opacity-lg-75 { opacity: .75 !important; }
.opacity-lg-100 { opacity: 1 !important; }
}
@media (min-width: 1200px) {
.opacity-xl-0 { opacity: 0 !important; }
.opacity-xl-25 { opacity: .25 !important; }
.opacity-xl-50 { opacity: .5 !important; }
.opacity-xl-75 { opacity: .75 !important; }
.opacity-xl-100 { opacity: 1 !important; }
}
@media (min-width: 1400px) {
.opacity-xxl-0 { opacity: 0 !important; }
.opacity-xxl-25 { opacity: .25 !important; }
.opacity-xxl-50 { opacity: .5 !important; }
.opacity-xxl-75 { opacity: .75 !important; }
.opacity-xxl-100 { opacity: 1 !important; }
}
Чоп кардан
Даргиронидани print
хосият инчунин синфҳои утилитаро барои чоп тавлид мекунад, ки танҳо дар дохили @media print { ... }
дархости медиа истифода мешаванд.
$utilities: (
"opacity": (
property: opacity,
print: true,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Натиҷа:
.opacity-0 { opacity: 0 !important; }
.opacity-25 { opacity: .25 !important; }
.opacity-50 { opacity: .5 !important; }
.opacity-75 { opacity: .75 !important; }
.opacity-100 { opacity: 1 !important; }
@media print {
.opacity-print-0 { opacity: 0 !important; }
.opacity-print-25 { opacity: .25 !important; }
.opacity-print-50 { opacity: .5 !important; }
.opacity-print-75 { opacity: .75 !important; }
.opacity-print-100 { opacity: 1 !important; }
}
Муҳимият
Ҳама утилитҳои аз ҷониби API тавлидшуда дорои он мебошанд !important
, ки онҳо ҷузъҳо ва синфҳои тағирдиҳандаро мувофиқи пешбинишуда бекор мекунанд. Шумо метавонед ин танзимотро дар саросари ҷаҳон бо $enable-important-utilities
тағирёбанда иваз кунед (пешфарз ба true
).
Истифодаи API
Акнун, ки шумо бо чӣ гуна кор кардани утилитаҳои API шинос ҳастед, омӯзед, ки чӣ тавр илова кардани синфҳои фармоишии худ ва тағир додани утилитаҳои пешфарзии моро омӯзед.
Утилитҳоро бекор кунед
Утилитҳои мавҷударо бо истифода аз ҳамон калид бекор кунед. Масалан, агар шумо хоҳед, ки синфҳои иловагии хидматрасонии изофӣ дошта бошед, шумо метавонед ин корро кунед:
$utilities: (
"overflow": (
responsive: true,
property: overflow,
values: visible hidden scroll auto,
),
);
Иловаи коммуналӣ
Утилитаҳои нав метавонанд ба $utilities
харитаи пешфарз бо map-merge
. Боварӣ ҳосил кунед, ки файлҳои Sass лозимии мо ва _utilities.scss
аввал ворид карда мешаванд, пас map-merge
барои илова кардани утилитаҳои иловагии худ -ро истифода баред. Масалан, дар ин ҷо чӣ гуна як cursor
утилитаи ҷавобгӯ бо се арзиш илова карда мешавад.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities,
(
"cursor": (
property: cursor,
class: cursor,
responsive: true,
values: auto pointer grab,
)
)
);
@import "bootstrap/scss/utilities/api";
Утилитҳоро тағир диҳед
Утилитҳои мавҷударо дар $utilities
харитаи пешфарз бо map-get
ва map-merge
вазифаҳо тағир диҳед. Дар мисоли дар поён овардашуда, мо ба width
хидматҳои коммуналӣ арзиши иловагӣ илова мекунем. Бо ҳарфи ибтидоӣ оғоз кунед map-merge
ва сипас муайян кунед, ки кадом утилитаро тағир додан мехоҳед. "width"
Аз он ҷо харитаи лонаро бо он гиред map-get
, то интихобҳо ва арзишҳои утилитаро дастрас ва тағир диҳед.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities,
(
"width": map-merge(
map-get($utilities, "width"),
(
values: map-merge(
map-get(map-get($utilities, "width"), "values"),
(10: 10%),
),
),
),
)
);
@import "bootstrap/scss/utilities/api";
Ҷавобгариро фаъол созед
Шумо метавонед синфҳои ҷавобгӯро барои маҷмӯи мавҷудаи утилитаҳо фаъол созед, ки дар айни замон бо нобаёнӣ ҷавобгӯ нестанд. Масалан, барои border
посухгӯии синфҳо:
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities, (
"border": map-merge(
map-get($utilities, "border"),
( responsive: true ),
),
)
);
@import "bootstrap/scss/utilities/api";
Ин ҳоло вариантҳои ҷавобии .border
ва .border-0
барои ҳар як нуқтаи қатъиро тавлид мекунад. CSS-и тавлидшудаи шумо чунин хоҳад буд:
.border { ... }
.border-0 { ... }
@media (min-width: 576px) {
.border-sm { ... }
.border-sm-0 { ... }
}
@media (min-width: 768px) {
.border-md { ... }
.border-md-0 { ... }
}
@media (min-width: 992px) {
.border-lg { ... }
.border-lg-0 { ... }
}
@media (min-width: 1200px) {
.border-xl { ... }
.border-xl-0 { ... }
}
@media (min-width: 1400px) {
.border-xxl { ... }
.border-xxl-0 { ... }
}
Номи утилитаҳоро иваз кунед
Утилитҳои v4 гум кардаед ё ба конвенсияи дигари номгузорӣ одат кардаед? API-и утилитҳоро метавон барои бекор кардани натиҷаи утилитаи class
додашуда истифода бурд, масалан, барои иваз кардани номи .ms-*
утилитаҳо ба oldish .ml-*
:
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities, (
"margin-start": map-merge(
map-get($utilities, "margin-start"),
( class: ml ),
),
)
);
@import "bootstrap/scss/utilities/api";
Утилитҳоро хориҷ кунед
Ҳама гуна утилитаҳои пешфарзро бо map-remove()
функсияи Sass хориҷ кунед .
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
// Remove multiple utilities with a comma-separated list
$utilities: map-remove($utilities, "width", "float");
@import "bootstrap/scss/utilities/api";
Шумо инчунин метавонед map-merge()
функсияи Sass -ро истифода баред ва калиди гурӯҳро null
барои хориҷ кардани утилита таъин кунед.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities,
(
"width": null
)
);
@import "bootstrap/scss/utilities/api";
Илова кардан, хориҷ кардан, тағир додан
map-merge()
Шумо метавонед дар як вақт бо функсияи Sass бисёр утилитҳоро илова, хориҷ ва тағир диҳед . Ин аст, ки чӣ тавр шумо метавонед мисолҳои қаблиро дар як харитаи калонтар якҷоя кунед.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities,
(
// Remove the `width` utility
"width": null,
// Make an existing utility responsive
"border": map-merge(
map-get($utilities, "border"),
( responsive: true ),
),
// Add new utilities
"cursor": (
property: cursor,
class: cursor,
responsive: true,
values: auto pointer grab,
)
)
);
@import "bootstrap/scss/utilities/api";
Барномаро дар RTL хориҷ кунед
Баъзе ҳолатҳои канорӣ ороиши RTL-ро душвор мегардонанд , ба монанди танаффусҳои сатр бо забони арабӣ. Ҳамин тариқ, утилитаҳо метавонанд аз баромади RTL бо гузоштани rtl
опсия false
:
$utilities: (
"word-wrap": (
property: word-wrap word-break,
class: text,
values: (break: break-word),
rtl: false
),
);
Натиҷа:
/* rtl:begin:remove */
.text-break {
word-wrap: break-word !important;
word-break: break-word !important;
}
/* rtl:end:remove */
Ба шарофати директиваи назорати RTLCSSremove
, ин дар RTL чизе намедиҳад .