├── README.md ├── .gitignore ├── public ├── robots.txt ├── manifest.json ├── donation.svg └── index.html ├── .eslintrc.js ├── src ├── Components │ ├── Title │ │ └── index.jsx │ ├── Container │ │ └── index.jsx │ ├── Header │ │ └── index.jsx │ └── Account │ │ └── index.jsx ├── index.js ├── App.js ├── info.js └── assets │ ├── images │ ├── ojo.svg │ ├── themeOff.svg │ ├── otros.svg │ ├── privado.svg │ ├── logo.svg │ ├── utilidades.svg │ ├── transporte.svg │ ├── salud.svg │ ├── themeOn.svg │ ├── alimentacion.svg │ └── dinero.svg │ └── estilos.css └── package.json /README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parserOptions: { 3 | parser: '@babel/eslint-parser', 4 | requireConfigFile: false, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /src/Components/Title/index.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const Title = ({ children }) => { 4 | return

{children}

; 5 | }; 6 | export default Title; 7 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | import App from "./App"; 4 | import "./assets/estilos.css"; 5 | 6 | ReactDOM.render( 7 | , 8 | document.getElementById("root") 9 | ); 10 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | import Container from "./Components/Container"; 4 | import Header from "./Components/Header"; 5 | 6 | function App() { 7 | return ( 8 | <> 9 |
10 | 11 | 12 | ); 13 | } 14 | 15 | export default App; 16 | -------------------------------------------------------------------------------- /src/Components/Container/index.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | import Title from "../Title"; 4 | import Account from "../Account"; 5 | 6 | const Container = () => { 7 | return ( 8 |
9 | Smart Bank 10 |
11 | 12 |
13 |
14 | ); 15 | }; 16 | 17 | export default Container; 18 | -------------------------------------------------------------------------------- /src/Components/Header/index.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import logo from "../../assets/images/logo.svg"; 3 | 4 | const Header = () => { 5 | return ( 6 |
7 | Logo Smart Bank 8 |
9 | 10 | Ayuda 11 | 12 | 13 | Salir 14 | 15 |
16 |
17 | ); 18 | }; 19 | 20 | export default Header; 21 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "donation.svg", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "donation.svg", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "donation.svg", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /src/info.js: -------------------------------------------------------------------------------- 1 | export const lista = { 2 | cargos: [ 3 | { 4 | id: "123131321", 5 | type: "Restaurante", 6 | value: "$450.00", 7 | date: "11 JUN", 8 | from: "Pizza Hut", 9 | }, 10 | { 11 | id: "4564654", 12 | type: "Utilidades", 13 | value: "$340.00", 14 | date: "9 JUN", 15 | from: "Cuenta de luz", 16 | }, 17 | { 18 | id: "65445", 19 | type: "Salud", 20 | value: "$150.00", 21 | date: "8 JUN", 22 | from: "Farmacias A.", 23 | }, 24 | { 25 | id: "656565", 26 | type: "Transporte", 27 | value: "$55.00", 28 | date: "8 JUN", 29 | from: "Uber", 30 | }, 31 | { 32 | id: "926544", 33 | type: "Otros", 34 | value: "$1,500.00", 35 | date: "5 JUN", 36 | from: "Amazon", 37 | }, 38 | ], 39 | }; 40 | -------------------------------------------------------------------------------- /src/Components/Account/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from "react"; 2 | 3 | import privado from "../../assets/images/privado.svg"; 4 | import ojo from "../../assets/images/ojo.svg"; 5 | import dinero from "../../assets/images/dinero.svg"; 6 | 7 | const Account = () => { 8 | const [toggleState, untoggle] = useState(true); 9 | 10 | const toggleHandler = () => { 11 | untoggle((toggleState) => !toggleState); 12 | }; 13 | 14 | return ( 15 |
16 |

Cuenta

17 |
18 | Saldo disponible 19 | 20 | Icono de saldo 21 | 22 | {toggleState ? ( 23 |
24 | $ 8,621.50 25 |
26 | ) : null} 27 |
28 | 29 | 37 |
38 | ); 39 | }; 40 | 41 | export default Account; 42 | -------------------------------------------------------------------------------- /src/assets/images/ojo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "styled-final", 3 | "author": "HarlandLohora", 4 | "version": "0.1.0", 5 | "private": true, 6 | "dependencies": { 7 | "@testing-library/jest-dom": "^5.16.5", 8 | "@testing-library/react": "^14.0.0", 9 | "@testing-library/user-event": "^14.4.3", 10 | "react": "^18.2.0", 11 | "react-dom": "^18.2.0", 12 | "react-scripts": "^5.0.1" 13 | }, 14 | "scripts": { 15 | "start": "react-scripts start", 16 | "build": "react-scripts build", 17 | "test": "react-scripts test", 18 | "eject": "react-scripts eject" 19 | }, 20 | "eslintConfig": { 21 | "extends": "react-app" 22 | }, 23 | "browserslist": { 24 | "production": [ 25 | ">0.2%", 26 | "not dead", 27 | "not op_mini all" 28 | ], 29 | "development": [ 30 | "last 1 chrome version", 31 | "last 1 firefox version", 32 | "last 1 safari version" 33 | ] 34 | }, 35 | "devDependencies": { 36 | "@babel/core": "^7.22.0", 37 | "@babel/plugin-proposal-private-property-in-object": "^7.21.0", 38 | "@babel/preset-env": "^7.22.0", 39 | "@babel/preset-react": "^7.22.0", 40 | "babel-loader": "^9.1.2" 41 | }, 42 | "babel": { 43 | "presets": ["@babel/preset-env", "@babel/preset-react"], 44 | "plugins": ["@babel/plugin-proposal-private-property-in-object"] 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/assets/images/themeOff.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/donation.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/assets/images/otros.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 8 | 9 | 12 | 13 | 14 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/assets/images/privado.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | Smart Bank 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/assets/estilos.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600;700&display=swap"); 2 | 3 | * { 4 | box-sizing: border-box; 5 | font-family: "Montserrat", sans-serif; 6 | margin: 0; 7 | padding: 0; 8 | text-decoration: none; 9 | color: grey; 10 | } 11 | 12 | .btn-primario { 13 | text-align: center; 14 | border-radius: 3px; 15 | padding: 5px 20px; 16 | margin: 0 10px; 17 | font-weight: 600; 18 | border: 2px solid white; 19 | color: white; 20 | background: transparent; 21 | } 22 | 23 | .btn-secundario { 24 | text-align: center; 25 | border-radius: 3px; 26 | padding: 5px 20px; 27 | margin: 0 10px; 28 | font-weight: 600; 29 | border: 2px solid white; 30 | background: white; 31 | color: #41d3be; 32 | } 33 | 34 | .title { 35 | color: grey; 36 | padding: 25px 0; 37 | } 38 | 39 | .header { 40 | background-color: #41d3be; 41 | display: flex; 42 | justify-content: space-between; 43 | padding: 0 15vw; 44 | height: 10vh; 45 | align-items: center; 46 | } 47 | 48 | .container { 49 | background-color: #f1f1f1; 50 | min-height: 90vh; 51 | padding: 0px 15vw; 52 | } 53 | 54 | .content { 55 | display: flex; 56 | flex-direction: row; 57 | justify-content: space-between; 58 | } 59 | 60 | .imagen-logo { 61 | height: 50px; 62 | width: 50px; 63 | } 64 | 65 | .imagen-icono { 66 | height: 25px; 67 | width: 25px; 68 | } 69 | 70 | .btn { 71 | margin: 15px auto 0px auto; 72 | display: block; 73 | border-radius: 20px; 74 | background-color: #41d3be; 75 | border: none; 76 | color: white; 77 | font-weight: 600; 78 | font-size: 14px; 79 | padding: 8px 20px; 80 | cursor: pointer; 81 | } 82 | 83 | .box { 84 | display: flex; 85 | flex-direction: column; 86 | justify-content: space-between; 87 | background-color: white; 88 | border-radius: 5px; 89 | box-shadow: 4px 4px 20px 0px rgba(0, 0, 0, 0.04); 90 | padding: 20px; 91 | width: 48%; 92 | } 93 | 94 | .saldo { 95 | font-weight: 700; 96 | font-size: 32px; 97 | } 98 | 99 | .detalle { 100 | color: #41d3be; 101 | font-size: 24px; 102 | } 103 | 104 | @media (max-width: 800px) { 105 | .box { 106 | width: 95%; 107 | margin: 5px; 108 | } 109 | 110 | .content { 111 | flex-direction: column; 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /src/assets/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/assets/images/utilidades.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/assets/images/transporte.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/images/salud.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/images/themeOn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/images/alimentacion.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/images/dinero.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | --------------------------------------------------------------------------------