diff --git a/components/boxcolor/boxcolor.css b/components/boxcolor/boxcolor.css
new file mode 100644
index 0000000..afe40c8
--- /dev/null
+++ b/components/boxcolor/boxcolor.css
@@ -0,0 +1,10 @@
+.cbox{
+ margin:10px;
+ padding:30px;
+ text-align: center;
+ border:2px solid #000000;
+ height: 100px;
+ font-weight:500;
+ font-size: xx-large;
+ display: flex;
+}
diff --git a/components/boxcolor/boxcolor.jsx b/components/boxcolor/boxcolor.jsx
new file mode 100644
index 0000000..a42a2a5
--- /dev/null
+++ b/components/boxcolor/boxcolor.jsx
@@ -0,0 +1,15 @@
+import "./BoxColor.css"
+function BoxColor(props)
+{
+ const toHex = (number) => {
+ let hex = number.toString(16);
+ return hex.length === 1 ? "0" + hex : hex;
+ };
+ let color='#'+(toHex(props.r))+(toHex(props.g))+(toHex(props.b))
+ return
+
rgb({props.r},{props.g},{props.b})
+
{color}
+
+}
+
+export default BoxColor
diff --git a/components/carousel/carousel.css b/components/carousel/carousel.css
new file mode 100644
index 0000000..15e706a
--- /dev/null
+++ b/components/carousel/carousel.css
@@ -0,0 +1,12 @@
+.carousel{
+ display:flex;
+ width:100%;
+ justify-content:center;
+ align-items:center;
+}
+.carousel button{
+ padding:10px 15px;
+}
+.carousel img{
+ margin:10px;
+}
diff --git a/components/carousel/carousel.jsx b/components/carousel/carousel.jsx
new file mode 100644
index 0000000..454a977
--- /dev/null
+++ b/components/carousel/carousel.jsx
@@ -0,0 +1,26 @@
+import React from 'react';
+import './Carousel.css'
+
+function Carousel(props)
+{
+ let arr=props.images
+ let len=arr.length
+ const[img_num , setImg]=React.useState(2)
+ function left()
+ {
+ if(img_num===0)
+ setImg(len-1)
+ else
+ setImg((img_num-1)%len)
+ }
+ function right()
+ {
+ setImg((img_num+1)%len)
+ }
+ return
+
+

+
+
+}
+export default Carousel
diff --git a/components/carousel/clickable.jsx b/components/carousel/clickable.jsx
new file mode 100644
index 0000000..728c7fc
--- /dev/null
+++ b/components/carousel/clickable.jsx
@@ -0,0 +1,14 @@
+import React from 'react';
+function Clickable(props)
+{
+ const [img,putGlasses]=React.useState(props.img)
+ function glasses()
+ {
+ putGlasses(props.imgClicked)
+ }
+ return
+

+
+}
+
+export default Clickable
diff --git a/components/creditcard/creditcard.css b/components/creditcard/creditcard.css
new file mode 100644
index 0000000..b891e0a
--- /dev/null
+++ b/components/creditcard/creditcard.css
@@ -0,0 +1,16 @@
+.credit{
+ width:300px;
+ border-radius: 10px;
+ padding:18px;
+ height: 150px;
+
+ margin:5px;
+ display: inline-block;
+}
+.credit > div{
+ text-align: right;
+}
+.credit img{
+ width:50px;
+
+}
diff --git a/components/creditcard/creditcard.jsx b/components/creditcard/creditcard.jsx
new file mode 100644
index 0000000..07af554
--- /dev/null
+++ b/components/creditcard/creditcard.jsx
@@ -0,0 +1,23 @@
+import './CreditCard.css'
+import visa from '../../assets/images/visa.png'
+import mastercard from '../../assets/images/mastercard.png'
+function CreditCard(props)
+{
+ const img = props.type === 'Visa' ? visa : mastercard;
+ let mon=props.expirationMonth
+ let yr=props.expirationYear%100
+ let ex=''
+ if(mon<10)
+ ex='0'+mon+'/'+yr
+
+ return
+
+

+
+
.... .... .... {props.number.slice(12)}
+
Expires {ex} {props.bank}
+
{props.owner}
+
;
+}
+
+export default CreditCard;
diff --git a/components/creditcard/dice.jsx b/components/creditcard/dice.jsx
new file mode 100644
index 0000000..5c93b78
--- /dev/null
+++ b/components/creditcard/dice.jsx
@@ -0,0 +1,46 @@
+import dice0 from '../assets/images/dice-empty.png'
+import dice1 from '../assets/images/dice1.png'
+import dice2 from '../assets/images/dice2.png'
+import dice3 from '../assets/images/dice3.png'
+import dice4 from '../assets/images/dice4.png'
+import dice5 from '../assets/images/dice5.png'
+import dice6 from '../assets/images/dice6.png'
+
+import React from 'react';
+
+function Dice()
+{
+ const [img, throwDice]=React.useState(dice0)
+ setInterval(change,1000)
+ function change()
+ {
+ let n=parseInt(Math.random()*6)
+ switch(n)
+ {
+ case 0:
+ throwDice(dice0)
+ break;
+ case 1:
+ throwDice(dice1)
+ break;
+ case 2:
+ throwDice(dice2)
+ break;
+ case 3:
+ throwDice(dice3)
+ break;
+ case 4:
+ throwDice(dice4)
+ break;
+ case 5:
+ throwDice(dice5)
+ break;
+ default :
+ throwDice(dice6)
+ break;
+ }
+ }
+ return
+}
+
+export default Dice
diff --git a/components/drivercard/drivercard.css b/components/drivercard/drivercard.css
new file mode 100644
index 0000000..14dc466
--- /dev/null
+++ b/components/drivercard/drivercard.css
@@ -0,0 +1,17 @@
+.driver{
+ display: flex;
+ width:100%;
+ border-radius: 10px;
+ background-color: rgb(68, 118, 255);
+ justify-content: center;
+ align-items: center;
+ padding:25px;
+ margin:10px;
+ color: white;
+}
+.driver img{
+ width:100px;
+ height:100px;
+ border-radius: 50%;
+ margin-right: 15px;
+}
diff --git a/components/drivercard/drivercard.jsx b/components/drivercard/drivercard.jsx
new file mode 100644
index 0000000..e2a4d98
--- /dev/null
+++ b/components/drivercard/drivercard.jsx
@@ -0,0 +1,17 @@
+import './DriverCard.css'
+import Rating from '../Rating/Rating';
+function DriverCard(props)
+{
+return
+
+

+
+
+
{props.name}
+
{props.rating}
+
{props.car.model}-
+ {props.car.licensePlate}
+
+
+
+}
diff --git a/components/greetings/greetings.css b/components/greetings/greetings.css
new file mode 100644
index 0000000..9e65a43
--- /dev/null
+++ b/components/greetings/greetings.css
@@ -0,0 +1,7 @@
+.greeting{
+ border: 2px solid black;
+ font-size: 30px;
+ font-weight: 500;
+ margin: 10px;
+ padding: 5px;
+ }
diff --git a/components/greetings/greetings.jsx b/components/greetings/greetings.jsx
new file mode 100644
index 0000000..6c5af99
--- /dev/null
+++ b/components/greetings/greetings.jsx
@@ -0,0 +1,15 @@
+import "./Greetings.css";
+const Greetings = (props) => {
+ let text;
+ if(props.lang === "de"){
+ text = "Hallo";
+ } else if(props.lang === "fr" || props.lang === "es"){
+ text = "Bonjour";
+ }
+ return(
+ <>
+ {text} {props.children}
+ >
+ );
+};
+export default Greetings;