Design System

Work in progress. I'm adding components as I go, following patterns from what's already documented. Nothing here is set in stone yet.

Card

Cards, content layouts, and the spotlight effect. Structural containers that hold chromatic content.

Spotlight

Molecule

Interactive spotlight effect that follows mouse movement on desktop. Creates a glowing halo that tracks the cursor.

Demo

Card 1

Hover over the container to see the spotlight effect

Card 2

Each card tracks the cursor independently

Card 3

Color is customizable via the color prop

Usage

<Spotlight color="var(--accent-bright)">...</Spotlight>

Wrap content with the Spotlight component. Add data-spotlight attribute to the parent container and initialize with spotlight() function.

Props

PropTypeDefaultDescription
colorstringrequiredCSS color for the spotlight glow effect
classstring-Additional CSS class for the wrapper

LogoBox

Atom

Default (centered)

<LogoBox><img src="..." /></LogoBox>

Fullsize

adeo
<LogoBox fullsize><img src="..." /></LogoBox>

Props

PropTypeDefaultDescription
fullsizebooleanfalseNo padding, image covers the box
classstring-Additional CSS classes

H3Tagged

Molecule

Heading with an inline Tag badge. Used for card titles with categorization.

Preview

Project Title

React
title="Project Title" tag="React"

Props

PropTypeDefaultDescription
titlestringrequiredThe heading text
tagstringrequiredPassed as Tag badge

Usage

Used within CardTitle to display job titles or project names. Internally uses <Tag badge size="small" />.

Card

Molecule

Base container with gradient border.

Basic Card

Card content goes here. Cards use slots for flexible content.

<Card>...content...</Card>

Card with Content

Project Title

React

Description du projet avec des tags et un titre.

TypeScript
Next.js

Card Family Overview

ComponentPurposeUsage
CardBase containerWrapper with gradient border
CardContentLayout helperTitle + logo + body (experiences, formations)
CardTitleTitle blockJob/project title with metadata
CardSplitGrid layoutTitle + description + aside (realisations)
CardDescriptionText wrapperParagraph gap, hides <br>, flex:1

CardContent

Molecule

Layout with named slots, used inside Card.

Preview

Developer

Freelance

CompanyParis2024

Description of the role and responsibilities.

TypeScript
Astro

Slots

slot="title"Header/title area (CardTitle)
slot="marge"Right-aligned content next to title (LogoBox)
default slotBody: CardDescription + TagRow

Fluid spacing

ElementValueMinMax
Card paddingclamp(24px, 0.79rem + 2.53vw, 48px)24px48px
Title → body gapclamp(14px, 0.58rem + 1.05vw, 24px)14px24px
Title wrapper gapclamp(14px, 0.76rem + 0.42vw, 18px)14px18px

CardTitle

Molecule

Title block for cards with company/project metadata. Uses H3Tagged internally.

Preview

Lead Developer

Freelance

CompanyParis2023 – 2024

Props

PropTypeDescription
titlestringMain title (uses H3Tagged)
tagstringCategory badge
hrefstringCompany/project URL
labelstringLink text
locationstringLocation (with dot separators)
datestringDate range

CardDescription

Molecule

Text wrapper for card content. Handles paragraph gap and hides <br>.

Preview

First paragraph of the description. Handles multiple paragraphs with consistent spacing.

Second paragraph — the gap replaces manual line breaks.

Features

gap: clamp(10px, ..., 12px)Paragraph spacing (fluid)
flex: 1Fills remaining card height
br { display: none }Gap replaces line breaks

CardSplit

Molecule

Two-column grid layout for cards with title, description, and aside areas.

Layout Preview

Title Slot
Description Slot
Aside Slot
<CardSplit reverse> to flip layout

Props

PropTypeDefaultDescription
reversebooleanfalseFlips the layout (aside on left)
verticalbooleanfalseSingle-column: title → aside → description

Fluid spacing

ElementValueMinMax
Row gapclamp(14px, 0.58rem + 1.05vw, 24px)14px24px
Column gapclamp(32px, 1.05rem + 3.37vw, 64px)32px64px

Slots

SlotGrid AreaDescription
titleTop-leftCard header with H3Tagged
descriptionBottom-leftMain content area
asideRight column (spans 2 rows)Image, slider, etc.

Experience Card

Template

Composed card pattern used in the Experiences section: Spotlight + Card + CardContent + CardTitle.

Preview

Lead Developer

Freelance

CompanyLille2024

Logo
  • Feature or responsibility one
  • Feature or responsibility two

kinoo.dev · Design System