Customize the design of a React Material-UI select dropdown by overriding

I am currently utilizing the React MUI Select Component for my forms, specifically for language selection. My issue arises when I need a different style for the dropdown menu of the language Select component. Overriding the relevant class would apply this new style to every Select component, but I only want it to affect the language Select. You can see an example in the image below:

https://i.stack.imgur.com/kfXdZ.png

Below is the code snippet:

const LanguagesSelect = props => {

  return (
    <Select  className="test" classes="assad" style={{ position: "relative !important", left: "20px !important", top: "30px !important", width: "168.3px !important", background: "white !important", borderRadius:"12.75px" }} >
      <MenuItem className="menuTest" style={{ paddingLeft: "5px" }}>
        <div style={{ display: "flex", width: "100%" }}>
          <img src={require("../../../assets/img/icons/flags/franch.svg").default} />
          <div style={{ marginLeft: "5px" }} >Franch</div>
        </div>
      </MenuItem>

      <MenuItem className="menuTest" style={{ paddingLeft: "5px" }}>
        <img src={require("../../../assets/img/icons/flags/eng.svg").default} />
        <div style={{ marginLeft: "5px" }}>English</div>
      </MenuItem>

      <MenuItem className="menuTest" style={{ paddingLeft: "5px" }}>
        <img src={require("../../../assets/img/icons/flags/turkish.svg").default} />
        <div style={{ marginLeft: "5px" }}>Turkish</div>
      </MenuItem>

      <MenuItem className="menuTest" style={{ paddingLeft: "5px" }}>
        <img src={require("../../../assets/img/icons/flags/czech.svg").default} />
        <div style={{ marginLeft: "5px" }}>Czech</div>
      </MenuItem>

      <MenuItem className="menuTest" style={{ paddingLeft: "5px" }}>
        <img src={require("../../../assets/img/icons/flags/hebrew.svg").default} />
        <div style={{ marginLeft: "5px" }}>עברית</div>
      </MenuItem>

    </Select>
  )

}

Answer №1

Override the default style by utilizing the sx prop. For additional information, check out this resource mui_sx_prop

Answer №2

Applying external CSS to the Select element allows for manipulation of its child elements, such as the MenuItem.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

The Navbar is not displaying the React Bootstrap 4 CSS module as intended

Having some trouble changing the color of my navbar. Is there a step I might be missing? Here's the component I'm trying to render: import React from 'react'; import { Nav, Navbar } from 'react-bootstrap'; import styles from ...

The CSS zigzag border functionality seems to be malfunctioning on Internet Explorer

On my clients website, I decided to use a zigzag css border instead of an image for speed purposes. I wanted to have different colors and variations, but I encountered a problem. While my version displayed correctly on Chrome and Firefox using Windows, it ...

How can I ensure that every dependency in my package.json is updated to the newest version using Yarn?

My current react app is using deprecated dependencies and in order to get it functional, I need to update these dependencies to more recent (yet stable) versions. According to a discussion on Stack Overflow, for updating dependencies in package.json to th ...

Switch the visibility of a div tag using Next.js

Script export default function Navigation(){ let displayMenu = false; function toggleMenu() { displayMenu = !displayMenu; } return ( <> <button onClick={toggleMenu}>Toggle Navigation</button> {/*This code sh ...

What is the best way to create a link using TouchableOpacity in React Native Expo?

I am currently trying to connect a button with another page, but I have encountered an issue. The solution provided for this problem involves using Expo and a class component, while the alternative without Expo requires a function or class component. Can a ...

displaying the identical image from various perspectives

I have an arrow image that I need to display in different angles - top, left, bottom, right. I was considering what would be the best approach: 1: Changing the image direction via CSS and loading the main image <img src="a.png"> <img src="a.png" ...

Using React.js to pass data iterated with map function to a modal

I am trying to display my data in a modal when clicking on buttons. The data is currently shown as follows: 1 John watch 2 Karrie watch 3 Karen watch ... like this It is presented in the form of a table with all the 'watch' items being button ...

Visual Composer now appends "?id=" to the background images of columns and rows, enhancing the customization

I am in the process of improving the performance of a WordPress site that is using the Visual Composer plugin. When checking GTmetrix results, I came across this issue: Ensure resources are served from a consistent URL https://example.com/wp-content/uploa ...

Setting a default value for a null Select Option in React: a guide

I am currently working with an array of values and looping through them to display in a Select Option. <Form.Item label="Status"> <Select value={user.status} onChange={handleStatusChange} > ...

Is there a way to customize the design of the "Browse" button within the HTML file upload control?

I've been searching high and low on the internet for a simple, sleek method to customize the appearance of the Browse button on an HTML <input type=file> element. However, all the solutions I've come across involve hiding controls, placing ...

What steps can I take to ensure that the content remains intact even after the page is

Hey there, I hope you're having a great start to the New Year! Recently, I've been working on creating a calculator using HTML, CSS, and JavaScript. One thing that's been puzzling me is how to make sure that the content in the input field do ...

Altering CSS attribute values using a random number generator

Is there a way to randomly change the animation-duration attribute in the following CSS code? I want it to range from 0 to 1. @keyframes blink { 50% { border-color: #ff0000; } } p{ animation-name: blink ; animation-duration: 0.1s ; animatio ...

After signing out and logging back in, data fails to display - ReactJS

I am encountering difficulties with the login/logout process and displaying data in a form. When I restart my server and log in without logging out, everything works fine and the data appears in the form. However, if I log in, then log out, and log back in ...

The inner panel height does not extend to 100% when there is overflow

When pressing the submit button on a panel containing components, an overlay appears but does not cover the entire parent panel if scrolled to the bottom. Additionally, I want the spinner to always be centered, whether scrolling or not. I've tried usi ...

The functionality of Object.assign in REACT is producing unexpected and incorrect results

Hey everyone, I have a project in React with 3 components. My goal is to extract the state from these 3 components and combine them into one JSON object on a final page. The components are not nested as child and parent, so my workaround was to set the st ...

Issues with the Content Editable Functionality

While working on my website, I encountered a strange issue. For some reason, I can't seem to get the contenteditable="true" attribute to work on the heading with the ID "hl". It would be awesome if someone could help me figure out how to mak ...

Two objects precisely located in the same spot yet not visible simultaneously

There are two elements here. One is a transparent button, and the other is an image positioned behind it. The background property didn't work for me, so I attempted different variations without success: .top-container > button { background-ima ...

Adjust the width of a div based on its height dimension

I have a div called #slideshow that contains images with a 2:1 aspect ratio. To set the height of the image using jQuery, I use the following function: Keep in mind that the Slideshow Div is always 100% wide in relation to the browser window. If the use ...

What is the method for adjusting the size of text while rendering on a canvas?

When it comes to scaling text with CSS transform scale, for instance: transform: scale(2, 4); fontSize: 20px // Is including fontSize necessary? I also have the task of displaying the same text on a canvas element. function draw() { const ctx = document ...

Encountering an error with errno -100, code 'EPROTO', and syscall 'write' while trying to access localhost:3000 in my frontend repository

It's been a while since I last worked on this repository, and from what I remember, it was running smoothly before it went dormant for almost a year. I'm concerned that the SSL certificate may have expired or needs an update causing issues. I att ...