Browse Source

ajout de contenu

Lou 3 years ago
parent
commit
9e1cf01f7b

+ 0
- 11
src/components/about.jsx View File

@@ -1,11 +0,0 @@
1
-import * as React from "react";
2
-
3
-const About = () => {
4
-	return (
5
-		<div>
6
-			<p>Qui sommes nous ?</p>
7
-		</div>
8
-	);
9
-};
10
-
11
-export default About;

+ 0
- 11
src/components/contact.jsx View File

@@ -1,11 +0,0 @@
1
-import * as React from "react";
2
-
3
-const Contact = () => {
4
-	return (
5
-		<div>
6
-			<p>Contact</p>
7
-		</div>
8
-	);
9
-};
10
-
11
-export default Contact;

+ 34
- 0
src/components/contactForm/index.jsx View File

@@ -0,0 +1,34 @@
1
+import React from "react";
2
+import "./index.scss";
3
+
4
+const ContactForm = () => {
5
+	return (
6
+		<div id="contact">
7
+			<form id="contact-form" action="">
8
+				<div className="form-group">
9
+					<label className="form-label" htmlFor="name">
10
+						Nom
11
+					</label>
12
+					<input type="text" placeholder="Nom" className="form-input" />
13
+				</div>
14
+				<div className="form-group">
15
+					<label className="form-label" htmlFor="email">
16
+						Adresse email
17
+					</label>
18
+					<input type="email" placeholder="Email" className="form-input" />
19
+				</div>
20
+				<div className="form-group">
21
+					<label className="form-label" htmlFor="message">
22
+						Message
23
+					</label>
24
+					<textarea placeholder="Message" className="form-textarea"></textarea>
25
+				</div>
26
+				<button type="submit" className="form-submit-btn">
27
+					Envoyer
28
+				</button>
29
+			</form>
30
+		</div>
31
+	);
32
+};
33
+
34
+export default ContactForm;

+ 38
- 0
src/components/contactForm/index.scss View File

@@ -0,0 +1,38 @@
1
+#contact {
2
+	width: 30%;
3
+	padding: 10px;
4
+	border-radius: 10px;
5
+	background-color: #fff;
6
+	margin: 0 auto;
7
+}
8
+
9
+.form-group {
10
+	position: relative;
11
+	margin: 20px auto;
12
+
13
+	.form-input,
14
+	.form-textarea {
15
+		display: block;
16
+		line-height: 2em;
17
+		margin: 0;
18
+		padding-left: 10px;
19
+		width: 100%;
20
+		font-size: 500;
21
+		border: 1px solid #111;
22
+		background-color: #f4f4f4;
23
+		border-radius: 5px;
24
+		-webkit-box-sizing: border-box;
25
+		-moz-box-sizing: border-box;
26
+		box-sizing: border-box;
27
+
28
+		&:focus {
29
+			// border: 1px solid #2c7ac9;
30
+			outline: none;
31
+		}
32
+
33
+		&::placeholder {
34
+			font-size: 0.9rem;
35
+			font-weight: 400;
36
+		}
37
+	}
38
+}

+ 35
- 0
src/components/header/index.jsx View File

@@ -0,0 +1,35 @@
1
+import React from "react";
2
+import { Link } from "gatsby";
3
+
4
+import "./index.scss";
5
+
6
+const Header = () => {
7
+	return (
8
+		<div className="headers">
9
+			<h1 className="headers-title">
10
+				<Link to="/">CLI</Link>
11
+			</h1>
12
+			<h2 className="headers-subtitle">
13
+				Coopérative Strasbourgeoise du numérique
14
+			</h2>
15
+			<div className="container">
16
+				<ul className="menu">
17
+					<li>
18
+						<Link to="/cooperative">La coopérative</Link>
19
+					</li>
20
+					<li>
21
+						<Link to="/services">Nos prestations</Link>
22
+					</li>
23
+					<li>
24
+						<Link to="/contact">Nous contacter</Link>
25
+					</li>
26
+					<li>
27
+						<Link to="/status">Nos statuts</Link>
28
+					</li>
29
+				</ul>
30
+			</div>
31
+		</div>
32
+	);
33
+};
34
+
35
+export default Header;

+ 54
- 0
src/components/header/index.scss View File

@@ -0,0 +1,54 @@
1
+.headers {
2
+	display: flex;
3
+	flex-direction: column;
4
+	text-align: center;
5
+	margin-top: 100px;
6
+	font-family: "Cutive Mono";
7
+
8
+	.headers-title {
9
+		margin: 0;
10
+		font-size: 2.5rem;
11
+		font-weight: normal;
12
+	}
13
+
14
+	.headers-subtitle {
15
+		margin-top: 15px;
16
+		margin-bottom: 100px;
17
+		font-size: 1.5rem;
18
+		font-weight: normal;
19
+	}
20
+}
21
+.container {
22
+	display: flex;
23
+	flex-direction: column;
24
+	align-items: center;
25
+
26
+	.menu {
27
+		margin: 0;
28
+		padding: 0 10px;
29
+		list-style: none;
30
+		display: flex;
31
+		justify-content: space-between;
32
+		align-items: center;
33
+		width: 70vw;
34
+		height: 2.5rem;
35
+
36
+		// border: 1px solid black;
37
+
38
+		.menu-button {
39
+			height: 2.5em;
40
+			padding: 0.5rem;
41
+			text-decoration: none;
42
+			position: relative;
43
+			background: white;
44
+			border: none;
45
+			z-index: auto;
46
+			font-family: "Raleway", "sans-serif";
47
+			font-size: 1rem;
48
+
49
+			&:hover {
50
+				cursor: pointer;
51
+			}
52
+		}
53
+	}
54
+}

+ 25
- 0
src/components/realisationCard/index.jsx View File

@@ -0,0 +1,25 @@
1
+import React from "react";
2
+import Specs from "../../images/undraw_Specs.png";
3
+
4
+import "./index.scss";
5
+
6
+const RealisationCard = ({ cardName, cardDescription, techTag }) => {
7
+	const displayTag = (tagList) => {
8
+		let tagArr = tagList.split(",");
9
+		tagArr.map((tag) => `<span className="tech-tag">${tag}</span>`);
10
+	};
11
+
12
+	return (
13
+		<div className="item-card">
14
+			<img src={Specs} alt="Someone drawing" className="item-card-image" />
15
+			<div className="item-text">
16
+				<p className="item-card-name">{cardName}</p>
17
+				<p className="item-card-description">{cardDescription}</p>
18
+			</div>
19
+			<div className="tech-tag-list">{displayTag(techTag)}</div>
20
+			{console.log(displayTag(techTag))}
21
+		</div>
22
+	);
23
+};
24
+
25
+export default RealisationCard;

+ 50
- 0
src/components/realisationCard/index.scss View File

@@ -0,0 +1,50 @@
1
+.item-card {
2
+	max-width: 40vw;
3
+	margin-top: 15px;
4
+	margin-left: auto;
5
+	margin-right: auto;
6
+
7
+	&:first-child {
8
+		margin-top: 0px;
9
+	}
10
+
11
+	img {
12
+		height: auto;
13
+		max-width: 40vw;
14
+	}
15
+
16
+	.item-text {
17
+		padding: 5px;
18
+		display: flex;
19
+		flex-direction: column;
20
+		align-items: center;
21
+
22
+		.item-card-name {
23
+			font-size: 1.1rem;
24
+			font-weight: bold;
25
+			margin-top: 0;
26
+			margin-bottom: 10px;
27
+		}
28
+		.item-card-description {
29
+			font-size: 0.8rem;
30
+			font-weight: normal;
31
+			margin-top: 0;
32
+			margin-bottom: 10px;
33
+		}
34
+	}
35
+	.tech-tag-list {
36
+		display: flex;
37
+		flex-direction: row;
38
+		justify-content: center;
39
+
40
+		.tech-tag {
41
+			display: block;
42
+			margin: 0 7px;
43
+			padding: 1px 10px;
44
+			background: lightgray;
45
+			color: lightseagreen;
46
+			font-size: 0.8rem;
47
+			border-radius: 6rem;
48
+		}
49
+	}
50
+}

+ 0
- 11
src/components/service.jsx View File

@@ -1,11 +0,0 @@
1
-import * as React from "react";
2
-
3
-const Service = () => {
4
-	return (
5
-		<div>
6
-			<p>Nos prestations</p>
7
-		</div>
8
-	);
9
-};
10
-
11
-export default Service;

+ 0
- 10
src/components/status.jsx View File

