Definición de criterios de construcción de iconos para seguir escalando el sistema.
Los botones de iconos permiten a los usuarios realizar acciones rápidas para desencadenar funciones que permitan los sistemas. Para esto es importante considerar:
Esta versión de botón de icono es la estándar y simple, donde su contenedor cuadrado es blanco para la versión clara, cuando hay un fondo blanco, el contenedor desaparece por el mayor contraste logrado (fondo blanco, icono azul).
<button class="btn-icono">
<img class="icono-lineal" src="iconos/duda.svg" alt=""
width="32"
height="32">
</button>
button.btn-icono {
align-items: center;
background: #FFFFFF;
border-radius: 10px;
border: 3px solid transparent;
cursor: pointer;
display: flex;
gap: 10px;
height: 50px;
justify-content: center;
min-width: 52px;
mix-blend-mode: normal;
padding: 9px 10px;
position: relative;
transition-duration: 0.2s;
transition-timing-function: ease-in-out;
}
button.btn-icono:hover {
background-color: #EBF2F9;
}
button.btn-icono:active{
background: #EBF2F9;
border: 3px solid #024588;
}
Para utilizar funcionalidades y acciones dentro de un botón con icono, se utiliza la flecha que evidencia que este icono tiene más información al presionarlo, es decir, no desencadena una acción, sino más bien despliega más funciones asociadas al ícono.
<div class="dropdown">
<label id="btn-icono-1" onclick="botonIconoActivar()"
class="btn-icono-select"
for="btn-icono-toggle">
<img src="iconos/lenguaje_lineal.svg" alt="" width="32" height="32">
<img class="flecha-abajo" src="iconos/abajo_lineal.svg" alt="" width="32"
height="32">
<img class="flecha-arriba" src="iconos/arriba_lineal.svg" alt="" width="32"
height="32">
</label>
<input type="checkbox" class="fab-checkbox" id="btn-icono-toggle">
<ul class="fab-menu">
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 1</li>
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 2</li>
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 3</li>
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 4</li>
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 5</li>
</ul>
</input>
</div>
label.btn-icono-select{
align-items: center;
background: #FFFFFF;
border-radius: 10px;
border: 3px solid transparent;
color: #024588;
cursor: pointer;
display: flex;
font-family: 'Montserrat';
font-size: 16px;
font-style: normal;
font-weight: 500;
gap: 10px;
height: 50px;
justify-content: center;
line-height: 26px;
mix-blend-mode: normal;
padding: 9px 10px;
transition-duration: 0.2s;
transition-timing-function: ease-in-out;
}
label.btn-icono-select:hover {
background-color: #EBF2F9;
}
label.btn-icono-select:active{
background: #EBF2F9;
border: 3px solid #024588;
}
.flecha-abajo {
display: block;
}
.flecha-arriba {
display: none;
}
.esconder {
display: none;
}
.mostrar {
display: block !important;
}
input.fab-checkbox {
position: absolute;
opacity: 0;
cursor: pointer;
}
.dropdown {
position: relative;
display: inline-block;
}
.fab-menu {
display: none;
position: absolute;
top: 58px;
left: 0;
margin: 0;
padding: 0;
background-color: #FFFFFF;
width: 100%;
min-width: 200px;
max-width: 240px;
filter: drop-shadow(0px 3px 16px rgba(16, 15, 15, 0.2));
border-radius: 10px;
}
.fab-menu li:first-child {
border-radius: 10px 10px 0 0;
}
.fab-menu li:last-child {
border-radius: 0 0 10px 10px;
}
.fab-menu li {
padding: 9px 20px;
text-decoration: none;
display: flex;
border-radius: 0 0 0 0 !important;
justify-content: flex-start;
align-items: center;
gap: 10px;
font-family: 'Montserrat';
font-style: normal;
font-weight: 500;
font-size: 16px;
line-height: 26px;
color: #024588;
cursor: pointer;
}
.fab-menu li:hover {
background-color: #EBF2F9;
}
.fab-menu li:first-child:hover {
background-color: #EBF2F9;
border-radius: 10px 10px 0 0 !important;
}
.fab-menu li:last-child:hover {
background-color: #EBF2F9;
border-radius: 0 0 10px 10px !important;
}
.fab-menu li:active {
background-color: #D7E5F4;
}
.fab-menu li:first-child:active {
background-color: #D7E5F4;
border-radius: 10px 10px 0 0 !important;
}
.fab-menu li:last-child:active {
background-color: #D7E5F4;
border-radius: 0 0 10px 10px !important;
}
.fab-checkbox:checked+.fab-menu {
display: block;
}
function botonIconoActivar() {
const miBoton = document.getElementById("btn-icono-1");
miBoton.classList.toggle("btn-icono-activar");
const flechaAbajo = miBoton.querySelector(".flecha-abajo");
flechaAbajo.classList.toggle("esconder");
const flechaArriba = miBoton.querySelector(".flecha-arriba");
flechaArriba.classList.toggle("mostrar");
}
El icono de tres puntos es en sí mismo una representación de un botón con icono desplegable, una variación del menú de hamburguesa.
<div class="dropdown">
<label id="btn-icono-1" onclick="botonIconoActivar()"
class="btn-icono-select"
for="btn-icono-toggle">
<img src="iconos/Ver_mas_vertical_lineal.svg" alt="" width="32"
height="32">
</label>
<input type="checkbox" class="fab-checkbox" id="btn-icono-toggle">
<ul class="fab-menu">
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 1</li>
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 2</li>
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 3</li>
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 4</li>
<li><img src="iconos/agregar_persona_lineal.svg" alt="" width="32"
height="32">
Agregar 5</li>
</ul>
</input>
</div>
label.btn-icono-select{
align-items: center;
background: #FFFFFF;
border-radius: 10px;
border: 3px solid transparent;
color: #024588;
cursor: pointer;
display: flex;
font-family: 'Montserrat';
font-size: 16px;
font-style: normal;
font-weight: 500;
gap: 10px;
height: 50px;
justify-content: center;
line-height: 26px;
mix-blend-mode: normal;
padding: 9px 10px;
transition-duration: 0.2s;
transition-timing-function: ease-in-out;
}
label.btn-icono-select:hover {
background-color: #EBF2F9;
}
label.btn-icono-select:active{
background: #EBF2F9;
border: 3px solid #024588;
}
.flecha-abajo {
display: block;
}
.flecha-arriba {
display: none;
}
.esconder {
display: none;
}
.mostrar {
display: block !important;
}
input.fab-checkbox {
position: absolute;
opacity: 0;
cursor: pointer;
}
.dropdown {
position: relative;
display: inline-block;
}
.fab-menu {
display: none;
position: absolute;
top: 58px;
left: 0;
margin: 0;
padding: 0;
background-color: #FFFFFF;
width: 100%;
min-width: 200px;
max-width: 240px;
filter: drop-shadow(0px 3px 16px rgba(16, 15, 15, 0.2));
border-radius: 10px;
}
.fab-menu li:first-child {
border-radius: 10px 10px 0 0;
}
.fab-menu li:last-child {
border-radius: 0 0 10px 10px;
}
.fab-menu li {
padding: 9px 20px;
text-decoration: none;
display: flex;
border-radius: 0 0 0 0 !important;
justify-content: flex-start;
align-items: center;
gap: 10px;
font-family: 'Montserrat';
font-style: normal;
font-weight: 500;
font-size: 16px;
line-height: 26px;
color: #024588;
cursor: pointer;
}
.fab-menu li:hover {
background-color: #EBF2F9;
}
.fab-menu li:first-child:hover {
background-color: #EBF2F9;
border-radius: 10px 10px 0 0 !important;
}
.fab-menu li:last-child:hover {
background-color: #EBF2F9;
border-radius: 0 0 10px 10px !important;
}
.fab-menu li:active {
background-color: #D7E5F4;
}
.fab-menu li:first-child:active {
background-color: #D7E5F4;
border-radius: 10px 10px 0 0 !important;
}
.fab-menu li:last-child:active {
background-color: #D7E5F4;
border-radius: 0 0 10px 10px !important;
}
.fab-checkbox:checked+.fab-menu {
display: block;
}
function botonIconoActivar() {
const miBoton = document.getElementById("btn-icono-1");
miBoton.classList.toggle("btn-icono-activar");
}