@morphemecms/cms 0.1.0 → 0.2.0-next-20261104150211
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/LICENSE +21 -21
- package/README.md +51 -51
- package/astro.mjs +162 -162
- package/bin/morpheme.mjs +38 -38
- package/client.d.ts +10 -10
- package/defaults/blockTexts.ts +33 -33
- package/defaults/collections.ts +774 -774
- package/defaults/colors.ts +125 -125
- package/defaults/company.ts +20 -20
- package/defaults/editor.ts +178 -178
- package/defaults/internalLinks.ts +30 -30
- package/defaults/opens.ts +18 -18
- package/defaults/popup.tsx +93 -93
- package/defaults/privacy.ts +79 -79
- package/defaults/rules.ts +450 -450
- package/defaults/schema.ts +16 -16
- package/defaults/sitedata.ts +129 -129
- package/defaults/standard.ts +106 -106
- package/defaults/standardPages.ts +87 -87
- package/defaults/texts.ts +481 -481
- package/demo/README.md +26 -26
- package/demo/src/content/blog/build-a-page-from-blocks.md +19 -19
- package/demo/src/content/blog/colors-everyone-can-read.md +19 -19
- package/demo/src/content/blog/edit-your-website-from-your-phone.md +21 -21
- package/demo/src/content/blog/every-save-is-a-version.md +21 -21
- package/demo/src/content/blog/schedule-a-post.md +17 -17
- package/demo/src/content/blog/secure-from-day-one.md +17 -17
- package/demo/src/content/blog/seo-without-the-guesswork.md +23 -23
- package/demo/src/content/blog/switch-themes-without-losing-anything.md +23 -23
- package/demo/src/content/blog/the-app-store.md +21 -21
- package/demo/src/content/pages/about.md +22 -22
- package/demo/src/content/pages/app-store.md +30 -30
- package/demo/src/content/pages/blocks.md +98 -98
- package/demo/src/content/pages/blog-page.md +11 -11
- package/demo/src/content/pages/contact.md +16 -16
- package/demo/src/content/pages/get-started.md +20 -20
- package/demo/src/content/pages/home.md +26 -26
- package/demo/src/content/pages/page-not-found.md +11 -11
- package/demo/src/content/pages/privacy-policy.md +24 -24
- package/demo/src/data/blocks.json +25 -25
- package/demo/src/data/booking.json +6 -6
- package/demo/src/data/categories/apps.json +6 -6
- package/demo/src/data/categories/design.json +6 -6
- package/demo/src/data/categories/editing.json +6 -6
- package/demo/src/data/categories/security.json +6 -6
- package/demo/src/data/categories/seo.json +6 -6
- package/demo/src/data/colors.json +75 -75
- package/demo/src/data/contact.json +8 -8
- package/demo/src/data/cookies.json +21 -21
- package/demo/src/data/footer.json +27 -27
- package/demo/src/data/menu.json +35 -35
- package/demo/src/data/mobile-menu.json +25 -25
- package/demo/src/data/popups/booking-bar.json +13 -13
- package/demo/src/data/popups/try-the-editor.json +16 -16
- package/demo/src/data/standard-pages.json +8 -8
- package/demo/src/data/testimonials/sample-bakery.json +10 -10
- package/demo/src/data/testimonials/sample-clinic.json +10 -10
- package/demo/src/data/testimonials/sample-studio.json +10 -10
- package/demo/src/site/colors.ts +11 -11
- package/demo/src/site/config.ts +19 -19
- package/icons/lucide/LICENSE +43 -43
- package/icons/lucide/address-book.svg +1 -1
- package/icons/lucide/app-window.svg +1 -1
- package/icons/lucide/arrow-counter-clockwise.svg +1 -1
- package/icons/lucide/arrow-down.svg +1 -1
- package/icons/lucide/arrow-left.svg +1 -1
- package/icons/lucide/arrow-right.svg +1 -1
- package/icons/lucide/arrow-square-out.svg +1 -1
- package/icons/lucide/arrow-u-up-left.svg +1 -1
- package/icons/lucide/arrow-u-up-right.svg +1 -1
- package/icons/lucide/arrow-up-right.svg +1 -1
- package/icons/lucide/arrow-up.svg +1 -1
- package/icons/lucide/arrows-down-up.svg +1 -1
- package/icons/lucide/arrows-in-line-horizontal.svg +1 -1
- package/icons/lucide/arrows-out-line-horizontal.svg +1 -1
- package/icons/lucide/article.svg +1 -1
- package/icons/lucide/bank.svg +1 -1
- package/icons/lucide/bell.svg +1 -1
- package/icons/lucide/bicycle.svg +1 -1
- package/icons/lucide/binoculars.svg +1 -1
- package/icons/lucide/book-open-text.svg +1 -1
- package/icons/lucide/book-open.svg +1 -1
- package/icons/lucide/browser.svg +1 -1
- package/icons/lucide/buildings.svg +1 -1
- package/icons/lucide/bus.svg +1 -1
- package/icons/lucide/calendar-blank.svg +1 -1
- package/icons/lucide/calendar-check.svg +1 -1
- package/icons/lucide/car.svg +1 -1
- package/icons/lucide/cards.svg +1 -1
- package/icons/lucide/caret-down.svg +1 -1
- package/icons/lucide/caret-left.svg +1 -1
- package/icons/lucide/caret-right.svg +1 -1
- package/icons/lucide/caret-up.svg +1 -1
- package/icons/lucide/certificate.svg +1 -1
- package/icons/lucide/chart-line-up.svg +1 -1
- package/icons/lucide/chats.svg +1 -1
- package/icons/lucide/check-circle.svg +1 -1
- package/icons/lucide/check.svg +1 -1
- package/icons/lucide/circle-half.svg +1 -1
- package/icons/lucide/circle.svg +1 -1
- package/icons/lucide/clock-counter-clockwise.svg +1 -1
- package/icons/lucide/clock.svg +1 -1
- package/icons/lucide/code.svg +1 -1
- package/icons/lucide/coffee.svg +1 -1
- package/icons/lucide/columns.svg +1 -1
- package/icons/lucide/cookie.svg +1 -1
- package/icons/lucide/copy.svg +1 -1
- package/icons/lucide/credit-card.svg +1 -1
- package/icons/lucide/currency-circle-dollar.svg +1 -1
- package/icons/lucide/cursor-click.svg +1 -1
- package/icons/lucide/database.svg +1 -1
- package/icons/lucide/desktop.svg +1 -1
- package/icons/lucide/device-mobile.svg +1 -1
- package/icons/lucide/door-open.svg +1 -1
- package/icons/lucide/download-simple.svg +1 -1
- package/icons/lucide/envelope-simple.svg +1 -1
- package/icons/lucide/eye-slash.svg +1 -1
- package/icons/lucide/eye.svg +1 -1
- package/icons/lucide/file-pdf.svg +1 -1
- package/icons/lucide/file-text.svg +1 -1
- package/icons/lucide/file-video.svg +1 -1
- package/icons/lucide/file-zip.svg +1 -1
- package/icons/lucide/flower-lotus.svg +1 -1
- package/icons/lucide/folder-simple.svg +1 -1
- package/icons/lucide/funnel.svg +1 -1
- package/icons/lucide/gauge.svg +1 -1
- package/icons/lucide/gear.svg +1 -1
- package/icons/lucide/github-logo.svg +1 -1
- package/icons/lucide/globe.svg +1 -1
- package/icons/lucide/google-logo.svg +1 -1
- package/icons/lucide/graduation-cap.svg +1 -1
- package/icons/lucide/hammer.svg +1 -1
- package/icons/lucide/hand-heart.svg +1 -1
- package/icons/lucide/handshake.svg +1 -1
- package/icons/lucide/hard-drives.svg +1 -1
- package/icons/lucide/heart.svg +1 -1
- package/icons/lucide/house.svg +1 -1
- package/icons/lucide/image-square.svg +1 -1
- package/icons/lucide/image.svg +1 -1
- package/icons/lucide/info.svg +1 -1
- package/icons/lucide/keyboard.svg +1 -1
- package/icons/lucide/leaf.svg +1 -1
- package/icons/lucide/lifebuoy.svg +1 -1
- package/icons/lucide/lightbulb.svg +1 -1
- package/icons/lucide/link-break.svg +1 -1
- package/icons/lucide/link-simple.svg +1 -1
- package/icons/lucide/list-bullets.svg +1 -1
- package/icons/lucide/list-checks.svg +1 -1
- package/icons/lucide/list-numbers.svg +1 -1
- package/icons/lucide/list.svg +1 -1
- package/icons/lucide/lock-simple-open.svg +1 -1
- package/icons/lucide/lock-simple.svg +1 -1
- package/icons/lucide/magnifying-glass.svg +1 -1
- package/icons/lucide/map-pin.svg +1 -1
- package/icons/lucide/map-trifold.svg +1 -1
- package/icons/lucide/medal.svg +1 -1
- package/icons/lucide/megaphone.svg +1 -1
- package/icons/lucide/minus.svg +1 -1
- package/icons/lucide/moon.svg +1 -1
- package/icons/lucide/newspaper.svg +1 -1
- package/icons/lucide/pack.json +23 -23
- package/icons/lucide/paint-brush-broad.svg +1 -1
- package/icons/lucide/palette.svg +1 -1
- package/icons/lucide/paper-plane-tilt.svg +1 -1
- package/icons/lucide/pencil-simple.svg +1 -1
- package/icons/lucide/phone.svg +1 -1
- package/icons/lucide/play-fill.svg +1 -1
- package/icons/lucide/plus.svg +1 -1
- package/icons/lucide/prohibit.svg +1 -1
- package/icons/lucide/puzzle-piece.svg +1 -1
- package/icons/lucide/question.svg +1 -1
- package/icons/lucide/quotes.svg +1 -1
- package/icons/lucide/rows.svg +1 -1
- package/icons/lucide/ruler.svg +1 -1
- package/icons/lucide/scan.svg +1 -1
- package/icons/lucide/shapes.svg +1 -1
- package/icons/lucide/share-network.svg +1 -1
- package/icons/lucide/shield-check.svg +1 -1
- package/icons/lucide/sidebar-simple.svg +1 -1
- package/icons/lucide/sign-out.svg +1 -1
- package/icons/lucide/signpost.svg +1 -1
- package/icons/lucide/sliders-horizontal.svg +1 -1
- package/icons/lucide/smiley.svg +1 -1
- package/icons/lucide/sparkle.svg +1 -1
- package/icons/lucide/square-half-bottom.svg +1 -1
- package/icons/lucide/square.svg +1 -1
- package/icons/lucide/squares-four.svg +1 -1
- package/icons/lucide/sticker.svg +1 -1
- package/icons/lucide/storefront.svg +1 -1
- package/icons/lucide/sun.svg +1 -1
- package/icons/lucide/swatches.svg +1 -1
- package/icons/lucide/tag.svg +1 -1
- package/icons/lucide/text-aa.svg +1 -1
- package/icons/lucide/text-align-left.svg +1 -1
- package/icons/lucide/text-b.svg +1 -1
- package/icons/lucide/text-h-one.svg +1 -1
- package/icons/lucide/text-h-three.svg +1 -1
- package/icons/lucide/text-h-two.svg +1 -1
- package/icons/lucide/text-italic.svg +1 -1
- package/icons/lucide/text-t.svg +1 -1
- package/icons/lucide/ticket.svg +1 -1
- package/icons/lucide/toggle-right.svg +1 -1
- package/icons/lucide/train.svg +1 -1
- package/icons/lucide/trash.svg +1 -1
- package/icons/lucide/upload-simple.svg +1 -1
- package/icons/lucide/user-circle.svg +1 -1
- package/icons/lucide/user.svg +1 -1
- package/icons/lucide/users-three.svg +1 -1
- package/icons/lucide/users.svg +1 -1
- package/icons/lucide/video-camera.svg +1 -1
- package/icons/lucide/warning-circle.svg +1 -1
- package/icons/lucide/warning.svg +1 -1
- package/icons/lucide/wave-sine.svg +1 -1
- package/icons/lucide/wheelchair.svg +1 -1
- package/icons/lucide/wrench.svg +1 -1
- package/icons/lucide/x.svg +1 -1
- package/icons/material-symbols/LICENSE +201 -201
- package/icons/material-symbols/address-book.svg +1 -1
- package/icons/material-symbols/app-window.svg +1 -1
- package/icons/material-symbols/arrow-counter-clockwise.svg +1 -1
- package/icons/material-symbols/arrow-down.svg +1 -1
- package/icons/material-symbols/arrow-left.svg +1 -1
- package/icons/material-symbols/arrow-right.svg +1 -1
- package/icons/material-symbols/arrow-square-out.svg +1 -1
- package/icons/material-symbols/arrow-u-up-left.svg +1 -1
- package/icons/material-symbols/arrow-u-up-right.svg +1 -1
- package/icons/material-symbols/arrow-up-right.svg +1 -1
- package/icons/material-symbols/arrow-up.svg +1 -1
- package/icons/material-symbols/arrows-down-up.svg +1 -1
- package/icons/material-symbols/arrows-in-line-horizontal.svg +1 -1
- package/icons/material-symbols/arrows-out-line-horizontal.svg +1 -1
- package/icons/material-symbols/article.svg +1 -1
- package/icons/material-symbols/bank.svg +1 -1
- package/icons/material-symbols/bell.svg +1 -1
- package/icons/material-symbols/bicycle.svg +1 -1
- package/icons/material-symbols/binoculars.svg +1 -1
- package/icons/material-symbols/book-open-text.svg +1 -1
- package/icons/material-symbols/book-open.svg +1 -1
- package/icons/material-symbols/browser.svg +1 -1
- package/icons/material-symbols/buildings.svg +1 -1
- package/icons/material-symbols/bus.svg +1 -1
- package/icons/material-symbols/calendar-blank.svg +1 -1
- package/icons/material-symbols/calendar-check.svg +1 -1
- package/icons/material-symbols/car.svg +1 -1
- package/icons/material-symbols/cards.svg +1 -1
- package/icons/material-symbols/caret-down.svg +1 -1
- package/icons/material-symbols/caret-left.svg +1 -1
- package/icons/material-symbols/caret-right.svg +1 -1
- package/icons/material-symbols/caret-up.svg +1 -1
- package/icons/material-symbols/certificate.svg +1 -1
- package/icons/material-symbols/chart-line-up.svg +1 -1
- package/icons/material-symbols/chats.svg +1 -1
- package/icons/material-symbols/check-circle.svg +1 -1
- package/icons/material-symbols/check.svg +1 -1
- package/icons/material-symbols/circle-half.svg +1 -1
- package/icons/material-symbols/circle.svg +1 -1
- package/icons/material-symbols/clock-counter-clockwise.svg +1 -1
- package/icons/material-symbols/clock.svg +1 -1
- package/icons/material-symbols/code.svg +1 -1
- package/icons/material-symbols/coffee.svg +1 -1
- package/icons/material-symbols/columns.svg +1 -1
- package/icons/material-symbols/cookie.svg +1 -1
- package/icons/material-symbols/copy.svg +1 -1
- package/icons/material-symbols/credit-card.svg +1 -1
- package/icons/material-symbols/currency-circle-dollar.svg +1 -1
- package/icons/material-symbols/cursor-click.svg +1 -1
- package/icons/material-symbols/database.svg +1 -1
- package/icons/material-symbols/desktop.svg +1 -1
- package/icons/material-symbols/device-mobile.svg +1 -1
- package/icons/material-symbols/door-open.svg +1 -1
- package/icons/material-symbols/download-simple.svg +1 -1
- package/icons/material-symbols/envelope-simple.svg +1 -1
- package/icons/material-symbols/eye-slash.svg +1 -1
- package/icons/material-symbols/eye.svg +1 -1
- package/icons/material-symbols/file-pdf.svg +1 -1
- package/icons/material-symbols/file-text.svg +1 -1
- package/icons/material-symbols/file-video.svg +1 -1
- package/icons/material-symbols/file-zip.svg +1 -1
- package/icons/material-symbols/flower-lotus.svg +1 -1
- package/icons/material-symbols/folder-simple.svg +1 -1
- package/icons/material-symbols/funnel.svg +1 -1
- package/icons/material-symbols/gauge.svg +1 -1
- package/icons/material-symbols/gear.svg +1 -1
- package/icons/material-symbols/github-logo.svg +1 -1
- package/icons/material-symbols/globe.svg +1 -1
- package/icons/material-symbols/google-logo.svg +1 -1
- package/icons/material-symbols/graduation-cap.svg +1 -1
- package/icons/material-symbols/hammer.svg +1 -1
- package/icons/material-symbols/hand-heart.svg +1 -1
- package/icons/material-symbols/handshake.svg +1 -1
- package/icons/material-symbols/hard-drives.svg +1 -1
- package/icons/material-symbols/heart.svg +1 -1
- package/icons/material-symbols/house.svg +1 -1
- package/icons/material-symbols/image-square.svg +1 -1
- package/icons/material-symbols/image.svg +1 -1
- package/icons/material-symbols/info.svg +1 -1
- package/icons/material-symbols/keyboard.svg +1 -1
- package/icons/material-symbols/leaf.svg +1 -1
- package/icons/material-symbols/lifebuoy.svg +1 -1
- package/icons/material-symbols/lightbulb.svg +1 -1
- package/icons/material-symbols/link-break.svg +1 -1
- package/icons/material-symbols/link-simple.svg +1 -1
- package/icons/material-symbols/list-bullets.svg +1 -1
- package/icons/material-symbols/list-checks.svg +1 -1
- package/icons/material-symbols/list-numbers.svg +1 -1
- package/icons/material-symbols/list.svg +1 -1
- package/icons/material-symbols/lock-simple-open.svg +1 -1
- package/icons/material-symbols/lock-simple.svg +1 -1
- package/icons/material-symbols/magnifying-glass.svg +1 -1
- package/icons/material-symbols/map-pin.svg +1 -1
- package/icons/material-symbols/map-trifold.svg +1 -1
- package/icons/material-symbols/medal.svg +1 -1
- package/icons/material-symbols/megaphone.svg +1 -1
- package/icons/material-symbols/minus.svg +1 -1
- package/icons/material-symbols/moon.svg +1 -1
- package/icons/material-symbols/newspaper.svg +1 -1
- package/icons/material-symbols/pack.json +29 -29
- package/icons/material-symbols/paint-brush-broad.svg +1 -1
- package/icons/material-symbols/palette.svg +1 -1
- package/icons/material-symbols/paper-plane-tilt.svg +1 -1
- package/icons/material-symbols/pencil-simple.svg +1 -1
- package/icons/material-symbols/phone.svg +1 -1
- package/icons/material-symbols/play-fill.svg +1 -1
- package/icons/material-symbols/plus.svg +1 -1
- package/icons/material-symbols/prohibit.svg +1 -1
- package/icons/material-symbols/puzzle-piece.svg +1 -1
- package/icons/material-symbols/question.svg +1 -1
- package/icons/material-symbols/quotes.svg +1 -1
- package/icons/material-symbols/rows.svg +1 -1
- package/icons/material-symbols/ruler.svg +1 -1
- package/icons/material-symbols/scan.svg +1 -1
- package/icons/material-symbols/shapes.svg +1 -1
- package/icons/material-symbols/share-network.svg +1 -1
- package/icons/material-symbols/shield-check.svg +1 -1
- package/icons/material-symbols/sidebar-simple.svg +1 -1
- package/icons/material-symbols/sign-out.svg +1 -1
- package/icons/material-symbols/signpost.svg +1 -1
- package/icons/material-symbols/sliders-horizontal.svg +1 -1
- package/icons/material-symbols/smiley.svg +1 -1
- package/icons/material-symbols/sparkle.svg +1 -1
- package/icons/material-symbols/square-half-bottom.svg +1 -1
- package/icons/material-symbols/square.svg +1 -1
- package/icons/material-symbols/squares-four.svg +1 -1
- package/icons/material-symbols/sticker.svg +1 -1
- package/icons/material-symbols/storefront.svg +1 -1
- package/icons/material-symbols/sun.svg +1 -1
- package/icons/material-symbols/swatches.svg +1 -1
- package/icons/material-symbols/tag.svg +1 -1
- package/icons/material-symbols/text-aa.svg +1 -1
- package/icons/material-symbols/text-align-left.svg +1 -1
- package/icons/material-symbols/text-b.svg +1 -1
- package/icons/material-symbols/text-h-one.svg +1 -1
- package/icons/material-symbols/text-h-three.svg +1 -1
- package/icons/material-symbols/text-h-two.svg +1 -1
- package/icons/material-symbols/text-italic.svg +1 -1
- package/icons/material-symbols/text-t.svg +1 -1
- package/icons/material-symbols/ticket.svg +1 -1
- package/icons/material-symbols/toggle-right.svg +1 -1
- package/icons/material-symbols/train.svg +1 -1
- package/icons/material-symbols/trash.svg +1 -1
- package/icons/material-symbols/upload-simple.svg +1 -1
- package/icons/material-symbols/user-circle.svg +1 -1
- package/icons/material-symbols/user.svg +1 -1
- package/icons/material-symbols/users-three.svg +1 -1
- package/icons/material-symbols/users.svg +1 -1
- package/icons/material-symbols/video-camera.svg +1 -1
- package/icons/material-symbols/warning-circle.svg +1 -1
- package/icons/material-symbols/warning.svg +1 -1
- package/icons/material-symbols/wave-sine.svg +1 -1
- package/icons/material-symbols/wheelchair.svg +1 -1
- package/icons/material-symbols/wrench.svg +1 -1
- package/icons/material-symbols/x.svg +1 -1
- package/icons/phosphor/pack.json +8 -8
- package/lib/apps.mjs +142 -139
- package/lib/apps.test.d.mts +1 -0
- package/lib/apps.test.mjs +50 -0
- package/lib/blocks.mjs +90 -90
- package/lib/caseCollisions.d.mts +4 -0
- package/lib/caseCollisions.mjs +62 -0
- package/lib/caseCollisions.test.d.mts +1 -0
- package/lib/caseCollisions.test.mjs +74 -0
- package/lib/colors.ts +86 -86
- package/lib/contactBar.ts +18 -18
- package/lib/contracts.d.mts +15 -0
- package/lib/contracts.mjs +17 -0
- package/lib/cookieCategories.mjs +28 -28
- package/lib/crop.mjs +83 -83
- package/lib/csp.mjs +130 -130
- package/lib/cspSources.mjs +60 -60
- package/lib/dynamic-colors.ts +426 -426
- package/lib/git.mjs +64 -64
- package/lib/hooks.ts +51 -51
- package/lib/inline.ts +20 -20
- package/lib/license-texts/Apache-2.0.txt +190 -190
- package/lib/license-texts/BSD-2-Clause.txt +24 -24
- package/lib/license-texts/BSD-3-Clause.txt +28 -28
- package/lib/license-texts/ISC.txt +15 -15
- package/lib/license-texts/MIT.txt +21 -21
- package/lib/licenses.d.mts +1 -1
- package/lib/licenses.mjs +683 -683
- package/lib/markdown.ts +42 -42
- package/lib/motion-schemes.mjs +5 -5
- package/lib/motion.ts +131 -131
- package/lib/notice.mjs +34 -34
- package/lib/scheduled.mjs +37 -37
- package/lib/snackbar.ts +149 -149
- package/lib/status.mjs +18 -18
- package/lib/storeEntries.d.mts +18 -0
- package/lib/storeEntries.mjs +64 -0
- package/lib/storeEntries.test.d.mts +1 -0
- package/lib/storeEntries.test.mjs +71 -0
- package/lib/svg.mjs +231 -231
- package/lib/text-colors.mjs +43 -43
- package/lib/video-id.mjs +72 -72
- package/lib/video.mjs +91 -91
- package/package.json +136 -131
- package/pages/404.astro +10 -10
- package/pages/[...slug].astro +51 -51
- package/pages/_headers.txt +31 -31
- package/pages/blog/index.astro +10 -10
- package/pages/blog/kategori/[category].astro +18 -18
- package/pages/editor/code-images.json.js +25 -25
- package/pages/editor/index.astro +75 -75
- package/pages/editor/manifest.webmanifest.js +23 -23
- package/pages/editor/sw.js +33 -33
- package/pages/editor/sw.js.js +4 -4
- package/pages/editor/thumbnails.json.js +21 -21
- package/pages/editor/version.json.js +22 -22
- package/pages/headers.js +4 -4
- package/pages/index.astro +10 -10
- package/pages/ny.astro +6 -6
- package/pages/robots.txt.js +3 -3
- package/pages/rss.xml.js +20 -20
- package/scripts/app-screenshots.mjs +164 -164
- package/scripts/app-workers.mjs +6 -6
- package/scripts/bin.mjs +12 -12
- package/scripts/built-site.mjs +134 -99
- package/scripts/check-consent.mjs +113 -113
- package/scripts/check-content.mjs +151 -149
- package/scripts/check-demo.mjs +24 -24
- package/scripts/check-store.mjs +160 -0
- package/scripts/check-themes.mjs +45 -45
- package/scripts/check-worker.mjs +569 -569
- package/scripts/compare-html.mjs +81 -81
- package/scripts/declarations.mjs +10 -0
- package/scripts/declarations.test.mjs +32 -0
- package/scripts/demo-site.mjs +42 -42
- package/scripts/editor-icons.mjs +56 -56
- package/scripts/editor-roundtrip.mjs +134 -134
- package/scripts/editor-screens.mjs +101 -101
- package/scripts/git-env.mjs +9 -9
- package/scripts/icon-packs.mjs +151 -151
- package/scripts/link-counts.mjs +22 -22
- package/scripts/page-colors.mjs +42 -42
- package/scripts/releases.mjs +80 -80
- package/scripts/responsive-images.mjs +94 -94
- package/scripts/scheduled-list.mjs +15 -15
- package/scripts/theme-screenshots.mjs +88 -88
- package/scripts/types.mjs +17 -21
- package/scripts/video-thumbnails.mjs +89 -89
- package/scripts/worker-modules.mjs +34 -34
- package/site/appCookies.mjs +74 -74
- package/site/apps.ts +21 -21
- package/site/autolinks.mjs +200 -200
- package/site/blockScripts.ts +31 -31
- package/site/categories.ts +16 -16
- package/site/consent.ts +26 -26
- package/site/content.config.ts +84 -84
- package/site/content.ts +104 -104
- package/site/cookieList.ts +17 -17
- package/site/defineSite.d.mts +2 -14
- package/site/defineSite.mjs +131 -136
- package/site/directives/interact.mjs +31 -31
- package/site/editor-version.mjs +26 -26
- package/site/fill.ts +13 -13
- package/site/format.ts +11 -11
- package/site/home.ts +66 -66
- package/site/iconPacks.mjs +43 -43
- package/site/icons.mjs +605 -605
- package/site/images.mjs +157 -157
- package/site/motion.ts +13 -13
- package/site/noindex.mjs +21 -21
- package/site/pageColors.ts +110 -110
- package/site/popups.ts +98 -98
- package/site/schema.ts +189 -189
- package/site/sections.ts +3 -3
- package/site/seo.ts +28 -28
- package/site/site.ts +76 -76
- package/site/siteConfig.mjs +8 -8
- package/site/siteCsp.mjs +75 -75
- package/site/siteModules.mjs +27 -27
- package/site/standardPages.ts +59 -59
- package/site/storeTheme.d.mts +6 -0
- package/site/storeTheme.mjs +29 -0
- package/site/storeTheme.test.d.mts +1 -0
- package/site/storeTheme.test.mjs +53 -0
- package/site/testimonials.ts +48 -48
- package/site/text.ts +43 -43
- package/site/theme.mjs +483 -472
- package/site/tracking.client.ts +225 -225
- package/site/tracking.ts +9 -9
- package/src/ActionParts.tsx +205 -205
- package/src/Advanced.tsx +152 -152
- package/src/App.tsx +901 -904
- package/src/AppList.tsx +1362 -1345
- package/src/BlockDialog.tsx +360 -360
- package/src/BlockParts.tsx +652 -652
- package/src/BlockSettings.tsx +533 -533
- package/src/BrandForm.tsx +164 -164
- package/src/Colors.tsx +476 -476
- package/src/CommunicationParts.tsx +199 -199
- package/src/CompanyForm.tsx +209 -209
- package/src/Consents.tsx +175 -175
- package/src/ContainmentParts.tsx +185 -185
- package/src/Crop.tsx +152 -152
- package/src/DataForm.tsx +434 -434
- package/src/Deleted.tsx +177 -177
- package/src/EntryForm.tsx +740 -740
- package/src/FileView.tsx +30 -30
- package/src/FormFrame.tsx +237 -237
- package/src/Keywords.tsx +225 -225
- package/src/Library.tsx +1563 -1563
- package/src/Licenses.tsx +336 -336
- package/src/LinkSheet.tsx +138 -138
- package/src/MarkdownEditor.tsx +1075 -1075
- package/src/Media.tsx +677 -677
- package/src/NavigationParts.tsx +350 -350
- package/src/NavigationRestParts.tsx +247 -247
- package/src/Notifications.tsx +59 -59
- package/src/PagePicker.tsx +136 -136
- package/src/Parts.tsx +991 -991
- package/src/PartsShown.tsx +168 -168
- package/src/PickerParts.tsx +183 -183
- package/src/Redirects.tsx +450 -450
- package/src/Screen.tsx +184 -184
- package/src/SectionsField.tsx +65 -65
- package/src/SelectionParts.tsx +134 -134
- package/src/SeoScores.tsx +184 -184
- package/src/Sheet.tsx +35 -35
- package/src/ThemeStore.tsx +376 -376
- package/src/Tokens.tsx +346 -346
- package/src/Versions.tsx +214 -214
- package/src/addresses.ts +75 -75
- package/src/allIcons.ts +7 -7
- package/src/appFiles.ts +29 -29
- package/src/apps.ts +281 -281
- package/src/ask.tsx +123 -123
- package/src/blocks.ts +251 -251
- package/src/brand.ts +153 -153
- package/src/cache.ts +42 -42
- package/src/check.ts +285 -285
- package/src/checkSite.ts +256 -256
- package/src/{consents.ts → consentData.ts} +26 -26
- package/src/cookieList.ts +70 -70
- package/src/countries.ts +59 -59
- package/src/deploy.ts +155 -155
- package/src/editor.css +602 -602
- package/src/examples.ts +85 -85
- package/src/fields.tsx +942 -942
- package/src/frontmatter.mjs +42 -42
- package/src/github.ts +376 -376
- package/src/i18n/da-DK/advanced.ts +28 -28
- package/src/i18n/da-DK/app.ts +71 -71
- package/src/i18n/da-DK/apps.ts +90 -90
- package/src/i18n/da-DK/blockSettings.ts +38 -38
- package/src/i18n/da-DK/blocks.ts +408 -408
- package/src/i18n/da-DK/check.ts +25 -25
- package/src/i18n/da-DK/colors.ts +64 -64
- package/src/i18n/da-DK/common.ts +118 -118
- package/src/i18n/da-DK/company.ts +24 -24
- package/src/i18n/da-DK/consents.ts +23 -23
- package/src/i18n/da-DK/forms.ts +116 -116
- package/src/i18n/da-DK/history.ts +35 -35
- package/src/i18n/da-DK/index.ts +49 -49
- package/src/i18n/da-DK/keywords.ts +19 -19
- package/src/i18n/da-DK/library.ts +135 -135
- package/src/i18n/da-DK/licenses.ts +25 -25
- package/src/i18n/da-DK/media.ts +79 -79
- package/src/i18n/da-DK/parts.ts +696 -696
- package/src/i18n/da-DK/preview.ts +13 -13
- package/src/i18n/da-DK/redirects.ts +51 -51
- package/src/i18n/da-DK/seo.ts +20 -20
- package/src/i18n/da-DK/text.ts +35 -35
- package/src/i18n/da-DK/theme.ts +41 -41
- package/src/i18n/en-US/advanced.ts +32 -32
- package/src/i18n/en-US/app.ts +84 -84
- package/src/i18n/en-US/apps.ts +134 -134
- package/src/i18n/en-US/blockSettings.ts +48 -48
- package/src/i18n/en-US/blocks.ts +441 -441
- package/src/i18n/en-US/check.ts +31 -31
- package/src/i18n/en-US/colors.ts +82 -82
- package/src/i18n/en-US/common.ts +144 -144
- package/src/i18n/en-US/company.ts +25 -25
- package/src/i18n/en-US/consents.ts +25 -25
- package/src/i18n/en-US/forms.ts +145 -145
- package/src/i18n/en-US/history.ts +43 -43
- package/src/i18n/en-US/index.ts +51 -51
- package/src/i18n/en-US/keywords.ts +24 -24
- package/src/i18n/en-US/library.ts +176 -176
- package/src/i18n/en-US/licenses.ts +36 -36
- package/src/i18n/en-US/media.ts +80 -80
- package/src/i18n/en-US/parts.ts +718 -718
- package/src/i18n/en-US/preview.ts +15 -15
- package/src/i18n/en-US/redirects.ts +66 -66
- package/src/i18n/en-US/seo.ts +26 -26
- package/src/i18n/en-US/text.ts +41 -41
- package/src/i18n/en-US/theme.ts +41 -41
- package/src/i18n/index.ts +124 -124
- package/src/icon.tsx +160 -160
- package/src/iconPacks.ts +89 -89
- package/src/images.ts +163 -163
- package/src/{licenses.ts → licenseData.ts} +79 -79
- package/src/markdown.mjs +204 -204
- package/src/nav.ts +68 -68
- package/src/notFound.ts +28 -28
- package/src/{notifications.ts → notificationData.ts} +223 -223
- package/src/pagePreview.tsx +204 -204
- package/src/r2Caching.ts +55 -55
- package/src/{redirects.ts → redirectData.ts} +149 -149
- package/src/registry.tsx +188 -188
- package/src/schema.ts +417 -417
- package/src/sections.mjs +303 -303
- package/src/seo.ts +333 -333
- package/src/shared.ts +44 -44
- package/src/sidebar.ts +31 -31
- package/src/site.ts +317 -317
- package/src/standard/Block.astro +19 -19
- package/src/standard/BlockSite.astro +18 -18
- package/src/standard/accordion/index.tsx +47 -47
- package/src/standard/accordion/load.ts +23 -23
- package/src/standard/accordion/shared.ts +15 -15
- package/src/standard/accordion/view.ts +32 -32
- package/src/standard/buttons/fields.ts +98 -98
- package/src/standard/buttons/index.tsx +23 -23
- package/src/standard/buttons/load.ts +34 -34
- package/src/standard/buttons/shared.ts +12 -12
- package/src/standard/buttons/view.ts +30 -30
- package/src/standard/cards/index.tsx +71 -71
- package/src/standard/cards/load.ts +17 -17
- package/src/standard/cards/shared.ts +27 -27
- package/src/standard/cards/view.ts +29 -29
- package/src/standard/checklist/index.tsx +27 -27
- package/src/standard/checklist/load.ts +5 -5
- package/src/standard/checklist/view.ts +13 -13
- package/src/standard/cookies/index.tsx +17 -17
- package/src/standard/cookies/list.ts +56 -56
- package/src/standard/cookies/load.ts +11 -11
- package/src/standard/cookies/shared.ts +20 -20
- package/src/standard/cookies/view.ts +28 -28
- package/src/standard/faq/index.tsx +29 -29
- package/src/standard/faq/load.ts +14 -14
- package/src/standard/faq/view.ts +21 -21
- package/src/standard/head.ts +23 -23
- package/src/standard/hero/fields.ts +48 -48
- package/src/standard/hero/index.tsx +57 -57
- package/src/standard/hero/load.ts +23 -23
- package/src/standard/hero/view.ts +38 -38
- package/src/standard/links/index.tsx +41 -41
- package/src/standard/links/load.ts +17 -17
- package/src/standard/links/view.ts +25 -25
- package/src/standard/list/index.tsx +50 -50
- package/src/standard/list/load.ts +5 -5
- package/src/standard/list/view.ts +18 -18
- package/src/standard/load.ts +7 -7
- package/src/standard/notice/index.tsx +30 -30
- package/src/standard/notice/load.ts +16 -16
- package/src/standard/notice/view.ts +10 -10
- package/src/standard/points/index.tsx +42 -42
- package/src/standard/points/load.ts +5 -5
- package/src/standard/points/view.ts +12 -12
- package/src/standard/posts/index.tsx +132 -132
- package/src/standard/posts/load.ts +36 -36
- package/src/standard/posts/shared.ts +21 -21
- package/src/standard/posts/view.ts +63 -63
- package/src/standard/pricecards/index.tsx +57 -57
- package/src/standard/pricecards/load.ts +11 -11
- package/src/standard/pricecards/view.ts +50 -50
- package/src/standard/sharedTexts.ts +6 -6
- package/src/standard/site.ts +124 -124
- package/src/standard/siteLooks.ts +19 -19
- package/src/standard/sites.ts +13 -13
- package/src/standard/steps/index.tsx +28 -28
- package/src/standard/steps/load.ts +5 -5
- package/src/standard/steps/view.ts +11 -11
- package/src/standard/testimonials/index.tsx +87 -87
- package/src/standard/testimonials/list.ts +43 -43
- package/src/standard/testimonials/load.ts +58 -58
- package/src/standard/testimonials/shared.ts +13 -13
- package/src/standard/testimonials/view.ts +76 -76
- package/src/standard/themeBlocks.ts +13 -13
- package/src/standard/video/index.tsx +23 -23
- package/src/standard/video/load.ts +10 -10
- package/src/standard/video/view.ts +42 -42
- package/src/standard/view.tsx +105 -105
- package/src/standard/views.ts +37 -37
- package/src/store.ts +479 -499
- package/src/theme.ts +90 -90
- package/src/themeUi.ts +97 -97
- package/src/themes.ts +91 -91
- package/src/ui.tsx +3402 -3402
- package/src/virtual.d.ts +5 -5
- package/src/when.ts +22 -22
- package/starter/.githooks/pre-push +4 -4
- package/starter/.nvmrc +1 -1
- package/starter/.prettierignore +11 -11
- package/starter/.prettierrc.json +7 -7
- package/starter/README.md +27 -26
- package/starter/astro.config.mjs +5 -5
- package/starter/package.json +67 -67
- package/starter/public/_redirects +1 -1
- package/starter/public/favicon.svg +1 -1
- package/starter/public/logo.svg +1 -1
- package/starter/src/content/pages/blog.md +8 -8
- package/starter/src/content/pages/forside.md +9 -9
- package/starter/src/content/pages/kontakt.md +7 -7
- package/starter/src/content/pages/privatlivspolitik.md +9 -9
- package/starter/src/content/pages/siden-findes-ikke.md +7 -7
- package/starter/src/content.config.ts +2 -2
- package/starter/src/data/apps.json +1 -1
- package/starter/src/data/block-settings.json +3 -3
- package/starter/src/data/blocks.json +1 -1
- package/starter/src/data/booking.json +6 -6
- package/starter/src/data/colors.json +70 -70
- package/starter/src/data/contact.json +8 -8
- package/starter/src/data/cookies.json +21 -21
- package/starter/src/data/csp.json +1 -1
- package/starter/src/data/footer.json +15 -15
- package/starter/src/data/internal-links.json +4 -4
- package/starter/src/data/menu.json +4 -4
- package/starter/src/data/mobile-menu.json +4 -4
- package/starter/src/data/old-addresses.json +1 -1
- package/starter/src/data/redirects.json +1 -1
- package/starter/src/data/standard-pages.json +8 -8
- package/starter/src/data/theme.json +1 -1
- package/starter/src/env.d.ts +2 -2
- package/starter/src/site/config.ts +13 -13
- package/starter/src/site/worker.js +14 -14
- package/starter/tsconfig.json +17 -17
- package/starter/worker/apps.js +6 -6
- package/starter/wrangler.jsonc +39 -39
- package/theme/LICENSE +21 -21
- package/theme/blocks/ArrowLink.tsx +14 -14
- package/theme/blocks/BlockHead.tsx +26 -26
- package/theme/blocks/Panel.tsx +32 -32
- package/theme/blocks/Person.tsx +26 -26
- package/theme/blocks/accordion/PageRow.tsx +25 -25
- package/theme/blocks/accordion/View.tsx +17 -17
- package/theme/blocks/buttons/Buttons.tsx +28 -28
- package/theme/blocks/buttons/View.tsx +12 -12
- package/theme/blocks/cards/LinkCards.tsx +72 -72
- package/theme/blocks/cards/View.tsx +20 -20
- package/theme/blocks/checklist/Checks.tsx +15 -15
- package/theme/blocks/checklist/View.tsx +14 -14
- package/theme/blocks/cookies/View.tsx +36 -36
- package/theme/blocks/faq/Accordion.tsx +34 -34
- package/theme/blocks/faq/View.tsx +16 -16
- package/theme/blocks/faq/script.ts +56 -56
- package/theme/blocks/hero/View.tsx +44 -44
- package/theme/blocks/links/LinkGroups.tsx +24 -24
- package/theme/blocks/links/View.tsx +17 -17
- package/theme/blocks/list/Rows.tsx +24 -24
- package/theme/blocks/list/View.tsx +14 -14
- package/theme/blocks/notice/View.tsx +13 -13
- package/theme/blocks/points/PointList.tsx +34 -34
- package/theme/blocks/points/View.tsx +14 -14
- package/theme/blocks/posts/View.tsx +26 -26
- package/theme/blocks/pricecards/View.tsx +40 -40
- package/theme/blocks/steps/StepList.tsx +23 -23
- package/theme/blocks/steps/View.tsx +14 -14
- package/theme/blocks/testimonials/List.tsx +46 -46
- package/theme/blocks/testimonials/Slider.tsx +44 -44
- package/theme/blocks/testimonials/Testimonial.tsx +124 -124
- package/theme/blocks/testimonials/View.tsx +21 -21
- package/theme/blocks/testimonials/script.ts +52 -52
- package/theme/blocks/video/View.tsx +41 -41
- package/theme/components/ActionBar.astro +63 -63
- package/theme/components/AppSlot.astro +21 -21
- package/theme/components/ArrowLink.tsx +21 -21
- package/theme/components/BlogIndex.astro +48 -48
- package/theme/components/BlogPosts.astro +18 -18
- package/theme/components/BlogPosts.tsx +45 -45
- package/theme/components/BookButton.tsx +22 -22
- package/theme/components/Container.astro +11 -11
- package/theme/components/CookieConsent.astro +121 -121
- package/theme/components/EndBlock.astro +21 -21
- package/theme/components/FontPreload.astro +6 -6
- package/theme/components/Footer.astro +85 -85
- package/theme/components/Header.astro +186 -186
- package/theme/components/Icon.astro +16 -16
- package/theme/components/Img.astro +29 -29
- package/theme/components/Img.tsx +33 -33
- package/theme/components/Inline.astro +11 -11
- package/theme/components/Logo.astro +23 -23
- package/theme/components/LogoMark.astro +10 -10
- package/theme/components/Markdown.astro +17 -17
- package/theme/components/MobileMenu.tsx +224 -224
- package/theme/components/MobileNav.astro +33 -33
- package/theme/components/PageHeader.astro +22 -22
- package/theme/components/PageSection.astro +24 -24
- package/theme/components/PhoneButton.tsx +11 -11
- package/theme/components/Popup.astro +145 -145
- package/theme/components/PopupButton.tsx +24 -24
- package/theme/components/PopupView.tsx +48 -48
- package/theme/components/PostList.tsx +58 -58
- package/theme/components/PostMeta.tsx +17 -17
- package/theme/components/RichText.astro +28 -28
- package/theme/components/Section.astro +29 -29
- package/theme/components/SectionHeading.tsx +8 -8
- package/theme/components/TextSection.astro +16 -16
- package/theme/components/home/PageBlock.astro +19 -19
- package/theme/components/home/Text.astro +13 -13
- package/theme/components/loadPopup.ts +22 -22
- package/theme/components/loadPosts.ts +16 -16
- package/theme/components/posts.ts +15 -15
- package/theme/editor/looks.mjs +7 -7
- package/theme/editor/previews.tsx +56 -56
- package/theme/layouts/Base.astro +273 -273
- package/theme/layouts/PageLayout.astro +126 -126
- package/theme/layouts/PostLayout.astro +137 -137
- package/theme/scripts/motion.ts +29 -29
- package/theme/styles/base.css +320 -320
- package/theme/styles/blocks.css +1808 -1808
- package/theme/styles/components.css +206 -206
- package/theme/styles/global.css +1302 -1302
- package/theme/styles/ui.css +6544 -6544
- package/theme/templates/Blog.astro +38 -38
- package/theme/templates/Category.astro +19 -19
- package/theme/templates/Home.astro +36 -36
- package/theme/templates/New.astro +68 -68
- package/theme/templates/NotFound.astro +117 -117
- package/theme/theme.json +28 -28
- package/theme/ui/Badge.tsx +45 -45
- package/theme/ui/BottomSheet.tsx +148 -148
- package/theme/ui/Button.tsx +79 -79
- package/theme/ui/ButtonGroup.tsx +31 -31
- package/theme/ui/Card.tsx +45 -45
- package/theme/ui/Carousel.tsx +124 -124
- package/theme/ui/Checkbox.tsx +59 -59
- package/theme/ui/Chip.tsx +101 -101
- package/theme/ui/ChipSet.tsx +27 -27
- package/theme/ui/DatePicker.tsx +149 -149
- package/theme/ui/DatePickerContainer.tsx +316 -316
- package/theme/ui/Dialog.tsx +100 -100
- package/theme/ui/Divider.tsx +27 -27
- package/theme/ui/ExposedDropdownMenu.tsx +77 -77
- package/theme/ui/Fab.tsx +88 -88
- package/theme/ui/FabMenu.tsx +67 -67
- package/theme/ui/IconButton.tsx +78 -78
- package/theme/ui/List.tsx +287 -287
- package/theme/ui/LoadingIndicator.tsx +29 -29
- package/theme/ui/Menu.tsx +278 -278
- package/theme/ui/NavigationBar.tsx +62 -62
- package/theme/ui/NavigationDrawer.tsx +80 -80
- package/theme/ui/NavigationRail.tsx +154 -154
- package/theme/ui/ProgressIndicator.tsx +162 -162
- package/theme/ui/RadioButton.tsx +50 -50
- package/theme/ui/Search.tsx +129 -129
- package/theme/ui/SegmentedButton.tsx +49 -49
- package/theme/ui/SideSheet.tsx +54 -54
- package/theme/ui/Slider.tsx +155 -155
- package/theme/ui/Snackbar.tsx +67 -67
- package/theme/ui/SplitButton.tsx +67 -67
- package/theme/ui/Switch.tsx +60 -60
- package/theme/ui/Tabs.tsx +114 -114
- package/theme/ui/TextField.tsx +278 -278
- package/theme/ui/TimePicker.tsx +128 -128
- package/theme/ui/TimePickerContainer.tsx +234 -234
- package/theme/ui/Toolbar.tsx +67 -67
- package/theme/ui/Tooltip.tsx +58 -58
- package/theme/ui/TopAppBar.tsx +77 -77
- package/theme/ui/bottomSheet.script.ts +8 -8
- package/theme/ui/{bottomSheet.ts → bottomSheetControl.ts} +211 -211
- package/theme/ui/carousel.script.ts +28 -28
- package/theme/ui/carouselLayout.ts +229 -229
- package/theme/ui/checkbox.script.ts +8 -8
- package/theme/ui/datePicker.script.ts +302 -302
- package/theme/ui/dates.ts +185 -185
- package/theme/ui/{dialog.ts → dialogControl.ts} +48 -48
- package/theme/ui/dropdownMenu.script.ts +166 -166
- package/theme/ui/fabMenu.script.ts +57 -57
- package/theme/ui/navigationRail.script.ts +47 -47
- package/theme/ui/ripple.script.ts +159 -159
- package/theme/ui/search.script.ts +92 -92
- package/theme/ui/{sideSheet.ts → sideSheetControl.ts} +48 -48
- package/theme/ui/slider.script.ts +12 -12
- package/theme/ui/sliderUpdate.ts +52 -52
- package/theme/ui/snackbar.script.ts +16 -16
- package/theme/ui/splitButton.script.ts +63 -63
- package/theme/ui/tabs.script.ts +48 -48
- package/theme/ui/textField.script.ts +17 -17
- package/theme/ui/textFieldUpdate.ts +44 -44
- package/theme/ui/timePicker.script.ts +248 -248
- package/theme/ui/toolbar.script.ts +43 -43
- package/theme/ui/tooltip.script.ts +68 -68
- package/worker/consent.js +141 -141
- package/worker/editor-github.js +167 -167
- package/worker/editor-host.js +74 -74
- package/worker/files.js +401 -401
- package/worker/github.js +36 -36
- package/worker/index.js +188 -184
- package/worker/not-found.js +97 -97
- package/worker/oauth.js +95 -95
- package/worker/publish.js +52 -52
- package/worker/push.js +270 -270
- package/worker/r2-status.js +50 -50
- package/worker/session.js +58 -58
- package/worker/store.js +46 -0
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Blocks"
|
|
3
|
-
description: "Every block you can build a page from in Morpheme, shown live."
|
|
4
|
-
wide: true
|
|
5
|
-
seoTitle: "Blocks | Morpheme"
|
|
6
|
-
seoDescription: "Buttons, cards, points, steps, checklists, FAQs, price cards, testimonials and more: every Morpheme block, shown live."
|
|
7
|
-
keyword: "blocks"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Blocks
|
|
11
|
-
|
|
12
|
-
Every page is text, photos and blocks. Tap + anywhere in the text to add one. It takes on your theme’s fonts, colors and shapes, so it always fits. Here is each one, live.
|
|
13
|
-
|
|
14
|
-
## Buttons
|
|
15
|
-
|
|
16
|
-
Send visitors to a page, start a call or open a pop-up. Pick a style for each button.
|
|
17
|
-
|
|
18
|
-
<div data-block="buttons" data-props="{"items":[{"label":"Get started","to":"page","href":"/get-started/","kind":"filled","icon":"arrow-right"},{"label":"Browse apps","to":"page","href":"/app-store/","kind":"tonal"},{"label":"","to":"phone","kind":"outlined","icon":"phone"}]}"></div>
|
|
19
|
-
|
|
20
|
-
## Cards
|
|
21
|
-
|
|
22
|
-
Group related ideas with an icon, a photo or just text, each linking to a page if you like.
|
|
23
|
-
|
|
24
|
-
<div data-block="cards" data-props="{"items":[{"icon":"lightbulb","title":"With an icon","text":"Icons come from the icon pack you choose under Appearance."},{"icon":"heart","title":"On a surface","text":"Cards use your theme’s surfaces, corners and shadows."},{"icon":"book-open","title":"With a link","text":"Link a card to a page and “Learn more” appears at the bottom.","href":"/about/"},{"icon":"medal","title":"Any number","text":"Add as many cards as you like; they wrap neatly on every screen."}]}"></div>
|
|
25
|
-
|
|
26
|
-
<div data-block="cards" data-props="{"design":"text","background":"accent","items":[{"title":"Just text","text":"No icon, no photo. Here on the accent color."},{"title":"One background","text":"The background applies to every card in the block."}]}"></div>
|
|
27
|
-
|
|
28
|
-
## Points
|
|
29
|
-
|
|
30
|
-
Short points with an icon, for what you offer or how to find you.
|
|
31
|
-
|
|
32
|
-
<div data-block="points" data-props="{"items":[{"icon":"clock","title":"Scheduled","text":"Publishes on its own at the time you pick."},{"icon":"info","title":"Draft","text":"Stays in the editor until you publish it."},{"icon":"door-open","title":"Hidden","text":"Opens at its address but stays off Google."}]}"></div>
|
|
33
|
-
|
|
34
|
-
## Steps
|
|
35
|
-
|
|
36
|
-
A numbered sequence, for a process or a plan.
|
|
37
|
-
|
|
38
|
-
<div data-block="steps" data-props="{"items":[{"title":"Pick a block","text":"Tap + in the text and choose one."},{"title":"Fill it in","text":"The preview updates as you type."},{"title":"Save","text":"The editor checks the page and publishes it."}]}"></div>
|
|
39
|
-
|
|
40
|
-
## Checklist
|
|
41
|
-
|
|
42
|
-
Quick points with a check mark.
|
|
43
|
-
|
|
44
|
-
<div data-block="checklist" data-props="{"items":["Works on every phone","Light and dark mode","Photos sized for every screen","No tracking before consent"]}"></div>
|
|
45
|
-
|
|
46
|
-
## List
|
|
47
|
-
|
|
48
|
-
Rows under each other, as your theme draws a list, or each on its own surface.
|
|
49
|
-
|
|
50
|
-
<div data-block="list" data-props="{"items":[{"icon":"book-open","title":"Blocks","text":"Every block a page can be built from.","href":"/blocks/"},{"icon":"lightbulb","title":"App store","text":"Apps and themes you install with one tap.","href":"/app-store/"},{"icon":"info","title":"About","text":"What the editor is built on.","href":"/about/"}]}"></div>
|
|
51
|
-
|
|
52
|
-
<div data-block="list" data-props="{"design":"segmented","items":[{"icon":"clock","title":"Monday to Friday","text":"9 am to 5 pm"},{"icon":"coffee","title":"Saturday","text":"10 am to 2 pm"},{"icon":"door-open","title":"Sunday","text":"Closed"}]}"></div>
|
|
53
|
-
|
|
54
|
-
## Accordion
|
|
55
|
-
|
|
56
|
-
Topics that unfold with a short summary and a link to the full page.
|
|
57
|
-
|
|
58
|
-
<div data-block="accordion" data-props="{"items":[{"label":"Blocks","href":"/blocks/","text":"Every block a page can be built from."},{"label":"App store","href":"/app-store/","text":"Apps and themes you install with one tap.","more":[{"label":"Get started","href":"/get-started/"}]},{"label":"Morpheme","href":"/about/","text":"What the editor is built on."}]}"></div>
|
|
59
|
-
|
|
60
|
-
## Questions and answers
|
|
61
|
-
|
|
62
|
-
Questions that unfold to reveal the answer, ready for Google to show in search results.
|
|
63
|
-
|
|
64
|
-
<div data-block="faq" data-props="{"items":[{"question":"Can I use a block more than once on a page?","answer":"Yes. Each copy has its own content."},{"question":"Can I turn a block off?","answer":"Yes, under Block settings. It can’t be added again until you turn it back on."}]}"></div>
|
|
65
|
-
|
|
66
|
-
## Price cards
|
|
67
|
-
|
|
68
|
-
Up to four plans side by side, with what’s included and a button.
|
|
69
|
-
|
|
70
|
-
<div data-block="pricecards" data-props="{"items":[{"name":"Open source","price":"Free","text":"Run Morpheme on your own Cloudflare account.","features":["The editor and the standard theme","MIT license","Your own GitHub repository"],"buttons":[{"label":"Get started","to":"page","href":"/get-started/","kind":"outlined"}]},{"name":"With apps","price":"Custom","text":"Your site plus apps and themes from the app store.","features":["Everything in Open source","Apps and themes","Updates with release notes"],"buttons":[{"label":"Browse apps","to":"page","href":"/app-store/","kind":"filled"}],"featured":true,"badge":"Popular"}]}"></div>
|
|
71
|
-
|
|
72
|
-
## Testimonials
|
|
73
|
-
|
|
74
|
-
Quotes from the Testimonials list, as a carousel or a list. These are samples.
|
|
75
|
-
|
|
76
|
-
<div data-block="testimonials" data-props="{"layout":"list","show":"all"}"></div>
|
|
77
|
-
|
|
78
|
-
## Notice
|
|
79
|
-
|
|
80
|
-
A message that stands out, and can disappear on its own on a date you set.
|
|
81
|
-
|
|
82
|
-
<div data-block="notice" data-props="{"text":"**Holiday hours:** we’re closed December 24–26. Notices like this one can expire on their own."}"></div>
|
|
83
|
-
|
|
84
|
-
## Link collection
|
|
85
|
-
|
|
86
|
-
Pages grouped by topic.
|
|
87
|
-
|
|
88
|
-
<div data-block="links" data-props="{"groups":[{"title":"Product","href":"/about/","paths":["/about/","/blocks/","/app-store/"]},{"title":"Getting started","href":"/get-started/","paths":["/get-started/","/contact/"]}]}"></div>
|
|
89
|
-
|
|
90
|
-
## Posts
|
|
91
|
-
|
|
92
|
-
The newest posts, a random few or the ones you choose, with a link to the rest.
|
|
93
|
-
|
|
94
|
-
<div data-block="posts" data-props="{"show":"picked","picked":["build-a-page-from-blocks","switch-themes-without-losing-anything","colors-everyone-can-read"],"link":"design"}"></div>
|
|
95
|
-
|
|
96
|
-
## And a few more
|
|
97
|
-
|
|
98
|
-
The Banner at the top of the home page, every post on the blog page, and the Cookie list in the privacy policy. The Video block plays YouTube and Vimeo videos, loading nothing from them until a visitor presses play.
|
|
1
|
+
---
|
|
2
|
+
title: "Blocks"
|
|
3
|
+
description: "Every block you can build a page from in Morpheme, shown live."
|
|
4
|
+
wide: true
|
|
5
|
+
seoTitle: "Blocks | Morpheme"
|
|
6
|
+
seoDescription: "Buttons, cards, points, steps, checklists, FAQs, price cards, testimonials and more: every Morpheme block, shown live."
|
|
7
|
+
keyword: "blocks"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Blocks
|
|
11
|
+
|
|
12
|
+
Every page is text, photos and blocks. Tap + anywhere in the text to add one. It takes on your theme’s fonts, colors and shapes, so it always fits. Here is each one, live.
|
|
13
|
+
|
|
14
|
+
## Buttons
|
|
15
|
+
|
|
16
|
+
Send visitors to a page, start a call or open a pop-up. Pick a style for each button.
|
|
17
|
+
|
|
18
|
+
<div data-block="buttons" data-props="{"items":[{"label":"Get started","to":"page","href":"/get-started/","kind":"filled","icon":"arrow-right"},{"label":"Browse apps","to":"page","href":"/app-store/","kind":"tonal"},{"label":"","to":"phone","kind":"outlined","icon":"phone"}]}"></div>
|
|
19
|
+
|
|
20
|
+
## Cards
|
|
21
|
+
|
|
22
|
+
Group related ideas with an icon, a photo or just text, each linking to a page if you like.
|
|
23
|
+
|
|
24
|
+
<div data-block="cards" data-props="{"items":[{"icon":"lightbulb","title":"With an icon","text":"Icons come from the icon pack you choose under Appearance."},{"icon":"heart","title":"On a surface","text":"Cards use your theme’s surfaces, corners and shadows."},{"icon":"book-open","title":"With a link","text":"Link a card to a page and “Learn more” appears at the bottom.","href":"/about/"},{"icon":"medal","title":"Any number","text":"Add as many cards as you like; they wrap neatly on every screen."}]}"></div>
|
|
25
|
+
|
|
26
|
+
<div data-block="cards" data-props="{"design":"text","background":"accent","items":[{"title":"Just text","text":"No icon, no photo. Here on the accent color."},{"title":"One background","text":"The background applies to every card in the block."}]}"></div>
|
|
27
|
+
|
|
28
|
+
## Points
|
|
29
|
+
|
|
30
|
+
Short points with an icon, for what you offer or how to find you.
|
|
31
|
+
|
|
32
|
+
<div data-block="points" data-props="{"items":[{"icon":"clock","title":"Scheduled","text":"Publishes on its own at the time you pick."},{"icon":"info","title":"Draft","text":"Stays in the editor until you publish it."},{"icon":"door-open","title":"Hidden","text":"Opens at its address but stays off Google."}]}"></div>
|
|
33
|
+
|
|
34
|
+
## Steps
|
|
35
|
+
|
|
36
|
+
A numbered sequence, for a process or a plan.
|
|
37
|
+
|
|
38
|
+
<div data-block="steps" data-props="{"items":[{"title":"Pick a block","text":"Tap + in the text and choose one."},{"title":"Fill it in","text":"The preview updates as you type."},{"title":"Save","text":"The editor checks the page and publishes it."}]}"></div>
|
|
39
|
+
|
|
40
|
+
## Checklist
|
|
41
|
+
|
|
42
|
+
Quick points with a check mark.
|
|
43
|
+
|
|
44
|
+
<div data-block="checklist" data-props="{"items":["Works on every phone","Light and dark mode","Photos sized for every screen","No tracking before consent"]}"></div>
|
|
45
|
+
|
|
46
|
+
## List
|
|
47
|
+
|
|
48
|
+
Rows under each other, as your theme draws a list, or each on its own surface.
|
|
49
|
+
|
|
50
|
+
<div data-block="list" data-props="{"items":[{"icon":"book-open","title":"Blocks","text":"Every block a page can be built from.","href":"/blocks/"},{"icon":"lightbulb","title":"App store","text":"Apps and themes you install with one tap.","href":"/app-store/"},{"icon":"info","title":"About","text":"What the editor is built on.","href":"/about/"}]}"></div>
|
|
51
|
+
|
|
52
|
+
<div data-block="list" data-props="{"design":"segmented","items":[{"icon":"clock","title":"Monday to Friday","text":"9 am to 5 pm"},{"icon":"coffee","title":"Saturday","text":"10 am to 2 pm"},{"icon":"door-open","title":"Sunday","text":"Closed"}]}"></div>
|
|
53
|
+
|
|
54
|
+
## Accordion
|
|
55
|
+
|
|
56
|
+
Topics that unfold with a short summary and a link to the full page.
|
|
57
|
+
|
|
58
|
+
<div data-block="accordion" data-props="{"items":[{"label":"Blocks","href":"/blocks/","text":"Every block a page can be built from."},{"label":"App store","href":"/app-store/","text":"Apps and themes you install with one tap.","more":[{"label":"Get started","href":"/get-started/"}]},{"label":"Morpheme","href":"/about/","text":"What the editor is built on."}]}"></div>
|
|
59
|
+
|
|
60
|
+
## Questions and answers
|
|
61
|
+
|
|
62
|
+
Questions that unfold to reveal the answer, ready for Google to show in search results.
|
|
63
|
+
|
|
64
|
+
<div data-block="faq" data-props="{"items":[{"question":"Can I use a block more than once on a page?","answer":"Yes. Each copy has its own content."},{"question":"Can I turn a block off?","answer":"Yes, under Block settings. It can’t be added again until you turn it back on."}]}"></div>
|
|
65
|
+
|
|
66
|
+
## Price cards
|
|
67
|
+
|
|
68
|
+
Up to four plans side by side, with what’s included and a button.
|
|
69
|
+
|
|
70
|
+
<div data-block="pricecards" data-props="{"items":[{"name":"Open source","price":"Free","text":"Run Morpheme on your own Cloudflare account.","features":["The editor and the standard theme","MIT license","Your own GitHub repository"],"buttons":[{"label":"Get started","to":"page","href":"/get-started/","kind":"outlined"}]},{"name":"With apps","price":"Custom","text":"Your site plus apps and themes from the app store.","features":["Everything in Open source","Apps and themes","Updates with release notes"],"buttons":[{"label":"Browse apps","to":"page","href":"/app-store/","kind":"filled"}],"featured":true,"badge":"Popular"}]}"></div>
|
|
71
|
+
|
|
72
|
+
## Testimonials
|
|
73
|
+
|
|
74
|
+
Quotes from the Testimonials list, as a carousel or a list. These are samples.
|
|
75
|
+
|
|
76
|
+
<div data-block="testimonials" data-props="{"layout":"list","show":"all"}"></div>
|
|
77
|
+
|
|
78
|
+
## Notice
|
|
79
|
+
|
|
80
|
+
A message that stands out, and can disappear on its own on a date you set.
|
|
81
|
+
|
|
82
|
+
<div data-block="notice" data-props="{"text":"**Holiday hours:** we’re closed December 24–26. Notices like this one can expire on their own."}"></div>
|
|
83
|
+
|
|
84
|
+
## Link collection
|
|
85
|
+
|
|
86
|
+
Pages grouped by topic.
|
|
87
|
+
|
|
88
|
+
<div data-block="links" data-props="{"groups":[{"title":"Product","href":"/about/","paths":["/about/","/blocks/","/app-store/"]},{"title":"Getting started","href":"/get-started/","paths":["/get-started/","/contact/"]}]}"></div>
|
|
89
|
+
|
|
90
|
+
## Posts
|
|
91
|
+
|
|
92
|
+
The newest posts, a random few or the ones you choose, with a link to the rest.
|
|
93
|
+
|
|
94
|
+
<div data-block="posts" data-props="{"show":"picked","picked":["build-a-page-from-blocks","switch-themes-without-losing-anything","colors-everyone-can-read"],"link":"design"}"></div>
|
|
95
|
+
|
|
96
|
+
## And a few more
|
|
97
|
+
|
|
98
|
+
The Banner at the top of the home page, every post on the blog page, and the Cookie list in the privacy policy. The Video block plays YouTube and Vimeo videos, loading nothing from them until a visitor presses play.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Blog"
|
|
3
|
-
seoTitle: "Blog | Morpheme"
|
|
4
|
-
seoDescription: "Tips on editing, design, SEO, apps and security for websites built with Morpheme."
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Blog
|
|
8
|
-
|
|
9
|
-
Tips and ideas for running your own website: editing, design, SEO, apps and security.
|
|
10
|
-
|
|
11
|
-
<div data-block="posts" data-props="{"show":"all","design":"featured"}"></div>
|
|
1
|
+
---
|
|
2
|
+
title: "Blog"
|
|
3
|
+
seoTitle: "Blog | Morpheme"
|
|
4
|
+
seoDescription: "Tips on editing, design, SEO, apps and security for websites built with Morpheme."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Blog
|
|
8
|
+
|
|
9
|
+
Tips and ideas for running your own website: editing, design, SEO, apps and security.
|
|
10
|
+
|
|
11
|
+
<div data-block="posts" data-props="{"show":"all","design":"featured"}"></div>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Contact"
|
|
3
|
-
description: "Get in touch with Morpheme."
|
|
4
|
-
seoTitle: "Contact | Morpheme"
|
|
5
|
-
seoDescription: "Questions about Morpheme, the app store or themes? Call or email us."
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Contact
|
|
9
|
-
|
|
10
|
-
Questions about the editor, the app store or themes? We’d love to hear from you.
|
|
11
|
-
|
|
12
|
-
<div data-block="points" data-props="{"items":[{"icon":"phone","title":"Call","text":"+1 555 010 0199, weekdays 9 a.m. to 4 p.m."},{"icon":"envelope-simple","title":"Email","text":"hello@morpheme.example. We reply within one business day."},{"icon":"map-pin","title":"Visit","text":"1 Example Street, 12345 Exampleville."}]}"></div>
|
|
13
|
-
|
|
14
|
-
<div data-block="buttons" data-props="{"items":[{"label":"","to":"phone","kind":"filled","icon":"phone"}]}"></div>
|
|
15
|
-
|
|
16
|
-
<div data-block="faq" data-props="{"items":[{"question":"Is this a real company?","answer":"No. This is Morpheme’s demo site, with made-up contact details, so you can see how a site looks in every theme."}]}"></div>
|
|
1
|
+
---
|
|
2
|
+
title: "Contact"
|
|
3
|
+
description: "Get in touch with Morpheme."
|
|
4
|
+
seoTitle: "Contact | Morpheme"
|
|
5
|
+
seoDescription: "Questions about Morpheme, the app store or themes? Call or email us."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Contact
|
|
9
|
+
|
|
10
|
+
Questions about the editor, the app store or themes? We’d love to hear from you.
|
|
11
|
+
|
|
12
|
+
<div data-block="points" data-props="{"items":[{"icon":"phone","title":"Call","text":"+1 555 010 0199, weekdays 9 a.m. to 4 p.m."},{"icon":"envelope-simple","title":"Email","text":"hello@morpheme.example. We reply within one business day."},{"icon":"map-pin","title":"Visit","text":"1 Example Street, 12345 Exampleville."}]}"></div>
|
|
13
|
+
|
|
14
|
+
<div data-block="buttons" data-props="{"items":[{"label":"","to":"phone","kind":"filled","icon":"phone"}]}"></div>
|
|
15
|
+
|
|
16
|
+
<div data-block="faq" data-props="{"items":[{"question":"Is this a real company?","answer":"No. This is Morpheme’s demo site, with made-up contact details, so you can see how a site looks in every theme."}]}"></div>
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Get started"
|
|
3
|
-
description: "How to set up a website with Morpheme."
|
|
4
|
-
seoTitle: "Get started | Morpheme"
|
|
5
|
-
seoDescription: "Set up your website with Morpheme: your own GitHub repository, hosting on Cloudflare and the editor at /editor/."
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Get started
|
|
9
|
-
|
|
10
|
-
You can have a site you edit yourself up and running in an afternoon.
|
|
11
|
-
|
|
12
|
-
<div data-block="steps" data-props="{"items":[{"title":"Your repository","text":"Your site gets its own repository on GitHub, with Morpheme installed from npm (@morphemecms/cms)."},{"title":"Your hosting","text":"Cloudflare builds your site every time you save and serves it worldwide."},{"title":"Your editor","text":"Open /editor/ on your site, sign in with GitHub, and make your first change."}]}"></div>
|
|
13
|
-
|
|
14
|
-
<div data-block="checklist" data-props="{"heading":"What you’ll need","items":["A free GitHub account","A free Cloudflare account","A domain name, if you want your own address"]}"></div>
|
|
15
|
-
|
|
16
|
-
## Questions?
|
|
17
|
-
|
|
18
|
-
We’re happy to help.
|
|
19
|
-
|
|
20
|
-
<div data-block="buttons" data-props="{"items":[{"label":"","to":"phone","kind":"filled","icon":"phone"},{"label":"Contact us","to":"page","href":"/contact/","kind":"outlined","icon":"envelope-simple"}]}"></div>
|
|
1
|
+
---
|
|
2
|
+
title: "Get started"
|
|
3
|
+
description: "How to set up a website with Morpheme."
|
|
4
|
+
seoTitle: "Get started | Morpheme"
|
|
5
|
+
seoDescription: "Set up your website with Morpheme: your own GitHub repository, hosting on Cloudflare and the editor at /editor/."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Get started
|
|
9
|
+
|
|
10
|
+
You can have a site you edit yourself up and running in an afternoon.
|
|
11
|
+
|
|
12
|
+
<div data-block="steps" data-props="{"items":[{"title":"Your repository","text":"Your site gets its own repository on GitHub, with Morpheme installed from npm (@morphemecms/cms)."},{"title":"Your hosting","text":"Cloudflare builds your site every time you save and serves it worldwide."},{"title":"Your editor","text":"Open /editor/ on your site, sign in with GitHub, and make your first change."}]}"></div>
|
|
13
|
+
|
|
14
|
+
<div data-block="checklist" data-props="{"heading":"What you’ll need","items":["A free GitHub account","A free Cloudflare account","A domain name, if you want your own address"]}"></div>
|
|
15
|
+
|
|
16
|
+
## Questions?
|
|
17
|
+
|
|
18
|
+
We’re happy to help.
|
|
19
|
+
|
|
20
|
+
<div data-block="buttons" data-props="{"items":[{"label":"","to":"phone","kind":"filled","icon":"phone"},{"label":"Contact us","to":"page","href":"/contact/","kind":"outlined","icon":"envelope-simple"}]}"></div>
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Home"
|
|
3
|
-
seoTitle: "Morpheme | The website editor you’ll actually enjoy"
|
|
4
|
-
seoDescription: "Edit pages, posts and photos from any browser, even your phone. Every change is checked, saved as a version you can restore, and live a minute later."
|
|
5
|
-
keyword: "Morpheme"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Your website, finally easy to change
|
|
9
|
-
|
|
10
|
-
Edit pages, posts and photos from any browser, even your phone.
|
|
11
|
-
|
|
12
|
-
Make a change, tap Save, and it’s live about a minute later: checked, backed up and fast.
|
|
13
|
-
|
|
14
|
-

|
|
15
|
-
|
|
16
|
-
<div data-block="hero" data-props="{"text":"<div data-block=\"buttons\" data-props=\"{&quot;items&quot;:[{&quot;label&quot;:&quot;&quot;,&quot;to&quot;:&quot;booking&quot;,&quot;kind&quot;:&quot;filled&quot;,&quot;icon&quot;:&quot;arrow-right&quot;},{&quot;label&quot;:&quot;See what it can do&quot;,&quot;to&quot;:&quot;page&quot;,&quot;href&quot;:&quot;/blocks/&quot;,&quot;kind&quot;:&quot;outlined&quot;}]}\"></div>\n\nFree and open source under the MIT license."}"></div>
|
|
17
|
-
|
|
18
|
-
<div data-block="points" data-props="{"eyebrow":"Why Morpheme","heading":"Everything you need, nothing you don’t","intro":"The editor takes care of the careful work, so you can focus on what you want to say.","items":[{"icon":"phone","title":"Edit from anywhere","text":"Works in any browser and installs on your phone’s home screen like an app."},{"icon":"lightbulb","title":"Build with blocks","text":"Cards, steps, FAQs, price tables and more, styled to match your site automatically."},{"icon":"book-open","title":"Never lose a thing","text":"Every save is a version you can restore with one tap. Deleted files come back too."},{"icon":"lifebuoy","title":"Private by default","text":"No tracking cookies until visitors say yes, and a strict security policy on every page."}]}"></div>
|
|
19
|
-
|
|
20
|
-
<div data-block="cards" data-props="{"design":"image","eyebrow":"Take a closer look","heading":"Grows with your business","items":[{"image":"/images/uploads/2026/10/editor-page.webp","title":"Blocks","text":"Thirteen building blocks for pages that look designed, not assembled.","href":"/blocks/"},{"image":"/images/uploads/2026/10/andromeda.webp","title":"App store","text":"Add booking, newsletters and more in one tap, and remove them just as easily.","href":"/app-store/"},{"image":"/images/uploads/2026/10/editor-themes.webp","title":"Themes","text":"Change the whole look of your site and keep every word and photo.","href":"/switch-themes-without-losing-anything/"}]}"></div>
|
|
21
|
-
|
|
22
|
-
<div data-block="steps" data-props="{"eyebrow":"Get started","heading":"Live in three steps","intro":"No servers to manage and nothing to install on your computer.","items":[{"title":"Create your site","text":"Your site gets its own repository on GitHub and is hosted on Cloudflare."},{"title":"Sign in","text":"Open /editor/ on your site and sign in with your GitHub account."},{"title":"Publish","text":"Write, add photos and blocks, and tap Save. Your site updates on its own."}]}"></div>
|
|
23
|
-
|
|
24
|
-
<div data-block="posts" data-props="{"eyebrow":"From the blog","heading":"Tips and ideas","show":"categories","categories":[],"count":"3","order":"newest"}"></div>
|
|
25
|
-
|
|
26
|
-
<div data-block="faq" data-props="{"eyebrow":"FAQ","heading":"Questions, answered","items":[{"question":"Do I need to know how to code?","answer":"No. Everything you change day to day happens in the editor: pages, posts, photos, menus, colors and settings."},{"question":"What does it cost?","answer":"Morpheme is free and open source under the MIT license. You only need free accounts on GitHub and Cloudflare. See [Get started](/get-started/)."},{"question":"Can I break my site?","answer":"The editor checks every page before it saves, and every save can be restored under Earlier versions."},{"question":"Do I own my content?","answer":"Yes. Your pages and posts are plain files in your own GitHub repository, so you can take them anywhere."}]}"></div>
|
|
1
|
+
---
|
|
2
|
+
title: "Home"
|
|
3
|
+
seoTitle: "Morpheme | The website editor you’ll actually enjoy"
|
|
4
|
+
seoDescription: "Edit pages, posts and photos from any browser, even your phone. Every change is checked, saved as a version you can restore, and live a minute later."
|
|
5
|
+
keyword: "Morpheme"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Your website, finally easy to change
|
|
9
|
+
|
|
10
|
+
Edit pages, posts and photos from any browser, even your phone.
|
|
11
|
+
|
|
12
|
+
Make a change, tap Save, and it’s live about a minute later: checked, backed up and fast.
|
|
13
|
+
|
|
14
|
+

