Skip to content
Open
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
2 changes: 2 additions & 0 deletions website/.storybook/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ const config: StorybookConfig = {
stories: [
"../src/design-system/**/*.stories.@(ts|tsx|mdx)",
"../src/components/**/*.stories.@(ts|tsx|mdx)",
"../src/icons/**/*.stories.@(ts|tsx|mdx)",
"../src/illustrations/**/*.stories.@(ts|tsx|mdx)",
"../src/nitro/**/*.stories.@(ts|tsx|mdx)",
"../src/og/**/*.stories.@(ts|tsx|mdx)",
"../app/**/*.stories.@(ts|tsx|mdx)",
Expand Down
27 changes: 18 additions & 9 deletions website/app/(content)/platform/agentic-coding/ReviewSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

import { useEffect, useRef, useState } from "react";

import { MockWindowChrome } from "@/src/components/MockWindowChrome";
import { SectionHeading } from "@/src/components/SectionHeading";
import { Card } from "@/src/design-system/Card";
import { Eyebrow } from "@/src/design-system/Eyebrow";
import { SectionHeading } from "@/src/components/SectionHeading";
import { MockWindowChrome } from "@/src/components/MockWindowChrome";
import { BranchGlyph } from "@/src/icons/BranchGlyph";
import { CheckGlyph } from "@/src/icons/CheckGlyph";
import { Icon } from "@/src/icons/Icon";

interface HunkRun {
readonly t: string;
Expand Down Expand Up @@ -271,7 +270,7 @@ function StatusBadge({ status }: { readonly status: DemoStatus }) {
if (status === "approved") {
return (
<span className="border-cc-success/40 bg-cc-success/10 text-cc-success ml-auto inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 font-mono text-[0.65rem] tracking-[0.1em] uppercase">
<CheckGlyph className="text-cc-success size-3.5" />
<Icon icon="check" className="text-cc-success size-3.5" />
Approved
</span>
);
Expand Down Expand Up @@ -339,7 +338,9 @@ function FileCard({
: "border-cc-ink-faint"
} ${pressed ? "scale-90" : ""}`}
>
{viewed && <CheckGlyph className="text-cc-accent size-2.5" />}
{viewed && (
<Icon icon="check" size="xs" className="text-cc-accent" />
)}
</span>
Viewed
</span>
Expand Down Expand Up @@ -478,7 +479,11 @@ export function ReviewSection() {
variant: "custom",
content: (
<>
<BranchGlyph className="text-cc-ink-dim size-3.5 shrink-0" />
<Icon
icon="code-branch"
size="xs"
className="text-cc-ink-dim size-3.5 shrink-0"
/>
<span className="text-cc-ink font-mono text-sm">
feat: add product reviews
</span>
Expand Down Expand Up @@ -522,7 +527,11 @@ export function ReviewSection() {
className="flex items-center gap-2.5 font-mono text-xs"
>
{done ? (
<CheckGlyph className="text-cc-success size-3.5" />
<Icon
icon="check"
size="sm"
className="text-cc-success size-3.5"
/>
) : (
<PendingSpinner />
)}
Expand Down Expand Up @@ -551,7 +560,7 @@ export function ReviewSection() {
}`}
>
{approved && (
<CheckGlyph className="text-cc-success size-3.5" />
<Icon icon="check" className="text-cc-success size-3.5" />
)}
{approved ? "Approved" : "Approve"}
</span>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CheckList } from "@/src/components/CheckList";
import { Eyebrow } from "@/src/design-system/Eyebrow";
import { SlackIcon } from "@/src/icons/Slack";
import { SlackIcon } from "@/src/icons/brands/Slack";

const POINTS = [
"A reply within one business day",
Expand Down
16 changes: 8 additions & 8 deletions website/app/docs/page.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import type { ComponentType } from "react";
import { PRODUCTS } from "@/src/data/products";
import { LinkCard } from "@/src/components/LinkCard";
import { PRODUCTS } from "@/src/data/products";
import { Typography } from "@/src/design-system/Typography";
import { Fusion } from "@/src/icons/Fusion";
import { HotChocolate } from "@/src/icons/HotChocolate";
import { Mocha } from "@/src/icons/Mocha";
import { Nitro } from "@/src/icons/Nitro";
import { Skillz } from "@/src/icons/Skillz";
import { StrawberryShake } from "@/src/icons/StrawberryShake";
import { pageMetadata } from "@/src/helpers/pageMetadata";
import { Fusion } from "@/src/icons/chillicream/Fusion";
import { HotChocolate } from "@/src/icons/chillicream/HotChocolate";
import { Mocha } from "@/src/icons/chillicream/Mocha";
import { Nitro } from "@/src/icons/chillicream/Nitro";
import { Skillz } from "@/src/icons/chillicream/Skillz";
import { StrawberryShake } from "@/src/icons/chillicream/StrawberryShake";
import type { ComponentType } from "react";

export const metadata = pageMetadata({
title: "Documentation",
Expand Down
6 changes: 6 additions & 0 deletions website/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ import {
} from "@/src/helpers/site";
import { SITE_URL } from "@/src/helpers/siteUrl";

// Set up the styling for fontawesome, including duotone icons
// https://docs.fontawesome.com/web/use-with/react/use-with#getting-font-awesome-css-to-work
import { config } from "@fortawesome/fontawesome-svg-core";
import "@fortawesome/fontawesome-svg-core/styles.css";
config.autoAddCss = false;

const inter = Inter({
subsets: ["latin"],
display: "swap",
Expand Down
6 changes: 3 additions & 3 deletions website/src/components/ArrowLink.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { ComponentPropsWithoutRef, ReactNode } from "react";
import NextLink from "next/link";
import type { ComponentPropsWithoutRef, ReactNode } from "react";

import { ArrowRightIcon } from "@/src/icons/ArrowRight";
import { Icon } from "../icons/Icon";

interface ArrowLinkProps extends Omit<ComponentPropsWithoutRef<"a">, "href"> {
readonly href: string;
Expand All @@ -24,7 +24,7 @@ export function ArrowLink({
const content = (
<>
{children}
<ArrowRightIcon className="size-3.5" />
<Icon icon="arrow-right" size="sm" />
</>
);

Expand Down
4 changes: 2 additions & 2 deletions website/src/components/BlogShareBar.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { LinkedInIcon } from "@/src/icons/brands/LinkedIn";
import { XIcon } from "@/src/icons/brands/X";
import type { ReactNode } from "react";
import { LinkedInIcon } from "@/src/icons/LinkedIn";
import { XIcon } from "@/src/icons/X";

type BlogShareBarProps = {
/** Absolute URL of the blog post. */
Expand Down
6 changes: 3 additions & 3 deletions website/src/components/BlogTeaser.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Link from "next/link";
import { Picture } from "@/src/design-system/Picture";
import { formatDate } from "@/src/helpers/formatDate";
import { ArrowRightIcon } from "@/src/icons/ArrowRight";
import Link from "next/link";
import { Icon } from "../icons/Icon";

export type BlogTeaserData = {
href: string;
Expand Down Expand Up @@ -56,7 +56,7 @@ export function BlogTeaser({ post }: BlogTeaserProps) {
) : null}
<span className="text-cc-ink group-hover/teaser:text-cc-accent mt-auto inline-flex items-center gap-1.5 text-xs tracking-[0.18em] uppercase transition-colors">
Read
<ArrowRightIcon className="size-3.5" />
<Icon icon="arrow-right" size="sm" />
</span>
</div>
</Link>
Expand Down
14 changes: 0 additions & 14 deletions website/src/components/CheckIcon.tsx

This file was deleted.

6 changes: 3 additions & 3 deletions website/src/components/CheckList.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CheckIcon } from "@/src/components/CheckIcon";
import { CheckListItem } from "@/src/components/CheckListItem";
import { Icon } from "../icons/Icon";

type CheckListVariant = "plain" | "pill";

Expand Down Expand Up @@ -44,8 +44,8 @@ export function CheckList({
>
{items.map((item) => (
<li key={item} className="flex items-start gap-2">
<span className="text-cc-accent mt-1 flex-none">
<CheckIcon />
<span className="text-cc-accent mt-0.5 inline-flex">
<Icon icon="check" size="sm" />
</span>
<span>{item}</span>
</li>
Expand Down
6 changes: 3 additions & 3 deletions website/src/components/CheckListItem.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ReactNode } from "react";

import { CheckIcon } from "@/src/components/CheckIcon";
import { Icon } from "../icons/Icon";

interface CheckListItemProps {
readonly children: ReactNode;
Expand All @@ -23,8 +23,8 @@ export function CheckListItem({
}: CheckListItemProps) {
return (
<li className={`flex items-start gap-3 ${className}`.trim()}>
<span className={`mt-1 flex-none ${iconClassName}`}>
<CheckIcon />
<span className="inline-flex">
<Icon icon="check" size="xs" className={iconClassName} />
</span>
<span className="text-cc-ink text-sm">{children}</span>
</li>
Expand Down
7 changes: 3 additions & 4 deletions website/src/components/DocsToolbar.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"use client";

import { ListBulletsIcon } from "@/src/icons/ListBullets";
import { MenuLinesIcon } from "@/src/icons/MenuLines";
import { Icon } from "../icons/Icon";
import { SIDEBAR_OPEN_EVENT } from "./SidebarDrawer";
import { TOC_OPEN_EVENT } from "./TocDrawer";

Expand All @@ -20,15 +19,15 @@ export function DocsToolbar({
label={menuPillLabel}
className="lg:invisible"
>
<MenuLinesIcon className="h-3.5 w-3.5" aria-hidden="true" />
<Icon icon="bars" />
</PillButton>
<PillButton
ariaLabel="Open table of contents"
event={TOC_OPEN_EVENT}
label="On this page"
iconPosition="right"
>
<ListBulletsIcon className="h-3.5 w-3.5" aria-hidden="true" />
<Icon icon="list" />
</PillButton>
</div>
);
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/EditOnGitHub.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { GitHubIcon } from "@/src/icons/GitHub";
import { GitHubIcon } from "@/src/icons/brands/GitHub";

type EditOnGitHubProps = {
/** URL to the source file on github.com (web-edit view). */
Expand Down
4 changes: 2 additions & 2 deletions website/src/components/FeatureComparison.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CheckIcon } from "@/src/components/CheckIcon";
import { SectionHeading } from "@/src/components/SectionHeading";
import { Card } from "@/src/design-system/Card";
import { Eyebrow } from "@/src/design-system/Eyebrow";
import { Icon } from "../icons/Icon";

type Cell = boolean | string;

Expand Down Expand Up @@ -119,7 +119,7 @@ function CompareCell({ value }: { readonly value: Cell }) {
return (
<td className="px-5 py-3 align-top">
<span className="text-cc-accent inline-flex">
<CheckIcon />
<Icon icon="check" size="sm" />
</span>
<span className="sr-only">Included</span>
</td>
Expand Down
16 changes: 8 additions & 8 deletions website/src/components/Footer.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { GitHubIcon } from "@/src/icons/brands/GitHub";
import { LinkedInIcon } from "@/src/icons/brands/LinkedIn";
import { SlackIcon } from "@/src/icons/brands/Slack";
import { XIcon } from "@/src/icons/brands/X";
import { YouTubeIcon } from "@/src/icons/brands/YouTube";
import { ChilliCreamText } from "@/src/icons/chillicream/ChilliCreamText";
import Link from "next/link";
import type { ReactNode } from "react";
import { BlogIcon } from "@/src/icons/Blog";
import { ChilliCreamText } from "@/src/icons/ChilliCreamText";
import { GitHubIcon } from "@/src/icons/GitHub";
import { LinkedInIcon } from "@/src/icons/LinkedIn";
import { SlackIcon } from "@/src/icons/Slack";
import { XIcon } from "@/src/icons/X";
import { YouTubeIcon } from "@/src/icons/YouTube";
import { Icon } from "../icons/Icon";

const tools = {
blog: "/blog",
Expand Down Expand Up @@ -88,7 +88,7 @@ export default function Footer() {
<Section>
<nav className="text-cc-ink-dim flex flex-row gap-4">
<SocialLink href={tools.blog} label="ChilliCream Blog">
<BlogIcon className="h-6 w-auto fill-current" />
<Icon icon="blog" size="xl" />
</SocialLink>
<SocialLink href={tools.github} label="ChilliCream on GitHub">
<GitHubIcon className="h-7 w-auto fill-current" />
Expand Down
10 changes: 5 additions & 5 deletions website/src/components/Header.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import Link from "next/link";
import { SolidButton } from "@/src/design-system/Button";
import { Picture } from "@/src/design-system/Picture";
import Link from "next/link";

import { getLatestBlogPost } from "@/src/helpers/blogPosts";
import { getGitHubStarCount } from "@/src/helpers/githubStars";
import { ChilliCreamText } from "@/src/icons/ChilliCreamText";
import { ChilliCreamWinking } from "@/src/icons/ChilliCreamWinking";
import { GitHubIcon } from "@/src/icons/GitHub";
import { GitHubIcon } from "@/src/icons/brands/GitHub";
import { ChilliCreamText } from "@/src/icons/chillicream/ChilliCreamText";
import { ChilliCreamWinking } from "@/src/icons/chillicream/ChilliCreamWinking";

import { HeaderShell } from "./HeaderShell";
import { HeaderNav } from "./header/HeaderNav";
import {
CONTACT_HREF,
Expand All @@ -17,6 +16,7 @@ import {
MOBILE_ITEMS,
TOOLS,
} from "./header/navData";
import { HeaderShell } from "./HeaderShell";
import { MobileNav } from "./MobileNav";
import { Search } from "./Search";

Expand Down
6 changes: 3 additions & 3 deletions website/src/components/HighlightCard.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/nextjs-vite";

import { CheckIcon } from "./CheckIcon";
import { Icon } from "../icons/Icon";
import { HighlightCard } from "./HighlightCard";

const meta = {
Expand Down Expand Up @@ -42,8 +42,8 @@ function PerkBody() {
<ul className="flex flex-1 flex-col gap-2">
{perks.map((item) => (
<li key={item} className="flex items-start gap-3">
<span className="text-cc-accent mt-1 flex-none">
<CheckIcon />
<span className="text-cc-accent mt-0.5 inline-flex">
<Icon icon="check" size="sm" />
</span>
<span className="text-cc-ink text-sm">{item}</span>
</li>
Expand Down
4 changes: 2 additions & 2 deletions website/src/components/IconFeatureCard.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/nextjs-vite";

import { CheckIcon } from "./CheckIcon";
import { Icon } from "../icons/Icon";
import { IconFeatureCard } from "./IconFeatureCard";

const meta = {
Expand Down Expand Up @@ -32,7 +32,7 @@ const meta = {
</div>
),
],
args: { icon: <CheckIcon size={16} />, title: "", copy: "" },
args: { icon: <Icon icon="check" />, title: "", copy: "" },
} satisfies Meta<typeof IconFeatureCard>;

export default meta;
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/LinkCard.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/nextjs-vite";

import { Fusion } from "@/src/icons/Fusion";
import { Fusion } from "@/src/icons/chillicream/Fusion";

import { LinkCard } from "./LinkCard";

Expand Down
4 changes: 2 additions & 2 deletions website/src/components/MarketingHero.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { Meta, StoryObj } from "@storybook/nextjs-vite";

import { OutlineButton, SolidButton } from "../design-system/Button";
import { Icon } from "../icons/Icon";
import { ButtonRow } from "./ButtonRow";
import { CheckIcon } from "./CheckIcon";
import { IconFeatureCard } from "./IconFeatureCard";
import { MarketingHero } from "./MarketingHero";

Expand Down Expand Up @@ -67,7 +67,7 @@ export const WithCardGrid: Story = {
key={label}
eyebrow={label}
size="lg"
icon={<CheckIcon size={20} />}
icon={<Icon icon="check" />}
title="We respond fast"
copy="A core team member jumps in and stays with you until it is resolved."
/>
Expand Down
Loading
Loading