@digiko-npm/designsystem 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/designsystem.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @ds/designsystem v0.9.
|
|
1
|
+
/* @ds/designsystem v0.9.1 */
|
|
2
2
|
/* ==========================================================================
|
|
3
3
|
@digiko-npm/designsystem
|
|
4
4
|
|
|
@@ -9595,6 +9595,390 @@ button.ds-tag:focus-visible {
|
|
|
9595
9595
|
color: rgba(255, 255, 255, 0.85);
|
|
9596
9596
|
}
|
|
9597
9597
|
|
|
9598
|
+
/* ==========================================================================
|
|
9599
|
+
Component: Admin Layout
|
|
9600
|
+
Parent-driven sidebar + header + main content system for admin dashboards.
|
|
9601
|
+
|
|
9602
|
+
All width/offset decisions are controlled by a SINGLE class on .ds-admin:
|
|
9603
|
+
- .ds-admin--expanded → sidebar 16rem, offsets 16rem
|
|
9604
|
+
- .ds-admin--collapsed → sidebar 4rem, offsets 4rem
|
|
9605
|
+
|
|
9606
|
+
This guarantees sidebar, header, and main content transition in perfect sync.
|
|
9607
|
+
|
|
9608
|
+
Variants:
|
|
9609
|
+
ds-admin--expanded Sidebar open (16rem) — default on desktop
|
|
9610
|
+
ds-admin--collapsed Sidebar collapsed (4rem) — icons only
|
|
9611
|
+
|
|
9612
|
+
Usage:
|
|
9613
|
+
<div class="ds-admin ds-admin--expanded">
|
|
9614
|
+
<aside class="ds-admin__sidebar">
|
|
9615
|
+
<div class="ds-admin__sidebar-header">Logo</div>
|
|
9616
|
+
<nav class="ds-admin__nav">
|
|
9617
|
+
<a class="ds-admin__nav-item ds-admin__nav-item--active">
|
|
9618
|
+
<span class="ds-admin__nav-icon">...</span>
|
|
9619
|
+
<span class="ds-admin__nav-label">Dashboard</span>
|
|
9620
|
+
</a>
|
|
9621
|
+
<div class="ds-admin__subnav">
|
|
9622
|
+
<a class="ds-admin__subnav-item">Sub page</a>
|
|
9623
|
+
</div>
|
|
9624
|
+
</nav>
|
|
9625
|
+
<div class="ds-admin__sidebar-footer">
|
|
9626
|
+
<a class="ds-admin__footer-link">Settings</a>
|
|
9627
|
+
</div>
|
|
9628
|
+
</aside>
|
|
9629
|
+
<header class="ds-admin__header">
|
|
9630
|
+
<div class="ds-admin__header-inner">...</div>
|
|
9631
|
+
</header>
|
|
9632
|
+
<main class="ds-admin__main">
|
|
9633
|
+
<div class="ds-admin__content">...</div>
|
|
9634
|
+
</main>
|
|
9635
|
+
</div>
|
|
9636
|
+
|
|
9637
|
+
Mobile: Sidebar is hidden. Use ds-drawer for mobile menu.
|
|
9638
|
+
Toggle .ds-admin__overlay when mobile menu is open.
|
|
9639
|
+
|
|
9640
|
+
ARIA:
|
|
9641
|
+
- <aside> should have role="navigation" or aria-label="Admin navigation"
|
|
9642
|
+
- Active nav item: aria-current="page"
|
|
9643
|
+
- Mobile toggle: aria-expanded, aria-controls
|
|
9644
|
+
========================================================================== */
|
|
9645
|
+
|
|
9646
|
+
/* --- Layout Variables --- */
|
|
9647
|
+
.ds-admin {
|
|
9648
|
+
--ds-admin-sidebar-w: 16rem;
|
|
9649
|
+
--ds-admin-sidebar-w-collapsed: 4rem;
|
|
9650
|
+
--ds-admin-header-h: var(--ds-size-4);
|
|
9651
|
+
}
|
|
9652
|
+
|
|
9653
|
+
/* ==========================================================================
|
|
9654
|
+
Sidebar
|
|
9655
|
+
========================================================================== */
|
|
9656
|
+
|
|
9657
|
+
.ds-admin__sidebar {
|
|
9658
|
+
display: none;
|
|
9659
|
+
position: fixed;
|
|
9660
|
+
inset-block-start: 0;
|
|
9661
|
+
inset-inline-start: 0;
|
|
9662
|
+
z-index: var(--ds-z-dropdown);
|
|
9663
|
+
height: 100dvh;
|
|
9664
|
+
flex-direction: column;
|
|
9665
|
+
border-inline-end: 1px solid var(--ds-color-border);
|
|
9666
|
+
background-color: var(--ds-color-surface);
|
|
9667
|
+
transition: width var(--ds-duration-normal) var(--ds-ease-default);
|
|
9668
|
+
overflow: hidden;
|
|
9669
|
+
}
|
|
9670
|
+
|
|
9671
|
+
@media (min-width: 1024px) {
|
|
9672
|
+
|
|
9673
|
+
.ds-admin__sidebar {
|
|
9674
|
+
display: flex;
|
|
9675
|
+
}
|
|
9676
|
+
|
|
9677
|
+
.ds-admin--expanded .ds-admin__sidebar {
|
|
9678
|
+
width: var(--ds-admin-sidebar-w);
|
|
9679
|
+
}
|
|
9680
|
+
|
|
9681
|
+
.ds-admin--collapsed .ds-admin__sidebar {
|
|
9682
|
+
width: var(--ds-admin-sidebar-w-collapsed);
|
|
9683
|
+
}
|
|
9684
|
+
|
|
9685
|
+
/* Centered items in collapsed state */
|
|
9686
|
+
.ds-admin--collapsed .ds-admin__nav-item {
|
|
9687
|
+
justify-content: center;
|
|
9688
|
+
}
|
|
9689
|
+
|
|
9690
|
+
.ds-admin--collapsed .ds-admin__footer-link {
|
|
9691
|
+
justify-content: center;
|
|
9692
|
+
}
|
|
9693
|
+
|
|
9694
|
+
/* Hide labels in collapsed state */
|
|
9695
|
+
.ds-admin--collapsed .ds-admin__nav-label,
|
|
9696
|
+
.ds-admin--collapsed .ds-admin__sidebar-badge {
|
|
9697
|
+
display: none;
|
|
9698
|
+
}
|
|
9699
|
+
|
|
9700
|
+
/* Hide subnav in collapsed state */
|
|
9701
|
+
.ds-admin--collapsed .ds-admin__subnav {
|
|
9702
|
+
display: none;
|
|
9703
|
+
}
|
|
9704
|
+
}
|
|
9705
|
+
|
|
9706
|
+
|
|
9707
|
+
/* --- Sidebar Header (logo area) --- */
|
|
9708
|
+
.ds-admin__sidebar-header {
|
|
9709
|
+
display: flex;
|
|
9710
|
+
min-height: var(--ds-admin-header-h);
|
|
9711
|
+
align-items: center;
|
|
9712
|
+
gap: var(--ds-space-2);
|
|
9713
|
+
border-block-end: 1px solid var(--ds-color-border);
|
|
9714
|
+
padding: var(--ds-space-4);
|
|
9715
|
+
}
|
|
9716
|
+
|
|
9717
|
+
.ds-admin--collapsed .ds-admin__sidebar-header {
|
|
9718
|
+
justify-content: center;
|
|
9719
|
+
}
|
|
9720
|
+
|
|
9721
|
+
/* --- Sidebar Badge (env indicator, version, etc.) --- */
|
|
9722
|
+
.ds-admin__sidebar-badge {
|
|
9723
|
+
border-radius: var(--ds-radius-md);
|
|
9724
|
+
border: 1px solid var(--ds-color-border);
|
|
9725
|
+
background-color: var(--ds-color-bg-elevated);
|
|
9726
|
+
padding: var(--ds-space-0-5) var(--ds-space-1-5);
|
|
9727
|
+
font-size: var(--ds-text-xs);
|
|
9728
|
+
font-weight: var(--ds-weight-medium);
|
|
9729
|
+
color: var(--ds-color-text-secondary);
|
|
9730
|
+
}
|
|
9731
|
+
|
|
9732
|
+
/* --- Navigation Area --- */
|
|
9733
|
+
.ds-admin__nav {
|
|
9734
|
+
flex: 1;
|
|
9735
|
+
overflow-y: auto;
|
|
9736
|
+
padding: var(--ds-space-6) var(--ds-space-3);
|
|
9737
|
+
}
|
|
9738
|
+
|
|
9739
|
+
.ds-admin__nav > * + * {
|
|
9740
|
+
margin-block-start: var(--ds-space-1);
|
|
9741
|
+
}
|
|
9742
|
+
|
|
9743
|
+
/* --- Nav Item --- */
|
|
9744
|
+
.ds-admin__nav-item {
|
|
9745
|
+
display: flex;
|
|
9746
|
+
align-items: center;
|
|
9747
|
+
gap: var(--ds-space-3);
|
|
9748
|
+
border-radius: var(--ds-radius-xl);
|
|
9749
|
+
padding: var(--ds-space-2-5) var(--ds-space-3);
|
|
9750
|
+
color: var(--ds-color-text-secondary);
|
|
9751
|
+
transition:
|
|
9752
|
+
background-color var(--ds-duration-fast) var(--ds-ease-default),
|
|
9753
|
+
color var(--ds-duration-fast) var(--ds-ease-default);
|
|
9754
|
+
}
|
|
9755
|
+
|
|
9756
|
+
.ds-admin__nav-item:hover {
|
|
9757
|
+
background-color: var(--ds-color-surface-hover);
|
|
9758
|
+
color: var(--ds-color-text);
|
|
9759
|
+
}
|
|
9760
|
+
|
|
9761
|
+
.ds-admin__nav-item--active {
|
|
9762
|
+
background-color: var(--ds-color-bg-elevated);
|
|
9763
|
+
color: var(--ds-color-text);
|
|
9764
|
+
}
|
|
9765
|
+
|
|
9766
|
+
/* --- Nav Icon (fixed size prevents reflow on collapse) --- */
|
|
9767
|
+
.ds-admin__nav-icon {
|
|
9768
|
+
display: flex;
|
|
9769
|
+
align-items: center;
|
|
9770
|
+
justify-content: center;
|
|
9771
|
+
width: 20px;
|
|
9772
|
+
height: 20px;
|
|
9773
|
+
flex-shrink: 0;
|
|
9774
|
+
}
|
|
9775
|
+
|
|
9776
|
+
/* --- Nav Label --- */
|
|
9777
|
+
.ds-admin__nav-label {
|
|
9778
|
+
white-space: nowrap;
|
|
9779
|
+
font-size: var(--ds-text-sm);
|
|
9780
|
+
font-weight: var(--ds-weight-medium);
|
|
9781
|
+
}
|
|
9782
|
+
|
|
9783
|
+
/* --- Sub-Navigation (nested under a parent item) --- */
|
|
9784
|
+
.ds-admin__subnav {
|
|
9785
|
+
display: flex;
|
|
9786
|
+
flex-direction: column;
|
|
9787
|
+
gap: var(--ds-space-0-5);
|
|
9788
|
+
margin-inline-start: 1.75rem;
|
|
9789
|
+
padding-inline-start: var(--ds-space-3);
|
|
9790
|
+
padding-block: var(--ds-space-1);
|
|
9791
|
+
border-inline-start: 1px solid var(--ds-color-border);
|
|
9792
|
+
}
|
|
9793
|
+
|
|
9794
|
+
.ds-admin__subnav-item {
|
|
9795
|
+
display: block;
|
|
9796
|
+
padding: var(--ds-space-1-5) var(--ds-space-3);
|
|
9797
|
+
font-size: var(--ds-text-sm);
|
|
9798
|
+
font-weight: var(--ds-weight-medium);
|
|
9799
|
+
color: var(--ds-color-text-tertiary);
|
|
9800
|
+
border-radius: var(--ds-radius-lg);
|
|
9801
|
+
transition:
|
|
9802
|
+
background-color var(--ds-duration-fast) var(--ds-ease-default),
|
|
9803
|
+
color var(--ds-duration-fast) var(--ds-ease-default);
|
|
9804
|
+
}
|
|
9805
|
+
|
|
9806
|
+
.ds-admin__subnav-item:hover:not(.ds-admin__subnav-item--active) {
|
|
9807
|
+
background-color: var(--ds-color-surface-hover);
|
|
9808
|
+
color: var(--ds-color-text-secondary);
|
|
9809
|
+
}
|
|
9810
|
+
|
|
9811
|
+
.ds-admin__subnav-item--active {
|
|
9812
|
+
background-color: var(--ds-color-bg-elevated);
|
|
9813
|
+
color: var(--ds-color-text);
|
|
9814
|
+
}
|
|
9815
|
+
|
|
9816
|
+
/* --- Sidebar Footer --- */
|
|
9817
|
+
.ds-admin__sidebar-footer {
|
|
9818
|
+
border-block-start: 1px solid var(--ds-color-border);
|
|
9819
|
+
padding: var(--ds-space-3);
|
|
9820
|
+
}
|
|
9821
|
+
|
|
9822
|
+
.ds-admin__sidebar-footer > * + * {
|
|
9823
|
+
margin-block-start: var(--ds-space-1);
|
|
9824
|
+
}
|
|
9825
|
+
|
|
9826
|
+
/* --- Footer Link --- */
|
|
9827
|
+
.ds-admin__footer-link {
|
|
9828
|
+
display: flex;
|
|
9829
|
+
width: 100%;
|
|
9830
|
+
align-items: center;
|
|
9831
|
+
gap: var(--ds-space-3);
|
|
9832
|
+
border-radius: var(--ds-radius-xl);
|
|
9833
|
+
padding: var(--ds-space-2-5) var(--ds-space-3);
|
|
9834
|
+
color: var(--ds-color-text-secondary);
|
|
9835
|
+
transition:
|
|
9836
|
+
background-color var(--ds-duration-fast) var(--ds-ease-default),
|
|
9837
|
+
color var(--ds-duration-fast) var(--ds-ease-default);
|
|
9838
|
+
}
|
|
9839
|
+
|
|
9840
|
+
.ds-admin__footer-link:hover {
|
|
9841
|
+
background-color: var(--ds-color-surface-hover);
|
|
9842
|
+
color: var(--ds-color-text);
|
|
9843
|
+
}
|
|
9844
|
+
|
|
9845
|
+
/* ==========================================================================
|
|
9846
|
+
Header
|
|
9847
|
+
========================================================================== */
|
|
9848
|
+
|
|
9849
|
+
.ds-admin__header {
|
|
9850
|
+
position: fixed;
|
|
9851
|
+
inset-inline: 0;
|
|
9852
|
+
inset-block-start: 0;
|
|
9853
|
+
z-index: 40;
|
|
9854
|
+
height: var(--ds-admin-header-h);
|
|
9855
|
+
border-block-end: 1px solid var(--ds-color-border);
|
|
9856
|
+
background-color: var(--ds-color-nav-bg);
|
|
9857
|
+
backdrop-filter: blur(20px) saturate(1.5);
|
|
9858
|
+
-webkit-backdrop-filter: blur(20px) saturate(1.5);
|
|
9859
|
+
}
|
|
9860
|
+
|
|
9861
|
+
.ds-admin__header-inner {
|
|
9862
|
+
display: flex;
|
|
9863
|
+
height: 100%;
|
|
9864
|
+
align-items: center;
|
|
9865
|
+
justify-content: space-between;
|
|
9866
|
+
padding-inline: var(--ds-space-6);
|
|
9867
|
+
margin-inline-start: 0;
|
|
9868
|
+
transition: margin-inline-start var(--ds-duration-normal) var(--ds-ease-default);
|
|
9869
|
+
}
|
|
9870
|
+
|
|
9871
|
+
/* Hide toggle on desktop */
|
|
9872
|
+
@media (min-width: 1024px) {
|
|
9873
|
+
|
|
9874
|
+
.ds-admin__header-toggle {
|
|
9875
|
+
display: none;
|
|
9876
|
+
}
|
|
9877
|
+
|
|
9878
|
+
.ds-admin--expanded .ds-admin__header-inner {
|
|
9879
|
+
margin-inline-start: var(--ds-admin-sidebar-w);
|
|
9880
|
+
}
|
|
9881
|
+
|
|
9882
|
+
.ds-admin--collapsed .ds-admin__header-inner {
|
|
9883
|
+
margin-inline-start: var(--ds-admin-sidebar-w-collapsed);
|
|
9884
|
+
}
|
|
9885
|
+
}
|
|
9886
|
+
|
|
9887
|
+
|
|
9888
|
+
/* ==========================================================================
|
|
9889
|
+
Main Content
|
|
9890
|
+
========================================================================== */
|
|
9891
|
+
|
|
9892
|
+
.ds-admin__main {
|
|
9893
|
+
padding-block-start: var(--ds-admin-header-h);
|
|
9894
|
+
margin-inline-start: 0;
|
|
9895
|
+
transition: margin-inline-start var(--ds-duration-normal) var(--ds-ease-default);
|
|
9896
|
+
}
|
|
9897
|
+
|
|
9898
|
+
@media (min-width: 1024px) {
|
|
9899
|
+
|
|
9900
|
+
.ds-admin--expanded .ds-admin__main {
|
|
9901
|
+
margin-inline-start: var(--ds-admin-sidebar-w);
|
|
9902
|
+
}
|
|
9903
|
+
|
|
9904
|
+
.ds-admin--collapsed .ds-admin__main {
|
|
9905
|
+
margin-inline-start: var(--ds-admin-sidebar-w-collapsed);
|
|
9906
|
+
}
|
|
9907
|
+
}
|
|
9908
|
+
|
|
9909
|
+
|
|
9910
|
+
.ds-admin__content {
|
|
9911
|
+
min-height: 100dvh;
|
|
9912
|
+
padding: var(--ds-space-8) var(--ds-space-6);
|
|
9913
|
+
}
|
|
9914
|
+
|
|
9915
|
+
@media (min-width: 768px) {
|
|
9916
|
+
|
|
9917
|
+
.ds-admin__content {
|
|
9918
|
+
padding-inline: var(--ds-space-8);
|
|
9919
|
+
}
|
|
9920
|
+
}
|
|
9921
|
+
|
|
9922
|
+
|
|
9923
|
+
@media (min-width: 1024px) {
|
|
9924
|
+
|
|
9925
|
+
.ds-admin__content {
|
|
9926
|
+
padding-inline: var(--ds-space-12);
|
|
9927
|
+
}
|
|
9928
|
+
}
|
|
9929
|
+
|
|
9930
|
+
|
|
9931
|
+
.ds-admin__container {
|
|
9932
|
+
max-width: 80rem;
|
|
9933
|
+
margin-inline: auto;
|
|
9934
|
+
}
|
|
9935
|
+
|
|
9936
|
+
/* ==========================================================================
|
|
9937
|
+
Mobile Overlay
|
|
9938
|
+
========================================================================== */
|
|
9939
|
+
|
|
9940
|
+
.ds-admin__overlay {
|
|
9941
|
+
position: fixed;
|
|
9942
|
+
inset: 0;
|
|
9943
|
+
z-index: var(--ds-z-overlay);
|
|
9944
|
+
background-color: var(--ds-color-overlay);
|
|
9945
|
+
}
|
|
9946
|
+
|
|
9947
|
+
@media (min-width: 1024px) {
|
|
9948
|
+
|
|
9949
|
+
.ds-admin__overlay {
|
|
9950
|
+
display: none;
|
|
9951
|
+
}
|
|
9952
|
+
}
|
|
9953
|
+
|
|
9954
|
+
|
|
9955
|
+
/* ==========================================================================
|
|
9956
|
+
Mobile Menu (fullscreen drawer, no animation — uses ds-drawer)
|
|
9957
|
+
========================================================================== */
|
|
9958
|
+
|
|
9959
|
+
.ds-admin__mobile-menu {
|
|
9960
|
+
transition: none;
|
|
9961
|
+
}
|
|
9962
|
+
|
|
9963
|
+
.ds-admin__mobile-menu .ds-drawer__content {
|
|
9964
|
+
width: 100vw;
|
|
9965
|
+
max-width: 100vw;
|
|
9966
|
+
transition: none;
|
|
9967
|
+
}
|
|
9968
|
+
|
|
9969
|
+
.ds-admin__mobile-menu .ds-drawer__body {
|
|
9970
|
+
display: flex;
|
|
9971
|
+
flex-direction: column;
|
|
9972
|
+
}
|
|
9973
|
+
|
|
9974
|
+
@media (min-width: 1024px) {
|
|
9975
|
+
|
|
9976
|
+
.ds-admin__mobile-menu {
|
|
9977
|
+
display: none !important;
|
|
9978
|
+
}
|
|
9979
|
+
}
|
|
9980
|
+
|
|
9981
|
+
|
|
9598
9982
|
|
|
9599
9983
|
/* === Content — Rich text and prose === */
|
|
9600
9984
|
/* ==========================================================================
|