Files
metabuilder/scss/atoms/mat-drawer.module.scss
2026-03-09 22:30:41 +00:00

94 lines
1.8 KiB
SCSS

// Drawer/Sidenav Component - Material Design 3 SCSS (CSS Module)
// ===============================================================
// Local classes using M3 design tokens
// Base drawer class
.drawer {
position: fixed;
top: 0;
bottom: 0;
display: flex;
flex-direction: column;
min-width: 256px;
max-width: 400px;
background-color: var(--mat-sys-surface, #fef7ff);
color: var(--mat-sys-on-surface, #1c1b1f);
box-shadow: var(--mat-sys-elevation-level1, 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3));
z-index: 1200;
overflow-y: auto;
transition: transform 225ms cubic-bezier(0, 0, 0.2, 1);
}
// Legacy wrapper classes
.matDrawer {
composes: drawer;
}
.matSidenav {
composes: drawer;
}
// Anchor variants
.drawerLeft {
left: 0;
border-right: 1px solid var(--mat-sys-outline-variant, rgba(0, 0, 0, 0.12));
}
.drawerRight {
right: 0;
border-left: 1px solid var(--mat-sys-outline-variant, rgba(0, 0, 0, 0.12));
}
// Variant styles
.drawerPermanent {
position: relative;
z-index: auto;
box-shadow: none;
}
.drawerPersistent {
position: relative;
z-index: auto;
}
.drawerTemporary {
position: fixed;
}
// Drawer content area
.drawerContent {
flex: 1;
overflow-y: auto;
padding: 16px;
}
// Drawer header
.drawerHeader {
display: flex;
align-items: center;
min-height: 64px;
padding: 0 16px;
border-bottom: 1px solid var(--mat-sys-outline-variant, rgba(0, 0, 0, 0.12));
}
// Drawer footer
.drawerFooter {
padding: 16px;
border-top: 1px solid var(--mat-sys-outline-variant, rgba(0, 0, 0, 0.12));
}
// Mini variant (collapsed state)
.drawerMini {
min-width: 72px;
max-width: 72px;
overflow: hidden;
}
// Rail variant (narrow persistent drawer)
.drawerRail {
min-width: 80px;
max-width: 80px;
padding: 12px 0;
align-items: center;
}