COTON·DS v1.0
v1.0

Actions

Bouton · Button

Action principale d'une vue. Le primaire utilise le marine avec un shimmer or au survol — réservé aux CTAs majeurs.

v1 · shimmer 5 variants 3 sizes
primary · marine + shimmer
gold · accent éditorial
outline · neutre
tokens:--marine, --or, --creme
a11y:focus ring 4px or@18%
motion:shimmer 900ms ease-out

Button group

Combinaison d'actions adjacentes — primaire + ghost pour secondary actions, ou outline + outline pour des choix égaux.

3 layouts

Tabs

Navigation entre sections paritaires. Indicateur or sous l'onglet actif — fait écho à la nav principale.

underlinepill

Formulaires

Input

Champ texte standard. Focus ring or à 18% — trois états : default, focus, error.

3 statesa11y AA
Adresse pro de préférence.
default + label + help
focused
Format invalide
error

Select

Choix unique parmi une liste fermée. Caret marine, alignement à droite.

Checkbox · Radio

Sélections multiples (check) ou exclusives (radio). Cocher = marine, fond crème ; le check est dessiné en CSS pur.

Switch

État booléen avec retour visuel immédiat. Variante or pour les toggles éditoriaux.

Slider

Valeur continue dans un intervalle. Knob blanc avec border marine, fill plein.

0 €
95 k€
59 k€ · TJM négocié

Display

Badge

Statut, métadonnée, comptage. Six teintes sémantiques + outline neutre.

7 variants
Active Premium Validé En attente Bloqué Info Brouillon

Avatar

Initiales en marine par défaut. Variante or pour les freelances « top picks ».

PM CL JD +8
PM CL JD +5

Card

Conteneur générique pour items de liste. Eyebrow or, titre Fraunces, description Inter Tight.

FREELANCE · LYON

Pierre · Lead Frontend

12 ans, React/TS, design systems. Disponible mi-mai 2026.

PM 650 €/jour · TJM
profile card
★ MISSION SPONSORISÉE

Refonte design system bancaire

6 mois, 4 jours/semaine. Stack React + Storybook + Figma.

Premium 17 candidats
mission card · gold accent
CLIENT · CDI

Ledger · Engineering Manager

Paris. 90–120 k€. Hybrid 2j/sem.

3 entretiens en cours
mission card · standard

Stat

Donnée chiffrée éditoriale. Le chiffre est en Fraunces — italique facultative pour rythmer.

v1
Freelances actifs
240
↗ +18 ce mois
Missions ouvertes
32
stable
NPS clients
72
↗ +4 vs Q4

Kbd

Touches clavier inline. Fond crème, ombre subtile sous le bord bas.

Cherchez avec K · naviguez avec · confirmez avec

Feedback

Alert

Message contextuel. Quatre variantes sémantiques + une variante info teintée crème.

Migration v0 → v1Les tokens indigo sont automatiquement remappés vers marine. Vérifier les exceptions custom.
Profil enregistréVos disponibilités apparaîtront aux clients dans 5 minutes.
Token déprécié--accent-old sera retiré en v1.1 — migrer vers --or.
Connexion refuséeTrop de tentatives. Réessayer dans 5 minutes.

Tooltip

Information contextuelle au survol. Marine sur crème, ombre douce, latence 400 ms.

Copier le token CSS ⌘C

Progress

Indicateur de progression linéaire. Shimmer continu pendant l'opération — variante or pour les actions « premium ».

62%
88% · gold

Spinner

Chargement indéterminé. Anneau crème, accent or sur la pointe.

Empty state

État vide. Glyphe + titre Fraunces + sous-texte + CTA optionnel. Évite les illustrations.

v1

Aucun freelance ne correspond

Élargissez votre recherche ou ajustez les critères de TJM pour voir plus de profils.

Éditorial — nouveau en v4

Pull quote

Citation mise en exergue dans un article. Italique Fraunces 300, accent or sur le mot-clef.

v1 · editorial
« Le bon code, c'est celui qu'on relit avec plaisir — et qu'on a envie de prolonger. » — Camille L., freelance · 8 ans chez COTON

Drop cap

Lettrine éditoriale en italique Fraunces or. À utiliser avec parcimonie — première lettre d'une section seulement.

v1 · editorial

Le collectif COTON est né d'une intuition simple : recruter des dévs comme on recrute un chef cuisinier — en goûtant son travail. Pas de bullshit, pas de processus interminable, juste un échange honnête entre pairs sur ce qui fait un bon code, un bon produit, une bonne équipe.

v1.0 · Nouveaux composants

Popover

Surface flottante ancrée à un trigger. Base pour menus, color-pickers, infos contextuelles. Ferme sur clic extérieur ou Escape.

v1.04 sidesa11y · role=dialog
popover · clic extérieur ferme
popover · color picker
Comment ça marche ?

Le matching se fait sur la stack technique, la disponibilité et le tarif. Tu peux ajuster les filtres dans la barre latérale.

popover · info contextuelle

FormField

Wrapper unifié Label + Input + Help + Error. Gère les ids, aria-describedby et aria-invalid automatiquement.

v1.0a11y
Utilisé pour les notifications de mission.
Adresse incomplète.
HT, hors frais déplacement.
Date de début souhaitée.

Empty state

Habiter le vide — liste filtrée vide, première utilisation, recherche sans résultat. Toujours guider vers une action.

v1.0

Aucune mission active

Crée ta première mission pour commencer le matching avec les freelances du collectif.

Aucun profil ne correspond

Essaie d'élargir la stack ou la fourchette de tarif. Ou laisse-nous t'aider à reformuler le brief.

Progress

Linéaire et circulaire. 4 variantes (default marine, success, warning, error). Animation respectant prefers-reduced-motion.

v1.0linear + circular
Onboarding42%
Profil complet88%
Stockage94%
linéaire · 3 variantes
60%
90%
20%
circulaire · 3 variantes

Pagination

Navigation multi-page avec ellipses pour les longues listes. aria-current="page" sur la page active.

v1.0a11y

DataTable

Table riche avec tri par colonne, sélection multi-lignes, état vide. Pour les vues opérationnelles (missions, candidats, factures).

v1.0trisélection
Statut
YDYasmine D.
Go · Postgres 680 € Validé
PRPierre R.
React · Node 620 € En attente
SKSami K.
TypeScript · GraphQL 740 € Présenté
MAMaïa A.
Rust · WASM 820 € Brouillon