Files
data-viz-elements-demo/src/app/app.component.scss
Giuliano Silvestro 21f34f1f4d Initial commit: data-viz-elements-demo application
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 22:06:36 +10:00

143 lines
2.3 KiB
SCSS

.demo-app {
min-height: 100vh;
padding: 2rem;
max-width: 1400px;
margin: 0 auto;
}
// Header
.demo-header {
margin-bottom: 2rem;
display: flex;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
&__title {
font-size: 1.75rem;
font-weight: 700;
color: var(--color-text-primary);
}
&__subtitle {
font-size: 0.875rem;
color: var(--color-text-secondary);
flex: 1;
}
&__actions {
display: flex;
gap: 0.5rem;
}
}
// Button
.demo-btn {
padding: 0.5rem 1rem;
border-radius: 0.375rem;
font-size: 0.875rem;
font-weight: 500;
cursor: pointer;
transition: all 0.15s ease;
border: 1px solid var(--color-border);
background: var(--color-bg-secondary);
color: var(--color-text-primary);
&:hover {
border-color: var(--color-text-secondary);
}
&--ghost {
background: transparent;
}
}
// Navigation
.demo-nav {
display: flex;
gap: 0.25rem;
margin-bottom: 2rem;
border-bottom: 1px solid var(--color-border);
padding-bottom: 0;
&__item {
padding: 0.5rem 1rem;
background: none;
border: none;
border-bottom: 2px solid transparent;
color: var(--color-text-secondary);
font-size: 0.875rem;
font-weight: 500;
cursor: pointer;
transition: all 0.15s ease;
margin-bottom: -1px;
&:hover {
color: var(--color-text-primary);
}
&--active {
color: var(--color-primary);
border-bottom-color: var(--color-primary);
}
}
}
// Grid
.demo-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
gap: 1.5rem;
}
// Card
.demo-card {
background: var(--color-bg-secondary);
border: 1px solid var(--color-border);
border-radius: 0.75rem;
padding: 1.5rem;
overflow: hidden;
&--wide {
grid-column: span 1;
}
&--full {
grid-column: 1 / -1;
}
&--center {
display: flex;
flex-direction: column;
align-items: center;
}
&__title {
font-size: 0.875rem;
font-weight: 600;
color: var(--color-text-secondary);
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 1rem;
}
}
// Layout helpers
.demo-row {
display: flex;
align-items: center;
gap: 1rem;
&--between {
justify-content: space-between;
width: 100%;
}
}
.demo-stack {
display: flex;
flex-direction: column;
gap: 1rem;
width: 100%;
}