Button in React
Buttons allows users to take actions and make choices with a single tap.
They (buttons) communicate the actions that users can perform. It is placed by your UI in places like below:
The Button comes in 3 variants: text (default), contained, and outlined.
Text buttons are used for less-pronounced actions, including those in card dialogs. In cards, the text buttons will help us to maintain an emphasis on card content.
Contained buttons are high-emphasis, distinguished by the use of elevation and fill. It contains actions which are primary used in our App.
You can remove the elevation with the disable Elevation prop.
Outlined buttons are medium-emphasis buttons. They contain essential actions but not the main action in the app.
Outlined buttons are the lower alternative to contain the buttons or a higher emphasis alternative to the text buttons.
All components accept an onClick handler which is applied to the root DOM element.
Note: The documentation avoid mentioning the native props in our API section of the components.
In addition, by using the default button colors, you can add custom or disable any you don't need.
Use this propertty for larger or smaller buttons.
Buttons with label and icon
Sometimes you may want to have icons for certain buttons to enhance the UX of the application, as we acknowledge logos easier than plain text.
For example, If we want to delete button than you should label it with a dustbin icon.
Icon buttons are found in toolbars and app bars. Icons are appropriate for toggle buttons which allow the choices to be selected or deselected. Like, adding or removing any item from the label.
Use the size prop for larger or smaller icon in button.
Use color prop to apply the theme color palette to the component.
Below are the examples of customizing our component.
The loading buttons can show the loading state and disable interactions of the button.
Toggle the loading button to see the transition between unrelated positions.
Icon button, Text button, contained buttons, and floating action buttons are built into a single component which is called as ButtonBase.
You can take lower level component to create custom interactions.
Third-party Routing libraries
Navigating the client without an exact HTTP trip to the server is a unique use case. The ButtonBase component provides component properties to handle the use case.
ButtonBase sets the component pointer-events: none; on the disable Button, which prevents the appearance of the disabled cursor.
If you want to use "not allowed", you have two options:
CSS only: You can remove the pointer-event style on the disabled state of < Button> element:
You should add pointer-events: none; when you needed to display tooltips on disabled elements.
If you render anything other than the button element, then the cursor will not change. For example, a link <a> element.
DOM change. You can wrap the button:
It can support any element, for example, a link <a> element.
The component will comes with the unstyled version. It is ideal for doing heavy optimizations and reducing bundle size.
How to use the button component in ReactJS?
Buttons allow users to take their actions and make choices at a single tap. This component is available to us for React UI content, and it is very easy to integrate. We can use button component in ReactJS by using following approach.
Creating react app and installing modules:
Step 1: Build a React application by using the given below command:
Step 2: After creating the project folder, and name of the folder to navigate it by using the given command:
Step 3: Install the Material-UI module using the following command, after creating the ReactJS application:
Project Structure: It will look as the following.
App.js: Now, you have to write the below code in the App.js file.
Here, the App is the default component where we have written in our code.
Steps to run the application:
Run the application by using the command from the root directory of the project:
Output: Now open your browser and go to http://localhost:3000/. You can see the below output: