From 6bea4a57933f3db6976196f27b82b5fccc3e67d6 Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Tue, 11 Aug 2026 00:46:45 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20(base):=20A=C3=B1ade=20componente?= =?UTF-8?q?=20Breadcrumb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/css/basic.css | 32 +++++++ src/base/component.rs | 4 + src/base/component/breadcrumb.rs | 7 ++ src/base/component/breadcrumb/component.rs | 93 ++++++++++++++++++ src/base/component/breadcrumb/crumb.rs | 105 +++++++++++++++++++++ src/locale/en-US/base.ftl | 3 + src/locale/es-ES/base.ftl | 3 + 7 files changed, 247 insertions(+) create mode 100644 src/base/component/breadcrumb.rs create mode 100644 src/base/component/breadcrumb/component.rs create mode 100644 src/base/component/breadcrumb/crumb.rs diff --git a/assets/css/basic.css b/assets/css/basic.css index 8332ca99..aa54408b 100644 --- a/assets/css/basic.css +++ b/assets/css/basic.css @@ -276,6 +276,38 @@ input:disabled + label { background-color: color-mix(in srgb, var(--val-color--primary) 85%, black); } +/* + * Breadcrumb component + */ + +.breadcrumb { + display: flex; + flex-wrap: wrap; + list-style: none; + margin: 0 0 1rem; + padding: 0.75rem 1rem; + font-size: 0.875rem; +} +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: 0.5rem; + color: var(--val-color--text--muted); + content: "/"; +} +.breadcrumb-item.active { + color: var(--val-color--text--muted); +} +.breadcrumb-item a { + color: var(--val-color--text); + text-decoration: none; +} +.breadcrumb-item a:hover { + text-decoration: underline; +} + /* * Region Footer */ diff --git a/src/base/component.rs b/src/base/component.rs index 5a2d6061..6bb4e8b9 100644 --- a/src/base/component.rs +++ b/src/base/component.rs @@ -5,6 +5,10 @@ pub mod layout; mod badge; pub use badge::Badge; +pub mod breadcrumb; +#[doc(inline)] +pub use breadcrumb::Breadcrumb; + mod block; pub use block::Block; diff --git a/src/base/component/breadcrumb.rs b/src/base/component/breadcrumb.rs new file mode 100644 index 00000000..ebe4d712 --- /dev/null +++ b/src/base/component/breadcrumb.rs @@ -0,0 +1,7 @@ +//! Definiciones para mostrar rutas de navegación ([`Breadcrumb`]). + +mod component; +pub use component::Breadcrumb; + +mod crumb; +pub use crumb::Crumb; diff --git a/src/base/component/breadcrumb/component.rs b/src/base/component/breadcrumb/component.rs new file mode 100644 index 00000000..abd1e552 --- /dev/null +++ b/src/base/component/breadcrumb/component.rs @@ -0,0 +1,93 @@ +use crate::prelude::*; + +/// Componente para representar una ruta de navegación (*breadcrumb*). +/// +/// Renderiza la estructura HTML de cualquier breadcrumb encapsulando en un elemento `