diff --git a/MultiPage-Clone/README.md b/MultiPage-Clone/README.md index 5a2ac06c..b098d335 100644 --- a/MultiPage-Clone/README.md +++ b/MultiPage-Clone/README.md @@ -18,8 +18,8 @@ Here are 3 designs to choose from, along with suggested fonts and colours to use ![Prickles & Co homepage](./designs/Cactus%20shop.png) -Live demo here: https://www.wix.com/website-template/view/html/1995 - +Live demo here: +https://www.wix.com/website-template/view/html/1995 ### Fonts **Headings:** Fjalla One - Regular 400 diff --git a/MultiPage-Clone/css/main.css b/MultiPage-Clone/css/main.css index aa561706..8560e86e 100644 --- a/MultiPage-Clone/css/main.css +++ b/MultiPage-Clone/css/main.css @@ -1,3 +1,771 @@ /* Add your CSS here */ +@font-face { + font-family: "Outfit"; + src: url("/MultiPage-Clone/fonts/Outfit-Regular.ttf") format("truetype"); + font-display: swap; + font-weight: normal; +} +@font-face { + font-family: "Outfit"; + src: url("/MultiPage-Clone/fonts/Outfit-ExtraLight.ttf") format("truetype"); + font-display: swap; + font-weight: 200; +} +@font-face { + font-family: "Fjalla One"; + src: url("/MultiPage-Clone/fonts/FjallaOne-Regular.ttf") format("truetype"); + font-display: swap; +} + +:root { + --red-brown: #a05941; + --green-black: #133032; + --light-grey: #ededee; + --white: #fff; + --transparent-white: rgba(0, 0, 0, 0.75); + --ff-outfit-reg: "Outfit"; + --ff-fjalla: "Fjalla One"; +} +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} +html, +body { + min-height: 100vh; + background-color: var(--light-grey); + margin-inline: 2rem; + font-family: var(--ff-outfit-reg); + font-weight: 400; + font-size: 1rem; +} +.msg { + cursor: pointer; + position: fixed; + height: 3rem; + width: 10rem; + display: flex; + justify-content: center; + align-items: center; + color: var(--white); + gap: 1rem; + right: 1vw; + bottom: 1rem; + font-family: var(--ff-fjalla); + background-color: var(--red-brown); + z-index: 1000; +} +.msg svg { + fill: var(--white); +} +header { + position: fixed; + width: 100%; + height: 8rem; + display: flex; + flex-direction: column; + z-index: 1000; + padding-right: 8rem; +} +/*----------------------Top Navigation------------------------------*/ +.top-navigation { + height: 4rem; + display: flex; + justify-content: space-between; + align-items: center; + background-color: var(--white); + padding: 1rem; +} + +.input { + display: flex; + width: 20%; + position: relative; + font-family: var(--ff-outfit-reg); +} +.input svg { + fill: var(--red-brown); +} +.search { + border: none; + height: 3rem; + padding: 1rem; + padding-left: 2.5rem; + width: 100%; +} +.search::placeholder { + font-size: 1rem; + font-family: var(--ff-outfit-reg); + font-weight: 200; + color: var(--red-brown); +} +#search-icon { + position: absolute; + left: 0.5rem; + top: 0.9rem; + margin-right: 2rem; + color: #a05941; +} +.search:hover, +.search:active { + border: 1px solid var(--red-brown); +} + +.icons { + display: flex; + justify-content: center; + align-items: center; + gap: 1.5rem; +} +.log-in { + cursor: pointer; + display: flex; + gap: 0.7rem; +} +.log-in svg { + height: 1.5rem; + width: 1.5rem; + fill: white; + padding-top: 0.2rem; + border: 1px solid var(--red-brown); + border-radius: 50%; + background-color: var(--red-brown); +} + +.login { + color: var(--red-brown); + font-size: 1.1rem; + font-weight: 200; +} +.shopping-cart { + cursor: pointer; + height: 1.5rem; + width: 1.5rem; + fill: var(--red-brown); +} +.log-in svg:hover { + fill: var(--red-brown); + background-color: var(--white); +} + +/*---------------------------Navbar--------------------------------*/ +.navigation { + display: flex; + height: 4rem; + justify-content: space-between; + align-items: center; + background-color: var(--light-grey); +} +.logo-list { + display: flex; + gap: 2rem; +} +.menu { + display: none; +} +.list { + display: flex; + list-style: none; + align-items: center; + gap: 1rem; +} + +.nav-links { + text-decoration: none; + font-weight: 200; + color: var(--red-brown); +} +.nav-links:hover { + padding-bottom: 0.3rem; + border-bottom: 2px solid var(--red-brown); +} +.dropdown-menu { + display: none; + position: absolute; + background-color: var(--light-grey); + min-width: 50px; + z-index: 1; +} +.dropdown-menu a { + text-decoration: none; + display: block; + color: var(--red-brown); + font-weight: 300; + margin-block: 0.6rem; + margin-inline: 1rem; +} +.dropdown-menu a:hover { + color: var(--green-black); +} +.list:hover .dropdown-menu { + display: block; +} +.logo { + font-family: var(--ff-fjalla); + font-size: 1.4rem; + color: var(--red-brown); + text-decoration: none; +} +.nav-description { + font-family: var(--ff-fjalla); + color: var(--red-brown); + font-size: 1.3rem; + letter-spacing: 0.2rem; +} +.wrapper { + display: block; + height: 2rem; +} +.wrapper span { + position: absolute; + width: 20rem; + right: 7rem; + overflow: hidden; + animation: changeText 10s infinite; +} +.wrapper span:nth-child(1) { + animation-delay: 0s; +} +.wrapper span:nth-child(2) { + animation-delay: 7s; +} +@keyframes changeText { + 0%, + 100% { + visibility: hidden; + } + 50% { + visibility: hidden; + } + 75% { + visibility: hidden; + } + 100% { + visibility: visible; + } +} +/*------tabs-------------*/ + +ul.tabs { + list-style: none; +} +li.tab { + display: inline-block; + margin-right: 10px; +} +.tab-content { + display: none; +} +/* Show active tab content */ +.active { + display: block; +} + +/*------------------------------Hero section-----------------*/ +.hero { + color: var(--white); + height: 65rem; + width: 100%; + background: url(/MultiPage-Clone/designs/background-img.jpg) no-repeat; + background-position: center; + background-size: cover; + background-attachment: fixed; + padding-top: 8rem; +} +.hero-card { + width: 100%; + height: 100%; + padding-block: 7rem; + display: grid; + justify-items: center; + align-items: center; + backdrop-filter: brightness(70%) contrast(64%) sepia(5%) saturate(2) + hue-rotate(102deg); +} +.hero-logo { + display: flex; + align-items: center; +} +.hero-logo span { + font-weight: 200; + letter-spacing: 0.3rem; + padding-bottom: 0.3rem; + border-bottom: 2px solid white; +} + +.flower { + height: 4.5rem; + fill: var(--white); +} + +.heading { + font-size: 6.5rem; + letter-spacing: 1.8rem; + font-style: normal; + font-weight: 500; + font-family: var(--ff-fjalla); +} +.hero-card-p { + font-size: 1.3rem; + font-weight: 200; + letter-spacing: 0.3rem; +} +.hero-btn { + cursor: pointer; + height: 2.6rem; + width: 13rem; + font-size: 1.1rem; + font-family: var(--ff-outfit-reg); + font-weight: 200; + background-color: var(--red-brown); + border: none; + color: white; +} +.hero-btn:hover { + opacity: 0.8; + color: black; +} +/*----------------------Cards Section--------------------------------*/ +.card-container { + height: 35rem; + display: flex; + justify-content: space-between; + gap: 1rem; + padding-top: 3rem; +} +.card { + height: 100%; + width: 30%; + text-align: center; + background-size: cover; + background-position: top; + padding: 2rem; +} +.card-1 { + background: url(/MultiPage-Clone/designs/Cucti-img.webp); + background-size: cover; + background-position: top; +} +.card-2 { + background: url(/MultiPage-Clone/designs/plant-img.webp); + background-size: cover; + background-position: top; +} +.card-3 { + background: url(/MultiPage-Clone/designs/secculant-img.webp); + background-size: cover; + background-position: top; +} +.card-heading { + position: relative; + color: var(--red-brown); + letter-spacing: 0.6rem; + margin-bottom: 1rem; + font-family: var(--ff-fjalla); + font-weight: 300; + margin-bottom: 3rem; +} +.card-heading::after { + position: absolute; + content: ""; + height: 0.2rem; + width: 2rem; + background-color: var(--red-brown); + top: 3rem; + left: 45%; +} +/*--------------------------Columns------------------------------------*/ +.columns { + display: flex; + flex-direction: column; +} +/*--------------------------About US------------------------------------*/ +.about-us { + display: flex; + height: 30rem; +} +.about-us-card { + flex: 50%; + padding: 5rem; + background-color: var(--white); +} +.about-us-heading { + position: relative; + color: var(--red-brown); + letter-spacing: 0.6rem; + margin-bottom: 1rem; + font-family: var(--ff-outfit-reg); + font-weight: 300; + margin-bottom: 3rem; + text-align: center; +} +.about-us-heading::after { + position: absolute; + content: ""; + height: 0.2rem; + width: 1.5rem; + background-color: var(--red-brown); + top: 3rem; + left: 45%; +} +.about-us-p { + color: var(--red-brown); + font-family: var(--ff-outfit-reg); + font-weight: 200; + text-align: center; + line-height: 1.4rem; +} +.about-us-img-1, +.about-us-img-2 { + flex: 25%; +} +.about-us-img-1 { + background: url(/MultiPage-Clone/designs/workshop.webp); + background-position: center; + background-size: cover; +} +.about-us-img-2 { + background: url(/MultiPage-Clone/designs/leafylady.webp); + background-position: center; + background-size: cover; +} +/*--------------------------Buy Online---------------------------------*/ +.buy-online { + height: 35rem; + display: flex; +} +.buy-online-img { + flex: 50%; + background: url(/MultiPage-Clone/designs/Gardenlady.webp); + background-position: center; + background-size: cover; +} +.buy-online-card { + flex: 50%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 1rem; + padding-inline: 7rem; + background-color: var(--green-black); +} +.buy-online-p { + font-size: 5rem; + color: white; + font-family: var(--ff-fjalla); + text-align: center; +} +.buy-online-btn { + background-color: var(--white); + color: black; +} +/*--------------------------Contact Us------------------------------------*/ +.contact-us { + height: 55rem; + display: flex; + justify-content: center; + align-items: center; + background: url(/MultiPage-Clone/img/form-bg-img.webp); + background-size: cover; + background-position: center; + background-attachment: fixed; +} +.contact-form { + height: 80%; + width: 65%; + background: var(--white); + display: grid; + align-items: center; + padding-block: 2rem; + padding-inline: 1rem; + font-family: var(--ff-outfit-reg); + opacity: 0.95; +} + +.contact-form input { + width: 100%; + height: 3rem; + margin-top: 1rem; + border: 1px solid black; + outline: none; + padding: 1rem; +} +.contact-form input:focus, +.contact-form input:hover, +textarea:hover, +textarea:focus { + border: 3px solid black; +} +.contact-form label { + font-family: var(--ff-outfit-reg); + font-weight: 300; + font-size: 1.2rem; + color: black; +} +.name { + display: flex; + gap: 1rem; + width: 100%; +} +.name label { + flex: 50%; +} + +textarea { + width: 100%; + margin-top: 1rem; + border: 1px solid black; + padding: 1rem; +} +.form-btn { + width: 100%; + margin-top: 2rem; +} +/*----------------------------------Footer---------------------------------*/ +footer { + padding-block: 2rem; + height: 30rem; + background-color: var(--green-black); + display: flex; + flex-direction: column; +} +.list-container { + height: 50%; + display: flex; + justify-content: space-evenly; + align-items: center; +} +.footer-list { + width: 100%; + color: var(--white); + list-style: none; + font-weight: 200; + text-align: center; +} +.footer-list-heading { + margin-bottom: 2rem; + font-family: var(--ff-outfit-reg); + font-weight: 200; + letter-spacing: 0.8rem; +} +.footer-li { + margin-bottom: 0.3rem; +} +.subscribe { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + color: var(--white); + gap: 1rem; +} +.subscribe-form { + width: 50%; + display: flex; + gap: 1rem; + justify-content: center; + align-items: end; +} +.subscribe-form label { + display: flex; + flex-direction: column; + font-weight: 200; +} +.subscribe-form input { + margin-top: 1rem; + height: 2.5rem; + width: 15rem; +} +.subscribe-heading { + font-family: var(--ff-outfit-reg); + font-weight: 200; + letter-spacing: 0.5rem; +} +.subscribe-btn { + color: black; + background-color: var(--white); + width: 10rem; +} +.subscribe-icon { + margin-top: 1rem; + display: flex; + gap: 1.5rem; +} +.subscribe-icon svg { + cursor: pointer; + fill: var(--white); + transition: 0.5s ease; +} +.subscribe-icon svg:hover, +.subscribe-icon svg:focus { + fill: var(--red-brown); + transform: scale(1.2); +} + +/*------------------------------Mobile Design---------------------------*/ +@media (max-width: 700px) { + body, + html { + margin: 0; + width: 100vw; + overflow-x: hidden; + } + header { + width: 100%; + margin: 0; + padding: 0; + position: static; + } + .navigation { + display: flex; + flex-direction: column; + height: 7rem; + padding-inline: 1.5rem; + padding-block: 1rem; + } + + .list { + display: none; + } + .logo-list { + width: 100%; + flex: 50%; + display: flex; + justify-content: space-between; + } + .menu { + cursor: pointer; + height: 2rem; + width: 2em; + display: flex; + flex-direction: column; + gap: 0.5rem; + } + .menu span { + height: 0.2rem; + width: 100%; + background-color: var(--red-brown); + } + .open-list { + display: flex; + flex-direction: column; + width: 70%; + } + .wrapper span { + left: 1.5rem; + top: 8.1rem; + font-size: 1rem; + } + .hero { + width: 100%; + background-attachment: scroll; + height: 38rem; + padding-top: 2rem; + } + .hero-card { + width: 100%; + height: 100%; + } + .heading { + font-size: 3rem; + letter-spacing: 0.5rem; + } + .hero-btn { + width: 10rem; + } + + .log-in { + display: none; + } + .input { + width: 50%; + } + #search-icon { + top: 1rem; + } + .search { + width: 15rem; + } + .card-container { + display: flex; + flex-direction: column; + height: 90rem; + } + .card { + width: 100%; + } + .about-us { + flex-direction: column; + height: 80rem; + } + .buy-online { + display: flex; + flex-direction: column; + } + .buy-online-img { + background-position: right; + } + .contact-us { + background-attachment: scroll; + } + .about-us-card { + flex: 25%; + width: 100%; + padding: 2rem; + } + .buy-online { + flex-direction: column; + height: 50rem; + } + .buy-online-card { + padding: 1rem; + } + .contact-form { + width: 96%; + height: 90%; + } + .contact-form h2::after { + margin-top: 3rem; + } + .form-btn { + width: 100%; + } + footer { + height: auto; + flex-direction: column; + gap: 5rem; + } + .list-container { + flex-direction: column; + gap: 2rem; + } + .footer-list-heading { + margin-bottom: 0.5rem; + } + .subscribe-form { + width: 100%; + flex-direction: column; + align-items: center; + margin-top: 2rem; + padding-inline: 1rem; + } + .subscribe-btn { + width: 100%; + } + .subscribe-form label, + .subscribe-form input { + width: 100%; + } + .msg { + width: 3rem; + border-radius: 50%; + } + .msg-span { + display: none; + } +} + /* Dont' forget to link this file to your HTML in the */ diff --git a/MultiPage-Clone/designs/Cucti-img.webp b/MultiPage-Clone/designs/Cucti-img.webp new file mode 100644 index 00000000..d6bffad3 Binary files /dev/null and b/MultiPage-Clone/designs/Cucti-img.webp differ diff --git a/MultiPage-Clone/designs/Gardenlady.webp b/MultiPage-Clone/designs/Gardenlady.webp new file mode 100644 index 00000000..8a78e2e1 Binary files /dev/null and b/MultiPage-Clone/designs/Gardenlady.webp differ diff --git a/MultiPage-Clone/designs/background-img.jpg b/MultiPage-Clone/designs/background-img.jpg new file mode 100644 index 00000000..4e7abdd4 Binary files /dev/null and b/MultiPage-Clone/designs/background-img.jpg differ diff --git a/MultiPage-Clone/designs/leafylady.webp b/MultiPage-Clone/designs/leafylady.webp new file mode 100644 index 00000000..57cf115c Binary files /dev/null and b/MultiPage-Clone/designs/leafylady.webp differ diff --git a/MultiPage-Clone/designs/plant-img.webp b/MultiPage-Clone/designs/plant-img.webp new file mode 100644 index 00000000..d1e43806 Binary files /dev/null and b/MultiPage-Clone/designs/plant-img.webp differ diff --git a/MultiPage-Clone/designs/secculant-img.webp b/MultiPage-Clone/designs/secculant-img.webp new file mode 100644 index 00000000..38d33c10 Binary files /dev/null and b/MultiPage-Clone/designs/secculant-img.webp differ diff --git a/MultiPage-Clone/designs/workshop.webp b/MultiPage-Clone/designs/workshop.webp new file mode 100644 index 00000000..40973c92 Binary files /dev/null and b/MultiPage-Clone/designs/workshop.webp differ diff --git a/MultiPage-Clone/index.html b/MultiPage-Clone/index.html index cd704c69..5ce2ff59 100644 --- a/MultiPage-Clone/index.html +++ b/MultiPage-Clone/index.html @@ -1,19 +1,325 @@ - - - - - + + + + + + Responsive grid project - + - - - + +
+
+
+ + +
+
+ + + + + + +
+
+ +
+
+
+
+ + + + Let's chat! +
+
+
+ +

PRICKLES & CO

+

BRING NATURE INDOORS

+ +
+
+
+
+
+

CACTI

+ +
+
+

PLANTS

+ +
+
+

SUCCULENTS

+ +
+
+
+
+
+

About US

+

+ Welcome to Prickles & Co.! We're not just a regular shop; + we're all about plants and making your home greener. + We've been around since 2035, and we're here to bring nature inside. + Our store is filled with awesome cacti, plants, and succulents to spruce up your space. +
+

+ You might have some questions, and that's cool – check out our FAQs. And if you need to reach us, just hit "Contact." + The best part? We'll even deliver these lovely plants to your doorstep. So, come on in, explore, and let's have a chat about how + Prickles & Co. can make your home more lush and vibrant. +

+
+
+
+
+
+
+
+

BUY ONLINE NOW & GET 10% OFF !

+ +
+
+
+
+
+
+

FOR SPECIAL REQUESTS & ORDERS

+
+ + +
+ + + + +
+
+
+
+

hello

+
+
+ + +

This website design was created by Wix.com, and is used here for strictly educational purposes.

diff --git a/MultiPage-Clone/workshop.webp b/MultiPage-Clone/workshop.webp new file mode 100644 index 00000000..40973c92 Binary files /dev/null and b/MultiPage-Clone/workshop.webp differ diff --git a/Wireframe/css/style.css b/Wireframe/css/style.css index e69de29b..0f959688 100644 --- a/Wireframe/css/style.css +++ b/Wireframe/css/style.css @@ -0,0 +1,159 @@ +body, +h1, +h2, +p { + margin: 20; + padding: 0; +} + +/* Apply a consistent color scheme for links and text */ +body { + font-family: Arial, sans-serif; + color: #333; + background-color: #f5f5f5; +} + +a { + text-decoration: none; + color: #007bff; /* Link color */ +} + +/* Header styles */ +header { + background-color:var(--foreground-color); + text-align: center; + padding: 25px; +} + +/* Add this CSS to style the article */ + +#git-article { + background-color: var(--foreground-color); + padding: 2rem; + border-radius: var(--radius); + box-shadow: 2px 2px 6px var(--shadow-color); + width: 80%; /* Adjust the width as needed */ + max-width: 800px; /* Set a maximum width if necessary */ + margin: 0 auto; /* Center the box horizontally */ + text-align: center; /* Center the content within the box */ +} + +#git-article img { + max-width: 100%; + height: auto; + border-radius: var(--radius); + margin-bottom: 1rem; /* Add space below the image */ +} + +#git-article h2 { + font-size: var(--fs-subtitle); + margin-bottom: 1rem; /* Add space below the heading */ +} + +#git-article p { + font-size: var(--fs-paragraph); + text-align: justify; + margin-bottom: 1rem; /* Add space below the paragraph */ +} + +#git-article a.orange-btn { + background: #f77d24; + display: inline-block; + color: #fff; + text-decoration: none; + text-transform: none; + font-family: Sans-serif; + font-size: 16px; + padding: 10px; + text-align: center; +} +} + +#git-article a.orange-btn:hover { + background-color: var(--focus-color-light-bg); + font-weight: bold; + transition: all 0.2s; +} +/* ......................... */ +/* Main container styles */ +.main-container { + display: flex; + justify-content: space-between; + align-items: flex-start; /* Align items to the top */ + padding: 20px; /* Increased padding for better spacing */ +} + +/* Article styles */ +/* the following two articles will be in one row, but two columns beside each other */ +.articles-container { + display: flex; /* Use flexbox for layout */ + justify-content: space-between; + align-items: flex-start; /* Align items to the top */ + padding: 20px; /* Increased padding for better spacing */ + margin-top: 10px; /* Add some space between the main content and articles */ +} +.orange-btn { + background: #f77d24; + display: inline-block; + color: #fff; + text-decoration: none; + text-transform: none; + font-family: Sans-serif; + font-size: 16px; + padding: 10px; + text-align: center; +} + +.article { + flex: 1; /* Equal width for both articles */ + box-sizing: border-box; + border: 1px solid var(--grey-light); + border-radius: 4px; + padding: 20px; /* Increased padding for better spacing */ + margin-bottom: 2rem; + background-color: #fff; /* Add a white background to articles */ + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + margin: 100px; + /* Add a subtle shadow for depth */ +} + +.article img { + max-width: 100%; + height: auto; +} + +.article__title { + font-size: 1.5rem; /* Increased font size for article titles */ + font-weight: 700; + margin-bottom: 1rem; /* Slightly increased margin for spacing */ +} + +.article__read-more a { + color: #007bff; + text-decoration: none; + font-weight: bold; /* Bold font for "Read More" link */ +} + +.article__read-more a:hover { + text-decoration: underline; +} + +.article__summary { + margin: 0; +} + +/* Footer styles */ +footer { + display: block; + clear: both; + background-color: lightgrey; + text-align: center; + padding: 25px; +} +@media screen and (max-width: 600px) { + aside, + section, + article { + width: 100%; + } +} diff --git a/Wireframe/git small.png b/Wireframe/git small.png new file mode 100644 index 00000000..862a5077 Binary files /dev/null and b/Wireframe/git small.png differ diff --git a/Wireframe/github image.jpg b/Wireframe/github image.jpg new file mode 100644 index 00000000..0f5bd1b2 Binary files /dev/null and b/Wireframe/github image.jpg differ diff --git a/Wireframe/githublogo.jpg b/Wireframe/githublogo.jpg new file mode 100644 index 00000000..8862bf0e Binary files /dev/null and b/Wireframe/githublogo.jpg differ diff --git a/Wireframe/gitsmall2.png b/Wireframe/gitsmall2.png new file mode 100644 index 00000000..a41fef46 Binary files /dev/null and b/Wireframe/gitsmall2.png differ diff --git a/Wireframe/index.html b/Wireframe/index.html index 67544158..eb0e05f8 100644 --- a/Wireframe/index.html +++ b/Wireframe/index.html @@ -1,13 +1,79 @@ - - - Wireframe - + + + + Wireframe (From sketch to webpage) - - - - +

Discovering Git: The Version Control Marvel

+

Unleashing the Power of Distributed Collaboration

+ + +
+ a picture of GitHub logo +

What is Git?

+

+ Git is a distributed version control system that tracks changes in any + set of computer files, usually used for coordinating work among + programmers who are collaboratively developing source code during + software development. Its goals include speed, data integrity, and + support for distributed, non-linear workflows (thousands of parallel + branches running on different computers).

+ Read More +

+
+ + +
+
+ a picture of a young programmer lady + +
+

Why do developers need Git?

+

+ Git is an immensely popular Version Control System, which allows + developers to create a history of changes that occur over time in + their code.

+ Read More +

+
+
+ +
+ a drawing explaining branch + +
+

What is a branch in Git?

+

+ A branch represents an independent line of development. Branches + serve as an abstraction for the edit/stage/commit process. You can + think of them as a way to request a brand new working directory, + staging area, and project history. + +

+ Read More +

+
+
+
+ + + +