@@ -1,10 +0,0 @@
1
-import * as React from "react";
2
-
3
-const Status = () => {
4
-	return (
5
-		<div>
6
-			<p>Statuts de l'association</p>
7
-		</div>
8
-	);
9
-};
10
-export default Status;

BIN
src/images/undraw_Specs.png View File


+ 16
- 0
src/pages/contact.jsx View File

@@ -0,0 +1,16 @@
1
+import * as React from "react";
2
+
3
+import Header from "../components/header";
4
+import ContactForm from "../components/contactForm";
5
+
6
+const Contact = () => {
7
+	return (
8
+		<main>
9
+			<title>Nous contacter</title>
10
+			<Header />
11
+			<ContactForm />
12
+		</main>
13
+	);
14
+};
15
+
16
+export default Contact;

+ 17
- 0
src/pages/cooperative.jsx View File

@@ -0,0 +1,17 @@
1
+import * as React from "react";
2
+
3
+import Header from "../components/header";
4
+
5
+const Cooperative = () => {
6
+	return (
7
+		<main>
8
+			<title>La coopérative</title>
9
+			<Header />
10
+			<div>
11
+				<p>La coopérative</p>
12
+			</div>
13
+		</main>
14
+	);
15
+};
16
+
17
+export default Cooperative;

+ 34
- 62
src/pages/index.jsx View File

@@ -1,72 +1,44 @@
1
-import React, { useState } from "react";
1
+import React from "react";
2 2
 
3
-import Service from "../components/service";
4
-import About from "../components/about";
5
-import Contact from "../components/contact";
6
-import Status from "../components/status";
3
+import Header from "../components/header";
4
+import RealisationCard from "../components/realisationCard";
7 5
 
8 6
 import "../scss/index.scss";
9 7
 
