-
Notifications
You must be signed in to change notification settings - Fork 0
21 improve the landing page to clearly show what the company does #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
6b5e2cf
8299859
a2c0954
7c12dda
edf3dcd
014254d
52c9616
086fdf1
337f96b
38f807e
af69ca6
ec11c5b
1f4735f
1381de8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| "website": patch | ||
| --- | ||
|
|
||
| Improve the landing page to clearly show what the company does |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -120,6 +120,26 @@ | |
| revolve var(--speed) linear infinite, | ||
| hide var(--speed) linear infinite; | ||
| animation-delay: calc(var(--speed) * -1 * (var(--sibling-index) - 1) / var(--sibling-count)); | ||
| position: relative; | ||
| } | ||
|
|
||
| :global(.orbit):hover > :global(*) { | ||
| animation-play-state: paused; | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice! I didn't know that this can be done like this. |
||
| } | ||
|
|
||
| :global(.orbit) > :global(*):hover::after { | ||
| content: attr(data-label); | ||
| position: absolute; | ||
| top: 100%; | ||
| left: 50%; | ||
| transform: translateX(-50%); | ||
| font-size: 0.9rem; | ||
| color: white; | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please use |
||
| background: rgba(0, 0, 0, 0.6); | ||
| padding: 0.2rem 0.5rem; | ||
| border-radius: 0.5rem; | ||
| white-space: nowrap; | ||
| pointer-events: none; | ||
| } | ||
|
|
||
| @container (width > 40rem) { | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -37,6 +37,7 @@ const productsCollection = defineCollection({ | |
| z.object({ | ||
| title: z.string(), | ||
| summary: z.string(), | ||
| buttonText: z.string(), | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| }), | ||
| ), | ||
| }); | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,7 @@ | ||
| --- | ||
| title: Criteria Catalog | ||
| summary: Der Criteria Catalog ist ein flexibles und anpassbares System zur Verwaltung von Kriterien für verschiedene Anwendungen. | ||
| buttonText: Mehr erfahren | ||
| --- | ||
|
|
||
| Der Criteria Catalog ist ein flexibles und anpassbares System zur Verwaltung von Kriterien für verschiedene Anwendungen. Es ermöglicht die einfache Erstellung, Bearbeitung und Organisation von Kriterien, die in verschiedenen Kontexten verwendet werden können. Durch seine modulare Struktur kann der Criteria Catalog leicht erweitert und angepasst werden, um spezifische Anforderungen zu erfüllen. Ideal für Prüfungsorganisationen, Bildungsinstitutionen und Unternehmen, die ein effektives Kriteriensystem benötigen. Der Criteria Catalog unterstützt verschiedene Formate und Standards, um eine breite Anwendbarkeit zu gewährleisten. Mit seiner benutzerfreundlichen Oberfläche und leistungsstarken Funktionen ist er ein unverzichtbares Werkzeug für die Verwaltung von Kriterien in modernen Anwendungen. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,7 @@ | ||
| --- | ||
| title: Criteria Catalog | ||
| title: "Criteria Catalog 🗂️" | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why the English people are allowed to see emojis but the German speaking people arent? |
||
| summary: The Criteria Catalog is a flexible and customizable system for managing criteria across a variety of use cases. | ||
| buttonText: Learn More | ||
| --- | ||
|
|
||
| The Criteria Catalog is a flexible and customizable system for managing criteria across different applications. It enables easy creation, editing, and organization of criteria that can be used in multiple contexts. Thanks to its modular structure, the Criteria Catalog can be easily extended and adapted to meet specific requirements. It is ideal for examination boards, educational institutions, and companies that need an effective criteria management system. The Criteria Catalog supports various formats and standards to ensure broad applicability. With its user‑friendly interface and powerful features, it is an essential tool for managing criteria in modern applications. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,7 @@ | ||
| --- | ||
| title: Sparkium | ||
| title: "Sparkium 🧩" | ||
| summary: Sparkium is a modern data schema for storing eLearning content. | ||
| buttonText: View Schema | ||
| --- | ||
|
|
||
| With Sparkium, you can store eLearning content in a modern data schema. Based on text-based formats like Markdown and using a structured file system, it is accessible, easy to edit, and versionable. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,7 @@ | ||
| --- | ||
| title: SparkLink | ||
| title: "SparkLink 🔁" | ||
| summary: SparkLink synchronizes eLearning content between sources like Git and LMS such as Moodle. | ||
| buttonText: Try Demo | ||
| --- | ||
|
|
||
| With SparkLink, you can synchronize eLearning content between sources like Git and learning management systems (LMS) such as Moodle. This helps in managing course materials. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,6 +6,7 @@ | |
| --color-white-97: hsl(from var(--color-white) h s calc(l * 0.97)); | ||
| --color-white: #f9f9f9; | ||
| --color-black: #333333; | ||
| --color-transition: #555; | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You see the other colors are defined in another style. Please adapt. |
||
|
|
||
| --size-font-quot: 3rem; | ||
| --size-font-huge: 1.5rem; | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -28,9 +28,6 @@ const { ...attributes } = Astro.props; | |
| background-position: | ||
| 0px 0px, | ||
| 0px 0px; | ||
| background-image: | ||
| radial-gradient(60% 100% at 25% 75%, rgb(from var(--color-primary) r g b / 0.3) 0%, transparent 100%), | ||
| radial-gradient(60% 100% at 75% 25%, rgb(from var(--color-secondary) r g b / 0.3) 0%, transparent 100%); | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| } | ||
|
|
||
| .wrapper { | ||
|
|
@@ -39,7 +36,11 @@ const { ...attributes } = Astro.props; | |
| box-sizing: border-box; | ||
| width: 100%; | ||
| background-color: rgb(from var(--color-white) r g b / 0.5); | ||
| border: var(--border-massive); | ||
| border-radius: 16px; | ||
| box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); | ||
| backdrop-filter: blur(5px); | ||
| -webkit-backdrop-filter: blur(5px); | ||
| border: 1px solid rgba(255, 255, 255, 0.4); | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please revert this. This is not necessary to change now. |
||
| border-radius: var(--size-border-radius-large); | ||
| padding: var(--size-gap-large); | ||
| } | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -41,7 +41,7 @@ const products = i18nProps(collection, { | |
| <p slot="description">{product.data.summary}</p> | ||
| <Fragment slot="actions"> | ||
| <a href={product.translatedPath} class="button primary"> | ||
| {messages.action({ product: product.data.title })} | ||
| {messages.action({ product: product.data.title.replace(/(\p{Extended_Pictographic}\uFE0F?)$/gu, "") })} | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why this hack is necessary?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Because I added emoji in the product.data.title, and I think the emojis don't need to be displayed in the buttons so I used regex to remove the emoji from the title.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Then I suggest not to add the emoji to the title by default, but create another data field in the frontmatter for the emoji itself. When you want to add the emoji you can add it then. |
||
| </a> | ||
| </Fragment> | ||
| </Card> | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -25,10 +25,11 @@ import Contact from "../../layouts/groups/Contact.astro"; | |
| export const getStaticPaths = generateGetStaticIndexPaths("[...locale]"); | ||
|
|
||
| const messages = useI18n("src/pages/[...locale]/index.astro", { | ||
| spotlightTitle: "Empowers and Connects", | ||
| spotlightContent: "Join us in our mission to empower and connect the EdTech space with our products.", | ||
| spotlightActionConnect: "Connect", | ||
| spotlightActionEmpower: "Empower", | ||
| spotlightTitle: "Intelligent plugins in the field of education", | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What does the word plugin mean here? Why are they intelligent? I think we should revert to the previous one.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe we can come up with a better one but in my opinion the previous one is a bit confusing to read and understand, the words "empower" and "connect" are not so straightforward.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe:
|
||
| spotlightContent: | ||
| "We are committed to developing innovative tools that empower educators, students, and developers in the field of educational technology.", | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it's too long. Maybe try to optimize the existing one the make the message more clear? It can also be shortened: "Join our mission to empower and connect the EdTech space, by ..."?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this sentence "Join our mission to empower and connect the EdTech space" doesn't convey a clear message to people and might cause confusion
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is your proposal then? |
||
| spotlightActionConnect: "Connect With Us", | ||
| spotlightActionEmpower: "Explore Products", | ||
| spotlightActionEmpowerLink: "/products", | ||
| empowerTitle: "Products that empower", | ||
| connectTitle: "Connect with us", | ||
|
|
@@ -55,6 +56,9 @@ const products = i18nProps(collection, { | |
| <Spotlight id="spotlight"> | ||
| <h1 slot="title">{messages.spotlightTitle}</h1> | ||
| <p slot="content">{messages.spotlightContent}</p> | ||
| <p slot="content" id="transition"> | ||
| Our products make education smarter, simpler, and more connected. Scroll down to see how ↓ | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this makes the screen unnecessary cluttered and doesn't brings any value for the understanding. |
||
| </p> | ||
| <Fragment slot="actions"> | ||
| <a href={messages.spotlightActionEmpowerLink} class="button primary">{messages.spotlightActionEmpower}</a> | ||
| <a href="#connect" class="button">{messages.spotlightActionConnect}</a> | ||
|
|
@@ -63,15 +67,15 @@ const products = i18nProps(collection, { | |
| <Image slot="host" alt="Our logo as the orbiters host" src={LogoSquare} /> | ||
| <Fragment slot="orbits"> | ||
| <div class="orbit"> | ||
| <div>🎓</div> | ||
| <div>📚</div> | ||
| <div>💻</div> | ||
| <div>☁️</div> | ||
| <div>🧠</div> | ||
| <div>💬</div> | ||
| <div>🚀</div> | ||
| <div>💡</div> | ||
| <div>🧑🏫</div> | ||
| <div data-label="Education">🎓</div> | ||
| <div data-label="Books">📚</div> | ||
| <div data-label="Coding">💻</div> | ||
| <div data-label="Cloud">☁️</div> | ||
| <div data-label="Intelligence">🧠</div> | ||
| <div data-label="Message">💬</div> | ||
| <div data-label="Speed Up">🚀</div> | ||
| <div data-label="Solutions">💡</div> | ||
| <div data-label="Teaching">🧑🏫</div> | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I like this, but also the other orbit should get labels and it should be translated to german. I think to make it translatable there needs to be a well thought out solution. Just using nanostores i18n is wrong for this use case as it is content. |
||
| </div> | ||
| <div class="orbit"> | ||
| <Image alt="Logo of Moodle" src={MoodleLogo} /> | ||
|
|
@@ -96,7 +100,7 @@ const products = i18nProps(collection, { | |
| <h3>{product.data.title}</h3> | ||
| <p>{product.data.summary}</p> | ||
| <a href={product.translatedPath} class="button primary"> | ||
| {messages.spotlightActionEmpower} | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've the message |
||
| {product.data.buttonText} | ||
| </a> | ||
| </article> | ||
| )) | ||
|
|
@@ -137,6 +141,9 @@ const products = i18nProps(collection, { | |
| display: flex; | ||
| flex-direction: column; | ||
| gap: 1rem; | ||
| background-image: | ||
| radial-gradient(60% 100% at 75% 25%, rgb(from var(--color-primary) r g b / 0.3) 0%, transparent 100%), | ||
| radial-gradient(60% 100% at 25% 75%, rgb(from var(--color-secondary) r g b / 0.3) 0%, transparent 100%); | ||
| } | ||
|
|
||
| #spotlight, | ||
|
|
@@ -147,27 +154,17 @@ const products = i18nProps(collection, { | |
| justify-content: center; | ||
| min-height: 100vh; | ||
| background-size: 100% 100%; | ||
| background-position: | ||
| 0px 0px, | ||
| 0px 0px; | ||
| } | ||
|
|
||
| #spotlight { | ||
| background-image: | ||
| radial-gradient(60% 100% at 75% 25%, rgb(from var(--color-primary) r g b / 0.3) 0%, transparent 100%), | ||
| radial-gradient(60% 100% at 25% 75%, rgb(from var(--color-secondary) r g b / 0.3) 0%, transparent 100%); | ||
| background-image: rgba(255, 255, 255, 0.8); | ||
| border-radius: 16px; | ||
| box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); | ||
| backdrop-filter: blur(5px); | ||
| -webkit-backdrop-filter: blur(5px); | ||
| border: 1px solid rgba(255, 255, 255, 0.4); | ||
| } | ||
|
|
||
| #empower { | ||
| background-image: | ||
| radial-gradient(60% 100% at 25% 75%, rgb(from var(--color-primary) r g b / 0.3) 0%, transparent 100%), | ||
| radial-gradient(60% 100% at 75% 25%, rgb(from var(--color-secondary) r g b / 0.3) 0%, transparent 100%); | ||
| } | ||
|
|
||
| #connect { | ||
| background-image: | ||
| radial-gradient(60% 100% at 75% 75%, rgb(from var(--color-primary) r g b / 0.3) 0%, transparent 100%), | ||
| radial-gradient(60% 100% at 25% 25%, rgb(from var(--color-secondary) r g b / 0.3) 0%, transparent 100%); | ||
| #transition { | ||
| font-size: var(--size-font-small); | ||
| color: var(--color-transition); | ||
| } | ||
|
|
||
| #empower article { | ||
|
|
@@ -178,4 +175,52 @@ const products = i18nProps(collection, { | |
| width: fit-content; | ||
| } | ||
| } | ||
|
|
||
| #scroll-button { | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please make a separate component out of it (like Orbiter). |
||
| position: fixed; | ||
| bottom: var(--size-gap); | ||
| right: var(--size-gap-small); | ||
| cursor: pointer; | ||
| display: flex; | ||
| border: none; | ||
| animation: bounce 2s infinite; | ||
| background-color: transparent; | ||
| padding: var(--size-gap-large); | ||
| } | ||
|
|
||
| #scroll-button img { | ||
| height: 4rem; | ||
| transition: transform 0.3s ease; | ||
| } | ||
|
|
||
| #scroll-button:hover img { | ||
| transform: scale(1.5); | ||
| } | ||
|
|
||
| @keyframes bounce { | ||
| 0%, | ||
| 100% { | ||
| transform: translateY(0); | ||
| } | ||
| 50% { | ||
| transform: translateY(var(--size-gap-small)); | ||
| } | ||
| } | ||
| </style> | ||
|
|
||
| <script> | ||
| const scrollButton = document.getElementById("scroll-button")!; | ||
|
|
||
| const grids = Array.from(document.querySelectorAll<HTMLElement>("#empower, #connect")); | ||
| scrollButton.addEventListener("click", () => { | ||
| const scrollY = window.scrollY; | ||
| const nextGrid = grids.find((grid) => grid.offsetTop > scrollY); | ||
|
|
||
| if (nextGrid) { | ||
| nextGrid.scrollIntoView({ | ||
| behavior: "smooth", | ||
| block: "center", | ||
| }); | ||
| } | ||
| }); | ||
| </script> | ||

There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe https://github.com/unplugin/unplugin-icons could be used like we did in another project we did