diff --git a/web/e.cash/data/wallets.js b/web/e.cash/data/wallets.js
--- a/web/e.cash/data/wallets.js
+++ b/web/e.cash/data/wallets.js
@@ -7,62 +7,73 @@
text: 'Cashtab is an open source, highly secure, non-custodial web wallet for eCash (XEC) & eTokens. Cashtab is a fast, secure & easy-to-use XEC wallet! Cashtab is also available as a browser extension for Google Chrome and Brave.',
image: '/images/cashtab.png',
link: 'https://cashtab.com/',
+ availableOn: ['Web App', 'Web Extension'],
+ features: ['eTokens', 'Message Signing'],
},
{
name: 'Electrum ABC',
text: 'Electrum ABC is a fast and highly secure eCash (XEC) wallet for Windows, MacOS, and Linux. It supports mnemonic seed phrases, hardware wallets, multi-sig wallets, and importing private keys. Electrum ABC is a non-custodial XEC wallet for power users!',
image: '/images/electrum-abc.png',
link: 'https://www.bitcoinabc.org/electrum/',
+ availableOn: ['Desktop'],
+ features: ['eTokens', 'Message Signing', 'Multi-sig wallets'],
},
{
name: 'RaiPay',
text: "RaiPay is a non-custodial mobile wallet for storing & managing eCash (XEC) & eTokens. With RaiPay you can experience the power and speed of eCash (XEC) and eTokens online, in person, and everywhere else. It's available for both Android & iOS devices.",
image: '/images/raipay.png',
link: 'https://www.raipay.co',
+ availableOn: ['iOS', 'Android'],
+ features: ['eTokens', 'Message Signing'],
},
{
name: 'ViaWallet',
text: 'Backed by CoinEx, ViaWallet is a multi-chain non-custodial mobile wallet that supports eCash (XEC). With ViaWallet you can send, receive and manage your XEC coins securely. ViaWallet is available for both Android & iOS devices.',
image: '/images/via-wallet.png',
link: 'https://viawallet.com/',
+ availableOn: ['iOS', 'Android'],
},
{
name: 'AbcPay',
text: "AbcPay is an advanced multi-currency crypto wallet for mobile devices, supporting eCash (XEC) and eTokens. AbcPay provides cutting edge features such as multi-signature wallet, 2FA and biometric authentication. It's available for both Android & iOS devices.",
image: '/images/abc-pay.png',
link: 'https://abcpay.cash/',
+ availableOn: ['iOS', 'Android'],
+ features: ['eTokens', 'Message Signing', 'Multi-sig wallets'],
},
{
name: 'Unstoppable Wallet',
text: 'A privacy-oriented non-custodial wallet for eCash (XEC). Unstoppable is a highly secure, decentralized, and open-source wallet, available for Android and iOS smartphones.',
image: '/images/unstoppable-wallet.png',
link: 'https://unstoppable.money/',
+ availableOn: ['iOS', 'Android'],
},
{
name: 'Stack Wallet',
text: 'An open-source, non-custodial multichain wallet for eCash (XEC). Stack is a highly secure, privacy-first mobile wallet for XEC, available for Android and iOS smartphones.',
image: '/images/stack-wallet.png',
link: 'https://stackwallet.com/',
+ availableOn: ['iOS', 'Android'],
},
-];
-
-export const hardwareWallets = [
{
name: 'Satochip',
text: 'Satochip is an open source and super-secure multi-crypto hardware wallet that natively supports storing eCash (XEC). Satochip cold wallet offers state-of-the-art security for storing & managing your XEC coins.',
image: '/images/satochip.svg',
link: 'https://satochip.io/',
+ availableOn: ['Hardware Wallet'],
},
{
name: "D'CENT",
text: "D'CENT is another major hardware wallet that natively supports eCash (XEC). With the D’CENT biometric hardware wallet, you can securely send, receive, and manage your XEC coins.",
image: '/images/dcent.svg',
link: 'https://dcentwallet.com/',
+ availableOn: ['Hardware Wallet'],
},
{
name: 'Ballet',
text: 'Ballet is a secure non-electronic physical wallet that offers native support for eCash (XEC). Safely store and easily manage your XEC coins with the Ballet cold wallet.',
image: '/images/ballet.png',
link: 'https://www.ballet.com/',
+ availableOn: ['Hardware Wallet'],
},
];
diff --git a/web/e.cash/pages/wallets.js b/web/e.cash/pages/wallets.js
--- a/web/e.cash/pages/wallets.js
+++ b/web/e.cash/pages/wallets.js
@@ -6,15 +6,15 @@
import SubPageHero from '/components/sub-page-hero';
import { Container, GradientSpacer } from '/components/atoms';
import walletAnimation from '/public/animations/wallet.json';
-import { wallets, hardwareWallets } from '/data/wallets.js';
+import { wallets } from '/data/wallets.js';
import ExternalLink from '/components/external-link';
import {
+ WalletListCtn,
WalletCardCtn,
- FlexCtn,
- ImageCtn,
TextCtn,
- OuterImageCtn,
- TitleBox,
+ ImageCtn,
+ DetailsTitle,
+ DetailsCtn,
} from '/styles/pages/wallets.js';
/**
@@ -23,27 +23,39 @@
*/
function WalletCard({ props }) {
return (
-
-
-
-
-
-
-
-
-
- {props.name}
- {props.text}
- Check it Out
-
-
-
-
+
+
+
+
+
+ {props.text}
+ {props.features && (
+ <>
+ Supports
+
+ {props.features.map((item, index) => (
+ {item}
+ ))}
+
+ >
+ )}
+ {props.availableOn && (
+ <>
+ Available on
+
+ {props.availableOn.map((item, index) => (
+ {item}
+ ))}
+
+ >
+ )}
+
+
);
}
@@ -67,15 +79,12 @@
-
- Wallets
- {wallets.map((wallet, index) => (
-
- ))}
- Hardware Wallets
- {hardwareWallets.map((wallet, index) => (
-
- ))}
+
+
+ {wallets.map((wallet, index) => (
+
+ ))}
+
);
diff --git a/web/e.cash/public/images/abc-pay.png b/web/e.cash/public/images/abc-pay.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@
+ getAnimationSettings(),
+)`
display: flex;
- align-items: center;
+ align-items: flex-start;
width: 100%;
- ${props => props.theme.breakpoint.medium} {
+ flex-wrap: wrap;
+ align-items: stretch;
+`;
+
+export const WalletCardCtn = styled.div`
+ width: 33.333%;
+ margin-bottom: 40px;
+ display: inline-block;
+ padding: 15px;
+
+ > a {
+ width: 100%;
+ display: flex;
flex-direction: column;
+ padding: 40px;
+ border: 2px solid ${props => props.theme.colors.primary};
+ background-color: rgba(0, 0, 0, 0.51);
+ height: 100%;
+ :hover {
+ border-color: ${props => props.theme.colors.contrast};
+ background-color: rgba(0, 0, 0, 0.75);
+ }
+
+ @media (max-width: 1330px) {
+ padding: 30px;
+ }
}
-`;
-export const OuterImageCtn = styled.div`
- width: 420px;
- height: 140px;
- padding: 0 20px;
- position: relative;
- border: 1px solid ${props => props.theme.colors.gridlines};
- display: flex;
- align-items: center;
- ${props => props.theme.breakpoint.medium} {
+ @media (max-width: 1330px) {
+ width: 50%;
+ padding: 10px;
+ }
+
+ @media (max-width: 800px) {
width: 100%;
- height: 120px;
- margin-bottom: 20px;
+ margin-bottom: 10px;
}
`;
export const ImageCtn = styled.div`
width: 100%;
- height: 80px;
- padding: 20px;
+ height: 50px;
position: relative;
+ margin-bottom: 30px;
+ display: flex;
+ justify-content: flex-start;
+ @media (max-width: 800px) {
+ height: 40px;
+ }
img {
object-fit: contain;
+ width: unset !important;
+ max-width: 100%;
+ left: 0;
}
`;
export const TextCtn = styled.div`
width: 100%;
- padding: 0 0 0 30px;
color: ${props => props.theme.colors.contrast};
position: relative;
-
- h4 {
- font-size: 28px;
- margin: 0 0 10px 0;
- line-height: 1em;
- transition: all ease-in-out 200ms;
- }
-
- p {
- margin: 0;
- font-size: 16px;
- opacity: 0.6;
- }
-
- h5 {
- text-transform: uppercase;
- color: ${props => props.theme.colors.primaryLight};
- margin: 0;
- margin-top: 10px;
- font-size: 14px;
- }
-
- ${props => props.theme.breakpoint.medium} {
- padding: 0 0 0 0;
- }
+ font-size: 16px;
+ margin-bottom: 30px;
+ line-height: 1.8em;
+ border-top: 1px solid rgba(255, 255, 255, 0.6);
+ padding-top: 20px;
`;
-export const WalletCardCtn = styled(motion.div).attrs(() =>
- getAnimationSettings(),
-)`
- width: 100%;
- margin-bottom: 50px;
- display: inline-block;
- padding: 30px 0;
- transition: background-color ease-in-out 200ms;
- border-radius: 5px;
+export const DetailsTitle = styled.div`
+ font-size: 12px;
+ color: ${props =>
+ props.accent
+ ? props.theme.colors.accent
+ : props.theme.colors.primaryLight};
+ opacity: 0.6;
+`;
- ${props => props.theme.breakpoint.medium} {
- margin-bottom: 90px;
- }
+export const DetailsCtn = styled.div`
+ color: ${props =>
+ props.accent
+ ? props.theme.colors.accent
+ : props.theme.colors.primaryLight};
+ font-size: 16px;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ margin-bottom: ${props => (props.accent ? '15px' : '')};
- :hover {
- background-color: ${props => props.theme.colors.walletHover};
+ > div {
+ margin-right: 5px;
+ font-size: 14px;
+ font-weight: 600;
}
-
- :hover ${TextCtn} {
- h4 {
- color: ${props => props.theme.colors.primaryLight};
- }
+ > div:not(:first-child) {
+ border-left: 1px solid
+ ${props =>
+ props.accent
+ ? props.theme.colors.accent
+ : props.theme.colors.primary};
+ padding-left: 5px;
}
`;
-
-export const TitleBox = styled(motion.div).attrs(() => getAnimationSettings())`
- width: 100%;
- border-left: 3px solid ${props => props.theme.colors.primary};
- background-image: linear-gradient(
- 90deg,
- ${props => props.theme.colors.black},
- transparent 93%
- );
- margin-top: 40px;
- margin-bottom: 40px;
- padding: 10px 20px;
- font-size: 16px;
- text-transform: uppercase;
- margin-bottom: 50px;
-`;