പ്രധാന ഉള്ളടക്കത്തിലേക്ക് പോകുക ഡോക്സ് നാവിഗേഷനിലേക്ക് പോകുക
in English

ബട്ടണുകൾ

ഫോമുകൾ, ഡയലോഗുകൾ എന്നിവയിലെ പ്രവർത്തനങ്ങൾക്കായി ബൂട്ട്സ്ട്രാപ്പിന്റെ ഇഷ്‌ടാനുസൃത ബട്ടൺ ശൈലികൾ ഉപയോഗിക്കുക.

ഉദാഹരണങ്ങൾ

ബൂട്ട്‌സ്‌ട്രാപ്പിൽ നിരവധി മുൻനിശ്ചയിച്ച ബട്ടൺ ശൈലികൾ ഉൾപ്പെടുന്നു, ഓരോന്നിനും അതിന്റേതായ സെമാന്റിക് ഉദ്ദേശം നൽകുന്നു, കൂടുതൽ നിയന്ത്രണത്തിനായി കുറച്ച് എക്സ്ട്രാകൾ ഇടുന്നു.

<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>

<button type="button" class="btn btn-link">Link</button>
സഹായ സാങ്കേതികവിദ്യകളുടെ അർത്ഥം അറിയിക്കുന്നു

അർത്ഥം ചേർക്കാൻ വർണ്ണം ഉപയോഗിക്കുന്നത് ഒരു വിഷ്വൽ സൂചന നൽകുന്നു, അത് സ്ക്രീൻ റീഡറുകൾ പോലുള്ള സഹായ സാങ്കേതികവിദ്യകളുടെ ഉപയോക്താക്കൾക്ക് കൈമാറില്ല. വർണ്ണത്താൽ സൂചിപ്പിക്കുന്ന വിവരങ്ങൾ ഉള്ളടക്കത്തിൽ നിന്ന് തന്നെ വ്യക്തമാണെന്ന് ഉറപ്പാക്കുക (ഉദാ: ദൃശ്യമായ ടെക്‌സ്‌റ്റ്), അല്ലെങ്കിൽ .visually-hiddenക്ലാസിനൊപ്പം മറച്ചിരിക്കുന്ന അധിക വാചകം പോലെയുള്ള ഇതര മാർഗങ്ങളിലൂടെ ഉൾപ്പെടുത്തിയിരിക്കുന്നു.

ടെക്സ്റ്റ് റാപ്പിംഗ് പ്രവർത്തനരഹിതമാക്കുക

ബട്ടൺ ടെക്‌സ്‌റ്റ് പൊതിയാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ലെങ്കിൽ, ബട്ടണിലേക്ക് .text-nowrapക്ലാസ് ചേർക്കാം. $btn-white-space: nowrapSass-ൽ, ഓരോ ബട്ടണിനും ടെക്സ്റ്റ് റാപ്പിംഗ് പ്രവർത്തനരഹിതമാക്കാൻ നിങ്ങൾക്ക് സജ്ജീകരിക്കാം .

ബട്ടൺ ടാഗുകൾ

എലമെന്റിനൊപ്പം ഉപയോഗിക്കാനാണ് .btnക്ലാസുകൾ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് . <button>എന്നിരുന്നാലും, നിങ്ങൾക്ക് ഈ ക്ലാസുകളിലോ ഘടകങ്ങളിലോ ഉപയോഗിക്കാം <a>( <input>ചില ബ്രൗസറുകൾ അല്പം വ്യത്യസ്തമായ റെൻഡറിംഗ് ബാധകമാക്കിയേക്കാം).

<a>നിലവിലെ പേജിലെ പുതിയ പേജുകളിലേക്കോ വിഭാഗങ്ങളിലേക്കോ ലിങ്ക് ചെയ്യുന്നതിനുപകരം, പേജിലെ പ്രവർത്തനക്ഷമത (ഉള്ളടക്കം തകരുന്നത് പോലെ) പ്രവർത്തനക്ഷമമാക്കാൻ ഉപയോഗിക്കുന്ന ഘടകങ്ങളിൽ ബട്ടൺ ക്ലാസുകൾ ഉപയോഗിക്കുമ്പോൾ, ഈ ലിങ്കുകൾക്ക് role="button"അവയുടെ ഉദ്ദേശം ഉചിതമായി നൽകണം. സ്ക്രീൻ റീഡറുകൾ.

ലിങ്ക്
<a class="btn btn-primary" href="#" role="button">Link</a>
<button class="btn btn-primary" type="submit">Button</button>
<input class="btn btn-primary" type="button" value="Input">
<input class="btn btn-primary" type="submit" value="Submit">
<input class="btn btn-primary" type="reset" value="Reset">

ഔട്ട്‌ലൈൻ ബട്ടണുകൾ

ഒരു ബട്ടൺ ആവശ്യമാണെങ്കിലും അവർ കൊണ്ടുവരുന്ന കനത്ത പശ്ചാത്തല വർണ്ണങ്ങളല്ലേ? .btn-outline-*ഏതെങ്കിലും ബട്ടണിലെ എല്ലാ പശ്ചാത്തല ചിത്രങ്ങളും വർണ്ണങ്ങളും നീക്കം ചെയ്യാൻ ഡിഫോൾട്ട് മോഡിഫയർ ക്ലാസുകൾ മാറ്റിസ്ഥാപിക്കുക .

<button type="button" class="btn btn-outline-primary">Primary</button>
<button type="button" class="btn btn-outline-secondary">Secondary</button>
<button type="button" class="btn btn-outline-success">Success</button>
<button type="button" class="btn btn-outline-danger">Danger</button>
<button type="button" class="btn btn-outline-warning">Warning</button>
<button type="button" class="btn btn-outline-info">Info</button>
<button type="button" class="btn btn-outline-light">Light</button>
<button type="button" class="btn btn-outline-dark">Dark</button>
ചില ബട്ടൺ ശൈലികൾ താരതമ്യേന നേരിയ മുൻവശത്ത് നിറം ഉപയോഗിക്കുന്നു, മതിയായ കോൺട്രാസ്റ്റ് ലഭിക്കുന്നതിന് ഇരുണ്ട പശ്ചാത്തലത്തിൽ മാത്രമേ ഉപയോഗിക്കാവൂ.

വലിപ്പങ്ങൾ

വലുതോ ചെറുതോ ആയ ബട്ടണുകൾ ഇഷ്ടമാണോ? അധിക വലുപ്പങ്ങൾ ചേർക്കുക .btn-lgഅല്ലെങ്കിൽ ചേർക്കുക..btn-sm

<button type="button" class="btn btn-primary btn-lg">Large button</button>
<button type="button" class="btn btn-secondary btn-lg">Large button</button>
<button type="button" class="btn btn-primary btn-sm">Small button</button>
<button type="button" class="btn btn-secondary btn-sm">Small button</button>

വികലാംഗ സംസ്ഥാനം

disabledഏതെങ്കിലും <button>ഘടകത്തിലേക്ക് ബൂളിയൻ ആട്രിബ്യൂട്ട് ചേർത്ത് ബട്ടണുകൾ നിഷ്ക്രിയമാക്കുക . പ്രവർത്തനരഹിതമാക്കിയ ബട്ടണുകൾ pointer-events: noneപ്രയോഗിച്ചു, ഹോവർ, സജീവ നിലകൾ എന്നിവ ട്രിഗർ ചെയ്യുന്നതിൽ നിന്ന് തടയുന്നു.

<button type="button" class="btn btn-lg btn-primary" disabled>Primary button</button>
<button type="button" class="btn btn-secondary btn-lg" disabled>Button</button>

ഘടകം ഉപയോഗിക്കുന്ന പ്രവർത്തനരഹിതമാക്കിയ ബട്ടണുകൾ <a>കുറച്ച് വ്യത്യസ്തമായി പ്രവർത്തിക്കുന്നു:

  • <a>ആട്രിബ്യൂട്ടിനെ പിന്തുണയ്‌ക്കുന്നില്ല , അതിനാൽ അത് ദൃശ്യപരമായി പ്രവർത്തനരഹിതമാക്കുന്നതിന് നിങ്ങൾ ക്ലാസ് disabledചേർക്കണം ..disabled
  • pointer-eventsആങ്കർ ബട്ടണുകളിൽ എല്ലാം പ്രവർത്തനരഹിതമാക്കാൻ ചില ഭാവി സൗഹൃദ ശൈലികൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട് .
  • ഉപയോഗിക്കുന്ന പ്രവർത്തനരഹിതമാക്കിയ ബട്ടണുകളിൽ സഹായ സാങ്കേതിക വിദ്യകളിലേക്കുള്ള മൂലകത്തിന്റെ അവസ്ഥ സൂചിപ്പിക്കാൻ ആട്രിബ്യൂട്ട് <a>ഉൾപ്പെടുത്തണം .aria-disabled="true"
  • <a> ഉപയോഗിക്കുന്ന പ്രവർത്തനരഹിതമാക്കിയ ബട്ടണുകളിൽ hrefആട്രിബ്യൂട്ട് ഉൾപ്പെടുത്തരുത് .
<a class="btn btn-primary btn-lg disabled" role="button" aria-disabled="true">Primary link</a>
<a class="btn btn-secondary btn-lg disabled" role="button" aria-disabled="true">Link</a>

hrefഒരു ഡിസേബിൾഡ് ലിങ്കിൽ ആട്രിബ്യൂട്ട് സൂക്ഷിക്കേണ്ട കേസുകൾ കവർ ചെയ്യുന്നതിന് , s-ന്റെ ലിങ്ക് പ്രവർത്തനം പ്രവർത്തനരഹിതമാക്കാൻ .disabledക്ലാസ് ഉപയോഗിക്കുന്നു . ഈ CSS പ്രോപ്പർട്ടി ഇതുവരെ HTML-നായി സ്റ്റാൻഡേർഡ് ചെയ്തിട്ടില്ല, എന്നാൽ എല്ലാ ആധുനിക ബ്രൗസറുകളും ഇതിനെ പിന്തുണയ്ക്കുന്നു. കൂടാതെ, പിന്തുണയ്‌ക്കുന്ന ബ്രൗസറുകളിൽ പോലും , കീബോർഡ് നാവിഗേഷൻ ബാധിക്കപ്പെടാതെ തുടരുന്നു, അതായത് കാഴ്ചയുള്ള കീബോർഡ് ഉപയോക്താക്കൾക്കും സഹായ സാങ്കേതിക വിദ്യകളുടെ ഉപയോക്താക്കൾക്കും തുടർന്നും ഈ ലിങ്കുകൾ സജീവമാക്കാനാകും. സുരക്ഷിതമായിരിക്കാൻ, കൂടാതെ , ഈ ലിങ്കുകളിൽ കീബോർഡ് ഫോക്കസ് സ്വീകരിക്കുന്നതിൽ നിന്ന് തടയുന്നതിന് ഒരു ആട്രിബ്യൂട്ടും ഉൾപ്പെടുത്തുക, കൂടാതെ അവയുടെ പ്രവർത്തനം പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കാൻ ഇഷ്‌ടാനുസൃത JavaScript ഉപയോഗിക്കുക.pointer-events: none<a>pointer-events: nonearia-disabled="true"tabindex="-1"

<a href="#" class="btn btn-primary btn-lg disabled" tabindex="-1" role="button" aria-disabled="true">Primary link</a>
<a href="#" class="btn btn-secondary btn-lg disabled" tabindex="-1" role="button" aria-disabled="true">Link</a>

ബട്ടണുകൾ തടയുക

ഞങ്ങളുടെ ഡിസ്‌പ്ലേ, ഗ്യാപ്പ് യൂട്ടിലിറ്റികൾ എന്നിവയുടെ മിശ്രിതം ഉപയോഗിച്ച് ബൂട്ട്‌സ്‌ട്രാപ്പ് 4-ൽ ഉള്ളത് പോലെ പൂർണ്ണ വീതിയുള്ള "ബ്ലോക്ക് ബട്ടണുകളുടെ" റെസ്‌പോൺസീവ് സ്റ്റാക്കുകൾ സൃഷ്‌ടിക്കുക. ബട്ടൺ നിർദ്ദിഷ്‌ട ക്ലാസുകൾക്ക് പകരം യൂട്ടിലിറ്റികൾ ഉപയോഗിക്കുന്നതിലൂടെ, സ്‌പെയ്‌സിംഗ്, വിന്യാസം, പ്രതികരണ സ്വഭാവങ്ങൾ എന്നിവയിൽ ഞങ്ങൾക്ക് കൂടുതൽ നിയന്ത്രണമുണ്ട്.

<div class="d-grid gap-2">
  <button class="btn btn-primary" type="button">Button</button>
  <button class="btn btn-primary" type="button">Button</button>
</div>

mdഇവിടെ ഞങ്ങൾ ഒരു റെസ്‌പോൺസീവ് വേരിയേഷൻ സൃഷ്‌ടിക്കുന്നു, ബ്രേക്ക്‌പോയിന്റ് വരെ ലംബമായി അടുക്കിയിരിക്കുന്ന ബട്ടണുകളിൽ നിന്ന് ആരംഭിക്കുന്നു , അവിടെ ക്ലാസ് .d-md-blockമാറ്റിസ്ഥാപിക്കുന്നു .d-grid, അങ്ങനെ gap-2യൂട്ടിലിറ്റി അസാധുവാകുന്നു. അവ മാറുന്നത് കാണുന്നതിന് നിങ്ങളുടെ ബ്രൗസറിന്റെ വലുപ്പം മാറ്റുക.

<div class="d-grid gap-2 d-md-block">
  <button class="btn btn-primary" type="button">Button</button>
  <button class="btn btn-primary" type="button">Button</button>
</div>

ഗ്രിഡ് കോളം വീതി ക്ലാസുകൾ ഉപയോഗിച്ച് നിങ്ങളുടെ ബ്ലോക്ക് ബട്ടണുകളുടെ വീതി ക്രമീകരിക്കാം. ഉദാഹരണത്തിന്, പകുതി വീതിയുള്ള "ബ്ലോക്ക് ബട്ടണിന്", ഉപയോഗിക്കുക .col-6. ഇതും ഉപയോഗിച്ച് തിരശ്ചീനമായി കേന്ദ്രീകരിക്കുക .mx-auto.

<div class="d-grid gap-2 col-6 mx-auto">
  <button class="btn btn-primary" type="button">Button</button>
  <button class="btn btn-primary" type="button">Button</button>
</div>

തിരശ്ചീനമായിരിക്കുമ്പോൾ ബട്ടണുകളുടെ വിന്യാസം ക്രമീകരിക്കാൻ അധിക യൂട്ടിലിറ്റികൾ ഉപയോഗിക്കാം. ഇവിടെ ഞങ്ങൾ ഞങ്ങളുടെ മുമ്പത്തെ പ്രതികരിക്കുന്ന ഉദാഹരണം എടുക്കുകയും ബട്ടണുകൾ അടുക്കി വയ്ക്കാതിരിക്കുമ്പോൾ അവയെ വലത് വിന്യസിക്കാൻ ബട്ടണിൽ ചില ഫ്ലെക്സ് യൂട്ടിലിറ്റികളും മാർജിൻ യൂട്ടിലിറ്റിയും ചേർക്കുകയും ചെയ്തു.

<div class="d-grid gap-2 d-md-flex justify-content-md-end">
  <button class="btn btn-primary me-md-2" type="button">Button</button>
  <button class="btn btn-primary" type="button">Button</button>
</div>

ബട്ടൺ പ്ലഗിൻ

ലളിതമായ ഓൺ/ഓഫ് ടോഗിൾ ബട്ടണുകൾ സൃഷ്ടിക്കാൻ ബട്ടൺ പ്ലഗിൻ നിങ്ങളെ അനുവദിക്കുന്നു.

ദൃശ്യപരമായി, ഈ ടോഗിൾ ബട്ടണുകൾ ചെക്ക്ബോക്സ് ടോഗിൾ ബട്ടണുകൾക്ക് സമാനമാണ് . എന്നിരുന്നാലും, അസിസ്റ്റീവ് ടെക്നോളജികൾ വഴി അവ വ്യത്യസ്തമായി കൈമാറുന്നു: ചെക്ക്ബോക്‌സ് ടോഗിളുകൾ സ്‌ക്രീൻ റീഡറുകൾ “ചെക്ക് ചെയ്‌തത്”/“ചെക്ക് ചെയ്‌തിട്ടില്ല” എന്ന് പ്രഖ്യാപിക്കും (കാരണം, അവ രൂപപ്പെട്ടിട്ടും, അവ അടിസ്ഥാനപരമായി ഇപ്പോഴും ചെക്ക്‌ബോക്‌സുകളാണ്), അതേസമയം ഈ ടോഗിൾ ബട്ടണുകൾ ഇങ്ങനെ പ്രഖ്യാപിക്കും. "ബട്ടൺ"/"ബട്ടൺ അമർത്തി". ഈ രണ്ട് സമീപനങ്ങൾക്കിടയിലുള്ള തിരഞ്ഞെടുപ്പ് നിങ്ങൾ സൃഷ്ടിക്കുന്ന ടോഗിൾ തരത്തെ ആശ്രയിച്ചിരിക്കും, കൂടാതെ ഒരു ചെക്ക്ബോക്സായി അല്ലെങ്കിൽ ഒരു യഥാർത്ഥ ബട്ടണായി പ്രഖ്യാപിക്കുമ്പോൾ ടോഗിൾ ഉപയോക്താക്കൾക്ക് അർത്ഥമാക്കുമോ ഇല്ലയോ എന്നതിനെ ആശ്രയിച്ചിരിക്കും.

ടോഗിൾ സ്റ്റേറ്റുകൾ

data-bs-toggle="button"ഒരു ബട്ടണിന്റെ activeഅവസ്ഥ ടോഗിൾ ചെയ്യാൻ ചേർക്കുക . നിങ്ങൾ ഒരു ബട്ടൺ പ്രീ-ടോഗിൾ ചെയ്യുകയാണെങ്കിൽ, നിങ്ങൾ ക്ലാസ് സ്വമേധയാ ചേർക്കുകയും അത്.active സഹായ സാങ്കേതിക വിദ്യകളിലേക്ക് ഉചിതമായ രീതിയിൽ എത്തിക്കുകയും ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പാക്കുകയും വേണം. aria-pressed="true"

<button type="button" class="btn btn-primary" data-bs-toggle="button" autocomplete="off">Toggle button</button>
<button type="button" class="btn btn-primary active" data-bs-toggle="button" autocomplete="off" aria-pressed="true">Active toggle button</button>
<button type="button" class="btn btn-primary" disabled data-bs-toggle="button" autocomplete="off">Disabled toggle button</button>
<a href="#" class="btn btn-primary" role="button" data-bs-toggle="button">Toggle link</a>
<a href="#" class="btn btn-primary active" role="button" data-bs-toggle="button" aria-pressed="true">Active toggle link</a>
<a class="btn btn-primary disabled" aria-disabled="true" role="button" data-bs-toggle="button">Disabled toggle link</a>

രീതികൾ

ബട്ടൺ കൺസ്ട്രക്റ്റർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു ബട്ടൺ ഉദാഹരണം സൃഷ്ടിക്കാൻ കഴിയും, ഉദാഹരണത്തിന്:

var button = document.getElementById('myButton')
var bsButton = new bootstrap.Button(button)
രീതി വിവരണം
toggle പുഷ് അവസ്ഥ ടോഗിൾ ചെയ്യുന്നു. ബട്ടണിന് അത് സജീവമാക്കിയതായി തോന്നുന്നു.
dispose ഒരു മൂലകത്തിന്റെ ബട്ടൺ നശിപ്പിക്കുന്നു. (DOM ഘടകത്തിൽ സംഭരിച്ച ഡാറ്റ നീക്കംചെയ്യുന്നു)
getInstance ഒരു DOM ഘടകവുമായി ബന്ധപ്പെട്ട ബട്ടൺ ഉദാഹരണം ലഭിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന സ്റ്റാറ്റിക് രീതി, നിങ്ങൾക്ക് ഇത് ഇതുപോലെ ഉപയോഗിക്കാം:bootstrap.Button.getInstance(element)
getOrCreateInstance ഒരു DOM എലമെന്റുമായി ബന്ധപ്പെടുത്തിയിരിക്കുന്ന ഒരു ബട്ടൺ ഇൻസ്‌റ്റൻസ് നൽകുന്ന സ്റ്റാറ്റിക് രീതി അല്ലെങ്കിൽ അത് ആരംഭിച്ചിട്ടില്ലെങ്കിൽ പുതിയത് സൃഷ്‌ടിക്കുക. നിങ്ങൾക്ക് ഇത് ഇതുപോലെ ഉപയോഗിക്കാം:bootstrap.Button.getOrCreateInstance(element)

ഉദാഹരണത്തിന്, എല്ലാ ബട്ടണുകളും ടോഗിൾ ചെയ്യാൻ

var buttons = document.querySelectorAll('.btn')
buttons.forEach(function (button) {
  var button = new bootstrap.Button(button)
  button.toggle()
})

സാസ്

വേരിയബിളുകൾ

$btn-padding-y:               $input-btn-padding-y;
$btn-padding-x:               $input-btn-padding-x;
$btn-font-family:             $input-btn-font-family;
$btn-font-size:               $input-btn-font-size;
$btn-line-height:             $input-btn-line-height;
$btn-white-space:             null; // Set to `nowrap` to prevent text wrapping

$btn-padding-y-sm:            $input-btn-padding-y-sm;
$btn-padding-x-sm:            $input-btn-padding-x-sm;
$btn-font-size-sm:            $input-btn-font-size-sm;

$btn-padding-y-lg:            $input-btn-padding-y-lg;
$btn-padding-x-lg:            $input-btn-padding-x-lg;
$btn-font-size-lg:            $input-btn-font-size-lg;

$btn-border-width:            $input-btn-border-width;

$btn-font-weight:             $font-weight-normal;
$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075);
$btn-focus-width:             $input-btn-focus-width;
$btn-focus-box-shadow:        $input-btn-focus-box-shadow;
$btn-disabled-opacity:        .65;
$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125);

$btn-link-color:              $link-color;
$btn-link-hover-color:        $link-hover-color;
$btn-link-disabled-color:     $gray-600;

// Allows for customizing button radius independently from global border radius
$btn-border-radius:           $border-radius;
$btn-border-radius-sm:        $border-radius-sm;
$btn-border-radius-lg:        $border-radius-lg;

$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;

$btn-hover-bg-shade-amount:       15%;
$btn-hover-bg-tint-amount:        15%;
$btn-hover-border-shade-amount:   20%;
$btn-hover-border-tint-amount:    10%;
$btn-active-bg-shade-amount:      20%;
$btn-active-bg-tint-amount:       20%;
$btn-active-border-shade-amount:  25%;
$btn-active-border-tint-amount:   10%;

മിക്സിൻസ്

ബട്ടണുകൾക്കായി മൂന്ന് മിക്‌സിനുകൾ ഉണ്ട്: ബട്ടണും ബട്ടണും ഔട്ട്‌ലൈൻ വേരിയന്റ് മിക്സിനുകളും (രണ്ടും അടിസ്ഥാനമാക്കിയുള്ളത് $theme-colors), കൂടാതെ ഒരു ബട്ടൺ സൈസ് മിക്‌സിനും.

@mixin button-variant(
  $background,
  $border,
  $color: color-contrast($background),
  $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
  $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
  $hover-color: color-contrast($hover-background),
  $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
  $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
  $active-color: color-contrast($active-background),
  $disabled-background: $background,
  $disabled-border: $border,
  $disabled-color: color-contrast($disabled-background)
) {
  color: $color;
  @include gradient-bg($background);
  border-color: $border;
  @include box-shadow($btn-box-shadow);

  &:hover {
    color: $hover-color;
    @include gradient-bg($hover-background);
    border-color: $hover-border;
  }

  .btn-check:focus + &,
  &:focus {
    color: $hover-color;
    @include gradient-bg($hover-background);
    border-color: $hover-border;
    @if $enable-shadows {
      @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));
    } @else {
      // Avoid using mixin so we can pass custom focus shadow properly
      box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);
    }
  }

  .btn-check:checked + &,
  .btn-check:active + &,
  &:active,
  &.active,
  .show > &.dropdown-toggle {
    color: $active-color;
    background-color: $active-background;
    // Remove CSS gradients if they're enabled
    background-image: if($enable-gradients, none, null);
    border-color: $active-border;

    &:focus {
      @if $enable-shadows {
        @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));
      } @else {
        // Avoid using mixin so we can pass custom focus shadow properly
        box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);
      }
    }
  }

  &:disabled,
  &.disabled {
    color: $disabled-color;
    background-color: $disabled-background;
    // Remove CSS gradients if they're enabled
    background-image: if($enable-gradients, none, null);
    border-color: $disabled-border;
  }
}
@mixin button-outline-variant(
  $color,
  $color-hover: color-contrast($color),
  $active-background: $color,
  $active-border: $color,
  $active-color: color-contrast($active-background)
) {
  color: $color;
  border-color: $color;

  &:hover {
    color: $color-hover;
    background-color: $active-background;
    border-color: $active-border;
  }

  .btn-check:focus + &,
  &:focus {
    box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
  }

  .btn-check:checked + &,
  .btn-check:active + &,
  &:active,
  &.active,
  &.dropdown-toggle.show {
    color: $active-color;
    background-color: $active-background;
    border-color: $active-border;

    &:focus {
      @if $enable-shadows {
        @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));
      } @else {
        // Avoid using mixin so we can pass custom focus shadow properly
        box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
      }
    }
  }

  &:disabled,
  &.disabled {
    color: $color;
    background-color: transparent;
  }
}
@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
  padding: $padding-y $padding-x;
  @include font-size($font-size);
  // Manually declare to provide an override to the browser default
  @include border-radius($border-radius, 0);
}

ലൂപ്പുകൾ

$theme-colorsഎന്നതിലെ മോഡിഫയർ ക്ലാസുകൾ ജനറേറ്റുചെയ്യുന്നതിന് ബട്ടൺ വകഭേദങ്ങൾ (റെഗുലർ, ഔട്ട്‌ലൈൻ ബട്ടണുകൾക്ക്) ഞങ്ങളുടെ മാപ്പിനൊപ്പം അവയുടെ മിക്‌സിനുകൾ ഉപയോഗിക്കുന്നു scss/_buttons.scss.

@each $color, $value in $theme-colors {
  .btn-#{$color} {
    @include button-variant($value, $value);
  }
}

@each $color, $value in $theme-colors {
  .btn-outline-#{$color} {
    @include button-outline-variant($value);
  }
}