refactor(app): remove scaffold and migrate input styles
This commit is contained in:
@@ -9,5 +9,4 @@ export * from "./dialog";
|
||||
export * from "./loading-indicator";
|
||||
export * from "./mobile-shell";
|
||||
export * from "./page-loading-fallback";
|
||||
export * from "./page-scaffold";
|
||||
export * from "./responsive-mobile-shell";
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
.root {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex: 1 1 auto;
|
||||
min-height: var(--app-viewport-height, 100dvh);
|
||||
min-width: 0;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
color: var(--color-text-foreground, #171717);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.root[data-scrollable="true"] {
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.padded {
|
||||
padding:
|
||||
calc(var(--page-padding-y, 18px) + var(--app-safe-top, 0px))
|
||||
calc(var(--page-padding-x, 20px) + var(--app-safe-right, 0px))
|
||||
calc(var(--page-padding-y, 18px) + var(--app-safe-bottom, 0px))
|
||||
calc(var(--page-padding-x, 20px) + var(--app-safe-left, 0px));
|
||||
}
|
||||
|
||||
.header,
|
||||
.footer {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.body {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex: 1 1 auto;
|
||||
min-height: 0;
|
||||
min-width: 0;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.body[data-scrollable="true"] {
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.footer {
|
||||
padding-bottom: var(--app-safe-bottom, 0px);
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
import type { ReactNode } from "react";
|
||||
|
||||
import styles from "./page-scaffold.module.css";
|
||||
|
||||
export interface PageScaffoldProps {
|
||||
children: ReactNode;
|
||||
header?: ReactNode;
|
||||
footer?: ReactNode;
|
||||
className?: string;
|
||||
bodyClassName?: string;
|
||||
padded?: boolean;
|
||||
scrollable?: boolean;
|
||||
bodyScrollable?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shared page layout primitive for mobile-first screens.
|
||||
*
|
||||
* Use it when migrating feature pages away from hand-written shell/padding
|
||||
* styles. It keeps safe-area padding and scroll ownership in one place.
|
||||
*/
|
||||
export function PageScaffold({
|
||||
children,
|
||||
header,
|
||||
footer,
|
||||
className,
|
||||
bodyClassName,
|
||||
padded = true,
|
||||
scrollable = false,
|
||||
bodyScrollable = false,
|
||||
}: PageScaffoldProps) {
|
||||
return (
|
||||
<main
|
||||
className={[styles.root, padded ? styles.padded : "", className]
|
||||
.filter(Boolean)
|
||||
.join(" ")}
|
||||
data-scrollable={scrollable}
|
||||
>
|
||||
{header ? <div className={styles.header}>{header}</div> : null}
|
||||
<div
|
||||
className={[styles.body, bodyClassName].filter(Boolean).join(" ")}
|
||||
data-scrollable={bodyScrollable}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
{footer ? <div className={styles.footer}>{footer}</div> : null}
|
||||
</main>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user