@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.
@@ -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, full viewport height, hairline right border. */
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
- /* Responsive: collapse to single column at 1040, further adjust at 560. */
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: static;
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: 1px solid var(--strand-gray-200);
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.0",
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.0"
56
+ "@dillingerstaffing/strand": "^0.17.1"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@testing-library/jest-dom": "^6.6.0",