Jak zmienić kolor podstawowy bootstrapa?

93

Czy można zmienić kolor podstawowy bootstrapa na kolor marki? W moim przypadku używam papierowego motywu Bootswatch.

ashishjmeshram
źródło
1
Możliwy duplikat Jak zmienić kolor btn w Bootstrap
TylerH
Tak, po prostu nadpisz to w swoim niestandardowym pliku CSS, ale będziesz musiał zastosować wiele różnych reguł dla każdego elementu i ich stanów (aktywny, najechanie, skupienie itp.)
Lee
3
Zamiast zastępować
blurfus

Odpowiedzi:

94

Aktualizacja 2020 dla Bootstrap 4

Aby zmienić podstawowy lub dowolny z kolorów motywu w Bootstrap 4 SASS, ustaw odpowiednie zmienne przed importowaniem bootstrap.scss. To pozwala twojemu niestandardowemu scss nadpisać! Domyślne wartości ...

$primary: purple;
$danger: red;

@import "bootstrap";

Demo: https://codeply.com/go/f5OmhIdre3


W niektórych przypadkach możesz chcieć ustawić nowy kolor z innej istniejącej zmiennej Bootstrap. W tym celu @ zaimportuj najpierw funkcje i zmienne, aby można było się do nich odwoływać w dostosowaniach ...

/* import the necessary Bootstrap files */
@import "bootstrap/functions";
@import "bootstrap/variables";

$theme-colors: (
  primary: $purple
);

/* finally, import Bootstrap */
@import "bootstrap";

Demo: https://codeply.com/go/lobGxGgfZE


Zobacz także: ta odpowiedź , ta odpowiedź lub zmiana koloru przycisku w (CSS lub SASS)


Możliwa jest również zmiana koloru podstawowego za pomocą samego CSS, ale wymaga to wielu dodatkowych CSS, ponieważ istnieje wiele -primaryodmian (btn-primary, alert-primary, bg-primary, text-primary, table-primary, border-primary, itp. ...), a niektóre z tych klas mają niewielkie różnice kolorystyczne w granicach, najechaniu kursorem i stanach aktywnych. Dlatego jeśli musisz używać CSS, lepiej jest użyć jednego docelowego komponentu, takiego jak zmiana podstawowego koloru przycisku .

Te rozwiązania będą działać również dla Bootstrap 5 alpha

Zim
źródło
Dla tych nowych do SASS i SCSS jak ja ... Proszę sprawdzić npm„s gulp, aby zakończyć etap kompilacji.
Chris Conlan,
2
@Chris Why? Skrypty budujące npm Bootstrap są dołączone do źródła. Pełną listę znajdziesz w pliku package.json.
John E
1
Nie jest programistą front-end. Dokładnie to, co powiedzieli mi doktorzy mojego tematu. Skasuję, jeśli to nie ma sensu.
Chris Conlan
Więc korzystanie z CDN wymaga tylko zmiany CSS ( wersja pierwotna ), jak podejrzewam?
Erik Philips
Dla tych z nas, którzy są ignorantami SASS, gdzie ustawiamy podstawową wartość $ i wydajemy import "bootstrap" ;?
Steven Frank
28

można się udać na dwa sposoby

http://getbootstrap.com/customize/ 

i zmień kolor w tych ustawieniach i pobierz dostosowany bootstrap.

Lub możesz użyć Sass w tej wersji https://github.com/twbs/bootstrap-sass i zaimportować do swoich zasobów sass / stylesheets / _bootstrap.scss, ale przed zaimportowaniem możesz zmienić domyślne kolory zmiennych

//== Colors
//
//## Gray and brand colors for use across Bootstrap.

$gray-base:              #000 !default;
$gray-darker:            lighten($gray-base, 13.5%) !default; // #222
$gray-dark:              lighten($gray-base, 20%) !default;   // #333
$gray:                   lighten($gray-base, 33.5%) !default; // #555
$gray-light:             lighten($gray-base, 46.7%) !default; // #777
$gray-lighter:           lighten($gray-base, 93.5%) !default; // #eee

