Eve/src/components/Breadcrumbs.ts
Danny Morabito dc9abee715
🎨 🚀 Overhaul UI/UX with comprehensive design system improvements
 Features added:

- 🔍 Implement functional search in header navigation
- ⚙️ Add basic user settings page
- 📱 Make dashboard fully responsive

🔧 Enhancements:

- 🎭 Standardize CSS with consistent theming across components
- 🧹 Remove unused CSS for better performance
- 📊 Improve dashboard layout and visual hierarchy
- 📦 Redesign last block widget for better usability

💅 This commit introduces a cohesive design system with functional design-token components for a more  polished user experience.
2025-03-20 09:46:47 +01:00

78 lines
2 KiB
TypeScript

import { LitElement, css, html } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { map } from 'lit/directives/map.js';
import '@components/BreadcrumbsItem';
@customElement('arx-breadcrumbs')
export class Breadcrumbs extends LitElement {
@property({ type: Array }) items: { text: string; href?: string }[] = [];
static override styles = [
css`
:host {
display: block;
}
nav {
max-width: 1200px;
margin: 1.25rem auto;
background-color: var(--color-base-200);
border-radius: var(--radius-box);
border: var(--border) solid var(--color-base-300);
padding: 0.75rem 1.25rem;
font-size: 0.95rem;
transition: all 0.3s ease;
box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px)
calc(var(--depth) * 4px)
oklch(from var(--color-base-content) l c h / 0.1),
calc(var(--depth) * -1px) calc(var(--depth) * -1px)
calc(var(--depth) * 3px)
oklch(from var(--color-base-100) l c h / 0.4);
}
ol {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: nowrap;
align-items: center;
overflow-x: auto;
scrollbar-width: none;
color: var(--color-base-content);
}
ol::-webkit-scrollbar {
display: none;
}
@media (max-width: 640px) {
nav {
padding: 0.5rem 1rem;
margin: 0.75rem auto;
}
}
`,
];
override render() {
return html`
<nav aria-label="Breadcrumb">
<ol>
${map(
this.items,
(item, index) => html`
<arx-breadcrumbs-item
.text=${item.text}
.href=${item.href}
.index=${index}
.isLast=${index === this.items.length - 1}
></arx-breadcrumbs-item>
`,
)}
</ol>
</nav>
`;
}
}