diff --git a/src/components/Service/Morningstar/Header/index.jsx b/src/components/Service/Morningstar/Header/index.jsx new file mode 100644 index 0000000000..c086d44fce --- /dev/null +++ b/src/components/Service/Morningstar/Header/index.jsx @@ -0,0 +1,24 @@ +import Link from '@docusaurus/Link'; +import React from 'react'; +import styles from './styles.module.scss'; +import { LinkButton, ButtonContainer } from '/src/theme/Buttons'; + +export default function StudyHeader() { + return ( +
+
+
+
+ Case Study +

Building an Intelligence Engine

+
+

+ How Morningstar built a trustworthy, AI-driven financial data + platform with Weaviate +

+
+
+
+
+ ); +} diff --git a/src/components/Service/Morningstar/Header/styles.module.scss b/src/components/Service/Morningstar/Header/styles.module.scss new file mode 100644 index 0000000000..d28843b4e5 --- /dev/null +++ b/src/components/Service/Morningstar/Header/styles.module.scss @@ -0,0 +1,97 @@ +.box { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + text-align: left; + margin-bottom: 40px; + + span { + color: #61bb73; + font-size: 1.25rem; + font-weight: 400; + text-transform: uppercase; + } + + .logo { + background-image: url('/img/site/Morningstar.svg'); + background-size: contain; + background-repeat: no-repeat; + width: 12.09331rem; + height: 3.25rem; + flex-shrink: 0; + } + + h1 { + color: #ffffff; + font-size: 2.25rem; + font-weight: 700; + margin-bottom: 1rem; + width: 50%; + @media screen and (max-width: 900px) { + width: 100%; + } + } + + .headerBox { + width: 50%; + @media screen and (max-width: 900px) { + width: 100%; + } + + p { + color: #ffffff; + width: 80%; + @media screen and (max-width: 1000px) { + width: 100%; + } + } + } +} + +.buttonOutline { + border-radius: 0.3125rem; + border: 1px solid #130c49; + background: #f4f4f4; + padding: 9px; + color: #130c49; + text-align: center; + font-family: Inter; + font-size: 1rem; + font-style: normal; + font-weight: 400; + line-height: 157.33%; + transition: all 1s ease-out; +} +.buttonOutline:hover { + border-radius: 0.3125rem; + outline: 1px solid #130c49; + background: rgb(15, 0, 50); + color: #fff; + font-weight: 400; +} + +.headerSecurity { + background: #130c49; + background-image: url('/img/site/header-bg.svg'); + background-size: cover; + + @media screen and (max-width: 500px) { + background-image: url('/img/site/header-bg.svg'); + background-size: 100%; + background-position-y: bottom; + background-repeat: no-repeat; + } +} + +.topText { + color: #130c49; + text-align: center; + font-family: Plus Jakarta Sans; + font-size: 1.25rem; + font-style: normal; + font-weight: 400; + line-height: 120%; /* 1.5rem */ + text-transform: uppercase; + margin: 10px 0px; +} diff --git a/src/components/Service/Morningstar/Integrations/index.jsx b/src/components/Service/Morningstar/Integrations/index.jsx new file mode 100644 index 0000000000..40e01f91d6 --- /dev/null +++ b/src/components/Service/Morningstar/Integrations/index.jsx @@ -0,0 +1,37 @@ +import React from 'react'; +import { ButtonContainer } from '../../../../theme/Buttons'; +import styles from './styles.module.scss'; +import { LinkButton } from '/src/theme/Buttons'; +import Link from '@docusaurus/Link'; + +export default function Integrations() { + return ( +
+
+
+

+ Our team and community are here to support you at every stage of + your AI journey. +

+
+ + Get in Touch + + + Check our Services + +
+
+
+
+
+
+
+
+
+
+
+
+
+ ); +} diff --git a/src/components/Service/Morningstar/Integrations/styles.module.scss b/src/components/Service/Morningstar/Integrations/styles.module.scss new file mode 100644 index 0000000000..cc3ce98a01 --- /dev/null +++ b/src/components/Service/Morningstar/Integrations/styles.module.scss @@ -0,0 +1,556 @@ +[data-theme='light'] { + .box { + .left { + .inside { + .logoAI { + background-image: url('/img/site/openai-logo.png'); + } + .logoH { + background-image: url('/img/site/higgingface-logo.png'); + } + .logoJ { + background-image: url('/img/site/jina-logo.png'); + } + .logoD { + background-image: url('/img/site/deepset-logo.png'); + } + .logoCo { + background-image: url('/img/site/cohere-logo.png'); + } + .logoW { + background-image: url('/img/site/wp-solar-logo.png'); + } + .logoG { + background-image: url('/img/site/googleAI.png'); + } + .logoL { + background-image: url('/img/site/langchain-logo.png'); + } + .logoLa { + background-image: url('/img/site/lama-logo.png'); + } + } + } + } +} + +.integrationsSection { + background: #f5f5f5; +} + +.integrationsLogos { + display: flex; + flex-direction: row; + flex: 1; + justify-content: space-around; + overflow: hidden; + + @media screen and (max-width: 500px) { + padding: 9px; + height: 140px; + overflow: hidden; + } + + .logoBg { + border-radius: 0.9375rem; + border: 1px solid #130c49; + width: 14.375rem; + display: flex; + height: 5.9375rem; + flex-shrink: 0; + background: #fff; + box-shadow: 0px 24px 64px 0px rgba(22, 27, 45, 0.08); + align-items: center; + scroll-snap-align: center; + margin: 0 10px; + } + + .inside { + display: flex; + padding-bottom: 4rem; + + animation: scrollSide 40s linear infinite; + + @keyframes scrollSide { + 0% { + transform: translateX(50%); + } + 100% { + transform: translateX(-50%); + } + } + + .integrationsLogos:hover { + animation-play-state: paused; + } + + .logoAI { + width: 100%; + height: 2rem; + background-image: url('/img/site/openai-logo-light.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoH { + width: 100%; + height: 2rem; + background-image: url('/img/site/higgingface-logo-light.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoJ { + width: 100%; + height: 2rem; + background-image: url('/img/site/jina-logo-light.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoD { + width: 100%; + height: 2rem; + background-image: url('/img/site/deepset-logo-light.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoCo { + width: 100%; + height: 2rem; + background-image: url('/img/site/cohere-logo-light.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoW { + width: 100%; + height: 2rem; + background-image: url('/img/site/wp-solar-logo-light.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + + .logoG { + width: 100%; + height: 2rem; + background-image: url('/img/site/googleAI.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoL { + width: 100%; + height: 2rem; + background-image: url('/img/site/langchain-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoLa { + width: 100%; + height: 2rem; + background-image: url('/img/site/lama-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoGoogle { + width: 100%; + height: 2rem; + background-image: url('/img/site/google-logo.svg'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + + .logoHaystack { + width: 100%; + height: 2rem; + background-image: url('/img/site/haystack-logo.svg'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + + .logoStreamlit { + width: 100%; + height: 2rem; + background-image: url('/img/site/streamlit-logo.svg'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + } +} + +.integrationsLogos:hover { + .inside { + animation-play-state: paused; + } +} +.mobileIntegrations { + display: none !important; + + @media screen and (max-width: 500px) { + display: flex !important; + } +} + +.box { + display: flex; + flex-direction: row; + flex-wrap: wrap; + padding-top: 4rem; + + @media screen and (max-width: 580px) { + flex-direction: column-reverse; + } + .left { + display: flex; + flex-direction: column; + flex: 1; + gap: 30px; + justify-content: center; + + .inside { + display: flex; + + @media screen and (max-width: 500px) { + flex-direction: row; + gap: 20px; + display: flex; + } + + .logoAI { + width: 100%; + height: 2rem; + background-image: url('/img/site/openai-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoH { + width: 100%; + height: 2rem; + background-image: url('/img/site/higgingface-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoJ { + width: 100%; + height: 2rem; + background-image: url('/img/site/jina-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoD { + width: 100%; + height: 2rem; + background-image: url('/img/site/deepset-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoCo { + width: 100%; + height: 2rem; + background-image: url('/img/site/cohere-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoW { + width: 100%; + height: 2rem; + background-image: url('/img/site/wp-solar-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoG { + width: 100%; + height: 2rem; + background-image: url('/img/site/googleAI.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoL { + width: 100%; + height: 2rem; + background-image: url('/img/site/langchain-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + .logoLa { + width: 100%; + height: 2rem; + background-image: url('/img/site/lama-logo.png'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + } + } + } + .right { + display: flex; + flex-direction: row; + flex-wrap: wrap; + width: 60%; + + @media screen and (max-width: 768px) { + width: 100%; + } + } +} + +.boxes { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: wrap; + margin-bottom: 20px; +} + +.card { + display: flex; + flex-direction: column; + justify-content: space-around; + + width: 14.3125rem; + height: 19.75rem; + + background-color: #141f39; + margin: 1rem; + padding: 2rem; + + border-radius: 0.4375rem; + border-radius: 0.4375rem; + background: #fff; + box-shadow: 0px 24px 64px 0px rgba(22, 27, 45, 0.08); + + @media screen and (max-width: 600px) { + height: auto; + width: 100%; + } +} + +.longCard { + width: 92%; + display: flex; + flex-direction: column; + align-items: center; + height: 400px; + gap: 20px; + z-index: 1; + flex-wrap: nowrap; + background: #ffffff !important; + justify-content: center; + background-image: url('/img/site/home-page-bg-pattern.svg') !important; + background-size: cover !important; + + .cTextColor { + color: #130c49; + text-align: center; + font-family: Plus Jakarta Sans; + font-size: 1.5rem; + font-style: normal; + font-weight: 500; + line-height: 150%; /* 2.25rem */ + } + @media screen and (max-width: 1000px) { + height: auto; + min-height: 205px; + width: 100%; + } + + @media screen and (max-width: 500px) { + display: flex; + flex-direction: column; + } + + .contentDiv { + height: 100%; + width: 50%; + margin: 50px; + text-align: center; + + br { + display: none; + } + + @media screen and (max-width: 500px) { + width: 100%; + br { + display: inherit; + } + } + } +} + +.safetyTypeBottom { + width: 100%; + height: 186px; + background: #130c49; + margin-top: -200px; +} + +.longHead { + grid-template-columns: 1fr; +} + +.buttons { + gap: 20px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + justify-content: center; + + a { + height: 45px; + width: 200px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 0.25rem; + cursor: pointer; + text-decoration: none; + } + + .buttonGradient { + border-radius: 0.3125rem; + outline: 1px solid #130c49; + background: #61bd73; + transition: all 1s ease-out; + color: #130c49; + } + + .buttonGradient:hover { + border-radius: 0.3125rem; + outline: 1px solid #ffffff; + background: rgb(15, 0, 50); + color: #fff; + } + + .buttonOutline { + outline: 1px solid #130c49; + color: #130c49; + transition: all 1s ease-out; + background-color: #f5f5f5; + } + + .buttonOutline:hover { + outline: 1px solid #ffffff; + color: #fff; + transition: all 1s ease-out; + background-color: #130c49; + } +} + +.teamContainer { + display: flex; + flex-direction: column; + align-items: center; + gap: 40px; + + h3 { + color: #130c49; + text-align: center; + font-size: 1.625rem; + font-weight: 500; + line-height: 157.33%; /* 2.55663rem */ + width: 50%; + + @media screen and (max-width: 840px) { + width: 100%; + } + } +} + +.parentGrid { + display: grid; + grid-template-columns: repeat(4, 1fr); + grid-template-rows: repeat(2, 1fr); + grid-column-gap: 10px; + grid-row-gap: 10px; + width: 868px; + height: 353px; + + @media screen and (max-width: 840px) { + width: 100%; + } + + @media screen and (max-width: 500px) { + display: none; + } +} + +.imageGrid1 { + grid-area: 1 / 1 / 3 / 2; + background-image: url('/img/site/team-grid-01.png'); + background-size: cover; + + @media screen and (max-width: 840px) { + background-position-x: center; + } +} +.imageGrid2 { + grid-area: 1 / 2 / 2 / 3; + background-image: url('/img/site/team-grid-02.png'); + background-size: cover; + @media screen and (max-width: 840px) { + background-position-x: center; + } +} +.imageGrid3 { + grid-area: 2 / 2 / 3 / 3; + background-image: url('/img/site/team-grid-03.png'); + background-size: cover; + @media screen and (max-width: 640px) { + background-position-x: center; + } +} +.imageGrid4 { + grid-area: 1 / 3 / 2 / 4; + background-image: url('/img/site/team-grid-04.png'); + background-size: cover; + @media screen and (max-width: 640px) { + background-position-x: center; + } +} +.imageGrid5 { + grid-area: 1 / 4 / 2 / 5; + background-image: url('/img/site/team-grid-06.png'); + background-size: cover; + @media screen and (max-width: 640px) { + background-position-x: center; + } +} +.imageGrid6 { + grid-area: 2 / 3 / 3 / 5; + background-image: url('/img/site/team-grid-05.png'); + background-size: cover; + @media screen and (max-width: 640px) { + background-position-x: center; + } +} + +.mobileImage { + display: none; + background-image: url('/img/site/services-team-photo.png'); + background-size: cover; + width: 100%; + height: 630px; + + @media screen and (max-width: 500px) { + display: block; + } +} diff --git a/src/components/Service/Morningstar/Study/index.jsx b/src/components/Service/Morningstar/Study/index.jsx new file mode 100644 index 0000000000..d188b9935f --- /dev/null +++ b/src/components/Service/Morningstar/Study/index.jsx @@ -0,0 +1,151 @@ +import React from 'react'; +import styles from './styles.module.scss'; +import Link from '@docusaurus/Link'; + +export default function Study() { + return ( +
+
+
+
+

Summary

+

+ Morningstar chose Weaviate's vector database to build its highly + accurate and scalable Intelligence Engine Platform, offering users + reliable, AI-driven financial research tools and transparent, + dynamic document search capabilities. +

+

Challenge

+

+ Over the last 40 years, Morningstar amassed an extensive + collection of proprietary financial data. Morningstar has sought + to further empower investors that rely on its data by developing + an advanced research assistant AI application. According to + Benjamin Barrett, Morningstar’s Head of Technology, Research + Products, building a chatbot on that data “looks like magic, but + when you start peeling back the layers of the onion, you have to + ask, is it actually accurate? Is it pulling the latest, greatest, + most relevant data? Are our answers robust and complete?” +

+

+ {' '} + As his engineering team worked with Morningstar’s Quantitative + Research team to build their Intelligence Engine Platform, they + had to ensure an incredibly high level of accuracy in order to + maintain their users’ trust. “We want to have one single source of + truth. Our whole mission is to empower investor success. And the + way to do that is to give them reliable, trustworthy financial + data.” +

+ +

Why Weaviate

+

+ In early 2023, Morningstar saw early success in experiments with + LLMs and snippets of their own data. They quickly realized the + potential of using AI to harness decades of longform research + content and real-time data with RAG, and started their search for + the right vector database. +

+

Why Morningstar chose Weaviate:

+
    +
  • + Ease-of-use: Weaviate’s open-source database + was quick and easy for Morningstar to spin up locally in a + Docker container and start experimenting. +
  • +
  • + Data privacy and security: Flexible deployment + options and multi-tenant architecture allowed for strict data + privacy and security compliance. +
  • +
  • + Flexibility and scalability: Weaviate supported + a variety of use cases–from search engines to tailored AI + applications–and was able to handle large and diverse data sets. +
  • + +
  • + Support: Weaviate offered great support from + local development all the way to production.  +
  • +
+

Results

+

+ With Weaviate, Morningstar was able to build their{' '} + + Intelligence Engine Platform + + , a product which solves a challenge facing today’s financial + services firms: how to easily create and customize AI applications + built on a foundation of trusted financial data and research. The + Intelligence Engine also powers a variety of workflows, APIs, and + chat interfaces across Morningstar’s own product ecosystem – + including Mo, it’s investment research-assistant chatbot – for + both internal and external users. +

+
+
+
+
+
+
+

Driving Innovation

+

+ The Morningstar Intelligence Engine has allowed hundreds of + applications to be created in house that are powering internal use + cases and external workloads across our diverse portfolio of + products. +

+

Financial Research

+

+ Morningstar was able to launch their Weaviate-powered investment + research assistant, Mo, within weeks to empower both financial + professionals and individual investors to conduct investment + research with greater ease. +

+

RAG pipelines

+

+ Dynamic, context-aware document chunking and cited source + transparency improves the relevance, accuracy, and trustworthiness + of AI-generated answers. +

+

Self-serve RAG

+

+ Internal users can create their own applications by building a + corpus of documents and using a chat interface to interact with + that information. +

+
+
+
+

+ “Through our Corpus API connected to Weaviate, users can build + very powerful, low latency search engines in minutes with little + to no code. Users can then also test different search algorithms + without having to worry about re-indexing their data or that + infrastructure at all.” +

+

Aisis Julian

+ Senior Software Engineer, Morningstar +
+
+
+ +

+ Morningstar, Inc. is a + leading global provider of independent investment insights. + Morningstar offers an extensive line of products and services for + individual investors, financial advisors, asset managers and + owners, retirement plan providers and sponsors, and institutional + investors in the debt and private capital markets. Morningstar + provides data and research insights on a wide range of investment + offerings, including managed investment products, publicly listed + companies, private capital markets, debt securities, and real-time + global market data.  +

+
+
+
+
+ ); +} diff --git a/src/components/Service/Morningstar/Study/styles.module.scss b/src/components/Service/Morningstar/Study/styles.module.scss new file mode 100644 index 0000000000..ba72c7aca0 --- /dev/null +++ b/src/components/Service/Morningstar/Study/styles.module.scss @@ -0,0 +1,229 @@ +.studyContainer { + padding: 2.5rem; + display: flex; + flex-direction: row; + justify-content: space-around; + padding: 2.5rem; + column-gap: 10px; + max-width: 1500px; + margin: auto; + + @media screen and (max-width: 900px) { + flex-direction: column; + align-items: center; + gap: 30px; + } +} + +.bgColor { + background: #ededed; +} + +.leftContainer { + width: 40%; + min-width: 360px; + + @media screen and (max-width: 900px) { + width: 100%; + } + + ul { + color: #130c49; + } + + h2 { + margin: 20px 0px; + color: #130c49; + font-family: 'Plus Jakarta Sans'; + font-size: 1.5rem; + font-style: normal; + font-weight: 700; + line-height: 140%; /* 2.1rem */ + } + + p { + margin: 20px 0px; + color: #130c49; + font-family: Inter; + font-size: 1rem; + font-style: normal; + font-weight: 400; + line-height: 150%; /* 1.5rem */ + } + + .boldText { + font-weight: 600; + } + + .quote { + color: #130c49; + font-family: Inter; + font-size: 1.125rem; + font-style: normal; + font-weight: 700; + line-height: 157.33%; /* 1.76994rem */ + } + + a { + color: #130c49; + + font-size: 1rem; + font-style: normal; + font-weight: 400; + line-height: 150%; + text-decoration-line: underline; + } + + .results { + background: url('/img/site/morningstar-results-01.png'); + background-size: contain; + max-width: 36.875rem; + width: 100%; + height: 18.4375rem; + flex-shrink: 0; + border-radius: 0.9375rem; + margin: 10px 0px; + background-repeat: no-repeat; + background-position: center; + } + + .results02 { + background: url('/img/site/morningstar-results-02.png'); + background-size: contain; + max-width: 36.875rem; + width: 100%; + height: 18.4375rem; + flex-shrink: 0; + border-radius: 0.9375rem; + margin: 10px 0px; + background-repeat: no-repeat; + background-position: center; + } +} + +.rightContainer { + display: flex; + flex-direction: column; + gap: 60px; + + .topSection { + width: 28.625rem; + height: 47rem; + flex-shrink: 0; + border-radius: 0.9375rem; + background: #130c49; + padding: 30px; + + @media screen and (max-width: 900px) { + width: 100%; + height: auto; + } + + h2 { + margin: 20px 0px; + color: #61bd73; + font-family: 'Plus Jakarta Sans'; + font-size: 1.25rem; + font-style: normal; + font-weight: 700; + line-height: 150%; /* 1.875rem */ + text-transform: uppercase; + } + + p { + margin: 20px 0px; + color: #fff; + + font-size: 1rem; + font-style: normal; + font-weight: 400; + line-height: 140%; /* 1.3125rem */ + } + } + + .bottomSection { + border-radius: 0.9375rem; + background: #f5f5f5; + box-shadow: 0px 24px 64px 0px rgba(22, 27, 45, 0.08); + width: 28.625rem; + height: 34.8125rem; + flex-shrink: 0; + padding: 30px; + + @media screen and (max-width: 900px) { + width: 100%; + height: auto; + } + + .logo { + background-image: url('/img/site/Morningstar.svg'); + background-size: contain; + background-repeat: no-repeat; + width: 12.25rem; + height: 2.5625rem; + flex-shrink: 0; + } + + h2 { + margin: 20px 0px; + color: #130c49; + font-family: 'Plus Jakarta Sans'; + font-size: 1.5rem; + font-style: normal; + font-weight: 700; + line-height: 157.33%; /* 2.35994rem */ + } + + p { + margin: 20px 0px; + color: #130c49; + + font-size: 1.1rem; + font-style: normal; + font-weight: 400; + line-height: 150%; /* 1.5rem */ + } + a { + color: #130c49; + + font-size: 1.1rem; + font-style: normal; + font-weight: 400; + line-height: 150%; /* 1.5rem */ + text-decoration-line: underline; + } + + .avatar { + background-image: url('/img/site/morningstar-avatar.png'); + background-size: contain; + background-repeat: no-repeat; + border-radius: 50%; + width: 10.75rem; + height: 10.75rem; + + flex-shrink: 0; + } + + .quote { + color: #130c49; + font-family: Inter; + font-size: 1.125rem; + font-style: normal; + font-weight: 700; + line-height: 157.33%; /* 1.76994rem */ + } + + .name { + font-size: 1.25rem; + font-weight: 500; + } + .span { + color: #130c49; + + font-size: 1rem; + font-style: normal; + font-weight: 400; + line-height: 157.33%; + } + } +} diff --git a/src/pages/case-studies/morningstar.jsx b/src/pages/case-studies/morningstar.jsx new file mode 100644 index 0000000000..dfd12bba65 --- /dev/null +++ b/src/pages/case-studies/morningstar.jsx @@ -0,0 +1,24 @@ +import React, { useState, useEffect } from 'react'; +import Layout from '@theme/Layout'; +import StudyHeader from '../../components/Service/Morningstar/Header'; +import ContactUsForm from '../../components/ContactUsForm'; +import Study from '../../components/Service/Morningstar/Study'; +import ThemeSwitch from '/src/components/ThemeSwitch'; +import Integrations from '../../components/Service/CaseStudy/Integrations'; + +export default function CaseStudyPage() { + return ( +
+ + + + + + + +
+ ); +} diff --git a/static/img/site/Morningstar.svg b/static/img/site/Morningstar.svg new file mode 100644 index 0000000000..57b2e9dba2 --- /dev/null +++ b/static/img/site/Morningstar.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/site/morningstar-avatar.png b/static/img/site/morningstar-avatar.png new file mode 100644 index 0000000000..a9e7b54329 Binary files /dev/null and b/static/img/site/morningstar-avatar.png differ diff --git a/static/img/site/morningstar-results-01.png b/static/img/site/morningstar-results-01.png new file mode 100644 index 0000000000..54a0ad38fa Binary files /dev/null and b/static/img/site/morningstar-results-01.png differ diff --git a/static/img/site/morningstar-results-02.png b/static/img/site/morningstar-results-02.png new file mode 100644 index 0000000000..bc6267ceda Binary files /dev/null and b/static/img/site/morningstar-results-02.png differ