Matteo Benedetto 3 years ago
parent
commit
a961bfd6f0
  1. 20
      components/header.js
  2. 47
      components/map.js
  3. 41
      components/services.js
  4. 32
      components/socialicons.js
  5. 1015
      package-lock.json
  6. 6
      package.json
  7. 53
      pages/coworking.js
  8. 167
      pages/index.js
  9. BIN
      public/background-image.png
  10. BIN
      public/favicon.ico
  11. 118
      public/logo.svg
  12. 4
      public/vercel.svg
  13. 91
      styles/Home.module.css
  14. 38
      styles/globals.css

20
components/header.js

@ -0,0 +1,20 @@
import React from "react";
import { Container, Row, Col, Image } from "react-bootstrap";
const logo = "https://upload.wikimedia.org/wikipedia/commons/2/24/LEGO_logo.svg"
const Header = () => {
return (
<Container fluid style={{ height: "100vh" }}>
<Row className="justify-content-center align-items-center">
<Col xs={6}>
<Container style={{backgroundColor: "black", padding: "20px" }}>
<Image src={logo} alt="Loop44 Logo" fluid />
<h1 style={{ color: "#fff", textAlign: "center"}}>L O O P 4 4</h1>
</Container>
</Col>
</Row>
</Container>
);
};
export default Header;

47
components/map.js

@ -0,0 +1,47 @@
import React from 'react';
import { Container, Row, Col } from 'react-bootstrap';
const Map = () => {
return (
<Container>
<Row>
<Col xs={12}>
<div id="map" style={{ height: '400px', width: '100%' }} />
</Col>
</Row>
</Container>
);
};
Map.getInitialProps = async () => {
const API_KEY = 'AIzaSyApd2QKzSsWnlD7q99lNngynLN2zYreGN8';
const location = {
lat: 40.663887,
lng: 16.604882,
};
const script = document.createElement('script');
script.src = `https://maps.googleapis.com/maps/api/js?key=${API_KEY}&callback=initMap`;
script.async = true;
script.defer = true;
document.body.appendChild(script);
// Initialize and center the map on the location
window.initMap = () => {
const map = new window.google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: location,
});
// Add a marker to the map
new window.google.maps.Marker({
position: location,
map,
});
};
return {};
};
export default Map;

41
components/services.js

@ -0,0 +1,41 @@
import React from 'react';
import { Card, Container, Row, Col } from 'react-bootstrap';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faChalkboardTeacher, faTheaterMasks, faLaptop } from '@fortawesome/free-solid-svg-icons';
const Services = () => (
<Container className="text-center">
<Row className="justify-content-around p-3">
<Card style={{ width: '18rem', marginRight: "20px" }}>
<Card.Body>
<Card.Title className="text-black">
<FontAwesomeIcon icon={faLaptop} className="text-center" size="lg"/><br/>Coworking
</Card.Title>
</Card.Body>
</Card>
<Card style={{ width: '18rem', marginRight: "20px" }}>
<Card.Body>
<Card.Title className="text-black">
<FontAwesomeIcon icon={faTheaterMasks} className="text-center" size="lg"/><br/>Eventi Culturali
</Card.Title>
</Card.Body>
</Card>
<Card style={{ width: '18rem' }}>
<Card.Body>
<Card.Title className="text-black">
<FontAwesomeIcon icon={faChalkboardTeacher} className="text-center" size="lg"/><br/>Corsi
</Card.Title>
</Card.Body>
</Card>
</Row>
<Row>
<Col xs={12} md={12} lg={12} className="text-center">
<Container style={{backgroundColor: "black", padding: "20px", marginTop:"20px", color: "white" }}>
<h5><i><b>Loop44</b>, è un luogo di collaborazione, aggregazione, lavoro e crescita. <br/><br/>In pieno centro a <b>Matera</b> questo spazio versatile offre un ambiente di coworking dinamico, una cornice ideale per eventi culturali e un luogo di incontro per i curiosi della tecnologia.<br/><br/> Unisci la tua passione con la community e scopri infinite opportunità di crescita e ispirazione.</i> </h5>
</Container>
</Col>
</Row>
</Container>
);
export default Services;

32
components/socialicons.js

