diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index db875088c..4346191cb 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -32,7 +32,7 @@ const config = { baseUrl: '/', onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'throw', - favicon: 'img/favicon.ico', + favicon: '/img/favicon.ico', organizationName: 'apache', // Usually your GitHub org/user name. projectName: 'superset', // Usually your repo name. themes: ['@saucelabs/theme-github-codeblock'], @@ -177,8 +177,8 @@ const config = { navbar: { logo: { alt: 'Superset Logo', - src: 'img/superset-logo-horiz.svg', - srcDark: 'img/superset-logo-horiz-dark.svg', + src: '/img/superset-logo-horiz.svg', + srcDark: '/img/superset-logo-horiz-dark.svg', }, items: [ { @@ -219,28 +219,40 @@ const config = { }, ], }, + { + href: '/docs/intro', + position: 'right', + className: 'default-button-theme get-started-button', + label: 'Get Started', + }, { href: 'https://github.com/apache/superset', position: 'right', - class: 'github-logo-container', + className: 'github-button', }, ], }, footer: { - style: 'dark', links: [], - copyright: `Copyright © ${new Date().getFullYear()}, - The Apache Software Foundation, - Licensed under the Apache License.
- Apache Superset, Apache, Superset, the Superset logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation. - Apache Software Foundation resources
- - Security |  - Donate |  - Thanks |  - Events |  - License - `, + copyright: ` + +

Copyright © ${new Date().getFullYear()}, + The Apache Software Foundation, + Licensed under the Apache License.

+

Apache Superset, Apache, Superset, the Superset logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation. + Apache Software Foundation resources

+ Divider +

+ + Security |  + Donate |  + Thanks |  + Events |  + License + +

`, }, prism: { theme: lightCodeTheme, @@ -250,8 +262,7 @@ const config = { scripts: [ '/script/matomo.js', { - src: - 'https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa', + src: 'https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa', async: true, }, ], diff --git a/docs/src/components/BlurredSection.tsx b/docs/src/components/BlurredSection.tsx new file mode 100644 index 000000000..7c8589c68 --- /dev/null +++ b/docs/src/components/BlurredSection.tsx @@ -0,0 +1,53 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React, { ReactNode } from 'react'; +import styled from '@emotion/styled'; +import { mq } from '../utils'; + +const StyledBlurredSection = styled('section')` + text-align: center; + border-bottom: 1px solid var(--ifm-border-color); + overflow: hidden; + .blur { + max-width: 635px; + width: 100%; + margin-top: -70px; + margin-bottom: -35px; + position: relative; + z-index: -1; + ${mq[1]} { + margin-top: -40px; + } + } +`; + +interface BlurredSectionProps { + children: ReactNode; +} + +const BlurredSection = ({ children }: BlurredSectionProps) => { + return ( + + {children} + Blur + + ); +}; + +export default BlurredSection; diff --git a/docs/src/components/SectionHeader.tsx b/docs/src/components/SectionHeader.tsx new file mode 100644 index 000000000..c868b4097 --- /dev/null +++ b/docs/src/components/SectionHeader.tsx @@ -0,0 +1,123 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React from 'react'; +import styled from '@emotion/styled'; +import { mq } from '../utils'; + +type StyledSectionHeaderProps = { + dark: boolean; +}; + +const StyledSectionHeader = styled('div')` + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 75px 20px 0; + max-width: 720px; + margin: 0 auto; + ${mq[1]} { + padding-top: 55px; + } + .title, + .subtitle { + color: ${props => + props.dark + ? 'var(--ifm-font-base-color-inverse)' + : 'var(--ifm-font-base-color)'}; + } +`; + +const StyledSectionHeaderH1 = styled(StyledSectionHeader)` + .title { + font-size: 96px; + ${mq[1]} { + font-size: 46px; + } + } + .line { + margin-top: -45px; + margin-bottom: 15px; + ${mq[1]} { + margin-top: -20px; + margin-bottom: 30px; + } + } + .subtitle { + font-size: 30px; + line-height: 40px; + ${mq[1]} { + font-size: 25px; + line-height: 29px; + } + } +`; + +const StyledSectionHeaderH2 = styled(StyledSectionHeader)` + .title { + font-size: 48px; + ${mq[1]} { + font-size: 34px; + } + } + .line { + margin-top: -15px; + margin-bottom: 15px; + ${mq[1]} { + margin-top: -5px; + } + } + .subtitle { + font-size: 24px; + line-height: 32px; + ${mq[1]} { + font-size: 18px; + line-height: 26px; + } + } +`; + +interface SectionHeaderProps { + level: any; + title: string; + subtitle?: string; + dark?: boolean; +} + +const SectionHeader = ({ + level, + title, + subtitle, + dark, +}: SectionHeaderProps) => { + const Heading = level; + + const StyledRoot = + level === 'h1' ? StyledSectionHeaderH1 : StyledSectionHeaderH2; + + return ( + + {title} + line + {subtitle &&

{subtitle}

} +
+ ); +}; + +export default SectionHeader; diff --git a/docs/src/pages/community.tsx b/docs/src/pages/community.tsx index 52d8bb330..bf3a7ab04 100644 --- a/docs/src/pages/community.tsx +++ b/docs/src/pages/community.tsx @@ -20,103 +20,211 @@ import React from 'react'; import styled from '@emotion/styled'; import { List } from 'antd'; import Layout from '@theme/Layout'; +import { mq } from '../utils'; +import SectionHeader from '../components/SectionHeader'; +import BlurredSection from '../components/BlurredSection'; -const links = [ - [ - 'http://bit.ly/join-superset-slack', - 'Slack', - 'interact with other Superset users and community members', - ], - [ - 'https://github.com/apache/superset', - 'GitHub', - 'create tickets to report issues, report bugs, and suggest new features', - ], - [ - 'https://lists.apache.org/list.html?dev@superset.apache.org', - 'dev@ Mailing List', - 'participate in conversations with committers and contributors', - ], - [ - 'https://calendar.google.com/calendar/u/2?cid=c3VwZXJzZXQuY29tbWl0dGVyc0BnbWFpbC5jb20', - 'Superset Community Calendar', - 'join us for working group sessions and other community gatherings', - ], - [ - 'https://stackoverflow.com/questions/tagged/superset+apache-superset', - 'Stack Overflow', - 'our growing knowledge base', - ], - [ - 'https://www.meetup.com/Global-Apache-Superset-Community-Meetup/', - 'Superset Meetup Group', - 'join our monthly virtual meetups and register for any upcoming events', - ], - [ - 'https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md', - 'Organizations', - 'a list of some of the organizations using Superset in production', - ], - [ - 'https://github.com/apache-superset/awesome-apache-superset', - 'Contributors Guide', - 'Interested in contributing? Learn how to contribute and best practices', - ], +const communityLinks = [ + { + url: 'http://bit.ly/join-superset-slack', + title: 'Slack', + description: 'Interact with other Superset users and community members.', + image: 'slack-symbol.jpg', + ariaLabel: + 'Interact with other Superset users and community members on Slack', + }, + { + url: 'https://github.com/apache/superset', + title: 'GitHub', + description: + 'Create tickets to report issues, report bugs, and suggest new features.', + image: 'github-symbol.jpg', + ariaLabel: + 'Create tickets to report issues, report bugs, and suggest new features on Superset GitHub repo', + }, + { + url: 'https://lists.apache.org/list.html?dev@superset.apache.org', + title: 'dev@ Mailing List', + description: + 'Participate in conversations with committers and contributors.', + image: 'email-symbol.png', + ariaLabel: + 'Participate in conversations with committers and contributors on Superset mailing list', + }, + { + url: 'https://stackoverflow.com/questions/tagged/superset+apache-superset', + title: 'Stack Overflow', + description: 'Our growing knowledge base.', + image: 'stackoverflow-symbol.jpg', + ariaLabel: 'See Superset issues on Stack Overflow', + }, + { + url: 'https://www.meetup.com/Global-Apache-Superset-Community-Meetup/', + title: 'Superset Meetup Group', + description: + 'Join our monthly virtual meetups and register for any upcoming events.', + image: 'coffee-symbol.png', + ariaLabel: + 'Join our monthly virtual meetups and register for any upcoming events on Meetup', + }, + { + url: 'https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md', + title: 'Organizations', + description: + 'A list of some of the organizations using Superset in production.', + image: 'note-symbol.png', + ariaLabel: 'See a list of the organizations using Superset in production', + }, + { + url: 'https://github.com/apache-superset/awesome-apache-superset', + title: 'Contributors Guide', + description: + 'Interested in contributing? Learn how to contribute and best practices.', + image: 'writing-symbol.png', + ariaLabel: 'Learn how to contribute and best practices on Superset GitHub', + }, ]; -const StyledMain = styled('main')` - padding-bottom: 60px; - padding-left: 16px; - padding-right: 16px; - section { - width: 100%; - max-width: 800px; +const StyledJoinCommunity = styled('section')` + background-color: var(--ifm-off-section-background); + border-bottom: 1px solid var(--ifm-border-color); + .list { + max-width: 540px; margin: 0 auto; - padding: 60px 0 0 0; - font-size: 17px; - &:first-of-type{ - padding: 40px; - background-image: linear-gradient(120deg, #d6f2f8, #52c6e3); - border-radius: 0 0 10px; + padding: 40px 20px 20px 35px; + } + .item { + padding: 0; + border: 0; + } + .icon { + width: 40px; + margin-top: 5px; + ${mq[1]} { + width: 40px; + margin-top: 0; + } + } + .title { + font-size: 20px; + line-height: 36px; + font-weight: 700; + color: var(--ifm-font-base-color); + ${mq[1]} { + font-size: 23px; + line-height: 26px; + } + } + .description { + font-size: 14px; + line-height: 20px; + color: var(--ifm-secondary-text); + margin-top: -8px; + margin-bottom: 23px; + ${mq[1]} { + font-size: 17px; + line-height: 22px; + color: var(--ifm-primary-text); + margin-bottom: 35px; + margin-top: 0; } } `; -const StyledGetInvolved = styled('div')` - margin-bottom: 25px; +const StyledCalendarIframe = styled('iframe')` + display: block; + margin: 20px auto 30px; + max-width: 800px; + width: 100%; + height: 600px; + border: 0; + ${mq[1]} { + width: calc(100% - 40px); + } +`; + +const StyledNewsletterIframe = styled('iframe')` + display: block; + max-width: 1080px; + width: calc(100% - 40px); + height: 285px; + margin: 30px auto 20px; + border: 0; + @media (max-width: 1200px) { + height: 380px; + } + @media (max-width: 679px) { + height: 680px; + margin-top: 15px; + } `; const Community = () => { return ( - -
-

Community

- Get involved in our welcoming, fast growing community! -
-
- -

Get involved!

- ( - - {link} - {' '} - - - {' '} - {post} - - )} - /> -
-
-
+
+ + + + + ( + + + + + } + title={ + + {title} + + } + description={

{description}

} + role="group" + aria-label="Community link" + /> +
+ )} + /> +
+ + + + + + + + +
); }; diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx index f3781a403..59e5170cd 100644 --- a/docs/src/pages/index.tsx +++ b/docs/src/pages/index.tsx @@ -16,290 +16,506 @@ * specific language governing permissions and limitations * under the License. */ -import React, { useRef, useState } from 'react'; +import React, { useRef, useState, useEffect } from 'react'; import Layout from '@theme/Layout'; import Link from '@docusaurus/Link'; -import { - Button, Col, Row, Carousel, -} from 'antd'; +import { Carousel } from 'antd'; import styled from '@emotion/styled'; -import { supersetTheme } from '@superset-ui/style'; -import '../styles/main.less'; -import { - DeploymentUnitOutlined, - FireOutlined, - DotChartOutlined, - DatabaseOutlined, -} from '@ant-design/icons'; import GitHubButton from 'react-github-btn'; import { mq } from '../utils'; import { Databases } from '../resources/data'; +import SectionHeader from '../components/SectionHeader'; +import BlurredSection from '../components/BlurredSection'; +import '../styles/main.less'; -const { colors } = supersetTheme; +const features = [ + { + image: 'powerful-yet-easy.jpg', + title: 'Powerful yet easy to use', + description: + 'Superset makes it easy to explore your data, using either our simple no-code viz builder or state-of-the-art SQL IDE.', + }, + { + image: 'modern-databases.jpg', + title: 'Integrates with modern databases', + description: + 'Superset can connect to any SQL-based databases including modern cloud-native databases and engines at petabyte scale.', + }, + { + image: 'modern-architecture.jpg', + title: 'Modern architecture', + description: + 'Superset is lightweight and highly scalable, leveraging the power of your existing data infrastructure without requiring yet another ingestion layer.', + }, + { + image: 'rich-visualizations.jpg', + title: 'Rich visualizations and dashboards', + description: + 'Superset ships with 40+ pre-installed visualization types. Our plug-in architecture makes it easy to build custom visualizations.', + }, +]; const StyledMain = styled('main')` text-align: center; - .alert-color { - color: ${colors.alert.base}; - } - .error-color { - color: ${colors.error.base}; - } - .warning-color { - color: ${colors.warning.base}; - } - .info-color { - color: ${colors.info.base}; - } - .success-color { - color: ${colors.success.base}; - } - .secondary-color { - color: ${colors.secondary.base}; - } - .info-text { - font-size: 32px; - font-weight: normal; - max-width: 600px; - margin: auto; - } - .info-text-smaller { - font-size: 24px; - max-width: 800px; - } `; const StyledTitleContainer = styled('div')` position: relative; - padding-top: 60px; - padding-bottom: 80px; - padding-left: 20px; - padding-right: 20px; - background-image: url('img/data-point.jpg'); + padding: 130px 20px 0; + margin-bottom: 160px; + background-image: url('/img/grid-background.jpg'); background-size: cover; - background-position-x: right; + ${mq[1]} { + margin-bottom: 100px; + } + .info-container { + position: relative; + z-index: 4; + } + .superset-mark { + ${mq[1]} { + width: 140px; + } + } + .info-text { + font-size: 30px; + line-height: 37px; + max-width: 720px; + margin: 24px auto 10px; + color: var(--ifm-font-base-color-inverse); + ${mq[1]} { + font-size: 25px; + line-height: 30px; + } + } .github-section { - margin-bottom: 40px; - margin-top: 40px; + margin-top: 9px; + ${mq[1]} { + display: flex; + flex-direction: column; + overflow: hidden; + } .github-button { margin: 5px; + ${mq[1]} { + transform: scale(1.25); + margin: 8px; + &:first-of-type { + margin-top: 5px; + } + &:last-of-type { + margin-bottom: 5px; + } + } } } - .logo-horiz { - margin-top: 20px; - margin-bottom: 20px; - width: 600px; - max-width: 100%; - ${[mq[3]]} { - width: 550px; - } - ${[mq[2]]} { - width: 450px; - } - ${[mq[1]]} { - width: 425px; - } - ${[mq[0]]} { - width: 400px; - } - } - .alert { - color: #0c5460; - background-color: #d1ecf1; - border-color: #bee5eb; - max-width: 600px; - margin: 0 auto; - padding: 0.75rem 1.25rem; - margin-top: 83px; - border: 1px solid transparent; - border-radius: 0.25rem; - } `; -const StyledHeading = styled('h2')` - font-size: 55px; - text-align: center; +const StyledButton = styled(Link)` + border-radius: 10px; + font-size: 20px; + font-weight: bold; + width: 170px; + padding: 10px 0; + margin: 15px auto 0; + ${mq[1]} { + font-size: 19px; + width: 175px; + padding: 10px 0; + } `; -const StyledFeatures = styled('div')` - background: #fff; - padding: 5vw 0; - margin-top: 0px; - margin-bottom: 10px; - .featureList { - padding: 40px; +const StyledScreenshotContainer = styled('div')` + position: relative; + display: inline-block; + padding-top: 30px; + margin-top: 25px; + margin-bottom: -125px; + max-width: 800px; + ${mq[1]} { + padding-top: 20px; + } + .screenshot { + position: relative; + z-index: 3; + border-radius: 10px; + } + .screenshot-shadow-1 { + position: absolute; + top: 15px; + left: 20px; + width: calc(100% - 40px); + height: calc(100% - 15px); + background-color: #256b7c; + border-radius: 10px; + z-index: 2; + ${mq[1]} { + background-color: #335a64; + top: 10px; + left: 15px; + width: calc(100% - 30px); + height: calc(100% - 10px); + } + } + .screenshot-shadow-2 { + position: absolute; + top: 0; + left: 40px; + width: calc(100% - 80px); + height: 100%; + background-color: #0d5262; + border-radius: 10px; + z-index: 1; + ${mq[1]} { + background-color: #1f4048; + left: 30px; + width: calc(100% - 60px); + } + } + .screenshotBlur { + display: none; + background-color: #173036; + filter: blur(45px); + position: absolute; + bottom: 0; + left: 50%; width: 100%; - list-style-type: none; - margin: 0 auto; - max-width: 1000px; - .feature { - padding: 20px; + padding-top: 100%; + border-radius: 50%; + transform: translate3d(-50%, 0, 0); + opacity: 0.3; + ${mq[1]} { + display: block; + } + } +`; + +const StyledFeaturesList = styled('ul')` + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 16px; + width: 100%; + max-width: 1170px; + margin: 15px auto 0; + padding: 0 20px; + ${mq[1]} { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + .item { + text-align: left; + border: 1px solid var(--ifm-border-color); + background-color: #ffffff; + border-radius: 10px; + overflow: hidden; + display: flex; + align-items: flex-start; + padding: 20px; + ${mq[1]} { + flex-direction: column; + align-items: center; text-align: center; - margin-bottom: 20px; - .imagePlaceHolder { - svg { - width: 70px; - height: 70px; - } - margin-bottom: 15px; + padding: 35px; + } + .image { + flex-shrink: 0; + margin-right: 20px; + width: 140px; + text-align: center; + ${mq[1]} { + width: 115px; } - .featureText { - color: ${colors.grayscale.dark2}; + } + .title { + font-size: 24px; + color: var(--ifm-primary-text); + margin: 10px 0 0; + ${mq[1]} { + font-size: 23px; + margin-top: 20px; + } + } + .description { + font-size: 17px; + line-height: 23px; + color: var(--ifm-secondary-text); + margin: 5px 0 0; + ${mq[1]} { font-size: 16px; - strong { - font-size: 22px; + margin-top: 10px; + } + } + } +`; + +const StyledSliderSection = styled('div')` + position: relative; + padding: 60px 20px; + ${mq[1]} { + padding-top: 0; + padding-bottom: 50px; + } + &::before { + content: ''; + display: block; + width: 100%; + height: calc(100% - 320px); + position: absolute; + top: 0; + left: 0; + background-image: url('/img/grid-background.jpg'); + background-size: cover; + z-index: -1; + ${mq[1]} { + height: 100%; + } + } + .toggleBtns { + display: flex; + justify-content: space-between; + list-style: none; + max-width: 870px; + width: 100%; + margin: 0 auto 20px; + padding: 0; + ${mq[1]} { + flex-direction: column; + text-align: left; + max-width: 140px; + gap: 10px; + margin-top: 15px; + margin-bottom: 40px; + } + .toggle { + font-size: 24px; + color: #b4c0c7; + position: relative; + padding-left: 32px; + cursor: pointer; + ${mq[1]} { + font-size: 17px; + font-weight: bold; + padding-left: 22px; + } + &::before { + content: ''; + display: block; + width: 12px; + height: 12px; + border-radius: 50%; + background-color: #457f8d; + position: absolute; + top: 50%; + left: 0; + transform: translate3d(0, -50%, 0); + ${mq[1]} { + width: 8px; + height: 8px; + } + } + &.active { + font-weight: 700; + color: var(--ifm-font-base-color-inverse); + } + &.active::before { + background-color: var(--ifm-color-primary); + } + } + } + .slide { + max-width: 920px; + & > p { + max-width: 560px; + margin: 0 auto; + font-size: 24px; + line-height: 32px; + color: var(--ifm-font-base-color-inverse); + margin-bottom: 45px; + ${mq[1]} { + font-size: 17px; + line-height: 23px; + } + } + } + video { + width: 100%; + max-width: 920px; + margin-top: 10px; + border-radius: 10px; + ${mq[1]} { + border-radius: 5px; + } + } +`; + +const StyledKeyFeatures = styled('div')` + margin-top: 50px; + & > h3 { + font-size: 30px; + } + .grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 30px; + max-width: 960px; + margin: 30px auto 0; + padding: 0 20px; + text-align: left; + ${mq[1]} { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + & > .item { + display: flex; + font-size: 17px; + ${mq[1]} { + font-size: 15px; + } + & > img { + width: 20px; + height: 20px; + flex-shrink: 0; + margin-right: 12px; + margin-top: 4px; + ${mq[1]} { + width: 18px; + height: 18px; + margin-top: 2px; } } } } - .heading { - font-size: 22px; - margin: 0 auto; - text-align: center; + .row { + display: flex; + max-width: 960px; + margin: 30px auto 0; + & > .column { + width: 50%; + & > ul { + font-size: 17px; + list-style: none; + padding: 0 20px; + text-align: left; + margin: 0; + & > li { + display: flex; + margin-bottom: 20px; + & > img { + width: 20px; + height: 20px; + flex-shrink: 0; + margin-right: 12px; + margin-top: 4px; + } + } + } + } } `; const StyledIntegrations = styled('div')` - background: white; - margin-bottom: 64px; - .databaseSub { - text-align: center; - display: block; - margin-bottom: 40px; - font-size: 18px; - } - - .database-list { - margin-top: 100px; - list-style-type: none; - padding: 0px; - max-width: 1000px; - margin: 0 auto; - display: flex; - flex-wrap: wrap; - justify-content: space-around; - margin-bottom: 50px; - li { - padding: 15px; + padding: 0 20px; + .database-grid { + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: 14px; + max-width: 1160px; + margin: 25px auto 0; + ${mq[1]} { + grid-template-columns: repeat(4, minmax(0, 1fr)); } - } -`; - -const CarouselSection = styled('div')` - .toggleContainer { - display: flex; - flex-direction: column; - margin-bottom: 100px; - position: relative; - .toggleBtns { + ${mq[0]} { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + & > .item { + border: 1px solid var(--ifm-border-color); + border-radius: 10px; + overflow: hidden; + height: 120px; + padding: 25px; display: flex; - flex-direction: row; - /* ${[mq[0]]} { - flex-direction: column; - } */ + align-items: center; justify-content: center; - .toggle { - margin: 10px; - color: #666; - border: 1px solid #888; - background-color: #20a7c911; - border-radius: 3px; - padding: 16px; - transition: all 0.25s; - overflow: visible; - ${[mq[0]]} { - > span { - display: none; - position: absolute; - bottom: 0px; - left: 50%; - width: 100%; - transform: translate(-50%, 100%); - } - h2 { - font-size: 14px; - margin: 0; - } - } - &:hover { - cursor: pointer; - color: ${colors.primary.base}; - border: 1px solid ${colors.primary.base}; - } - &.active { - background: red; - background: #20a7c933; - ${[mq[0]]} { - > span { - display: block; - } - } - } + & > a { + height: 100%; } - } - .imageContainer { - img { - margin: 0 auto; - max-width: 800px; - box-shadow: 0 0 3px #aaa; - margin-top: 5px; - margin-bottom: 5px; + & img { + height: 100%; + object-fit: contain; } } } + .database-sub { + display: block; + text-align: center; + font-size: 17px; + margin-top: 50px; + } `; -const StyledCredits = styled.div` - width: 100%; - height: 60px; - padding: 18px; - background-color: #282E4A; - text-align: center; - color: #FFFFFF; -`; - -const StyledDatabaseImg = styled.img` - width: ${(props) => props.width}; - height: ${(props) => props.height}; -`; -interface featureProps { - icon: React.ReactNode, - title: string, - descr: string, -} -const Feature = ({ icon, title, descr }: featureProps) => ( -
  • -
    - {icon} -
    -
    -

    {title}

    - {descr} -
    -
  • -); - export default function Home(): JSX.Element { const slider = useRef(null); const [slideIndex, setSlideIndex] = useState(0); - const onChange = (index) => { - setSlideIndex(index); + const onChange = (current, next) => { + setSlideIndex(next); }; + const changeToDark = () => { + const navbar = document.body.querySelector('.navbar'); + const logo = document.body.querySelector('.navbar__logo img'); + navbar.classList.add('navbar--dark'); + logo.setAttribute('src', '/img/superset-logo-horiz-dark.svg'); + }; + + const changeToLight = () => { + const navbar = document.body.querySelector('.navbar'); + const logo = document.body.querySelector('.navbar__logo img'); + navbar.classList.remove('navbar--dark'); + logo.setAttribute('src', '/img/superset-logo-horiz.svg'); + }; + + // Set up dark <-> light navbar change + useEffect(() => { + changeToDark(); + + const navbarToggle = document.body.querySelector('.navbar__toggle'); + navbarToggle.addEventListener('click', () => changeToLight()); + + const scrollListener = () => { + if (window.scrollY > 0) { + changeToLight(); + } else { + changeToDark(); + } + }; + + window.addEventListener('scroll', scrollListener); + + return () => { + window.removeEventListener('scroll', scrollListener); + changeToLight(); + }; + }, []); + return ( - logo-horiz +
    + Superset mark
    - Apache Superset is a modern data exploration and visualization - platform + Apache Superset™ is an open-source modern data exploration + and visualization platform.
    + line
    -
    - - - -
    + line + + Get Started + +
    + + hero-screenshot +
    +
    +
    +
    - - - Overview -
    - Superset is fast, lightweight, intuitive, and loaded with options - that make it easy for users of all skill sets to explore and - visualize their data, from simple line charts to highly detailed - geospatial charts. -
    -
      - - - } - title="Powerful yet easy to use" - descr={` - Quickly and easily integrate and explore your data, using - either our simple no-code viz builder or state of the art SQL - IDE. - `} - /> - - - - } - title="Integrates with modern databases" - descr={` - Superset can connect to any SQL based datasource - through SQLAlchemy, including modern cloud native databases - and engines at petabyte scale. - `} - /> - - - - - } - title="Modern architecture" - descr={` - Superset is lightweight and highly scalable, leveraging the - power of your existing data infrastructure without requiring - yet another ingestion layer. - `} - /> - - - } - title="Rich visualizations and dashboards" - descr={` - Superset ships with a wide array of beautiful visualizations. - Our visualization plug-in architecture makes it easy to build - custom visualizations that drop directly into Superset. - `} - /> - - + + + + {features.map(({ image, title, description }) => ( +
    • +
      + +
      +
      +

      {title}

      +

      {description}

      +
      +
    • + ))} +
      +
      + + + +
        +
      • slider.current.goTo(0)} + role="button" + > + Dashboards +
      • +
      • slider.current.goTo(1)} + role="button" + > + Chart Builder +
      • +
      • slider.current.goTo(2)} + role="button" + > + SQL Lab +
      • +
      • slider.current.goTo(3)} + role="button" + > + Datasets +
      - - - - Explore -
      -
      -
      slider.current.goTo(0)} - role="button" - > -

      Explore

      - - Explore your data using the array of data visualizations. - -
      - -
      slider.current.goTo(1)} - role="button" - > -

      View

      - View your data through interactive dashboards -
      -
      slider.current.goTo(2)} - role="button" - > -

      Investigate

      - Use SQL Lab to write queries to explore your data + +
      +

      + Explore data and find insights from interactive dashboards. +

      +
      +
      +

      Drag and drop to create robust charts and tables.

      +
      +
      +

      + Write custom SQL queries, browse database metadata, use Jinja + templating, and more. +

      +
      +
      +

      + Create physical and virtual datasets to scale chart creation + with unified metric definitions. +

      +
      +
      + + + +

      Key features

      +
      +
      + check-icon +
      + 40+ pre-installed visualizations
      - -
      - Explore (chart buider) UI +
      + check-icon +
      + Support for drag-and-drop and{' '} + SQL queries
      -
      - Superset Dashboard +
      +
      + check-icon +
      + Data caching for the faster load time of + charts and dashboards
      -
      - SQL Lab +
      +
      + check-icon +
      + Jinja templating and dashboard filters for + creating interactive dashboards
      - +
      +
      + check-icon +
      + CSS templates to customize charts and + dashboards to your brand’s look and feel +
      +
      +
      + check-icon +
      + Semantic layer for SQL data transformations +
      +
      +
      + check-icon +
      + Cross-filters, drill-to-detail, and drill-by{' '} + features for deeper data analysis +
      +
      +
      + check-icon +
      + Virtual datasets for ad-hoc data exploration +
      +
      +
      + check-icon +
      + Access to new functionalities through{' '} + feature flags +
      +
      - - Supported Databases - -
        - {Databases.map( - ({ - title, imgName: imageName, width, height, - }) => ( -
      • - -
      • - ), - )} -
      - - ... and many other - - {' '} - compatible databases - {' '} - - -
      - + + + + + +
      + {Databases.map(({ title, href, imgName }) => ( +
      + {href ? ( + + + + ) : ( + + )} +
      + ))} +
      + + ...and many other{' '} + + compatible databases + + +
      +
      - - We use{' '} - - - - ); } diff --git a/docs/src/resources/data.js b/docs/src/resources/data.js index 79b12017d..a07be5526 100644 --- a/docs/src/resources/data.js +++ b/docs/src/resources/data.js @@ -18,10 +18,35 @@ */ export const Databases = [ + { + title: 'PostgreSQL', + href: 'https://www.postgresql.org/', + imgName: 'postgresql.svg', + }, + { + title: 'BigQuery', + href: 'https://cloud.google.com/bigquery/', + imgName: 'google-big-query.svg', + }, + { + title: 'Snowflake', + href: 'https://www.snowflake.com/', + imgName: 'snowflake.svg', + }, + { + title: 'MySQL', + href: 'https://www.mysql.com/', + imgName: 'mysql.jpg', + }, { title: 'Amazon Redshift', href: 'https://aws.amazon.com/redshift/', - imgName: 'aws-redshift.png', + imgName: 'amazon-redshift.jpg', + }, + { + title: 'Amazon Athena', + href: 'https://aws.amazon.com/pt/athena/', + imgName: 'amazon-athena.jpg', }, { title: 'Apache Druid', @@ -29,133 +54,67 @@ export const Databases = [ imgName: 'druid.png', }, { - title: 'Apache Kylin', - href: 'http://kylin.apache.org/', - imgName: 'apache-kylin.png', + title: 'Databricks', + href: 'https://www.databricks.com', + imgName: 'databricks.png', }, { - title: 'BigQuery', - href: 'https://cloud.google.com/bigquery/', - imgName: 'googleBQ.png', + title: 'Google Sheets', + href: 'https://www.google.com/sheets/about/', + imgName: 'google-sheets.svg', + }, + { + title: 'CSV', + imgName: 'csv.svg', }, { title: 'ClickHouse', href: 'https://clickhouse.tech/', imgName: 'clickhouse.png', }, + { + title: 'Rockset', + href: 'https://rockset.com/', + imgName: 'rockset.png', + }, { title: 'Dremio', href: 'https://dremio.com/', imgName: 'dremio.png', }, - { - title: 'Databricks', - href: 'https://www.databricks.com', - imgName: 'databricks.png', - }, - { - title: 'Exasol', - href: 'https://www.exasol.com/en/', - imgName: 'exasol.png', - }, - { - title: 'FireBirdSql', - href: 'https://firebirdsql.org/', - imgName: 'firebird.png', - }, - { - title: 'Green Plum', - href: 'https://greenplum.org/', - imgName: 'greenplum.png', - }, - { - title: 'IBM Db2', - href: 'https://www.ibm.com/analytics/db2', - imgName: 'ibmdb2.png', - }, - { - title: 'MySQL', - href: 'https://www.mysql.com/', - imgName: 'mysql.png', - }, - { - title: 'Microsoft SqlServer', - href: 'https://www.microsoft.com/en-us/sql-server', - imgName: 'msql.png', - }, - { - title: 'MonetDB', - href: 'https://www.monetdb.org/', - imgName: 'monet.png', - }, - { - title: 'Oracle', - href: 'https://www.oracle.com/database/', - imgName: 'oraclelogo.png', - }, - { - title: 'PostgresSQL', - href: 'https://www.postgresql.org/', - imgName: 'postsql.png', - }, - { - title: 'Presto', - href: 'https://prestodb.io/', - imgName: 'presto-og.png', - }, - { - title: 'Snowflake', - href: 'https://www.snowflake.com/', - imgName: 'snowflake.png', - }, - { - title: 'SQLite', - href: 'https://www.sqlite.org/index.html', - imgName: 'sqlite.png', - }, { title: 'Trino', href: 'https://trino.io/', imgName: 'trino2.jpg', }, { - title: 'Rockset', - href: 'https://rockset.com/', - imgName: 'rockset.png', + title: 'Oracle', + href: 'https://www.oracle.com/database/', + imgName: 'oraclelogo.png', }, { - title: 'Vertica', - href: 'https://www.vertica.com/', - imgName: 'vertica.png', + title: 'Apache Pinot', + href: 'https://pinot.apache.org/', + imgName: 'apache-pinot.svg', }, { - title: 'Hologres', - href: 'https://www.alibabacloud.com/product/hologres', - imgName: 'hologres.png', + title: 'Presto', + href: 'https://prestodb.io/', + imgName: 'presto-og.png', }, { - title: 'IBM Netezza Performance Server', - href: 'https://www.ibm.com/products/netezza', - imgName: 'netezza.png', + title: 'IBM Db2', + href: 'https://www.ibm.com/analytics/db2', + imgName: 'ibmdb2.png', }, { - title: 'Teradata', - href: "www.teradata.com", - imgName: 'teradata.png' + title: 'SAP Hana', + href: 'https://www.sap.com/products/technology-platform/hana.html', + imgName: 'sap-hana.jpg', }, { - title: 'TimescaleDB', - href: "www.timescale.com", - imgName: 'timescale.png' + title: 'Microsoft SqlServer', + href: 'https://www.microsoft.com/en-us/sql-server', + imgName: 'msql.png', }, - { - title: 'YugabyteDB', - href: "www.yugabyte.com", - imgName: 'yugabyte.png' - }, - { - title: 'StarRocks', - href: "www.starrocks.io", - imgName: 'starrocks.png' - } ]; diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css index 2f133aaeb..f13af3dbe 100644 --- a/docs/src/styles/custom.css +++ b/docs/src/styles/custom.css @@ -24,7 +24,7 @@ */ /* You can override the default Infima variables here. */ -@import url('https://fonts.googleapis.com/css2?family=Inter&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap'); :root { --ifm-color-primary: #20a7c9; @@ -34,80 +34,17 @@ --ifm-color-primary-light: #79cade; --ifm-color-primary-lighter: #a5dbe9; --ifm-color-primary-lightest: #d2edf4; + --ifm-font-base-color: #484848; + --ifm-font-base-color-inverse: #ffffff; --ifm-code-font-size: 95%; --ifm-menu-link-padding-vertical: 12px; --doc-sidebar-width: 350px !important; --ifm-navbar-height: none; - --ifm-font-family-base: Inter; -} -body { - font-family: Inter !important; -} -.DocSearch-Button .DocSearch-Button-Key { - display: none; -} -.github-logo-container { - background-image: url('/img/github.png'); - background-size: contain; - width: 30px; - height: 30px; -} - -.theme-doc-toc-desktop { - position: fixed !important; -} - -.docusaurus-highlight-code-line { - background-color: rgba(0, 0, 0, 0.1); - display: block; - margin: 0 calc(-1 * var(--ifm-pre-padding)); - padding: 0 var(--ifm-pre-padding); -} - -html[data-theme='dark'] .docusaurus-highlight-code-line { - background-color: rgba(0, 0, 0, 0.3); -} - -.navbar__logo { - height: 40px; -} - -.navbar-sidebar__brand { - padding-left: 0; -} - -.menu, -.navbar { - font-size: 14px; - font-weight: 400; -} - -/* Hacks to disable Swagger UI's "try it out" interactive mode */ -.try-out, -.auth-wrapper, -.information-container { - display: none !important; -} - -.swagger-ui table td, -.swagger-ui table th, -.swagger-ui table tr { - border: none; -} - -.markdown h2:first-child { - margin-top: 0.5em; -} - -@media only screen and (min-width: 800px) { - .navbar__logo { - height: 50px; - } - - .navbar { - padding-left: 0; - } -} -a > span > svg { - display: none; + --ifm-font-family-base: Roboto; + --ifm-footer-background-color: #173036; + --ifm-footer-color: #87939a; + --ifm-off-section-background: #fbfbfb; + --ifm-border-color: #ededed; + --ifm-primary-text: #484848; + --ifm-secondary-text: #5f5f5f; } diff --git a/docs/src/styles/main.less b/docs/src/styles/main.less index ba3c1ad0b..80dee90ec 100644 --- a/docs/src/styles/main.less +++ b/docs/src/styles/main.less @@ -19,3 +19,242 @@ @import '~antd/lib/style/themes/default.less'; @import '~antd/dist/antd.less'; // Import Ant Design styles by less entry @import 'antd-theme.less'; + +body { + font-family: var(--ifm-font-family-base); + color: var(--ifm-font-base-color); +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: var(--ifm-font-base-color); + font-weight: var(--ifm-heading-font-weight); +} + +.under-navbar { + margin-top: -67px; +} + +.theme-doc-toc-desktop { + position: fixed !important; +} + +.docusaurus-highlight-code-line { + background-color: rgba(0, 0, 0, 0.1); + display: block; + margin: 0 calc(-1 * var(--ifm-pre-padding)); + padding: 0 var(--ifm-pre-padding); +} + +html[data-theme='dark'] .docusaurus-highlight-code-line { + background-color: rgba(0, 0, 0, 0.3); +} + +.menu { + font-size: 14px; + font-weight: 400; +} + +/* Hacks to disable Swagger UI's "try it out" interactive mode */ +.try-out, +.auth-wrapper, +.information-container { + display: none !important; +} + +.swagger-ui table td, +.swagger-ui table th, +.swagger-ui table tr { + border: none; +} + +.markdown h2:first-child { + margin-top: 0.5em; +} + +a > span > svg { + display: none; +} + +/* Default button */ + +.default-button-theme { + display: block; + background: linear-gradient(180deg, #20a7c9 0%, #0c8fae 100%); + color: #ffffff; + text-align: center; + position: relative; + z-index: 2; + &::before { + border-radius: inherit; + background: linear-gradient(180deg, #11b0d8 0%, #116f86 100%); + content: ''; + display: block; + height: 100%; + position: absolute; + top: 0; + left: 0; + opacity: 0; + width: 100%; + z-index: -1; + transition: all 0.3s; + } + &:hover { + color: #ffffff; + &::before { + opacity: 1; + } + } +} + +/* Navbar */ + +.navbar { + font-size: 14px; + font-weight: 400; + background-color: #fff; + + .get-started-button { + border-radius: 10px; + font-size: 18px; + font-weight: bold; + width: 142px; + padding: 7px 0; + margin-right: 20px; + } + + .github-button { + background-image: url('/img/github.png'); + background-size: contain; + width: 30px; + height: 30px; + margin-right: 10px; + } +} + +.navbar--dark { + background-color: transparent; + border-bottom: 1px solid rgba(24, 115, 132, 0.4); + + .github-button { + background-image: url('/img/github-dark.png'); + } +} + +.navbar__logo { + height: 50px; +} + +.dropdown > .navbar__link::after { + display: none; +} + +.navbar-sidebar__brand { + padding-left: 0; +} + +@media only screen and (max-width: 996px) { + .navbar { + padding-right: 8px; + padding-left: 8px; + + .get-started-button, + .github-button { + display: none; + } + } + + .navbar__items { + flex-direction: row-reverse; + justify-content: space-between; + } + + .navbar__logo { + height: 48px; + } +} + +/* Sidebar */ + +.navbar-sidebar { + left: auto; + right: 0; + transform: translate3d(100%, 0, 0); +} + +/* Search Bar */ + +.navbar .DocSearch { + --docsearch-text-color: #187384; + --docsearch-muted-color: #187384; + --docsearch-searchbox-background: #fff; + border: 1px solid #187384; + border-radius: 10px; + + &.DocSearch-Button { + width: 225px; + } + + .DocSearch-Search-Icon { + width: 16px; + height: 16px; + } + + .DocSearch-Button-Key, + .DocSearch-Button-Placeholder { + display: none; + } +} + +.navbar--dark .DocSearch { + --docsearch-searchbox-background: #1d3d46; +} + +@media only screen and (max-width: 996px) { + .navbar .DocSearch.DocSearch-Button { + display: none; + } +} + +/* Footer */ + +.footer { + position: relative; + padding-top: 90px; + font-size: 15px; +} + +.footer__applitools { + background-color: #0d3e49; + color: #e1e1e1; + position: absolute; + top: 0; + left: 0; + width: 100%; + padding: 16px 0; + + img { + height: 34px; + } +} + +.footer__divider { + margin: 10px auto 25px; +} + +.footer small { + font-size: 13px; + display: block; + margin: 0 auto; + max-width: 830px; +} + +@media only screen and (max-width: 996px) { + .footer__applitools img { + height: 28px; + } +} diff --git a/docs/static/img/applitools.png b/docs/static/img/applitools.png index 66b7b1eb4..89034f378 100644 Binary files a/docs/static/img/applitools.png and b/docs/static/img/applitools.png differ diff --git a/docs/static/img/check-icon.svg b/docs/static/img/check-icon.svg new file mode 100644 index 000000000..858b2d3f3 --- /dev/null +++ b/docs/static/img/check-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/static/img/community/blur.png b/docs/static/img/community/blur.png new file mode 100644 index 000000000..78814af48 Binary files /dev/null and b/docs/static/img/community/blur.png differ diff --git a/docs/static/img/community/coffee-symbol.png b/docs/static/img/community/coffee-symbol.png new file mode 100644 index 000000000..e45475f08 Binary files /dev/null and b/docs/static/img/community/coffee-symbol.png differ diff --git a/docs/static/img/community/email-symbol.png b/docs/static/img/community/email-symbol.png new file mode 100644 index 000000000..5e437e8a4 Binary files /dev/null and b/docs/static/img/community/email-symbol.png differ diff --git a/docs/static/img/community/github-symbol.jpg b/docs/static/img/community/github-symbol.jpg new file mode 100644 index 000000000..f7f3e1e08 Binary files /dev/null and b/docs/static/img/community/github-symbol.jpg differ diff --git a/docs/static/img/community/line.png b/docs/static/img/community/line.png new file mode 100644 index 000000000..8ee3db38a Binary files /dev/null and b/docs/static/img/community/line.png differ diff --git a/docs/static/img/community/note-symbol.png b/docs/static/img/community/note-symbol.png new file mode 100644 index 000000000..7aa69b005 Binary files /dev/null and b/docs/static/img/community/note-symbol.png differ diff --git a/docs/static/img/community/slack-symbol.jpg b/docs/static/img/community/slack-symbol.jpg new file mode 100644 index 000000000..25c468536 Binary files /dev/null and b/docs/static/img/community/slack-symbol.jpg differ diff --git a/docs/static/img/community/stackoverflow-symbol.jpg b/docs/static/img/community/stackoverflow-symbol.jpg new file mode 100644 index 000000000..5a9bc7dc3 Binary files /dev/null and b/docs/static/img/community/stackoverflow-symbol.jpg differ diff --git a/docs/static/img/community/writing-symbol.png b/docs/static/img/community/writing-symbol.png new file mode 100644 index 000000000..087b9dc2d Binary files /dev/null and b/docs/static/img/community/writing-symbol.png differ diff --git a/docs/static/img/databases/amazon-athena.jpg b/docs/static/img/databases/amazon-athena.jpg new file mode 100644 index 000000000..33ee95c08 Binary files /dev/null and b/docs/static/img/databases/amazon-athena.jpg differ diff --git a/docs/static/img/databases/amazon-redshift.jpg b/docs/static/img/databases/amazon-redshift.jpg new file mode 100644 index 000000000..97a58612c Binary files /dev/null and b/docs/static/img/databases/amazon-redshift.jpg differ diff --git a/docs/static/img/databases/apache-pinot.svg b/docs/static/img/databases/apache-pinot.svg new file mode 100644 index 000000000..0d69dd4d2 --- /dev/null +++ b/docs/static/img/databases/apache-pinot.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/static/img/databases/aws-redshift.png b/docs/static/img/databases/aws-redshift.png deleted file mode 100644 index 73d79b8bf..000000000 Binary files a/docs/static/img/databases/aws-redshift.png and /dev/null differ diff --git a/docs/static/img/databases/csv.svg b/docs/static/img/databases/csv.svg new file mode 100644 index 000000000..792b90dee --- /dev/null +++ b/docs/static/img/databases/csv.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/static/img/databases/google-big-query.svg b/docs/static/img/databases/google-big-query.svg new file mode 100644 index 000000000..08a0544bb --- /dev/null +++ b/docs/static/img/databases/google-big-query.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/static/img/databases/google-sheets.svg b/docs/static/img/databases/google-sheets.svg new file mode 100644 index 000000000..11fcdd65f --- /dev/null +++ b/docs/static/img/databases/google-sheets.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/databases/googleBQ.png b/docs/static/img/databases/googleBQ.png deleted file mode 100644 index da6960ac9..000000000 Binary files a/docs/static/img/databases/googleBQ.png and /dev/null differ diff --git a/docs/static/img/databases/mysql.jpg b/docs/static/img/databases/mysql.jpg new file mode 100644 index 000000000..dedef48c6 Binary files /dev/null and b/docs/static/img/databases/mysql.jpg differ diff --git a/docs/static/img/databases/mysql.png b/docs/static/img/databases/mysql.png deleted file mode 100644 index b68620c28..000000000 Binary files a/docs/static/img/databases/mysql.png and /dev/null differ diff --git a/docs/static/img/databases/postgresql.svg b/docs/static/img/databases/postgresql.svg new file mode 100644 index 000000000..f96e464eb --- /dev/null +++ b/docs/static/img/databases/postgresql.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/databases/postsql.png b/docs/static/img/databases/postsql.png deleted file mode 100644 index ca488a2d9..000000000 Binary files a/docs/static/img/databases/postsql.png and /dev/null differ diff --git a/docs/static/img/databases/sap-hana.jpg b/docs/static/img/databases/sap-hana.jpg new file mode 100644 index 000000000..5374367ed Binary files /dev/null and b/docs/static/img/databases/sap-hana.jpg differ diff --git a/docs/static/img/databases/sap-hana.png b/docs/static/img/databases/sap-hana.png new file mode 100644 index 000000000..8afdda394 Binary files /dev/null and b/docs/static/img/databases/sap-hana.png differ diff --git a/docs/static/img/databases/snowflake.png b/docs/static/img/databases/snowflake.png deleted file mode 100644 index adc3443fd..000000000 Binary files a/docs/static/img/databases/snowflake.png and /dev/null differ diff --git a/docs/static/img/databases/snowflake.svg b/docs/static/img/databases/snowflake.svg new file mode 100644 index 000000000..07462d241 --- /dev/null +++ b/docs/static/img/databases/snowflake.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/static/img/features/modern-architecture.jpg b/docs/static/img/features/modern-architecture.jpg new file mode 100644 index 000000000..da6320d51 Binary files /dev/null and b/docs/static/img/features/modern-architecture.jpg differ diff --git a/docs/static/img/features/modern-databases.jpg b/docs/static/img/features/modern-databases.jpg new file mode 100644 index 000000000..7ecfdb3cb Binary files /dev/null and b/docs/static/img/features/modern-databases.jpg differ diff --git a/docs/static/img/features/powerful-yet-easy.jpg b/docs/static/img/features/powerful-yet-easy.jpg new file mode 100644 index 000000000..020999439 Binary files /dev/null and b/docs/static/img/features/powerful-yet-easy.jpg differ diff --git a/docs/static/img/features/rich-visualizations.jpg b/docs/static/img/features/rich-visualizations.jpg new file mode 100644 index 000000000..783e41fe5 Binary files /dev/null and b/docs/static/img/features/rich-visualizations.jpg differ diff --git a/docs/static/img/github-dark.png b/docs/static/img/github-dark.png new file mode 100644 index 000000000..7492fcb54 Binary files /dev/null and b/docs/static/img/github-dark.png differ diff --git a/docs/static/img/grid-background.jpg b/docs/static/img/grid-background.jpg new file mode 100644 index 000000000..865bfe85c Binary files /dev/null and b/docs/static/img/grid-background.jpg differ diff --git a/docs/static/img/hero-screenshot.jpg b/docs/static/img/hero-screenshot.jpg new file mode 100644 index 000000000..7b2d99390 Binary files /dev/null and b/docs/static/img/hero-screenshot.jpg differ diff --git a/docs/static/img/superset-logo-horiz-dark.svg b/docs/static/img/superset-logo-horiz-dark.svg index 3fb7cdc0c..bcf41bff3 100644 --- a/docs/static/img/superset-logo-horiz-dark.svg +++ b/docs/static/img/superset-logo-horiz-dark.svg @@ -15,7 +15,7 @@ under the License. --> - + @@ -24,14 +24,14 @@ - - - - - - - - + + + + + + + + diff --git a/docs/static/img/superset-mark-dark.svg b/docs/static/img/superset-mark-dark.svg new file mode 100644 index 000000000..f501dcf98 --- /dev/null +++ b/docs/static/img/superset-mark-dark.svg @@ -0,0 +1,20 @@ + + + + + diff --git a/docs/static/resources/openapi.json b/docs/static/resources/openapi.json index c52592aae..94dca800c 100644 --- a/docs/static/resources/openapi.json +++ b/docs/static/resources/openapi.json @@ -1238,7 +1238,7 @@ "type": "array" }, "granularity": { - "description": "Name of temporal column used for time filtering. + "description": "Name of temporal column used for time filtering.", "nullable": true, "type": "string" }, diff --git a/docs/static/video/superset-video-4k.mp4 b/docs/static/video/superset-video-4k.mp4 new file mode 100644 index 000000000..068ce30c6 Binary files /dev/null and b/docs/static/video/superset-video-4k.mp4 differ