Internal reference · en.selectra.info
Design System
Full component library, design tokens and Blade widgets for en.selectra.info. Previews use the broadband accent (orange #FA7C30); vertical-specific components note their native accent.
Color tokens
All colors are defined as CSS custom properties. Brand and ink tokens apply site-wide; vertical accent tokens are scoped per section via data-vertical="X" or .vertical-X.
Brand palette
--color-primary
#015AA3
primary-dark
#014a87
primary-light
#e6f0f9
--color-navy
#0b1932
--color-accent
#f5a623
--color-error
#d0021b
success
#16a34a
Ink (text) system
--ink
#0F1A36
--ink-soft
#2A3652
--ink-muted
#6B7A9A
--rule
#E5EAF2
--rule-soft
#EEF1F7
--danger
#C0455B
Surface / background
#FAFBFE
table rows
#F5F7FB
TOC / card BG
#FFFFFF
card BG
Typography
Two font families via Fontshare. Satoshi is the body font (400/500/700/900). Expose is the heading/display font (500/700/800) — used for H1–H3, price figures, and brand names.
Vertical accent system
Each section of en.selectra.info overrides --accent and --accent-ink. Apply via data-vertical="X" on a wrapper or .vertical-X class. All accent-based components (callouts, lists, tables, chips…) pick up the color automatically.
Broadband & Phone France
data-vertical="broadband" · --accent: #FA7C30 · --accent-ink: #B0531A
Energy France
data-vertical="energy" · --accent: #a78bfa · --accent-ink: #5B3FC9
Moving to France
data-vertical="moving" · --accent: #1D9E75 · --accent-ink: #0F6F50
Banking France
data-vertical="banking" · --accent: #EF9F27 · --accent-ink: #A76A10
Insurance
data-vertical="insurance" · --accent: #D4537E · --accent-ink: #983D5D
Blade code
<div data-vertical="broadband">
<div class="tb">...</div>
<div class="is-filled">...</div>
</div>
<div class="vertical-energy-france">
<div class="tb">...</div>
</div>
<div style="--accent:#FA7C30; --accent-ink:#B0531A;">
...
</div>In Short block .is-filled
Summary block at the top of an article or section. Left accent bar + tinted background. Use for key takeaways, "at a glance" summaries, or definitions.
Getting a French SIM card as an expat
You need a valid ID (passport accepted) and a French address. No French bank account required for prepaid SIMs — contracts need a French IBAN.
Key operators
- ✓Orange · SFR · Bouygues · Free
- ✓eSIM supported on major operators
What you need
- 1Valid ID (passport OK)
- 2French address
- 3French IBAN (contracts only)
Blade code
<div class="is-filled">
<span class="is-label">In short</span>
<p class="is-title">Block title</p>
<p class="is-desc">Summary text with <b>emphasis</b>.</p>
<!-- Optional 2-col grid -->
<div class="is-grid">
<div>
<p class="is-col-title">Label</p>
<ul class="blist check-b">...</ul>
</div>
<div>
<p class="is-col-title">Label</p>
<ul class="blist num-a">...</ul>
</div>
</div>
</div>Promo / offer CTA .promo-cta
Standout call-to-action for a promo code or offer link — dark card, accent glow, dashed "ticket" code chip and a prominent button. Colours follow var(--accent), so it adapts to every vertical. Wrap the button href in selection_stamp_referer() for first-party attribution, and keep the required "Ad — non-partner" disclaimer nearby.
Exclusive Selectra deal
Save 10% on your GoMoWorld eSIM for France
Apply code SELECTRA10 at checkout — valid on any France plan.
Blade code
<div class="promo-cta">
<div class="promo-cta__inner">
<div class="promo-cta__body">
<p class="promo-cta__kicker">Exclusive Selectra deal</p>
<p class="promo-cta__title">Save 10% on your GoMoWorld eSIM for France</p>
<p class="promo-cta__desc">Apply code <span class="promo-cta__code">SELECTRA10</span> at checkout.</p>
</div>
<a href="/telecom/selection/PROVIDER/esim" class="promo-cta__btn">
See plans & prices
<x-phosphor-caret-right-bold class="w-3.5 h-3.5" />
</a>
</div>
</div>Text box callout .tb
Highlighted callout for tips, warnings, and important notices. Left accent border + tinted background uses var(--accent). Supports a glyph badge, optional H4, and paragraph body.
eSIM vs physical SIM in France
Most major French operators (Orange, Bouygues, SFR, Free) support eSIM on compatible handsets. It lets you activate a French number without waiting for a physical card — ideal if you just arrived.
ADSL lines in France will be progressively shut down by 2030. If you're on an ADSL plan, check your area's migration timeline and switch to fibre before the cut-off date.
Bundle internet and mobile to save
Most operators offer 5–10€/month off when you combine a home internet plan with a mobile plan from the same provider. Worth checking if you need both.
Blade code
<div class="tb">
<span class="tb-label"><span class="glyph">💡</span> Good to know</span>
<h4>Optional H4 title</h4>
<p>Body text with <b>bold</b>.</p>
</div>
<div class="tb">
<span class="tb-label"><span class="glyph">⚠</span> Heads up</span>
<p>Warning text.</p>
</div>
<div class="tb">
<span class="tb-label"><span class="glyph">★</span> Tip</span>
<h4>Title</h4>
<p>Text.</p>
</div>See also Tailwind inline
A single internal link, placed after the section it relates to. For a cluster of 2+ links, use .multiple-link below — never stack multiple see-also blocks on top of each other. Never use a plain <p>📖 See also:</p> as raw text.
Blade code
<a href="/broadband-phone-france/..." class="flex items-center gap-3 rounded-lg border border-gray-200 bg-white px-4 py-3 mb-4 text-sm no-underline hover:border-orange-300 hover:bg-orange-50 transition-colors group not-prose" style="text-decoration:none;">
<span class="font-bold text-xs uppercase tracking-wider shrink-0" style="color:var(--accent,#FA7C30)">See also</span>
<span class="w-px h-4 bg-gray-200 shrink-0"></span>
<span class="font-medium text-gray-800 flex-1">Link title</span>
<svg class="w-4 h-4 shrink-0 text-gray-400 group-hover:text-gray-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/></svg>
</a>Link cluster (Read next) .multiple-link
A cluster of 2+ internal links, placed at the end of a section. Use .multiple-link + a .blist.arrow-b list. Never stack individual see-also blocks instead.
Blade code
<div class="multiple-link">
<p><span class="multiple-link__label">Read next:</span></p>
<ul class="blist arrow-b">
<li><span class="marker">→</span><span><a href="...">Link title</a> ;</span></li>
<li><span class="marker">→</span><span><a href="...">Link title</a> ;</span></li>
<li><span class="marker">→</span><span><a href="...">Last link</a>.</span></li>
</ul>
</div>Badges & chips .chip / Tailwind
Two systems: .chip (accent or ghost variant, controlled size) and inline Tailwind pill badges for one-off labels in content. Use .ynbox for yes/no/partial inside tables.
.chip variants
Tailwind pill badges (for content)
.ynbox (for tables)
Blade code
<span class="chip accent">Fibre</span> <span class="chip ghost">ADSL</span> <span class="inline-flex items-center px-2.5 py-1 rounded-full text-xs font-bold bg-green-100 text-green-700">eSIM</span> <span class="inline-flex items-center px-2.5 py-1 rounded-full text-xs font-bold bg-purple-100 text-purple-700">5G</span> <span class="inline-flex items-center px-2.5 py-1 rounded-full text-xs font-bold bg-amber-100 text-amber-700">Sans engagement</span> <span class="ynbox yes">✓</span> <span class="ynbox no">✗</span> <span class="ynbox partial">•</span>
Bullet lists .blist
Four marker variants on the same .blist base. Marker color inherits var(--accent). Use .check-b for pros, .cross-b for cons, .num-a for ordered steps, .arrow-b for navigation or highlights.
.check-b
- ✓Orange network — nationwide 4G/5G coverage
- ✓No commitment — cancel anytime
- ✓eSIM supported on compatible handsets
.cross-b
- ✗Customer support in French only
- ✗No physical stores for help
- ✗Price jumps after 12 months
.num-a
- 1Check eligibility at your address
- 2Compare offers and choose a plan
- 3Subscribe online or call Selectra
.arrow-b
- →Best budget: Sosh 50 Go from 9,99€/mo
- →Best 5G: Orange Fibre + Mobile
- →No commitment: Free, B&You, RED
Optional .list-card wrapper adds a white card with dashed title separator:
Fibre plan essentials
- ✓Up to 8 Gbit/s download
- ✓WiFi 6 router included
- ✓TV decoder optional
Blade code
<ul class="blist check-b">
<li><span class="marker">✓</span><span>Item with <b>bold</b></span></li>
</ul>
<ul class="blist cross-b">
<li><span class="marker">✗</span><span>Limitation</span></li>
</ul>
<ol class="blist num-a">
<li><span class="marker">1</span><span>Step one</span></li>
<li><span class="marker">2</span><span>Step two</span></li>
</ol>
<ul class="blist arrow-b">
<li><span class="marker">→</span><span><b>Label</b>: Detail</span></li>
</ul>
<div class="list-card">
<p class="list-name">Card title</p>
<ul class="blist check-b">...</ul>
</div>Process steps .ps-timeline
Horizontal numbered timeline for 3–5 steps. Dashed connector line auto-adapts. Mark completed steps with .is-done, current step with .is-current.
How to get internet in France
From address check to first connection — typically 5–10 days.
Day 1
Check eligibility
Enter your address to see which technologies are available.
Day 1
Subscribe
Sign up online or call Selectra's free English service.
Day 2–7
Installation
Technician appointment for fibre; router ships for 4G/5G box.
Day 5–10
Connected
Set up your router and activate your services online.
Blade code
<p class="ps-intro-title">Section title</p>
<p class="ps-intro-desc">Short intro.</p>
<div class="ps-timeline">
<div class="ps-tl-step is-done">
<div class="ps-tl-node">1</div>
<p class="ps-tl-kicker">Day 1</p>
<p class="ps-tl-title">Title</p>
<p class="ps-tl-desc">Description.</p>
</div>
<div class="ps-tl-step is-current">
<div class="ps-tl-node">2</div>
...
</div>
<div class="ps-tl-step">
<div class="ps-tl-node">3</div>
...
</div>
</div>FAQ accordion .faq-a
Native <details>/<summary> accordion — no JS. Open state tints background with var(--accent). Toggle button auto-swaps label via CSS.
Can I get a French SIM card without a French address? Read more Close
Yes, for prepaid SIM cards (cartes prépayées), no French address is required — just a valid ID. For a monthly contract, you'll need a French address and a French IBAN.
If you just arrived, a temporary address (hotel, friend's home) works for initial sign-up. Update it once you have a permanent one.
What documents do I need for a fibre subscription? Read more Close
You need: a valid ID (passport or EU card), a French IBAN for direct debit, and proof of address (rental agreement, recent bank statement, or EDF bill).
Can I keep my existing number when switching operators? Read more Close
Yes. Call 3179 from your current SIM to get your RIO code (free). Give it to your new operator when signing up — they handle the transfer automatically.
Blade code
<div class="faq-a">
<details>
<summary>
Question text
<span class="toggle">
<span class="lbl-open">Read more <svg ...chevron .../></span>
<span class="lbl-close">Close <svg .../></span>
</span>
</summary>
<div class="faq-body">
<div class="faq-answer">
<p>Answer paragraph.</p>
</div>
</div>
</details>
<!-- repeat for each Q -->
</div>Table of contents .toc
2-column numbered anchor list for long articles. Place at the top of the article body or in x-slot:subnav.
Blade code
<div class="toc">
<h5>Contents</h5>
<ol>
<li><span class="n">01</span><a href="#section-id">Section title</a></li>
<li><span class="n">02</span><a href="#section-id">Section title</a></li>
</ol>
</div>Simple table table.t--simple
Clean editorial table with top/bottom ink borders. Last column right-aligned. First column can use <th> for row headers. Wrap in .t-wrap for mobile scroll.
| Plan | Data | Network | Price/month |
|---|---|---|---|
| Open Play 5G 50 Go | 50 Go | 5G | 9,99€ |
| Open Play 5G 100 Go | 100 Go | 5G | 14,99€ |
| Open Play 5G 200 Go | 200 Go | 5G | 24,99€ |
Prices valid April 2026. Partner offers.
Blade code
<div class="t-wrap">
<table class="t t--simple">
<caption>Optional caption</caption>
<thead><tr><th>Col</th><th>Price</th></tr></thead>
<tbody>
<tr>
<th>Row header</th>
<td class="num">9,99€</td>
</tr>
</tbody>
</table>
</div>
<p class="t-foot">Source / footnote.</p>Table note .tbl-note
Small right-aligned caption placed directly after a table — for source dates, footnote markers, or update notices. Defined in the base theme; requires .article-body wrapper (automatic in article layouts).
| Provider | Plan | Price |
|---|---|---|
| Orange | Holiday 20GB | 24,99€ |
| SFR | Discover 200GB | 9,99€ |
*EU roaming included. Updated May 2026.
Blade code
<div class="t-wrap">
<table class="t t--simple">...</table>
</div>
<p class="tbl-note">*Footnote or update date.</p>Comparator table table.t--cmp
Side-by-side plan comparison. Highlighted column: .offer.is-pick on <th>, .is-pick on <td>. Recommended tag via .cmp-tag. CTA buttons in tfoot.
Fibre plans compared
|
Sosh Fibre 500 Mbit/s 24,99€ /mo |
Our pick
Free Freebox Pop 29,99€ /mo |
Orange Livebox Fibre 34,99€ /mo |
|
|---|---|---|---|
| Download speed | 500 Mbit/s | 5 Gbit/s | 2 Gbit/s |
| TV included | — | ✓ | +5€/mo |
| Commitment | None | None | 12 months |
| English support | — | Via Selectra | ✓ Direct |
| See offer → | Subscribe → | See offer → |
Prices verified April 2026. Year-1 promos included. Non-contractual.
Blade code
<div class="cmp-wrap">
<table class="t t--cmp">
<thead>
<tr>
<th class="c-label"></th>
<th class="offer">
<p class="cmp-brand">Brand</p>
<p class="cmp-plan">Plan</p>
<p class="cmp-price">9,99€ <span class="per">/mo</span></p>
</th>
<th class="offer is-pick">
<span class="cmp-tag">Our pick</span>
...
</th>
</tr>
</thead>
<tbody>
<tr>
<th>Feature</th>
<td>Value</td>
<td class="is-pick">Highlighted</td>
</tr>
</tbody>
<tfoot>
<tr>
<td></td>
<td><a href="..." class="cmp-cta">See offer →</a></td>
<td class="is-pick"><a href="..." class="cmp-cta primary">Subscribe →</a></td>
</tr>
</tfoot>
</table>
</div>Feature matrix table.t--matrix
Dark header row, alternating zebra rows. Use for provider feature grids or plan spec sheets. Highlight a column with .highlight-col; use .with-accent on a header cell. Combine with .ynbox for yes/no cells.
| Orange | Bouygues | SFR | Free | |
|---|---|---|---|---|
| Fibre (FTTH) | ✓ | ✓ | ✓ | ✓ |
| 5G mobile | ✓ | ✓ | ✓ | ✓ |
| English support | ✓ | ✓ | ✗ | ✗ |
| No-contract plan | via Sosh | via B&You | via RED | ✓ |
✓ Yes ✗ No • Partial
Blade code
<table class="t t--matrix">
<thead>
<tr>
<th></th>
<th>Provider A</th>
<th class="with-accent">Provider B</th>
</tr>
</thead>
<tbody>
<tr>
<th>Feature</th>
<td><span class="ynbox yes">✓</span></td>
<td class="highlight-col"><span class="ynbox yes">✓</span></td>
</tr>
</tbody>
</table>Ranking table table.t--rank
League-table layout with rounded card rows. Top rows use .is-top for accent tint + left border. Logo placeholder uses .brand-logo.
| # | Provider | Best plan | Starting price |
|---|---|---|---|
| 1 |
Or
Orange |
Livebox Fibre 2 Gbit/s | 34,99€/mo |
| 2 |
Fr
Free |
Freebox Pop 5 Gbit/s | 29,99€/mo |
| 3 |
Bu
Bouygues |
Bbox must Fibre | 24,99€/mo |
Scores based on coverage, speed, English support & price. Selectra editorial review, April 2026.
Blade code
<table class="t t--rank">
<thead><tr><th>#</th><th>Provider</th><th>Price</th></tr></thead>
<tbody>
<tr class="is-top">
<td><span class="rank-pos">1</span></td>
<td>
<div class="brand-cell">
<div class="brand-logo">Or</div>
<div>
<p class="brand-name">Orange</p>
<p class="brand-meta">Subtitle</p>
</div>
</div>
</td>
<td class="num">34,99€/mo</td>
</tr>
<tr> ...</tr>
</tbody>
</table>Pricing tiers table.t--tiers
3-column pricing table for plan tiers (Economy / Standard / Premium). Featured column uses .tier-featured — highlighted header + tinted cells. Use for broadband speed tiers or mobile data tiers.
| Essential | Standard | Premium | |
|---|---|---|---|
| FROM 20€ | FROM 30€ | FROM 45€ | |
| Download speed | 500 Mbit/s | 2 Gbit/s | 8 Gbit/s |
| WiFi standard | WiFi 5 | WiFi 6 | WiFi 7 |
| TV included | — | ✓ | ✓ + 4K |
| Commitment | 12 months | None | None |
Blade code
<table class="t t--tiers">
<thead>
<tr>
<th></th>
<th>Essential</th>
<th class="tier-featured">Standard</th>
<th>Premium</th>
</tr>
<tr>
<th></th>
<th>FROM 20€</th>
<th class="tier-featured">FROM 30€</th>
<th>FROM 45€</th>
</tr>
</thead>
<tbody>
<tr>
<td>Feature</td>
<td>Value</td>
<td class="tier-featured"><b>Featured value</b></td>
<td>Value</td>
</tr>
</tbody>
</table>Step rows .step-row
Vertical timeline with connector line between steps. Each step has a numbered square badge (accent BG) and a title + description. Use for subscription guides, how-to processes.
Always wrap each group of steps in a plain <div> — this ensures :last-child removes the connector line on the final step, even when non-step elements (headings, callouts) follow the group. Always add style="margin-top:0" on .step-title to keep the title vertically aligned with the badge.
Compare plans at your address
Enter your address to see available technologies (fibre, 4G/5G box, ADSL) and filter by operator and price.
Subscribe online or by phone
Complete the form online or call +33 9 77 55 72 27 — our English-speaking advisors handle everything for free.
Receive your box & connect
4G/5G boxes ship within 48 h. Fibre needs a technician visit — usually booked within 5–10 days.
Blade code
<div>
<div class="step-row">
<div class="step-num">1</div>
<div>
<p class="step-title" style="margin-top:0">Title</p>
<p class="step-desc">Description.</p>
</div>
</div>
<div class="step-row">
<div class="step-num">2</div>
<div>
<p class="step-title" style="margin-top:0">Title</p>
<p class="step-desc">Description.</p>
</div>
</div>
</div>Big-number steps .sb-steps / .sb-step
Card-based numbered steps with a large display number. Good for longer explanations with sub-bullets. Each card is a grid with a big number on the left and content on the right.
Check fibre eligibility
2 minEnter your full French address on the provider's website or use Selectra's multi-operator eligibility tool.
- Fibre (FTTH) requires a fibre socket in your building
- 4G/5G box is available everywhere with mobile coverage
Subscribe & book installation
15 minFill in the online form. You'll need a French IBAN and a French address. Pick a technician slot during checkout.
Blade code
<div class="sb-steps">
<div class="sb-step">
<div class="sb-step-num">0<span class="zero">1</span></div>
<div>
<div class="sb-step-head">
<p class="sb-step-title">Step title</p>
<span class="sb-step-dur">5 min</span>
</div>
<div class="sb-step-body">
<p>Description. <strong>Key term.</strong></p>
<!-- Optional sub-list -->
<ul class="sb-step-sub">
<li>Detail one</li>
<li>Detail two</li>
</ul>
</div>
</div>
</div>
</div>Expert quote <x-expert-quote>
Editorial opinion block with author attribution. Use any time Selectra gives its own take on a provider, plan, or topic — typically at the end of a review section. The slot supports HTML (<strong>, links, etc.).
Without avatar — falls back to initial
Blade code
<x-expert-quote
name="Valentine"
title="Editor at Selectra"
avatar="https://images.selectra.info/en.selectra.info/team/valentine-billod.webp"
label="Our editorial take">
Your opinion here — HTML like <strong> and links is supported.
</x-expert-quote>
<x-expert-quote name="Valentine" title="Editor at Selectra">
Short verdict.
</x-expert-quote>Verdict cards .verdict-card / .verdict2-pro/.verdict2-con
Two styles: a single-column checklist (.verdict-card) and a split pro/con layout (.verdict2-pro + .verdict2-con). Use at the end of a provider review to summarise strengths and weaknesses.
Simple checklist — .verdict-card
Pro/con split — .verdict2-pro + .verdict2-con
- No commitment — cancel any month
- eSIM supported — activate instantly
- EU roaming included
Best for expats who may leave France within 12 months.
- Customer service in French only
- No physical stores for in-person help
May be frustrating for non-French speakers with complex queries.
Blade code
<div class="verdict-card">
<div class="verdict-item">
<div class="vi-dot good">✓</div>
<div class="vi-text">Pro point with <strong>emphasis</strong></div>
</div>
<div class="verdict-item">
<div class="vi-dot warn">!</div>
<div class="vi-text">Warning point</div>
</div>
</div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:14px;">
<div class="verdict2-pro">
<div class="verdict2-card-head">
<div class="verdict2-icon pro">✓</div>
<strong>Pros</strong>
</div>
<ul class="verdict2-ul">
<li>Advantage</li>
</ul>
<p class="verdict2-advice">Advice text.</p>
</div>
<div class="verdict2-con">
<div class="verdict2-card-head">
<div class="verdict2-icon con">!</div>
<strong>Cons</strong>
</div>
<ul class="verdict2-ul">
<li>Limitation</li>
</ul>
<p class="verdict2-advice">Context for the limitation.</p>
</div>
</div>Key takeaway cards .k1 / .k2 / .k3
Three variants for emphasising important information mid-article. .k1: simple left-border card. .k2: gradient card with stat grid (3 numbers). .k3: dark-header numbered list.
.k1 — left-border highlight
You don't need to cancel your old plan first
When porting your number with a RIO code, the new operator cancels your old contract automatically. Never cancel before porting — you'd lose your number.
.k2 — stats card
French mobile market at a glance
France has one of the most competitive mobile markets in Europe, with no-commitment plans starting under 10€/month.
.k3 — dark-header numbered list
What to do before switching operators
- Get your RIO code — call 3179 (free, 2 min)
- Choose your new plan and subscribe with your RIO
- Keep your old SIM active until the transfer completes (1–3 days)
Blade code
<div class="k1">
<div class="k1-head">
<div class="k1-ico"><svg ...info icon.../></div>
<span class="k1-label">Key fact</span>
</div>
<p class="k1-title">Title</p>
<p class="k1-body">Body text.</p>
<!-- Optional bullet list -->
<ul class="k1-list">
<li>Point</li>
</ul>
</div>
<div class="k2">
<div class="k2-head">
<div class="k2-head-left">
<span class="k2-pill">Overview</span>
<p class="k2-title">Title</p>
</div>
</div>
<div class="k2-stats">
<div class="k2-stat"><div class="k2-stat-num">4</div><div class="k2-stat-label">Label</div></div>
<div class="k2-stat"><div class="k2-stat-num">99%</div><div class="k2-stat-label">Label</div></div>
<div class="k2-stat"><div class="k2-stat-num">~8€</div><div class="k2-stat-label">Label</div></div>
</div>
<p class="k2-foot">Footer text.</p>
</div>
<div class="k3">
<div class="k3-head">
<span class="k3-head-tag">Checklist</span>
<p class="k3-head-title">Title</p>
</div>
<div class="k3-body">
<ol class="k3-list">
<li>Step or point</li>
</ol>
</div>
</div>Fact cards .fact-card
Compact stat cards with a gradient top bar and a large display number. Use in a grid (2–4 columns) to highlight key metrics at the top of an article or section.
Blade code
<div style="display:grid;grid-template-columns:repeat(4,1fr);gap:12px;">
<div class="fact-card">
<div class="fact-val">83%</div>
<div class="fact-lbl">Fibre coverage</div>
</div>
<!-- repeat ... -->
</div>Contact cards .ccard / .cc-pair
Phone/contact block for advisor CTAs. .cc-pair creates a 2-column grid. Primary card (.ccard.primary) has an accent left stripe, gradient top, and colored phone number. Use at end of article or in a dedicated "contact" section.
Free service — no subscription required
Blade code
<div class="cc-pair">
<div class="ccard primary">
<div class="ccard-kicker">
<svg ...phone icon.../> English advisors
</div>
<a href="/telecom/selection/fr-ti-cc-enselectra?referer=https%3A%2F%2Fen.selectra.info%2Fbroadband-phone-france%2Fdesign-system" class="ccard-num">+33 9 77 55 72 27</a>
<p class="ccard-pricing">Free service</p>
<p class="ccard-meta">Description.</p>
<div class="ccard-hours">
<span class="day">Mon–Fri</span><span class="open">8am–9pm</span>
<span class="day">Saturday</span><span class="open">9am–7pm</span>
<span class="day">Sunday</span><span class="open">9am–5pm</span>
</div>
<a href="/telecom/selection/fr-ti-cc-enselectra?referer=https%3A%2F%2Fen.selectra.info%2Fbroadband-phone-france%2Fdesign-system" class="ccard-cta">Call now</a>
</div>
<div class="ccard">
...
<a href="#" class="ccard-cta">Action →</a>
</div>
</div>
<div class="cc-pair single">
<div class="ccard primary">...</div>
</div>Quick nav cards .qn-grid / .qn-card
3-column card grid for section navigation (index pages, homepage sub-nav). Each card has a colored top bar (accent), a tag, title, subtitle, and CTA link. Hover effect: lift + shadow.
Blade code
<div class="qn-grid">
<a href="/section" class="qn-card">
<div class="qn-bar" style="background:var(--accent);"></div>
<div class="qn-inner">
<span class="qn-tag" style="color:var(--accent-ink);">📡 Internet</span>
<p class="qn-title">Card title</p>
<p class="qn-sub">Short description.</p>
<span class="qn-cta" style="background:color-mix(in oklab,var(--accent) 12%,white);color:var(--accent-ink);">
Explore →
</span>
</div>
</a>
</div>Progress bar .bar / .bar-row
8px pill bar with accent fill. Use .bar-row for a label + bar + value layout (e.g. speed comparisons, coverage scores). Width is set inline via style="width:X%".
Download speed (5 Gbit/s)
Upload speed (800 Mbit/s)
4G coverage
Blade code
<div class="bar-row">
<div class="bar">
<span style="width:75%;"></span>
</div>
<span class="num">75%</span>
</div>Vlist .vlist
Bullet list with a small accent-tinted icon circle for each item. Cleaner than .blist for short descriptive lists where a check/cross icon isn't needed. SVG icon passed inside .vi.
- No French bank account needed for prepaid SIM cards — just a valid ID.
- eSIM activation takes under 10 minutes on compatible phones.
- All major operators offer English online sign-up (Orange, SFR, Bouygues).
Blade code
<ul class="vlist">
<li>
<span class="vi">
<svg viewBox="0 0 24 24"><path d="M5 13l4 4L19 7" stroke-linecap="round" stroke-linejoin="round"/></svg>
</span>
Item text with <strong>emphasis</strong>.
</li>
</ul>Link chips .link-chip
Bold inline link with a diagonal arrow icon. Use inside body text for internal cross-links to other guides or provider pages. Color inherits --accent-ink.
Before subscribing, check your address eligibility — some zones are not yet fibre-ready . You can also compare all plans on our mobile comparator page.
Blade code
<a href="/target-page" class="link-chip">
Link text
<svg viewBox="0 0 24 24" width="11" height="11" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
<path d="M7 17L17 7M7 7h10v10"/>
</svg>
</a>Price display .price / .cmp-price
Standalone price elements using tabular numerals. .price is for general use; .cmp-price is for comparator table headers (larger). Always show the .per span for the billing period.
.price.price-big
29,99€/month.cmp-price (comparator)
34,99€/moWith .price-cur currency
29,99€/moBlade code
<span class="price price-big">29,99€<span class="per">/month</span></span> <p class="cmp-price">34,99€ <span class="per">/mo</span></p>
Horizontal offer cards <x-offers.horizontal-cards>
Live comparator in horizontal card layout. Props: offerType (internet / mobile), techFilter (2_2=fibre, 3_1=4G/5G box, 2_1=ADSL), providerFilter (slug list), noEngagement, count.
Fibre, top 4 — <x-offers.horizontal-cards techFilter="2_2" :count="4" />
No offers match the selected filters.
Mobile, no commitment — <x-offers.horizontal-cards offerType="mobile" :noEngagement="true" :count="4" />
No plans match the selected filters.
Blade code
<x-offers.horizontal-cards techFilter="2_2" providerFilter="orange,sfr,bouygues,free" :count="4" /> <x-offers.horizontal-cards techFilter="3_1" :count="4" /> <x-offers.horizontal-cards offerType="mobile" :noEngagement="true" :count="4" /> <x-offers.horizontal-cards offerType="mobile" providerFilter="red,sosh,bouygues,free" :count="4" />
Horizontal offer cards — full detail <x-offers.horizontal-cards-full>
Extended card layout with spec pills row and a collapsible tabbed detail panel (Pricing · Internet · TV · Extras · Our verdict). Same props as horizontal-cards. Partner callcenter logic: card collapsed → callback modal, card expanded → phone number.
Fibre, top 3 — <x-offers.horizontal-cards-full techFilter="2_2" :count="3" />
No offers match the selected filters.
Offer tariff
/mo for months, then /mo
/mo (fixed price)
Annualised cost
Over 12 months:
Over 24 months:
Fees
Activation:
Cancellation:
Commitment
Performance
Up to download
Up to upload
Wi-Fi
Phone
Landline calls unlimited in France
Landline calls limited
Landline calls pay-as-you-go
Mobile calls unlimited in France
Mobile calls limited
Mobile calls pay-as-you-go
Not included
included
TV included
Set-top box included
Streaming included:
No TV
Mobile, no commitment — <x-offers.horizontal-cards-full offerType="mobile" :noEngagement="true" :count="3" />
No plans match the selected filters.
Offer tariff
/mo for months, then /mo
/mo (fixed price)
Annualised cost
Over 12 months:
Over 24 months:
Fees
Activation:
SIM card:
Cancellation:
Commitment
Plan
network
in France
Calls/SMS/MMS unlimited
Calls unlimited
Calls limited
Calls pay-as-you-go
SMS unlimited
SMS limited
SMS pay-as-you-go
Abroad
EU/DOM:
Not specified
Services
eSIM compatible
Blade code
<x-offers.horizontal-cards-full techFilter="2_2" providerFilter="orange,sfr,bouygues,free" :count="4" /> <x-offers.horizontal-cards-full techFilter="3_1" :count="4" /> <x-offers.horizontal-cards-full offerType="mobile" :noEngagement="true" :count="4" /> <x-offers.horizontal-cards-full offerType="mobile" providerFilter="red,sosh,bouygues,free" :count="4" />
Box comparateur <x-widget::telecom-box>
Full offer table with filters and pagination. Props: tech, rows, providers (slug list), minSpeed, sort (price / speed).
Fibre, 4 offers — <x-widget::telecom-box tech="2_2" rows="4" sort="price" />
| Provider | Plan | Type | Down / Up | TV | Monthly | Commitment |
|---|---|---|---|---|---|---|
| - | RED Box Fibre | Fibre | 1,000.0 Gbps / 1,000.0 Gbps | - | 22.99 € | No commitment |
| - | Livebox Cheat Code Fibre 18-26 | Fibre | 2,000.0 Gbps / 800.0 Gbps | 200 ch | 24.99 € | No commitment |
| - | Freebox Pop S Fibre | Fibre | 5,000.0 Gbps / 900.0 Gbps | - | 24.99 € | No commitment |
| - | B&You Pure Fibre | Fibre | 2,000.0 Gbps / 900.0 Gbps | - | 24.99 € | No commitment |
Subscribe or get advice: call a Selectra advisor at +33 9 87 67 37 93. Updated 4 Sep 2026.
Blade code
<x-widget::telecom-box tech="2_2" rows="6" sort="price" /> <x-widget::telecom-box tech="2_1,2_2" providers="orange" rows="8" minSpeed="20" sort="price" /> <x-widget::telecom-box tech="3_1" providers="orange,sfr,bouygues,free" rows="6" sort="price" />
Mobile comparateur <x-widget::telecom-forfait>
Mobile plan comparator with filters. Props: providers, network (5=4G, 7=5G), minDataGo, durations (0=no commitment), rows, sort.
All operators, sorted by data — <x-widget::telecom-forfait sort="data" rows="6" />
No mobile plans match these criteria right now.
Speak to a Selectra advisor: +33 9 87 67 37 93
Blade code
<x-widget::telecom-forfait providers="free,orange,bouygues,sfr" network="5,7" minDataGo="10" durations="0" rows="10" sort="price" /> <x-widget::telecom-forfait providers="red,coriolis,sosh,prixtel" network="5,7" durations="0" rows="10" sort="price" />
Eligibility widget <x-tools.eligibility-widget-v2>
Address lookup returning available technologies and operators at a given French address. Self-contained — no props. Place at the start of provider index or how-to pages.
See what's available at your door
We check fibre, VDSL, 4G/5G box and satellite across every operator — instantly.
Free · no sign-up · live ARCEP data
Double-check the number and postcode, or start typing to see suggestions. You can also call an adviser and we'll check it together.
* Promotional price for the first months. Regular price may apply thereafter.
Blade code
<x-tools.eligibility-widget-v2 />
Broadband recommender <x-bpf-broadband-recommender>
3-question quiz (length of stay / availability / usage) that recommends fibre, 5G home box, pocket WiFi or satellite, with an advisor-eligibility CTA (phone when the call-centre is open, callback when closed). Self-contained — no props. The "See … offers" link scrolls to the matching section anchor on the host page; on pages without those anchors it is a no-op.
Which no-landline internet is right for you?
How long will you need it?
What's available at your home?
How do you use the internet?
Your best match
Free & no obligation — our advisors check fibre, 5G, 4G and satellite at your address.
Blade code
<x-bpf-broadband-recommender />
Speed test <x-tools.speed-test>
Browser-based download/upload/ping test via Cloudflare endpoints. No props needed. Use on speed guides and provider pages.
Takes about 30 seconds. Tests are performed via Cloudflare servers.
Not happy with your speed?
Our advisors can find you a faster broadband deal — free of charge.
Results may vary depending on your equipment, network load, and time of day.
For a more accurate result, connect via Ethernet and close other applications.
Blade code
<x-tools.speed-test />
Outage reporter <x-tools.signalement-panne>
Network outage reporting form. Props: provider (slug), network (mobile / internet). Without props, shows a generic multi-operator form.
Signaler une panne réseau
Indiquez l'adresse et votre opérateur : le signalement est partagé en temps réel avec les autres utilisateurs et les services techniques.
Merci pour votre signalement !
La coupure à a bien été enregistrée et partagée avec les autres utilisateurs.
Besoin d'aide ?
Un conseiller vous rappelle gratuitement.
Signalement anonyme — contribue à la cartographie des pannes en temps réel.
Blade code
<x-tools.signalement-panne /> <x-tools.signalement-panne provider="orange" network="mobile" />
Pack Box+Mobile <x-tools.composition-pack-box-mobile>
Interactive bundle builder: pick an internet plan + mobile SIMs, see total price. Optional prop: provider (slug), maxMobile (number of SIMs).
Bouygues, up to 4 mobile lines:
1 Choose your fibre box
2 Add your mobile plans
Up to plans — /
Blade code
<x-tools.composition-pack-box-mobile /> <x-tools.composition-pack-box-mobile provider="bouygues" :maxMobile="4" />
Channel list <x-tv.liste-chaines>
Searchable channel grid. Props: providers (slug or comma-list), themeId (optional theme filter), nameFilter (free-text filter).
Orange TV, theme 15 (included channels):
chaine(s) —
Aucune chaine trouvee pour ces criteres.
| Chaine | Thematique |
|
|
|---|---|---|---|
| — | |||
|
Chargement des bouquets...
Bouquets incluant Non renseigne
|
Données issues du comparateur Selectra.
SFR, theme 3 (sport channels):
chaine(s) —
Aucune chaine trouvee pour ces criteres.
| Chaine | Thematique |
|
|
|---|---|---|---|
| — | |||
|
Chargement des bouquets...
Bouquets incluant Non renseigne
|
Données issues du comparateur Selectra.
Blade code
<x-tv.liste-chaines providers="orange" :themeId="15" /> <x-tv.liste-chaines providers="free" :themeId="4" /> <x-tv.liste-chaines providers="bouygues" nameFilter="4k" /> <x-tv.liste-chaines providers="sfr,orange,free" :themeId="8" nameFilter="sport" />
TV bouquet <x-tv.bouquet>
Card showing all channels in a specific TV package, with theme tabs and "show all" toggle. Required props: packageId (from telecom API) and providerId.
Orange package 25, provider 14:
chaines
Blade code
<x-tv.bouquet :packageId="25" :providerId="14" />
Monetisation card x-broadband-phone-france.block
The card half of the monetisation duo. It decides nothing: the number, the affiliate link, the legal mention and the permission to show a phone all come from the brain (broadband-phone-france/bpf-monetisation.php), which reads the carnet (data/bpf/partners.json). The copy comes from config/bpf-block.php, picked by URL subject. Post it with the minimum — on a provider page, bare is usually enough. Full doctrine: broadband-phone-france/monetisation.md.
Mode PARTNER — call-centre partner: tracked Selectra number + online subscription + partner seal
Blade code
<x-broadband-phone-france.block />
Mode AFFILIATE, in the body — Bouygues (partnership ended 16 July 2026): affiliate link only, no number mid-body
Same provider, at the END of the page — placement="end" unlocks the generic Selectra number (never « subscribe to Bouygues by phone »)
Blade code
<x-broadband-phone-france.block placement="end" />
eSIM — the call centre does NOT sell eSIMs: generalist copy, and it says so
Non-partner operator — MVNO, Starlink, Europasat: affiliate link only, never a Selectra number or callback, even at the end of the page
Mode GENERIC — guide page with no provider
Monetisation buttons x-broadband-phone-france.cta
The primitive half of the duo: buttons only, no card. Drop it in a table row, a scorecard, an in-body insert or a bar. The card above delegates its buttons here and never redraws one. Use skin="light" on a light background, skin="dark" (default) inside a dark card.
skin="light", partner — for a table row or a light insert
Blade code
<x-broadband-phone-france.cta provider="sfr" skin="light" />
skin="light", non-partner operator — affiliate button alone, no number
Compact, no mention — inside a comparison table where the legend already carries it
Blade code
<x-broadband-phone-france.cta provider="orange" skin="light" size="sm" :show-mention="false" />
Pros & Cons <x-pros-cons>
Two-column grid showing provider strengths and weaknesses. Accepts a PHP array of HTML strings via :pros and :cons props.
Pros
- Largest 4G/5G network in France — 99% population coverage.
- Competitive triple-play bundles including TV and mobile.
- No-commitment mobile plans available from €9.99/month.
Cons
- Pricier than discount brands like Free or SFR.
- Customer service can be slow during peak periods.
Blade code
<x-pros-cons
:pros="[
'<strong>Largest 4G/5G network</strong> in France — 99% population coverage.',
'Competitive triple-play bundles including TV and mobile.',
'No-commitment mobile plans available from €9.99/month.',
]"
:cons="[
'Pricier than discount brands like Free or SFR.',
'Customer service can be slow during peak periods.',
]"
/>Essentials block <x-essentials-block>
TL;DR callout for article intros. Left accent border, filled circle-check header, and auto-rendered checkmark bullets from a PHP array. Adapts title via title prop.
Bouygues Telecom at a glance
- 4G/5G network covering 99% of the French population.
- Plans start from €9.99/month on a no-commitment basis.
- MVNOs such as La Poste Mobile and NRJ Mobile use its infrastructure.
- Reliable customer service rated above industry average on Trustpilot.
Blade code
<x-essentials-block title="Bouygues Telecom at a glance" :items="[
'<strong>4G/5G network</strong> covering 99% of the French population.',
'Plans start from <strong>€9.99/month</strong> on a no-commitment basis.',
'MVNOs such as La Poste Mobile and NRJ Mobile use its infrastructure.',
'Reliable customer service rated above industry average on Trustpilot.',
]" />Feature cards <x-shared.feature-cards>
Colored icon-card grid for showcasing plan features, network coverage zones, or any structured benefit list. Each card: emoji chip + bold title + HTML body + optional badge pill. 9 tone variants.
Network coverage
Competitive pricing
TV included
Blade code
<x-shared.feature-cards :cols="3" :items="[
['emoji' => '📡', 'title' => 'Network coverage',
'html' => '4G/5G reaching <strong>99% of the population</strong>.',
'tone' => 'blue'],
['emoji' => '💸', 'title' => 'Competitive pricing',
'html' => 'Triple-play from <strong>€27.99/month</strong>.',
'tone' => 'emerald'],
['emoji' => '📺', 'title' => 'TV included',
'html' => 'Over 160 live channels included in most plans.',
'badge' => '160+ channels', 'tone' => 'violet'],
]" />
Plan spotlight cards <x-providers.plan-spotlight>
Rich editorial plan cards with a dark navy header (plan number + type badge + name + intro price) and a split body (features/bullets left, pricing box + score badge + CTA right). Inspired by LFO's box-modele SDP. JSON key: plan_spotlights.
Bbox Fit
Essential fibre at the best entry-level price — no TV, no extras, just fast reliable internet.
From
26.99€/month
12-month commitment
- Up to 400 Mbit/s download
- Wi-Fi 6 router included
- Unlimited calls to French landlines & mobiles
- — No TV decoder included
Pricing & Subscribe
26.99€/month
Then 37.99€/month
Selectra Score
C — Average
Bbox Ultym
Bouygues' flagship: XGS-PON up to 8 Gbps, 4K TV, multiroom and Wi-Fi 6E — for the most demanding households.
From
46.99€/month
12-month commitment
- Up to 8 Gbit/s XGS-PON
- Wi-Fi 6E router
- 4K TV + multiroom decoder
- Nº1 WiFi quality in France (ARCEP)
Pricing & Subscribe
46.99€/month
Then 57.99€/month
Selectra Score
A — Excellent
Blade code
<x-providers.plan-spotlight :plans="[
[
'number' => '01',
'type' => 'BBOX',
'subtype' => 'FIBRE · ENTRY',
'name' => 'Bbox Fit',
'tagline' => 'One-line description shown below the header.',
'price' => '26.99€',
'price_full' => '37.99€',
'promo_label' => 'First 12 months',
'commitment' => '12-month commitment',
'score' => 'C',
'features' => ['Up to <strong>400 Mbit/s</strong>', 'Wi-Fi 6 included'],
'limitations' => ['No TV decoder'],
'cta_url' => '/telecom/selection/bouygues-telecom/box',
'cta_label' => 'See Bbox Fit',
],
]" />Top offres — highlight panel <x-monetisation.top-offres>
Colored panel with a headline + a live, API-driven "top 3" of the best-value mobile plans (Score A/B, ranked by data-per-euro, 1 per operator). Generic entry point (no product suffix, unlike lafibreoptique.fr's top-offres-fibre) over a new top-cards skin of the shared comparateur-mobile engine — same profiles/CTA/legend as horizontal-cards, just a different habillage. compact switches to a single-column stack sized for the article sidebar (above the table of contents).
Default (3-across grid) — <x-monetisation.top-offres title="🏆 Best mobile plans right now" />
No plans match the selected filters.
Compact (sidebar stack, 2 offers) — <x-monetisation.top-offres compact :count="2" title="🏆 Top MVNO plans" />
Blade code
<x-monetisation.top-offres
title="🏆 Best mobile plans right now"
description="Ranked by data-per-euro value."
profile="rapport_data_prix_score_provider"
:count="3"
/>
<x-monetisation.top-offres compact :count="2" title="🏆 Top MVNO plans" />Offer preview cards <x-providers.offer-preview-cards>
3-card hub grid linking to product sub-pages (Bbox / Mobile / B&YOU or equivalent). Operator-agnostic: tone (orange|blue|green), icon (wifi|mobile|unlock), price, feature bullets, and CTA are all configurable. Used on provider hub pages to replace 10+ detailed sections with a lightweight preview.
Blade code
<x-providers.offer-preview-cards :cards="[
[
'tone' => 'orange',
'icon' => 'wifi',
'label' => 'Fibre & Bbox',
'sublabel' => 'Home broadband · with or without TV',
'price_from' => 'From €26.99',
'price_unit' => '/month',
'features' => ['Up to <strong>8 Gbit/s</strong> fibre', 'Nº1 WiFi quality'],
'href' => '/broadband-phone-france/providers/bouygues-telecom/bbox',
'cta_label' => 'See Bbox plans',
],
]" />cta_label is output via {{ }} — use plain &, not &. Feature strings use {!! !!} — HTML is safe.Editorial verdict <x-providers.editorial-verdict>
Magazine-style score card with Selectra Score SVG badge, grade distribution pills, award badge, headline, editorial paragraph, and two-column "What we love / Keep in mind" lists. Used in provider review sections.
Selectra Score
5 plans analysed
A complete range — from entry-level fibre to 8 Gbps premium
Bouygues Telecom offers one of the best value-for-money ranges on the French market. The Bbox range combines high speeds with a quality TV decoder. B&YOU plans feature locked pricing beyond year one.
What we love
- Ranked Nº1 WiFi nPerf 2025 — 2nd consecutive year.
- First-year promo applies even to existing Bouygues customers.
- B&YOU price lock — no increase after 12 months.
Keep in mind
- €48 setup fee charged on the first invoice.
- B&YOU cancellation fee: €69 if terminated early.
Blade code
<x-providers.editorial-verdict
score="A"
scoreLabel="Excellent choice"
:plansGraded="['A' => 2, 'B' => 2, 'D' => 1]"
:plansTotal="5"
badge="🏆 Award text"
headline="Editorial headline"
editorial="Editorial paragraph..."
:loves="[
'What we love item 1.',
'What we love item 2.',
]"
:keepInMind="[
'Caveat item 1.',
]"
/>eSIM Compatibility Checker <x-bpf-esim-checker />
Interactive widget that lets users check if their smartphone supports eSIM. Free-text search with autocomplete over a static JSON database of ~336 devices (21 brands). Four states: idle, typing/autocomplete open, compatible result with editorial note, and not-found guidance.
336 compatible models · 21 brands
Note: compatibility may vary by region or carrier unlock status.
Good news! Your device is ready. Keep in mind that your French operator also needs to support eSIM activation — check with your provider before purchasing a plan.
To check manually: go to Settings → General → About and look for an eSIM or Digital SIM option. If it appears, your phone is compatible.
Blade code
<x-bpf-esim-checker />
French phone number converter <x-french-dialer />
Interactive converter: the user types a French number in any format (06…, +33…, 0033…) and gets two formatted outputs with one-click copy, plus a number-type badge and a service-number warning. Each output card is configurable via card1-mode / card2-mode: intl (+33 …), local (0X XX …), or an exit-code prefix string like "00 33" (UK) or "011 33" (US). Reused on the call France from UK/US guides and the phone numbers hub.
French phone number converter
Enter any French phone number to see how to write it in international format and how it reads locally. All formats accepted: 06 12 34 56 78, +33 1 23 45 67 89, 0033612345678.
Blade code
<x-french-dialer
section-class="py-10 md:py-14 bg-gray-50"
heading="French phone number converter"
card1-label="International format (+33)"
card1-mode="intl"
card2-label="Local format (in France)"
card2-mode="local"
/>Review form x-reviews.review-form-generic
The star bandeau plus its review modal, for any BPF page. Provider-agnostic: the reader picks their operator from the dropdown, so the same call works everywhere. Always at the very bottom of the page, just before </x-layouts.article> — never higher up. Always pass lang="en": the default is fr and would render the French labels and the LFO operator list.
Compliance-wise this component is self-carrying: it renders its own data-protection notice (RGPD-02) below the consent checkbox, so a page never has to add one. It lives at sites/en.selectra.info/components/reviews/ as a deliberate override of the departments/france-telecom default — never edit the department copy, it also serves lafibreoptique.fr and echosdunet.net.
Not previewed here: the component registers a page-level modal and a global Alpine listener, which would collide with the catalogue page. See it live at the bottom of any BPF guide.
Blade code
<x-reviews.review-form-generic lang="en" />
<x-reviews.review-form-generic lang="en" :providers="[
['slug' => 'orange', 'name' => 'Orange'],
['slug' => 'free', 'name' => 'Free'],
]" />