Diseñar botones de arranque de twitter

96

Los botones de Twitter-Bootstrap son increíblemente hermosos. Pruébelos desplazándose sobre ellos

captura de pantalla del botón bootstrap

Pero están limitados en colores.

¿Hay alguna forma de que pueda cambiar el color base del botón manteniendo el hermoso efecto de desplazamiento que el bootstrap ha hecho tan hermoso y sin esfuerzo?

No estoy al tanto de cómo se ve el CSS / JavaScript que usa Twitter para mantener esos efectos.

Elías7
fuente
7
Busque y edite las menos definiciones de los botones. Luego recompile el CSS con lessc. ¡No edite los archivos CSS directamente! No se puede mantener.
nalply

Respuestas:

25

Básicamente, los botones de Twitter Bootstrap están controlados en CSS por ".btn {}". Lo que tienes que hacer es ir al archivo CSS y encontrar donde dice "btn" y cambiar la configuración de color. Sin embargo, no es tan simple como hacer eso, ya que también tienes que cambiar el color al que cambia el botón cuando lo resaltas, etc. Para hacer ESO, debes buscar otras etiquetas en CSS como ".btn: hover {} ", etc.

Cambiarlo requiere cambiar el CSS. Aquí hay un enlace rápido a ese archivo:

https://github.com/twbs/bootstrap/blob/master/dist/css/bootstrap.css

Tanvir Ahmed
fuente
33
Esta no es una solución particularmente hermosa. Utilice las otras soluciones, que se basan en MENOS. O personalice bootstrap a través del editor de variables en su sitio web.
Jesper
5
simplemente anótelo ... cargar su css al final puede ayudarlo a resolver el problema ... usando la misma calss de bootstrap
Jaimin MosLake
1
Sí, definitivamente estaría en contra de modificar bootstrap.css. Como dijo Jaimin, simplemente anótelo.
Tim Ludwinski
176

Encontré que la forma más sencilla es poner esto en sus anulaciones. Perdón por mi elección de color poco imaginativa

Bootstrap 4-Alpha SASS

.my-btn {
  //@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
  @include button-variant(red, white, blue);
}

Ejemplo de Bootstrap 4 Alpha SASS

Bootstrap 3 MENOS

.my-btn {
  //.button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
  .button-variant(red; white; blue);
}

Ejemplo de Bootstrap 3 MENOS

Bootstrap 3 SASS

.my-btn {
  //@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
  @include button-variant(red, white, blue);
}

Ejemplo de Bootstrap 3 SASS

Bootstrap 2.3 MENOS

.btn-primary {
  //.buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));
  .buttonBackground(red, white);
}

Ejemplo de Bootstrap 2.3 LESS

Bootstrap 2.3 SASS

.btn-primary {
  //@include buttonBackground($btnPrimaryBackground, $btnPrimaryBackgroundHighlight); 
  @include buttonBackground(red, white); 
}

Se encargará de los activos flotantes por ti

De los comentarios, si desea aclarar el botón en lugar de oscurecer cuando usa negro (o simplemente desea invertir), debe extender la clase un poco más así:

Bootstrap 3 SASS Ligthen

.my-btn {
  // @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
  $color: #fff;
  $background: #000;
  $border: #333;
  @include button-variant($color, $background, $border);
  // override the default darkening with lightening
  &:hover,
  &:focus,
  &.focus,
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: lighten($background, 20%); //10% default
    border-color: lighten($border, 22%); // 12% default
  }
}

Bootstrap 3 SASS Lighten Ejemplo

