Skip to content

Commit 5edc147

Browse files
committed
more improvements
1 parent e0eed2e commit 5edc147

File tree

5 files changed

+65
-2
lines changed

5 files changed

+65
-2
lines changed

scss/_datepicker.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ $datepicker-tokens: defaults(
5252
color-scheme: light dark;
5353
background-color: var(--datepicker-bg);
5454
border: var(--datepicker-border-width) solid var(--datepicker-border-color);
55-
@include border-radius(var(--datepicker-border-radius));
5655
box-shadow: var(--datepicker-box-shadow);
5756
opacity: 1;
57+
@include border-radius(var(--datepicker-border-radius));
5858

5959
// Respond to Bootstrap's color mode system
6060
&[data-bs-theme="light"] {

scss/_dialog.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ $dialog-tokens: defaults(
2828
--dialog-border-width: var(--border-width),
2929
--dialog-border-radius: var(--border-radius-lg),
3030
--dialog-box-shadow: var(--box-shadow-lg),
31+
--dialog-transition-duration: .3s,
32+
--dialog-transition-timing: cubic-bezier(.22, 1, .36, 1),
3133
--dialog-backdrop-bg: rgb(0 0 0 / 50%),
3234
--dialog-backdrop-blur: 8px,
3335
--dialog-header-padding: 1rem,

scss/_menu.scss

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
@use "mixins/box-shadow" as *;
55
@use "mixins/gradients" as *;
66
@use "mixins/tokens" as *;
7+
@use "mixins/transition" as *;
78

89
// stylelint-disable scss/dollar-variable-default, custom-property-no-missing-var-function
910
$menu-tokens: () !default;
@@ -45,6 +46,8 @@ $menu-tokens: defaults(
4546
--menu-header-color: var(--fg-3),
4647
--menu-header-padding-x: .75rem,
4748
--menu-header-padding-y: .25rem,
49+
--menu-transition-duration: .15s,
50+
--menu-transition-timing: cubic-bezier(.22, 1, .36, 1),
4851
),
4952
$menu-tokens
5053
);
@@ -76,9 +79,43 @@ $menu-tokens: defaults(
7679
border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));
7780
@include border-radius(var(--menu-border-radius, var(--border-radius-lg)));
7881
@include box-shadow(var(--menu-box-shadow));
82+
opacity: 0;
83+
transform: scale(.95);
84+
transform-origin: top start;
85+
86+
&[data-bs-placement^="top"] {
87+
transform-origin: bottom start;
88+
}
89+
90+
&[data-bs-placement="bottom-end"] {
91+
transform-origin: top end;
92+
}
93+
94+
&[data-bs-placement="top-end"] {
95+
transform-origin: bottom end;
96+
}
97+
98+
&[data-bs-placement^="left"] {
99+
transform-origin: top end;
100+
}
101+
102+
@include transition(
103+
opacity var(--menu-transition-duration) var(--menu-transition-timing),
104+
transform var(--menu-transition-duration) var(--menu-transition-timing),
105+
display var(--menu-transition-duration) allow-discrete
106+
);
79107

80108
&.show {
81109
display: flex;
110+
opacity: 1;
111+
transform: none;
112+
}
113+
}
114+
115+
@starting-style {
116+
.menu.show {
117+
opacity: 0;
118+
transform: scale(.95);
82119
}
83120
}
84121

site/src/assets/partials/sidebar.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,28 @@ export default () => {
2727
if (sidenav.scrollTop > viewportTop || sidenav.scrollTop < viewportBottom) {
2828
sidenav.scrollTop = viewportTop - (sidenavHeight / 2) + (sidenavActiveLinkHeight / 2)
2929
}
30+
31+
// Scroll the drawer body to the active link when the sidebar drawer opens.
32+
// Uses `show` + requestAnimationFrame so the scroll is set before the
33+
// slide-in transition renders, avoiding a visible jump.
34+
const bdSidebar = document.querySelector('#bdSidebar')
35+
36+
if (bdSidebar) {
37+
bdSidebar.addEventListener('show.bs.drawer', () => {
38+
requestAnimationFrame(() => {
39+
const drawerBody = bdSidebar.querySelector('.drawer-body')
40+
const activeLink = bdSidebar.querySelector('.bd-links-nav .active')
41+
42+
if (!drawerBody || !activeLink) {
43+
return
44+
}
45+
46+
const activeLinkTop = activeLink.getBoundingClientRect().top - drawerBody.getBoundingClientRect().top + drawerBody.scrollTop
47+
const drawerBodyHeight = drawerBody.clientHeight
48+
const activeLinkHeight = activeLink.clientHeight
49+
50+
drawerBody.scrollTop = activeLinkTop - (drawerBodyHeight / 2) + (activeLinkHeight / 2)
51+
})
52+
})
53+
}
3054
}

site/src/scss/_ads.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
}
3535
}
3636

37-
@container (max-width: 240px) {
37+
@container (max-width: 300px) {
3838
#carbonads {
3939
position: sticky;
4040
bottom: 0;

0 commit comments

Comments
 (0)