$brand-primary:         darken(#428bca, 6.5%) !default; // #337ab7
$brand-success:         #5cb85c !default;
$brand-info:            #5bc0de !default;
$brand-warning:         #f0ad4e !default;
$brand-danger:          #d9534f !default;


//== Scaffolding
//
//## Settings for some of the most global styles.

//** Background color for `<body>`.
$body-bg:               #fff !default;
//** Global text color on `<body>`.
$text-color:            $gray-dark !default;

//** Global textual link color.
$link-color:            $brand-primary !default;
//** Link hover color set via `darken()` function.
$link-hover-color:      darken($link-color, 15%) !default;
//** Link hover decoration.
$link-hover-decoration: underline !default;

i skompiluj wynik

Jorge Luis Saud Rosal
źródło
5
czy jest dostępny atrament dostosowany do Bootstrap 4?
Eee. Amit Joshi
1
Państwo powinno pomijać te !defaultflagi, chyba że istnieją inne pliki niestandardowy styl, który daje powód, aby nie.
John E
17

Stworzyłem to narzędzie: https://lingtalfi.com/bootstrap4-color-generator , po prostu umieszczasz podstawowy w pierwszym polu, następnie wybierasz kolor i klikasz generuj.

Następnie skopiuj wygenerowany kod scss lub css i wklej go do pliku o nazwie my-colors.scss lub my-colors.css (lub jak chcesz).

Po skompilowaniu pliku scss do css , możesz dołączyć ten plik css PO bootstrapowym CSS i będziesz gotowy .

Cały proces zajmuje około 10 sekund, jeśli zrozumiesz, o co chodzi, pod warunkiem, że plik my-colors.scss jest już utworzony i zawarty w tagu head.

Uwaga: tego narzędzia można użyć do nadpisania domyślnych kolorów programu bootstrap (podstawowego, drugorzędnego, niebezpieczeństwa, ...), ale można również tworzyć kolory niestandardowe, jeśli chcesz (niebieski, zielony, trójskładnikowy, ...).

Uwaga 2: to narzędzie zostało stworzone do pracy z bootstrapem 4 (czyli na razie nie ma żadnej kolejnej wersji).

molwa
źródło
Musiałem przenieść import Boostrap po tym wygenerowanym CSS, aby działał. Świetne narzędzie dzięki.
deanwilliammills
Jesteś bohaterem, +1
Mustafa Erdogan
6

Każdy element z tagiem „primay” ma kolor @ brand-primary. Jedną z opcji, aby to zmienić, jest dodanie dostosowanego pliku css, jak poniżej:

.my-primary{
  color: lightYellow ;
  background-color: red;
}

.my-primary:focus, .my-primary:hover{
  color: yellow ;
  background-color: darkRed;
}

a.navbar-brand {
  color: lightYellow ;
}

.navbar-brand:hover{
  color: yellow;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/>

<div class="container">
  <br>
  <nav class="navbar navbar-dark bg-primary mb-3">
    <div class="container">
      <a class="navbar-brand" href="/">Default (navbar-dark  bg-primary)</a>
    </div>
  </nav>
  <button type="button" class="btn btn-primary">Default (btn btn-primary)</button>
  </div>


<br>

<div class="container">
  <nav class="navbar my-primary mb-3">
    <div class="container">
      <a class="navbar-brand" href="/">Customized (my-primary)</a>
    </div>
  </nav>
  <button type="button" class="btn my-primary">Customized (btn my-primary)</button>
  </div>

Aby uzyskać więcej informacji na temat dostosowanych plików css z bootstrapem, tutaj znajduje się pomocne łącze: https://bootstrapbay.com/blog/bootstrap-button-styles/ .

N. Osil
źródło
6

Bootstrap 4

Oto, co zadziałało dla mnie:

Stworzyłem własny _custom_theme.scss plik o zawartości podobnej do:

/* To simplify I'm only changing the primary color */
$theme-colors: ( "primary":#ffd800);

Dodałem go na początek pliku bootstrap.scssi ponownie skompilowałem (w moim przypadku miałem go w folderze o nazwie! Scss)

@import "../../../!scss/_custom_theme.scss";
@import "functions";
@import "variables";
@import "mixins";
Rauland
źródło
2
To jest poprawne podejście, jak stwierdzono w getbootstrap.com/docs/4.0/getting-started/theming
Gianpiero,
@rauland Jak ponownie skompilować? Czy to samo podejście jest stosowane w przypadku bootstrap 3?
Umair
1
Cześć @Umair, używam Visual Studio z rozszerzeniem Web Compiler autorstwa Madsa Kristensena. Dodaje plik compilerconfig.json do mojego rozwiązania, w którym definiuję sposób kompilacji każdego pliku .scss, określając wejściowy plik .scss i wyjściowy plik .css. Więcej informacji: github.com/madskristensen/WebCompiler
Rauland
1
np .: (asp.net na .Net core) "inputFile": "wwwroot \\ lib \\ bootstrap \\ scss \\ bootstrap.scss", "outputFile": "wwwroot \\ lib \\ bootstrap \\ dist \\ css \\ bootstrap.css ”
Rauland
3

To może być trochę stare pytanie, ale chcę podzielić się najlepszymi sposobami dostosowywania bootstrapa. Istnieje narzędzie online o nazwie bootstrap.build https://bootstrap.build/app . Działa świetnie i nie wymaga instalacji ani konfiguracji narzędzi do budowania!

Rami Alloush
źródło
2

Prawidłowy sposób zmiany domyślnego koloru podstawowego w Bootstrap 4.x za pomocą SASS lub innych kolorów, takich jak drugorzędny, sukces i tak dalej.

Utwórz następujący plik SASS i zaimportuj Bootstrap SASS zgodnie ze wskazówkami:

// (Required) Import Bootstrap
@import "bootstrap/functions";
@import "bootstrap/variables";
@import "bootstrap/mixins";

$primary: blue;
$secondary: green;
$my-color: red;

$theme-colors: (
  primary: $primary,
  secondary: $secondary,
  my-color: $my-color
);

// Add below your SASS or CSS code

// (Required) Import Bootstrap
@import "bootstrap/bootstrap";
Alvin Konda
źródło
1

Za pomocą SaSS
zmień kolor marki

$brand-primary:#some-color;

zmieni to podstawowy kolor w całym interfejsie użytkownika.

Używając css -
przypuśćmy, że chcesz zmienić podstawowy kolor przycisku

btn.primary{
  background:#some-color;
}

przeszukaj element i dodaj nową regułę css / sass w nowym pliku i dołącz ją po załadowaniu css bootstrap.

manish kumar
źródło
0

Zasady Bootstrap 4

Większość odpowiedzi tutaj jest mniej więcej poprawnych, ale wszystkie zawierają pewne problemy (dla mnie). W końcu wyszukując w Google znalazłem poprawną procedurę, jak podano w dedykowanym dokumencie bootstrap: https://getbootstrap.com/docs/4.0/getting-started/theming/ .

Załóżmy, że bootstrap jest zainstalowany w node_modules/bootstrap .

A. Utwórz your_bootstrap.scssplik:

@import "your_variables_theme";    // here your variables

// mandatory imports from bootstrap src
@import "../node_modules/bootstrap/scss/functions";
@import "../node_modules/bootstrap/scss/variables"; // here bootstrap variables
@import "../node_modules/bootstrap/scss/mixins";

// optional imports from bootstrap (do not import 'bootstrap.scss'!)
@import "../node_modules/bootstrap/scss/root";
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
etc...

B. W tym samym folderze utwórz plik _your_variables_theme.scss plik.

C. Dostosuj zmienne bootstrap w _your_variables_theme.scsspliku zgodnie z następującymi zasadami:

Skopiuj i wklej zmienne _variables.scssw razie potrzeby, zmodyfikuj ich wartości i usuń flagę! Default . Jeśli zmienna została już przypisana, nie zostanie ponownie przypisana przez wartości domyślne w Bootstrap.

Przesłonięcia zmiennych w tym samym pliku Sass mogą występować przed lub po domyślnych zmiennych. Jednak podczas zastępowania plików Sass, przesłonięcia muszą nastąpić przed zaimportowaniem plików Sass Bootstrap .

Zmienne domyślne są dostępne w node_modules/bootstrap/scss/variables.scss.

Gianpiero
źródło
0

Bootstrap 5

W przypadku bootstrap 5 możesz po prostu przejść do głównego pliku scss i dodać:

$primary: #d93eba;
$body-bg: #fff;
$secondary: #8300d9;

lub cokolwiek chcesz wprowadzić ...

I nie zapomnij zaimportować bootstrap zaraz potem.

Twój ostateczny plik main.scss powinien wyglądać następująco:

$primary: #d93eba;
$body-bg: #fff;
$secondary: #8300d9;


@import "~node_modules/bootstrap/scss/bootstrap";
user4264972
źródło
-4

Od Bootstrap 4 możesz łatwo zmienić podstawowy kolor swojego Bootstrap , pobierając prosty plik CSS na BootstrapColor.net . Nie musisz znać SASS, a plik CSS jest gotowy do użycia w Twojej witrynie. Możesz wybrać żądany kolor, taki jak niebieski, indygo, fioletowy, różowy, czerwony, pomarańczowy, żółty, zielony, turkusowy lub cyjan.

Alex01
źródło
2
To dosłownie jedyne kolory, jakie możesz wybrać, ponieważ bootstrapcolor.net po prostu przekompilował bootstrap z nowym kolorem podstawowym zakodowanym na stałe.
Quantum7
-7
  • Nie można zmienić koloru w pliku cdn.
  • Pobierz plik bootstrap.
  • Wyszukaj plik bootstrap.css.
  • otwórz ten plik (bootstrsap.css) i wyszukaj „podstawowy”.
  • zmień go na żądany kolor.
Sourav
źródło
1
To naprawdę nie działa. Bezpośrednia zmiana Bootstrap CSS nie jest dobrą praktyką. Zamiast tego dodaj przesłonięcia CSS w osobnym pliku następującym po pliku bootstrap.css. Ponadto, zmieniając wszystkie z tych -primaryodniesień do koloru tego samego koloru straci zamierzonych wariacje na granicy, najedź, aktywny, etc .. kolorach, ponieważ są one odmianę pierwotnego koloru tła.
Zim
@Zim yupp Twoje rozwiązanie wydaje się bardziej ogólne, dzięki!
Sourav
-8

To bardzo proste rozwiązanie.

<h4 class="card-header bg-dark text-white text-center">Renew your Membership</h4>

zamień klasę bg-dark na bg-custom .

W CSS

.bg-custom {
  background-color: red;
}
Obrabować
źródło
2
To nie odpowiada na pytanie, przeczytaj uważnie pytanie.
Munim Munna
-14

Tak, proponuję otworzyć plik .css, przejrzeć stronę i znaleźć kod koloru, który chcesz zmienić, i znaleźć wszystko i zamienić (w zależności od edytora tekstu) na żądany kolor. Zrób to ze wszystkimi kolorami, które chcesz zmienić

Jonas Sideravičius
źródło
3
To właściwie nie jest najlepsza praktyka. Pewnie, że to zadziała, ale za każdym razem, gdy zaktualizujesz framework, zmiany znikną (i będziesz musiał powtarzać ten proces za każdym razem , gdy robisz aktualizację) - Zamiast tego użyj narzędzia dostosowywania ( getbootstrap.com/customize ) lub dodaj Twoje niestandardowe zmiany w osobnym pliku .css (zastępując klasy, które chcesz przesłonić)
blurfus