10 8
 const IndexPage = () => {
11
-	const [menuContent, setMenuContent] = useState("service");
12
-
13
-	const switchContent = (x) => {
14
-		setMenuContent(x);
15
-	};
16
-
17
-	const display = (item) => {
18
-		if (item === "service") {
19
-			return <Service />;
20
-		} else if (item === "about") {
21
-			return <About />;
22
-		} else if (item === "contact") {
23
-			return <Contact />;
24
-		} else if (item === "status") {
25
-			return <Status />;
26
-		}
27
-	};
28
-
29 9
 	return (
30 10
 		<main>
31
-			<title>CLI: Coopérative du numérique</title>
32
-			<div className="headers">
33
-				<h1 className="headers-title">CLI</h1>
34
-				<h2 className="headers-subtitle">
35
-					Coopérative Strasbourgeoise du numérique
36
-				</h2>
37
-			</div>
38
-			<div className="container">
39
-				<ul className="menu">
40
-					<li>
41
-						<button
42
-							className="menu-button"
43
-							onClick={() => switchContent("service")}>
44
-							Nos prestations
45
-						</button>
46
-					</li>
47
-					<li>
48
-						<button
49
-							className="menu-button"
50
-							onClick={() => switchContent("about")}>
51
-							Qui sommes nous ?
52
-						</button>
53
-					</li>
54
-					<li>
55
-						<button
56
-							className="menu-button"
57
-							onClick={() => switchContent("contact")}>
58
-							Nous contacter
59
-						</button>
60
-					</li>
61
-					<li>
62
-						<button
63
-							className="menu-button"
64
-							onClick={() => switchContent("status")}>
65
-							Nos statuts
66
-						</button>
67
-					</li>
68
-				</ul>
69
-				<section className="content">{display(menuContent)}</section>
11
+			<title>CLI: Association du numérique</title>
12
+			<Header />
13
+			<div>
14
+				<section>
15
+					<p>
16
+						La CLI est une association fournissant une multitude de services
17
+						liés au numérique.
18
+					</p>
19
+					<p>Accompagnement local dans vos projets</p>
20
+					<p>ajouter du blabla</p>
21
+				</section>
22
+				<section className="made-by-us">
23
+					<h3 className="section-title">Nos réalisations</h3>
24
+					<div className="list-card">
25
+						<RealisationCard
26
+							cardName="pyHeatPump"
27
+							cardDescription="Projet de remplacement du RPiPasserelle d'OTEC."
28
+							techTag="Python"
29
+						/>
30
+						<RealisationCard
31
+							cardName="Supervision"
32
+							cardDescription="Interface graphique de gestion pour pyHeatPump."
33
+							techTag="Python,Symphony"
34
+						/>
35
+						<RealisationCard
36
+							cardName="Chronobriq"
37
+							cardDescription="Un outil de gestion de comptabilité horaire."
38
+							techTag="Ruby on Rails,React.js,Redux,React-intl"
39
+						/>
40
+					</div>
41
+				</section>
70 42
 			</div>
71 43
 		</main>
72 44
 	);

+ 17
- 0
src/pages/services.jsx View File

@@ -0,0 +1,17 @@
1
+import * as React from "react";
2
+
3
+import Header from "../components/header";
4
+
5
+const Service = () => {
6
+	return (
7
+		<main>
8
+			<title>Nos prestations</title>
9
+			<Header />
10
+			<div>
11
+				<p>Nos prestations</p>
12
+			</div>
13
+		</main>
14
+	);
15
+};
16
+
17
+export default Service;

+ 16
- 0
src/pages/status.jsx View File

@@ -0,0 +1,16 @@
1
+import * as React from "react";
2
+
3
+import Header from "../components/header";
4
+
5
+const Status = () => {
6
+	return (
7
+		<main>
8
+			<title>Nos statuts</title>
9
+			<Header />
10
+			<div>
11
+				<p>Les status de la coopérative</p>
12
+			</div>
13
+		</main>
14
+	);
15
+};
16
+export default Status;

+ 5
- 61
src/scss/index.scss View File

@@ -1,68 +1,12 @@
1
-@import url("https://fonts.googleapis.com/css2?family=Cutive+Mono&display");
2
-@import url("https://fonts.googleapis.com/css2?family=Raleway&display=swap");
1
+@import url(./main.scss);
3 2
 
4
-body {
5
-	font-size: 16px;
6
-	font-family: "Raleway", "sans-serif";
7
-}
8
-
9
-*::before {
10
-	box-sizing: border-box;
11
-}
12
-
13
-.headers {
14
-	display: flex;
15
-	flex-direction: column;
3
+.section-title {
4
+	font-size: 1.5rem;
5
+	font-weight: bold;
16 6
 	text-align: center;
17
-	margin-top: 100px;
18
-	font-family: "Cutive Mono";
19
-
20
-	.headers-title {
21
-		margin: 0;
22
-		font-size: 2.5rem;
23
-	}
24
-
25
-	.headers-subtitle {
26
-		margin-top: 15px;
27
-		margin-bottom: 100px;
28
-		font-size: 1.5rem;
29
-	}
30 7
 }
31 8
 
32
-.container {
9
+.list-card {
33 10
 	display: flex;
34 11
 	flex-direction: column;
35
-	align-items: center;
36
-
37
-	.menu {
38
-		margin: 0;
39
-		padding: 0 10px;
40
-		list-style: none;
41
-		display: flex;
42
-		justify-content: space-between;
43
-		align-items: center;
44
-		width: 70vw;
45
-		height: 2.5rem;
46
-
47
-		// border: 1px solid black;
48
-
49
-		.menu-button {
50
-			height: 2.5em;
51
-			padding: 0.5rem;
52
-			text-decoration: none;
53
-			position: relative;
54
-			background: white;
55
-			border: none;
56
-			z-index: auto;
57
-
58
-			&:hover {
59
-				cursor: pointer;
60
-			}
61
-		}
62
-	}
63
-
64
-	.content {
65
-		margin-top: 70px;
66
-		width: 80vw;
67
-	}
68 12
 }

+ 23
- 0
src/scss/main.scss View File

@@ -0,0 +1,23 @@
1
+@import url("https://fonts.googleapis.com/css2?family=Cutive+Mono&display=swap");
2
+@import url("https://fonts.googleapis.com/css2?family=Raleway&display=swap");
3
+
4
+:root {
5
+	background: white;
6
+	color: black;
7
+	font-size: 16px;
8
+	font-family: "Raleway", "sans-serif";
9
+}
10
+
11
+a {
12
+	text-decoration: none;
13
+	color: black;
14
+}
15
+
16
+*::before {
17
+	box-sizing: border-box;
18
+}
19
+input:focus,
20
+textarea:focus,
21
+button:focus {
22
+	outline: none;
23
+}

Loading…
Cancel
Save