- Introduced typography styles in _typography.scss for headings, paragraphs, blockquotes, and horizontal rules. - Added utility classes in _utils.scss for card styling and clearfix. - Updated layout.scss to include new typography and utility styles. - Defined common CSS variables in _common.scss for consistent theming. - Created dark and light theme variables in _dark.scss and _light.scss respectively. - Integrated Tailwind CSS with custom configurations in tailwind.config.js and postcss.config.js. - Implemented database migrations for contact and contact_persons tables. - Added data fixtures for generating sample contact data. - Developed Contact and ContactPerson entities with appropriate validation and serialization. - Enhanced ContactRepository with search and type filtering methods.
161 lines
3.7 KiB
SCSS
161 lines
3.7 KiB
SCSS
@use 'mixins' as *;
|
|
|
|
.layout-sidebar {
|
|
position: fixed;
|
|
width: 20rem;
|
|
height: calc(100vh - 8rem);
|
|
z-index: 999;
|
|
overflow-y: auto;
|
|
user-select: none;
|
|
top: 6rem;
|
|
left: 2rem;
|
|
transition:
|
|
transform var(--layout-section-transition-duration),
|
|
left var(--layout-section-transition-duration);
|
|
background-color: var(--surface-overlay);
|
|
border-radius: var(--content-border-radius);
|
|
padding: 0.5rem 1.5rem;
|
|
}
|
|
|
|
.layout-menu {
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style-type: none;
|
|
|
|
.layout-root-menuitem {
|
|
> .layout-menuitem-root-text {
|
|
font-size: 0.857rem;
|
|
text-transform: uppercase;
|
|
font-weight: 700;
|
|
color: var(--text-color);
|
|
margin: 0.75rem 0;
|
|
}
|
|
|
|
> a {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
a {
|
|
user-select: none;
|
|
|
|
&.active-menuitem {
|
|
> .layout-submenu-toggler {
|
|
transform: rotate(-180deg);
|
|
}
|
|
}
|
|
}
|
|
|
|
li.active-menuitem {
|
|
> a {
|
|
.layout-submenu-toggler {
|
|
transform: rotate(-180deg);
|
|
}
|
|
}
|
|
}
|
|
|
|
ul {
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style-type: none;
|
|
|
|
a {
|
|
display: flex;
|
|
align-items: center;
|
|
position: relative;
|
|
outline: 0 none;
|
|
color: var(--text-color);
|
|
cursor: pointer;
|
|
padding: 0.75rem 1rem;
|
|
border-radius: var(--content-border-radius);
|
|
transition:
|
|
background-color var(--element-transition-duration),
|
|
box-shadow var(--element-transition-duration);
|
|
|
|
.layout-menuitem-icon {
|
|
margin-right: 0.5rem;
|
|
}
|
|
|
|
.layout-submenu-toggler {
|
|
font-size: 75%;
|
|
margin-left: auto;
|
|
transition: transform var(--element-transition-duration);
|
|
}
|
|
|
|
&.active-route {
|
|
font-weight: 700;
|
|
color: var(--primary-color);
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var(--surface-hover);
|
|
}
|
|
|
|
&:focus {
|
|
@include focused-inset();
|
|
}
|
|
}
|
|
|
|
ul {
|
|
overflow: hidden;
|
|
border-radius: var(--content-border-radius);
|
|
|
|
li {
|
|
a {
|
|
margin-left: 1rem;
|
|
}
|
|
|
|
li {
|
|
a {
|
|
margin-left: 2rem;
|
|
}
|
|
|
|
li {
|
|
a {
|
|
margin-left: 2.5rem;
|
|
}
|
|
|
|
li {
|
|
a {
|
|
margin-left: 3rem;
|
|
}
|
|
|
|
li {
|
|
a {
|
|
margin-left: 3.5rem;
|
|
}
|
|
|
|
li {
|
|
a {
|
|
margin-left: 4rem;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.layout-submenu-enter-from,
|
|
.layout-submenu-leave-to {
|
|
max-height: 0;
|
|
}
|
|
|
|
.layout-submenu-enter-to,
|
|
.layout-submenu-leave-from {
|
|
max-height: 1000px;
|
|
}
|
|
|
|
.layout-submenu-leave-active {
|
|
overflow: hidden;
|
|
transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);
|
|
}
|
|
|
|
.layout-submenu-enter-active {
|
|
overflow: hidden;
|
|
transition: max-height 1s ease-in-out;
|
|
}
|