@ -0,0 +1,32 @@
import React from "react";
import { Container, Row, Col } from "react-bootstrap";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import {
faFacebook,
faInstagram,
faLinkedin
} from "@fortawesome/free-brands-svg-icons";
import { faEnvelope } from "@fortawesome/free-solid-svg-icons";
const SocialIcons = () => (
<Container>
<Row className="justify-content-center"z>
<Col xs={12} md={12} lg={12} className="text-center">
<Container style={{backgroundColor: "black", padding: "20px", marginTop:"20px" }}>
<a href="#" style={{ marginRight: "20px" }}>
<FontAwesomeIcon icon={faFacebook} size="2x" style={{ color: "white" }} />
</a>
<a href="#" style={{ marginRight: "20px" }}>
<FontAwesomeIcon icon={faInstagram} size="2x" style={{ color: "white" }} />
</a>
<a href="mailto:email@example.com">
<FontAwesomeIcon icon={faEnvelope} size="2x" style={{ color: "white" }} />
</a>
</Container>
</Col>
</Row>
</Container>
);
export default SocialIcons;

1015
package-lock.json generated

File diff suppressed because it is too large Load Diff

6
package.json

@ -6,8 +6,14 @@
"start": "next start" "start": "next start"
}, },
"dependencies": { "dependencies": {
"@fortawesome/free-brands-svg-icons": "^6.2.1",
"@fortawesome/free-solid-svg-icons": "^6.2.1",
"@fortawesome/react-fontawesome": "^0.2.0",
"@googlemaps/react-wrapper": "^1.1.35",
"next": "latest", "next": "latest",
"ol": "^7.2.2",
"react": "18.2.0", "react": "18.2.0",
"react-bootstrap": "^2.7.0",
"react-dom": "18.2.0" "react-dom": "18.2.0"
} }
} }

53
pages/coworking.js

@ -0,0 +1,53 @@
import Head from 'next/head';
import styles from '../styles/Home.module.css';
import Map from '../components/map';
import Services from '../components/services';
import { Container, Row, Col, Button, Card, Image } from 'react-bootstrap';
import SocialIcons from '../components/socialicons';
const logo = "logo.svg"
export default function Home() {
return (
<>
<Head>
<title>LOOP44 | nel centro di Matera uno spazio per coworking, collaborazione, cultura</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossOrigin="anonymous" />
<style>
{`
body {
background-size: cover;
background-image: url("background-image.png");
background-color:black;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
backdrop-filter: blur(10px);
}
svg {
height: 48px;
margin: 0 2em;
fill: darkorange;
}
`}
</style>
</Head>
<Container fluid style={{ height: "100vh" }}>
<Row className="justify-content-center align-items-center">
<Col xs={6}>
<Image src={logo} alt="LOOP44 Logo" fluid />
<h1 style={{ color: "#fff", textAlign: "center" }}>L O O P 4 4</h1>
</Col>
</Row>
<hr/> <Row>
<SocialIcons></SocialIcons>
</Row>
<hr/>
<Services></Services>
<hr/>
<Map></Map>
</Container>
</>
)
}

167
pages/index.js

