Theming Bootstrap
Προσαρμόστε το Bootstrap 4 με τις νέες μας ενσωματωμένες μεταβλητές Sass για καθολικές προτιμήσεις στυλ για εύκολη αλλαγή θεμάτων και στοιχείων.
Στο Bootstrap 3, η δημιουργία θεμάτων οδηγήθηκε σε μεγάλο βαθμό από παρακάμψεις μεταβλητών στο LESS, προσαρμοσμένο CSS και ένα ξεχωριστό φύλλο στυλ θέματος που συμπεριλάβαμε στα dist
αρχεία μας. Με λίγη προσπάθεια, θα μπορούσε κανείς να επανασχεδιάσει πλήρως την εμφάνιση του Bootstrap 3 χωρίς να αγγίξει τα βασικά αρχεία. Το Bootstrap 4 παρέχει μια οικεία, αλλά ελαφρώς διαφορετική προσέγγιση.
Τώρα, η δημιουργία θεμάτων ολοκληρώνεται με μεταβλητές Sass, χάρτες Sass και προσαρμοσμένο CSS. Δεν υπάρχει πλέον ειδικό φύλλο στυλ θέματος. Αντίθετα, μπορείτε να ενεργοποιήσετε το ενσωματωμένο θέμα για να προσθέσετε διαβαθμίσεις, σκιές και άλλα.
Χρησιμοποιήστε τα πηγαία αρχεία Sass για να επωφεληθείτε από μεταβλητές, χάρτες, mixins και πολλά άλλα.
Όποτε είναι δυνατόν, αποφύγετε την τροποποίηση των βασικών αρχείων του Bootstrap. Για το Sass, αυτό σημαίνει ότι δημιουργείτε το δικό σας φύλλο στυλ που εισάγει το Bootstrap, ώστε να μπορείτε να το τροποποιήσετε και να το επεκτείνετε. Υποθέτοντας ότι χρησιμοποιείτε έναν διαχειριστή πακέτων όπως το npm, θα έχετε μια δομή αρχείου που μοιάζει με αυτό:
Εάν έχετε κατεβάσει τα αρχεία πηγής μας και δεν χρησιμοποιείτε διαχειριστή πακέτων, θα θέλετε να ρυθμίσετε με μη αυτόματο τρόπο κάτι παρόμοιο με αυτήν τη δομή, διατηρώντας τα αρχεία πηγής του Bootstrap ξεχωριστά από τα δικά σας.
Στο custom.scss
, θα εισαγάγετε τα πηγαία αρχεία Sass του Bootstrap. Έχετε δύο επιλογές: να συμπεριλάβετε όλο το Bootstrap ή να επιλέξετε τα εξαρτήματα που χρειάζεστε. Ενθαρρύνουμε το τελευταίο, αν και έχετε υπόψη ότι υπάρχουν ορισμένες απαιτήσεις και εξαρτήσεις στα στοιχεία μας. Θα χρειαστεί επίσης να συμπεριλάβετε κάποια JavaScript για τις προσθήκες μας.
Με αυτήν τη ρύθμιση, μπορείτε να αρχίσετε να τροποποιείτε οποιαδήποτε από τις μεταβλητές και τους χάρτες Sass στο custom.scss
. Μπορείτε επίσης να αρχίσετε να προσθέτετε τμήματα του Bootstrap κάτω από την // Optional
ενότητα όπως απαιτείται. Προτείνουμε να χρησιμοποιήσετε την πλήρη στοίβα εισαγωγής από το bootstrap.scss
αρχείο μας ως σημείο εκκίνησης.
Κάθε μεταβλητή Sass στο Bootstrap 4 περιλαμβάνει τη !default
σημαία που σας επιτρέπει να παρακάμψετε την προεπιλεγμένη τιμή της μεταβλητής στο δικό σας Sass χωρίς να τροποποιήσετε τον πηγαίο κώδικα του Bootstrap. Αντιγράψτε και επικολλήστε μεταβλητές όπως απαιτείται, τροποποιήστε τις τιμές τους και αφαιρέστε τη !default
σημαία. Εάν μια μεταβλητή έχει ήδη εκχωρηθεί, τότε δεν θα εκχωρηθεί ξανά από τις προεπιλεγμένες τιμές στο Bootstrap.
Θα βρείτε την πλήρη λίστα με τις μεταβλητές του Bootstrap στο scss/_variables.scss
.
Οι παρακάμψεις μεταβλητών στο ίδιο αρχείο Sass μπορεί να προέρχονται πριν ή μετά τις προεπιλεγμένες μεταβλητές. Ωστόσο, κατά την παράκαμψη των αρχείων Sass, οι παρακάμψές σας πρέπει να προέρχονται πριν από την εισαγωγή των αρχείων Sass του Bootstrap.
Ακολουθεί ένα παράδειγμα που αλλάζει το background-color
και color
για το <body>
κατά την εισαγωγή και τη μεταγλώττιση του Bootstrap μέσω npm:
Επαναλάβετε όπως απαιτείται για οποιαδήποτε μεταβλητή στο 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
όπως απαιτείται.
Μπορείτε να βρείτε και να προσαρμόσετε αυτές τις μεταβλητές για βασικές καθολικές επιλογές στο scss/_variables.scss
αρχείο του Bootstrap.
Μεταβλητός | Αξίες | Περιγραφή |
---|---|---|
$spacer |
1rem (προεπιλογή) ή οποιαδήποτε τιμή > 0 |
Καθορίζει την προεπιλεγμένη τιμή διαχωριστή για τη δημιουργία προγραμματικών προγραμμάτων διαχωρισμού . |
$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 στο scss/_variables.scss
αρχείο του Bootstraps.
Ένα εκτεταμένο σύνολο γκρι μεταβλητών και ένας χάρτης 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 δεν περιορίζονται επίσης στους έγχρωμους χάρτες. Μπορείτε επίσης να δημιουργήσετε παραλλαγές απόκρισης των στοιχείων ή των βοηθητικών προγραμμάτων σας. Πάρτε για παράδειγμα τα βοηθητικά προγράμματα ευθυγράμμισης κειμένου που αποκρίνονται, όπου αναμιγνύουμε έναν @each
βρόχο για τον $grid-breakpoints
χάρτη Sass με ένα ερώτημα πολυμέσων που περιλαμβάνει.
Εάν χρειαστεί να τροποποιήσετε το $grid-breakpoints
, οι αλλαγές σας θα εφαρμοστούν σε όλους τους βρόχους που επαναλαμβάνονται σε αυτόν τον χάρτη.
Το Bootstrap 4 περιλαμβάνει περίπου δύο δωδεκάδες προσαρμοσμένες ιδιότητες (μεταβλητές) CSS στο μεταγλωττισμένο CSS του. Αυτά παρέχουν εύκολη πρόσβαση σε τιμές που χρησιμοποιούνται συνήθως, όπως τα χρώματα θέματος, τα σημεία διακοπής και οι κύριες στοίβες γραμματοσειρών όταν εργάζεστε στο Inspector του προγράμματος περιήγησής σας, σε περιβάλλον δοκιμών κώδικα ή γενικά πρωτότυπα.
Εδώ είναι οι μεταβλητές που συμπεριλαμβάνουμε (σημειώστε ότι :root
απαιτείται). Βρίσκονται στο _root.scss
αρχείο μας.
Οι μεταβλητές CSS προσφέρουν παρόμοια ευελιξία με τις μεταβλητές του Sass, αλλά χωρίς την ανάγκη μεταγλώττισης πριν από την προβολή τους στο πρόγραμμα περιήγησης. Για παράδειγμα, εδώ επαναφέρουμε τη γραμματοσειρά και τα στυλ συνδέσμων της σελίδας μας με μεταβλητές CSS.
Αν και αρχικά συμπεριλάβαμε σημεία διακοπής στις μεταβλητές μας CSS (π.χ., --breakpoint-md
), αυτά δεν υποστηρίζονται σε ερωτήματα μέσων , αλλά μπορούν ακόμα να χρησιμοποιηθούν σε σύνολα κανόνων σε ερωτήματα πολυμέσων. Αυτές οι μεταβλητές σημείου διακοπής παραμένουν στο μεταγλωττισμένο CSS για συμβατότητα προς τα πίσω, δεδομένου ότι μπορούν να χρησιμοποιηθούν από JavaScript. Μάθετε περισσότερα στην προδιαγραφή.
Ακολουθεί ένα παράδειγμα του τι δεν υποστηρίζεται:
Και εδώ είναι ένα παράδειγμα του τι υποστηρίζεται: