© Khmer Angkor Academy - sophearithput168

Buttons

Buttons ក្នុង Bootstrap - មូលដ្ឋាន និង​ទ្រឹស្តី

Buttons គឺ​ជា​សមាសធាតុ​មួយ​ដែល​មាន​ការ​ប្រើប្រាស់​ច្រើន​បំផុត​នៅ​លើ​គេហទំព័រ។ Bootstrap ផ្តល់​នូវ button styles ជា​ច្រើន​ប្រភេទ​ដែល​រចនា​ស្អាត និង​ងាយស្រួល​ប្រើប្រាស់។

🎯 ហេតុ​អ្វី Buttons សំខាន់?

Buttons គឺ​ជា​ចំណុច​ទំនាក់ទំនង (interaction point) សំខាន់​បំផុត​រវាង​អ្នក​ប្រើប្រាស់​និង​គេហទំព័រ។ ពួកវា​ត្រូវ​បាន​ប្រើ​សម្រាប់:

  • ស្នើសុំ​សកម្មភាព - ឲ្យ​អ្នក​ប្រើ​ធ្វើ​អ្វី​មួយ (Submit, Buy, Download)
  • Navigation - ទៅ​កាន់​ទំព័រ​ផ្សេង
  • បើក/បិទ - បង្ហាញ ឬ​លាក់​មាតិកា (Modal, Dropdown)
  • ផ្លាស់ប្តូរ​ស្ថានភាព - បិទ/បើក, លុប, កែ

📋 ប្រភេទ Buttons ក្នុង Bootstrap:

ប្រភេទ Class ពណ៌ ប្រើ​សម្រាប់
Primary .btn-primary ខៀវ សកម្មភាព​សំខាន់ (Submit, Save)
Secondary .btn-secondary ប្រផេះ សកម្មភាព​បន្ទាប់​បន្សំ (Cancel, Back)
Success .btn-success បៃតង សកម្មភាព​ជោគជ័យ (Confirm, Approve)
Danger .btn-danger ក្រហម សកម្មភាព​គ្រោះថ្នាក់ (Delete, Remove)
Warning .btn-warning លឿង ព្រមាន (Caution, Warning)
Info .btn-info ខៀវ​ស្រាល ព័ត៌មាន (Info, Help)
Light .btn-light រចនា​ស្រាល (Background ងងឹត)
Dark .btn-dark ខ្មៅ រចនា​ងងឹត (Background ស្រាល)
Link .btn-link ដូច​តំណភ្ជាប់ រចនា​ដូច​ link ធម្មតា

🎨 ការ​ជ្រើសរើស​ពណ៌ Button ត្រឹមត្រូវ:

គោលការណ៍​ណែនាំ (UI/UX Best Practices):

  • 🔵 Primary (ខៀវ) - ប្រើ​សម្រាប់​សកម្មភាព​សំខាន់​បំផុត​តែ​មួយ​លើ​ទំព័រ
    ឧទាហរណ៍: ប៊ូតុង "ទិញ​ឥឡូវ", "ចុះឈ្មោះ", "រក្សាទុក"
  • Secondary (ប្រផេះ) - សកម្មភាព​បន្ទាប់​បន្សំ ឬ​មិន​សូវ​សំខាន់
    ឧទាហរណ៍: "បោះបង់", "ត្រឡប់​ក្រោយ", "រំលង"
  • 🟢 Success (បៃតង) - បញ្ជាក់​ការ​ជោគជ័យ ឬ​សកម្មភាព​វិជ្ជមាន
    ឧទាហរណ៍: "អនុម័ត", "ទទួលយក", "បញ្ជូន"
  • 🔴 Danger (ក្រហម) - សកម្មភាព​គ្រោះថ្នាក់​ដែល​មិន​អាច​ត្រឡប់​វិញ
    ឧទាហរណ៍: "លុប​គណនី", "លុប​ចោល", "បដិសេធ"
  • 🟡 Warning (លឿង) - សកម្មភាព​ដែល​ត្រូវ​ប្រុងប្រយ័ត្ន
    ឧទាហរណ៍: "កែប្រែ​ទិន្នន័យ", "ផ្លាស់ប្តូរ", "ព្រមាន"
  • 🔵 Info (ខៀវ​ស្រាល) - ផ្តល់​ព័ត៌មាន​បន្ថែម
    ឧទាហរណ៍: "មើល​ព័ត៌មាន", "ជំនួយ", "ព័ត៌មាន​លម្អិត"

⚠️ កំហុស​ទូទៅ​ក្នុង​ការ​ប្រើ Button Colors:

កំហុស ហេតុ​អ្វី​ខុស ដំណោះស្រាយ
ប្រើ Primary ច្រើន​ពេក អ្នក​ប្រើ​មិន​ដឹង​ថា​អ្វី​សំខាន់ មាន Primary តែ 1 លើ​ទំព័រ
ប្រើ Danger ស​ម្រាប់​កែប្រែ បង្ក​ភ័យ​អ្នក​ប្រើ ប្រើ Warning ឬ Secondary
មិន​មាន​ពណ៌​ខុសគ្នា រំខាន​ដល់​ការ​យល់ ប្រើ​ពណ៌​តាម​គោលការណ៍
ប្រើ Success សម្រាប់​លុប បញ្ចូល​គ្នា​នឹង​អត្ថន័យ ប្រើ Danger សម្រាប់​លុប

📏 Button Sizes & Styles - ទំហំ និង​រចនា

🔢 ទំហំ Button (Button Sizes):

Bootstrap ផ្តល់​ទំហំ button ចំនួន 4 យ៉ាង:

ទំហំ Class Height Padding ប្រើ​ពេល​ណា
Large .btn-lg ~48px 0.5rem 1rem Button សំខាន់, Hero section
Default (មិន​ចាំបាច់​ class) ~38px 0.375rem 0.75rem Button ធម្មតា
Small .btn-sm ~31px 0.25rem 0.5rem តារាង, Cards តូចៗ
Custom CSS ផ្ទាល់​ខ្លួន ប្រែប្រួល ប្រែប្រួល ទំហំ​ពិសេស

🎨 Outline Buttons - ប៊ូតុង​ដែល​មាន​តែ​គ្រោង:

Outline buttons មាន​តែ​border ដោយ​មិន​មាន​ពណ៌​ផ្ទៃ​ខាង​ក្រោយ។ ពួកវា​ល្អ​សម្រាប់:

  • ✅ រចនា​ស្រាល និង​ទំនើប
  • ✅ ចំណាត់​ថ្នាក់​ទី​ពីរ (Secondary actions)
  • ✅ ចៀសវាង​ការ​ប្រើ​ពណ៌​ច្រើន​ពេក
  • ✅ Hover effect ស្អាត
រចនា Class ប្រើ​ពេល​ណា
Solid (ពេញ) .btn-primary សកម្មភាព​សំខាន់
Outline (គ្រោង) .btn-outline-primary សកម្មភាព​បន្ទាប់​បន្សំ

🔲 Block Buttons - ប៊ូតុង​ពេញ​ទទឹង:

Bootstrap 5 លុប .btn-block class រួច​ហើយ។ ឥឡូវ​ត្រូវ​ប្រើ utility classes:

<!-- Bootstrap 4 (deprecated) -->
<button class="btn btn-primary btn-block">Full Width</button>

<!-- Bootstrap 5 (ថ្មី) -->
<div class="d-grid">
  <button class="btn btn-primary">Full Width</button>
</div>

<!-- ឬ​ប្រើ w-100 -->
<button class="btn btn-primary w-100">Full Width</button>

🎯 ទំហំ​ Button តាម Mobile-First:

ឧបករណ៍ ទំហំ​សមរម្យ មូលហេតុ
ទូរស័ព្ទ Large (.btn-lg) ងាយស្រួល​ចុច​ដោយ​ម្រាមដៃ
Tablet Default សមតុល្យ​រវាង​ទំហំ និង​ទំនេរ
Desktop Default/Small មាន​ទំនេរ​ច្រើន, mouse ច្បាស់

🎛️ Button Groups & States - ក្រុម និង​ស្ថានភាព

👥 Button Groups - ក្រុម​ប៊ូតុង:

Button Groups អនុញ្ញាត​ឲ្យ​អ្នក​ដាក់​ buttons ជា​ច្រើន​ជាប់​គ្នា​ទៅ​ជា​មួយ។ ល្អ​សម្រាប់:

  • Toolbar - ប្រដាប់​កែសម្រួល (Bold, Italic, Underline)
  • Pagination - ទំព័រ​ទី 1, 2, 3...
  • View modes - Grid view, List view
  • Filters - All, Active, Completed

🎨 ប្រភេទ Button Groups:

ប្រភេទ Class ពិពណ៌នា ប្រើ​ពេល​ណា
Basic Group .btn-group ប៊ូតុង​ជាប់​គ្នា​ផ្ដេក Toolbar, Filters
Vertical Group .btn-group-vertical ប៊ូតុង​ជាប់​គ្នា​បញ្ឈរ Sidebar, Mobile menu
Toolbar .btn-toolbar ក្រុម​ជា​ច្រើន​ជាប់​គ្នា Editor, Complex UI

🔄 Button States - ស្ថានភាព​ប៊ូតុង:

Buttons អាច​មាន​ស្ថានភាព​ផ្សេងៗ​គ្នា​ដើម្បី​បង្ហាញ​ពី​អាកប្បកិរិយា​របស់​វា:

State Class/Attribute ពិពណ៌នា ប្រើ​ពេល​ណា
Active .active ប៊ូតុង​កំពុង​ជ្រើសរើស Tab active, Filter active
Disabled disabled attribute ប៊ូតុង​មិន​អាច​ចុច​បាន Form មិន​ត្រឹមត្រូវ, Loading
Loading + Spinner កំពុង​ដំណើរការ រង់ចាំ​ការ​ឆ្លើយតប
Hover :hover pseudo-class ពណ៌​ផ្លាស់​ប្តូរ​ពេល​កណ្តុរ​លើ ដោយ​ស្វ័យប្រវត្តិ
Focus :focus pseudo-class ពណ៌​ពន្លឺ​ពេល​ចុច Tab Accessibility

♿ Accessibility សម្រាប់ Buttons:

ការ​ធ្វើ​ឲ្យ buttons accessible គឺ​សំខាន់​ណាស់:

  • ប្រើ <button> - ជា​ជាង <div><span>
  • មាន​អត្ថបទ​ច្បាស់លាស់ - "ចុះឈ្មោះ" ជា​ជាង "ចុច​ទីនេះ"
  • ប្រើ aria-label - សម្រាប់​ icon buttons
  • Focus state - ត្រូវ​មើល​ឃើញ​ច្បាស់
  • Keyboard navigation - អាច​ប្រើ Tab, Enter, Space
  • Color contrast - អក្សរ និង​ផ្ទៃ​ខាង​ក្រោយ​ខុសគ្នា​ច្បាស់

🎨 ឧទាហរណ៍ Button States:

<!-- Active State -->
<button class="btn btn-primary active">Selected</button>

<!-- Disabled State -->
<button class="btn btn-primary" disabled>Disabled</button>

<!-- Loading State -->
<button class="btn btn-primary" disabled>
  <span class="spinner-border spinner-border-sm"></span>
  Loading...
</button>

<!-- Icon Button with ARIA -->
<button class="btn btn-primary" aria-label="Delete">
  <i class="bi bi-trash"></i>
</button>

💡 Best Practices សម្រាប់ Button Usage:

ធ្វើ ✅ មិន​ធ្វើ ❌
ប្រើ​អត្ថបទ​ច្បាស់លាស់ (Save, Delete) អត្ថបទ​មិន​ច្បាស់ (OK, ចុច​ទីនេះ)
មាន Primary button តែ 1 លើ​ទំព័រ Primary buttons ច្រើន​ពេក
ប្រើ​ពណ៌​តាម​គោលការណ៍ ប្រើ​ពណ៌​ចៃដន្យ
ទំហំ​សមរម្យ (44x44px+ mobile) ទំហំ​តូច​ពេក (<40px)
Loading state ពេល​រង់ចាំ គ្មាន feedback ពេល​ចុច
Disabled ពេល​មិន​អាច​ប្រើ លាក់​button ចោល