Design System
Design Tokens
Source unique de vérité — couleurs, typographie, rayons et effets du design system Inyulface / Equinox.
Brand Colors
Palette InyulfacePrimary
Primary Light
Primary Dark
Secondary
Secondary Light
Secondary Dark
Neutral
Warning
Dark BG
Neutral Scale
11 shades50
100
200
300
400
500
600
700
800
900
950
Charcoal (surfaces Inyulface)
Charcoal 900
Charcoal 800
Charcoal 700
Semantic Colors
Light / DarkLight Mode
Background
Foreground
Surface
Dark Mode
Background
Foreground
Surface
Statuts UI & overlays
Status success
Status danger
Status caution
--color-secondary-rgb (teal) pour rgb(var(--color-secondary-rgb) / α) sur halos et cartes.
Équivalence sémantique (lab)
Ce dépôt mappe canvas/dots/ligne sur les tokens Notus ; --divide et --equinox-primarysuivent l'échelle neutre Equinox.
| Token | Light (réf.) | Dark (réf.) |
|---|---|---|
| --divide | neutral-300 / hex | oklch bordure sombre |
| --equinox-primary | neutral-900 | neutral-100 |
| --ekinox-canvas | neutral-400 | oklch clair |
| --ekinox-canvas-fill | neutral-300 | remplissage sombre |
| --ekinox-dots | divide | dots sombres |
| --ekinox-line | neutral-200 | ligne sombre |
| --muted-foreground | shadcn muted | shadcn muted |
Typography
Catalogue dynamiqueTexte d'aperçu — modifiable
Ce texte alimente les prévisualisations ci-dessous (Geist dans ce projet).
Font Families
Font Weight Ramp
Geist Variable : poids 100–900. Cliquez un poids ou une ligne du spécimen.
Laboratoire Inyulface
Specimen complet
Type Scale
Line Height
Aperçu — line-height: 1.5
Le Laboratoire Inyulface explore les frontières du design et du développement web. Nous créons des expériences numériques qui repoussent les limites du possible. Chaque projet est une opportunité d'innover.
Tokens
Letter Spacing
Gradient Text
Laboratoire Inyulface
/* CSS */
.text-gradient {
background: linear-gradient(
135deg,
var(--inyul-primary),
var(--inyul-secondary)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}Border Radius
Design scaleVariables --radius-design-* : échelle fixe documentée (Equinox). Les utilitaires rounded-sm etc. shadcn restent basés sur --radius et @theme inline.
sm
0.375rem
--radius-design-sm
md
0.5rem
--radius-design-md
lg
0.75rem
--radius-design-lg
xl
1rem
--radius-design-xl
2xl
1.5rem
--radius-design-2xl
Effects, Transitions & Animations
Catalogue dynamiqueClasses utilitaires
.text-gradient
Gradient Text
Primary → Secondary
.glass
Glassmorphism
shadow-aceternity
Ombre marketing
Transition Tokens
Combinez durée et easing. Cliquez ▶ pour rejouer une combinaison.
Durées
Easings
Combinaison active
transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
Spacing Scale (Tailwind)
Référence des pas utilisés pour padding, margin et gap.
Keyframes (extraits)
orbit
24s · linear
Rotation continue (badges, orbites)
counter-orbit
24s · linear
Rotation inverse
scroll
40s · linear infinite
Marquee horizontal
beam
6s · ease-in-out infinite
Pulse SVG (BackgroundBeams)
accordion-down
0.2s · ease-out
Radix Accordion ouverture
accordion-up
0.2s · ease-out
Radix Accordion fermeture
Component Showroom
Live PreviewsBoutons Notus alignés Equinox (variant ghost = bordure divide + fond background). shadcn/ui pour les patterns Radix.
Buttons (Notus / Equinox)
Glassmorphism
Panneau avec blur et tokens actifs.
Text Gradient
Laboratoire Inyulface
.text-gradient
Dialog
Tooltip
DropdownMenu
Accordion
Tabs
Data viz (Recharts)
Couleurs séries via ChartConfig et variables --chart-1 … --chart-5.
Forms
Atomes · Patterns · Gabarit NodusSource unique de vérité pour les formulaires. Deux familles cohabitent : Ekinox (gabarit Nodus, marketing public, ombre shadow-aceternity) et shadcn (admin, CMS, dashboard, ombre shadow-xs). Toutes deux partagent les mêmes tokens (--input, --ring, --destructive).
Atomes — Ekinox vs shadcn (côte-à-côte)
Choisissez la colonne Ekinox pour tout formulaire marketing/public (sign-in, sign-up, contact, paywall…) afin de respecter le gabarit Nodus. Réservez la colonne shadcn aux écrans admin / CMS / dashboard où la densité prime.
Label
Label · Ekinox
Marketing · Nodusimport { Label } from "@/components/ekinox/ui/label"
Label · shadcn
Admin · CMSimport { Label } from "@/components/ui/label"
Input
Input · Ekinox
Marketing · Nodusshadow-aceternity · ring-ring/50
import { Input } from "@/components/ekinox/ui/input"
Input · shadcn
Admin · CMSshadow-xs · ring-ring/10
import { Input } from "@/components/ui/input"
Textarea
Textarea · Ekinox
Marketing · Nodusimport { Textarea } from "@/components/ekinox/ui/textarea"
Textarea · shadcn
Admin · CMSimport { Textarea } from "@/components/ui/textarea"
Checkbox
Checkbox · Ekinox
À porterCheckbox · shadcn
Admin · CMSimport { Checkbox } from "@/components/ui/checkbox"
Select
Select · Ekinox
À porterSelect · shadcn
Admin · CMSimport { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from "@/components/ui/select"
États
Cinq états canoniques sur l'Input Ekinox. Les tokens d'erreur shadcn (aria-invalid:ring-destructive/20, aria-invalid:border-destructive) fonctionnent tels quels.
Default
ReposFocus
ring-ring/50simulé via classes
Disabled
opacity-50Invalid
aria-invalidFormat de courriel invalide.
Help text
muted8 caractères minimum, dont 1 chiffre et 1 majuscule.
Patterns d'agencement
Trois mises en page de référence. Le pattern Stacked Nodusest l'usage par défaut dans les formulaires marketing (sign-in, sign-up, contact).
Stacked Nodus
Marketing canonique<div className="rounded-2xl">
<Label>Email</Label>
<Input
className="mt-4 border-none focus:ring-ring"
/>
</div>Inline horizontal
Settings · Filtres<div className="grid grid-cols-[120px_1fr]
items-center gap-4">
<Label htmlFor="x">Pseudo</Label>
<Input id="x" />
</div>InputGroup
Recherche · Addons<InputGroup>
<InputGroupAddon align="inline-start">
<Search />
</InputGroupAddon>
<InputGroupInput />
<InputGroupAddon align="inline-end">
<InputGroupButton>Go</InputGroupButton>
</InputGroupAddon>
</InputGroup>Gabarit Aceternity / Nodus / Equinox
Mise en page canonique pour tout formulaire marketing du site : conteneur centré, grille 2 colonnes, en-tête (logo + heading + sous-titre), formulaire vertical à grande respiration, et illustration AuthIllustration (mesh-gradient + tuiles inclinées) à droite.
Live preview — <Contact /> ( src/components/ekinox/contact.tsx )
Contact us
We empower developers and technical teams to create, simulate, and manage AI-driven workflows visually
Product Company
Cloud Management
Nodus has completely changed how we work. What used to take hours every week is now fully automated.
Gina Clinton
Head of Product, Acme Inc.
Sign in
/design-system/ekinox/sign-inConnexion · auth sociale · gabarit 2-col
Sign up
/design-system/ekinox/sign-upInscription · 3 champs · auth sociale
Contact
/design-system/ekinox/contactNom · Email · Message multi-lignes
Recipe checklist — gabarit Nodus
À respecter pour tout nouveau formulaire marketing afin de garder le gabarit homogène.
- Wrapper
<Container>+ grillemd:grid-cols-2 gap-10 lg:gap-40 - En-tête :
<LogoSVG />+<Heading className="mt-4 text-left lg:text-4xl">+<SubHeading className="mt-4 max-w-xl text-left"> - Form :
<form className="mt-6 flex flex-col gap-8"> - Wrappers de champ :
h-full w-full rounded-2xlautour de chaque paire Label/Input <Label>sanshtmlFor(pattern Radix par enfant) +<Input className="mt-4 border-none focus:ring-ring">- Submit :
<Button>Ekinox (variantprimary=bg-inyul-secondary) - Séparateur « or » : deux
div.h-px.flex-1.bg-border+ un<span>central - Auth sociale : grille
sm:grid-cols-3de<Button variant="secondary"> - Side panel :
<AuthIllustration />(mesh-gradient + tuiles)
WCAG 2.1 AA Contrast
AccessibilitéSeuils: AA ≥ 4.5:1 · AA large text ≥ 3.0:1 · AAA ≥ 7.0:1
| Couleur | Fond | Ratio | Verdict |
|---|---|---|---|
| Primary #f05523 | White | 3.48:1 | AA-lg |
| Primary dark #d44415 | White | 4.53:1 | AA |
| Secondary #1a6881 | White | 6.29:1 | AA |
| Secondary light #1f849e | White | 4.33:1 | AA-lg |
| Neutral #58616b | White | 6.29:1 | AA |
| Warning #fbad35 | White | 1.89:1 | Fail |
| Warning #fbad35 | Dark BG #052934 | 8.11:1 | AAA |
| Foreground #ecedee | Dark BG #052934 | 13.05:1 | AAA |