Theming Bootstrap
დააკონფიგურირეთ Bootstrap 4 ჩვენი ახალი ჩაშენებული Sass ცვლადებით გლობალური სტილის პრეფერენციებისთვის, თემებისა და კომპონენტების მარტივი ცვლილებებისთვის.
Bootstrap 3-ში თემის შექმნა ძირითადად განპირობებული იყო LESS-ის, მორგებული CSS-ით და ცალკე თემის სტილის ფურცლით, რომელიც ჩვენ შევიტანეთ ჩვენს dist
ფაილებში. გარკვეული ძალისხმევით, შეიძლება Bootstrap 3-ის იერსახის მთლიანად გადაკეთება ძირითადი ფაილების შეხების გარეშე. Bootstrap 4 გთავაზობთ ნაცნობ, მაგრამ ოდნავ განსხვავებულ მიდგომას.
ახლა თემის შექმნა ხორციელდება Sass ცვლადებით, Sass რუქებით და მორგებული CSS-ით. აღარ არის გამოყოფილი თემის სტილის ცხრილი; ამის ნაცვლად, შეგიძლიათ ჩართოთ ჩაშენებული თემა გრადიენტების, ჩრდილების და სხვათა დასამატებლად.
გამოიყენეთ ჩვენი წყარო Sass ფაილები, რომ ისარგებლოთ ცვლადებით, რუქებით, მიქსინებით და სხვა.
შეძლებისდაგვარად, მოერიდეთ Bootstrap-ის ძირითადი ფაილების შეცვლას. Sass-ისთვის ეს ნიშნავს საკუთარი სტილის ფურცლის შექმნას, რომელიც შემოაქვს Bootstrap-ს, რათა შეცვალოთ და გააფართოვოთ იგი. თუ ვივარაუდებთ, რომ იყენებთ პაკეტის მენეჯერს, როგორიცაა npm, გექნებათ ფაილის სტრუქტურა, რომელიც ასე გამოიყურება:
თუ თქვენ ჩამოტვირთეთ ჩვენი წყარო ფაილები და არ იყენებთ პაკეტის მენეჯერს, მოგინდებათ ხელით დააყენოთ მსგავსი სტრუქტურები და შეინახოთ Bootstrap-ის წყარო ფაილები თქვენისგან განცალკევებით.
თქვენს ში custom.scss
, თქვენ იმპორტირებთ Bootstrap-ის წყარო Sass ფაილებს. თქვენ გაქვთ ორი ვარიანტი: ჩართეთ ყველა Bootstrap, ან შეარჩიეთ თქვენთვის საჭირო ნაწილები. ჩვენ ვამხნევებთ ამ უკანასკნელს, თუმცა გაითვალისწინეთ, რომ არსებობს გარკვეული მოთხოვნები და დამოკიდებულებები ჩვენს კომპონენტებს შორის. თქვენ ასევე დაგჭირდებათ JavaScript-ის ჩართვა ჩვენი დანამატებისთვის.
ამ დაყენებით, შეგიძლიათ დაიწყოთ Sass-ის ნებისმიერი ცვლადისა და რუკის შეცვლა თქვენს custom.scss
. თქვენ ასევე შეგიძლიათ დაიწყოთ Bootstrap-ის ნაწილების დამატება // Optional
განყოფილების ქვეშ, საჭიროებისამებრ. ჩვენ გირჩევთ გამოიყენოთ სრული იმპორტის სტეკი ჩვენი bootstrap.scss
ფაილიდან, როგორც საწყისი წერტილი.
ყველა Sass ცვლადი Bootstrap 4-ში შეიცავს !default
დროშას, რომელიც საშუალებას გაძლევთ გადალახოთ ცვლადის ნაგულისხმევი მნიშვნელობა თქვენს Sass-ში Bootstrap-ის წყაროს კოდის შეცვლის გარეშე. დააკოპირეთ და ჩასვით ცვლადები საჭიროებისამებრ, შეცვალეთ მათი მნიშვნელობები და წაშალეთ !default
დროშა. თუ ცვლადი უკვე მინიჭებულია, მაშინ ის ხელახლა არ იქნება მინიჭებული Bootstrap-ში ნაგულისხმევი მნიშვნელობებით.
თქვენ ნახავთ Bootstrap-ის ცვლადების სრულ ჩამონათვალს scss/_variables.scss
.
ცვლადის უგულებელყოფა იმავე Sass ფაილში შეიძლება მოხდეს ნაგულისხმევი ცვლადების წინ ან შემდეგ. თუმცა, Sass ფაილების გადაფარვისას, თქვენი გადაფარვები უნდა მოხდეს Bootstrap-ის Sass ფაილების იმპორტამდე.
აი მაგალითი, რომელიც ცვლის background-color
და color
for- <body>
ს npm-ის საშუალებით Bootstrap-ის იმპორტისა და შედგენისას:
გაიმეორეთ საჭიროებისამებრ 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
:
ის ასევე შეიძლება გამოყენებულ იქნას კონტრასტის ერთჯერადი საჭიროებისთვის:
თქვენ ასევე შეგიძლიათ მიუთითოთ ძირითადი ფერი ჩვენი ფერადი რუქის ფუნქციებით:
შეცვალეთ Bootstrap 4 ჩვენი ჩაშენებული ცვლადების ფაილით და მარტივად გადართეთ გლობალური CSS პრეფერენციები ახალი $enable-*
Sass ცვლადებით. ცვლადის მნიშვნელობის უგულებელყოფა და npm run test
საჭიროების შემთხვევაში ხელახლა კომპილაცია.
თქვენ შეგიძლიათ იპოვოთ და დააკონფიგურიროთ ეს ცვლადები ძირითადი გლობალური პარამეტრებისთვის Bootstrap-ის scss/_variables.scss
ფაილში.
ცვლადი | ღირებულებები | აღწერა |
---|---|---|
$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-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 |
ჩართავს სტილებს ბეჭდვის ოპტიმიზაციისთვის. |
Bootstrap-ის მრავალი კომპონენტი და უტილიტა აგებულია ფერების სერიის მეშვეობით, რომლებიც განსაზღვრულია Sass რუკაზე. ეს რუკა შეიძლება შემოიფარგლოს Sass-ში, რათა სწრაფად შექმნას წესების სერია.
ყველა ფერი ხელმისაწვდომია Bootstrap 4-ში, ხელმისაწვდომია როგორც Sass ცვლადები და Sass რუკა scss/_variables.scss
ფაილში. ეს გაფართოვდება მომდევნო მცირე გამოშვებებში, რათა დაემატოს დამატებითი ჩრდილები, ისევე როგორც ნაცრისფერი ფერის პალიტრა , რომელიც ჩვენ უკვე გვაქვს.
აი, როგორ შეგიძლიათ გამოიყენოთ ისინი თქვენს Sass-ში:
ფერების სასარგებლო კლასები ასევე ხელმისაწვდომია დასაყენებლად color
და background-color
.
სამომავლოდ, ჩვენ მიზნად მივაწოდებთ Sass-ის რუქებს და ცვლადებს თითოეული ფერის ჩრდილებისთვის, როგორც ეს გავაკეთეთ ქვემოთ მოყვანილი ნაცრისფერი ფერებით.
ჩვენ ვიყენებთ ყველა ფერის ქვეჯგუფს, რათა შევქმნათ უფრო პატარა ფერის პალიტრა ფერთა სქემების გენერირებისთვის, ასევე ხელმისაწვდომია როგორც Sass ცვლადები და Sass რუკა Bootstraps scss/_variables.scss
ფაილში.
ნაცრისფერი ცვლადების ვრცელი ნაკრები და 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
, თქვენი ცვლილებები გავრცელდება ყველა მარყუჟზე, რომელიც მეორდება ამ რუკაზე.
Bootstrap 4 მოიცავს დაახლოებით ორ ათეულ CSS პერსონალურ თვისებას (ცვლადი) მის შედგენილ CSS-ში. ეს უზრუნველყოფს მარტივ წვდომას ჩვეულებრივ გამოყენებულ მნიშვნელობებზე, როგორიცაა ჩვენი თემის ფერები, წყვეტების წერტილები და ძირითადი შრიფტების დასტა თქვენი ბრაუზერის ინსპექტორში, კოდის სავარჯიშოში ან ზოგადი პროტოტიპის შექმნისას.
აქ არის ცვლადები, რომლებიც ჩვენ ჩავრთავთ (გაითვალისწინეთ, რომ :root
აუცილებელია). ისინი განთავსებულია ჩვენს _root.scss
ფაილში.
CSS ცვლადები გვთავაზობენ მსგავს მოქნილობას Sass-ის ცვლადებთან მიმართებაში, მაგრამ ბრაუზერში გადაცემამდე კომპილაციის საჭიროების გარეშე. მაგალითად, აქ ჩვენ ვაბრუნებთ ჩვენი გვერდის შრიფტს და ბმულის სტილებს CSS ცვლადებით.
მიუხედავად იმისა, რომ ჩვენ თავდაპირველად ჩავრთეთ წყვეტის წერტილები ჩვენს CSS ცვლადებში (მაგ., --breakpoint-md
), ისინი არ არის მხარდაჭერილი მედია მოთხოვნებში , მაგრამ მათი გამოყენება მაინც შესაძლებელია მედიის მოთხოვნების წესების ფარგლებში . ეს წყვეტის წერტილის ცვლადები რჩება შედგენილ CSS-ში უკანა თავსებადობისთვის, რადგან მათი გამოყენება შესაძლებელია JavaScript-ით. შეიტყვეთ მეტი სპეციფიკაში.
აქ არის მაგალითი იმისა, რაც არ არის მხარდაჭერილი:
და აქ არის მაგალითი იმისა, თუ რა არის მხარდაჭერილი: