UNPKG

react-notion-x

Version:

Fast and accurate React renderer for Notion.

2,462 lines (2,110 loc) 68.7 kB
:root { --notion-font: ui-sans-serif, system-ui, apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, 'Apple Color Emoji', Arial, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; --fg-color: rgb(55, 53, 47); --fg-color-0: rgba(55, 53, 47, 0.09); --fg-color-1: rgba(55, 53, 47, 0.16); --fg-color-2: rgba(55, 53, 47, 0.4); --fg-color-3: rgba(55, 53, 47, 0.6); --fg-color-4: #000; --fg-color-5: rgba(55, 53, 47, 0.024); --fg-color-6: rgba(55, 53, 47, 0.8); --fg-color-7: rgba(55, 53, 47, 0.5); --fg-color-icon: var(--fg-color); --bg-color: #fff; --bg-color-0: rgba(135, 131, 120, 0.15); --bg-color-1: rgb(247, 246, 243); --bg-color-2: rgba(135, 131, 120, 0.15); --select-color-0: rgb(46, 170, 220); --select-color-1: rgba(45, 170, 219, 0.3); --select-color-2: #d9eff8; --notion-red: rgb(224, 62, 62); --notion-pink: rgb(173, 26, 114); --notion-blue: rgb(11, 110, 153); --notion-purple: rgb(105, 64, 165); --notion-teal: rgb(77, 100, 97); --notion-yellow: rgb(223, 171, 1); --notion-orange: rgb(217, 115, 13); --notion-brown: rgb(100, 71, 58); --notion-gray: rgb(155, 154, 151); --notion-red_background: rgb(251, 228, 228); --notion-pink_background: rgb(244, 223, 235); --notion-blue_background: rgb(221, 235, 241); --notion-purple_background: rgb(234, 228, 242); --notion-teal_background: rgb(221, 237, 234); --notion-yellow_background: rgb(251, 243, 219); --notion-orange_background: rgb(250, 235, 221); --notion-brown_background: rgb(233, 229, 227); --notion-gray_background: rgb(235, 236, 237); --notion-red_background_co: rgba(251, 228, 228, 0.3); --notion-pink_background_co: rgba(244, 223, 235, 0.3); --notion-blue_background_co: rgba(221, 235, 241, 0.3); --notion-purple_background_co: rgba(234, 228, 242, 0.3); --notion-teal_background_co: rgba(221, 237, 234, 0.3); --notion-yellow_background_co: rgba(251, 243, 219, 0.3); --notion-orange_background_co: rgba(250, 235, 221, 0.3); --notion-brown_background_co: rgba(233, 229, 227, 0.3); --notion-gray_background_co: rgba(235, 236, 237, 0.3); --notion-item-blue: rgb(211, 229, 239); --notion-item-orange: rgb(250, 222, 201); --notion-item-green: rgb(219, 237, 219); --notion-item-pink: rgb(245, 224, 233); --notion-item-brown: rgb(238, 224, 218); --notion-item-red: rgb(255, 226, 221); --notion-item-yellow: rgb(253, 236, 200); --notion-item-default: rgba(227, 226, 224, 0.5); --notion-item-purple: rgb(232, 222, 238); --notion-item-gray: rgb(227, 226, 224); --notion-item-text-blue: rgb(24, 51, 71); --notion-item-text-orange: rgb(73, 41, 14); --notion-item-text-green: rgb(28, 56, 41); --notion-item-text-pink: rgb(76, 35, 55); --notion-item-text-brown: rgb(68, 42, 30); --notion-item-text-red: rgb(93, 23, 21); --notion-item-text-yellow: rgb(64, 44, 27); --notion-item-text-default: rgb(50, 48, 44); --notion-item-text-purple: rgb(65, 36, 84); --notion-item-text-gray: rgb(50, 48, 44); --notion-item-bullet-blue: rgb(91, 151, 189); --notion-item-bullet-orange: rgb(215, 129, 58); --notion-item-bullet-green: rgb(108, 155, 125); --notion-item-bullet-pink: rgb(205, 116, 159); --notion-item-bullet-brown: rgb(187, 132, 108); --notion-item-bullet-red: rgb(225, 111, 100); --notion-item-bullet-yellow: rgb(203, 148, 51); --notion-item-bullet-default: rgb(91, 151, 189); --notion-item-bullet-purple: rgb(167, 130, 195); --notion-item-bullet-gray: rgb(145, 145, 142); --notion-max-width: 720px; --notion-header-height: 45px; --notion-corner-radius: 8px; } .dark-mode { --fg-color: rgba(255, 255, 255, 0.9); --fg-color-0: var(--fg-color); --fg-color-1: var(--fg-color); --fg-color-2: var(--fg-color); --fg-color-3: var(--fg-color); --fg-color-4: var(--fg-color); --fg-color-5: rgba(255, 255, 255, 0.7); --fg-color-6: #fff; --fg-color-icon: #fff; --bg-color: #2f3437; --bg-color-0: rgb(71, 76, 80); --bg-color-1: rgb(63, 68, 71); --bg-color-2: rgba(135, 131, 120, 0.15); --notion-red: rgb(255, 115, 105); --notion-pink: rgb(226, 85, 161); --notion-blue: rgb(82, 156, 202); --notion-purple: rgb(154, 109, 215); --notion-teal: rgb(77, 171, 154); --notion-yellow: rgb(255, 220, 73); --notion-orange: rgb(255, 163, 68); --notion-brown: rgb(147, 114, 100); --notion-gray: rgba(151, 154, 155, 0.95); --notion-red_background: rgb(89, 65, 65); --notion-pink_background: rgb(83, 59, 76); --notion-blue_background: rgb(54, 73, 84); --notion-purple_background: rgb(68, 63, 87); --notion-teal_background: rgb(53, 76, 75); --notion-yellow_background: rgb(89, 86, 59); --notion-orange_background: rgb(89, 74, 58); --notion-brown_background: rgb(67, 64, 64); --notion-gray_background: rgb(69, 75, 78); --notion-red_background_co: rgba(89, 65, 65, 0.3); --notion-pink_background_co: rgba(83, 59, 76, 0.3); --notion-blue_background_co: rgba(120, 162, 187, 0.3); --notion-purple_background_co: rgba(68, 63, 87, 0.3); --notion-teal_background_co: rgba(53, 76, 75, 0.3); --notion-yellow_background_co: rgba(89, 86, 59, 0.3); --notion-orange_background_co: rgba(89, 74, 58, 0.3); --notion-brown_background_co: rgba(67, 64, 64, 0.3); --notion-gray_background_co: rgba(69, 75, 78, 0.3); } .notion * { box-sizing: border-box; } .notion { font-size: 16px; line-height: 1.5; color: var(--fg-color); caret-color: var(--fg-color); font-family: var(--notion-font); } .notion > * { padding: 3px 0; } .notion * { margin-block-start: 0; margin-block-end: 0; } .notion *::selection { background: var(--select-color-1); } .notion *, .notion *:focus { outline: 0; } .notion-page-content { width: 100%; display: flex; flex-direction: column; } @media (min-width: 1300px) and (min-height: 300px) { .notion-page-content-has-aside { display: flex; flex-direction: row; width: calc((100vw + var(--notion-max-width)) / 2); } .notion-page-content-has-aside .notion-aside { display: flex; } .notion-page-content-has-aside .notion-page-content-inner { width: var(--notion-max-width); max-width: var(--notion-max-width); } } .notion-page-content-inner { position: relative; display: flex; flex-direction: column; align-items: flex-start; } .notion-aside { position: sticky; top: 148px; z-index: 101; /* top: calc((100vh - 48px - 100%) / 2); */ align-self: flex-start; flex: 1; display: none; flex-direction: column; align-items: center; } .notion-aside-table-of-contents { display: flex; flex-direction: column; align-items: center; max-height: calc(100vh - 148px - 16px); min-width: 222px; overflow: auto; background: var(--bg-color); border-radius: 4px; } .notion-aside-table-of-contents-header { text-transform: uppercase; font-weight: 400; font-size: 1.1em; word-break: break-word; } .notion-aside-table-of-contents .notion-table-of-contents-item { line-height: 1; } .notion-aside-table-of-contents .notion-table-of-contents-item-indent-level-0:first-of-type { margin-top: 0; } .notion-aside-table-of-contents .notion-table-of-contents-item-indent-level-0 { margin-top: 0.25em; } .notion-aside-table-of-contents .notion-table-of-contents-item-indent-level-1 { font-size: 13px; } .notion-aside-table-of-contents .notion-table-of-contents-item-indent-level-2 { font-size: 12px; } .notion-aside-table-of-contents .notion-table-of-contents-item-body { border: 0 none; } .notion-table-of-contents-active-item { color: var(--select-color-0) !important; } .notion-app { position: relative; background: var(--bg-color); min-height: 100vh; } .notion-viewport { position: relative; padding: 0px; top: 0; left: 0; right: 0; bottom: 0; } .medium-zoom-overlay { z-index: 300; } .medium-zoom-image { border-radius: 0; } .medium-zoom-image--opened { margin: unset !important; min-width: unset !important; min-height: unset !important; z-index: 301; } .notion-frame { display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0; } .notion-page-scroller { position: relative; display: flex; flex-direction: column; flex-grow: 1; align-items: center; min-height: calc(100vh - var(--notion-header-height)); } .notion-red, .notion-red_co { color: var(--notion-red); } .notion-pink, .notion-pink_co { color: var(--notion-pink); } .notion-blue, .notion-blue_co { color: var(--notion-blue); } .notion-purple, .notion-purple_co { color: var(--notion-purple); } .notion-teal, .notion-teal_co { color: var(--notion-teal); } .notion-yellow, .notion-yellow_co { color: var(--notion-yellow); } .notion-orange, .notion-orange_co { color: var(--notion-orange); } .notion-brown, .notion-brown_co { color: var(--notion-brown); } .notion-gray, .notion-gray_co { color: var(--notion-gray); } .notion-red_background { background-color: var(--notion-red_background); } .notion-pink_background { background-color: var(--notion-pink_background); } .notion-blue_background { background-color: var(--notion-blue_background); } .notion-purple_background { background-color: var(--notion-purple_background); } .notion-teal_background { background-color: var(--notion-teal_background); } .notion-yellow_background { background-color: var(--notion-yellow_background); } .notion-orange_background { background-color: var(--notion-orange_background); } .notion-brown_background { background-color: var(--notion-brown_background); } .notion-gray_background { background-color: var(--notion-gray_background); } .notion-red_background_co { background-color: var(--notion-red_background_co); } .notion-pink_background_co { background-color: var(--notion-pink_background_co); } .notion-blue_background_co { background-color: var(--notion-blue_background_co); } .notion-purple_background_co { background-color: var(--notion-purple_background_co); } .notion-teal_background_co { background-color: var(--notion-teal_background_co); } .notion-yellow_background_co { background-color: var(--notion-yellow_background_co); } .notion-orange_background_co { background-color: var(--notion-orange_background_co); } .notion-brown_background_co { background-color: var(--notion-brown_background_co); } .notion-gray_background_co { background-color: var(--notion-gray_background_co); } .notion-item-blue { background-color: var(--notion-item-blue); color: var(--notion-item-text-blue); } .notion-item-orange { background-color: var(--notion-item-orange); color: var(--notion-item-text-orange); } .notion-item-green { background-color: var(--notion-item-green); color: var(--notion-item-text-green); } .notion-item-pink { background-color: var(--notion-item-pink); color: var(--notion-item-text-pink); } .notion-item-brown { background-color: var(--notion-item-brown); color: var(--notion-item-text-brown); } .notion-item-red { background-color: var(--notion-item-red); color: var(--notion-item-text-red); } .notion-item-yellow { background-color: var(--notion-item-yellow); color: var(--notion-item-text-yellow); } .notion-item-default, .notion-item-default-inferred { background-color: var(--notion-item-default); color: var(--notion-item-text-default); } .notion-item-purple { background-color: var(--notion-item-purple); color: var(--notion-item-text-purple); } .notion-item-gray { background-color: var(--notion-item-gray); color: var(--notion-item-text-gray); } .notion-item-bullet-blue { background-color: var(--notion-item-bullet-blue); } .notion-item-bullet-orange { background-color: var(--notion-item-bullet-orange); } .notion-item-bullet-green { background-color: var(--notion-item-bullet-green); } .notion-item-bullet-pink { background-color: var(--notion-item-bullet-pink); } .notion-item-bullet-brown { background-color: var(--notion-item-bullet-brown); } .notion-item-bullet-red { background-color: var(--notion-item-bullet-red); } .notion-item-bullet-yellow { background-color: var(--notion-item-bullet-yellow); } .notion-item-bullet-default { background-color: var(--notion-item-bullet-default); } .notion-item-bullet-default-inferred { background-color: var(--notion-item-bullet-gray); } .notion-item-bullet-purple { background-color: var(--notion-item-bullet-purple); } .notion-item-bullet-gray { background-color: var(--notion-item-bullet-gray); } .notion b { font-weight: 600; } .notion-title { width: 100%; font-size: 2.5em; font-weight: 600; margin-bottom: 20px; line-height: 1.2; } .notion-h { position: relative; display: inline; font-weight: 600; line-height: 1.3; padding: 3px 2px; margin-bottom: 1px; max-width: 100%; white-space: pre-wrap; word-break: break-word; width: 100%; } .notion-h1 { font-size: 1.875em; margin-top: 1.08em; } .notion-header-anchor { position: absolute; top: -54px; left: 0; } .notion-title + .notion-h1, .notion-title + .notion-h2, .notion-title + .notion-h3, .notion-title + .notion-h4 { margin-top: 0; } /* TODO: notion-page-content */ .notion-h1:first-child { margin-top: 0; } /* .notion-h1:first-of-type { margin-top: 2px; } */ .notion-h2 { font-size: 1.5em; margin-top: 1.1em; } .notion-h3 { font-size: 1.25em; margin-top: 1em; } .notion-h4 { font-size: 1.15em; margin-top: 1em; } .notion-h:hover .notion-hash-link { opacity: 1; } /* Add specific styles for headings in sync blocks */ .notion-sync-block .notion-h { display: block; } /* Preserve original styles for toggle headings */ details.notion-toggle .notion-h { display: inline; } .notion-hash-link { opacity: 0; text-decoration: none; float: left; margin-left: -20px; padding-right: 4px; fill: var(--fg-color-icon); } .notion-page-cover { display: block; object-fit: cover; width: 100%; height: 30vh !important; min-height: 30vh !important; max-height: 30vh !important; padding: 0; } .notion-page-cover-wrapper { width: 100%; height: 30vh; min-height: 30vh; max-height: 30vh; display: flex; justify-content: center; align-items: center; } .notion-collection-card-cover { overflow: hidden; } .notion-collection-card-cover span, .notion-collection-card-cover img { min-height: 100% !important; max-height: 100% !important; } .notion-page-cover-wrapper span, .notion-page-cover-wrapper img { width: 100% !important; height: 30vh !important; min-height: 30vh !important; max-height: 30vh !important; } .notion-page { position: relative; padding: 0; margin: 0 auto; display: flex; flex-direction: column; flex-grow: 1; flex-shrink: 0; align-items: flex-start; width: 100%; max-width: 100%; } .notion-full-page { padding-bottom: calc(max(10vh, 120px)); } .notion-page-no-cover { margin-top: 48px !important; padding-top: 96px; } .notion-page-no-cover.notion-page-no-icon { padding-top: 0; } .notion-page-no-cover.notion-page-has-image-icon { padding-top: 148px; } .notion-page-has-cover.notion-page-no-icon { padding-top: 48px; } .notion-page-has-cover { padding-top: 96px; } .notion-page-has-cover.notion-page-has-icon.notion-page-has-text-icon { padding-top: 64px; } .notion-page-icon-hero { position: absolute; top: 0; left: 50%; display: flex; flex-direction: row; justify-content: center; } .notion-page-icon-hero.notion-page-icon-image { width: 124px; height: 124px; margin-left: -62px; } .notion-page-icon-hero.notion-page-icon-span { height: 78px; width: 78px; margin-left: -39px; } .notion-page-icon-hero .notion-page-icon { position: relative; display: block; } .notion-page-has-cover .notion-page-icon-hero.notion-page-icon-image { top: -62px; } .notion-page-has-cover .notion-page-icon-hero.notion-page-icon-span { top: -42px; } .notion-page-icon-hero.notion-page-icon-span .notion-page-icon { font-size: 78px; line-height: 1.1; margin-left: 0; color: var(--fg-color-icon); } .notion-page-icon-hero.notion-page-icon-image .notion-page-icon { display: block; border-radius: var(--notion-corner-radius); width: 100%; height: 100%; max-width: 100%; max-height: 100%; } .notion-page-icon-hero.notion-page-icon-image img { object-fit: cover; } .notion-page-icon { font-family: 'Apple Color Emoji', 'Segoe UI Emoji', NotoColorEmoji, 'Noto Color Emoji', 'Segoe UI Symbol', 'Android Emoji', EmojiSymbols; font-size: 1.1em; fill: var(--fg-color-6); color: var(--fg-color-icon); } .notion-search .notion-page-icon { fill: var(--fg-color-6); color: var(--fg-color); } img.notion-page-icon, svg.notion-page-icon { display: block; object-fit: fill; border-radius: var(--notion-corner-radius); max-width: 100%; max-height: 100%; } .notion-page-icon-inline { width: 22px; height: 22px; max-width: 22px; max-height: 22px; margin: 0 4px; } .notion-page-icon-inline span { max-width: 100%; max-height: 100%; } .notion-page-icon-inline img { object-fit: cover; } .notion-page { box-sizing: border-box; width: var(--notion-max-width); padding-left: calc(min(16px, 8vw)); padding-right: calc(min(16px, 8vw)); } .notion-full-width { box-sizing: border-box; --notion-max-width: calc(min(1920px, 98vw)); padding-left: calc(min(96px, 8vw)); padding-right: calc(min(96px, 8vw)); } .notion-small-text { font-size: 14px; } .notion-quote { display: block; width: 100%; white-space: pre-wrap; word-break: break-word; border-left: 3px solid currentcolor; padding: 0.2em 0.9em; margin: 6px 0; font-size: 1.2em; } .notion-hr { width: 100%; margin: 6px 0; padding: 0; border: none; border-bottom: 1px solid var(--bg-color-0); } .notion-link { color: inherit; word-break: break-word; text-decoration: inherit; border-bottom: 0.05em solid; border-color: var(--fg-color-2); opacity: 0.7; transition: border-color 100ms ease-in, opacity 100ms ease-in; } .notion-link:hover { border-color: var(--fg-color-6); opacity: 1; } .notion-collection .notion-link { opacity: 1; } .notion-blank { width: 100%; min-height: 1rem; padding: 3px 2px; margin-top: 1px; margin-bottom: 1px; } .notion-page-link { display: flex; color: var(--fg-color); text-decoration: none; width: 100%; height: 30px; margin: 1px 0; transition: background 120ms ease-in 0s; } .notion-page-link:hover { background: var(--bg-color-0); } .notion-collection-card .notion-page-link { height: unset; margin: 0; transition: unset; } .notion-collection-card .notion-page-link { background: unset; } .notion-icon { display: block; width: 18px; height: 18px; color: var(--fg-color-icon); } .notion-page-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; line-height: 1.3; border-bottom: 1px solid var(--fg-color-1); margin: 4px 0; } .notion-inline-code { color: #eb5757; padding: 0.2em 0.4em; background: var(--bg-color-2); border-radius: var(--notion-corner-radius); font-size: 85%; font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; } .notion-inline-underscore { text-decoration: underline; } .notion-list { margin: 0; margin-block-start: 0.6em; margin-block-end: 0.6em; } .notion-list-disc { list-style-type: disc; padding-inline-start: 1.7em; margin-top: 0; margin-bottom: 0; } .notion-list-numbered { list-style-type: decimal; padding-inline-start: 1.6em; margin-top: 0; margin-bottom: 0; } .notion-list-disc li { padding-left: 0.1em; } .notion-list-numbered li { padding-left: 0.2em; } .notion-list li { padding: 6px 0; white-space: pre-wrap; } .notion-asset-wrapper { margin: 0.5rem 0; max-width: 100vw; min-width: 100%; align-self: center; display: flex; flex-direction: column; } .notion-asset-wrapper-image { max-width: 100%; } .notion-asset-wrapper-full { max-width: 100vw; } .notion-asset-wrapper img { width: 100%; height: 100%; max-height: 100%; } .notion-asset-wrapper iframe { border: none; background: rgb(247, 246, 245); } .notion-text { width: 100%; white-space: pre-wrap; word-break: break-word; padding: 3px 2px; margin: 1px 0; } .notion-text:first-child { margin-top: 2px; } .notion-text-children { padding-left: 1.5em; display: flex; flex-direction: column; } .notion .notion-code { font-size: 85%; } .notion-code { position: relative; width: 100%; padding: 1em; margin: 4px 0; border-radius: var(--notion-corner-radius); tab-size: 2; display: block; box-sizing: border-box; overflow: auto; background: var(--bg-color-1); font-family: SFMono-Regular, Consolas, 'Liberation Mono', Menlo, Courier, monospace; } .notion-code-copy { position: absolute; top: 1em; right: 1em; user-select: none; z-index: 9; transition: opacity 0.2s cubic-bezier(0.3, 0, 0.5, 1); } .notion-code-copy-button { display: inline-block; padding: 0.6em; font-size: 1.25em; line-height: 1em; cursor: pointer; transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1), color 0.2s cubic-bezier(0.3, 0, 0.5, 1), border-color 0.2s cubic-bezier(0.3, 0, 0.5, 1); box-shadow: 0 1px 0 rgba(27, 31, 36, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.25); background-color: #f6f8fa; color: #24292f; border: 1px solid rgba(27, 31, 36, 0.15); border-radius: 6px; } .notion-code-copy-button:hover { background-color: #f3f4f6; border-color: rgba(27, 31, 36, 0.15); transition-duration: 0.1s; } .notion-code-copy-button:active { background: hsla(220, 14%, 93%, 1); border-color: rgba(27, 31, 36, 0.15); transition: none; } .notion-code .notion-code-copy { opacity: 0; } .notion-code:hover .notion-code-copy { opacity: 1; } .notion-code-copy-button svg { display: block; } .notion-code-copy-tooltip { pointer-events: none; position: absolute; bottom: -38px; left: 0; width: 100%; display: flex; flex-direction: row; justify-content: center; z-index: 99; font-size: 14px; } .notion-code-copy-tooltip > div { padding: 6px 8px; background: #222; color: #fff; border-radius: 6px; } .notion-column { display: flex; flex-direction: column; padding-top: 12px; padding-bottom: 12px; } .notion-column > *:first-child { margin-top: 0; margin-left: 0; margin-right: 0; } .notion-column > *:last-child { margin-left: 0; margin-right: 0; margin-bottom: 0; } .notion-row { display: flex; overflow: hidden; width: 100%; max-width: 100%; } @media (max-width: 640px) { .notion-row { flex-direction: column; } .notion-row .notion-column { width: 100% !important; } .notion-row .notion-spacer { display: none; } } .notion-bookmark { margin: 4px 0; width: 100%; box-sizing: border-box; text-decoration: none; border: 1px solid var(--fg-color-1); border-radius: var(--notion-corner-radius); display: flex; overflow: hidden; user-select: none; } .dark-mode .notion-bookmark { border-color: var(--bg-color-0); } .notion-bookmark > div:first-child { flex: 4 1 180px; padding: 12px 14px 14px; overflow: hidden; text-align: left; color: var(--fg-color); } .notion-bookmark-title { font-size: 14px; line-height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-height: 24px; margin-bottom: 2px; } .notion-bookmark-description { font-size: 12px; line-height: 16px; opacity: 0.8; height: 32px; overflow: hidden; } .notion-bookmark-link { display: flex; margin-top: 6px; } .notion-bookmark-link-icon { width: 16px; height: 16px; min-width: 16px; margin-right: 6px; } .notion-bookmark-link-text { font-size: 12px; line-height: 16px; color: var(--fg-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notion-bookmark-link-icon img { max-width: 100%; max-height: 100%; } .notion-bookmark-image { flex: 1 1 180px; position: relative; } .notion-bookmark-image > * { position: absolute !important; width: 100%; height: 100%; } .notion-bookmark-image span { width: 100% !important; height: 100% !important; max-height: 100%; } .notion-column .notion-bookmark-image { display: none; } .notion-spacer { width: calc(min(32px, 4vw)); } .notion-spacer:last-child { display: none; } .notion-asset-object-fit { position: absolute; left: 0; top: 0; right: 0; bottom: 0; width: 100%; height: 100%; border-radius: 1px; } .notion-image { display: block; width: 100%; border-radius: 1px; } .notion-asset-caption { padding: 6px 0 6px 2px; white-space: pre-wrap; word-break: break-word; caret-color: var(--fg-color); font-size: 14px; line-height: 1.4; color: var(--fg-color-3); } .notion-callout { padding: 16px 16px 16px 12px; display: inline-flex; width: 100%; border-radius: var(--notion-corner-radius); border-width: 1px; align-items: center; box-sizing: border-box; margin: 4px 0; border: 1px solid var(--fg-color-0); } .dark-mode .notion-callout { border-color: var(--bg-color-2); } .notion-callout .notion-page-icon-inline { align-self: flex-start; width: 24px; height: 24px; line-height: 24px; font-size: 1.3em; } .notion-callout-text { margin-left: 8px; white-space: pre-wrap; word-break: break-word; width: 100%; } .notion-callout-text > *:first-child { margin-top: 0; padding-top: 0; } .notion-toggle { width: 100%; padding: 3px 2px; } .notion-toggle > summary { cursor: pointer; outline: none; } .notion-toggle > div { margin-left: 1.1em; } .notion-button-block { padding: 4px 0; margin: 4px 0; } .notion-button { display: inline-flex; align-items: center; justify-content: center; padding: 6px 12px; border: 1px solid var(--notion-gray); border-radius: 3px; font-size: 14px; font-weight: 400; color: #000; background-color: transparent; cursor: pointer; min-height: 32px; transition: background-color 0.15s ease; } .notion-button:hover { background-color: rgba(0, 0, 0, 0.03); } .notion-button:active { background-color: rgba(0, 0, 0, 0.06); } .notion-button:focus-visible { outline: 2px solid var(--fg-color); outline-offset: 2px; } .notion-button:disabled { opacity: 0.4; cursor: not-allowed; } /* Button color variants using Notion's item colors */ .notion-button-inner { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; border-radius: 3px; cursor: pointer; font-size: 14px; font-weight: 400; line-height: 1.2; padding: 6px 12px; border: 1px solid transparent; min-height: 32px; transition: background-color 0.15s ease; color: #000; } .notion-button-inner:hover { filter: brightness(0.95); } .notion-button-inner:active { filter: brightness(0.9); } .notion-button-inner:focus-visible { outline: 2px solid var(--fg-color); outline-offset: 2px; } .notion-button-inner:disabled { opacity: 0.4; cursor: not-allowed; } /* Blue variant */ .notion-blue_background .notion-button-inner, .notion-button.notion-blue_background { background-color: var(--notion-item-blue); border-color: var(--notion-item-blue); } .notion-button.notion-blue_background:hover { background-color: var(--notion-item-blue); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-blue_background:active { background-color: var(--notion-item-blue); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Red variant */ .notion-red_background .notion-button-inner, .notion-button.notion-red_background { background-color: var(--notion-item-red); border-color: var(--notion-item-red); } .notion-button.notion-red_background:hover { background-color: var(--notion-item-red); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-red_background:active { background-color: var(--notion-item-red); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Orange variant */ .notion-orange_background .notion-button-inner, .notion-button.notion-orange_background { background-color: var(--notion-item-orange); border-color: var(--notion-item-orange); } .notion-button.notion-orange_background:hover { background-color: var(--notion-item-orange); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-orange_background:active { background-color: var(--notion-item-orange); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Green/Teal variant */ .notion-green_background .notion-button-inner, .notion-teal_background .notion-button-inner, .notion-button.notion-green_background, .notion-button.notion-teal_background { background-color: var(--notion-item-green); border-color: var(--notion-item-green); } .notion-button.notion-green_background:hover, .notion-button.notion-teal_background:hover { background-color: var(--notion-item-green); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-green_background:active, .notion-button.notion-teal_background:active { background-color: var(--notion-item-green); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Yellow variant */ .notion-yellow_background .notion-button-inner, .notion-button.notion-yellow_background { background-color: var(--notion-item-yellow); border-color: var(--notion-item-yellow); } .notion-button.notion-yellow_background:hover { background-color: var(--notion-item-yellow); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-yellow_background:active { background-color: var(--notion-item-yellow); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Purple variant */ .notion-purple_background .notion-button-inner, .notion-button.notion-purple_background { background-color: var(--notion-item-purple); border-color: var(--notion-item-purple); } .notion-button.notion-purple_background:hover { background-color: var(--notion-item-purple); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-purple_background:active { background-color: var(--notion-item-purple); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Pink variant */ .notion-pink_background .notion-button-inner, .notion-button.notion-pink_background { background-color: var(--notion-item-pink); border-color: var(--notion-item-pink); } .notion-button.notion-pink_background:hover { background-color: var(--notion-item-pink); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-pink_background:active { background-color: var(--notion-item-pink); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Gray variant */ .notion-gray_background .notion-button-inner, .notion-button.notion-gray_background { background-color: var(--notion-item-gray); border-color: var(--notion-item-gray); } .notion-button.notion-gray_background:hover { background-color: var(--notion-item-gray); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-gray_background:active { background-color: var(--notion-item-gray); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Brown variant */ .notion-brown_background .notion-button-inner, .notion-button.notion-brown_background { background-color: var(--notion-item-brown); border-color: var(--notion-item-brown); } .notion-button.notion-brown_background:hover { background-color: var(--notion-item-brown); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-brown_background:active { background-color: var(--notion-item-brown); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Default variant */ .notion-button.notion-default { background-color: var(--notion-item-default); border-color: var(--notion-gray); } .notion-button.notion-default:hover { background-color: var(--notion-item-default); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.04); } .notion-button.notion-default:active { background-color: var(--notion-item-default); box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.08); } /* Success state - darker green */ .notion-button.notion-success { background-color: rgb(175, 210, 175) !important; border-color: rgb(175, 210, 175) !important; } .notion-button.notion-default:hover { background-color: var(--fg-color-1); } /* Success state */ .notion-button.notion-success, .notion-button-inner.notion-success { background-color: #0f7b6c !important; color: white !important; } .notion-button.notion-success:hover, .notion-button-inner.notion-success:hover { background-color: #0a5f54 !important; } /* Dark mode adjustments */ .dark-mode .notion-button, .dark-mode .notion-button-inner { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } .dark-mode .notion-button:hover, .dark-mode .notion-button-inner:hover { box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4); } .notion-collection { align-self: center; min-width: 100%; } .notion-collection-header { display: flex; align-items: center; height: 42px; padding: 4px 2px; white-space: nowrap; overflow: hidden; } .notion-collection-header-title { display: inline-flex; align-items: center; font-size: 1.25em; line-height: 1.2; font-weight: 600; white-space: pre-wrap; word-break: break-word; margin-right: 0.5em; } .notion-collection-view-dropdown { cursor: pointer; padding: 6px 8px; border: 0 none; border-radius: 3px; transition: background 120ms ease-in 0s; background: transparent; } .notion-collection-view-dropdown:hover { background: var(--bg-color-0); } .notion-collection-view-dropdown-icon { position: relative; top: 2px; margin-left: 4px; } .notion-collection-view-type { display: flex; align-items: center; font-size: 14px; } .notion-collection-view-type-icon { display: inline-block; width: 14px; height: 14px; /* fill: var(--fg-color); */ fill: rgba(55, 53, 47); margin-right: 6px; } .notion-collection-view-type-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--fg-color); } .notion-table { width: 100vw; max-width: 100vw; align-self: center; overflow: auto hidden; } .notion-table-view { position: relative; float: left; min-width: var(--notion-max-width); padding-left: 0; } .notion-table-header { display: flex; position: absolute; z-index: 82; height: 33px; color: var(--fg-color-3); min-width: var(--notion-max-width); } .notion-table-header-inner { width: 100%; display: inline-flex; border-top: 1px solid var(--fg-color-1); border-bottom: 1px solid var(--fg-color-1); /* box-shadow: white -3px 0 0, rgba(55, 53, 47, 0.16) 0 1px 0; */ } .notion-table-header-placeholder { height: 34px; } .notion-table-th { display: flex; position: relative; } .notion-table-view-header-cell { display: flex; flex-shrink: 0; overflow: hidden; height: 32px; font-size: 14px; padding: 0; } .notion-table-view-header-cell-inner { user-select: none; display: flex; width: 100%; height: 100%; padding-left: 8px; padding-right: 8px; border-right: 1px solid var(--fg-color-0); } .notion-table-th:last-child .notion-table-view-header-cell-inner { border-right: 0 none; } .notion-collection-column-title { display: flex; align-items: center; line-height: 120%; min-width: 0; font-size: 14px; } .notion-collection-column-title-icon { display: inline-block; width: 14px; height: 14px; min-width: 14px; min-height: 14px; fill: var(--fg-color-2); margin-right: 6px; } .notion-collection-column-title-body { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notion-table-body { position: relative; min-width: var(--notion-max-width); } .notion-table-row { display: flex; border-bottom: 1px solid var(--fg-color-1); } .notion-table-cell { min-height: 32px; padding: 5px 8px 6px; font-size: 14px; line-height: 1; white-space: normal; overflow: hidden; word-break: break-word; border-right: 1px solid var(--fg-color-1); } .notion-table-cell:last-child { border-right: 0 none; } .notion-table-cell-title { font-weight: 500; } .notion-table-cell-text { white-space: pre-wrap; } .notion-table-cell-text, .notion-table-cell-number, .notion-table-cell-url, .notion-table-cell-email, .notion-table-cell-phone_number { line-height: 1.5; } .notion-table-cell-number { white-space: pre-wrap; } .notion-table-cell-select, .notion-table-cell-multi_select { padding: 7px 8px 0; } .notion-table-cell-auto_increment_id { color: var(--fg-color-7); } .notion-property-select, .notion-property-status, .notion-property-multi_select { display: flex; flex-wrap: wrap; gap: 6px; } .notion-property-select-item, .notion-property-status-item, .notion-property-multi_select-item { display: flex; align-items: center; padding: 0 6px; border-radius: 3px; height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 120%; } .notion-property-status-item { border-radius: 20px; } .notion-property-file { display: flex; flex-wrap: wrap; align-content: flex-start; } .notion-property-file img { max-height: 24px; max-width: 100%; margin-right: 6px; } .notion-collection-card-cover .notion-property-file { height: 100%; } .notion-collection-card-cover .notion-property-file img { width: 100%; margin: 0; max-height: 100%; } .notion-collection-card .notion-property-checkbox-container { display: flex; } .notion-property-checkbox-text { display: none; } .notion-collection-card .notion-property-checkbox-text { display: inline-block; margin-left: 6px; } .notion-property-checkbox { width: 16px; height: 16px; } .notion-property-checkbox-checked { width: 16px; height: 16px; background: var(--select-color-0); } .notion-property-checkbox-checked svg { position: relative; display: block; /* top: -3px; */ top: 1px; left: 1px; width: 14px; height: 14px; fill: #fff; } .notion-property-checkbox-unchecked { width: 16px; height: 16px; border: 1.3px solid var(--fg-color); } .notion-gallery { align-self: center; } .notion-gallery-view { position: relative; padding-left: 0; transition: padding 200ms ease-out; } .notion-gallery-grid { display: grid; position: relative; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); grid-auto-rows: 1fr; gap: 16px; border-top: 1px solid var(--fg-color-1); padding-top: 16px; padding-bottom: 4px; } .notion-gallery-grid-size-small { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); } .notion-gallery-grid-size-large { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); } .notion-collection-card { display: flex; flex-direction: column; overflow: hidden; text-decoration: none; box-shadow: rgba(15, 15, 15, 0.1) 0 0 0 1px, rgba(15, 15, 15, 0.1) 0 2px 4px; border-radius: var(--notion-corner-radius); background: var(--bg-color); color: var(--fg-color); transition: background 100ms ease-out 0s; user-select: none; cursor: pointer; } .notion-collection-card:hover { background: var(--bg-color-0); } .notion-collection-card-cover { position: relative; width: 100%; height: 190px; border-bottom: 1px solid var(--fg-color-0); overflow: hidden; } .notion-collection-card-cover img { width: 100%; height: 100%; border-radius: var(--notion-corner-radius) var(--notion-corner-radius) 0 0; /* object-fit: cover; */ } .notion-collection-card-cover .notion-collection-card-cover-empty { width: 100%; height: 100%; pointer-events: none; overflow: hidden; background: var(--fg-color-5); box-shadow: var(--fg-color-0) 0 -1px 0 0 inset; padding: 8px 8px 0; } .notion-collection-card-size-small .notion-collection-card-cover { height: 124px; } .notion-collection-card-body { display: flex; flex-direction: column; padding: 4px 10px; } .notion-collection-card-property { padding: 4px 0; white-space: nowrap; word-break: break-word; overflow: hidden; text-overflow: ellipsis; font-size: 12px; } .notion-collection-card-property:first-child { font-size: 14px; font-weight: 500; } .notion-collection-card-property:not(:first-child) { white-space: nowrap; text-overflow: clip; } .notion-collection-card-property img { max-height: 18px; } .notion-list-collection { align-self: center; } .notion-list-collection { width: 100%; max-width: 100%; } .notion-list-view { position: relative; padding-left: 0; transition: padding 200ms ease-out; max-width: 100%; } .notion-list-body { display: flex; flex-direction: column; border-top: 1px solid var(--fg-color-1); padding-top: 8px; max-width: 100%; overflow: hidden; } .notion-list-item { display: flex; justify-content: space-between; align-items: center; padding: 0 4px; margin: 1px 0; max-width: 100%; overflow: hidden; } .notion-list-item-title { display: flex; align-items: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; line-height: 1.3; } .notion-list-item-body { display: flex; align-items: center; flex-wrap: nowrap; overflow: hidden; } .notion-list-item-property { /* display: flex; align-items: center; */ margin-left: 14px; font-size: 14px; } .notion-list-item-property .notion-property-date, .notion-list-item-property .notion-property-created_time, .notion-list-item-property .notion-property-last_edited_time, .notion-list-item-property .notion-property-url { display: inline-block; color: var(--fg-color-3); font-size: 12px; /* white-space: nowrap; */ overflow: hidden; text-overflow: ellipsis; } .notion-board { width: 100vw; max-width: 100vw; align-self: center; overflow: auto hidden; } .notion-board-view { position: relative; float: left; min-width: 100%; padding-left: 0; transition: padding 200ms ease-out; } .notion-board-header { display: flex; position: absolute; z-index: 82; height: 44px; min-width: 100%; } .notion-board-header-inner { display: inline-flex; border-top: 1px solid var(--fg-color-1); border-bottom: 1px solid var(--fg-color-1); } .notion-board-header-placeholder { height: var(--notion-header-height); } .notion-board-th { display: flex; align-items: center; font-size: 14px; padding-right: 16px; box-sizing: content-box; flex-shrink: 0; } .notion-board-th-body { display: flex; align-items: center; font-size: 14px; line-height: 1.2; padding-left: 2px; padding-right: 4px; white-space: nowrap; overflow: hidden; } .notion-board-th-count { color: var(--fg-color-3); font-weight: 500; padding: 0 8px; } .notion-board-th-empty { margin-right: 6px; position: relative; top: 2px; } .notion-board-body { display: inline-flex; } .notion-board-group { flex: 0 0 auto; padding-right: 16px; box-sizing: content-box; } .notion-board-group-card { margin-bottom: 8px; } .notion-board-view .notion-board-th, .notion-board-view .notion-board-group { width: 260px; } .notion-board-view-size-small .notion-board-th, .notion-board-view-size-small .notion-board-group { width: 180px; } .notion-board-view-size-large .notion-board-th, .notion-board-view-size-large .notion-board-group { width: 320px; } .notion-board-view .notion-collection-card .notion-collection-card-cover { height: 148px; } .notion-board-view-size-small .notion-collection-card .notion-collection-card-cover { height: 100px; } .notion-board-view-size-large .notion-collection-card .notion-collection-card-cover { height: 180px; } .notion-collection-page-properties { width: 100%; display: flex; flex-direction: column; } .notion-table-of-contents { width: 100%; margin: 4px 0; } .notion-table-of-contents-item { color: var(--fg-color); opacity: 0.7; transition: background 100ms ease-in, opacity 100ms ease-in; text-decoration: none; user-select: none; transition: background 20ms ease-in 0s; cursor: pointer; width: 100%; padding: 6px; font-size: 14px; line-height: 1.3; display: flex; align-items: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notion-table-of-contents-item:hover { background: var(--bg-color-0); opacity: 1; } .notion-table-of-contents-item-body { border-bottom: 1px solid var(--fg-color-1); } .notion-to-do { width: 100%; display: flex; flex-direction: column; } .notion-to-do-item { width: 100%; display: flex; align-items: center; width: 100%; padding-left: 2px; min-height: calc(1.5em + 3px + 3px); } .notion-to-do-children { padding-left: 1.5em; } .notion-to-do-checked .notion-to-do-item { text-decoration: line-through; opacity: 0.375; } .notion-to-do-body { white-space: pre-wrap; word-break: break-word; } .notion-to-do-item .notion-property-checkbox { margin-right: 8px; } .notion-google-drive { width: 100%; align-self: center; margin: 4px 0; } .notion-google-drive-link { position: relative; display: flex; flex-direction: column; color: inherit; text-decoration: none; width: 100%; border: 1px solid var(--fg-color-1); border-radius: 3px; user-select: none; transition: background 20ms ease-in 0s; cursor: pointer; } .notion-google-drive-link:hover { background: var(--bg-color-0); } .notion-google-drive-preview { display: block; position: relative; width: 100%; padding-bottom: 55%; overflow: hidden; } .notion-google-drive-preview img { position: absolute; width: 100%; top: 0; left: 0; bottom: 0; right: 0; object-fit: cover; object-position: center top; } .notion-google-drive-body { width: 100%; min-height: 60px; padding: 12px 14px 14px; overflow: hidden; border-top: 1px solid var(--fg-color-1); } .notion-google-drive-body-title { font-size: 14px; line-height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 2px; } .notion-google-drive-body-modified-time { font-size: 12px; line-height: 1.3; color: var(--fg-color-3); max-height: 32px; overflow: hidden; } .notion-google-drive-body-source { display: flex; align-items: center; margin-top: 6px; } .notion-google-drive-body-source-icon { flex-shrink: 0; background-size: cover; width: 16px; height: 16px; margin-right: 6px; } .notion-google-drive-body-source-domain { font-size: 12px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notion-file { width: 100%; margin: 1px 0; } .notion-file-link { display: flex; align-items: center; padding: 3px 2px; border-radius: var(--notion-corner-radius); transition: background 20ms ease-in 0s; color: inherit; text-decoration: none; } .notion-file-link:hover { background: var(--bg-color-0); } .notion-file-icon { margin-right: 2px; width: 1.35em; display: flex; align-items: center; justify-content: center; flex-grow: 0; flex-shrink: 0; min-height: calc(1.5em + 3px + 3px); height: 1.35em; } .notion-file-info { display: flex; align-items: baseline; } .notion-file-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notion-file-size { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--fg-color-3); font-size: 12px; line-height: 16px; margin-left: 6px; } .notion-audio { width: 100%; } .notion-audio audio { width: 100%; } .notion-equation { position: relative; display: inline-flex; color: inherit; fill: inherit; user-select: none; border-radius: 3px; transition: background 20ms ease-in 0s; } .notion-equation-inline { -webkit-user-select: all; -moz-user-select: all; user-select: all; } .notion-equation-block { display: flex; flex-direction: column; overflow: auto; width: 100%; max-width: 100%; padding: 4px 8px; margin: 4px 0; cursor: pointer; } .notion-equation:hover { background: var(--bg-color-0); } .notion-equation:active, .notion-equation:focus { background: var(--select-color-2); } .notion-frame .katex-display .katex { padding-right: 32px; } .notion-frame .katex > .katex-html { white-space: normal; } .notion-page-title { display: inline-flex; max-width: 100%; align-items: center; line-height: 1.3; transition: background 120ms ease-in 0s; } .notion-page-title-icon { display: flex; align-items: center; justify-content: center; height: 22px; width: 22px; border-radius: var(--notion-corner-radius); flex-shrink: 0; } .notion-page-title .notion-page-icon-inline { margin-left: 2px; margin-right: 6px; } .notion-collection-card-property .notion-link { border-bottom: 0 none; } .notion-collection-card-property .notion-page-title { transition: none; } .notion-collection-card-property .notion-page-title:hover { background: unset; } .notion-collection-card-property .notion-page-title-icon { margin-left: 0; height: 18px; width: 18px; } .notion-collection-card-property .notion-page-title-text { border-bottom: 0 none; } .notion-collection-card-property .notion-property-relation .notion-page-title-text { border-bottom: 1px solid; } .notion-page-title-text { position: relative; top: 1px; border-bottom: 1px solid var(--fg-color-1); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; } /* removes double underline with links */ .notion-link .notion-page-title-text { border-bottom: 0 none; } .notion-collection-row { width: 100%; padding: 4px 0 8px; border-bottom: 1px solid var(--fg-color-0); margin-bottom: 1em; } .notion-collection-row-body { display: flex; flex-direction: column; gap: 4px; } .notion-collection-row-property { display: flex; align-items: center; } .notion-collection-row-val