@dillingerstaffing/strand-vue 0.17.0 → 0.17.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/css/strand-ui.css +69 -5
- package/package.json +2 -2
package/dist/css/strand-ui.css
CHANGED
|
@@ -3356,11 +3356,16 @@ body.strand-banner-active .strand-instrument-viewport--full-bleed {
|
|
|
3356
3356
|
min-height: 100vh;
|
|
3357
3357
|
}
|
|
3358
3358
|
|
|
3359
|
-
/* Sidebar: sticky column
|
|
3359
|
+
/* Sidebar: sticky column. Height fills viewport from sticky-top to
|
|
3360
|
+
bottom so its bottom never falls below the viewport edge. dvh tracks
|
|
3361
|
+
mobile browser-chrome changes; vh fallback for older browsers. */
|
|
3360
3362
|
.strand-ref-shell__sidebar {
|
|
3361
3363
|
position: sticky;
|
|
3362
3364
|
top: var(--strand-ref-sticky-top, 0);
|
|
3363
|
-
height: 100vh;
|
|
3365
|
+
height: calc(100vh - var(--strand-ref-sticky-top, 0px));
|
|
3366
|
+
height: calc(100dvh - var(--strand-ref-sticky-top, 0px));
|
|
3367
|
+
max-height: calc(100vh - var(--strand-ref-sticky-top, 0px));
|
|
3368
|
+
max-height: calc(100dvh - var(--strand-ref-sticky-top, 0px));
|
|
3364
3369
|
background: var(--strand-surface-elevated);
|
|
3365
3370
|
border-right: 1px solid var(--strand-gray-200);
|
|
3366
3371
|
display: flex;
|
|
@@ -3704,17 +3709,76 @@ body.strand-banner-active .strand-instrument-viewport--full-bleed {
|
|
|
3704
3709
|
max-width: 560px;
|
|
3705
3710
|
}
|
|
3706
3711
|
|
|
3707
|
-
/*
|
|
3712
|
+
/* Mobile-trigger FAB: hidden by default; shown only inside the responsive
|
|
3713
|
+
breakpoint. Floats bottom-right and toggles the mobile drawer. The
|
|
3714
|
+
consumer pairs this with toggling `.is-nav-open` on the shell mount
|
|
3715
|
+
point. The button itself uses standard strand-btn primitives plus
|
|
3716
|
+
this class for FAB positioning. */
|
|
3717
|
+
.strand-ref-mobile-trigger {
|
|
3718
|
+
display: none;
|
|
3719
|
+
}
|
|
3720
|
+
|
|
3721
|
+
.strand-ref-shell__nav-scrim {
|
|
3722
|
+
display: none;
|
|
3723
|
+
}
|
|
3724
|
+
|
|
3725
|
+
/* Responsive: at <=1040px the sidebar becomes a slide-over drawer.
|
|
3726
|
+
Consumer toggles `.is-nav-open` on the shell mount point to open the
|
|
3727
|
+
drawer. The trigger button (.strand-ref-mobile-trigger) sits as a FAB
|
|
3728
|
+
bottom-right, and the scrim (.strand-ref-shell__nav-scrim) closes it
|
|
3729
|
+
on tap. */
|
|
3708
3730
|
@media (max-width: 1040px) {
|
|
3709
3731
|
.strand-ref-shell {
|
|
3710
3732
|
grid-template-columns: 1fr;
|
|
3711
3733
|
}
|
|
3712
3734
|
|
|
3713
3735
|
.strand-ref-shell__sidebar {
|
|
3714
|
-
position:
|
|
3736
|
+
position: fixed;
|
|
3737
|
+
top: var(--strand-ref-sticky-top, 0);
|
|
3738
|
+
left: 0;
|
|
3739
|
+
right: 0;
|
|
3740
|
+
bottom: 0;
|
|
3715
3741
|
height: auto;
|
|
3742
|
+
max-height: none;
|
|
3743
|
+
width: 100%;
|
|
3744
|
+
z-index: 80;
|
|
3745
|
+
background: var(--strand-surface-elevated);
|
|
3746
|
+
box-shadow: var(--strand-elevation-3, 0 8px 28px rgba(15, 23, 42, 0.18));
|
|
3747
|
+
transform: translateX(-100%);
|
|
3748
|
+
transition: transform var(--strand-duration-normal, 200ms)
|
|
3749
|
+
var(--strand-ease-out-quart, ease-out);
|
|
3750
|
+
visibility: hidden;
|
|
3716
3751
|
border-right: 0;
|
|
3717
|
-
border-bottom:
|
|
3752
|
+
border-bottom: 0;
|
|
3753
|
+
}
|
|
3754
|
+
|
|
3755
|
+
.strand-ref-shell.is-nav-open .strand-ref-shell__sidebar {
|
|
3756
|
+
transform: translateX(0);
|
|
3757
|
+
visibility: visible;
|
|
3758
|
+
}
|
|
3759
|
+
|
|
3760
|
+
.strand-ref-shell__nav-scrim {
|
|
3761
|
+
position: fixed;
|
|
3762
|
+
top: var(--strand-ref-sticky-top, 0);
|
|
3763
|
+
left: 0;
|
|
3764
|
+
right: 0;
|
|
3765
|
+
bottom: 0;
|
|
3766
|
+
z-index: 75;
|
|
3767
|
+
background: rgba(15, 23, 42, 0.4);
|
|
3768
|
+
}
|
|
3769
|
+
|
|
3770
|
+
.strand-ref-shell.is-nav-open .strand-ref-shell__nav-scrim {
|
|
3771
|
+
display: block;
|
|
3772
|
+
}
|
|
3773
|
+
|
|
3774
|
+
.strand-ref-mobile-trigger {
|
|
3775
|
+
display: inline-flex;
|
|
3776
|
+
position: fixed;
|
|
3777
|
+
bottom: calc(env(safe-area-inset-bottom, 0px) + 16px);
|
|
3778
|
+
right: 16px;
|
|
3779
|
+
z-index: 85;
|
|
3780
|
+
box-shadow: var(--strand-elevation-3, 0 8px 24px rgba(15, 23, 42, 0.2));
|
|
3781
|
+
border-radius: var(--strand-radius-full, 9999px);
|
|
3718
3782
|
}
|
|
3719
3783
|
|
|
3720
3784
|
.strand-ref-shell__main {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dillingerstaffing/strand-vue",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.1",
|
|
4
4
|
"description": "Strand UI - Vue 3 component library built on the Strand Design Language",
|
|
5
5
|
"author": "Dillinger Staffing <engineering@dillingerstaffing.com> (https://dillingerstaffing.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"vue": "^3.4.0"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@dillingerstaffing/strand": "^0.17.
|
|
56
|
+
"@dillingerstaffing/strand": "^0.17.1"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@testing-library/jest-dom": "^6.6.0",
|