@ -1,115 +1,70 @@
import Head from 'next/head'; import Head from 'next/head';
import styles from '../styles/Home.module.css'; import styles from '../styles/Home.module.css';
import Services from '../components/services';
import { Container, Row, Col, Button, Card, Image } from 'react-bootstrap';
import SocialIcons from '../components/socialicons';
const logo = "logo.svg"
export default function Home() { export default function Home() {
return ( return (
<div className={styles.container}> <>
<Head> <Head>
<title>Create Next App</title> <title>LOOP44 | nel centro di Matera uno spazio per coworking, collaborazione, cultura</title>
<link rel="icon" href="/favicon.ico" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossOrigin="anonymous" />
</Head> <link href="https://fonts.googleapis.com/css2?family=Barlow+Semi+Condensed&display=swap" rel="stylesheet" />
<main>
<h1 className={styles.title}>
Welcome to <a href="https://nextjs.org">Next.js!</a>
</h1>
<p className={styles.description}>
Get started by editing <code>pages/index.js</code>
</p>
<div className={styles.grid}>
<a href="https://nextjs.org/docs" className={styles.card}>
<h3>Documentation &rarr;</h3>
<p>Find in-depth information about Next.js features and API.</p>
</a>
<a href="https://nextjs.org/learn" className={styles.card}>
<h3>Learn &rarr;</h3>
<p>Learn about Next.js in an interactive course with quizzes!</p>
</a>
<a
href="https://github.com/vercel/next.js/tree/master/examples"
className={styles.card}
>
<h3>Examples &rarr;</h3>
<p>Discover and deploy boilerplate example Next.js projects.</p>
</a>
<a
href="https://vercel.com/import?filter=next.js&utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
className={styles.card}
>
<h3>Deploy &rarr;</h3>
<p>
Instantly deploy your Next.js site to a public URL with Vercel.
</p>
</a>
</div>
</main>
<footer>
<a
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
Powered by{' '}
<img src="/vercel.svg" alt="Vercel" className={styles.logo} />
</a>
</footer>
<style jsx>{` <style>
main { {`
padding: 5rem 0; body {
flex: 1; background-size: cover;
display: flex; background-image: url("background-image.png");
flex-direction: column; background-color:black;
justify-content: center; height: 100vh;
align-items: center; display: flex;
} align-items: center;
footer { justify-content: center;
width: 100%; backdrop-filter: blur(5px);
height: 100px; font-family: 'Barlow Semi Condensed', sans-serif;
border-top: 1px solid #eaeaea; background-repeat: no-repeat;
display: flex; background-attachment: fixed;
justify-content: center; background-position: center;
align-items: center; }
} svg {
footer img { height: 48px;
margin-left: 0.5rem; margin: 0 2em;
} fill: darkorange;
footer a { }
display: flex;
justify-content: center;
align-items: center;
text-decoration: none;
color: inherit;
}
code {
background: #fafafa;
border-radius: 5px;
padding: 0.75rem;
font-size: 1.1rem;
font-family: Menlo, Monaco, Lucida Console, Liberation Mono,
DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace;
}
`}</style>
<style jsx global>{` `}
html, </style>
body { </Head>
padding: 0; <Container fluid style={{ height: "100vh" }}>
margin: 0; <Row className="justify-content-center align-items-center">
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, <Col xs={6}>
Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, <Image src={logo} alt="LOOP44 Logo" style={{padding: "20px" }} fluid />
sans-serif; <Container style={{ padding: "20px" }}>
} <h1 style={{ textAlign: "center", fontSize: 55, color: "white"}}>L O O P 4 4</h1>
* { </Container>
box-sizing: border-box; </Col>
} </Row> <Row>
`}</style> <SocialIcons></SocialIcons>
</div> </Row>
<br/>
<Services></Services>
<Container style={{padding:25}}>
<iframe
width="100%"
height="350"
style={{border:"0", marginTop:20}}
loading="lazy"
allowfullscreen
referrerpolicy="no-referrer-when-downgrade"
src="https://www.google.com/maps/embed/v1/place?key=AIzaSyApd2QKzSsWnlD7q99lNngynLN2zYreGN8
&q=Vico xx settembre 44,matera">
</iframe>
</Container>
</Container>
</>
) )
} }

BIN
public/background-image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
public/favicon.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

118
public/logo.svg

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="439.16821"
height="449.55548"
viewBox="0 0 439.16821 449.55548"
fill="none"
version="1.1"
id="svg67"
sodipodi:docname="logo.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs71">
<rect
x="93.726868"
y="1549.4019"
width="972.86084"
height="207.06989"
id="rect986" />
<rect
x="-52.710213"
y="1707.9845"
width="10.563455"
height="32.939423"
id="rect980" />
<rect
x="43.94302"
y="1538.0889"
width="7050.1069"
height="22378.916"
id="rect974" />
<rect
x="475.33167"
y="1644.4967"
width="8.8980446"
height="41.992111"
id="rect968" />
<rect
x="164.50677"
y="1613.6628"
width="575.77966"
height="198.90936"
id="rect962" />
</defs>
<sodipodi:namedview
id="namedview69"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="true"
inkscape:zoom="0.65674538"
inkscape:cx="494.10321"
inkscape:cy="280.16946"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="1080"
inkscape:window-y="481"
inkscape:window-maximized="1"
inkscape:current-layer="svg67">
<sodipodi:guide
position="-186.86585,78.335503"
orientation="0,-1"
id="guide990"
inkscape:locked="false" />
</sodipodi:namedview>
<path
d="M 196.2307,161.21664 V 428.28712 L 416.60772,245.7429 128.83507,188.41794"
stroke="#0047ff"
stroke-width="15.0773"
id="path59"
style="stroke:#3f71f2;stroke-width:28;stroke-dasharray:none;stroke-opacity:1;stroke-linejoin:round;stroke-linecap:round;stroke-dashoffset:10" />
<path
d="M 242.93802,288.3376 V 21.268331 L 22.560529,203.81257 310.33365,261.13752"
stroke="black"
stroke-width="15.0773"
id="path61"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:28;stroke-dasharray:none;stroke-opacity:1;stroke-linejoin:round;stroke-linecap:round;stroke-dashoffset:10" />
<path
d="M 22.560529,203.81257 310.33365,261.13752"
stroke="black"
stroke-width="15.0773"
id="path63"
style="fill:#000000;stroke:#000000;stroke-width:28;stroke-dasharray:none;stroke-opacity:1;stroke-linejoin:round;stroke-linecap:round;stroke-dashoffset:10" />
<path
d="M 416.60772,245.7429 128.83507,188.41794"
stroke="#0047ff"
stroke-width="15.0773"
id="path65"
style="stroke:#3f71f2;stroke-width:28;stroke-dasharray:none;stroke-opacity:1;stroke-linejoin:round;stroke-linecap:round;stroke-dashoffset:10" />
<text
xml:space="preserve"
id="text960"
style="white-space:pre;shape-inside:url(#rect962);display:inline;fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-opacity:1"
transform="translate(-83.324956,-140.39382)" />
<text
xml:space="preserve"
id="text966"
style="white-space:pre;shape-inside:url(#rect968);display:inline;fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-opacity:1"
transform="translate(-83.324956,-140.39382)" />
<text
xml:space="preserve"
id="text972"
style="white-space:pre;shape-inside:url(#rect974);display:inline;fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-opacity:1"
transform="translate(-83.324956,-140.39382)" />
<text
xml:space="preserve"
id="text978"
style="white-space:pre;shape-inside:url(#rect980);display:inline;fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-opacity:1"
transform="translate(-83.324956,-140.39382)" />
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

4
public/vercel.svg

@ -1,4 +0,0 @@
<svg width="283" height="64" viewBox="0 0 283 64" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M141.04 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM248.72 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM200.24 34c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9V5h9zM36.95 0L73.9 64H0L36.95 0zm92.38 5l-27.71 48L73.91 5H84.3l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10V51h-9V17h9v9.2c0-5.08 5.91-9.2 13.2-9.2z" fill="#000"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

91
styles/Home.module.css

@ -1,91 +0,0 @@
.container {
min-height: 100vh;
padding: 0 0.5rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.title a {
color: #0070f3;
text-decoration: none;
}
.title a:hover,
.title a:focus,
.title a:active {
text-decoration: underline;
}
.title {
margin: 0 0 1rem;
line-height: 1.15;
font-size: 3.6rem;
}
.title {
text-align: center;
}
.title,
.description {
text-align: center;
}
.description {
line-height: 1.5;
font-size: 1.5rem;
}
.grid {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
max-width: 800px;
margin-top: 3rem;
}
.card {
margin: 1rem;
flex-basis: 45%;
padding: 1.5rem;
text-align: left;
color: inherit;
text-decoration: none;
border: 1px solid #eaeaea;
border-radius: 10px;
transition: color 0.15s ease, border-color 0.15s ease;
}
.card:hover,
.card:focus,
.card:active {
color: #0070f3;
border-color: #0070f3;
}
.card h3 {
margin: 0 0 1rem 0;
font-size: 1.5rem;
}
.card p {
margin: 0;
font-size: 1.25rem;
line-height: 1.5;
}
.logo {
height: 1em;
}
@media (max-width: 600px) {
.grid {
width: 100%;
flex-direction: column;
}
}

38
styles/globals.css

@ -1,38 +0,0 @@
html,
body {
padding: 0;
margin: 0;
font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}
a {
color: inherit;
text-decoration: none;
}
* {
box-sizing: border-box;
}
img {
max-width: 100%;
height: auto;
}
h1,
h2,
p,
ul {
margin: 0;
}
ul {
padding: 0;
list-style: none;
}
button {
padding: 0.5rem 1rem;
font-weight: bold;
}
Loading…
Cancel
Save