@digiko-npm/designsystem 0.8.3 → 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 +865 -1
- package/dist/designsystem.min.css +2 -2
- package/package.json +4 -1
- package/src/components/admin-layout.css +369 -0
- package/src/components/hero.css +113 -0
- package/src/components/index.css +5 -0
- package/src/components/prose.css +119 -0
- package/src/utilities/index.css +2 -0
- package/src/utilities/layout.css +21 -0
- package/src/utilities/sizing.css +71 -0
- package/src/utilities/spacing.css +19 -0
- package/src/utilities/states.css +74 -0
- package/src/utilities/text.css +45 -0
package/dist/designsystem.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @ds/designsystem v0.
|
|
1
|
+
/* @ds/designsystem v0.9.1 */
|
|
2
2
|
/* ==========================================================================
|
|
3
3
|
@digiko-npm/designsystem
|
|
4
4
|
|
|
@@ -9479,6 +9479,628 @@ button.ds-tag:focus-visible {
|
|
|
9479
9479
|
}
|
|
9480
9480
|
|
|
9481
9481
|
|
|
9482
|
+
/* ==========================================================================
|
|
9483
|
+
Component: Hero
|
|
9484
|
+
Full-width hero section with background image, gradient overlay,
|
|
9485
|
+
and optional frosted glass backdrop.
|
|
9486
|
+
|
|
9487
|
+
Intentionally uses theme-independent colors for text on photo backgrounds.
|
|
9488
|
+
The overlay uses color-mix() with --ds-color-bg for theme-aware darkening
|
|
9489
|
+
while title/subtitle stay white for readability on any photo.
|
|
9490
|
+
|
|
9491
|
+
Usage:
|
|
9492
|
+
<section class="ds-hero" style="background-image: url(...)">
|
|
9493
|
+
<div class="ds-hero__overlay"></div>
|
|
9494
|
+
<div class="ds-hero__content ds-container">
|
|
9495
|
+
<div class="ds-hero__backdrop">
|
|
9496
|
+
<h1 class="ds-hero__title ds-hero-title">Heading</h1>
|
|
9497
|
+
<p class="ds-hero__subtitle">Subheading</p>
|
|
9498
|
+
</div>
|
|
9499
|
+
</div>
|
|
9500
|
+
</section>
|
|
9501
|
+
|
|
9502
|
+
Variants:
|
|
9503
|
+
ds-hero--full Generous padding, auto height (no min-height)
|
|
9504
|
+
ds-hero__overlay--subtle Lighter overlay, photo shows through more
|
|
9505
|
+
|
|
9506
|
+
ARIA: role="banner" or within <header>. Background images are decorative
|
|
9507
|
+
— add meaningful content in the markup, not in CSS.
|
|
9508
|
+
========================================================================== */
|
|
9509
|
+
|
|
9510
|
+
.ds-hero {
|
|
9511
|
+
position: relative;
|
|
9512
|
+
min-height: 28rem;
|
|
9513
|
+
display: flex;
|
|
9514
|
+
align-items: center;
|
|
9515
|
+
justify-content: center;
|
|
9516
|
+
text-align: center;
|
|
9517
|
+
background-size: cover;
|
|
9518
|
+
background-position: center;
|
|
9519
|
+
}
|
|
9520
|
+
|
|
9521
|
+
/* --- Full variant (generous padding, no min-height) --- */
|
|
9522
|
+
.ds-hero--full {
|
|
9523
|
+
min-height: auto;
|
|
9524
|
+
padding-block: var(--ds-space-16);
|
|
9525
|
+
}
|
|
9526
|
+
|
|
9527
|
+
@media (min-width: 768px) {
|
|
9528
|
+
|
|
9529
|
+
.ds-hero--full {
|
|
9530
|
+
padding-block: var(--ds-space-20);
|
|
9531
|
+
}
|
|
9532
|
+
}
|
|
9533
|
+
|
|
9534
|
+
|
|
9535
|
+
/* --- Gradient overlay (theme-aware darkening) --- */
|
|
9536
|
+
.ds-hero__overlay {
|
|
9537
|
+
position: absolute;
|
|
9538
|
+
inset: 0;
|
|
9539
|
+
background: linear-gradient(
|
|
9540
|
+
to bottom,
|
|
9541
|
+
color-mix(in srgb, var(--ds-color-bg) 70%, transparent),
|
|
9542
|
+
color-mix(in srgb, var(--ds-color-bg) 92%, transparent)
|
|
9543
|
+
);
|
|
9544
|
+
}
|
|
9545
|
+
|
|
9546
|
+
.ds-hero__overlay--subtle {
|
|
9547
|
+
background: linear-gradient(
|
|
9548
|
+
to bottom,
|
|
9549
|
+
color-mix(in srgb, var(--ds-color-bg) 20%, transparent),
|
|
9550
|
+
color-mix(in srgb, var(--ds-color-bg) 40%, transparent)
|
|
9551
|
+
);
|
|
9552
|
+
}
|
|
9553
|
+
|
|
9554
|
+
[data-theme="dark"] .ds-hero__overlay {
|
|
9555
|
+
background: linear-gradient(
|
|
9556
|
+
to bottom,
|
|
9557
|
+
color-mix(in srgb, var(--ds-color-bg) 80%, transparent),
|
|
9558
|
+
color-mix(in srgb, var(--ds-color-bg) 95%, transparent)
|
|
9559
|
+
);
|
|
9560
|
+
}
|
|
9561
|
+
|
|
9562
|
+
[data-theme="dark"] .ds-hero__overlay--subtle {
|
|
9563
|
+
background: linear-gradient(
|
|
9564
|
+
to bottom,
|
|
9565
|
+
color-mix(in srgb, var(--ds-color-bg) 30%, transparent),
|
|
9566
|
+
color-mix(in srgb, var(--ds-color-bg) 50%, transparent)
|
|
9567
|
+
);
|
|
9568
|
+
}
|
|
9569
|
+
|
|
9570
|
+
/* --- Content wrapper (above overlay) --- */
|
|
9571
|
+
.ds-hero__content {
|
|
9572
|
+
position: relative;
|
|
9573
|
+
z-index: 1;
|
|
9574
|
+
width: 100%;
|
|
9575
|
+
}
|
|
9576
|
+
|
|
9577
|
+
/* --- Frosted glass backdrop --- */
|
|
9578
|
+
.ds-hero__backdrop {
|
|
9579
|
+
display: block;
|
|
9580
|
+
padding: var(--ds-space-8);
|
|
9581
|
+
border-radius: var(--ds-radius-2xl);
|
|
9582
|
+
background: rgba(0, 0, 0, 0.35);
|
|
9583
|
+
backdrop-filter: blur(32px) saturate(1.6);
|
|
9584
|
+
-webkit-backdrop-filter: blur(32px) saturate(1.6);
|
|
9585
|
+
max-width: 40rem;
|
|
9586
|
+
margin-inline: auto;
|
|
9587
|
+
}
|
|
9588
|
+
|
|
9589
|
+
/* --- Title & subtitle (theme-independent white for photo readability) --- */
|
|
9590
|
+
.ds-hero__title {
|
|
9591
|
+
color: #fff;
|
|
9592
|
+
}
|
|
9593
|
+
|
|
9594
|
+
.ds-hero__subtitle {
|
|
9595
|
+
color: rgba(255, 255, 255, 0.85);
|
|
9596
|
+
}
|
|
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
|
+
|
|
9982
|
+
|
|
9983
|
+
/* === Content — Rich text and prose === */
|
|
9984
|
+
/* ==========================================================================
|
|
9985
|
+
Component: Prose Block
|
|
9986
|
+
Full markdown-rendered content styling. Use for CMS output, blog posts,
|
|
9987
|
+
documentation, or any container with user-generated rich text.
|
|
9988
|
+
|
|
9989
|
+
Note: The lighter `.ds-prose` in base/typography.css handles simple
|
|
9990
|
+
inline rich text (p + p spacing, links, lists). This component is for
|
|
9991
|
+
comprehensive markdown rendering with headings, code blocks, blockquotes,
|
|
9992
|
+
images, and horizontal rules.
|
|
9993
|
+
|
|
9994
|
+
Usage:
|
|
9995
|
+
<div class="ds-prose-block">
|
|
9996
|
+
<h2>Title</h2>
|
|
9997
|
+
<p>Paragraph with <a href="#">link</a> and <code>code</code>.</p>
|
|
9998
|
+
<pre><code>code block</code></pre>
|
|
9999
|
+
<blockquote>Quote</blockquote>
|
|
10000
|
+
</div>
|
|
10001
|
+
========================================================================== */
|
|
10002
|
+
|
|
10003
|
+
.ds-prose-block {
|
|
10004
|
+
line-height: var(--ds-leading-relaxed);
|
|
10005
|
+
}
|
|
10006
|
+
|
|
10007
|
+
.ds-prose-block :is(h1, h2, h3, h4, h5, h6) {
|
|
10008
|
+
font-family: var(--ds-font-display);
|
|
10009
|
+
font-weight: var(--ds-font-display-weight);
|
|
10010
|
+
letter-spacing: var(--ds-tracking-tight);
|
|
10011
|
+
color: var(--ds-color-text);
|
|
10012
|
+
margin-block-start: 1.5em;
|
|
10013
|
+
margin-block-end: 0.5em;
|
|
10014
|
+
}
|
|
10015
|
+
|
|
10016
|
+
.ds-prose-block :is(h1, h2, h3, h4, h5, h6):first-child {
|
|
10017
|
+
margin-block-start: 0;
|
|
10018
|
+
}
|
|
10019
|
+
|
|
10020
|
+
.ds-prose-block p {
|
|
10021
|
+
color: var(--ds-color-text-secondary);
|
|
10022
|
+
margin-block-end: 1em;
|
|
10023
|
+
}
|
|
10024
|
+
|
|
10025
|
+
.ds-prose-block p:last-child {
|
|
10026
|
+
margin-block-end: 0;
|
|
10027
|
+
}
|
|
10028
|
+
|
|
10029
|
+
.ds-prose-block a {
|
|
10030
|
+
color: var(--ds-color-interactive);
|
|
10031
|
+
text-decoration: none;
|
|
10032
|
+
}
|
|
10033
|
+
|
|
10034
|
+
.ds-prose-block a:hover {
|
|
10035
|
+
text-decoration: underline;
|
|
10036
|
+
}
|
|
10037
|
+
|
|
10038
|
+
.ds-prose-block strong {
|
|
10039
|
+
color: var(--ds-color-text);
|
|
10040
|
+
font-weight: var(--ds-weight-semibold);
|
|
10041
|
+
}
|
|
10042
|
+
|
|
10043
|
+
.ds-prose-block code {
|
|
10044
|
+
font-family: var(--ds-font-mono);
|
|
10045
|
+
font-size: var(--ds-text-sm);
|
|
10046
|
+
background-color: var(--ds-color-bg-elevated);
|
|
10047
|
+
padding: 0.125em 0.375em;
|
|
10048
|
+
border-radius: var(--ds-radius-sm);
|
|
10049
|
+
}
|
|
10050
|
+
|
|
10051
|
+
.ds-prose-block pre {
|
|
10052
|
+
background-color: var(--ds-color-bg-elevated);
|
|
10053
|
+
padding: var(--ds-space-4);
|
|
10054
|
+
border-radius: var(--ds-radius-lg);
|
|
10055
|
+
overflow-x: auto;
|
|
10056
|
+
margin-block-end: 1em;
|
|
10057
|
+
}
|
|
10058
|
+
|
|
10059
|
+
.ds-prose-block pre code {
|
|
10060
|
+
background: none;
|
|
10061
|
+
padding: 0;
|
|
10062
|
+
border-radius: 0;
|
|
10063
|
+
}
|
|
10064
|
+
|
|
10065
|
+
.ds-prose-block ul,
|
|
10066
|
+
.ds-prose-block ol {
|
|
10067
|
+
padding-inline-start: 1.5em;
|
|
10068
|
+
margin-block-end: 1em;
|
|
10069
|
+
color: var(--ds-color-text-secondary);
|
|
10070
|
+
}
|
|
10071
|
+
|
|
10072
|
+
.ds-prose-block li {
|
|
10073
|
+
margin-block-end: 0.25em;
|
|
10074
|
+
}
|
|
10075
|
+
|
|
10076
|
+
.ds-prose-block ul {
|
|
10077
|
+
list-style-type: disc;
|
|
10078
|
+
}
|
|
10079
|
+
|
|
10080
|
+
.ds-prose-block ol {
|
|
10081
|
+
list-style-type: decimal;
|
|
10082
|
+
}
|
|
10083
|
+
|
|
10084
|
+
.ds-prose-block blockquote {
|
|
10085
|
+
border-inline-start: 3px solid var(--ds-color-border);
|
|
10086
|
+
padding-inline-start: var(--ds-space-4);
|
|
10087
|
+
color: var(--ds-color-text-secondary);
|
|
10088
|
+
font-style: italic;
|
|
10089
|
+
margin-block-end: 1em;
|
|
10090
|
+
}
|
|
10091
|
+
|
|
10092
|
+
.ds-prose-block hr {
|
|
10093
|
+
border: none;
|
|
10094
|
+
border-block-start: 1px solid var(--ds-color-border);
|
|
10095
|
+
margin-block: var(--ds-space-6);
|
|
10096
|
+
}
|
|
10097
|
+
|
|
10098
|
+
.ds-prose-block img {
|
|
10099
|
+
max-width: 100%;
|
|
10100
|
+
border-radius: var(--ds-radius-lg);
|
|
10101
|
+
margin-block-end: 1em;
|
|
10102
|
+
}
|
|
10103
|
+
|
|
9482
10104
|
|
|
9483
10105
|
/* === Action — Trigger operations and commands === */
|
|
9484
10106
|
/* ==========================================================================
|
|
@@ -10710,6 +11332,33 @@ tr:hover .ds-sortable__handle,
|
|
|
10710
11332
|
}
|
|
10711
11333
|
|
|
10712
11334
|
|
|
11335
|
+
/* --- Responsive: Flex (extended) --- */
|
|
11336
|
+
@media (min-width: 640px) {
|
|
11337
|
+
|
|
11338
|
+
.ds-sm\:flex-none { flex: none; }
|
|
11339
|
+
.ds-sm\:items-center { align-items: center; }
|
|
11340
|
+
.ds-sm\:justify-between { justify-content: space-between; }
|
|
11341
|
+
.ds-sm\:gap-4 { gap: var(--ds-space-4); }
|
|
11342
|
+
.ds-sm\:gap-8 { gap: var(--ds-space-8); }
|
|
11343
|
+
.ds-sm\:inline { display: inline; }
|
|
11344
|
+
}
|
|
11345
|
+
|
|
11346
|
+
|
|
11347
|
+
@media (min-width: 768px) {
|
|
11348
|
+
|
|
11349
|
+
.ds-md\:grid-cols-5 { grid-template-columns: repeat(5, 1fr); }
|
|
11350
|
+
}
|
|
11351
|
+
|
|
11352
|
+
|
|
11353
|
+
@media (min-width: 1024px) /* --ds-breakpoint-lg */ {
|
|
11354
|
+
|
|
11355
|
+
.ds-lg\:flex-row { flex-direction: row; }
|
|
11356
|
+
.ds-lg\:gap-4 { gap: var(--ds-space-4); }
|
|
11357
|
+
.ds-lg\:gap-6 { gap: var(--ds-space-6); }
|
|
11358
|
+
.ds-lg\:gap-8 { gap: var(--ds-space-8); }
|
|
11359
|
+
}
|
|
11360
|
+
|
|
11361
|
+
|
|
10713
11362
|
/* --- Aspect Ratio --- */
|
|
10714
11363
|
.ds-aspect-square { aspect-ratio: 1; }
|
|
10715
11364
|
.ds-aspect-video { aspect-ratio: 16/9; }
|
|
@@ -10802,8 +11451,15 @@ tr:hover .ds-sortable__handle,
|
|
|
10802
11451
|
|
|
10803
11452
|
.ds-mt-0\.5 { margin-block-start: var(--ds-space-0-5); }
|
|
10804
11453
|
.ds-mt-3 { margin-block-start: var(--ds-space-3); }
|
|
11454
|
+
.ds-mt-10 { margin-block-start: var(--ds-space-10); }
|
|
11455
|
+
.ds-mt-12 { margin-block-start: var(--ds-space-12); }
|
|
11456
|
+
.ds-mt-16 { margin-block-start: var(--ds-space-16); }
|
|
10805
11457
|
.ds-mb-0\.5 { margin-block-end: var(--ds-space-0-5); }
|
|
10806
11458
|
.ds-mb-3 { margin-block-end: var(--ds-space-3); }
|
|
11459
|
+
.ds-mb-10 { margin-block-end: var(--ds-space-10); }
|
|
11460
|
+
.ds-mb-12 { margin-block-end: var(--ds-space-12); }
|
|
11461
|
+
.ds-mb-16 { margin-block-end: var(--ds-space-16); }
|
|
11462
|
+
.ds-mb-20 { margin-block-end: var(--ds-space-20); }
|
|
10807
11463
|
|
|
10808
11464
|
/* --- Padding (granular) --- */
|
|
10809
11465
|
.ds-p-0\.5 { padding: var(--ds-space-0-5); }
|
|
@@ -10840,7 +11496,21 @@ tr:hover .ds-sortable__handle,
|
|
|
10840
11496
|
.ds-space-y-6 > * + * { margin-block-start: var(--ds-space-6); }
|
|
10841
11497
|
.ds-space-y-8 > * + * { margin-block-start: var(--ds-space-8); }
|
|
10842
11498
|
|
|
11499
|
+
/* --- Space-Y (fractional) --- */
|
|
11500
|
+
.ds-space-y-1\.5 > * + * { margin-block-start: var(--ds-space-1-5); }
|
|
11501
|
+
|
|
10843
11502
|
/* --- Responsive: Padding --- */
|
|
11503
|
+
@media (min-width: 640px) {
|
|
11504
|
+
|
|
11505
|
+
.ds-sm\:p-6 { padding: var(--ds-space-6); }
|
|
11506
|
+
.ds-sm\:px-0 { padding-inline: var(--ds-space-0); }
|
|
11507
|
+
.ds-sm\:px-3 { padding-inline: var(--ds-space-3); }
|
|
11508
|
+
.ds-sm\:px-4 { padding-inline: var(--ds-space-4); }
|
|
11509
|
+
.ds-sm\:px-6 { padding-inline: var(--ds-space-6); }
|
|
11510
|
+
.ds-sm\:py-3 { padding-block: var(--ds-space-3); }
|
|
11511
|
+
}
|
|
11512
|
+
|
|
11513
|
+
|
|
10844
11514
|
@media (min-width: 768px) {
|
|
10845
11515
|
|
|
10846
11516
|
.ds-md\:px-4 { padding-inline: var(--ds-space-4); }
|
|
@@ -10862,6 +11532,80 @@ tr:hover .ds-sortable__handle,
|
|
|
10862
11532
|
}
|
|
10863
11533
|
|
|
10864
11534
|
|
|
11535
|
+
/* ==========================================================================
|
|
11536
|
+
Utilities: Sizing
|
|
11537
|
+
Width, height, min/max constraints.
|
|
11538
|
+
Extends the base sizing in layout.css with the full spacing scale.
|
|
11539
|
+
========================================================================== */
|
|
11540
|
+
|
|
11541
|
+
/* --- Width (values not already in layout.css) --- */
|
|
11542
|
+
.ds-w-0 { width: var(--ds-space-0); }
|
|
11543
|
+
.ds-w-1 { width: var(--ds-space-1); }
|
|
11544
|
+
.ds-w-1\.5 { width: var(--ds-space-1-5); }
|
|
11545
|
+
.ds-w-2 { width: var(--ds-space-2); }
|
|
11546
|
+
.ds-w-3\.5 { width: 0.875rem; }
|
|
11547
|
+
.ds-w-6 { width: var(--ds-space-6); }
|
|
11548
|
+
.ds-w-12 { width: var(--ds-space-12); }
|
|
11549
|
+
.ds-w-16 { width: var(--ds-space-16); }
|
|
11550
|
+
.ds-w-20 { width: var(--ds-space-20); }
|
|
11551
|
+
.ds-w-24 { width: var(--ds-space-24); }
|
|
11552
|
+
.ds-w-28 { width: 7rem; }
|
|
11553
|
+
.ds-w-32 { width: var(--ds-space-32); }
|
|
11554
|
+
.ds-w-48 { width: 12rem; }
|
|
11555
|
+
.ds-w-56 { width: 14rem; }
|
|
11556
|
+
.ds-w-64 { width: 16rem; }
|
|
11557
|
+
.ds-w-80 { width: 20rem; }
|
|
11558
|
+
.ds-w-96 { width: 24rem; }
|
|
11559
|
+
.ds-w-auto { width: auto; }
|
|
11560
|
+
.ds-w-screen { width: 100vw; }
|
|
11561
|
+
|
|
11562
|
+
/* --- Height (values not already in layout.css) --- */
|
|
11563
|
+
.ds-h-0 { height: var(--ds-space-0); }
|
|
11564
|
+
.ds-h-0\.5 { height: var(--ds-space-0-5); }
|
|
11565
|
+
.ds-h-1 { height: var(--ds-space-1); }
|
|
11566
|
+
.ds-h-1\.5 { height: var(--ds-space-1-5); }
|
|
11567
|
+
.ds-h-2 { height: var(--ds-space-2); }
|
|
11568
|
+
.ds-h-3\.5 { height: 0.875rem; }
|
|
11569
|
+
.ds-h-6 { height: var(--ds-space-6); }
|
|
11570
|
+
.ds-h-12 { height: var(--ds-space-12); }
|
|
11571
|
+
.ds-h-14 { height: 3.5rem; }
|
|
11572
|
+
.ds-h-20 { height: var(--ds-space-20); }
|
|
11573
|
+
.ds-h-24 { height: var(--ds-space-24); }
|
|
11574
|
+
.ds-h-28 { height: 7rem; }
|
|
11575
|
+
.ds-h-32 { height: var(--ds-space-32); }
|
|
11576
|
+
.ds-h-48 { height: 12rem; }
|
|
11577
|
+
.ds-h-64 { height: 16rem; }
|
|
11578
|
+
.ds-h-96 { height: 24rem; }
|
|
11579
|
+
.ds-h-auto { height: auto; }
|
|
11580
|
+
.ds-h-px { height: 1px; }
|
|
11581
|
+
|
|
11582
|
+
/* --- Max Width (extended) --- */
|
|
11583
|
+
.ds-max-w-4xl { max-width: 56rem; }
|
|
11584
|
+
.ds-max-w-5xl { max-width: 64rem; }
|
|
11585
|
+
.ds-max-w-6xl { max-width: 72rem; }
|
|
11586
|
+
.ds-max-w-7xl { max-width: 80rem; }
|
|
11587
|
+
.ds-max-w-full { max-width: 100%; }
|
|
11588
|
+
|
|
11589
|
+
/* --- Max Height --- */
|
|
11590
|
+
.ds-max-h-64 { max-height: 16rem; }
|
|
11591
|
+
.ds-max-h-80 { max-height: 20rem; }
|
|
11592
|
+
.ds-max-h-96 { max-height: 24rem; }
|
|
11593
|
+
.ds-max-h-screen { max-height: 100dvh; }
|
|
11594
|
+
|
|
11595
|
+
/* --- Responsive: Sizing --- */
|
|
11596
|
+
@media (min-width: 640px) {
|
|
11597
|
+
|
|
11598
|
+
.ds-sm\:w-12 { width: var(--ds-space-12); }
|
|
11599
|
+
.ds-sm\:w-16 { width: var(--ds-space-16); }
|
|
11600
|
+
.ds-sm\:w-32 { width: var(--ds-space-32); }
|
|
11601
|
+
.ds-sm\:w-64 { width: 16rem; }
|
|
11602
|
+
.ds-sm\:w-96 { width: 24rem; }
|
|
11603
|
+
.ds-sm\:w-auto { width: auto; }
|
|
11604
|
+
.ds-sm\:h-12 { height: var(--ds-space-12); }
|
|
11605
|
+
.ds-sm\:h-32 { height: var(--ds-space-32); }
|
|
11606
|
+
}
|
|
11607
|
+
|
|
11608
|
+
|
|
10865
11609
|
/* ==========================================================================
|
|
10866
11610
|
Utilities: Text, Visual & style helpers
|
|
10867
11611
|
========================================================================== */
|
|
@@ -11021,6 +11765,13 @@ tr:hover .ds-sortable__handle,
|
|
|
11021
11765
|
overflow: hidden;
|
|
11022
11766
|
}
|
|
11023
11767
|
|
|
11768
|
+
.ds-line-clamp-1 {
|
|
11769
|
+
display: -webkit-box;
|
|
11770
|
+
-webkit-line-clamp: 1;
|
|
11771
|
+
-webkit-box-orient: vertical;
|
|
11772
|
+
overflow: hidden;
|
|
11773
|
+
}
|
|
11774
|
+
|
|
11024
11775
|
.ds-line-clamp-3 {
|
|
11025
11776
|
display: -webkit-box;
|
|
11026
11777
|
-webkit-line-clamp: 3;
|
|
@@ -11028,6 +11779,12 @@ tr:hover .ds-sortable__handle,
|
|
|
11028
11779
|
overflow: hidden;
|
|
11029
11780
|
}
|
|
11030
11781
|
|
|
11782
|
+
/* --- Text Extras --- */
|
|
11783
|
+
.ds-line-through { text-decoration: line-through; }
|
|
11784
|
+
.ds-break-all { word-break: break-all; }
|
|
11785
|
+
.ds-list-disc { list-style-type: disc; }
|
|
11786
|
+
.ds-list-inside { list-style-position: inside; }
|
|
11787
|
+
|
|
11031
11788
|
/* --- Font Family --- */
|
|
11032
11789
|
.ds-font-mono { font-family: var(--ds-font-mono); }
|
|
11033
11790
|
.ds-font-sans { font-family: var(--ds-font-sans); }
|
|
@@ -11038,6 +11795,7 @@ tr:hover .ds-sortable__handle,
|
|
|
11038
11795
|
.ds-border-b { border-block-end: 1px solid var(--ds-color-border); }
|
|
11039
11796
|
.ds-border-l { border-inline-start: 1px solid var(--ds-color-border); }
|
|
11040
11797
|
.ds-border-r { border-inline-end: 1px solid var(--ds-color-border); }
|
|
11798
|
+
.ds-border-y { border-block-start: 1px solid var(--ds-color-border); border-block-end: 1px solid var(--ds-color-border); }
|
|
11041
11799
|
.ds-border-none { border: none; }
|
|
11042
11800
|
|
|
11043
11801
|
/* --- Border Color --- */
|
|
@@ -11058,8 +11816,15 @@ tr:hover .ds-sortable__handle,
|
|
|
11058
11816
|
.ds-rounded-lg { border-radius: var(--ds-radius-lg); }
|
|
11059
11817
|
.ds-rounded-xl { border-radius: var(--ds-radius-xl); }
|
|
11060
11818
|
.ds-rounded-2xl { border-radius: var(--ds-radius-2xl); }
|
|
11819
|
+
.ds-rounded-3xl { border-radius: 1.5rem; }
|
|
11061
11820
|
.ds-rounded-full { border-radius: var(--ds-radius-full); }
|
|
11062
11821
|
|
|
11822
|
+
/* --- Border Radius (directional) --- */
|
|
11823
|
+
.ds-rounded-t { border-start-start-radius: var(--ds-radius-md); border-start-end-radius: var(--ds-radius-md); }
|
|
11824
|
+
.ds-rounded-b { border-end-start-radius: var(--ds-radius-md); border-end-end-radius: var(--ds-radius-md); }
|
|
11825
|
+
.ds-rounded-t-2xl { border-start-start-radius: var(--ds-radius-2xl); border-start-end-radius: var(--ds-radius-2xl); }
|
|
11826
|
+
.ds-rounded-b-2xl { border-end-start-radius: var(--ds-radius-2xl); border-end-end-radius: var(--ds-radius-2xl); }
|
|
11827
|
+
|
|
11063
11828
|
/* --- Shadow --- */
|
|
11064
11829
|
.ds-shadow-sm { box-shadow: var(--ds-shadow-sm); }
|
|
11065
11830
|
.ds-shadow { box-shadow: var(--ds-shadow-md); }
|
|
@@ -11068,7 +11833,11 @@ tr:hover .ds-sortable__handle,
|
|
|
11068
11833
|
|
|
11069
11834
|
/* --- Opacity --- */
|
|
11070
11835
|
.ds-opacity-0 { opacity: 0; }
|
|
11836
|
+
.ds-opacity-25 { opacity: 0.25; }
|
|
11071
11837
|
.ds-opacity-50 { opacity: 0.5; }
|
|
11838
|
+
.ds-opacity-60 { opacity: 0.6; }
|
|
11839
|
+
.ds-opacity-70 { opacity: 0.7; }
|
|
11840
|
+
.ds-opacity-75 { opacity: 0.75; }
|
|
11072
11841
|
.ds-opacity-100 { opacity: 1; }
|
|
11073
11842
|
|
|
11074
11843
|
/* --- Cursor --- */
|
|
@@ -11082,6 +11851,7 @@ tr:hover .ds-sortable__handle,
|
|
|
11082
11851
|
.ds-pointer-events-none { pointer-events: none; }
|
|
11083
11852
|
.ds-select-none { user-select: none; }
|
|
11084
11853
|
.ds-whitespace-nowrap { white-space: nowrap; }
|
|
11854
|
+
.ds-whitespace-pre-wrap { white-space: pre-wrap; }
|
|
11085
11855
|
|
|
11086
11856
|
/* --- Backdrop --- */
|
|
11087
11857
|
.ds-backdrop-blur {
|
|
@@ -11089,6 +11859,14 @@ tr:hover .ds-sortable__handle,
|
|
|
11089
11859
|
-webkit-backdrop-filter: blur(20px) saturate(1.5);
|
|
11090
11860
|
}
|
|
11091
11861
|
|
|
11862
|
+
.ds-backdrop-blur-sm {
|
|
11863
|
+
backdrop-filter: blur(4px);
|
|
11864
|
+
-webkit-backdrop-filter: blur(4px);
|
|
11865
|
+
}
|
|
11866
|
+
|
|
11867
|
+
/* --- Outline --- */
|
|
11868
|
+
.ds-outline-none { outline: none; }
|
|
11869
|
+
|
|
11092
11870
|
/* --- Transform --- */
|
|
11093
11871
|
.-ds-translate-y-1\/2 { transform: translateY(-50%); }
|
|
11094
11872
|
.-ds-translate-x-1\/2 { transform: translateX(-50%); }
|
|
@@ -11119,6 +11897,17 @@ tr:hover .ds-sortable__handle,
|
|
|
11119
11897
|
transition: transform var(--ds-duration-normal) var(--ds-ease-default);
|
|
11120
11898
|
}
|
|
11121
11899
|
|
|
11900
|
+
/* --- Duration --- */
|
|
11901
|
+
.ds-duration-fast { transition-duration: var(--ds-duration-fast); }
|
|
11902
|
+
.ds-duration-normal { transition-duration: var(--ds-duration-normal); }
|
|
11903
|
+
.ds-duration-slow { transition-duration: var(--ds-duration-slow); }
|
|
11904
|
+
.ds-duration-slower { transition-duration: var(--ds-duration-slower); }
|
|
11905
|
+
|
|
11906
|
+
/* --- Easing --- */
|
|
11907
|
+
.ds-ease-default { transition-timing-function: var(--ds-ease-default); }
|
|
11908
|
+
.ds-ease-out { transition-timing-function: var(--ds-ease-out); }
|
|
11909
|
+
.ds-ease-out-expo { transition-timing-function: var(--ds-ease-out-expo); }
|
|
11910
|
+
|
|
11122
11911
|
/* --- Animations --- */
|
|
11123
11912
|
@keyframes ds-fade-in {
|
|
11124
11913
|
from { opacity: 0; }
|
|
@@ -11310,6 +12099,81 @@ tr:hover .ds-sortable__handle,
|
|
|
11310
12099
|
color: var(--ds-color-text);
|
|
11311
12100
|
}
|
|
11312
12101
|
|
|
12102
|
+
/* ==========================================================================
|
|
12103
|
+
Utilities: State Variants
|
|
12104
|
+
Hover, focus, active, focus-within, placeholder, and group-hover
|
|
12105
|
+
modifiers for DS utility classes.
|
|
12106
|
+
========================================================================== */
|
|
12107
|
+
|
|
12108
|
+
/* --- Group Marker (enables group-hover on descendants) ---
|
|
12109
|
+
Supports both .group and .ds-group for compatibility. */
|
|
12110
|
+
.ds-group { /* marker — no styles */ }
|
|
12111
|
+
|
|
12112
|
+
/* --- Hover: Background --- */
|
|
12113
|
+
.hover\:ds-bg-base:hover { background-color: var(--ds-color-bg); }
|
|
12114
|
+
.hover\:ds-bg-elevated:hover { background-color: var(--ds-color-bg-elevated); }
|
|
12115
|
+
.hover\:ds-bg-muted:hover { background-color: var(--ds-color-bg-muted); }
|
|
12116
|
+
.hover\:ds-bg-subtle:hover { background-color: var(--ds-color-bg-subtle); }
|
|
12117
|
+
.hover\:ds-bg-surface:hover { background-color: var(--ds-color-surface); }
|
|
12118
|
+
.hover\:ds-bg-inverted:hover { background-color: var(--ds-color-inverted); }
|
|
12119
|
+
.hover\:ds-bg-info:hover { background-color: var(--ds-color-info); }
|
|
12120
|
+
|
|
12121
|
+
/* --- Hover: Text --- */
|
|
12122
|
+
.hover\:ds-text-primary:hover { color: var(--ds-color-text); }
|
|
12123
|
+
.hover\:ds-text-secondary:hover { color: var(--ds-color-text-secondary); }
|
|
12124
|
+
.hover\:ds-text-interactive:hover { color: var(--ds-color-interactive); }
|
|
12125
|
+
|
|
12126
|
+
/* --- Hover: Border --- */
|
|
12127
|
+
.hover\:ds-border-hover:hover { border-color: var(--ds-color-border-hover); }
|
|
12128
|
+
.hover\:ds-border-interactive:hover { border-color: var(--ds-color-interactive); }
|
|
12129
|
+
|
|
12130
|
+
/* --- Hover: Decoration --- */
|
|
12131
|
+
.hover\:ds-underline:hover { text-decoration: underline; text-underline-offset: 2px; }
|
|
12132
|
+
|
|
12133
|
+
/* --- Focus --- */
|
|
12134
|
+
.focus\:ds-outline-none:focus { outline: none; }
|
|
12135
|
+
.focus\:ds-ring-0:focus { box-shadow: none; }
|
|
12136
|
+
.focus\:ds-ring-2:focus { box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-color-interactive); }
|
|
12137
|
+
|
|
12138
|
+
/* --- Focus-Within --- */
|
|
12139
|
+
.focus-within\:ds-border-interactive:focus-within { border-color: var(--ds-color-interactive); }
|
|
12140
|
+
|
|
12141
|
+
/* --- Active --- */
|
|
12142
|
+
.active\:ds-bg-elevated:active { background-color: var(--ds-color-bg-elevated); }
|
|
12143
|
+
.active\:ds-text-secondary:active { color: var(--ds-color-text-secondary); }
|
|
12144
|
+
|
|
12145
|
+
/* --- Placeholder --- */
|
|
12146
|
+
.placeholder\:ds-text-tertiary::placeholder { color: var(--ds-color-text-tertiary); }
|
|
12147
|
+
|
|
12148
|
+
/* --- Group Hover (descendants of .group or .ds-group on hover) --- */
|
|
12149
|
+
.group:hover > .group-hover\:ds-text-interactive,
|
|
12150
|
+
.group:hover .group-hover\:ds-text-interactive,
|
|
12151
|
+
.ds-group:hover > .group-hover\:ds-text-interactive,
|
|
12152
|
+
.ds-group:hover .group-hover\:ds-text-interactive {
|
|
12153
|
+
color: var(--ds-color-interactive);
|
|
12154
|
+
}
|
|
12155
|
+
|
|
12156
|
+
.group:hover > .group-hover\:ds-scale-110,
|
|
12157
|
+
.group:hover .group-hover\:ds-scale-110,
|
|
12158
|
+
.ds-group:hover > .group-hover\:ds-scale-110,
|
|
12159
|
+
.ds-group:hover .group-hover\:ds-scale-110 {
|
|
12160
|
+
transform: scale(1.1);
|
|
12161
|
+
}
|
|
12162
|
+
|
|
12163
|
+
.group:hover > .group-hover\:ds-translate-x-1,
|
|
12164
|
+
.group:hover .group-hover\:ds-translate-x-1,
|
|
12165
|
+
.ds-group:hover > .group-hover\:ds-translate-x-1,
|
|
12166
|
+
.ds-group:hover .group-hover\:ds-translate-x-1 {
|
|
12167
|
+
transform: translateX(0.25rem);
|
|
12168
|
+
}
|
|
12169
|
+
|
|
12170
|
+
.group:hover > .group-hover\:ds-opacity-100,
|
|
12171
|
+
.group:hover .group-hover\:ds-opacity-100,
|
|
12172
|
+
.ds-group:hover > .group-hover\:ds-opacity-100,
|
|
12173
|
+
.ds-group:hover .group-hover\:ds-opacity-100 {
|
|
12174
|
+
opacity: 1;
|
|
12175
|
+
}
|
|
12176
|
+
|
|
11313
12177
|
/* ==========================================================================
|
|
11314
12178
|
Utilities: Accessibility
|
|
11315
12179
|
Screen-reader helpers, skip links, focus utilities, and motion control.
|