diff --git a/.gitignore b/.gitignore
index 3545224550..cc090d3868 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,8 +41,10 @@ jspm_packages
################
# JetBrains
+# IDE
################
.idea
+.vscode
## File-based project format:
*.iws
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 70a9b51321..b67d60e752 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -26,40 +26,34 @@ const config = {
// Simple use-case: string editUrl
// editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/',
// Advanced use-case: functional editUrl
- editUrl: ({locale, blogDirPath, blogPath, permalink}) =>
- `https://github.com/wix/Detox/edit/master/website/${blogDirPath}/${blogPath}`,
+ editUrl: ({ locale, blogDirPath, blogPath, permalink }) =>
+ `https://github.com/wix/Detox/edit/next/website/${blogDirPath}/${blogPath}`,
editLocalizedFiles: false,
authorsMapPath: 'authors.yml',
feedOptions: {
- type: null,
+ type: null
},
blogTitle: 'Blog',
- blogDescription: 'All the important updates and announcements from Detox crew, tips and tricks and everything else that you don\'t want to miss.',
+ blogDescription:
+ "All the important updates and announcements from Detox crew, tips and tricks and everything else that you don't want to miss.",
blogSidebarCount: 5,
blogSidebarTitle: 'All our posts',
routeBasePath: 'blog',
include: ['**/*.{md,mdx}'],
- exclude: [
- '**/_*.*',
- '**/_*/**',
- ],
+ exclude: ['**/_*.*', '**/_*/**'],
postsPerPage: 10,
truncateMarker: //,
- showReadingTime: true,
+ showReadingTime: true
},
docs: {
path: '../docs',
sidebarPath: require.resolve('./sidebars.js'),
- editUrl: 'https://github.com/wix/Detox/edit/master/docs/',
+ editUrl: 'https://github.com/wix/Detox/edit/next/docs/',
docLayoutComponent: '@site/src/components/CustomLayout',
- remarkPlugins: [
- [require('@docusaurus/remark-plugin-npm2yarn'), { sync: true }],
- ],
+ remarkPlugins: [[require('@docusaurus/remark-plugin-npm2yarn'), { sync: true }]]
},
pages: {
- remarkPlugins: [
- [require('@docusaurus/remark-plugin-npm2yarn'), { sync: true }],
- ],
+ remarkPlugins: [[require('@docusaurus/remark-plugin-npm2yarn'), { sync: true }]]
},
theme: {
customCss: require.resolve('./src/css/custom.css')
@@ -90,17 +84,23 @@ const config = {
position: 'left',
label: 'API'
},
+ {
+ to: 'showcase',
+ label: 'Showcase',
+ position: 'left',
+ className: 'header-showcase-link'
+ },
{
type: 'docsVersionDropdown',
position: 'right',
- dropdownActiveClassDisabled: true,
+ dropdownActiveClassDisabled: true
},
{
href: 'https://github.com/wix/Detox',
position: 'right',
className: 'header-github-link',
- 'aria-label': 'GitHub repository',
- },
+ 'aria-label': 'GitHub repository'
+ }
]
},
algolia: {
@@ -109,7 +109,7 @@ const config = {
indexName: 'detox'
},
footer: {
- style: 'dark',
+ style: 'light',
links: [
{
title: 'Docs',
@@ -142,15 +142,24 @@ const config = {
items: [
{
label: 'GitHub',
- href: 'https://github.com/wix/Detox'
+ href: 'https://github.com/wix/Detox',
+ position: 'left',
+ className: 'footer-gh-footer',
+ favicon: '/static/img/showcase/gh-footer-light.svg'
},
{
label: 'Twitter',
- href: 'https://twitter.com/detoxe2e/'
+ href: 'https://twitter.com/detoxe2e/',
+ position: 'left',
+ className: 'footer-twitter-footer',
+ favicon: '/static/img/showcase/twitter-footer-light.svg'
},
{
label: 'Discord',
- href: 'https://discord.gg/CkD5QKheF5'
+ href: 'https://discord.gg/CkD5QKheF5',
+ position: 'left',
+ className: 'footer-discord-footer',
+ favicon: '/static/img/showcase/discord-footer-light.png'
}
]
}
@@ -158,13 +167,18 @@ const config = {
},
docs: {
sidebar: {
- autoCollapseCategories: true,
- },
+ autoCollapseCategories: true
+ }
},
prism: {
additionalLanguages: ['gradle', 'ini', 'java'],
theme: lightCodeTheme,
darkTheme: darkCodeTheme
+ },
+ colorMode: {
+ defaultMode: 'dark',
+ disableSwitch: false,
+ respectPrefersColorScheme: false
}
}),
scripts: [
diff --git a/website/showcase.json b/website/showcase.json
new file mode 100644
index 0000000000..a6d581278f
--- /dev/null
+++ b/website/showcase.json
@@ -0,0 +1,86 @@
+[
+ {
+ "title": "Hudl",
+ "image": "img/showcase/hudl.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.hudl.hudroid",
+ "linkApple": "https://apps.apple.com/us/app/hudl/id412223222"
+ },
+ {
+ "title": "Valora",
+ "image": "img/showcase/valora.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=co.clabs.valora",
+ "linkApple": "https://apps.apple.com/us/app/valora-crypto-wallet/id1520414263"
+ },
+ {
+ "title": "Wix Spaces",
+ "image": "img/showcase/wix-spaces.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.wix.android",
+ "linkApple": "https://apps.apple.com/us/app/spaces-follow-businesses/id1099748482"
+ },
+ {
+ "title": "Wix Owner",
+ "image": "img/showcase/wix-owner.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.wix.admin",
+ "linkApple": "https://apps.apple.com/us/app/wix-owner-website-builder/id1545924344"
+ },
+ {
+ "title": "React Native",
+ "image": "img/showcase/react-native.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.thesevenitsolutions.reactnative",
+ "linkApple": "https://apps.apple.com/us/app/react-native-components-apis/id1333539401"
+ },
+ {
+ "title": "Rocket Chat",
+ "image": "img/showcase/rocket-chat.webp",
+ "linkGoogle": "https://play.google.com/store/search?q=rocket%20chat&c=apps",
+ "linkApple": "https://apps.apple.com/us/app/rocket-chat/id1148741252"
+ },
+ {
+ "title": "WealthSimple",
+ "image": "img/showcase/wealthsimple.png",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.wealthsimple.trade",
+ "linkApple": "https://apps.apple.com/us/app/wealthsimple-invest/id948087968"
+ },
+ {
+ "title": "Pitch",
+ "image": "img/showcase/pitch.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.pitch.android&gl=IL",
+ "linkApple": "https://apps.apple.com/us/app/pitch-collaborate-on-decks/id1551335606?platform=iphone"
+ },
+ {
+ "title": "RN DateTimePicker",
+ "titleFontSize": "1.5rem",
+ "image": "img/showcase/rn-datetimepicker.png",
+ "linkGitHub": "https://github.com/react-native-datetimepicker/datetimepicker"
+ },
+ {
+ "title": "Maiia",
+ "image": "img/showcase/maiia.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.cegedim.maiia.patient",
+ "linkApple": "https://apps.apple.com/fr/app/maiia-t%C3%A9l%C3%A9consultation-rdv/id1489590732?agc_click_id=596983166549379072"
+ },
+ {
+ "title": "Noona",
+ "image": "img/showcase/noona.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.timatorgmobile&gl=IL",
+ "linkApple": "https://apps.apple.com/is/app/noona-book-anything/id1448498295"
+ },
+ {
+ "title": "Omnon Notes",
+ "image": "img/showcase/omnon.webp",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.nieratechinc.omnomnotes&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1",
+ "linkApple": "https://apps.apple.com/us/app/omnom-notes/id1505867777?ls=1"
+ },
+ {
+ "title": "Bolt",
+ "image": "img/showcase/bolt.webp",
+ "linkGoogle": "https://play.google.com/store/search?q=bolt&c=apps",
+ "linkApple": "https://apps.apple.com/us/app/bolt-fast-affordable-rides/id675033630"
+ },
+ {
+ "title": "Next",
+ "image": "img/showcase/next.jpg",
+ "linkGoogle": "https://play.google.com/store/apps/details?id=com.nextinsurance",
+ "linkApple": "https://apps.apple.com/us/app/next-insurance/id1580721755"
+ }
+]
diff --git a/website/src/components/Showcase/Card.js b/website/src/components/Showcase/Card.js
new file mode 100644
index 0000000000..9f46689338
--- /dev/null
+++ b/website/src/components/Showcase/Card.js
@@ -0,0 +1,34 @@
+import React from 'react';
+import clsx from 'clsx';
+import Link from '@docusaurus/Link';
+import styles from './Card.module.css';
+
+function Card({ className, title, titleFontSize, image, linkGoogle, linkApple, linkGitHub }) {
+ return (
+
+
+
+ {title}
+
+
+ {linkGoogle && (
+
+ Google Play
+
+ )}
+ {linkApple && (
+
+ App Store
+
+ )}
+ {linkGitHub && (
+
+ GitHub
+
+ )}
+
+
+ );
+}
+
+export default Card;
diff --git a/website/src/components/Showcase/Card.module.css b/website/src/components/Showcase/Card.module.css
new file mode 100644
index 0000000000..fa6daea132
--- /dev/null
+++ b/website/src/components/Showcase/Card.module.css
@@ -0,0 +1,102 @@
+.card {
+ box-sizing: border-box;
+ width: 310px;
+
+ position: relative;
+ overflow: hidden;
+
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+
+ border: 1px solid rgb(239, 239, 239);
+ border-radius: 5%;
+ padding: 20px;
+
+ transition: box-shadow 0.25s ease-in-out;
+
+ font-family: 'Nunito Sans', sans-serif;
+ font-weight: normal;
+}
+
+.card:hover {
+ box-shadow: 0px 12px 12px #00000006;
+}
+
+.card::before {
+ content: '';
+
+ position: absolute;
+ z-index: -1;
+
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+}
+
+[data-theme='dark'] .card::before {
+ background: radial-gradient(100% 100% at 1.07% 0%, rgba(255, 99, 0, 0.2) 0%, rgba(0, 0, 0, 0) 100%);
+ transition: opacity 0.25s ease-in-out;
+}
+
+.card:hover::before {
+ opacity: 1;
+}
+
+[data-theme='dark'] .card {
+ border-color: #313439;
+}
+
+[data-theme='dark'] .card:hover {
+ box-shadow: 0px 12px 12px #0000001d;
+}
+
+.title {
+ font-weight: 700;
+ font-size: 30px;
+ margin: 20px 0 38px;
+}
+
+.image {
+ width: 70px;
+ height: 70px;
+ border-radius: 25%;
+ box-shadow: 0 1px 2px 0 rgb(60 64 67 / 30%), 0 1px 3px 1px rgb(60 64 67 / 15%);
+}
+
+.storeButton {
+ display: inline-block;
+ width: 115px;
+ height: 30px;
+ line-height: 30px;
+ margin-right: 10px;
+ color: #000;
+ text-align: center;
+ text-decoration: none;
+ border-radius: 25px;
+ font-size: 16px;
+ background: #f1f1f1;
+}
+
+.storeButton:hover {
+ background-color: #5a3fc6;
+ transition: transform 0.25s ease-in-out;
+ filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
+ color: #ffffff;
+ text-decoration: none;
+}
+
+[data-theme='dark'] .storeButton {
+ background-color: #313439;
+ color: #fff;
+}
+
+[data-theme='dark'] .storeButton:hover {
+ background-color: #5a3fc6;
+}
+
+.storeButton:focus {
+ outline: none;
+}
diff --git a/website/src/components/Showcase/Hero.js b/website/src/components/Showcase/Hero.js
new file mode 100644
index 0000000000..f7a32f8172
--- /dev/null
+++ b/website/src/components/Showcase/Hero.js
@@ -0,0 +1,19 @@
+import clsx from 'clsx';
+import React from 'react';
+import Link from '@docusaurus/Link';
+import styles from './Hero.module.css';
+
+export default function ShowcaseHero() {
+ return (
+
+
+
Users Showcase
+
Check out who is using Detox to Gray box test their React Native Apps
+
+
+ Join the Showcase!
+
+
+
+ );
+}
diff --git a/website/src/components/Showcase/Hero.module.css b/website/src/components/Showcase/Hero.module.css
new file mode 100644
index 0000000000..6b3b61e2ec
--- /dev/null
+++ b/website/src/components/Showcase/Hero.module.css
@@ -0,0 +1,85 @@
+.heroBanner {
+ height: 420px;
+ width: auto;
+ color: white;
+ text-align: center;
+ position: relative;
+ overflow: hidden;
+ font-family: 'Nunito Sans', sans-serif;
+ font-style: normal;
+ background-color: #202429;
+ background-image: url(@site/static/img/showcase/showcase-illustration.png);
+ background-position-x: center;
+ background-position-y: top;
+ background-repeat: no-repeat;
+ background-size: cover;
+}
+
+.heroBanner h1 {
+ font-family: 'Nunito Sans', sans-serif;
+ font-style: normal;
+ font-weight: 700;
+ font-size: 58px;
+}
+
+.heroBanner p {
+ font-family: 'Nunito Sans', sans-serif;
+ font-style: normal;
+ font-weight: 300;
+ font-size: 20px;
+}
+
+.button {
+ color: #ffffff;
+ box-sizing: border-box;
+ display: flex;
+ position: relative;
+ margin: auto;
+ margin-top: 20px;
+ text-align: center;
+ align-items: center;
+ justify-content: center;
+ width: 200px;
+ height: 45px;
+ border-radius: 10px;
+ border: 1px solid #000000;
+ filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
+ background: radial-gradient(100% 100% at 1.07% 0%, #7633e5 0%, #5d71e5 100%);
+}
+
+.button:focus {
+ outline: none;
+}
+
+.button .button--secondary {
+ background-color: #7633e5;
+ color: #ffffff;
+ width: 500px;
+}
+
+.button:hover {
+ background: #7633e5;
+ color: #ffffff;
+ text-decoration: none;
+ border: 1 px solid #000000;
+}
+
+.button a {
+ color: #ffffff;
+ text-decoration: none;
+
+ /* T/T2 */
+ font-family: 'Nunito Sans', sans-serif;
+ font-style: normal;
+ font-weight: 100px;
+ font-size: 16px;
+ line-height: 25px;
+ /* identical to box height, or 156% */
+ color: #ffffff;
+}
+
+@media screen and (max-width: 966px) {
+ .heroBanner {
+ padding: 2rem;
+ }
+}
diff --git a/website/src/components/Showcase/Showcase.js b/website/src/components/Showcase/Showcase.js
new file mode 100644
index 0000000000..c8ea31bc23
--- /dev/null
+++ b/website/src/components/Showcase/Showcase.js
@@ -0,0 +1,17 @@
+import React from 'react';
+import clsx from 'clsx';
+import Card from './Card';
+import cardList from '@site/showcase.json';
+import styles from './Showcase.module.css';
+
+function Showcase() {
+ const cards = cardList.map((props) => );
+
+ return (
+
+ );
+}
+
+export default Showcase;
diff --git a/website/src/components/Showcase/Showcase.module.css b/website/src/components/Showcase/Showcase.module.css
new file mode 100644
index 0000000000..915a70f26e
--- /dev/null
+++ b/website/src/components/Showcase/Showcase.module.css
@@ -0,0 +1,11 @@
+.container {
+ padding: 80px 0 60px 40px;
+}
+
+.list {
+ list-style: none;
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: center;
+ gap: 60px;
+}
diff --git a/website/src/components/Showcase/index.js b/website/src/components/Showcase/index.js
new file mode 100644
index 0000000000..6ac7a03ac3
--- /dev/null
+++ b/website/src/components/Showcase/index.js
@@ -0,0 +1,2 @@
+export { default as Hero } from './Hero';
+export { default as List } from './Showcase';
diff --git a/website/src/css/custom.css b/website/src/css/custom.css
index 2d30c5f5e4..3fb8de3216 100644
--- a/website/src/css/custom.css
+++ b/website/src/css/custom.css
@@ -4,6 +4,9 @@
* work well for content-centric websites.
*/
+@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@300;700&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;600&display=swap');
+
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #048fc0;
@@ -17,10 +20,6 @@
--docusaurus-highlighted-code-line-bg: #d9e5f6;
}
-.footer--dark {
- background: #212122;
-}
-
.docusaurus-highlight-code-line {
background-color: rgba(0, 0, 0, 0.1);
display: block;
@@ -28,27 +27,137 @@
padding: 0 var(--ifm-pre-padding);
}
-:root[data-theme='dark'] {
- --ifm-pre-color: red;
- --docusaurus-highlighted-code-line-bg: #091425;
-}
-
.header-github-link:hover {
- opacity: 0.6;
+ opacity: 0.6;
}
.header-github-link:before {
- content: '';
- width: 24px;
- height: 24px;
- display: flex;
- background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
- no-repeat;
+ content: '';
+ width: 24px;
+ height: 24px;
+ display: flex;
+ background: url('@site/static/img/showcase/gh-nav-light.svg') no-repeat;
}
html[data-theme='dark'] .header-github-link:before {
- background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
- no-repeat;
+ background: url('@site/static/img/showcase/gh-nav-dark.svg') no-repeat;
+}
+
+.footer {
+ background-color: #ffffff;
+ border-top: 1px solid #f2eeeee8;
+}
+
+html[data-theme='dark'] {
+ --ifm-background-color: #202429;
+}
+
+[data-theme='dark'] .footer {
+ /* background-color: #1b1b1d; */
+ background-color: #202429;
+ border-top: 1px solid #313439;
+}
+
+.footer-gh-footer {
+ background: url(@site/static/img/showcase/gh-footer-light.svg) no-repeat;
+ content: 'Footer';
+ display: inline-flexbox;
+ padding-left: 30px;
+ color: var(--ifm-footer-link-color);
+}
+
+.footer__link-item a {
+ text-decoration: none;
+}
+
+.footer-twitter-footer {
+ background: url(@site/static/img/showcase/twitter-footer-light.svg) no-repeat;
+ content: 'Footer';
+ display: inline-flexbox;
+ padding-left: 30px;
+ color: var(--ifm-footer-link-color);
+}
+
+[data-theme='dark'] .footer-twitter-footer {
+ background: url('@site/static/img/showcase/twitter-footer-dark.svg') no-repeat;
+}
+
+[data-theme='dark'] .footer-gh-footer {
+ background: url('@site/static/img/showcase/gh-footer-dark.svg') no-repeat;
+}
+
+.footer-discord-footer {
+ background: url(@site/static/img/showcase/discord-footer-light.svg) no-repeat;
+ content: 'Footer';
+ display: inline-flexbox;
+ padding-left: 30px;
+ color: var(--ifm-footer-link-color);
+}
+
+[data-theme='dark'] .footer-discord-footer {
+ background: url('@site/static/img/showcase/discord-footer-dark.svg') no-repeat;
+}
+
+.header-showcase-link:after {
+ background: url('@site/static/img/showcase/showcase-icon-dark.svg') no-repeat;
+ content: '';
+ display: inline-flexbox;
+ padding-left: 28px;
+}
+
+.iconExternalLink_node_modules-\@docusaurus-theme-classic-lib-theme-Icon-ExternalLink-styles-module {
+ display: none;
+}
+
+.header-showcase-link:hover::after {
+ background: url('@site/static/img/showcase/showcase-icon-hover.svg') no-repeat;
+}
+
+[data-theme='dark'] .header-showcase-link:hover::after {
+ background: url('@site/static/img/showcase/showcase-icon-hover.svg') no-repeat;
+}
+
+/* TODO - change the image to stars-light-black here with matching lighter nav color shade black */
+[data-theme='dark'] .header-showcase-link:after {
+ background: url('@site/static/img/showcase/showcase-icon-white.svg') no-repeat;
+}
+
+[data-theme='dark'] .navbar {
+ background-color: #202429;
+}
+
+.navbar__link {
+ font-weight: 300;
+}
+
+.navbar__link--active {
+ text-decoration: none;
+ color: var(--ifm-navbar-link-color);
+ font-weight: var(--ifm-font-weight-semibold);
+}
+
+.navbar__item {
+ padding: 5px;
+ font-weight: 300;
+}
+
+[data-theme='dark'] .navbar__item {
+ padding: 5px;
+ font-weight: 300;
+}
+
+[data-theme='light'] .banner {
+ color: #000000;
+}
+
+[data-theme='dark'] .showcaseSection {
+ border: 1px solid #131419;
+}
+
+.showcaseSection:hover {
+ filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
+ box-shadow: 0px 2px 24px hsla(237, 19%, 13%, 1);
+ transition: transform 0.25s ease-in-out;
}
.markdown code {
diff --git a/website/src/pages/showcase.js b/website/src/pages/showcase.js
new file mode 100644
index 0000000000..2d5904fef3
--- /dev/null
+++ b/website/src/pages/showcase.js
@@ -0,0 +1,22 @@
+import React from 'react';
+import Head from '@docusaurus/Head';
+import Layout from '@theme/Layout';
+import StandWithUkraine from '@site/src/components/StandWithUkraine';
+import * as Showcase from '@site/src/components/Showcase';
+
+export default function ShowcasePage() {
+ return (
+ <>
+
+ Showcase | Detox
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/website/static/img/showcase/bolt.webp b/website/static/img/showcase/bolt.webp
new file mode 100644
index 0000000000..8703cb27a1
Binary files /dev/null and b/website/static/img/showcase/bolt.webp differ
diff --git a/website/static/img/showcase/discord-footer-dark.svg b/website/static/img/showcase/discord-footer-dark.svg
new file mode 100644
index 0000000000..bc9539d29e
--- /dev/null
+++ b/website/static/img/showcase/discord-footer-dark.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/img/showcase/discord-footer-light.svg b/website/static/img/showcase/discord-footer-light.svg
new file mode 100644
index 0000000000..10147b5811
--- /dev/null
+++ b/website/static/img/showcase/discord-footer-light.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/img/showcase/gh-footer-dark.svg b/website/static/img/showcase/gh-footer-dark.svg
new file mode 100644
index 0000000000..68534d1263
--- /dev/null
+++ b/website/static/img/showcase/gh-footer-dark.svg
@@ -0,0 +1,26 @@
+
+
diff --git a/website/static/img/showcase/gh-footer-light.svg b/website/static/img/showcase/gh-footer-light.svg
new file mode 100644
index 0000000000..28628acc67
--- /dev/null
+++ b/website/static/img/showcase/gh-footer-light.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/img/showcase/gh-nav-dark.svg b/website/static/img/showcase/gh-nav-dark.svg
new file mode 100644
index 0000000000..0b0d22510a
--- /dev/null
+++ b/website/static/img/showcase/gh-nav-dark.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/img/showcase/gh-nav-light.svg b/website/static/img/showcase/gh-nav-light.svg
new file mode 100644
index 0000000000..15c9dfc70e
--- /dev/null
+++ b/website/static/img/showcase/gh-nav-light.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/img/showcase/hudl.webp b/website/static/img/showcase/hudl.webp
new file mode 100644
index 0000000000..33c799872f
Binary files /dev/null and b/website/static/img/showcase/hudl.webp differ
diff --git a/website/static/img/showcase/maiia.webp b/website/static/img/showcase/maiia.webp
new file mode 100644
index 0000000000..2dbc543efa
Binary files /dev/null and b/website/static/img/showcase/maiia.webp differ
diff --git a/website/static/img/showcase/next.jpg b/website/static/img/showcase/next.jpg
new file mode 100644
index 0000000000..127db1c07a
Binary files /dev/null and b/website/static/img/showcase/next.jpg differ
diff --git a/website/static/img/showcase/noona.webp b/website/static/img/showcase/noona.webp
new file mode 100644
index 0000000000..89ffbbf2f2
Binary files /dev/null and b/website/static/img/showcase/noona.webp differ
diff --git a/website/static/img/showcase/omnon.webp b/website/static/img/showcase/omnon.webp
new file mode 100644
index 0000000000..6db70424d8
Binary files /dev/null and b/website/static/img/showcase/omnon.webp differ
diff --git a/website/static/img/showcase/pitch.webp b/website/static/img/showcase/pitch.webp
new file mode 100644
index 0000000000..cdb9255525
Binary files /dev/null and b/website/static/img/showcase/pitch.webp differ
diff --git a/website/static/img/showcase/react-native.webp b/website/static/img/showcase/react-native.webp
new file mode 100644
index 0000000000..65f082b6e2
Binary files /dev/null and b/website/static/img/showcase/react-native.webp differ
diff --git a/website/static/img/showcase/rn-datetimepicker.png b/website/static/img/showcase/rn-datetimepicker.png
new file mode 100644
index 0000000000..c5bb1a4b81
Binary files /dev/null and b/website/static/img/showcase/rn-datetimepicker.png differ
diff --git a/website/static/img/showcase/rocket-chat.webp b/website/static/img/showcase/rocket-chat.webp
new file mode 100644
index 0000000000..a478bdf115
Binary files /dev/null and b/website/static/img/showcase/rocket-chat.webp differ
diff --git a/website/static/img/showcase/showcase-icon-dark.svg b/website/static/img/showcase/showcase-icon-dark.svg
new file mode 100644
index 0000000000..e2cdbb8401
--- /dev/null
+++ b/website/static/img/showcase/showcase-icon-dark.svg
@@ -0,0 +1,19 @@
+
diff --git a/website/static/img/showcase/showcase-icon-hover.svg b/website/static/img/showcase/showcase-icon-hover.svg
new file mode 100644
index 0000000000..5882fb4cb4
--- /dev/null
+++ b/website/static/img/showcase/showcase-icon-hover.svg
@@ -0,0 +1,19 @@
+
diff --git a/website/static/img/showcase/showcase-icon-white.svg b/website/static/img/showcase/showcase-icon-white.svg
new file mode 100644
index 0000000000..b3cf02c179
--- /dev/null
+++ b/website/static/img/showcase/showcase-icon-white.svg
@@ -0,0 +1,19 @@
+
diff --git a/website/static/img/showcase/showcase-illustration.png b/website/static/img/showcase/showcase-illustration.png
new file mode 100644
index 0000000000..ec08fda45e
Binary files /dev/null and b/website/static/img/showcase/showcase-illustration.png differ
diff --git a/website/static/img/showcase/twitter-footer-dark.svg b/website/static/img/showcase/twitter-footer-dark.svg
new file mode 100644
index 0000000000..f504b9976d
--- /dev/null
+++ b/website/static/img/showcase/twitter-footer-dark.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/img/showcase/twitter-footer-light.svg b/website/static/img/showcase/twitter-footer-light.svg
new file mode 100644
index 0000000000..dd34afd343
--- /dev/null
+++ b/website/static/img/showcase/twitter-footer-light.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/img/showcase/valora.webp b/website/static/img/showcase/valora.webp
new file mode 100644
index 0000000000..923f32537a
Binary files /dev/null and b/website/static/img/showcase/valora.webp differ
diff --git a/website/static/img/showcase/wealthsimple.png b/website/static/img/showcase/wealthsimple.png
new file mode 100644
index 0000000000..7f100fbeb2
Binary files /dev/null and b/website/static/img/showcase/wealthsimple.png differ
diff --git a/website/static/img/showcase/wix-owner.webp b/website/static/img/showcase/wix-owner.webp
new file mode 100644
index 0000000000..2fd455264a
Binary files /dev/null and b/website/static/img/showcase/wix-owner.webp differ
diff --git a/website/static/img/showcase/wix-spaces.webp b/website/static/img/showcase/wix-spaces.webp
new file mode 100644
index 0000000000..5109042cdc
Binary files /dev/null and b/website/static/img/showcase/wix-spaces.webp differ