Descripción general del botón React
The React Button Component lets you enable clickable elements that trigger actions in your React app. You get full control over how you set button variants, configure styles for the wrapped element, and define sizes. The Button Component also gives flexibility through the React Button clicked callback, toggle the React button, disable the React button, and more.
React Button Example
Usage
Primero, debe instalar el paquete Ignite UI for React npm correspondiente ejecutando el siguiente comando:
npm install igniteui-react
Luego necesitarás importar IgrButton
, su CSS necesario y registrar su módulo, así:
import { IgrButtonModule, IgrButton } from 'igniteui-react';
import 'igniteui-webcomponents/themes/light/bootstrap.css';
IgrButtonModule.register();
<IgrButton />
Prefix / Suffix
Con las ranuras prefix
y suffix
del componente IgrButton
, podemos agregar contenido diferente antes y después del contenido principal del botón.
<IgrButton type="button" variant="contained">
<span slot="prefix">+</span>Click me<span slot="suffix">-</span>
</IgrButton>
Type
El componente del botón cambiará su estructura interna de un <button>
a un elemento de tipo <a>
cuando se establezca el atributo href
. En ese caso, el botón puede considerarse como un enlace normal. Configurar el atributo href
le permitirá configurar también los atributos rel
, target
y download
. En el caso de que el componente del botón utilice un elemento <button>
real internamente, podemos especificar su displayType
estableciendo la propiedad en cualquiera de los siguientes valores:
Submit
: cuando queremos enviar los datos del formulario.reset
- cuando queremos restablecer los datos del formulario a sus valores inicialesbutton
: cuando queremos agregar un botón con una funcionalidad personalizada en cualquier lugar de una página web
Button Variants
Contained Button
Utilice el atributo variant
para agregar un botón contenido simple en su plantilla de componente. Tenga en cuenta que si no configura la variante, de forma predeterminada se configurará como contenida.
<IgrButton variant="contained"><span>Contained</span></IgrButton>
Outlined Button
Todo lo que tienes que hacer para crear un botón outlined
es cambiar el valor de la propiedad variant
:
<IgrButton variant="outlined"><span>Outlined</span></IgrButton>
Flat Button
Analógicamente podemos pasar a la variante flat
.
<IgrButton variant="flat"><span>Flat</span></IgrButton>
Floating Action Button
Podemos crear un botón de acción flotante configurando la propiedad variant
en fab
:
<IgrButton variant="fab"><span>Fab</span></IgrButton>
Button Sizing
Los usuarios pueden cambiar el tamaño del componente button
usando la variable CSS--ig-size
. En el siguiente ejemplo, agregaremos algunos botones de opción para mostrar todos los valores de tamaño. De esta manera, cada vez que se seleccione uno, cambiaremos el tamaño del botón.
import { IgrButton, IgrRadio, IgrRadioGroup, IgrButtonModule, IgrRadioModule, IgrRadioGroupModule } from 'igniteui-react';
<IgrRadioGroup alignment="horizontal" style={{display: 'flex', margin: '0 auto', width: '15%'}}>
<IgrRadio name="size" value="small" labelPosition="after" checked={true} change={this.onRadioChange}>
<span>Small</span>
</IgrRadio>
<IgrRadio name="size" value="medium" labelPosition="after" change={this.onRadioChange}>
<span>Medium</span>
</IgrRadio>
<IgrRadio name="size" value="large" labelPosition="after" change={this.onRadioChange}>
<span>Large</span>
</IgrRadio>
</IgrRadioGroup>
<div>
<IgrButton ref={this.flatButtonRef} className="flat-btn" variant="flat"><span>Flat</span></IgrButton>
<IgrButton ref={this.containedButtonRef} className="contained-btn" variant="contained"><span>Contained</span></IgrButton>
<IgrButton ref={this.outlinedButtonRef} className="outlined-btn" variant="outlined"><span>Outlined</span></IgrButton>
<IgrButton ref={this.fabButtonRef} className="fab-btn" variant="fab"><span>Like</span></IgrButton>
</div>
public onRadioChange(e: any) {
this.flatButton.size = e.value;
this.containedButton.size = e.value;
this.outlinedButton.size = e.value;
this.fabButton.size = e.value;
}
El resultado de implementar el código anterior debería verse similar al siguiente:
Download
Configurar la propiedad download
le pedirá al usuario que guarde la URL vinculada en lugar de navegar hasta ella.
<IgrButton
href=""
variant="contained"
download="url"
target="_blank" >
<span>Download</span>
</IgrButton>
Styling
El componente del botón expone la parte CSS base
que nos permite diseñar el elemento envuelto (<button>
o <a>
).
igc-button::part(base) {
background-color: #e99221;
color: #011627;
padding: 18px;
}