updated logo,about page
BIN
public/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 408 KiB After Width: | Height: | Size: 6.9 KiB |
BIN
src/assets/kapfoundry-logo-1.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
src/assets/kapfoundry-logo-full.webp
Normal file
|
After Width: | Height: | Size: 109 KiB |
BIN
src/assets/kapfoundry-mark.webp
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
src/assets/kapfoundry-wordmark.webp
Normal file
|
After Width: | Height: | Size: 26 KiB |
2569
src/components/site/sections.tsx
Normal file
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
import { Route as rootRouteImport } from './routes/__root'
|
import { Route as rootRouteImport } from './routes/__root'
|
||||||
import { Route as SitemapDotxmlRouteImport } from './routes/sitemap[.]xml'
|
import { Route as SitemapDotxmlRouteImport } from './routes/sitemap[.]xml'
|
||||||
|
import { Route as AboutRouteImport } from './routes/about'
|
||||||
import { Route as IndexRouteImport } from './routes/index'
|
import { Route as IndexRouteImport } from './routes/index'
|
||||||
|
|
||||||
const SitemapDotxmlRoute = SitemapDotxmlRouteImport.update({
|
const SitemapDotxmlRoute = SitemapDotxmlRouteImport.update({
|
||||||
@@ -17,6 +18,11 @@ const SitemapDotxmlRoute = SitemapDotxmlRouteImport.update({
|
|||||||
path: '/sitemap.xml',
|
path: '/sitemap.xml',
|
||||||
getParentRoute: () => rootRouteImport,
|
getParentRoute: () => rootRouteImport,
|
||||||
} as any)
|
} as any)
|
||||||
|
const AboutRoute = AboutRouteImport.update({
|
||||||
|
id: '/about',
|
||||||
|
path: '/about',
|
||||||
|
getParentRoute: () => rootRouteImport,
|
||||||
|
} as any)
|
||||||
const IndexRoute = IndexRouteImport.update({
|
const IndexRoute = IndexRouteImport.update({
|
||||||
id: '/',
|
id: '/',
|
||||||
path: '/',
|
path: '/',
|
||||||
@@ -25,27 +31,31 @@ const IndexRoute = IndexRouteImport.update({
|
|||||||
|
|
||||||
export interface FileRoutesByFullPath {
|
export interface FileRoutesByFullPath {
|
||||||
'/': typeof IndexRoute
|
'/': typeof IndexRoute
|
||||||
|
'/about': typeof AboutRoute
|
||||||
'/sitemap.xml': typeof SitemapDotxmlRoute
|
'/sitemap.xml': typeof SitemapDotxmlRoute
|
||||||
}
|
}
|
||||||
export interface FileRoutesByTo {
|
export interface FileRoutesByTo {
|
||||||
'/': typeof IndexRoute
|
'/': typeof IndexRoute
|
||||||
|
'/about': typeof AboutRoute
|
||||||
'/sitemap.xml': typeof SitemapDotxmlRoute
|
'/sitemap.xml': typeof SitemapDotxmlRoute
|
||||||
}
|
}
|
||||||
export interface FileRoutesById {
|
export interface FileRoutesById {
|
||||||
__root__: typeof rootRouteImport
|
__root__: typeof rootRouteImport
|
||||||
'/': typeof IndexRoute
|
'/': typeof IndexRoute
|
||||||
|
'/about': typeof AboutRoute
|
||||||
'/sitemap.xml': typeof SitemapDotxmlRoute
|
'/sitemap.xml': typeof SitemapDotxmlRoute
|
||||||
}
|
}
|
||||||
export interface FileRouteTypes {
|
export interface FileRouteTypes {
|
||||||
fileRoutesByFullPath: FileRoutesByFullPath
|
fileRoutesByFullPath: FileRoutesByFullPath
|
||||||
fullPaths: '/' | '/sitemap.xml'
|
fullPaths: '/' | '/about' | '/sitemap.xml'
|
||||||
fileRoutesByTo: FileRoutesByTo
|
fileRoutesByTo: FileRoutesByTo
|
||||||
to: '/' | '/sitemap.xml'
|
to: '/' | '/about' | '/sitemap.xml'
|
||||||
id: '__root__' | '/' | '/sitemap.xml'
|
id: '__root__' | '/' | '/about' | '/sitemap.xml'
|
||||||
fileRoutesById: FileRoutesById
|
fileRoutesById: FileRoutesById
|
||||||
}
|
}
|
||||||
export interface RootRouteChildren {
|
export interface RootRouteChildren {
|
||||||
IndexRoute: typeof IndexRoute
|
IndexRoute: typeof IndexRoute
|
||||||
|
AboutRoute: typeof AboutRoute
|
||||||
SitemapDotxmlRoute: typeof SitemapDotxmlRoute
|
SitemapDotxmlRoute: typeof SitemapDotxmlRoute
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,6 +68,13 @@ declare module '@tanstack/react-router' {
|
|||||||
preLoaderRoute: typeof SitemapDotxmlRouteImport
|
preLoaderRoute: typeof SitemapDotxmlRouteImport
|
||||||
parentRoute: typeof rootRouteImport
|
parentRoute: typeof rootRouteImport
|
||||||
}
|
}
|
||||||
|
'/about': {
|
||||||
|
id: '/about'
|
||||||
|
path: '/about'
|
||||||
|
fullPath: '/about'
|
||||||
|
preLoaderRoute: typeof AboutRouteImport
|
||||||
|
parentRoute: typeof rootRouteImport
|
||||||
|
}
|
||||||
'/': {
|
'/': {
|
||||||
id: '/'
|
id: '/'
|
||||||
path: '/'
|
path: '/'
|
||||||
@@ -70,6 +87,7 @@ declare module '@tanstack/react-router' {
|
|||||||
|
|
||||||
const rootRouteChildren: RootRouteChildren = {
|
const rootRouteChildren: RootRouteChildren = {
|
||||||
IndexRoute: IndexRoute,
|
IndexRoute: IndexRoute,
|
||||||
|
AboutRoute: AboutRoute,
|
||||||
SitemapDotxmlRoute: SitemapDotxmlRoute,
|
SitemapDotxmlRoute: SitemapDotxmlRoute,
|
||||||
}
|
}
|
||||||
export const routeTree = rootRouteImport
|
export const routeTree = rootRouteImport
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ export const Route = createRootRouteWithContext<{ queryClient: QueryClient }>()(
|
|||||||
{
|
{
|
||||||
name: "description",
|
name: "description",
|
||||||
content:
|
content:
|
||||||
"KapFoundry is a Hyderabad-based venture studio and technology holding company engineering AI-first, category-defining companies across logistics, retail, fintech, agritech, cuisine, and carbon.",
|
"KapFoundry is a Bangalore-based venture studio and technology holding company engineering AI-first, category-defining companies across logistics, retail, fintech, agritech, cuisine, and carbon.",
|
||||||
},
|
},
|
||||||
{ name: "author", content: "KapFoundry" },
|
{ name: "author", content: "KapFoundry" },
|
||||||
{ property: "og:title", content: "KapFoundry: Build Bold. Build the Future." },
|
{ property: "og:title", content: "KapFoundry: Build Bold. Build the Future." },
|
||||||
@@ -95,6 +95,7 @@ export const Route = createRootRouteWithContext<{ queryClient: QueryClient }>()(
|
|||||||
links: [
|
links: [
|
||||||
{ rel: "stylesheet", href: appCss },
|
{ rel: "stylesheet", href: appCss },
|
||||||
{ rel: "icon", href: "/favicon.png", type: "image/png" },
|
{ rel: "icon", href: "/favicon.png", type: "image/png" },
|
||||||
|
{ rel: "apple-touch-icon", href: "/apple-touch-icon.png" },
|
||||||
{ rel: "preconnect", href: "https://fonts.googleapis.com" },
|
{ rel: "preconnect", href: "https://fonts.googleapis.com" },
|
||||||
{ rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "anonymous" },
|
{ rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "anonymous" },
|
||||||
{
|
{
|
||||||
|
|||||||
36
src/routes/about.tsx
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import { createFileRoute } from "@tanstack/react-router";
|
||||||
|
import {
|
||||||
|
AboutHero,
|
||||||
|
Contact,
|
||||||
|
Different,
|
||||||
|
SitePage,
|
||||||
|
Team,
|
||||||
|
VisionMission,
|
||||||
|
} from "@/components/site/sections";
|
||||||
|
|
||||||
|
export const Route = createFileRoute("/about")({
|
||||||
|
head: () => ({
|
||||||
|
meta: [
|
||||||
|
{ title: "About | KapFoundry" },
|
||||||
|
{
|
||||||
|
name: "description",
|
||||||
|
content:
|
||||||
|
"KapFoundry's vision, mission and team. A Bangalore-based venture studio building AI-first companies.",
|
||||||
|
},
|
||||||
|
{ property: "og:title", content: "About KapFoundry" },
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
component: About,
|
||||||
|
});
|
||||||
|
|
||||||
|
function About() {
|
||||||
|
return (
|
||||||
|
<SitePage page="about">
|
||||||
|
<AboutHero />
|
||||||
|
<Different />
|
||||||
|
<VisionMission />
|
||||||
|
<Team />
|
||||||
|
<Contact />
|
||||||
|
</SitePage>
|
||||||
|
);
|
||||||
|
}
|
||||||
2432
src/routes/index.tsx
@@ -7,7 +7,10 @@ export const Route = createFileRoute("/sitemap.xml")({
|
|||||||
server: {
|
server: {
|
||||||
handlers: {
|
handlers: {
|
||||||
GET: async () => {
|
GET: async () => {
|
||||||
const entries = [{ path: "/", changefreq: "weekly", priority: "1.0" }];
|
const entries = [
|
||||||
|
{ path: "/", changefreq: "weekly", priority: "1.0" },
|
||||||
|
{ path: "/about", changefreq: "monthly", priority: "0.8" },
|
||||||
|
];
|
||||||
const urls = entries.map(
|
const urls = entries.map(
|
||||||
(e) =>
|
(e) =>
|
||||||
` <url>\n <loc>${BASE_URL}${e.path}</loc>\n <changefreq>${e.changefreq}</changefreq>\n <priority>${e.priority}</priority>\n </url>`,
|
` <url>\n <loc>${BASE_URL}${e.path}</loc>\n <changefreq>${e.changefreq}</changefreq>\n <priority>${e.priority}</priority>\n </url>`,
|
||||||
|
|||||||
@@ -484,12 +484,6 @@ html.menu-open {
|
|||||||
clip-path: inset(0 0 round 0);
|
clip-path: inset(0 0 round 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@keyframes panel-rise {
|
|
||||||
from {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translate3d(0, 72px, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes glow-drift {
|
@keyframes glow-drift {
|
||||||
from {
|
from {
|
||||||
translate: 0 -18%;
|
translate: 0 -18%;
|
||||||
@@ -506,17 +500,6 @@ html.menu-open {
|
|||||||
animation-timeline: view();
|
animation-timeline: view();
|
||||||
animation-range: entry 0% entry 55%;
|
animation-range: entry 0% entry 55%;
|
||||||
}
|
}
|
||||||
.panel-rise {
|
|
||||||
animation: panel-rise linear both;
|
|
||||||
animation-timeline: view();
|
|
||||||
animation-range: entry 5% cover 30%;
|
|
||||||
}
|
|
||||||
/* Side-by-side on desktop: offset each panel's range so they rise left to right. */
|
|
||||||
@media (min-width: 1024px) {
|
|
||||||
.panel-rise {
|
|
||||||
animation-range: entry calc(var(--i, 0) * 7%) cover calc(24% + var(--i, 0) * 3%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.glow-drift {
|
.glow-drift {
|
||||||
animation: glow-drift linear both;
|
animation: glow-drift linear both;
|
||||||
animation-timeline: view();
|
animation-timeline: view();
|
||||||
|
|||||||