|
|
15
|
+
|
|
16
|
+
<div data-block="hero" data-props="{"text":"<div data-block=\"buttons\" data-props=\"{&quot;items&quot;:[{&quot;label&quot;:&quot;&quot;,&quot;to&quot;:&quot;booking&quot;,&quot;kind&quot;:&quot;filled&quot;,&quot;icon&quot;:&quot;arrow-right&quot;},{&quot;label&quot;:&quot;See what it can do&quot;,&quot;to&quot;:&quot;page&quot;,&quot;href&quot;:&quot;/blocks/&quot;,&quot;kind&quot;:&quot;outlined&quot;}]}\"></div>\n\nFree and open source under the MIT license."}"></div>
|
|
17
|
+
|
|
18
|
+
<div data-block="points" data-props="{"eyebrow":"Why Morpheme","heading":"Everything you need, nothing you don’t","intro":"The editor takes care of the careful work, so you can focus on what you want to say.","items":[{"icon":"phone","title":"Edit from anywhere","text":"Works in any browser and installs on your phone’s home screen like an app."},{"icon":"lightbulb","title":"Build with blocks","text":"Cards, steps, FAQs, price tables and more, styled to match your site automatically."},{"icon":"book-open","title":"Never lose a thing","text":"Every save is a version you can restore with one tap. Deleted files come back too."},{"icon":"lifebuoy","title":"Private by default","text":"No tracking cookies until visitors say yes, and a strict security policy on every page."}]}"></div>
|
|
19
|
+
|
|
20
|
+
<div data-block="cards" data-props="{"design":"image","eyebrow":"Take a closer look","heading":"Grows with your business","items":[{"image":"/images/uploads/2026/10/editor-page.webp","title":"Blocks","text":"Thirteen building blocks for pages that look designed, not assembled.","href":"/blocks/"},{"image":"/images/uploads/2026/10/andromeda.webp","title":"App store","text":"Add booking, newsletters and more in one tap, and remove them just as easily.","href":"/app-store/"},{"image":"/images/uploads/2026/10/editor-themes.webp","title":"Themes","text":"Change the whole look of your site and keep every word and photo.","href":"/switch-themes-without-losing-anything/"}]}"></div>
|
|
21
|
+
|
|
22
|
+
<div data-block="steps" data-props="{"eyebrow":"Get started","heading":"Live in three steps","intro":"No servers to manage and nothing to install on your computer.","items":[{"title":"Create your site","text":"Your site gets its own repository on GitHub and is hosted on Cloudflare."},{"title":"Sign in","text":"Open /editor/ on your site and sign in with your GitHub account."},{"title":"Publish","text":"Write, add photos and blocks, and tap Save. Your site updates on its own."}]}"></div>
|
|
23
|
+
|
|
24
|
+
<div data-block="posts" data-props="{"eyebrow":"From the blog","heading":"Tips and ideas","show":"categories","categories":[],"count":"3","order":"newest"}"></div>
|
|
25
|
+
|
|
26
|
+
<div data-block="faq" data-props="{"eyebrow":"FAQ","heading":"Questions, answered","items":[{"question":"Do I need to know how to code?","answer":"No. Everything you change day to day happens in the editor: pages, posts, photos, menus, colors and settings."},{"question":"What does it cost?","answer":"Morpheme is free and open source under the MIT license. You only need free accounts on GitHub and Cloudflare. See [Get started](/get-started/)."},{"question":"Can I break my site?","answer":"The editor checks every page before it saves, and every save can be restored under Earlier versions."},{"question":"Do I own my content?","answer":"Yes. Your pages and posts are plain files in your own GitHub repository, so you can take them anywhere."}]}"></div>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Page not found"
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Lost in space
|
|
6
|
-
|
|
7
|
-
This page may have moved, or the address may have a typo. Try one of these instead.
|
|
8
|
-
|
|
9
|
-

