Skip to content

Commit

Permalink
fix: appbar center-aligned balancing
Browse files Browse the repository at this point in the history
  • Loading branch information
SaadBazaz committed Aug 11, 2024
1 parent 69043fd commit a2074c1
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 18 deletions.
10 changes: 5 additions & 5 deletions apps/demo/src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -267,17 +267,17 @@ export default function Home() {
<Icon slot="active-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 96">
<path
fill-rule="evenodd"
clip-rule="evenodd"
fillRule="evenodd"
clipRule="evenodd"
d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z"
></path>
</svg>
</Icon>
<Icon slot="inactive-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 96">
<path
fill-rule="evenodd"
clip-rule="evenodd"
fillRule="evenodd"
clipRule="evenodd"
d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z"
></path>
</svg>
Expand Down Expand Up @@ -920,7 +920,7 @@ export default function Home() {
<Icon>arrow_back</Icon>
</IconButton>

<div slot="headline">Center-aligned</div>
<div slot="headline" className="line-clamp-1">Center-aligned</div>

<IconButton slot="trailing">
<Icon>more_vert</Icon>
Expand Down
3 changes: 3 additions & 0 deletions apps/demo/tailwind.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ const config: Config = {
{
pattern: /p(y|t|x|b)-(0|2|3)/,
},
{
pattern: /flex-(.)/,
},
],
theme: {
extend: {
Expand Down
39 changes: 26 additions & 13 deletions packages/ui/src/app-bar/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const AppBar = ({

const hasHeadlineExpandedElement = findSlotProp(
children,
"headline-expanded",
"headline-expanded"
);
const _headlineExpandedElement = headlineExpandedElement
? headlineExpandedElement
Expand Down Expand Up @@ -79,7 +79,12 @@ const AppBar = ({
setIsHeadlineExpandedVisible(entry.isIntersecting);
onExpansionChange?.(!entry.isIntersecting);
});
});
},
{
rootMargin: "-20px 0px",
threshold: 0,
}
);
observer.observe(headlineExpandedRef.current);
}
return () => {
Expand All @@ -91,39 +96,47 @@ const AppBar = ({
<>
<div
className={twMerge(
"w-full px-2 flex flex-row justify-between items-center gap-2 left-0 bg-background transition-all",
"w-full px-2 flex flex-row justify-between items-center gap-2 left-0 bg-background transition-all relative", // Added 'relative' here
showExpandedHeadline && isHeadlineExpandedVisible
? "pt-3 pb-0"
: "py-3",
className,
className
)}
{...props}
>
<div
id="leading-actions"
className="flex flex-row justify-center items-center gap-2"
className={twMerge(
"flex flex-row justify-center items-center gap-2",
_variant === "center-aligned" && "flex-1 justify-start"
)}
>
{_leadingElements}
</div>

<div
id="headline"
className={twMerge(
"flex flex-row flex-1 w-full h-full items-center gap-2 text-lg transition-all",
_variant === "center-aligned" && "justify-center text-center",
(_variant === "small" || _variant === "medium") &&
"justify-start text-left",
"absolute left-1/2 transform -translate-x-1/2 flex items-center gap-2 text-lg transition-all", // Changed this line
_variant === "center-aligned" && "text-center",
(_variant === "small" ||
_variant === "medium" ||
_variant === "large") &&
"justify-start text-left w-full",
showExpandedHeadline && isHeadlineExpandedVisible
? "opacity-0"
: "opacity-100",
: "opacity-100"
)}
>
{_headlineElement}
</div>

<div
id="trailing-actions"
className="flex flex-row justify-center items-center gap-2"
className={twMerge(
"flex flex-row justify-center items-center gap-2",
_variant === "center-aligned" && "flex-1 justify-end"
)}
>
{_trailingElements}
</div>
Expand All @@ -137,8 +150,8 @@ const AppBar = ({
ref={headlineExpandedRef}
className={twMerge(
"flex flex-row text-left w-full px-4 pb-5",
_variant === "medium" && "text-xl pt-1",
_variant === "large" && "text-2xl pt-4",
_variant === "medium" && "text-xl pt-2",
_variant === "large" && "text-2xl pt-4"
)}
>
{_headlineExpandedElement}
Expand Down

0 comments on commit a2074c1

Please sign in to comment.