@digiko-npm/designsystem 0.8.3 → 0.9.0
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 +481 -1
- package/dist/designsystem.min.css +2 -2
- package/package.json +3 -1
- package/src/components/hero.css +113 -0
- package/src/components/index.css +4 -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.0 */
|
|
2
2
|
/* ==========================================================================
|
|
3
3
|
@digiko-npm/designsystem
|
|
4
4
|
|
|
@@ -9479,6 +9479,244 @@ 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
|
+
/* === Content — Rich text and prose === */
|
|
9600
|
+
/* ==========================================================================
|
|
9601
|
+
Component: Prose Block
|
|
9602
|
+
Full markdown-rendered content styling. Use for CMS output, blog posts,
|
|
9603
|
+
documentation, or any container with user-generated rich text.
|
|
9604
|
+
|
|
9605
|
+
Note: The lighter `.ds-prose` in base/typography.css handles simple
|
|
9606
|
+
inline rich text (p + p spacing, links, lists). This component is for
|
|
9607
|
+
comprehensive markdown rendering with headings, code blocks, blockquotes,
|
|
9608
|
+
images, and horizontal rules.
|
|
9609
|
+
|
|
9610
|
+
Usage:
|
|
9611
|
+
<div class="ds-prose-block">
|
|
9612
|
+
<h2>Title</h2>
|
|
9613
|
+
<p>Paragraph with <a href="#">link</a> and <code>code</code>.</p>
|
|
9614
|
+
<pre><code>code block</code></pre>
|
|
9615
|
+
<blockquote>Quote</blockquote>
|
|
9616
|
+
</div>
|
|
9617
|
+
========================================================================== */
|
|
9618
|
+
|
|
9619
|
+
.ds-prose-block {
|
|
9620
|
+
line-height: var(--ds-leading-relaxed);
|
|
9621
|
+
}
|
|
9622
|
+
|
|
9623
|
+
.ds-prose-block :is(h1, h2, h3, h4, h5, h6) {
|
|
9624
|
+
font-family: var(--ds-font-display);
|
|
9625
|
+
font-weight: var(--ds-font-display-weight);
|
|
9626
|
+
letter-spacing: var(--ds-tracking-tight);
|
|
9627
|
+
color: var(--ds-color-text);
|
|
9628
|
+
margin-block-start: 1.5em;
|
|
9629
|
+
margin-block-end: 0.5em;
|
|
9630
|
+
}
|
|
9631
|
+
|
|
9632
|
+
.ds-prose-block :is(h1, h2, h3, h4, h5, h6):first-child {
|
|
9633
|
+
margin-block-start: 0;
|
|
9634
|
+
}
|
|
9635
|
+
|
|
9636
|
+
.ds-prose-block p {
|
|
9637
|
+
color: var(--ds-color-text-secondary);
|
|
9638
|
+
margin-block-end: 1em;
|
|
9639
|
+
}
|
|
9640
|
+
|
|
9641
|
+
.ds-prose-block p:last-child {
|
|
9642
|
+
margin-block-end: 0;
|
|
9643
|
+
}
|
|
9644
|
+
|
|
9645
|
+
.ds-prose-block a {
|
|
9646
|
+
color: var(--ds-color-interactive);
|
|
9647
|
+
text-decoration: none;
|
|
9648
|
+
}
|
|
9649
|
+
|
|
9650
|
+
.ds-prose-block a:hover {
|
|
9651
|
+
text-decoration: underline;
|
|
9652
|
+
}
|
|
9653
|
+
|
|
9654
|
+
.ds-prose-block strong {
|
|
9655
|
+
color: var(--ds-color-text);
|
|
9656
|
+
font-weight: var(--ds-weight-semibold);
|
|
9657
|
+
}
|
|
9658
|
+
|
|
9659
|
+
.ds-prose-block code {
|
|
9660
|
+
font-family: var(--ds-font-mono);
|
|
9661
|
+
font-size: var(--ds-text-sm);
|
|
9662
|
+
background-color: var(--ds-color-bg-elevated);
|
|
9663
|
+
padding: 0.125em 0.375em;
|
|
9664
|
+
border-radius: var(--ds-radius-sm);
|
|
9665
|
+
}
|
|
9666
|
+
|
|
9667
|
+
.ds-prose-block pre {
|
|
9668
|
+
background-color: var(--ds-color-bg-elevated);
|
|
9669
|
+
padding: var(--ds-space-4);
|
|
9670
|
+
border-radius: var(--ds-radius-lg);
|
|
9671
|
+
overflow-x: auto;
|
|
9672
|
+
margin-block-end: 1em;
|
|
9673
|
+
}
|
|
9674
|
+
|
|
9675
|
+
.ds-prose-block pre code {
|
|
9676
|
+
background: none;
|
|
9677
|
+
padding: 0;
|
|
9678
|
+
border-radius: 0;
|
|
9679
|
+
}
|
|
9680
|
+
|
|
9681
|
+
.ds-prose-block ul,
|
|
9682
|
+
.ds-prose-block ol {
|
|
9683
|
+
padding-inline-start: 1.5em;
|
|
9684
|
+
margin-block-end: 1em;
|
|
9685
|
+
color: var(--ds-color-text-secondary);
|
|
9686
|
+
}
|
|
9687
|
+
|
|
9688
|
+
.ds-prose-block li {
|
|
9689
|
+
margin-block-end: 0.25em;
|
|
9690
|
+
}
|
|
9691
|
+
|
|
9692
|
+
.ds-prose-block ul {
|
|
9693
|
+
list-style-type: disc;
|
|
9694
|
+
}
|
|
9695
|
+
|
|
9696
|
+
.ds-prose-block ol {
|
|
9697
|
+
list-style-type: decimal;
|
|
9698
|
+
}
|
|
9699
|
+
|
|
9700
|
+
.ds-prose-block blockquote {
|
|
9701
|
+
border-inline-start: 3px solid var(--ds-color-border);
|
|
9702
|
+
padding-inline-start: var(--ds-space-4);
|
|
9703
|
+
color: var(--ds-color-text-secondary);
|
|
9704
|
+
font-style: italic;
|
|
9705
|
+
margin-block-end: 1em;
|
|
9706
|
+
}
|
|
9707
|
+
|
|
9708
|
+
.ds-prose-block hr {
|
|
9709
|
+
border: none;
|
|
9710
|
+
border-block-start: 1px solid var(--ds-color-border);
|
|
9711
|
+
margin-block: var(--ds-space-6);
|
|
9712
|
+
}
|
|
9713
|
+
|
|
9714
|
+
.ds-prose-block img {
|
|
9715
|
+
max-width: 100%;
|
|
9716
|
+
border-radius: var(--ds-radius-lg);
|
|
9717
|
+
margin-block-end: 1em;
|
|
9718
|
+
}
|
|
9719
|
+
|
|
9482
9720
|
|
|
9483
9721
|
/* === Action — Trigger operations and commands === */
|
|
9484
9722
|
/* ==========================================================================
|
|
@@ -10710,6 +10948,33 @@ tr:hover .ds-sortable__handle,
|
|
|
10710
10948
|
}
|
|
10711
10949
|
|
|
10712
10950
|
|
|
10951
|
+
/* --- Responsive: Flex (extended) --- */
|
|
10952
|
+
@media (min-width: 640px) {
|
|
10953
|
+
|
|
10954
|
+
.ds-sm\:flex-none { flex: none; }
|
|
10955
|
+
.ds-sm\:items-center { align-items: center; }
|
|
10956
|
+
.ds-sm\:justify-between { justify-content: space-between; }
|
|
10957
|
+
.ds-sm\:gap-4 { gap: var(--ds-space-4); }
|
|
10958
|
+
.ds-sm\:gap-8 { gap: var(--ds-space-8); }
|
|
10959
|
+
.ds-sm\:inline { display: inline; }
|
|
10960
|
+
}
|
|
10961
|
+
|
|
10962
|
+
|
|
10963
|
+
@media (min-width: 768px) {
|
|
10964
|
+
|
|
10965
|
+
.ds-md\:grid-cols-5 { grid-template-columns: repeat(5, 1fr); }
|
|
10966
|
+
}
|
|
10967
|
+
|
|
10968
|
+
|
|
10969
|
+
@media (min-width: 1024px) /* --ds-breakpoint-lg */ {
|
|
10970
|
+
|
|
10971
|
+
.ds-lg\:flex-row { flex-direction: row; }
|
|
10972
|
+
.ds-lg\:gap-4 { gap: var(--ds-space-4); }
|
|
10973
|
+
.ds-lg\:gap-6 { gap: var(--ds-space-6); }
|
|
10974
|
+
.ds-lg\:gap-8 { gap: var(--ds-space-8); }
|
|
10975
|
+
}
|
|
10976
|
+
|
|
10977
|
+
|
|
10713
10978
|
/* --- Aspect Ratio --- */
|
|
10714
10979
|
.ds-aspect-square { aspect-ratio: 1; }
|
|
10715
10980
|
.ds-aspect-video { aspect-ratio: 16/9; }
|
|
@@ -10802,8 +11067,15 @@ tr:hover .ds-sortable__handle,
|
|
|
10802
11067
|
|
|
10803
11068
|
.ds-mt-0\.5 { margin-block-start: var(--ds-space-0-5); }
|
|
10804
11069
|
.ds-mt-3 { margin-block-start: var(--ds-space-3); }
|
|
11070
|
+
.ds-mt-10 { margin-block-start: var(--ds-space-10); }
|
|
11071
|
+
.ds-mt-12 { margin-block-start: var(--ds-space-12); }
|
|
11072
|
+
.ds-mt-16 { margin-block-start: var(--ds-space-16); }
|
|
10805
11073
|
.ds-mb-0\.5 { margin-block-end: var(--ds-space-0-5); }
|
|
10806
11074
|
.ds-mb-3 { margin-block-end: var(--ds-space-3); }
|
|
11075
|
+
.ds-mb-10 { margin-block-end: var(--ds-space-10); }
|
|
11076
|
+
.ds-mb-12 { margin-block-end: var(--ds-space-12); }
|
|
11077
|
+
.ds-mb-16 { margin-block-end: var(--ds-space-16); }
|
|
11078
|
+
.ds-mb-20 { margin-block-end: var(--ds-space-20); }
|
|
10807
11079
|
|
|
10808
11080
|
/* --- Padding (granular) --- */
|
|
10809
11081
|
.ds-p-0\.5 { padding: var(--ds-space-0-5); }
|
|
@@ -10840,7 +11112,21 @@ tr:hover .ds-sortable__handle,
|
|
|
10840
11112
|
.ds-space-y-6 > * + * { margin-block-start: var(--ds-space-6); }
|
|
10841
11113
|
.ds-space-y-8 > * + * { margin-block-start: var(--ds-space-8); }
|
|
10842
11114
|
|
|
11115
|
+
/* --- Space-Y (fractional) --- */
|
|
11116
|
+
.ds-space-y-1\.5 > * + * { margin-block-start: var(--ds-space-1-5); }
|
|
11117
|
+
|
|
10843
11118
|
/* --- Responsive: Padding --- */
|
|
11119
|
+
@media (min-width: 640px) {
|
|
11120
|
+
|
|
11121
|
+
.ds-sm\:p-6 { padding: var(--ds-space-6); }
|
|
11122
|
+
.ds-sm\:px-0 { padding-inline: var(--ds-space-0); }
|
|
11123
|
+
.ds-sm\:px-3 { padding-inline: var(--ds-space-3); }
|
|
11124
|
+
.ds-sm\:px-4 { padding-inline: var(--ds-space-4); }
|
|
11125
|
+
.ds-sm\:px-6 { padding-inline: var(--ds-space-6); }
|
|
11126
|
+
.ds-sm\:py-3 { padding-block: var(--ds-space-3); }
|
|
11127
|
+
}
|
|
11128
|
+
|
|
11129
|
+
|
|
10844
11130
|
@media (min-width: 768px) {
|
|
10845
11131
|
|
|
10846
11132
|
.ds-md\:px-4 { padding-inline: var(--ds-space-4); }
|
|
@@ -10862,6 +11148,80 @@ tr:hover .ds-sortable__handle,
|
|
|
10862
11148
|
}
|
|
10863
11149
|
|
|
10864
11150
|
|
|
11151
|
+
/* ==========================================================================
|
|
11152
|
+
Utilities: Sizing
|
|
11153
|
+
Width, height, min/max constraints.
|
|
11154
|
+
Extends the base sizing in layout.css with the full spacing scale.
|
|
11155
|
+
========================================================================== */
|
|
11156
|
+
|
|
11157
|
+
/* --- Width (values not already in layout.css) --- */
|
|
11158
|
+
.ds-w-0 { width: var(--ds-space-0); }
|
|
11159
|
+
.ds-w-1 { width: var(--ds-space-1); }
|
|
11160
|
+
.ds-w-1\.5 { width: var(--ds-space-1-5); }
|
|
11161
|
+
.ds-w-2 { width: var(--ds-space-2); }
|
|
11162
|
+
.ds-w-3\.5 { width: 0.875rem; }
|
|
11163
|
+
.ds-w-6 { width: var(--ds-space-6); }
|
|
11164
|
+
.ds-w-12 { width: var(--ds-space-12); }
|
|
11165
|
+
.ds-w-16 { width: var(--ds-space-16); }
|
|
11166
|
+
.ds-w-20 { width: var(--ds-space-20); }
|
|
11167
|
+
.ds-w-24 { width: var(--ds-space-24); }
|
|
11168
|
+
.ds-w-28 { width: 7rem; }
|
|
11169
|
+
.ds-w-32 { width: var(--ds-space-32); }
|
|
11170
|
+
.ds-w-48 { width: 12rem; }
|
|
11171
|
+
.ds-w-56 { width: 14rem; }
|
|
11172
|
+
.ds-w-64 { width: 16rem; }
|
|
11173
|
+
.ds-w-80 { width: 20rem; }
|
|
11174
|
+
.ds-w-96 { width: 24rem; }
|
|
11175
|
+
.ds-w-auto { width: auto; }
|
|
11176
|
+
.ds-w-screen { width: 100vw; }
|
|
11177
|
+
|
|
11178
|
+
/* --- Height (values not already in layout.css) --- */
|
|
11179
|
+
.ds-h-0 { height: var(--ds-space-0); }
|
|
11180
|
+
.ds-h-0\.5 { height: var(--ds-space-0-5); }
|
|
11181
|
+
.ds-h-1 { height: var(--ds-space-1); }
|
|
11182
|
+
.ds-h-1\.5 { height: var(--ds-space-1-5); }
|
|
11183
|
+
.ds-h-2 { height: var(--ds-space-2); }
|
|
11184
|
+
.ds-h-3\.5 { height: 0.875rem; }
|
|
11185
|
+
.ds-h-6 { height: var(--ds-space-6); }
|
|
11186
|
+
.ds-h-12 { height: var(--ds-space-12); }
|
|
11187
|
+
.ds-h-14 { height: 3.5rem; }
|
|
11188
|
+
.ds-h-20 { height: var(--ds-space-20); }
|
|
11189
|
+
.ds-h-24 { height: var(--ds-space-24); }
|
|
11190
|
+
.ds-h-28 { height: 7rem; }
|
|
11191
|
+
.ds-h-32 { height: var(--ds-space-32); }
|
|
11192
|
+
.ds-h-48 { height: 12rem; }
|
|
11193
|
+
.ds-h-64 { height: 16rem; }
|
|
11194
|
+
.ds-h-96 { height: 24rem; }
|
|
11195
|
+
.ds-h-auto { height: auto; }
|
|
11196
|
+
.ds-h-px { height: 1px; }
|
|
11197
|
+
|
|
11198
|
+
/* --- Max Width (extended) --- */
|
|
11199
|
+
.ds-max-w-4xl { max-width: 56rem; }
|
|
11200
|
+
.ds-max-w-5xl { max-width: 64rem; }
|
|
11201
|
+
.ds-max-w-6xl { max-width: 72rem; }
|
|
11202
|
+
.ds-max-w-7xl { max-width: 80rem; }
|
|
11203
|
+
.ds-max-w-full { max-width: 100%; }
|
|
11204
|
+
|
|
11205
|
+
/* --- Max Height --- */
|
|
11206
|
+
.ds-max-h-64 { max-height: 16rem; }
|
|
11207
|
+
.ds-max-h-80 { max-height: 20rem; }
|
|
11208
|
+
.ds-max-h-96 { max-height: 24rem; }
|
|
11209
|
+
.ds-max-h-screen { max-height: 100dvh; }
|
|
11210
|
+
|
|
11211
|
+
/* --- Responsive: Sizing --- */
|
|
11212
|
+
@media (min-width: 640px) {
|
|
11213
|
+
|
|
11214
|
+
.ds-sm\:w-12 { width: var(--ds-space-12); }
|
|
11215
|
+
.ds-sm\:w-16 { width: var(--ds-space-16); }
|
|
11216
|
+
.ds-sm\:w-32 { width: var(--ds-space-32); }
|
|
11217
|
+
.ds-sm\:w-64 { width: 16rem; }
|
|
11218
|
+
.ds-sm\:w-96 { width: 24rem; }
|
|
11219
|
+
.ds-sm\:w-auto { width: auto; }
|
|
11220
|
+
.ds-sm\:h-12 { height: var(--ds-space-12); }
|
|
11221
|
+
.ds-sm\:h-32 { height: var(--ds-space-32); }
|
|
11222
|
+
}
|
|
11223
|
+
|
|
11224
|
+
|
|
10865
11225
|
/* ==========================================================================
|
|
10866
11226
|
Utilities: Text, Visual & style helpers
|
|
10867
11227
|
========================================================================== */
|
|
@@ -11021,6 +11381,13 @@ tr:hover .ds-sortable__handle,
|
|
|
11021
11381
|
overflow: hidden;
|
|
11022
11382
|
}
|
|
11023
11383
|
|
|
11384
|
+
.ds-line-clamp-1 {
|
|
11385
|
+
display: -webkit-box;
|
|
11386
|
+
-webkit-line-clamp: 1;
|
|
11387
|
+
-webkit-box-orient: vertical;
|
|
11388
|
+
overflow: hidden;
|
|
11389
|
+
}
|
|
11390
|
+
|
|
11024
11391
|
.ds-line-clamp-3 {
|
|
11025
11392
|
display: -webkit-box;
|
|
11026
11393
|
-webkit-line-clamp: 3;
|
|
@@ -11028,6 +11395,12 @@ tr:hover .ds-sortable__handle,
|
|
|
11028
11395
|
overflow: hidden;
|
|
11029
11396
|
}
|
|
11030
11397
|
|
|
11398
|
+
/* --- Text Extras --- */
|
|
11399
|
+
.ds-line-through { text-decoration: line-through; }
|
|
11400
|
+
.ds-break-all { word-break: break-all; }
|
|
11401
|
+
.ds-list-disc { list-style-type: disc; }
|
|
11402
|
+
.ds-list-inside { list-style-position: inside; }
|
|
11403
|
+
|
|
11031
11404
|
/* --- Font Family --- */
|
|
11032
11405
|
.ds-font-mono { font-family: var(--ds-font-mono); }
|
|
11033
11406
|
.ds-font-sans { font-family: var(--ds-font-sans); }
|
|
@@ -11038,6 +11411,7 @@ tr:hover .ds-sortable__handle,
|
|
|
11038
11411
|
.ds-border-b { border-block-end: 1px solid var(--ds-color-border); }
|
|
11039
11412
|
.ds-border-l { border-inline-start: 1px solid var(--ds-color-border); }
|
|
11040
11413
|
.ds-border-r { border-inline-end: 1px solid var(--ds-color-border); }
|
|
11414
|
+
.ds-border-y { border-block-start: 1px solid var(--ds-color-border); border-block-end: 1px solid var(--ds-color-border); }
|
|
11041
11415
|
.ds-border-none { border: none; }
|
|
11042
11416
|
|
|
11043
11417
|
/* --- Border Color --- */
|
|
@@ -11058,8 +11432,15 @@ tr:hover .ds-sortable__handle,
|
|
|
11058
11432
|
.ds-rounded-lg { border-radius: var(--ds-radius-lg); }
|
|
11059
11433
|
.ds-rounded-xl { border-radius: var(--ds-radius-xl); }
|
|
11060
11434
|
.ds-rounded-2xl { border-radius: var(--ds-radius-2xl); }
|
|
11435
|
+
.ds-rounded-3xl { border-radius: 1.5rem; }
|
|
11061
11436
|
.ds-rounded-full { border-radius: var(--ds-radius-full); }
|
|
11062
11437
|
|
|
11438
|
+
/* --- Border Radius (directional) --- */
|
|
11439
|
+
.ds-rounded-t { border-start-start-radius: var(--ds-radius-md); border-start-end-radius: var(--ds-radius-md); }
|
|
11440
|
+
.ds-rounded-b { border-end-start-radius: var(--ds-radius-md); border-end-end-radius: var(--ds-radius-md); }
|
|
11441
|
+
.ds-rounded-t-2xl { border-start-start-radius: var(--ds-radius-2xl); border-start-end-radius: var(--ds-radius-2xl); }
|
|
11442
|
+
.ds-rounded-b-2xl { border-end-start-radius: var(--ds-radius-2xl); border-end-end-radius: var(--ds-radius-2xl); }
|
|
11443
|
+
|
|
11063
11444
|
/* --- Shadow --- */
|
|
11064
11445
|
.ds-shadow-sm { box-shadow: var(--ds-shadow-sm); }
|
|
11065
11446
|
.ds-shadow { box-shadow: var(--ds-shadow-md); }
|
|
@@ -11068,7 +11449,11 @@ tr:hover .ds-sortable__handle,
|
|
|
11068
11449
|
|
|
11069
11450
|
/* --- Opacity --- */
|
|
11070
11451
|
.ds-opacity-0 { opacity: 0; }
|
|
11452
|
+
.ds-opacity-25 { opacity: 0.25; }
|
|
11071
11453
|
.ds-opacity-50 { opacity: 0.5; }
|
|
11454
|
+
.ds-opacity-60 { opacity: 0.6; }
|
|
11455
|
+
.ds-opacity-70 { opacity: 0.7; }
|
|
11456
|
+
.ds-opacity-75 { opacity: 0.75; }
|
|
11072
11457
|
.ds-opacity-100 { opacity: 1; }
|
|
11073
11458
|
|
|
11074
11459
|
/* --- Cursor --- */
|
|
@@ -11082,6 +11467,7 @@ tr:hover .ds-sortable__handle,
|
|
|
11082
11467
|
.ds-pointer-events-none { pointer-events: none; }
|
|
11083
11468
|
.ds-select-none { user-select: none; }
|
|
11084
11469
|
.ds-whitespace-nowrap { white-space: nowrap; }
|
|
11470
|
+
.ds-whitespace-pre-wrap { white-space: pre-wrap; }
|
|
11085
11471
|
|
|
11086
11472
|
/* --- Backdrop --- */
|
|
11087
11473
|
.ds-backdrop-blur {
|
|
@@ -11089,6 +11475,14 @@ tr:hover .ds-sortable__handle,
|
|
|
11089
11475
|
-webkit-backdrop-filter: blur(20px) saturate(1.5);
|
|
11090
11476
|
}
|
|
11091
11477
|
|
|
11478
|
+
.ds-backdrop-blur-sm {
|
|
11479
|
+
backdrop-filter: blur(4px);
|
|
11480
|
+
-webkit-backdrop-filter: blur(4px);
|
|
11481
|
+
}
|
|
11482
|
+
|
|
11483
|
+
/* --- Outline --- */
|
|
11484
|
+
.ds-outline-none { outline: none; }
|
|
11485
|
+
|
|
11092
11486
|
/* --- Transform --- */
|
|
11093
11487
|
.-ds-translate-y-1\/2 { transform: translateY(-50%); }
|
|
11094
11488
|
.-ds-translate-x-1\/2 { transform: translateX(-50%); }
|
|
@@ -11119,6 +11513,17 @@ tr:hover .ds-sortable__handle,
|
|
|
11119
11513
|
transition: transform var(--ds-duration-normal) var(--ds-ease-default);
|
|
11120
11514
|
}
|
|
11121
11515
|
|
|
11516
|
+
/* --- Duration --- */
|
|
11517
|
+
.ds-duration-fast { transition-duration: var(--ds-duration-fast); }
|
|
11518
|
+
.ds-duration-normal { transition-duration: var(--ds-duration-normal); }
|
|
11519
|
+
.ds-duration-slow { transition-duration: var(--ds-duration-slow); }
|
|
11520
|
+
.ds-duration-slower { transition-duration: var(--ds-duration-slower); }
|
|
11521
|
+
|
|
11522
|
+
/* --- Easing --- */
|
|
11523
|
+
.ds-ease-default { transition-timing-function: var(--ds-ease-default); }
|
|
11524
|
+
.ds-ease-out { transition-timing-function: var(--ds-ease-out); }
|
|
11525
|
+
.ds-ease-out-expo { transition-timing-function: var(--ds-ease-out-expo); }
|
|
11526
|
+
|
|
11122
11527
|
/* --- Animations --- */
|
|
11123
11528
|
@keyframes ds-fade-in {
|
|
11124
11529
|
from { opacity: 0; }
|
|
@@ -11310,6 +11715,81 @@ tr:hover .ds-sortable__handle,
|
|
|
11310
11715
|
color: var(--ds-color-text);
|
|
11311
11716
|
}
|
|
11312
11717
|
|
|
11718
|
+
/* ==========================================================================
|
|
11719
|
+
Utilities: State Variants
|
|
11720
|
+
Hover, focus, active, focus-within, placeholder, and group-hover
|
|
11721
|
+
modifiers for DS utility classes.
|
|
11722
|
+
========================================================================== */
|
|
11723
|
+
|
|
11724
|
+
/* --- Group Marker (enables group-hover on descendants) ---
|
|
11725
|
+
Supports both .group and .ds-group for compatibility. */
|
|
11726
|
+
.ds-group { /* marker — no styles */ }
|
|
11727
|
+
|
|
11728
|
+
/* --- Hover: Background --- */
|
|
11729
|
+
.hover\:ds-bg-base:hover { background-color: var(--ds-color-bg); }
|
|
11730
|
+
.hover\:ds-bg-elevated:hover { background-color: var(--ds-color-bg-elevated); }
|
|
11731
|
+
.hover\:ds-bg-muted:hover { background-color: var(--ds-color-bg-muted); }
|
|
11732
|
+
.hover\:ds-bg-subtle:hover { background-color: var(--ds-color-bg-subtle); }
|
|
11733
|
+
.hover\:ds-bg-surface:hover { background-color: var(--ds-color-surface); }
|
|
11734
|
+
.hover\:ds-bg-inverted:hover { background-color: var(--ds-color-inverted); }
|
|
11735
|
+
.hover\:ds-bg-info:hover { background-color: var(--ds-color-info); }
|
|
11736
|
+
|
|
11737
|
+
/* --- Hover: Text --- */
|
|
11738
|
+
.hover\:ds-text-primary:hover { color: var(--ds-color-text); }
|
|
11739
|
+
.hover\:ds-text-secondary:hover { color: var(--ds-color-text-secondary); }
|
|
11740
|
+
.hover\:ds-text-interactive:hover { color: var(--ds-color-interactive); }
|
|
11741
|
+
|
|
11742
|
+
/* --- Hover: Border --- */
|
|
11743
|
+
.hover\:ds-border-hover:hover { border-color: var(--ds-color-border-hover); }
|
|
11744
|
+
.hover\:ds-border-interactive:hover { border-color: var(--ds-color-interactive); }
|
|
11745
|
+
|
|
11746
|
+
/* --- Hover: Decoration --- */
|
|
11747
|
+
.hover\:ds-underline:hover { text-decoration: underline; text-underline-offset: 2px; }
|
|
11748
|
+
|
|
11749
|
+
/* --- Focus --- */
|
|
11750
|
+
.focus\:ds-outline-none:focus { outline: none; }
|
|
11751
|
+
.focus\:ds-ring-0:focus { box-shadow: none; }
|
|
11752
|
+
.focus\:ds-ring-2:focus { box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-color-interactive); }
|
|
11753
|
+
|
|
11754
|
+
/* --- Focus-Within --- */
|
|
11755
|
+
.focus-within\:ds-border-interactive:focus-within { border-color: var(--ds-color-interactive); }
|
|
11756
|
+
|
|
11757
|
+
/* --- Active --- */
|
|
11758
|
+
.active\:ds-bg-elevated:active { background-color: var(--ds-color-bg-elevated); }
|
|
11759
|
+
.active\:ds-text-secondary:active { color: var(--ds-color-text-secondary); }
|
|
11760
|
+
|
|
11761
|
+
/* --- Placeholder --- */
|
|
11762
|
+
.placeholder\:ds-text-tertiary::placeholder { color: var(--ds-color-text-tertiary); }
|
|
11763
|
+
|
|
11764
|
+
/* --- Group Hover (descendants of .group or .ds-group on hover) --- */
|
|
11765
|
+
.group:hover > .group-hover\:ds-text-interactive,
|
|
11766
|
+
.group:hover .group-hover\:ds-text-interactive,
|
|
11767
|
+
.ds-group:hover > .group-hover\:ds-text-interactive,
|
|
11768
|
+
.ds-group:hover .group-hover\:ds-text-interactive {
|
|
11769
|
+
color: var(--ds-color-interactive);
|
|
11770
|
+
}
|
|
11771
|
+
|
|
11772
|
+
.group:hover > .group-hover\:ds-scale-110,
|
|
11773
|
+
.group:hover .group-hover\:ds-scale-110,
|
|
11774
|
+
.ds-group:hover > .group-hover\:ds-scale-110,
|
|
11775
|
+
.ds-group:hover .group-hover\:ds-scale-110 {
|
|
11776
|
+
transform: scale(1.1);
|
|
11777
|
+
}
|
|
11778
|
+
|
|
11779
|
+
.group:hover > .group-hover\:ds-translate-x-1,
|
|
11780
|
+
.group:hover .group-hover\:ds-translate-x-1,
|
|
11781
|
+
.ds-group:hover > .group-hover\:ds-translate-x-1,
|
|
11782
|
+
.ds-group:hover .group-hover\:ds-translate-x-1 {
|
|
11783
|
+
transform: translateX(0.25rem);
|
|
11784
|
+
}
|
|
11785
|
+
|
|
11786
|
+
.group:hover > .group-hover\:ds-opacity-100,
|
|
11787
|
+
.group:hover .group-hover\:ds-opacity-100,
|
|
11788
|
+
.ds-group:hover > .group-hover\:ds-opacity-100,
|
|
11789
|
+
.ds-group:hover .group-hover\:ds-opacity-100 {
|
|
11790
|
+
opacity: 1;
|
|
11791
|
+
}
|
|
11792
|
+
|
|
11313
11793
|
/* ==========================================================================
|
|
11314
11794
|
Utilities: Accessibility
|
|
11315
11795
|
Screen-reader helpers, skip links, focus utilities, and motion control.
|