Files
ui-essentials/projects/demo-ui-essentials/src/app/shared/layout-containers/layout-container.component.scss
skyai_dev 5983722793 Add comprehensive component library and demo application
Added extensive component library with feedback components (empty state, loading spinner, skeleton loader), enhanced form components (autocomplete, date picker, file upload, form field, time picker), navigation components (pagination), and overlay components (backdrop, drawer, modal, overlay container). Updated demo application with comprehensive showcase components and enhanced styling throughout the project. Excluded font files from repository to reduce size.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-03 05:38:09 +10:00

175 lines
3.6 KiB
SCSS

// Layout Container Component - Main application shell layout
.ui-layout-container {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
box-sizing: border-box;
overflow: hidden;
display: flex;
flex-wrap: nowrap;
flex-direction: column;
align-items: stretch;
flex-flow: column;
// Top navigation bar
&__top-bar {
order: 1;
flex: 0 0 64px; // Standard app bar height
box-sizing: border-box;
overflow: hidden;
transition: all 300ms cubic-bezier(0.2, 0.0, 0, 1.0);
position: relative;
}
// Main content wrapper
&__centre-wrapper {
width: 100%;
box-sizing: border-box;
position: relative;
order: 2;
flex: 1;
overflow: hidden;
min-height: 0;
display: flex;
flex-wrap: nowrap;
flex-direction: row;
align-items: stretch;
// Left sidebar navigation
.left-navigation {
order: 1;
flex: 0 0 64px; // Collapsed sidebar width
overflow: hidden;
position: relative;
box-sizing: border-box;
height: 100%;
transition: all 300ms cubic-bezier(0.2, 0.0, 0, 1.0);
// Navigation states
&--hide {
flex: 0 0 0;
}
&--rail {
flex: 0 0 80px; // Rail navigation width
}
&--full {
flex: 0 0 320px; // Expanded sidebar width
}
}
// Main content area
.main-body {
order: 2;
flex: 1;
overflow: hidden;
min-height: 0;
box-sizing: border-box;
position: relative;
display: flex;
flex-wrap: nowrap;
flex-direction: column;
align-items: stretch;
// Inner header section
&__header {
order: 1;
flex: 0 0 0;
box-sizing: border-box;
overflow: hidden;
transition: all 300ms cubic-bezier(0.2, 0.0, 0, 1.0);
width: 100%;
position: relative;
}
// Inner content body
&__body {
order: 2;
flex: 1;
overflow: hidden;
min-height: 0;
box-sizing: border-box;
}
// Inner footer section
&__footer {
order: 3;
flex: 0 0 0;
box-sizing: border-box;
overflow: hidden;
transition: all 300ms cubic-bezier(0.2, 0.0, 0, 1.0);
width: 100%;
position: relative;
}
}
// Right sidebar navigation
.right-navigation {
order: 3;
flex: 0 0 320px; // Right sidebar width
overflow: hidden;
position: relative;
box-sizing: border-box;
height: 100%;
transition: all 300ms cubic-bezier(0.2, 0.0, 0, 1.0);
// Right navigation states
&--hide {
flex: 0 0 0;
}
&--show {
flex: 0 0 320px; // Shown right sidebar width
}
}
}
// Bottom bar section
&__bottom-bar {
order: 3;
flex: 0 0 0;
overflow: hidden;
box-sizing: border-box;
transition: all 300ms cubic-bezier(0.2, 0.0, 0, 1.0);
}
// Responsive design for smaller screens
@media (max-width: 768px) {
&__centre-wrapper {
.left-navigation {
&--full {
flex: 0 0 280px; // Smaller full width on mobile
}
}
.right-navigation {
&--show {
flex: 0 0 280px; // Smaller right sidebar on mobile
}
}
}
}
// Mobile breakpoint - stack navigation vertically
@media (max-width: 640px) {
&__centre-wrapper {
flex-direction: column;
.left-navigation,
.right-navigation {
&--full,
&--show {
flex: 0 0 64px; // Navigation becomes horizontal bar on mobile
}
}
}
}
}