|
|
10
|
-
|
|
11
|
-
<div data-block="links" data-props="{"groups":[{"title":"Popular pages","paths":["/blocks/","/app-store/","/about/","/get-started/","/contact/"]}]}"></div>
|
|
1
|
+
---
|
|
2
|
+
title: "Page not found"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Lost in space
|
|
6
|
+
|
|
7
|
+
This page may have moved, or the address may have a typo. Try one of these instead.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
<div data-block="links" data-props="{"groups":[{"title":"Popular pages","paths":["/blocks/","/app-store/","/about/","/get-started/","/contact/"]}]}"></div>
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Privacy policy"
|
|
3
|
-
description: "What this site stores and which cookies it sets."
|
|
4
|
-
seoTitle: "Privacy policy | Morpheme"
|
|
5
|
-
seoDescription: "What the Morpheme demo stores about you, and which cookies it sets."
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Privacy policy
|
|
9
|
-
|
|
10
|
-
This is Morpheme’s demo site. It doesn’t store anything about you, and it sets no analytics or advertising cookies.
|
|
11
|
-
|
|
12
|
-
## When you email us
|
|
13
|
-
|
|
14
|
-
We keep your email and message while we’re in touch, then delete them. We never share them.
|
|
15
|
-
|
|
16
|
-
## Cookies
|
|
17
|
-
|
|
18
|
-
If an app that measures visits or shows ads is installed, the cookie banner asks first, and the app’s cookies are listed below.
|
|
19
|
-
|
|
20
|
-
<div data-block="cookies"></div>
|
|
21
|
-
|
|
22
|
-
## Your rights
|
|
23
|
-
|
|
24
|
-
You can always ask what we’ve stored about you, and ask us to correct or delete it. Email hello@morpheme.example.
|
|
1
|
+
---
|
|
2
|
+
title: "Privacy policy"
|
|
3
|
+
description: "What this site stores and which cookies it sets."
|
|
4
|
+
seoTitle: "Privacy policy | Morpheme"
|
|
5
|
+
seoDescription: "What the Morpheme demo stores about you, and which cookies it sets."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Privacy policy
|
|
9
|
+
|
|
10
|
+
This is Morpheme’s demo site. It doesn’t store anything about you, and it sets no analytics or advertising cookies.
|
|
11
|
+
|
|
12
|
+
## When you email us
|
|
13
|
+
|
|
14
|
+
We keep your email and message while we’re in touch, then delete them. We never share them.
|
|
15
|
+
|
|
16
|
+
## Cookies
|
|
17
|
+
|
|
18
|
+
If an app that measures visits or shows ads is installed, the cookie banner asks first, and the app’s cookies are listed below.
|
|
19
|
+
|
|
20
|
+
<div data-block="cookies"></div>
|
|
21
|
+
|
|
22
|
+
## Your rights
|
|
23
|
+
|
|
24
|
+
You can always ask what we’ve stored about you, and ask us to correct or delete it. Email hello@morpheme.example.
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
{
|
|
2
|
-
"testimonials": {
|
|
3
|
-
"more": "Read more",
|
|
4
|
-
"less": "Show less"
|
|
5
|
-
},
|
|
6
|
-
"cards": {
|
|
7
|
-
"more": "Learn more"
|
|
8
|
-
},
|
|
9
|
-
"buttons": {
|
|
10
|
-
"items": [
|
|
11
|
-
{
|
|
12
|
-
"label": "",
|
|
13
|
-
"to": "booking",
|
|
14
|
-
"kind": "filled",
|
|
15
|
-
"icon": "arrow-right"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"label": "",
|
|
19
|
-
"to": "phone",
|
|
20
|
-
"kind": "outlined",
|
|
21
|
-
"icon": "phone"
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"testimonials": {
|
|
3
|
+
"more": "Read more",
|
|
4
|
+
"less": "Show less"
|
|
5
|
+
},
|
|
6
|
+
"cards": {
|
|
7
|
+
"more": "Learn more"
|
|
8
|
+
},
|
|
9
|
+
"buttons": {
|
|
10
|
+
"items": [
|
|
11
|
+
{
|
|
12
|
+
"label": "",
|
|
13
|
+
"to": "booking",
|
|
14
|
+
"kind": "filled",
|
|
15
|
+
"icon": "arrow-right"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"label": "",
|
|
19
|
+
"to": "phone",
|
|
20
|
+
"kind": "outlined",
|
|
21
|
+
"icon": "phone"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{
|
|
2
|
-
"heading": "Ready when you are",
|
|
3
|
-
"text": "Set up your site in an afternoon, and make your first change from your phone tonight.",
|
|
4
|
-
"book": "Get started",
|
|
5
|
-
"call": "Call us"
|
|
6
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"heading": "Ready when you are",
|
|
3
|
+
"text": "Set up your site in an afternoon, and make your first change from your phone tonight.",
|
|
4
|
+
"book": "Get started",
|
|
5
|
+
"call": "Call us"
|
|
6
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Apps",
|
|
3
|
-
"blogCategory": true,
|
|
4
|
-
"seoTitle": "Apps | Morpheme",
|
|
5
|
-
"seoDescription": "The app store and what apps add to a website."
|
|
6
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "Apps",
|
|
3
|
+
"blogCategory": true,
|
|
4
|
+
"seoTitle": "Apps | Morpheme",
|
|
5
|
+
"seoDescription": "The app store and what apps add to a website."
|
|
6
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Design",
|
|
3
|
-
"blogCategory": true,
|
|
4
|
-
"seoTitle": "Design | Morpheme",
|
|
5
|
-
"seoDescription": "Themes, colors and blocks."
|
|
6
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "Design",
|
|
3
|
+
"blogCategory": true,
|
|
4
|
+
"seoTitle": "Design | Morpheme",
|
|
5
|
+
"seoDescription": "Themes, colors and blocks."
|
|
6
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Editing",
|
|
3
|
-
"blogCategory": true,
|
|
4
|
-
"seoTitle": "Editing | Morpheme",
|
|
5
|
-
"seoDescription": "Writing, publishing and scheduling with Morpheme."
|
|
6
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "Editing",
|
|
3
|
+
"blogCategory": true,
|
|
4
|
+
"seoTitle": "Editing | Morpheme",
|
|
5
|
+
"seoDescription": "Writing, publishing and scheduling with Morpheme."
|
|
6
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Security",
|
|
3
|
-
"blogCategory": true,
|
|
4
|
-
"seoTitle": "Security | Morpheme",
|
|
5
|
-
"seoDescription": "How Morpheme keeps your site and your visitors safe."
|
|
6
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "Security",
|
|
3
|
+
"blogCategory": true,
|
|
4
|
+
"seoTitle": "Security | Morpheme",
|
|
5
|
+
"seoDescription": "How Morpheme keeps your site and your visitors safe."
|
|
6
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "SEO",
|
|
3
|
-
"blogCategory": true,
|
|
4
|
-
"seoTitle": "SEO | Morpheme",
|
|
5
|
-
"seoDescription": "Getting found on Google: titles, descriptions, links and redirects."
|
|
6
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "SEO",
|
|
3
|
+
"blogCategory": true,
|
|
4
|
+
"seoTitle": "SEO | Morpheme",
|
|
5
|
+
"seoDescription": "Getting found on Google: titles, descriptions, links and redirects."
|
|
6
|
+
}
|