feat(branding): atualiza landing, fontes e assets publicos
@@ -1,5 +1,5 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="./public/logo_small.png" alt="OpenMonetis Logo" height="80" />
|
<img src="./public/imagens/logo_small.png" alt="OpenMonetis Logo" height="80" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="./public/dashboard-preview-light.webp" alt="Dashboard Preview" width="800" />
|
<img src="./public/imagens/dashboard-preview-light.webp" alt="Dashboard Preview" width="800" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -60,9 +60,9 @@ export default async function DashboardLayout({
|
|||||||
notificationsSnapshot={notificationsSnapshot}
|
notificationsSnapshot={notificationsSnapshot}
|
||||||
/>
|
/>
|
||||||
<div className="relative flex flex-1 flex-col pt-16">
|
<div className="relative flex flex-1 flex-col pt-16">
|
||||||
<div className="pointer-events-none absolute inset-0 bg-linear-to-b from-primary/5 via-transparent to-transparent" />
|
<div className="pointer-events-none absolute inset-0" />
|
||||||
<div className="@container/main flex flex-1 flex-col gap-2">
|
<div className="@container/main flex flex-1 flex-col gap-2">
|
||||||
<div className="flex flex-col gap-4 py-5 md:gap-6 w-full max-w-8xl mx-auto px-4">
|
<div className="flex flex-col gap-4 py-5 md:gap-6 w-full max-w-8xl mx-auto px-4 ">
|
||||||
{children}
|
{children}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export const metadata: Metadata = {
|
|||||||
description: DESCRIPTION,
|
description: DESCRIPTION,
|
||||||
images: [
|
images: [
|
||||||
{
|
{
|
||||||
url: "/dashboard-preview-light.webp",
|
url: "/imagens/dashboard-preview-light.webp",
|
||||||
width: 1920,
|
width: 1920,
|
||||||
height: 1080,
|
height: 1080,
|
||||||
alt: "OpenMonetis — Dashboard de finanças pessoais",
|
alt: "OpenMonetis — Dashboard de finanças pessoais",
|
||||||
@@ -47,7 +47,7 @@ export const metadata: Metadata = {
|
|||||||
card: "summary_large_image",
|
card: "summary_large_image",
|
||||||
title: TITLE,
|
title: TITLE,
|
||||||
description: DESCRIPTION,
|
description: DESCRIPTION,
|
||||||
images: ["/dashboard-preview-light.webp"],
|
images: ["/imagens/dashboard-preview-light.webp"],
|
||||||
},
|
},
|
||||||
robots: {
|
robots: {
|
||||||
index: true,
|
index: true,
|
||||||
|
|||||||
@@ -30,11 +30,11 @@ import {
|
|||||||
import { headers } from "next/headers";
|
import { headers } from "next/headers";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { AnimatedThemeToggler } from "@/components/animated-theme-toggler";
|
|
||||||
import { AnimateOnScroll } from "@/components/landing/animate-on-scroll";
|
import { AnimateOnScroll } from "@/components/landing/animate-on-scroll";
|
||||||
import { MobileNav } from "@/components/landing/mobile-nav";
|
import { MobileNav } from "@/components/landing/mobile-nav";
|
||||||
import { SetupTabs } from "@/components/landing/setup-tabs";
|
import { SetupTabs } from "@/components/landing/setup-tabs";
|
||||||
import { Logo } from "@/components/logo";
|
import { AnimatedThemeToggler } from "@/components/shared/animated-theme-toggler";
|
||||||
|
import { Logo } from "@/components/shared/logo";
|
||||||
import { Badge } from "@/components/ui/badge";
|
import { Badge } from "@/components/ui/badge";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { Card, CardContent } from "@/components/ui/card";
|
import { Card, CardContent } from "@/components/ui/card";
|
||||||
@@ -120,20 +120,20 @@ const screenshotSections = [
|
|||||||
{
|
{
|
||||||
title: "Lançamentos",
|
title: "Lançamentos",
|
||||||
description: "Registre e organize todas as suas transações financeiras",
|
description: "Registre e organize todas as suas transações financeiras",
|
||||||
lightSrc: "/preview-lancamentos-light.webp",
|
lightSrc: "/imagens/preview-lancamentos-light.webp",
|
||||||
darkSrc: "/preview-lancamentos-dark.webp",
|
darkSrc: "/imagens/preview-lancamentos-dark.webp",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Calendário",
|
title: "Calendário",
|
||||||
description: "Visualize suas finanças no calendário mensal",
|
description: "Visualize suas finanças no calendário mensal",
|
||||||
lightSrc: "/preview-calendario-light.webp",
|
lightSrc: "/imagens/preview-calendario-light.webp",
|
||||||
darkSrc: "/preview-calendario-dark.webp",
|
darkSrc: "/imagens/preview-calendario-dark.webp",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Cartões",
|
title: "Cartões",
|
||||||
description: "Acompanhe faturas, limites e vencimentos dos seus cartões",
|
description: "Acompanhe faturas, limites e vencimentos dos seus cartões",
|
||||||
lightSrc: "/preview-cartao-light.webp",
|
lightSrc: "/imagens/preview-cartao-light.webp",
|
||||||
darkSrc: "/preview-cartao-dark.webp",
|
darkSrc: "/imagens/preview-cartao-dark.webp",
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -353,7 +353,7 @@ export default async function Page() {
|
|||||||
<AnimateOnScroll>
|
<AnimateOnScroll>
|
||||||
<div>
|
<div>
|
||||||
<Image
|
<Image
|
||||||
src="/dashboard-preview-light.webp"
|
src="/imagens/dashboard-preview-light.webp"
|
||||||
alt="openmonetis Dashboard Preview"
|
alt="openmonetis Dashboard Preview"
|
||||||
width={1920}
|
width={1920}
|
||||||
height={1080}
|
height={1080}
|
||||||
@@ -361,7 +361,7 @@ export default async function Page() {
|
|||||||
priority
|
priority
|
||||||
/>
|
/>
|
||||||
<Image
|
<Image
|
||||||
src="/dashboard-preview-dark.webp"
|
src="/imagens/dashboard-preview-dark.webp"
|
||||||
alt="openmonetis Dashboard Preview"
|
alt="openmonetis Dashboard Preview"
|
||||||
width={1920}
|
width={1920}
|
||||||
height={1080}
|
height={1080}
|
||||||
@@ -607,7 +607,7 @@ export default async function Page() {
|
|||||||
<div className="order-1 md:order-2 flex items-center justify-center">
|
<div className="order-1 md:order-2 flex items-center justify-center">
|
||||||
<div className="w-full max-w-[220px] md:max-w-[260px]">
|
<div className="w-full max-w-[220px] md:max-w-[260px]">
|
||||||
<Image
|
<Image
|
||||||
src="/openmonetis_companion.webp"
|
src="/imagens/openmonetis_companion.webp"
|
||||||
alt="OpenMonetis Companion App"
|
alt="OpenMonetis Companion App"
|
||||||
width={1080}
|
width={1080}
|
||||||
height={2217}
|
height={2217}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
@custom-variant dark (&:is(.dark *));
|
@custom-variant dark (&:is(.dark *));
|
||||||
|
|
||||||
@theme {
|
@theme {
|
||||||
--spacing-custom-height-1: 30rem;
|
--spacing-custom-height-card: 30rem;
|
||||||
--spacing-8xl: 88rem; /* 1408px */
|
--spacing-8xl: 88rem; /* 1408px */
|
||||||
--spacing-9xl: 96rem; /* 1536px */
|
--spacing-9xl: 96rem; /* 1536px */
|
||||||
}
|
}
|
||||||
@@ -14,15 +14,15 @@
|
|||||||
--font-money: var(--font-ai-sans);
|
--font-money: var(--font-ai-sans);
|
||||||
|
|
||||||
/* Base surfaces - warm cream with subtle orange undertone */
|
/* Base surfaces - warm cream with subtle orange undertone */
|
||||||
--background: oklch(96.563% 0.00504 67.275);
|
--background: oklch(98.01% 0.00331 67.026);
|
||||||
--foreground: oklch(18% 0.02 45);
|
--foreground: #0a0a0a;
|
||||||
--card: oklch(100% 0 0);
|
--card: var(--background);
|
||||||
--card-foreground: oklch(18% 0.02 45);
|
--card-foreground: #0a0a0a;
|
||||||
--popover: oklch(99.5% 0.004 80);
|
--popover: oklch(99.5% 0.004 80);
|
||||||
--popover-foreground: oklch(18% 0.02 45);
|
--popover-foreground: oklch(18% 0.02 45);
|
||||||
|
|
||||||
/* Primary - rich terracotta orange */
|
/* Primary - rich terracotta orange */
|
||||||
--primary: oklch(69.18% 0.18855 38.353);
|
--primary: #fc712b;
|
||||||
--primary-foreground: oklch(98% 0.008 80);
|
--primary-foreground: oklch(98% 0.008 80);
|
||||||
|
|
||||||
/* Secondary - warm stone with subtle saturation */
|
/* Secondary - warm stone with subtle saturation */
|
||||||
@@ -31,14 +31,14 @@
|
|||||||
|
|
||||||
/* Muted - softer background variant */
|
/* Muted - softer background variant */
|
||||||
--muted: oklch(94.5% 0.014 75);
|
--muted: oklch(94.5% 0.014 75);
|
||||||
--muted-foreground: oklch(45% 0.015 60);
|
--muted-foreground: #44413c;
|
||||||
|
|
||||||
/* Accent - complementary warm tone */
|
/* Accent - complementary warm tone */
|
||||||
--accent: oklch(94% 0.01 70);
|
--accent: oklch(94% 0.01 70);
|
||||||
--accent-foreground: oklch(22% 0.025 45);
|
--accent-foreground: #44413c;
|
||||||
|
|
||||||
/* Semantic states */
|
/* Semantic states */
|
||||||
--success: oklch(55% 0.17 150);
|
--success: oklch(55.87% 0.12943 157.517);
|
||||||
--success-foreground: oklch(98% 0.01 150);
|
--success-foreground: oklch(98% 0.01 150);
|
||||||
--warning: oklch(69.913% 0.1798 49.649);
|
--warning: oklch(69.913% 0.1798 49.649);
|
||||||
--warning-foreground: oklch(20% 0.04 85);
|
--warning-foreground: oklch(20% 0.04 85);
|
||||||
@@ -50,21 +50,21 @@
|
|||||||
--destructive-foreground: oklch(98% 0.005 30);
|
--destructive-foreground: oklch(98% 0.005 30);
|
||||||
|
|
||||||
/* Borders and inputs - defined but subtle */
|
/* Borders and inputs - defined but subtle */
|
||||||
--border: oklch(88% 0.015 80);
|
--border: oklch(82% 0.012 75);
|
||||||
--input: oklch(82% 0.012 75);
|
--input: oklch(82% 0.012 75);
|
||||||
--ring: oklch(69.18% 0.18855 38.353);
|
--ring: oklch(69.18% 0.18855 38.353);
|
||||||
|
|
||||||
/* Charts - 10 harmonious, distinct, accessible colors */
|
/* Charts - 10 harmonious, distinct, accessible colors */
|
||||||
--chart-1: var(--color-emerald-400);
|
--chart-1: var(--color-emerald-500);
|
||||||
--chart-2: var(--color-orange-400);
|
--chart-2: var(--color-orange-500);
|
||||||
--chart-3: var(--color-indigo-400);
|
--chart-3: var(--color-indigo-500);
|
||||||
--chart-4: var(--color-amber-400);
|
--chart-4: var(--color-amber-500);
|
||||||
--chart-5: var(--color-pink-400);
|
--chart-5: var(--color-pink-500);
|
||||||
--chart-6: var(--color-stone-400);
|
--chart-6: var(--color-stone-500);
|
||||||
--chart-7: var(--color-teal-400);
|
--chart-7: var(--color-teal-500);
|
||||||
--chart-8: var(--color-violet-400);
|
--chart-8: var(--color-violet-500);
|
||||||
--chart-9: var(--color-cyan-400);
|
--chart-9: var(--color-cyan-500);
|
||||||
--chart-10: var(--color-lime-400);
|
--chart-10: var(--color-lime-500);
|
||||||
|
|
||||||
/* Sidebar - slight elevation from background */
|
/* Sidebar - slight elevation from background */
|
||||||
--sidebar: oklch(100% 0 0);
|
--sidebar: oklch(100% 0 0);
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
--sidebar-ring: oklch(69.18% 0.18855 38.353);
|
--sidebar-ring: oklch(69.18% 0.18855 38.353);
|
||||||
|
|
||||||
/* Layout */
|
/* Layout */
|
||||||
--radius: 1rem;
|
--radius: 0.5rem;
|
||||||
|
|
||||||
/* Shadows - warm tinted for cohesion */
|
/* Shadows - warm tinted for cohesion */
|
||||||
--shadow-2xs: 0 1px 2px 0px oklch(35% 0.02 45 / 0.04);
|
--shadow-2xs: 0 1px 2px 0px oklch(35% 0.02 45 / 0.04);
|
||||||
@@ -96,22 +96,19 @@
|
|||||||
--tracking-normal: 0em;
|
--tracking-normal: 0em;
|
||||||
--spacing: 0.25rem;
|
--spacing: 0.25rem;
|
||||||
|
|
||||||
/* Special components */
|
|
||||||
--welcome-banner: var(--primary);
|
|
||||||
--welcome-banner-foreground: var(--primary-foreground);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark {
|
.dark {
|
||||||
/* Base surfaces - warm dark with consistent hue family */
|
/* Base surfaces - warm dark with consistent hue family */
|
||||||
--background: oklch(18.5% 0.002 70);
|
--background: oklch(18.5% 0.002 70);
|
||||||
--foreground: oklch(92% 0.015 80);
|
--foreground: oklch(92% 0.015 80);
|
||||||
--card: oklch(0.13 0.01 64.18);
|
--card: var(--background);
|
||||||
--card-foreground: oklch(92% 0.015 80);
|
--card-foreground: oklch(92% 0.015 80);
|
||||||
--popover: oklch(24% 0.003 70);
|
--popover: oklch(24% 0.003 70);
|
||||||
--popover-foreground: oklch(92% 0.015 80);
|
--popover-foreground: oklch(92% 0.015 80);
|
||||||
|
|
||||||
/* Primary - vibrant terracotta stands out on dark */
|
/* Primary - vibrant terracotta stands out on dark */
|
||||||
--primary: oklch(69.18% 0.18855 38.353);
|
--primary: #fa6c26;
|
||||||
--primary-foreground: oklch(20% 0.002 70);
|
--primary-foreground: oklch(20% 0.002 70);
|
||||||
|
|
||||||
/* Secondary - elevated surface */
|
/* Secondary - elevated surface */
|
||||||
@@ -166,7 +163,7 @@
|
|||||||
--sidebar-ring: oklch(69.18% 0.18855 38.353);
|
--sidebar-ring: oklch(69.18% 0.18855 38.353);
|
||||||
|
|
||||||
/* Layout */
|
/* Layout */
|
||||||
--radius: 1rem;
|
--radius: 0.5rem;
|
||||||
|
|
||||||
/* Shadows - deeper for dark mode */
|
/* Shadows - deeper for dark mode */
|
||||||
--shadow-2xs: 0 1px 2px 0px oklch(0% 0 0 / 0.3);
|
--shadow-2xs: 0 1px 2px 0px oklch(0% 0 0 / 0.3);
|
||||||
@@ -181,14 +178,11 @@
|
|||||||
0 4px 6px -4px oklch(0% 0 0 / 0.45);
|
0 4px 6px -4px oklch(0% 0 0 / 0.45);
|
||||||
--shadow-xl: 0 20px 25px -5px oklch(0% 0 0 / 0.6),
|
--shadow-xl: 0 20px 25px -5px oklch(0% 0 0 / 0.6),
|
||||||
0 8px 10px -6px oklch(0% 0 0 / 0.5);
|
0 8px 10px -6px oklch(0% 0 0 / 0.5);
|
||||||
--shadow-2xl: 0 25px 50px -12px oklch(0% 0 0 / 0.7);
|
--shadow-2xl: 0 25px 50px -12px oklch(0% 0 0 / 0.75);
|
||||||
|
|
||||||
--tracking-normal: 0em;
|
--tracking-normal: 0em;
|
||||||
--spacing: 0.25rem;
|
--spacing: 0.25rem;
|
||||||
|
|
||||||
/* Special components */
|
|
||||||
--welcome-banner: var(--card);
|
|
||||||
--welcome-banner-foreground: var(--card-foreground);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@theme inline {
|
@theme inline {
|
||||||
@@ -251,8 +245,6 @@
|
|||||||
--shadow-2xl: var(--shadow-2xl);
|
--shadow-2xl: var(--shadow-2xl);
|
||||||
--tracking-normal: var(--tracking-normal);
|
--tracking-normal: var(--tracking-normal);
|
||||||
--spacing: var(--spacing);
|
--spacing: var(--spacing);
|
||||||
--color-welcome-banner: var(--welcome-banner);
|
|
||||||
--color-welcome-banner-foreground: var(--welcome-banner-foreground);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@layer base {
|
@layer base {
|
||||||
@@ -270,11 +262,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
*::selection {
|
*::selection {
|
||||||
@apply bg-primary/25 text-foreground;
|
@apply bg-primary text-foreground;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark *::selection {
|
.dark *::selection {
|
||||||
@apply bg-primary/30 text-foreground;
|
@apply bg-primary text-background;
|
||||||
}
|
}
|
||||||
|
|
||||||
button:not(:disabled),
|
button:not(:disabled),
|
||||||
|
|||||||
@@ -3,13 +3,13 @@
|
|||||||
"short_name": "OpenMonetis",
|
"short_name": "OpenMonetis",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "/web-app-manifest-192x192.png",
|
"src": "/imagens/web-app-manifest-192x192.png",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable"
|
"purpose": "maskable"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/web-app-manifest-512x512.png",
|
"src": "/imagens/web-app-manifest-512x512.png",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable"
|
"purpose": "maskable"
|
||||||
|
|||||||
@@ -1,21 +1,6 @@
|
|||||||
import MagnetLines from "../magnet-lines";
|
|
||||||
|
|
||||||
function AuthSidebar() {
|
function AuthSidebar() {
|
||||||
return (
|
return (
|
||||||
<div className="relative hidden flex-col overflow-hidden bg-welcome-banner text-welcome-banner-foreground md:flex">
|
<div className="relative hidden flex-col overflow-hidden bg-primary md:flex">
|
||||||
<div className="absolute inset-0 flex items-center justify-center opacity-20 pointer-events-none">
|
|
||||||
<MagnetLines
|
|
||||||
rows={10}
|
|
||||||
columns={16}
|
|
||||||
containerSize="120%"
|
|
||||||
lineColor="currentColor"
|
|
||||||
lineWidth="0.35vmin"
|
|
||||||
lineHeight="5vmin"
|
|
||||||
baseAngle={-4}
|
|
||||||
className="text-welcome-banner-foreground"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="relative flex flex-1 flex-col justify-between p-8">
|
<div className="relative flex flex-1 flex-col justify-between p-8">
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<h2 className="text-3xl font-semibold leading-tight">
|
<h2 className="text-3xl font-semibold leading-tight">
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import {
|
|||||||
import { Input } from "@/components/ui/input";
|
import { Input } from "@/components/ui/input";
|
||||||
import { authClient, googleSignInAvailable } from "@/lib/auth/client";
|
import { authClient, googleSignInAvailable } from "@/lib/auth/client";
|
||||||
import { cn } from "@/lib/utils/ui";
|
import { cn } from "@/lib/utils/ui";
|
||||||
import { Logo } from "../logo";
|
import { Logo } from "@/components/shared/logo";
|
||||||
import { AuthErrorAlert } from "./auth-error-alert";
|
import { AuthErrorAlert } from "./auth-error-alert";
|
||||||
import { AuthHeader } from "./auth-header";
|
import { AuthHeader } from "./auth-header";
|
||||||
import AuthSidebar from "./auth-sidebar";
|
import AuthSidebar from "./auth-sidebar";
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import {
|
|||||||
import { Input } from "@/components/ui/input";
|
import { Input } from "@/components/ui/input";
|
||||||
import { authClient, googleSignInAvailable } from "@/lib/auth/client";
|
import { authClient, googleSignInAvailable } from "@/lib/auth/client";
|
||||||
import { cn } from "@/lib/utils/ui";
|
import { cn } from "@/lib/utils/ui";
|
||||||
import { Logo } from "../logo";
|
import { Logo } from "@/components/shared/logo";
|
||||||
import { AuthErrorAlert } from "./auth-error-alert";
|
import { AuthErrorAlert } from "./auth-error-alert";
|
||||||
import { AuthHeader } from "./auth-header";
|
import { AuthHeader } from "./auth-header";
|
||||||
import AuthSidebar from "./auth-sidebar";
|
import AuthSidebar from "./auth-sidebar";
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import { RiArrowRightSLine, RiMenuLine } from "@remixicon/react";
|
import { RiArrowRightSLine, RiMenuLine } from "@remixicon/react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { Logo } from "@/components/logo";
|
import { Logo } from "@/components/shared/logo";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import {
|
import {
|
||||||
Sheet,
|
Sheet,
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ export function getPrimaryPdfColor(): [number, number, number] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function loadExportLogoDataUrl(
|
export async function loadExportLogoDataUrl(
|
||||||
logoPath = "/logo_text.png",
|
logoPath = "/imagens/logo_text.png",
|
||||||
): Promise<string | null> {
|
): Promise<string | null> {
|
||||||
if (typeof window === "undefined" || typeof document === "undefined") {
|
if (typeof window === "undefined" || typeof document === "undefined") {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
BIN
public/fonts/aeonikfono-medium.woff2
Normal file
BIN
public/fonts/aeonikfono-regular.woff2
Normal file
BIN
public/fonts/america-bold.woff2
Normal file
BIN
public/fonts/america-medium.woff2
Normal file
BIN
public/fonts/america-regular.woff2
Normal file
@@ -28,6 +28,23 @@ const ai_sans = localFont({
|
|||||||
variable: "--font-ai-sans",
|
variable: "--font-ai-sans",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const aeonik = localFont({
|
||||||
|
src: [
|
||||||
|
{
|
||||||
|
path: "./aeonikfono-regular.woff2",
|
||||||
|
weight: "400",
|
||||||
|
style: "normal",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "./aeonikfono-medium.woff2",
|
||||||
|
weight: "600",
|
||||||
|
style: "normal",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
display: "swap",
|
||||||
|
variable: "--font-aeonik",
|
||||||
|
});
|
||||||
|
|
||||||
const itau = localFont({
|
const itau = localFont({
|
||||||
src: [
|
src: [
|
||||||
{
|
{
|
||||||
@@ -51,6 +68,28 @@ const anthropic_sans = localFont({
|
|||||||
variable: "--font-anthropic-sans",
|
variable: "--font-anthropic-sans",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const america = localFont({
|
||||||
|
src: [
|
||||||
|
{
|
||||||
|
path: "./america-regular.woff2",
|
||||||
|
weight: "400",
|
||||||
|
style: "normal",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "./america-medium.woff2",
|
||||||
|
weight: "700",
|
||||||
|
style: "normal",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "./america-bold.woff2",
|
||||||
|
weight: "900",
|
||||||
|
style: "normal",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
display: "swap",
|
||||||
|
variable: "--font-america",
|
||||||
|
});
|
||||||
|
|
||||||
const inter = Inter({
|
const inter = Inter({
|
||||||
subsets: ["latin"],
|
subsets: ["latin"],
|
||||||
display: "swap",
|
display: "swap",
|
||||||
@@ -112,6 +151,8 @@ export const DEFAULT_FONT_KEY = "ai-sans";
|
|||||||
|
|
||||||
export const FONT_OPTIONS = [
|
export const FONT_OPTIONS = [
|
||||||
{ key: "ai-sans", label: "Open AI Sans", variable: "var(--font-ai-sans)" },
|
{ key: "ai-sans", label: "Open AI Sans", variable: "var(--font-ai-sans)" },
|
||||||
|
{ key: "america", label: "America", variable: "var(--font-america)" },
|
||||||
|
{ key: "aeonik", label: "Aeonik", variable: "var(--font-aeonik)" },
|
||||||
{
|
{
|
||||||
key: "anthropic-sans",
|
key: "anthropic-sans",
|
||||||
label: "Anthropic Sans",
|
label: "Anthropic Sans",
|
||||||
@@ -171,6 +212,8 @@ const allFonts = [
|
|||||||
fira_code,
|
fira_code,
|
||||||
ibm_plex_mono,
|
ibm_plex_mono,
|
||||||
itau,
|
itau,
|
||||||
|
america,
|
||||||
|
aeonik,
|
||||||
];
|
];
|
||||||
|
|
||||||
export const allFontVariables = allFonts.map((f) => f.variable).join(" ");
|
export const allFontVariables = allFonts.map((f) => f.variable).join(" ");
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |