diff --git a/package-lock.json b/package-lock.json index 47b084a03..900fb240a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6245,13 +6245,13 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { "abbrev": { @@ -6270,7 +6270,7 @@ "optional": true }, "are-we-there-yet": { - "version": "1.1.4", + "version": "1.1.5", "bundled": true, "optional": true, "requires": { @@ -6293,7 +6293,7 @@ } }, "chownr": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "optional": true }, @@ -6318,15 +6318,15 @@ "optional": true }, "debug": { - "version": "2.6.9", + "version": "4.1.1", "bundled": true, "optional": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "deep-extend": { - "version": "0.5.1", + "version": "0.6.0", "bundled": true, "optional": true }, @@ -6369,7 +6369,7 @@ } }, "glob": { - "version": "7.1.2", + "version": "7.1.3", "bundled": true, "optional": true, "requires": { @@ -6387,11 +6387,11 @@ "optional": true }, "iconv-lite": { - "version": "0.4.21", + "version": "0.4.24", "bundled": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -6448,16 +6448,16 @@ "optional": true }, "minipass": { - "version": "2.2.4", + "version": "2.3.5", "bundled": true, "optional": true, "requires": { - "safe-buffer": "^5.1.1", + "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "minizlib": { - "version": "1.1.0", + "version": "1.2.1", "bundled": true, "optional": true, "requires": { @@ -6473,32 +6473,32 @@ } }, "ms": { - "version": "2.0.0", + "version": "2.1.1", "bundled": true, "optional": true }, "needle": { - "version": "2.2.0", + "version": "2.3.0", "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", + "debug": "^4.1.0", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.10.0", + "version": "0.12.0", "bundled": true, "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", - "needle": "^2.2.0", + "needle": "^2.2.1", "nopt": "^4.0.1", "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", - "rc": "^1.1.7", + "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4" @@ -6514,12 +6514,12 @@ } }, "npm-bundled": { - "version": "1.0.3", + "version": "1.0.6", "bundled": true, "optional": true }, "npm-packlist": { - "version": "1.1.10", + "version": "1.4.1", "bundled": true, "optional": true, "requires": { @@ -6586,11 +6586,11 @@ "optional": true }, "rc": { - "version": "1.2.7", + "version": "1.2.8", "bundled": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", + "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" @@ -6618,15 +6618,15 @@ } }, "rimraf": { - "version": "2.6.2", + "version": "2.6.3", "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "safe-buffer": { - "version": "5.1.1", + "version": "5.1.2", "bundled": true, "optional": true }, @@ -6641,7 +6641,7 @@ "optional": true }, "semver": { - "version": "5.5.0", + "version": "5.7.0", "bundled": true, "optional": true }, @@ -6687,16 +6687,16 @@ "optional": true }, "tar": { - "version": "4.4.1", + "version": "4.4.8", "bundled": true, "optional": true, "requires": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", + "safe-buffer": "^5.1.2", "yallist": "^3.0.2" } }, @@ -6706,11 +6706,11 @@ "optional": true }, "wide-align": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { @@ -6719,7 +6719,7 @@ "optional": true }, "yallist": { - "version": "3.0.2", + "version": "3.0.3", "bundled": true, "optional": true } @@ -12746,6 +12746,489 @@ "webpack-dev-server": "3.1.14", "webpack-manifest-plugin": "2.0.4", "workbox-webpack-plugin": "3.6.3" + }, + "dependencies": { + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "optional": true + } + } + } } }, "read-pkg": { diff --git a/src/App.js b/src/App.js index e7ca67f20..44eebaf5d 100755 --- a/src/App.js +++ b/src/App.js @@ -1,17 +1,129 @@ import React, { Component } from 'react'; +import IdCard from './components/IdCard'; +import Greetings from './components/Greetings'; +import Random from './components/Random'; +import BoxColor from './components/BoxColor'; +import CreditCard from './components/CreditCard'; +import Rating from './components/Rating'; +import DriverCard from './components/DriverCard'; +import LikeButton from './components/LikeButton'; class App extends Component { render() { return (
-

IdCard

- {/* TODO: Use the IdCard component */} +
+

IdCard

+ +
-

Greetings

- {/* TODO: Use the Greetings component */} +
+

Greetings

+ +

Hallo Ludwig

+
+
+ +
+

Random

+
+
+
+ +
+

Box Color

+
+ + +
+
+ +
+

Credit Card

+
+ + + +
+
+
+

Rating

+ + + + + + +
+
+

Driver Card

+ + +
+
+

Like Button

+
+ + +
+
+
); } } export default App; + + diff --git a/src/components/BoxColor.js b/src/components/BoxColor.js new file mode 100644 index 000000000..5bde25f58 --- /dev/null +++ b/src/components/BoxColor.js @@ -0,0 +1,41 @@ +import React from 'react' + +function BoxColor(props) { + const { r, g, b } = props + const colorString = 'rgb(' + r + ',' + g + ',' + b + ')' + // console.log(colorString) + const divStyle = { + backgroundColor: colorString, + // also works with backgroundColor: 'rgb(' + r + ',' + g + ',' + b + ')', + height: '9rem', + width: '9rem', + display: 'flex', + flexFlow: 'column wrap', + justifyContent: 'center', + padding: '2rem', + fontSize: '1.125rem', + textAlign: 'center' + } + + const colorToHex = (color) => { + let hex = Number(color).toString(16); + return hex.length < 2 ? hex = '0' + hex : hex + } + + let rgbToHex = (r, g, b) => { + const red = colorToHex(r); + const green = colorToHex(g); + const blue = colorToHex(b); + return red + green + blue; + } + + return ( +
+

{colorString}

+

#{rgbToHex(props.r, props.g, props.b)}

+
+ ) +} + +export default BoxColor + diff --git a/src/components/CreditCard.js b/src/components/CreditCard.js new file mode 100644 index 000000000..1b5d8ad8c --- /dev/null +++ b/src/components/CreditCard.js @@ -0,0 +1,40 @@ +import React from 'react' + +function CreditCard(props) { + const divStyle = { + backgroundColor: props.bgColor, + color: props.color, + display: 'flex', + flexFlow: 'column nowrap' + } + + const cardType = props.type === 'Visa' ? './img/visa.png' : './img/master-card.svg' + + const maskNumber = (number) => { + return number.slice(0, -4).replace(/./g, '• ') + number.slice(-4) + } + + const addZero = (month) => { + const monthStr = month.toString(); + return monthStr.length < 2 ? '0' + monthStr : monthStr; + } + + const removeDigits = (year) => { + const yearStr = year.toString(); + return yearStr.slice(0, -2).replace(/./g, '') + yearStr.slice(-2) + } + + return ( +
+ {props.type} +

{maskNumber(props.number)}

+
+

Expires: {addZero(props.expirationMonth)}/{removeDigits(props.expirationYear)}

+

{props.bank}

+
+

{props.owner}

+
+ ) +} + +export default CreditCard \ No newline at end of file diff --git a/src/components/DriverCard.js b/src/components/DriverCard.js new file mode 100644 index 000000000..edc87cb81 --- /dev/null +++ b/src/components/DriverCard.js @@ -0,0 +1,17 @@ +import React from 'react' +import Rating from './Rating'; + +function DriverCard(props) { + return ( +
+ {props.name} +
+

{props.name}

+
+

{props.car.model}-{props.car.licensePlate}

+
+
+ ) +} + +export default DriverCard \ No newline at end of file diff --git a/src/components/Greetings.js b/src/components/Greetings.js new file mode 100644 index 000000000..cb33a7694 --- /dev/null +++ b/src/components/Greetings.js @@ -0,0 +1,14 @@ +import React, { Component } from 'react' + +class Greetings extends Component { + render() { + const { lang, children } = this.props + return ( + <> +
{children}
+ + ) + } +} + +export default Greetings diff --git a/src/components/IdCard.js b/src/components/IdCard.js new file mode 100644 index 000000000..a7fc81f53 --- /dev/null +++ b/src/components/IdCard.js @@ -0,0 +1,23 @@ +import React, { Component } from 'react' + +class IdCard extends Component { + render() { + const { lastName, firstName, gender, height, birth, picture } = this.props; + const birthDate = birth.toDateString(); + return ( +
+ a profile +
+

First Name:{firstName}

+

Last Name:{lastName}

+

Gender:{gender}

+

Height:{height}

+

Birth:{birthDate}

+
+
+ ) + } +} + +export default IdCard + diff --git a/src/components/LikeButton.js b/src/components/LikeButton.js new file mode 100644 index 000000000..c38008cef --- /dev/null +++ b/src/components/LikeButton.js @@ -0,0 +1,25 @@ +import React, { Component } from 'react' + +class LikeButton extends Component { + state = { + number: 0, + text: 'Likes' + } + + modifyNumber = (sum) => { + let newNumber = this.state.number + this.setState({ + number: newNumber + sum + }) + } + + render() { + return ( + <> + + + ) + } +} + +export default LikeButton diff --git a/src/components/Random.js b/src/components/Random.js new file mode 100644 index 000000000..3aacc5d0c --- /dev/null +++ b/src/components/Random.js @@ -0,0 +1,15 @@ +import React, { Component } from 'react' + +class Random extends Component { + render() { + const { min, max } = this.props + const randomValue = () => Math.round(Math.random() * (max - min) + min) + return ( +
+ Random value between {min} and {max} => {randomValue()} + + ) + } +} + +export default Random diff --git a/src/components/Rating.js b/src/components/Rating.js new file mode 100644 index 000000000..b043e110d --- /dev/null +++ b/src/components/Rating.js @@ -0,0 +1,24 @@ +import React from 'react' + +function Rating(props) { + const value = Math.round(props.children); + + const star = (rates) => { + let filled = '★'; + let empty = '☆'; + let stars = new Array(5); + + for (let i = 0; i < 5; i++) { + i < rates ? stars[i] = filled : stars[i] = empty; + } + return stars.join('') + } + + return ( +
+ {star(value)} +
+ ) +} + +export default Rating \ No newline at end of file diff --git a/src/index.css b/src/index.css index cee5f348f..e8da473b8 100755 --- a/src/index.css +++ b/src/index.css @@ -1,6 +1,5 @@ body { margin: 0; - padding: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; @@ -9,6 +8,218 @@ body { } code { - font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", - monospace; + font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; } + +p { + margin: 0; +} + +.challenge { + padding: 3.5rem 1rem 0 1rem; +} + +@media (min-width: 768px) { + .challenge { + padding: 4.5rem 3.5rem 0 3.5rem; + } +} + +.card-container, +.card-info { + display: inline-flex; + background-color: #fabada; +} + +.card-container { + flex-flow: row nowrap; + width: 100%; +} + +@media (min-width: 768px) { + .card-container { + flex-flow: row wrap; + width: auto; + } +} + +.card-info { + flex-flow: column nowrap; + justify-content: center; + font-size: .875rem; + line-height: 1.2; + padding: 1rem; +} + +@media (min-width: 768px) { + .card-info { + font-size: 1rem; + line-height: 1.8; + padding: 1.5rem; + } +} + +.card-image { + width: 7rem; + height: auto; +} + +@media (min-width: 768px) { + .card-image { + width: 12rem; + height: auto; + } +} + +.card-label { + font-weight: 800; + margin: 0 .5rem 0 0; +} + +.boxed-text { + padding: 1.5rem; + border: 1px solid #fabada; +} + +.boxed-text { + max-width: 23rem; + margin-bottom: .5rem; +} + +.boxes-container { + display: flex; + flex-flow: row wrap; +} + +.credit-cards, +.driver-container { + display: flex; + flex-flow: row wrap; +} + +.cc-container { + display: flex; + width: 100%; + border-radius: .5rem; + padding: 1.25rem; + margin: 0 0 1rem 0; +} + +@media (min-width: 768px) { + .cc-container { + width: 17.5rem; + padding: 2rem; + margin: 0 1rem 1rem 0; + } +} + +.cc-brand { + width: auto; + height: 1.75rem; + align-self: flex-end; +} + +.cc-number { + font-size: 1.45rem; + font-weight: 600; + padding: 1.5rem 0; + width: 100%; +} + +@media (min-width: 768px) { + .cc-number { + font-size: 1.65rem; + } +} + +.cc-info { + display: flex; + width: 100%; +} + +.cc-info, +.cc-owner { + font-size: .875rem; +} + +@media (min-width: 768px) { + .cc-info, + .cc-owner { + font-size: 1rem; + } +} + +.cc-expiration { + margin-right: 1.5rem; +} + +.driver-container { + display: flex; + justify-content: center; + text-align: center; + color: #fff; + background-color: #455EB3; + border-radius: .5rem; + padding: 1.25rem; + margin-bottom: 1rem; +} + +@media (min-width: 768px) { + .driver-container { + padding: 2rem; + text-align: left; + } +} + +.driver-image { + width: 6rem; + height: 6rem; + border-radius: 50%; +} + +.driver-name { + font-size: 1.5rem; + margin: .5rem 0; +} + +.driver-details { + margin: 0; +} + +@media (min-width: 768px) { + .driver-details { + margin-left: 1.5rem; + } +} + +.driver-rating { + display: flex; + justify-content: center; +} + +@media (min-width: 768px) { + .driver-rating { + justify-content: flex-start; + } +} + +.driver-car { + margin: .5rem 0 0 0; +} + +.buttons-container { + display: flex; + flex-flow: row wrap; + justify-content: flex-start; +} + +.button-counter { + font-size: 1.125rem; + font-weight: 600; + color: #000; + background-color: #fabada; + border: 2px solid #000; + border-radius: 1.5rem; + padding: .5rem 1rem; + margin: 0 1rem 0 0; +} \ No newline at end of file