This commit is contained in:
2024-08-04 19:24:40 +05:00
parent 908ac73c6b
commit 1b22c31828
15 changed files with 373 additions and 9 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+221
View File
@@ -0,0 +1,221 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex, noarchive">
<meta name="format-detection" content="telephone=no">
<title>Transfonter demo</title>
<link href="stylesheet.css" rel="stylesheet">
<style>
/*
http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/* demo styles */
body {
background: #f0f0f0;
color: #000;
}
.page {
background: #fff;
width: 920px;
margin: 0 auto;
padding: 20px 20px 0 20px;
overflow: hidden;
}
.font-container {
overflow-x: auto;
overflow-y: hidden;
margin-bottom: 40px;
line-height: 1.3;
white-space: nowrap;
padding-bottom: 5px;
}
h1 {
position: relative;
background: #444;
font-size: 32px;
color: #fff;
padding: 10px 20px;
margin: 0 -20px 12px -20px;
}
.letters {
font-size: 25px;
margin-bottom: 20px;
}
.s10:before {
content: '10px';
}
.s11:before {
content: '11px';
}
.s12:before {
content: '12px';
}
.s14:before {
content: '14px';
}
.s18:before {
content: '18px';
}
.s24:before {
content: '24px';
}
.s30:before {
content: '30px';
}
.s36:before {
content: '36px';
}
.s48:before {
content: '48px';
}
.s60:before {
content: '60px';
}
.s72:before {
content: '72px';
}
.s10:before, .s11:before, .s12:before, .s14:before,
.s18:before, .s24:before, .s30:before, .s36:before,
.s48:before, .s60:before, .s72:before {
font-family: Arial, sans-serif;
font-size: 10px;
font-weight: normal;
font-style: normal;
color: #999;
padding-right: 6px;
}
pre {
display: block;
padding: 9px;
margin: 0 0 12px;
font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
font-size: 13px;
line-height: 1.428571429;
color: #333;
font-weight: normal;
font-style: normal;
background-color: #f5f5f5;
border: 1px solid #ccc;
overflow-x: auto;
border-radius: 4px;
}
/* responsive */
@media (max-width: 959px) {
.page {
width: auto;
margin: 0;
}
}
</style>
</head>
<body>
<div class="page">
<div class="demo">
<h1 style="font-family: 'Mixcase Mixed'; font-weight: normal; font-style: normal;">Mixcase Mixed</h1>
<pre title="Usage">.your-style {
font-family: 'Mixcase Mixed';
font-weight: normal;
font-style: normal;
}</pre>
<pre title="Preload (optional)">
&lt;link rel=&quot;preload&quot; href=&quot;MixcaseMixed.woff2&quot; as=&quot;font&quot; type=&quot;font/woff2&quot; crossorigin&gt;</pre>
<div class="font-container" style="font-family: 'Mixcase Mixed'; font-weight: normal; font-style: normal;">
<p class="letters">
abcdefghijklmnopqrstuvwxyz<br>
ABCDEFGHIJKLMNOPQRSTUVWXYZ<br>
0123456789.:,;()*!?'@#&lt;&gt;$%&^+-=~
</p>
<p class="s10" style="font-size: 10px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s11" style="font-size: 11px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s12" style="font-size: 12px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s14" style="font-size: 14px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s18" style="font-size: 18px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s24" style="font-size: 24px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s30" style="font-size: 30px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s36" style="font-size: 36px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s48" style="font-size: 48px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s60" style="font-size: 60px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s72" style="font-size: 72px;">The quick brown fox jumps over the lazy dog.</p>
</div>
</div>
<div class="demo">
<h1 style="font-family: 'Mixcase Unmixed'; font-weight: normal; font-style: normal;">Mixcase Unmixed</h1>
<pre title="Usage">.your-style {
font-family: 'Mixcase Unmixed';
font-weight: normal;
font-style: normal;
}</pre>
<pre title="Preload (optional)">
&lt;link rel=&quot;preload&quot; href=&quot;MixcaseUnmixed.woff2&quot; as=&quot;font&quot; type=&quot;font/woff2&quot; crossorigin&gt;</pre>
<div class="font-container" style="font-family: 'Mixcase Unmixed'; font-weight: normal; font-style: normal;">
<p class="letters">
abcdefghijklmnopqrstuvwxyz<br>
ABCDEFGHIJKLMNOPQRSTUVWXYZ<br>
0123456789.:,;()*!?'@#&lt;&gt;$%&^+-=~
</p>
<p class="s10" style="font-size: 10px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s11" style="font-size: 11px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s12" style="font-size: 12px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s14" style="font-size: 14px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s18" style="font-size: 18px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s24" style="font-size: 24px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s30" style="font-size: 30px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s36" style="font-size: 36px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s48" style="font-size: 48px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s60" style="font-size: 60px;">The quick brown fox jumps over the lazy dog.</p>
<p class="s72" style="font-size: 72px;">The quick brown fox jumps over the lazy dog.</p>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,26 @@
@font-face {
font-family: 'Mixcase Mixed';
src: url('MixcaseMixed.eot');
src: local('Mixcase Mixed'), local('MixcaseMixed'),
url('MixcaseMixed.eot?#iefix') format('embedded-opentype'),
url('MixcaseMixed.woff2') format('woff2'),
url('MixcaseMixed.woff') format('woff'),
url('MixcaseMixed.ttf') format('truetype');
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Mixcase Unmixed';
src: url('MixcaseUnmixed.eot');
src: local('Mixcase Unmixed'), local('MixcaseUnmixed'),
url('MixcaseUnmixed.eot?#iefix') format('embedded-opentype'),
url('MixcaseUnmixed.woff2') format('woff2'),
url('MixcaseUnmixed.woff') format('woff'),
url('MixcaseUnmixed.ttf') format('truetype');
font-weight: normal;
font-style: normal;
font-display: swap;
}
+50
View File
@@ -0,0 +1,50 @@
interface Props {
variant?: "primary" | "secondary";
size?: "large" | "medium" | "small";
roundedFull?: boolean;
icon?: JSX.Element;
onlyIcon?: boolean;
children?: React.ReactNode;
onClick?: () => void;
}
const variantClasses = {
primary: "bg-[#00BED7] text-white hover:bg-[#0AB3C9]",
secondary: "",
};
const sizeClasses = {
large: "px-4 py-3 gap-2 text-base",
medium: "px-3.5 py-2.5 gap-1 text-sm",
small: "px-3 py-2.5 gap-1 text-xs",
};
function Button2({
variant = "primary",
size = "medium",
roundedFull = false,
icon,
onlyIcon = false,
children,
onClick,
}: Props) {
return (
<button
className={`flex items-center transition-colors w-fit ${
variantClasses[variant]
} ${sizeClasses[size]} ${roundedFull ? "rounded-full" : "rounded-lg"} `}
onClick={onClick}
>
{onlyIcon ? (
icon
) : (
<>
{icon}
{children}
</>
)}
</button>
);
}
export default Button2;
+3 -1
View File
@@ -1,3 +1,5 @@
@import url("/fonts/Mixcase/stylesheet.css");
@tailwind base;
@tailwind components;
@tailwind utilities;
@@ -45,7 +47,7 @@ body {
}
.font-mixcase {
font-family: "Mixcase", sans-serif;
font-family: "Mixcase Unmixed", sans-serif;
}
@layer components {
+7 -4
View File
@@ -9,7 +9,7 @@ import DesktopHeader from "../components/header/Header/DesktopHeader";
import MobileHeader from "../components/header/Header/MobileHeader";
import Footer from "../components/Footer";
const WithoutFooterLayout = () => {
function WithFooterLayout() {
const { modal } = useModal();
const { setOnFullscreen } = useFullScreen();
const onFullscreenHandle = useFullScreenHandle();
@@ -20,7 +20,10 @@ const WithoutFooterLayout = () => {
return (
<>
<FullScreen handle={onFullscreenHandle} className="flex flex-col min-h-screen">
<FullScreen
handle={onFullscreenHandle}
className="flex flex-col min-h-screen"
>
{isMobile ? <MobileHeader /> : <DesktopHeader />}
{modal}
<Outlet />
@@ -28,6 +31,6 @@ const WithoutFooterLayout = () => {
</FullScreen>
</>
);
};
}
export default WithoutFooterLayout;
export default WithFooterLayout;
+5 -4
View File
@@ -5,7 +5,7 @@ import DefaultLayout from "./layouts/DefaultLayout";
import MasterplanPage from "./pages/MasterplanPage";
import ComplexPage from "./pages/ComplexPage";
import ComplexWingPage from "./pages/ComplexWingPage";
import AboutProjectsPage from "./pages/AboutProjectsPage";
// import AboutProjectsPage from "./pages/AboutProjectsPage";
import UnitTypesPage from "./pages/UnitTypesPage";
import AboutPage from "./pages/AboutPage";
// import ApartmentPage from "./pages/ApartmentPage";
@@ -13,7 +13,8 @@ import VirtualTourPage from "./pages/VirtualTourPage";
import UnitTypesItemPage from "./pages/UnitTypesItemPage";
import SearchPage2 from "./pages/SearchPage2";
import FavoritesPage2 from "./pages/FavoritesPage2";
import WithoutFooterLayout from "./layouts/WithFooterLayout";
import WithFooterLayout from "./layouts/WithFooterLayout";
import AboutProjects2Page from "./pages/AboutProjects2Page";
const router = createBrowserRouter([
{
@@ -44,11 +45,11 @@ const router = createBrowserRouter([
},
{
path: "/",
element: <WithoutFooterLayout />,
element: <WithFooterLayout />,
children: [
{
path: "about-projects",
element: <AboutProjectsPage />,
element: <AboutProjects2Page />,
},
{
path: "about",
+61
View File
@@ -0,0 +1,61 @@
import Button2 from "../components/Button2";
import ArrowLeftIcon from "../components/icons/ArrowLeftIcon";
function AboutProjects2Page() {
return (
<div className="pt-[58px] space-y-[100px]">
<div className="px-6 pt-16 space-y-16">
<p className="text-[56px] text-[#0D1922] font-mixcase -tracking-[1.68px] uppercase leading-none">
Rove Home this residence a complete ecosystem that has everything
youll ever need. This isnt just where youll live. Its where youll
thrive.
</p>
<div className="flex gap-6">
<div className="w-1/4 flex flex-col justify-between gap-6">
<div className="space-y-6">
<p className="text-xs font-semibold">ABOUT ROVE HOME</p>
<p className="text-2xl text-[#00BED7] font-semibold">
Embrace Roves forever-young spirit at Rove Home, where
inspiring design and vibrant art installations converge with an
exceptional location and an extended playlist of life-enhancing{" "}
</p>
</div>
<Button2 icon={<ArrowLeftIcon />}>Masterplan</Button2>
</div>
<div className="w-3/4">
<img
src=""
alt=""
className="aspect-[22/9] h-full w-full rounded-2xl object-cover"
/>
</div>
</div>
</div>
<div className="relative h-screen bg-blue-100">
<div className="absolute w-full h-full"></div>
<div className="absolute bottom-6 left-6 bg-white w-[378px] p-8 rounded-2xl space-y-8">
<div className="space-y-4">
<p className="text-2xl text-[#00BED7] font-semibold">Rove Home</p>
<p>
Rove Home branded residences are an extension of the Rove Hotels
brand. These branded residences are for hassle-free living, with
personalized expressions of your ideal living environment.
</p>
<p>
Weve handpicked prime locations to ensure you get the very best.
From interiors that uplift and energise, and amenities that are
thoughtful and engaging to contemporarily stylish yet cosy
apartments, we decided that this is the kind of place where wed
like to live so we set out to build exactly that. We think
youll agree.
</p>
</div>
<div className=""></div>
</div>
</div>
</div>
);
}
export default AboutProjects2Page;