ProzillaOS/packages/core/src/components/taskbar/Taskbar.module.css

222 lines
No EOL
3.5 KiB
CSS

.Taskbar {
--svg-drop-shadow-color: var(--taskbar-color);
position: fixed;
display: flex;
bottom: 0;
left: 0;
width: 100%;
height: var(--taskbar-height);
margin-bottom: env(safe-area-inset-bottom);
}
.Taskbar::after,
.Taskbar::before {
content: "";
position: absolute;
top: 0;
bottom: calc(env(safe-area-inset-bottom, 0) * -1);
left: 0;
right: 0;
pointer-events: none;
}
.Taskbar::after {
opacity: var(--taskbar-opacity);
background-color: var(--taskbar-color);
z-index: -2;
}
.Taskbar::before {
backdrop-filter: var(--taskbar-filter);
z-index: -3;
}
.Taskbar button {
display: flex;
align-items: center;
color: var(--foreground-color-0);
background: none;
cursor: pointer;
border: none;
outline: none;
transition: background-color 100ms ease-in-out;
z-index: -1;
}
.Taskbar button:hover,
.Taskbar button:focus-visible {
background-color: var(--taskbar-button-hover-color);
}
.HomeContainer,
.SearchContainer {
position: relative;
padding: 0 !important;
}
.HomeContainer,
.HomeContainer > div,
.SearchContainer,
.SearchContainer > div {
height: 100%;
width: auto;
}
button.HomeButton {
padding: 0.625rem;
}
.HomeButton * {
fill: var(--foreground-color-0);
filter: none;
}
.MenuIcons,
.AppIcons {
display: flex;
align-items: center;
height: 100%;
}
.AppIconsContainer {
position: relative;
width: 100%;
height: auto;
overflow: hidden;
pointer-events: none;
}
.AppIcons {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow-x: auto;
overflow-y: hidden;
pointer-events: auto;
z-index: -1;
}
.AppIcons::-webkit-scrollbar {
display: none;
}
.AppIcons > *,
.MenuButton {
height: 100%;
padding: 0.75rem;
}
.AppIcons > * > svg,
.MenuButton > svg {
height: 1.25rem;
}
.AppIcons > button div,
.AppIcons > button div > svg,
.MenuButton div,
.MenuButton div > svg {
height: 100%;
width: auto;
}
.UtilIcons {
display: flex;
gap: 0;
justify-content: flex-end;
align-items: center;
height: 100%;
margin-left: auto;
padding-left: 0.5rem;
z-index: -1;
}
.UtilIcons > div {
height: 100%;
width: min-content;
z-index: -1;
}
.UtilIcons > button,
.UtilIcons > div > button {
height: 100%;
width: min-content;
margin: 0;
padding: 0.4rem;
}
.UtilIcons > button > svg,
.UtilIcons > div > button > svg {
height: 1rem;
width: 1rem;
aspect-ratio: 1;
}
#desktop-button {
border-left: 1px solid rgba(255, 255, 255, 50%);
height: 100%;
width: 0.5rem;
padding: 0;
margin-left: 1rem;
}
.MenuContainer {
position: absolute;
right: 0;
bottom: 100%;
height: auto !important;
overflow: hidden;
}
.MenuContainer:not(.Active) {
pointer-events: none;
}
.Menu {
opacity: 1;
display: flex;
border-top-left-radius: var(--border-radius-1);
border-top-right-radius: var(--border-radius-1);
border-bottom-left-radius: var(--border-radius-1);
transform: none;
transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;
overflow: hidden;
resize: horizontal;
}
.MenuContainer:not(.Active) .Menu {
opacity: 0;
transform: translateY(100px);
}
.Menu::after,
.MenuContainer::after {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
border-radius: inherit;
pointer-events: none;
}
.Menu::after {
opacity: var(--taskbar-menu-opacity);
background-color: var(--taskbar-menu-color);
z-index: -2;
}
.MenuContainer::after {
opacity: 1;
transition: opacity 200ms ease-in-out, top 200ms ease-in-out;
backdrop-filter: var(--taskbar-filter);
z-index: -3;
}
.MenuContainer:not(.Active)::after {
opacity: 0;
top: 100px;
}