Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions BRANDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,13 @@

The logo SVG is a **mark on a black (#000000) background**, rendered at 1024×1024.

| Property | Value |
| ------------------------- | -------------------------------------------------- |
| **Logo Mark Description** | `[TBD — describe the mark/symbol]` |
| **Logo Colors** | Black background (#000000) + `[TBD — mark colors]` |
| **Minimum Size** | `[TBD]` |
| **Clear Space** | `[TBD]` |
| **Usage Guidelines** | `[TBD]` |
| Property | Value |
| ------------------------- | -------------------------------------------------------------------------------- |
| **Logo Mark Description** | Interlaced white knot mark on a black square background |
| **Logo Colors** | Black background (#000000) + white mark (#FFFFFF) |
| **Minimum Size** | 24px for the mark alone |
| **Clear Space** | At least one mark width on all sides |
| **Usage Guidelines** | Use the mark asset for brand surfaces; avoid generic icons or placeholder glyphs |

---

Expand Down
2 changes: 1 addition & 1 deletion apps/marketing/app/dashboard/page.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { DashboardLayout } from "@/components/dashboard/dashboard-layout";

export const metadata = {
title: "Dashboard | Sprint",
title: "Dashboard | OK Code",
description: "Manage your projects, issues, and workflows in one place.",
};

Expand Down
4 changes: 2 additions & 2 deletions apps/marketing/components/Nav.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { ExternalLink } from "./ExternalLink";
import { OkCodeLogo } from "./OkCodeLogo";
import { LINKS } from "./links";

export function Nav() {
return (
<nav className="fixed top-0 z-40 w-full">
<div className="mx-auto flex max-w-6xl items-center justify-between px-6 py-5">
<a href="/" className="flex items-center gap-2 text-foreground no-underline">
<img src="/icon.svg" alt="OK Code" width={24} height={24} className="rounded-md" />
<span className="text-[15px] font-semibold tracking-tight">OK Code</span>
<OkCodeLogo />
</a>

<div className="flex items-center gap-6">
Expand Down
37 changes: 37 additions & 0 deletions apps/marketing/components/OkCodeLogo.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
type OkCodeMarkProps = {
className?: string;
};

type OkCodeLogoProps = {
className?: string;
textClassName?: string;
};

export function OkCodeMark({ className = "w-6 h-6" }: OkCodeMarkProps) {
return (
<svg aria-hidden="true" viewBox="0 0 180 180" fill="none" className={`shrink-0 ${className}`}>
<g transform="scale(0.95 0.95) translate(4.5 4.5)">
<path
d="M101.141 53H136.632C151.023 53 162.689 64.6662 162.689 79.0573V112.904H148.112V79.0573C148.112 78.7105 148.098 78.3662 148.072 78.0251L112.581 112.898C112.701 112.902 112.821 112.904 112.941 112.904H148.112V126.672H112.941C98.5504 126.672 86.5638 114.891 86.5638 100.5V66.7434H101.141V100.5C101.141 101.15 101.191 101.792 101.289 102.422L137.56 66.7816C137.255 66.7563 136.945 66.7434 136.632 66.7434H101.141V53Z"
fill="currentColor"
/>
<path
d="M65.2926 124.136L14 66.7372H34.6355L64.7495 100.436V66.7372H80.1365V118.47C80.1365 126.278 70.4953 129.958 65.2926 124.136Z"
fill="currentColor"
/>
</g>
</svg>
);
}

export function OkCodeLogo({
className = "w-6 h-6",
textClassName = "text-[15px] font-semibold tracking-tight",
}: OkCodeLogoProps) {
return (
<span className="inline-flex items-center gap-2">
<OkCodeMark className={className} />
<span className={textClassName}>OK Code</span>
</span>
);
}
15 changes: 8 additions & 7 deletions apps/marketing/components/ai-section.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export function AISection() {
transition={{ duration: 0.6, delay: 0.2 }}
className="text-muted-foreground max-w-lg mb-10 text-lg"
>
<span className="text-foreground font-medium">Sprint for Agents.</span> Choose from a
<span className="text-foreground font-medium">OK Code for Agents.</span> Choose from a
variety of AI agents and start delegating work, from code generation to other technical
tasks.
</motion.p>
Expand Down Expand Up @@ -301,21 +301,22 @@ export function AISection() {

{/* Right column - Use semantic tokens */}
<div className="border-t border-b border-border/60 pt-12 pl-12 pb-16">
<h3 className="text-secondary-foreground font-bold text-2xl mb-4">Sprint MCP</h3>
<p className="text-muted-foreground text-lg mb-8">
Connect Sprint to your favorite tools including Cursor, Claude, ChatGPT, and more.
<h3 className="text-secondary-foreground font-medium text-xl mb-3">OK Code MCP</h3>
<p className="text-muted-foreground text-base mb-8">
Connect OK Code to your favorite tools including Cursor, Claude, ChatGPT, and
more.
</p>

{/* MCP Code Snippet - Use semantic tokens for code syntax */}
<div className="bg-card/30 border border-border/60 rounded-3xl p-6 font-mono text-sm">
<p className="text-muted-foreground/70 mb-3">{"//mcp.sprint.app/sse"}</p>
<div className="bg-card/30 border border-border/60 rounded-xl p-5 font-mono text-sm">
<p className="text-muted-foreground/70 mb-3">{"//mcp.okcode.app/sse"}</p>
<div className="space-y-1 mb-6">
<p>
<span className="text-code-constant/70">"mcpServers"</span>
<span className="text-muted-foreground">: {"{"}</span>
</p>
<p className="pl-4">
<span className="text-code-constant/70">"sprint"</span>
<span className="text-code-constant/70">"okcode"</span>
<span className="text-muted-foreground">: {"{"}</span>
</p>
<p className="pl-8">
Expand Down
6 changes: 3 additions & 3 deletions apps/marketing/components/dashboard-mockup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import {
FileText,
ChevronDown,
ChevronRight,
CirclePower,
Search,
Plus,
Link2,
Expand All @@ -23,6 +22,7 @@ import {
Settings,
HelpCircle,
} from "lucide-react";
import { OkCodeMark } from "./OkCodeLogo";

export function DashboardMockup() {
const containerVariants = {
Expand Down Expand Up @@ -67,8 +67,8 @@ export function DashboardMockup() {
{/* Logo */}
<div className="p-3 border-b border-border/50">
<div className="flex items-center gap-2 px-2 py-1.5">
<CirclePower className="w-5 h-5 text-foreground" />
<span className="text-foreground font-semibold text-sm">Sprint</span>
<OkCodeMark className="w-5 h-5 text-foreground" />
<span className="text-foreground font-semibold text-sm">OK Code</span>
<ChevronDown className="w-3.5 h-3.5 text-muted-foreground ml-auto" />
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use client";

import { Menu, Plus, Search, Bell } from "lucide-react";
import { CirclePower } from "lucide-react";
import { OkCodeMark } from "../OkCodeLogo";

interface DashboardMobileHeaderProps {
onMenuToggle: () => void;
Expand Down Expand Up @@ -34,9 +34,7 @@ export function DashboardMobileHeader({
<Menu className="w-5 h-5" />
</button>
<div className="flex items-center gap-2">
<div className="w-7 h-7 rounded bg-gradient-to-br from-brand to-highlight flex items-center justify-center">
<CirclePower className="w-4 h-4 text-brand-foreground" />
</div>
<OkCodeMark className="w-5 h-5 text-foreground" />
<span className="text-foreground font-medium">{viewTitle}</span>
</div>
</div>
Expand Down
12 changes: 5 additions & 7 deletions apps/marketing/components/dashboard/dashboard-sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ import {
Plus,
Settings,
Bell,
CirclePower,
PanelLeftClose,
PanelLeft,
Command,
Home,
X,
} from "lucide-react";
import { OkCodeMark } from "../OkCodeLogo";

interface DashboardSidebarProps {
activeView: string;
Expand Down Expand Up @@ -60,9 +60,9 @@ export function DashboardSidebar({

<Link
href="/"
className="w-8 h-8 rounded bg-gradient-to-br from-brand to-highlight flex items-center justify-center mt-2 hover:opacity-90 transition-opacity"
className="w-8 h-8 rounded mt-2 hover:opacity-90 transition-opacity inline-flex items-center justify-center text-foreground"
>
<CirclePower className="w-4 h-4 text-brand-foreground" />
<OkCodeMark className="w-5 h-5" />
</Link>

<div className="flex-1 flex flex-col items-center gap-1 mt-4">
Expand Down Expand Up @@ -123,10 +123,8 @@ export function DashboardSidebar({
<div className="p-3">
<div className="flex items-center justify-between mb-3">
<Link href="/" className="flex items-center gap-2 hover:opacity-90 transition-opacity">
<div className="w-6 h-6 rounded bg-gradient-to-br from-brand to-highlight flex items-center justify-center">
<CirclePower className="w-3.5 h-3.5 text-brand-foreground" />
</div>
<span className="text-foreground font-medium">Sprint</span>
<OkCodeMark className="w-6 h-6 text-foreground" />
<span className="text-foreground font-medium">OK Code</span>
<ChevronDown className="w-3.5 h-3.5 text-muted-foreground" />
</Link>
{isMobile ? (
Expand Down
4 changes: 2 additions & 2 deletions apps/marketing/components/feature-cards-section.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@ export function FeatureCardsSection() {
transition={{ duration: 0.6, delay: 0.1 }}
className="max-w-md"
>
<p className="text-muted-foreground leading-relaxed text-lg">
Sprint is shaped by the practices and principles that distinguish world-class
<p className="text-muted-foreground leading-relaxed">
OK Code is shaped by the practices and principles that distinguish world-class
product teams from the rest: relentless focus, fast execution, and a commitment to
the quality of craft.{" "}
<a
Expand Down
4 changes: 2 additions & 2 deletions apps/marketing/components/hero-3d-stage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ export function Hero3DStage() {
transition={{ duration: 0.6 }}
className="text-5xl md:text-6xl lg:text-[72px] font-bold text-foreground leading-[1.08] text-balance"
>
Sprint is a purpose-built tool for planning and building products
OK Code is a purpose-built tool for planning and building products
</motion.h1>
<motion.p
initial={{ opacity: 0, y: 20 }}
Expand All @@ -88,7 +88,7 @@ export function Hero3DStage() {
</button>
</a>
<button className="text-secondary-foreground font-semibold hover:text-foreground transition-colors flex items-center gap-2 text-base">
<span className="text-muted-foreground">New:</span> Sprint agent for Slack
<span className="text-muted-foreground">New:</span> OK Code agent for Slack
<span aria-hidden="true">→</span>
</button>
</motion.div>
Expand Down
6 changes: 3 additions & 3 deletions apps/marketing/components/navbar.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
"use client";

import { useState, useEffect } from "react";
import { CirclePower, Menu, X } from "lucide-react";
import { Menu, X } from "lucide-react";
import { motion, AnimatePresence } from "framer-motion";
import Link from "next/link";
import { OkCodeLogo } from "./OkCodeLogo";

export function Navbar() {
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
Expand Down Expand Up @@ -69,8 +70,7 @@ export function Navbar() {
onClick={() => window.scrollTo({ top: 0, behavior: "smooth" })}
className="flex items-center gap-2 hover:opacity-80 transition-opacity"
>
<CirclePower className="w-6 h-6 text-foreground" />
<span className="text-foreground font-bold text-lg">Sprint</span>
<OkCodeLogo className="w-5 h-5" textClassName="text-foreground font-semibold" />
</button>

{/* Desktop Navigation */}
Expand Down
2 changes: 1 addition & 1 deletion apps/marketing/components/product-direction-section.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export function ProductDirectionSection() {
<span className="text-white font-medium">
Align your team around a unified product timeline.
</span>{" "}
Plan, manage, and track all product initiatives with Sprint's visual planning tools.
Plan, manage, and track all product initiatives with OK Code's visual planning tools.
</p>

{/* 3D Timeline Visualization */}
Expand Down
8 changes: 3 additions & 5 deletions apps/marketing/components/ui-panel-sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import {
ChevronRight,
Sparkles,
RotateCcw,
CirclePower,
} from "lucide-react";
import { OkCodeMark } from "./OkCodeLogo";

export function UIPanelSidebar() {
return (
Expand All @@ -38,10 +38,8 @@ export function UIPanelSidebar() {

{/* Logo area */}
<div className="flex items-center gap-2 px-2 py-2 mb-1">
<div className="w-5 h-5 rounded bg-gradient-to-br from-indigo-500 to-violet-600 flex items-center justify-center">
<CirclePower className="w-3 h-3 text-white" />
</div>
<span className="text-white font-medium">Sprint</span>
<OkCodeMark className="w-5 h-5 text-white" />
<span className="text-white font-medium">OK Code</span>
<ChevronDown className="w-3.5 h-3.5 text-zinc-500 ml-auto" />
</div>

Expand Down
16 changes: 8 additions & 8 deletions apps/marketing/components/workflows-section.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,22 @@ const carouselCards = [
},
{
id: 3,
category: "Sprint Mobile",
category: "OK Code Mobile",
title: "Move product work forward from anywhere",
icon: ArrowRight,
mockup: "mobile",
},
{
id: 4,
category: "Sprint Asks",
category: "OK Code Asks",
title: "Turn workplace requests into actionable issues",
icon: ArrowRight,
mockup: "asks",
},
{
id: 5,
category: "Sprint Integrations",
title: "100+ ways to enhance your Sprint experience",
category: "OK Code Integrations",
title: "100+ ways to enhance your OK Code experience",
icon: ArrowRight,
mockup: "integrations",
},
Expand All @@ -59,7 +59,7 @@ const carouselCards = [
{
id: 7,
category: "Built for developers",
title: "Build your own add-ons with the Sprint API",
title: "Build your own add-ons with the OK Code API",
icon: ArrowRight,
mockup: "api",
},
Expand Down Expand Up @@ -203,7 +203,7 @@ function ApiMockup() {
return (
<div className="flex items-center justify-center h-full">
<div className="bg-secondary/50 rounded-lg px-4 py-2 border border-border/50">
<span className="text-xs font-mono text-muted-foreground">SPRINT API</span>
<span className="text-xs font-mono text-muted-foreground">OK CODE API</span>
</div>
</div>
);
Expand Down Expand Up @@ -272,8 +272,8 @@ export function WorkflowsSection() {
</div>

{/* Description */}
<p className="text-muted-foreground text-lg lg:max-w-md lg:pt-12">
Expand the capabilities of the Sprint system with a wide variety of integrations that
<p className="text-muted-foreground lg:max-w-sm lg:pt-12">
Expand the capabilities of the OK Code system with a wide variety of integrations that
keep everyone in your organization aligned and focused.
</p>
</div>
Expand Down
20 changes: 20 additions & 0 deletions apps/web/src/components/OkCodeMark.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
type OkCodeMarkProps = {
className?: string;
};

export function OkCodeMark({ className = "size-5" }: OkCodeMarkProps) {
return (
<svg aria-hidden="true" viewBox="0 0 180 180" fill="none" className={`shrink-0 ${className}`}>
<g transform="scale(0.95 0.95) translate(4.5 4.5)">
<path
d="M101.141 53H136.632C151.023 53 162.689 64.6662 162.689 79.0573V112.904H148.112V79.0573C148.112 78.7105 148.098 78.3662 148.072 78.0251L112.581 112.898C112.701 112.902 112.821 112.904 112.941 112.904H148.112V126.672H112.941C98.5504 126.672 86.5638 114.891 86.5638 100.5V66.7434H101.141V100.5C101.141 101.15 101.191 101.792 101.289 102.422L137.56 66.7816C137.255 66.7563 136.945 66.7434 136.632 66.7434H101.141V53Z"
fill="currentColor"
/>
<path
d="M65.2926 124.136L14 66.7372H34.6355L64.7495 100.436V66.7372H80.1365V118.47C80.1365 126.278 70.4953 129.958 65.2926 124.136Z"
fill="currentColor"
/>
</g>
</svg>
);
}
Loading
Loading