Xora
Learn how to build and deploy a SaaS landing page with modern UI and mobile-first principles while strengthening your React.js and Tailwind CSS skills.
Install / Use
/learn @adrianhajdin/XoraREADME
📋 <a name="table">Table of Contents</a>
- 🤖 Introduction
- ⚙️ Tech Stack
- 🔋 Features
- 🤸 Quick Start
- 🕸️ Snippets (Code to Copy)
- 🔗 Assets
- 🚀 More
🚨 Tutorial
This repository contains the code corresponding to an in-depth tutorial available on our YouTube channel, <a href="https://www.youtube.com/@javascriptmastery/videos" target="_blank"><b>JavaScript Mastery</b></a>.
If you prefer visual learning, this is the perfect resource for you. Follow our tutorial to learn how to build projects like these step-by-step in a beginner-friendly manner!
<a href="https://youtu.be/ukiGFmZ32YA?feature=shared" target="_blank"><img src="https://github.com/sujatagunale/EasyRead/assets/151519281/1736fca5-a031-4854-8c09-bc110e3bc16d" /></a>
<a name="introduction">🤖 Introduction</a>
Xora is a Modern UI/UX SaaS website developed using React.js and Tailwind CSS that exemplifies modern UI/UX principles. Its sleek design, seamless animations, and overall user experience set a high standard, serving as a reference or inspiration for future modern applications or websites in general.
If you're getting started and need assistance or face any bugs, join our active Discord community with over 34k+ members. It's a place where people help each other out.
<a href="https://discord.com/invite/n6EdbFJ" target="_blank"><img src="https://github.com/sujatagunale/EasyRead/assets/151519281/618f4872-1e10-42da-8213-1d69e486d02e" /></a>
<a name="tech-stack">⚙️ Tech Stack</a>
- Vite
- React.js
- Tailwind CSS
<a name="features">🔋 Features</a>
👉 Stunning Sections: Includes hero, features, pricing (monthly/yearly), FAQ, testimonials, and download software sections.
👉 Smooth Animations: Complex CSS for fluid animations and eye-catching effects.
👉 Cool CSS Gradients: Beautiful gradient effects using CSS before and after pseudo-elements.
👉 Seamless Navigation: Offers a smooth user experience with intuitive navigation and scrolling.
👉 Optimized Performance: Built for fast loading and an optimized experience.
👉 Pixel Perfect Design: Ensures flawless responsiveness across all devices and screen sizes.
and many more, including code architecture and reusability
<a name="quick-start">🤸 Quick Start</a>
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
Cloning the Repository
git clone https://github.com/adrianhajdin/xora.git
cd xora
Installation
Install the project dependencies using npm:
npm install
Running the Project
npm run dev
Open http://localhost:5173 in your browser to view the project.
<a name="snippets">🕸️ Snippets</a>
<details> <summary><code>tailwind.config.js</code></summary>/** @type {import('tailwindcss').Config} */
export default {
content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
theme: {
extend: {
colors: {
p1: '#2EF2FF',
p2: '#3C52D9',
p3: '#C8EA80',
p4: '#EAEDFF',
p5: '#C4CBF5',
s1: '#080D27',
s2: '#0C1838',
s3: '#334679',
s4: '#1959AD',
s5: '#263466',
black: {
DEFAULT: '#000000',
100: '#05091D',
},
},
boxShadow: {
100: '0px 4px 4px rgba(0, 0, 0, 0.25), 0px 16px 24px rgba(0, 0, 0, 0.25), inset 0px 3px 6px #1959AD',
200: '0px 4px 4px rgba(0, 0, 0, 0.25), 0px 16px 24px rgba(0, 0, 0, 0.25), inset 0px 4px 10px #3391FF',
300: '0px 4px 4px rgba(0, 0, 0, 0.25), 0px 16px 24px rgba(0, 0, 0, 0.25), inset 0px 3px 6px #1959AD',
400: 'inset 0px 2px 4px 0 rgba(255, 255, 255, 0.05)',
500: '0px 16px 24px rgba(0, 0, 0, 0.25), 0px -14px 48px rgba(40, 51, 111, 0.7)',
},
fontFamily: {
inter: ['Inter', 'sans-serif'],
poppins: ['Poppins', 'sans-serif'],
},
transitionProperty: {
borderColor: 'border-color',
},
spacing: {
'1/5': '20%',
'2/5': '40%',
'3/5': '60%',
'4/5': '80%',
'3/20': '15%',
'7/20': '35%',
'9/20': '45%',
'11/20': '55%',
'13/20': '65%',
'15/20': '75%',
'17/20': '85%',
'19/20': '95%',
22: '88px',
100: '100px',
512: '512px',
330: '330px',
388: '388px',
400: '400px',
440: '440px',
640: '640px',
960: '960px',
1230: '1230px',
},
zIndex: {
1: '1',
2: '2',
4: '4',
},
lineHeight: {
12: '48px',
},
borderRadius: {
14: '14px',
20: '20px',
40: '40px',
half: '50%',
'7xl': '40px',
},
flex: {
50: '0 0 50%',
320: '1px 0 320px',
300: '0 0 300px',
540: '0 0 540px',
280: '0 0 280px',
256: '0 0 256px',
100: '0 0 100%',
},
},
},
plugins: [],
};
</details>
<details>
<summary><code>index.css</code></summary>
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
html {
@apply bg-s1;
}
body {
@apply font-poppins text-[16px] tracking-[-0.03em] text-p5;
}
a {
@apply no-underline;
}
img {
@apply block max-w-full;
}
button {
@apply bg-none tracking-[-0.03em];
}
input {
@apply tracking-[-0.03em];
}
}
@layer utilities {
/* START of Typography */
.h-num {
@apply font-inter text-[72px] font-bold leading-[84px];
}
.h1 {
@apply text-[84px] font-black leading-[84px] tracking-[-0.03em];
}
.h2 {
@apply text-[64px] font-black leading-[64px];
}
.h3 {
@apply text-[48px] font-semibold leading-[56px] tracking-[-0.02em];
}
.h4 {
@apply text-[40px] font-semibold leading-[52px];
}
.h5 {
@apply text-[32px] font-semibold leading-[40px];
}
.h6 {
@apply text-[24px] font-medium leading-[36px];
}
.body-1 {
@apply text-[22px] leading-[36px];
}
.body-2 {
@apply text-[18px] font-semibold leading-[32px];
}
.body-3 {
@apply text-[16px] leading-[28px] tracking-[0.02em];
}
.base {
@apply text-[16px] font-medium leading-[24px] tracking-[0.03em];
}
.base-bold {
@apply text-[16px] font-bold leading-[24px];
}
.base-small {
@apply text-[14px] font-semibold leading-[18px] tracking-[0.03em];
}
.small-1 {
@apply text-[14px] font-semibold leading-[18px] tracking-[0.03em];
}
.small-2 {
@apply text-[12px] font-bold leading-[16px] tracking-[0.3em];
}
.small-compact {
@apply text-[12px] font-semibold leading-[18px] tracking-[0.03em];
}
/* END of Typography */
/* START of Gradients */
.g1 {
background: linear-gradient(rgba(196, 203, 245, 0.5), transparent);
}
.g2 {
background: linear-gradient(#3062a3, #19549f);
}
.g3 {
background: linear-gradient(#3c52d9, #0c1838);
}
.g4 {
background: linear-gradient(#253575, #162561);
}
.g5 {
background: linear-gradient(#334679, #162561);
}
.g6 {
background: linear-gradient(#334679, #0c1838);
}
.g7 {
background: linear-gradient(#1b275a, #0e1434);
}
.g8 {
background: linear-gradient(to right, transparent, #2ef2ff, transparent);
}
.g9 {
background: linear-gradient(#080d27, transparent);
}
/* END of Gradients */
/* START of Common */
.container {
@apply mx-auto max-w-[1252px] px-16 max-xl:px-10 max-lg:px-6 max-sm:px-4;
}
.caption {
@apply small-2 mb-5 uppercase text-p3;
}
.scroll-hide::-webkit-scrollbar {
display: none;
}
.scroll-hide {
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
/* END of Common */
/* START of Header */
.nav-active {
@apply text-p3;
}
.nav-li {
@apply relative flex flex-1 items-center justify-between max-lg:flex-col max-lg:items-start;
}
.nav-logo {
@apply relative flex flex-1 items-center justify-center;
}
.dot {
@apply size-1.5 rounded-full bg-p2 max-lg:hidden;
}
.sidebar-before {
@apply max-lg:before:absolute max-lg:before:-right-64 max-lg:before:top-2/5 max-lg:before:h-[440px] max-lg:before:w-[252px] max-lg:before:bg-s4 max-lg:before:blur-[200px] max-lg:before:content-[''];
}
/* END of Header */
/* START of Hero */
.hero-img_res {
@apply max-lg:-top-40 max-lg:left-[calc(50%-280px)] max-lg:w-[1160px] max-md:bottom
Related Skills
tmux
337.1kRemote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
terraform-provider-genesyscloud
Terraform Provider Genesyscloud
blogwatcher
337.1kMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
product
Cloud-agnostic Kubernetes infrastructure with Terraform & Helm for homelabs, edge, and production clusters.
