egroupware/kdots/js/EgwFramework.styles.ts
nathan 63722dcd9c Kdots header work
- Make active app icon slightly larger to indicate active instead of colored track
- Change framework header background to white
- App header background to application color
- define app colors in framework
2024-07-04 16:03:51 -06:00

163 lines
3.7 KiB
TypeScript

import {css} from 'lit';
export default css`
:host {
display: block;
width: 100vw;
height: 100vh;
position: relative;
--icon-size: 32px;
}
.egw_fw__layout-default {
display: grid;
width: 100%;
height: 100%;
}
.egw_fw__layout-default > * {
position: relative;
display: flex;
}
.egw_fw__layout-default .egw_fw__banner {
grid-area: banner;
grid-column-start: banner-start;
grid-column-end: banner-end;
}
.egw_fw__layout-default .egw_fw__header {
grid-area: header;
align-items: center;
}
.egw_fw__layout-default .egw_fw__header > * {
flex: 1 1 auto;
}
/* To use the sl-split-panel, we need it to have its own space & nest stuff inside */
.egw_fw__layout-default .egw_fw__divider {
max-width: 100vw;
grid-column-start: start;
grid-column-end: status-start;
grid-row-start: main-header;
grid-row-end: footer;
display: flex;
justify-content: stretch;
}
.egw_fw__layout-default sl-split-panel {
width: 100%;
}
.egw_fw__layout-default sl-split-panel::part(divider) {
color: var(--sl-color-primary-500);
}
.egw_fw__layout-default .egw_fw__sidemenu {
overflow-x: hidden;
overflow-y: auto;
}
.egw_fw__layout-default .egw_fw__status {
overflow-x: hidden;
overflow-y: auto;
}
.egw_fw__layout-default .egw_fw__footer {
grid-area: footer;
}
@media (min-width: 600px) {
.egw_fw__main {
overflow: hidden;
}
.egw_fw__layout-default {
grid-template-columns: [start banner-start header-start footer-start main-start] 1fr [main-end header-end banner-end end];
grid-template-rows: [top banner] fit-content(2em) [header] fit-content(2em) [main-header] fit-content(2em) [main] 1fr [footer bottom] fit-content(2em);
}
}
@media (max-width: 599px) {
.egw_fw__layout-default {
grid-template-columns: [start banner-start header-start footer-start main-start] 1fr [main-end header-end banner-end end];
grid-template-rows: [top banner] fit-content(2em) [header] fit-content(2em) [main-header] fit-content(2em) [main] 1fr [footer bottom] fit-content(2em);
}
::slotted([slot="logo"]) {
display: none;
}
}
/* Actual styles */
.egw_fw__header sl-icon-button {
color: inherit;
}
.egw_fw__header .egw_fw__app_list {
flex: none;
}
.egw_fw__app_list::part(panel) {
display: grid;
grid-template-columns: repeat(5, 1fr);
background-color: var(--sl-color-neutral-0);
font-size: var(--icon-size);
}
.egw_fw__open_applications {
--track-width: 0px;
}
.egw_fw__open_applications::part(tabs) {
align-items: baseline;
}
.egw_fw__open_applications et2-image {
height: var(--tab-icon-size, 32px);
/* Allow some shrinking with limited size */
min-width: calc(var(--tab-icon-size, 32px) / 2);
min-height: calc(var(--tab-icon-size) / 2);
}
.egw_fw__open_applications sl-tab[active] et2-image {
width: var(--tab-icon-size-active, --tab-icon-size);
}
.egw_fw__open_applications sl-tab[active] et2-image img {
position: absolute;
height: var(--tab-icon-size-active, --tab-icon-size);
min-width: var(--tab-icon-size-active, --tab-icon-size);
min-height: var(--tab-icon-size-active, --tab-icon-size);
}
.egw_fw__open_applications sl-tab::part(base) {
padding: 0px;
font-size: var(--tab-icon-size);
}
.egw_fw__open_applications sl-tab::part(close-button) {
visibility: hidden;
margin-inline-start: var(--sl-spacing-2x-small);
color: var(--sl-color-neutral-900);
}
.egw_fw__open_applications sl-tab et2-image {
padding: var(--sl-spacing-2x-small) var(--sl-spacing-3x-small);
}
.egw_fw__open_applications sl-tab:hover::part(close-button), .egw_fw__open_applications sl-tab[active]::part(close-button) {
visibility: visible;
}
::slotted(egw-app) {
display: none;
}
::slotted(egw-app[active]) {
display: flex;
}
`