Select
The Select component provides a styled dropdown menu, allowing users to choose one option from a list. It supports custom styling through SCSS variables for seamless integration into your forms and UI layouts.
Description #
The Select component is a customizable dropdown input. It can be styled to match your application's theme using SCSS variables. The component is accessible and keyboard-friendly, ensuring a smooth user experience.
Single Select: Allows selection of one option from the dropdown.
Custom Styling: Easily style with SCSS variables and utility classes.
Disabled State: Supports the standard
disabledattribute.
Examples and Classes #
Basic Example
        
            
        
        
    <select class="form-select">
    <option>Open this select menu</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>
    
    Disabled Example
        
            
        
        
    <select class="form-select" disabled>
    <option>Disabled select</option>
</select>
    
    Available Classes
| Class | Description | 
|---|---|
| .form-select | Base class for the select dropdown styling. | 
Layout Variations
The select component supports these layout variations:
- Single Select: Standard dropdown for single selection
 - Disabled State: Add the 
disabledattribute to disable the select 
File Locations #
| File | Path | Description | 
|---|---|---|
| index.html | miz/themes/mizoon/components/select/index.html | Example implementation and documentation | 
| _index.scss | miz/themes/mizoon/components/select/_index.scss | SCSS styles and variables | 
| script.js | miz/themes/mizoon/components/select/script.js | JavaScript functionality (if needed) | 
SCSS Variables #
        
        $select-custom-classes: ".p-1, .bg-primary-color, .on-primary-color, .radius-all-small";
$select-option-custom-classes: ".bg-secondary-color, .on-secondary-color";
$select-option-selected-custom-classes: ".bg-primary-color, .on-primary-color";
    
    
    JavaScript Implementation #
Class Structure
| Method/Property | Type | Description | 
|---|---|---|
| selectElements | Property | NodeList of all select elements with .form-select | 
            
| constructor() | Method | Initializes the select component and sets up event listeners (if needed) | 
| init() | Method | Sets up event listeners for custom select behavior | 
| handleSelectChange(event) | Method | Handles change events on select elements | 
Implementation Example
        
        class Select {
    constructor() {
        this.selectElements = document.querySelectorAll('.form-select');
        this.init();
    }
    init() {
        this.selectElements.forEach(select => {
            select.addEventListener('change', (event) => this.handleSelectChange(event));
        });
    }
    handleSelectChange(event) {
        const selectedValue = event.target.value;
        // Custom logic for when the select value changes
        console.log('Selected:', selectedValue);
    }
}
// Initialize select when DOM is loaded
// Uncomment if you need custom JS for select
// document.addEventListener('DOMContentLoaded', () => {
//     new Select();
// });
    
    Include the Select JavaScript file in your page.