chrisan
fuente
17
Usted señor es fantástico.
basarat
7
¿Cómo traducirías esto a scss?
Dreyfuzz
1
Luego, ejecute lesscpara compilar sus cambios en CSS.
nalply
7
Dreyfuzz No uso scss, pero mirando los bootstraps sass de terceros , parece que haría .btn-primary {@include buttonBackground($btnPrimaryBackground, $btnPrimaryBackgroundHighlight); }`cambiando sus variables adecuadamente (lo siento por el formato terrible)
chrisan
Consigo .buttonBackground is undefined in main.lessQué necesito para incluir cualquier cosa menos en mi?
Himalay Majumdar
32

Puede sobrescribir los colores en su CSS, por ejemplo, para el botón Peligro:

.btn-danger { border-color: #[insert color here]; background-color: #[insert color here];

.btn-danger:hover { border-color: #[insert color here]; background-color: #[insert color here]; }
MikeAr
fuente
7
Creo que necesitas estilizar :focusy :activetambién, o de lo contrario, a veces obtienes colores extraños en los clics / arrastres ...
Simon East
Simple, me gusta.
Nino Škopac
1
Para aquellos que encontraron esto a través de la búsqueda, y obtienen un color predeterminado cuando hacen clic y arrastran un botón, necesitan .btn-primary:active:focus {para seleccionar y anular ese caso
Shane Reustle
27

Aquí hay un buen recurso: http://charliepark.org/bootstrap_buttons/

Puede cambiar de color y ver el efecto en acción.

Tran Cuong
fuente
2
Este es un configurador. Es fácil si tiene prisa por crear un prototipo para el cliente. Sin embargo, no se puede mantener a largo plazo. ¿Y si desaparece el configurador? Por lo tanto, para lo real, lessces una mejor solución.
nalply
Me encanta esta solución, aunque desearía que hubiera una forma de ingresar rgb / rgba para obtener los colores exactos.
Sedrick
@nalply less es genial si ya ha dado ese paso, pero este "configurador" hace todo lo necesario para generar css. Déjelo caer y listo. Después de eso, no necesitará el configurador.
moodboom
21

Si ya está cargando su propio archivo CSS personalizado después de cargar bootstrap.css (versión 3), puede agregar estos 2 estilos CSS a su custom.css y anularán los valores predeterminados de bootstrap para el estilo de botón predeterminado.

.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary {

  background-color: #A6A8C1;
  border-color: #31347B;
 }

.btn
{
  background-color: #9F418F;
  border-color: #9F418F;
}
Lilster
fuente
12

En lugar de cambiar los valores de CSS uno por uno, sugeriría usar MENOS. Bootstrap tiene MENOS versión en Github: https://github.com/twbs/bootstrap

MENOS le permite definir variables para cambiar colores, lo que lo hace mucho más conveniente. Defina el color una vez y MENOS compila el archivo CSS que cambia los valores globalmente. Ahorra tiempo y esfuerzo.

Petri Tuononen
fuente
11

Para anular completamente los estilos del botón de arranque, debe anular una lista de propiedades. Vea el siguiente ejemplo.

    .btn-primary, .btn-primary:hover, .btn-primary:focus, .btn-primary.focus, 
    .btn-primary:active, .btn-primary.active, .btn-primary:visited,
    .btn-primary:active:hover, .btn-primary.active:hover{
        background-color: #F19425;
        color:#fff;
        border: none;
        outline: none;
    }

Si no usa todos los estilos enumerados, verá los estilos predeterminados al realizar acciones en el botón. Por ejemplo, una vez que haga clic en el botón y quite el puntero del mouse del botón, verá el color predeterminado visible. O mantenga presionado el botón verá los colores predeterminados. Por lo tanto, he enumerado todos los pseudoestilos que deben anularse.

Rahul Singh
fuente
este método es genial. es solo superado por la personalización de arranque MENOS
Gianluca Ghettini
5

O prueba http://twitterbootstrapbuttons.w3masters.nl/ . Crea css para botones basados ​​en la entrada de color html. Agregue el css después del bootstrap css. Proporciona tres estilos de botones (claro, oscuro y giratorio).

Bass Jobsen
fuente
1
Este es un configurador (más o menos). Es bastante fácil si tiene prisa por crear un prototipo para el cliente. Sin embargo, no se puede mantener a largo plazo. ¿Y si desaparece el configurador? Por lo tanto, para lo real, lessces una mejor solución.
nalply
5

Aquí tienes una forma muy fácil y eficiente: agrega en tu CSS tu clase con los colores que deseas aplicar a tu botón:

.my-btn{
    background: #0099cc;
    color: #ffffff;
}
.my-btn:hover { 
  border-color: #C0C0C0; 
  background-color: #C0C0C0; 
}

y agregue el estilo a su botón de arranque o enlace:

<a href="xxx" class="btn btn-info my-btn">aaa</a>
Fred
fuente
3

En Twitter Bootstrap bootstrap 3.0.0, el botón de Twitter es plano. Puede personalizarlo desde http://getbootstrap.com/customize . Color del botón, borde radiante, etc.

También puede encontrar el código HTML y otras funciones en http://twitterbootstrap.org/bootstrap-css-buttons .

El botón Bootstrap 2.3.2 es degradado pero 3.0.0 (nueva versión) plano y se ve más genial.

y también puede encontrar para personalizar todo el aspecto y el estilo de bootstrap de estos recursos: http://twitterbootstrap.org/top-5-customizing-bootstrap-resources/

Mujahidul Jahid
fuente
1

Sé que este es un hilo más antiguo, pero solo para agregar otra perspectiva. Afirmaría que el uso de anulaciones es realmente un olor a código y rápidamente se saldrá de control en proyectos más grandes. Hoy estás anulando los botones, mañana los modales, al día siguiente los desplegables, etc., etc.

Aconsejaría intentar posiblemente comentar la inclusión buttons.lessy definir la mía propia o buscar otra biblioteca de botones que sea más adecuada para mi proyecto. Enchufe descarado: aquí hay un ejemplo de lo fácil que es mezclar nuestra biblioteca de botones con TB: uso de botones con Twitter Bootstrap . En la práctica, nuevamente, es probable que desee eliminar la buttons.lessinclusión por completo para mejorar el rendimiento, pero esto muestra cómo puede hacer que las cosas se vean un poco menos "genéricas". Todavía no he hecho este ejercicio, pero me imagino que podría comenzar simplemente comentando líneas como:

https://github.com/twbs/bootstrap/blob/master/less/bootstrap.less#L17

Y luego recompilar usando `lessc usando uno de sus propios módulos de botones. De esa manera, obtiene el núcleo de TB probado en batalla, pero aún puede personalizar las cosas sin tener que recurrir a modificaciones importantes. No hay absolutamente ninguna razón para no usar solo partes de una biblioteca como Bootstrap. Por supuesto, lo mismo se aplica a la versión Sass de TB.

Robar
fuente
0

Para Bootstrap (al menos para la versión 3.1.1) y LESS, puede usar esto:

.btn-my-custom {
    .button-variant(@color; @background; @border)
}

Esto se define en bootstrap/less/buttons.less.

Luís Cruz
fuente
0

Puede cambiar el color de fondo y usar! Important;

.btn-primary {
  background-color: #003c79 !important;
  border-color: #15548b !important;
  color: #fff;
}

.btn-primary:hover {
  background-color: #4289c6 !important;
  border-color: #3877ae !important;
  color: #fff;
}

.btn-primary.focus, .btn-primary:focus {
   background-color: #4289c6 !important;
   border-color: #3877ae !important;
   color: #fff;
}

Islam Rafiqul
fuente