diff --git a/packages/react-notion-x/src/components/page-icon.tsx b/packages/react-notion-x/src/components/page-icon.tsx
index a0a1a0d6b..edc6c626d 100644
--- a/packages/react-notion-x/src/components/page-icon.tsx
+++ b/packages/react-notion-x/src/components/page-icon.tsx
@@ -29,7 +29,7 @@ export function PageIconImpl({
hideDefaultIcon?: boolean
defaultIcon?: string | null
}) {
- const { mapImageUrl, recordMap, darkMode } = useNotionContext()
+ const { alignCenter, mapImageUrl, recordMap, darkMode } = useNotionContext()
let isImage = false
let content: any = null
@@ -94,7 +94,10 @@ export function PageIconImpl({
{content}
diff --git a/packages/react-notion-x/src/context.tsx b/packages/react-notion-x/src/context.tsx
index 4bb8a5418..f770c076a 100644
--- a/packages/react-notion-x/src/context.tsx
+++ b/packages/react-notion-x/src/context.tsx
@@ -35,6 +35,7 @@ export interface NotionContext {
minTableOfContentsItems: number
linkTableTitleProperties: boolean
isLinkCollectionToUrlProperty: boolean
+ alignCenter: boolean
defaultPageIcon?: string | null
defaultPageCover?: string | null
@@ -63,6 +64,7 @@ export interface PartialNotionContext {
showCollectionViewDropdown?: boolean
linkTableTitleProperties?: boolean
isLinkCollectionToUrlProperty?: boolean
+ alignCenter?: boolean
showTableOfContents?: boolean
minTableOfContentsItems?: number
@@ -169,6 +171,7 @@ const defaultNotionContext: NotionContext = {
showCollectionViewDropdown: true,
linkTableTitleProperties: true,
isLinkCollectionToUrlProperty: false,
+ alignCenter: true,
showTableOfContents: false,
minTableOfContentsItems: 3,
diff --git a/packages/react-notion-x/src/renderer.tsx b/packages/react-notion-x/src/renderer.tsx
index 474370814..f0f69941a 100644
--- a/packages/react-notion-x/src/renderer.tsx
+++ b/packages/react-notion-x/src/renderer.tsx
@@ -34,6 +34,7 @@ export function NotionRenderer({
defaultPageIcon,
defaultPageCover,
defaultPageCoverPosition,
+ alignCenter,
...rest
}: {
recordMap: ExtendedRecordMap
@@ -59,6 +60,7 @@ export function NotionRenderer({
linkTableTitleProperties?: boolean
isLinkCollectionToUrlProperty?: boolean
isImageZoomable?: boolean
+ alignCenter?: boolean
showTableOfContents?: boolean
minTableOfContentsItems?: number
@@ -117,6 +119,7 @@ export function NotionRenderer({
defaultPageCover={defaultPageCover}
defaultPageCoverPosition={defaultPageCoverPosition}
zoom={isImageZoomable ? zoom : null}
+ alignCenter={alignCenter}
>
diff --git a/packages/react-notion-x/src/styles.css b/packages/react-notion-x/src/styles.css
index 19f7dccae..3c954a362 100644
--- a/packages/react-notion-x/src/styles.css
+++ b/packages/react-notion-x/src/styles.css
@@ -623,7 +623,6 @@
.notion-page-icon-hero {
position: absolute;
top: 0;
- left: 50%;
display: flex;
flex-direction: row;
justify-content: center;
@@ -632,12 +631,30 @@
.notion-page-icon-hero.notion-page-icon-image {
width: 124px;
height: 124px;
+}
+
+.notion-page-icon-hero.notion-page-icon-image.notion-page-icon--align-left {
+ left: 0%;
+ margin-left: 26px;
+}
+
+.notion-page-icon-hero.notion-page-icon-image.notion-page-icon--align-center {
+ left: 50%;
margin-left: -62px;
}
.notion-page-icon-hero.notion-page-icon-span {
height: 78px;
width: 78px;
+}
+
+.notion-page-icon-hero.notion-page-icon-span.notion-page-icon--align-left {
+ left: 0%;
+ margin-left: 16px;
+}
+
+.notion-page-icon-hero.notion-page-icon-span.notion-page-icon--align-center {
+ left: 50%;
margin-left: -39px;
}