big restructure

This commit is contained in:
2026-02-11 19:28:12 +01:00
parent cd59ccd99b
commit 3eb9cc0ac4
209 changed files with 5101 additions and 2459 deletions

View File

@@ -1,60 +1,106 @@
aside.aside-icon-bar {
--app-icon-bar-item-padding: 0.5rem;
--app-icon-bar-item-size: 20px;
--app-icon-bar-border-width: 3px;
--app-icon-bar-hover-bg: var(--app-accordion-border-color);
--app-icon-bar-border: 1px solid var(--app-border);
display: none;
}
aside.aside-icon-bar ul {
aside.aside-icon-bar nav {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100vh;
}
aside.aside-icon-bar ul,
aside.aside-icon-bar li {
margin: 0;
padding: 0;
list-style: none;
}
aside.aside-icon-bar ul {
display: grid;
gap: 0;
}
aside.aside-icon-bar li {
margin: 0;
padding: 0;
}
aside.aside-icon-bar li a,
aside.aside-icon-bar li button {
margin: 0;
padding: 0.5rem;
font-size: 20px;
padding: var(--app-icon-bar-item-padding);
font-size: var(--app-icon-bar-item-size);
text-align: center;
color: var(--app-muted-color);
border-radius: 0;
background: transparent;
border: 0;
border-left: 3px solid transparent;
border-left: var(--app-icon-bar-border-width) solid transparent;
display: block;
width: 100%;
cursor: pointer;
}
aside.aside-icon-bar li a:hover, aside.aside-icon-bar li a.active, aside.aside-icon-bar li button:hover, aside.aside-icon-bar li button.active {
border-left: 3px solid var(--app-primary);
color: var(--app-contrast);
background: var(--app-accordion-border-color);
}
aside.aside-icon-bar nav {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(100vh - var(--app-spacing));
aside.aside-icon-bar li a:hover,
aside.aside-icon-bar li a.active,
aside.aside-icon-bar li button:hover,
aside.aside-icon-bar li button.active {
border-left: var(--app-icon-bar-border-width) solid var(--app-primary);
color: var(--app-contrast);
background: var(--app-icon-bar-hover-bg);
}
/* aside.aside-icon-bar ul.aside-icon-group li:first-child {
margin-bottom: 1rem;
} */
@media (min-width: 768px) {
aside.aside-icon-bar {
border-right: 1px solid var(--app-border);
border-right: var(--app-icon-bar-border);
display: block;
position: sticky;
top: 0;
z-index: 11;
padding-top: var(--app-spacing);
}
.is-sidebar-collapsed aside.aside-icon-bar {
border-right: 0;
}
}
@media (max-width: 767px) {
aside.aside-icon-bar {
display: block;
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 20;
border-top: var(--app-icon-bar-border);
background: var(--app-background-color);
}
aside.aside-icon-bar nav {
flex-direction: row;
height: auto;
justify-content: center;
gap: var(--app-spacing);
}
aside.aside-icon-bar ul {
display: flex;
justify-content: space-around;
gap: var(--app-spacing);
}
aside.aside-icon-bar li a,
aside.aside-icon-bar li button {
border-left: 0;
border-top: var(--app-icon-bar-border-width) solid transparent;
}
aside.aside-icon-bar li a:hover,
aside.aside-icon-bar li a.active,
aside.aside-icon-bar li button:hover,
aside.aside-icon-bar li button.active {
border-left: 0;
border-top: var(--app-icon-bar-border-width) solid var(--app-primary);
}
}

View File

@@ -14,7 +14,15 @@ small {
}
div#debugger-bar {
display: none;
display: none;
}
.app-container.is-sidebar-hidden .app-sidebar {
display: none;
}
.sidebar-hidden .app-sidebar {
display: none;
}
h1,
@@ -27,13 +35,13 @@ h6 {
}
h1 {
--app-font-size: 1.8rem;
--app-font-size: 1.5rem;
--app-line-height: 1.125;
--app-typography-spacing-top: 3rem;
}
h2 {
--app-font-size: 1.6rem;
--app-font-size: 1.4rem;
--app-line-height: 1.15;
--app-typography-spacing-top: 2.625rem;
}
@@ -179,7 +187,7 @@ table td .grid-actions [role="button"] {
color: var(--app-muted-color);
border: 1px solid var(--app-border);
font-size: small;
background: var(--app-form-element-active-background-color);
background: var(--app-form-element-background-color);
box-shadow: var(--app-group-box-shadow);
}
@@ -364,12 +372,51 @@ section {
padding-right: 0;
padding-left: 0;
}
h1 {
--app-font-size: 1.7rem;
}
h2 {
--app-font-size: 1.6rem;
}
h3 {
--app-font-size: 1.3rem;
}
h4 {
--app-font-size: 1.2rem;
}
h5 {
--app-font-size: 1.1rem;
}
h6 {
--app-font-size: 1rem;
}
}
@media (min-width: 768px) {
.container {
max-width: 700px;
}
.app-container.is-sidebar-hidden:has(.aside-icon-bar):has(.app-sidebar) {
display: grid;
min-height: 100dvh;
align-items: flex-start;
grid-template-columns: minmax(0, 60px) minmax(0, 1fr);
}
.sidebar-hidden .app-container:has(.aside-icon-bar):has(.app-sidebar) {
grid-template-columns: minmax(0, 60px) minmax(0, 1fr);
}
.app-container:has(.aside-icon-bar):has(.app-sidebar) {
display: grid;
min-height: 100dvh;
@@ -380,15 +427,15 @@ section {
display: grid;
min-height: 100dvh;
align-items: flex-start;
grid-template-columns: minmax(0, 60px) minmax(0, 1fr);
grid-template-columns: minmax(0, 60px) minmax(0, 220px) minmax(0, 1fr);
}
.app-container.is-sidebar-collapsed {
grid-template-columns: minmax(0, 60px) minmax(0, 1fr);
grid-template-columns: minmax(0, 60px) minmax(0, 220px) minmax(0, 1fr);
}
.sidebar-collapsed .app-container {
grid-template-columns: minmax(0, 60px) minmax(0, 1fr);
grid-template-columns: minmax(0, 60px) minmax(0, 220px) minmax(0, 1fr);
}
.app-main {
@@ -404,6 +451,8 @@ section {
.app-main-content:has(.app-details-container) {
margin-bottom: 0;
padding: 0;
position: relative;
z-index: 1;
}
}
@@ -634,7 +683,6 @@ mark {
vertical-align: baseline;
}
abbr[title] {
border-bottom: 1px dotted;
text-decoration: none;
@@ -665,7 +713,7 @@ del {
--app-underline: var(--app-primary-underline);
outline: 0;
background-color: var(--app-background-color);
color: var(--app-color);
color: cornflowerblue;
-webkit-text-decoration: var(--app-text-decoration);
text-decoration: var(--app-text-decoration);
text-decoration-color: var(--app-underline);
@@ -2323,6 +2371,8 @@ details.dropdown > summary + ul li {
padding: calc(var(--app-form-element-spacing-vertical) * 0.5)
var(--app-form-element-spacing-horizontal);
list-style: none;
text-align: left;
border-bottom: 1px solid var(--app-accordion-border-color);
}
details.dropdown > summary + ul li:first-of-type {
@@ -2331,6 +2381,7 @@ details.dropdown > summary + ul li:first-of-type {
details.dropdown > summary + ul li:last-of-type {
margin-bottom: calc(var(--app-form-element-spacing-vertical) * 0.5);
border-bottom: 0;
}
details.dropdown > summary + ul li a {

View File

@@ -1,5 +1,16 @@
.app-sidebar {
background: var(--app-sidebar-background-color);
--app-sidebar-gap: 0.5rem;
--app-sidebar-item-gap: 10px;
--app-sidebar-title-size: 10px;
--app-sidebar-summary-size: 12px;
--app-sidebar-tenant-size: 14px;
--app-sidebar-titlebar-height: 30px;
--app-sidebar-border-width: 2px;
--app-sidebar-summary-max-width: 157px;
--app-sidebar-section-gap: 2rem;
--app-sidebar-section-space: 5px;
--app-sidebar-hover-bg: transparent;
}
.app-sidebar .brand {
@@ -7,13 +18,17 @@
}
.app-sidebar-titlebar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5rem;
padding: 0px var(--app-spacing) 0px var(--app-spacing);
margin-bottom: 0;
min-height: 30px;
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--app-sidebar-gap);
padding: 0 var(--app-spacing);
margin-bottom: 0;
min-height: var(--app-sidebar-titlebar-height);
}
.aside-pending .app-sidebar-titlebar {
visibility: hidden;
}
.app-sidebar .app-sidebar-panel {
@@ -24,57 +39,62 @@
display: none !important;
}
.app-sidebar.is-collapsed {
display: none;
}
.sidebar-collapsed .app-sidebar {
.app-sidebar.is-collapsed .app-sidebar-panels,
.app-sidebar.is-collapsed .app-sidebar-titlebar,
.sidebar-collapsed .app-sidebar .app-sidebar-titlebar,
.sidebar-collapsed .app-sidebar .app-sidebar-panels {
display: none;
}
.app-sidebar-tenant-logo {
display: flex;
align-items: center;
justify-content: space-between;
gap: 5px;
padding: var(--app-spacing) var(--app-spacing) 10px var(--app-spacing);
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--app-sidebar-gap);
padding: var(--app-spacing);
}
.app-sidebar .app-sidebar-tenant-logo a:hover {
background: transparent;
border: 0;
background: transparent;
border: 0;
}
.app-sidebar .app-sidebar-tenant-logo > a {
padding: 0;
flex: 1;
border: 0;
padding: 0;
flex: 1;
border: 0;
}
.app-sidebar-tenant-toggle {
display: none;
border: 1px solid var(--app-border);
background: transparent;
margin: 0;
}
.app-sidebar-tenant-toggle:hover {
color: var(--app-contrast);
border-color: var(--app-contrast);
}
.app-sidebar-tenant-name {
flex: 1;
font-weight: 600;
font-size: 14px;
color: var(--app-contrast);
padding: 8px 12px;
border-radius: var(--app-border-radius);
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border: 1px solid var(--app-border);
flex: 1;
font-weight: 600;
font-size: var(--app-sidebar-tenant-size);
color: var(--app-contrast);
padding: 8px 12px;
border-radius: var(--app-border-radius);
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border: 1px solid var(--app-border);
}
.app-sidebar-title {
text-transform: uppercase;
font-size: 10px;
font-size: var(--app-sidebar-title-size);
color: var(--app-muted-color);
display: none;
}
.app-sidebar-tools {
@@ -102,6 +122,7 @@
margin-bottom: 1rem;
padding-block-start: 0.5rem;
}
.app-sidebar-title {
display: block;
}
@@ -113,38 +134,60 @@
}
}
.app-sidebar a {
color: inherit;
display: flex;
@media (max-width: 767px) {
.app-sidebar-tenant-toggle {
display: inline-flex;
align-items: center;
gap: 10px;
text-decoration: none;
padding: 5px var(--app-spacing);
border-radius: 0;
margin: 0;
border-left: 2px solid transparent;
width: 100%;
justify-content: center;
}
.app-sidebar-tenant-logo img {
max-width: 120px;
flex-shrink: 0;
}
.app-sidebar {
border-bottom: 1px solid var(--app-border);
}
.app-sidebar-panels {
padding-block-end: var(--app-spacing);
}
}
.app-sidebar a {
color: inherit;
display: flex;
align-items: center;
gap: var(--app-sidebar-item-gap);
text-decoration: none;
padding: 5px var(--app-spacing);
border-radius: 0;
margin: 0;
border-left: var(--app-sidebar-border-width) solid transparent;
width: 100%;
}
.app-sidebar a:hover,
.app-sidebar .active {
.app-sidebar a.active,
.app-sidebar .active > a {
color: var(--app-primary);
--app-background-color: inherit;
background: var(--app-background-color);
border-left: 2px solid var(--app-primary);
background: var(--app-sidebar-hover-bg);
border-left: var(--app-sidebar-border-width) solid var(--app-primary);
}
aside.app-sidebar ul {
aside.app-sidebar ul,
aside.app-sidebar li {
margin: 0;
padding: 0;
list-style: none;
}
.app-sidebar small {
margin-top: 2rem;
margin-bottom: 5px;
margin-top: var(--app-sidebar-section-gap);
margin-bottom: var(--app-sidebar-section-space);
display: block;
padding-inline: var(--app-spacing);
opacity: 0.7;
}
.app-sidebar .app-sidebar-group small {
margin-top: 0;
margin-bottom: 0;
@@ -153,29 +196,20 @@ aside.app-sidebar ul {
opacity: 1;
}
.app-sidebar li {
padding-block: 0;
padding: 0;
}
.app-sidebar .app-sidebar-group {
list-style: none;
}
.app-sidebar .app-sidebar-group details {
padding: 0;
margin: 0;
}
.app-sidebar .app-sidebar-group summary {
padding: 0 var(--app-spacing);
font-size: 12px;
color: var(--app-muted-color);
line-height: 1;
padding: 0 var(--app-spacing);
font-size: var(--app-sidebar-summary-size);
color: var(--app-muted-color);
line-height: 1;
}
nav#aside-panel-people {
margin-top: var(--app-spacing);
margin-top: var(--app-spacing);
}
.app-sidebar .app-sidebar-group summary::-webkit-details-marker {
@@ -188,21 +222,17 @@ nav#aside-panel-people {
}
.app-sidebar .app-sidebar-group summary > span {
text-overflow: ellipsis;
display: inline-block;
max-width: 157px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
display: inline-block;
max-width: var(--app-sidebar-summary-max-width);
overflow: hidden;
white-space: nowrap;
}
.app-sidebar .app-sidebar-group details > ul li:first-child {
margin-top: 10px;
margin-top: 10px;
}
.app-sidebar .app-sidebar-group details > ul li a {
padding-block: 2px;
opacity: .7;
.app-sidebar .app-sidebar-group > small {
padding-inline: var(--app-spacing);
}
.app-sidebar .app-sidebar-group details > ul li a:hover {
opacity: 1;
}

View File

@@ -1,29 +1,35 @@
.app-header nav li {
padding: 0;
}
form:has(input#app-search) {
flex: 1;
}
.app-header nav {
gap: var(--app-spacing);
}
.app-header {
--app-topbar-item-padding: 5px;
--app-topbar-list-gap: 8px;
--app-topbar-divider: 1px solid var(--app-border);
--app-topbar-margin-bottom: calc(var(--app-spacing) * 2);
--app-topbar-muted: var(--app-form-element-placeholder-color);
--app-topbar-bg: var(--app-background-color);
padding-block-start: 0;
padding-left: var(--app-spacing);
padding-right: var(--app-spacing);
margin-bottom: calc(var(--app-spacing) * 2);
margin-bottom: var(--app-topbar-margin-bottom);
color: var(--app-contrast);
border-bottom: 1px solid var(--app-border);
border-bottom: var(--app-topbar-divider);
}
main:has(.app-details-container) .app-header {
margin-bottom: 0;
}
li:has(#toggle-main-content-aside) {
.app-header nav {
gap: var(--app-spacing);
}
.app-header nav li {
padding: 0;
}
.app-header form:has(input#app-search) {
flex: 1;
}
.app-header li:has(#toggle-main-content-aside) {
display: none;
}
@@ -33,7 +39,7 @@ main:has(#app-details-aside-section) li:has(#toggle-main-content-aside) {
.app-header nav > ul {
display: flex;
gap: 8px;
gap: var(--app-topbar-list-gap);
align-items: center;
color: var(--app-muted-color);
}
@@ -41,7 +47,7 @@ main:has(#app-details-aside-section) li:has(#toggle-main-content-aside) {
.app-header details.dropdown > summary:not([role]) {
border: none;
height: auto;
padding: 5px;
padding: var(--app-topbar-item-padding);
border-radius: 0;
background: transparent;
}
@@ -51,15 +57,15 @@ main:has(#app-details-aside-section) li:has(#toggle-main-content-aside) {
}
.app-header nav > ul li a {
padding: 5px;
color: var(--app-form-element-placeholder-color);
padding: var(--app-topbar-item-padding);
color: var(--app-topbar-muted);
display: block;
margin: 0;
}
.app-header button {
padding: 5px;
color: var(--app-form-element-placeholder-color);
padding: var(--app-topbar-item-padding);
color: var(--app-topbar-muted);
display: block;
margin: 0;
background: transparent;
@@ -77,11 +83,11 @@ main:has(#app-details-aside-section) li:has(#toggle-main-content-aside) {
header.app-header {
position: sticky;
top: 0;
background: var(--app-background-color);
background: var(--app-topbar-bg);
z-index: 10;
}
}
.app-header details.dropdown[open] > summary::before {
display: none;
}
}