1import{d as b,r as d,j as e}from"./index-BdcS4le1.js";import{F as v}from"./FreeToolLayout-BA8NyQ-l.js";import"./arrow-right-DJk7Ne3e.js";import"./createLucideIcon-D9aSjwPV.js";const u=[{id:"post",fr:"Post",en:"Post",limite:3e3,coupure:{desktop:210,mobile:140}},{id:"titre",fr:"Titre (headline)",en:"Headline",limite:220},{id:"resume",fr:"Résumé (à propos)",en:"About section",limite:2600},{id:"note",fr:"Note d'invitation",en:"Invitation note",limite:300},{id:"commentaire",fr:"Commentaire",en:"Comment",limite:1250},{id:"message",fr:"Message privé",en:"Direct message",limite:8e3},{id:"x",fr:"Post X (Twitter)",en:"X post (Twitter)",limite:280}];function w(){const t=b(),[m,h]=d.useState("post"),[n,x]=d.useState(""),r=u.find(s=>s.id===m),i=d.useMemo(()=>{const s=[...n].length,l=n.trim()?n.trim().split(/\s+/).length:0,c=n?n.split(` 2`).length:0;return{n:s,mots:l,lignes:c,reste:r.limite-s}},[n,r]),p=Math.min(100,i.n/r.limite*100),o=i.reste<0,f=o?"bg-red-400":p>90?"bg-amber-400":"bg-[#FF4419]",a=(s,l,c=!1)=>e.jsxs("div",{className:"rounded-2xl border border-ink/10 bg-ink/[0.02] p-4 text-center",children:[e.jsx("div",{className:`font-display text-3xl font-bold ${c?"text-red-400":"text-ink"}`,children:l}),e.jsx("div",{className:"mt-1 text-[12px] uppercase tracking-widest text-ink/64",children:s})]});return e.jsxs(v,{slug:"compteur-caracteres-linkedin",title:t?"LinkedIn character counter":"Compteur de caractères LinkedIn",subtitle:t?"Every LinkedIn field has its own limit. Pick the field, paste your text, and see what fits, including the see-more cutoff of the feed. Free, no signup.":"Chaque champ LinkedIn a sa propre limite. Choisis le champ, colle ton texte, et vois ce qui rentre, coupure « voir plus » du fil comprise. Gratuit, sans inscription.",intro:e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"font-display text-2xl font-bold text-ink",children:t?"LinkedIn character limits (2026)":"Les limites de caractères LinkedIn (2026)"}),e.jsx("p",{children:t?"LinkedIn does not have one limit but a dozen, one per field. A post takes 3,000 characters, a headline 220, an About section 2,600, an invitation note 300, a comment 1,250 and a direct message 8,000. Writing against the wrong limit is how a carefully written note gets cut mid-sentence.":"LinkedIn n'a pas une limite mais une dizaine, une par champ. Un post accepte 3 000 caractères, un titre 220, une section à propos 2 600, une note d'invitation 300, un commentaire 1 250 et un message privé 8 000. Ãcrire contre la mauvaise limite, c'est comme ça qu'une note soignée se fait couper en pleine phrase."}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"mt-2 w-full text-left text-[14px]",children:[e.jsx("thead",{className:"text-ink/64",children:e.jsxs("tr",{children:[e.jsx("th",{className:"py-2 pr-4 font-semibold",children:t?"Field":"Champ"}),e.jsx("th",{className:"py-2 font-semibold",children:t?"Limit":"Limite"})]})}),e.jsx("tbody",{className:"text-ink/83",children:u.map(s=>e.jsxs("tr",{className:"border-t border-ink/10",children:[e.jsx("td",{className:"py-2 pr-4 font-semibold text-ink",children:t?s.en:s.fr}),e.jsxs("td",{className:"py-2",children:[s.limite.toLocaleString(t?"en-US":"fr-FR")," ",t?"characters":"caractères"]})]},s.id))})]})}),e.jsx("p",{children:t?"The limit is not the number that matters most, though. In the feed, a post is folded behind ââ¦see moreâ after roughly 210 characters on desktop and 140 on mobile. Whatever sits above that fold is the only part everyone reads: if your hook ends after the cutoff, most people never see the point of the post.":"La limite n'est pourtant pas le chiffre le plus important. Dans le fil, un post est replié derrière « â¦voir plus » après environ 210 caractères sur ordinateur et 140 sur mobile. Ce qui se trouve au-dessus de ce pli est la seule partie que tout le monde lit : si ton accroche se termine après la coupure, la plupart des gens ne verront jamais l'idée du post."})]}),steps:t?["Pick the LinkedIn field you are writing for: post, headline, About, invitation note, comment or message.","Paste or type your text: characters, words and lines update live.","For a post, watch the see-more markers: your hook has to land before the cutoff."]:["Choisis le champ LinkedIn que tu rédiges : post, titre, à propos, note d'invitation, commentaire ou message.","Colle ou tape ton texte : caractères, mots et lignes se mettent à jour en direct.","Pour un post, surveille les repères « voir plus » : ton accroche doit tenir avant la coupure."],faq:t?[{q:"How many characters in a LinkedIn post?",a:"3,000 characters maximum. But the feed folds the post behind ââ¦see moreâ after about 210 characters on desktop and 140 on mobile, so the opening matters far more than the total."},{q:"How many characters in a LinkedIn headline?",a:"220 characters. On many screens only the first 60 or so show next to your name in the feed, so put the essential words first."}
2,{q:"How long can a LinkedIn invitation note be?",a:"300 characters. Short notes work better anyway: one reason for connecting, no pitch."},{q:"Do emojis count as one character?",a:"In this counter, yes: we count real characters (code points), the way LinkedIn measures its limits. Some composed emojis may still weigh more."},{q:"Is the tool free?",a:"Yes, no signup and no limit. Everything runs in your browser, nothing is sent anywhere."}]:[{q:"Combien de caractères dans un post LinkedIn ?",a:"3 000 caractères maximum. Mais le fil replie le post derrière « â¦voir plus » après environ 210 caractères sur ordinateur et 140 sur mobile : le début compte bien plus que le total."},{q:"Combien de caractères pour un titre LinkedIn ?",a:"220 caractères. Sur beaucoup d'écrans, seuls les 60 premiers s'affichent à côté de ton nom dans le fil : mets l'essentiel en premier."},{q:"Quelle longueur pour une note d'invitation LinkedIn ?",a:"300 caractères. Les notes courtes marchent mieux de toute façon : une raison de se connecter, pas de pitch."},{q:"Un emoji compte pour un caractère ?",a:"Dans ce compteur, oui : on compte les vrais caractères (points de code), comme LinkedIn mesure ses limites. Certains emojis composés peuvent peser un peu plus."},{q:"L'outil est gratuit ?",a:"Oui, sans inscription et sans limite. Tout se passe dans ton navigateur, rien n'est envoyé."}],children:[e.jsx("div",{className:"mb-3 flex flex-wrap gap-1.5",children:u.map(s=>e.jsx("button",{onClick:()=>h(s.id),className:`rounded-full px-3.5 py-1.5 text-[13px] font-semibold transition ${m===s.id?"bg-[#FF4419] text-on-accent":"border border-ink/10 text-ink/64 hover:text-ink"}`,children:t?s.en:s.fr},s.id))}),e.jsx("textarea",{value:n,onChange:s=>x(s.target.value),placeholder:t?"Paste or write your text hereâ¦":"Colle ou écris ton texte iciâ¦",rows:8,className:"w-full rounded-xl border border-ink/10 bg-ink/[0.02] px-4 py-3 text-[15px] leading-relaxed text-ink outline-none focus:border-[#FF4419]/50"}),e.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-ink/10",children:e.jsx("div",{className:`h-full rounded-full transition-all ${f}`,style:{width:`${p}%`}})}),e.jsxs("div",{className:"mt-4 grid gap-3 sm:grid-cols-3",children:[a(t?"Characters":"Caractères",`${i.n.toLocaleString(t?"en-US":"fr-FR")} / ${r.limite.toLocaleString(t?"en-US":"fr-FR")}`,o),a(t?"Remaining":"Restants",i.reste.toLocaleString(t?"en-US":"fr-FR"),o),a(t?"Words":"Mots",i.mots)]}),o&&e.jsx("p",{className:"mt-3 rounded-xl border border-red-400/30 bg-red-400/10 px-4 py-2.5 text-[13.5px] text-red-400",children:t?`${Math.abs(i.reste)} characters over the limit: LinkedIn will refuse or cut this text.`:`${Math.abs(i.reste)} caractères au-dessus de la limite : LinkedIn refusera ou coupera ce texte.`}),r.coupure&&i.n>0&&e.jsxs("div",{className:"mt-3 space-y-1.5 text-[13.5px] text-ink/83",children:[e.jsx("p",{children:i.n<=r.coupure.mobile?t?"Fully visible in the feed, desktop and mobile: no see-more fold.":"Entièrement visible dans le fil, ordinateur et mobile : pas de pli « voir plus ».":i.n<=r.coupure.desktop?t?`Folded on mobile after ~${r.coupure.mobile} characters, fully visible on desktop.`:`Replié sur mobile après ~${r.coupure.mobile} caractères, entièrement visible sur ordinateur.`:t?`Folded behind ââ¦see moreâ on every screen: desktop cuts at ~${r.coupure.desktop} characters, mobile at ~${r.coupure.mobile}.`:`Replié derrière « â¦voir plus » sur tous les écrans : l'ordinateur coupe vers ~${r.coupure.desktop} caractères, le mobile vers ~${r.coupure.mobile}.`}),i.n>r.coupure.mobile&&e.jsxs("p",{className:"text-ink/64",children:[t?"Above the mobile fold: ":"Au-dessus du pli mobile : ",e.jsxs("span",{className:"font-semibold text-ink",children:["« ",[...n].slice(0,r.coupure.mobile).join("").trim().slice(-60)," »"]}),t?" â that is where your hook has to have landed.":" â c'est là que ton accroche doit avoir atterri."]})]})]})}export{w as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.