✨ [bootsier] Nuevos componentes Navbar y Offcanvas
This commit is contained in:
parent
83e09c38ce
commit
db13a6ab8b
17 changed files with 743 additions and 16 deletions
|
|
@ -2,10 +2,23 @@ use pagetop::prelude::*;
|
|||
|
||||
use std::fmt;
|
||||
|
||||
mod container;
|
||||
// Container.
|
||||
pub mod container;
|
||||
pub use container::{Container, ContainerType};
|
||||
|
||||
// Grid.
|
||||
pub mod grid;
|
||||
pub use grid::Grid;
|
||||
|
||||
// Offcanvas.
|
||||
pub mod offcanvas;
|
||||
pub use offcanvas::{
|
||||
Offcanvas, OffcanvasBackdrop, OffcanvasBodyScroll, OffcanvasPlacement, OffcanvasVisibility,
|
||||
};
|
||||
|
||||
// Navbar.
|
||||
pub mod navbar;
|
||||
pub use navbar::{Navbar, NavbarType};
|
||||
|
||||
/// Define los puntos de interrupción (*breakpoints*) usados por Bootstrap para diseño responsivo.
|
||||
#[rustfmt::skip]
|
||||
|
|
@ -24,15 +37,46 @@ pub enum BreakPoint {
|
|||
}
|
||||
|
||||
impl BreakPoint {
|
||||
/// Indica si se trata de un punto de interrupción de Bootstrap.
|
||||
/// Devuelve `true` si el valor es SM, MD, LG, XL o XXL.
|
||||
/// Devuelve `false` si es None, Fluid o FluidMax.
|
||||
/// Indica si el punto de interrupción es efectivo en Bootstrap.
|
||||
///
|
||||
/// Devuelve `true` si el valor es `SM`, `MD`, `LG`, `XL` o `XXL`.
|
||||
/// Devuelve `false` si es `None`, `Fluid` o `FluidMax`.
|
||||
pub fn is_breakpoint(&self) -> bool {
|
||||
!matches!(
|
||||
self,
|
||||
BreakPoint::None | BreakPoint::Fluid | BreakPoint::FluidMax(_)
|
||||
)
|
||||
}
|
||||
|
||||
/// Genera un nombre de clase CSS basado en el punto de interrupción.
|
||||
///
|
||||
/// Si es un punto de interrupción efectivo (ver [`is_breakpoint()`] se concatenan el prefijo
|
||||
/// proporcionado, un guion (`-`) y el texto asociado al punto de interrupción. En otro caso, se
|
||||
/// devuelve únicamente el prefijo.
|
||||
///
|
||||
/// # Parámetros
|
||||
///
|
||||
/// - `prefix`: Prefijo para concatenar con el punto de interrupción.
|
||||
///
|
||||
/// # Ejemplo
|
||||
///
|
||||
/// ```rust#ignore
|
||||
/// let breakpoint = BreakPoint::MD;
|
||||
/// let class = breakpoint.breakpoint_class("col");
|
||||
/// assert_eq!(class, "col-md".to_string());
|
||||
///
|
||||
/// let breakpoint = BreakPoint::Fluid;
|
||||
/// let class = breakpoint.breakpoint_class("offcanvas");
|
||||
/// assert_eq!(class, "offcanvas".to_string());
|
||||
/// ```
|
||||
pub fn breakpoint_class(&self, prefix: impl Into<String>) -> String {
|
||||
let prefix: String = prefix.into();
|
||||
if self.is_breakpoint() {
|
||||
join_string!(prefix, "-", self.to_string())
|
||||
} else {
|
||||
prefix
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Devuelve el texto asociado al punto de interrupción usado por Bootstrap.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue