ABEMA is Japan's "new future of television" — a free, ad-supported linear-streaming hybrid from CyberAgent — and its interface is one of the most committed dark-surface systems in consumer streaming. The canvas is pure black (#000000), and content sits on a disciplined ladder of dark grays the brand names in its own CSS tokens: --dark-stronger (#0b0b0b), --dark-strong (#171717), --dark-basic (#212121), and a hover step at #373737. On top of this cinema-dark stage, near-white text (#e6e6e6 — deliberately not pure white) does the reading work, and a single warm signal cuts through: ABEMA yellow (#ddaa00), the system's named --color-primary, used for links, primary buttons, and selection marks like a broadcast station's "on air" lamp.
The second voice in the palette is the crimson accent (#f0163a) — the color of the LIVE badge that stamps every currently-broadcasting thumbnail. Where most streaming services reserve red for errors, ABEMA's red means "happening right now", a direct inheritance from television's live-broadcast culture; it doubles as the danger color. Supporting hues are strictly role-bound: mint green (#16deb5) for student plans and positive marks, purple (#a873ff) for premium-adjacent surfaces, cyan (#02d1d6) for pay-per-view, and coin gold (#ffc400) for the in-app currency.
Typography is unapologetically broadcast-bold: weight 700 dominates the entire stylesheet (361 declarations versus 24 at weight 400), set in a custom-named corporate webfont stack ("CopyRight" + Hiragino Sans + BIZ UDPGothic) with Roboto Condensed reserved for condensed alphanumerics like timetable digits. Geometry is tight and televisual — 4px is the universal radius (--radius: 4px, 278 occurrences), circles are reserved for avatars and player controls, and shadows are shallow black glows (0 2px 16px rgba(0,0,0,.2)) that read as backlight rather than paper elevation. The result feels like an electronic program guide redesigned by a modern product team: dense, dark, loud where liveness demands it, and quiet everywhere else.
Key Characteristics:
#000000) with a named dark-surface ladder: #0b0b0b → #171717 → #212121 → hover #373737#ddaa00) as --color-primary — links, CTAs, checked states; hover deepens to #dfb015#f0163a) for broadcasting-now badges and destructive actions — red means "live", not just "error"#e6e6e6 instead of #ffffff — softened contrast for long viewing sessions#16deb5 (student/free), purple #a873ff (premium), cyan #02d1d6 (PPV), gold #ffc400 (coins)#ddaa00): --abema-yellow, aliased to --color-primary. Primary buttons, links (--font-color-link), checked radio/checkbox fills, selection highlights. The single warm "action" signal on the dark canvas.#dfb015): --color-primary-hover. Hover state for primary buttons and links.#212121): Label color on yellow buttons — dark-on-yellow, never white-on-yellow.#f0163a): --color-accent. The broadcasting-now tag, NEW labels, danger buttons, warning text (--font-color-danger). Red = live first, destructive second.#f34461): --color-accent-hover. Hover state for accent/danger elements (legacy hover #bb122e survives in older surfaces).#16deb5): --abema-green. Student-plan markers, positive accents; hover #44e5c5.#a873ff): --abema-purple. Premium-adjacent UI; hover #af7eff.#02d1d6): --payperview-blue. Pay-per-view labeling.#ffc400): --color-coin. In-app coin/currency iconography.#000000): Page background, player letterboxing, edge gradients.#0b0b0b): --dark-stronger. Deepest panels, onload placeholder background.#171717): --dark-strong / --bg-regular. Regular app background; floating variant at 80% opacity (rgba(23,23,23,.8)) for overlay chrome like the player's mute button.#212121): --dark-basic / --bg-sub. Cards, title cards, dropdowns, inputs, modals — the workhorse component surface.#373737): --dark-basic-hover. Hover state for sub-surfaces and dropdown items.#1c1c1c): --bg-card-placeholder. Card skeleton/placeholder fill.#e6e6e6): --light-basic / --font-color-regular. Primary text — near-white, never pure.#999999): --smoke-basic. Secondary text, placeholder text, info color.#767676): --smoke-strong. Tertiary text, progress-bar track.#c5c5c5): --font-color-link-hover. Yellow links cool to gray on hover.#333333): --border-color. Default border on dark (sub-border #555555).#ffffff): Badge text, icons, maximum-contrast moments only.#f5f5f5): --pale-weak / light text-box background. The EPG timetable runs a parallel lt-* light token set (white background, #eeeeee program cells, warm #fcf6e5 for now-playing) — the one deliberately light surface in the product.--font-family-sans-serif)--font-family-for-alphanumeric)| Role | Size | Weight | Line Height | Notes |
|---|---|---|---|---|
| Title L | 32px | 700 | 1.3 | --font-size-title-l, page titles (mobile 27px) |
| Title M | 27px | 700 | 1.3 | --font-size-title-m, section titles (mobile 20px) |
| Heading XXXL | 28px | 700 | 1.5 | --font-size-xxxxl |
| Heading | 24px | 700 | 1.5 | --font-size-xxxl; SorryPage h1 measured 24px/700 #e6e6e6 |
| Title S | 22px | 700 | 1.3 | --font-size-title-s |
| Emphasis Body | 16px | 700 | 1.5 | --font-size-l, notification text, button L labels |
| Body | 14px | 400 | 1.5 (21px) | --font-size-m, document default (measured live) |
| Caption | 12px | 700 | 1.5 | --font-size-xs, tags and badges |
| Micro | 10px | 700 | 1.5 | --font-size-xxs, thumbnail labels (mobile badges) |
mb- twin one step smaller (title-l 32→27, xxl 22→18), so density survives on phones without reflowing the hierarchy.Primary
#ddaa00#212121#dfb015 backgroundcom-a-Button--primary) — plan signup, confirm actionsSize scale: small 12px label / 32px height · default 14px / 44px · large 16px / 52px · extra-large 20px / 56px (--button-label-size-*).
Secondary
#e6e6e6#212121#ffffff backgroundDark (Tertiary)
#212121#e6e6e6#373737 backgroundPrimary Dark (Inverse)
#212121#ddaa00com-a-Button--primary-dark)Danger
#f0163a#ffffff#f34461 backgroundText Field
#212121#e6e6e6#999999com-InputText); small variant 36px with 12px font and 8px padding; search variant 46pxFloating Panel
#2121210 2px 16px rgba(0,0,0,.2)com-search-SearchSuggestList)Title Card
#212121--bg-title-card); skeleton state fills #1c1c1cLIVE Broadcasting Tag
#f0163a#ffffffcom-BroadcastingTag; mobile 16px height, 10px font)Pre-Broadcast Tag
rgba(23,23,23,0.8)#ffffffNEW Label
#f0163a#ffffffPanel Tab
#212121com-m-TabList); inactive tabs sit transparent on black, 16px horizontal label paddingRound Tab
#e6e6e6, text #212121com-RoundTabItem; mobile 48px row, 12px font)Checkbox
#999999#ddaa00Notification Block
#212121#e6e6e6#ddaa00 (com-m-NotificationBlock); mobile variant adds 1px solid #333333 borderModal
rgba(0,0,0,0.7)com-a-Modal); width scale 300px (S) / 360px (M) / 640px (L)Verified: 2026-06-10
Tier 1 sources: https://abema.tv (live inspect 2026-06-10 — large-scale outage day, dark maintenance/sorry shell measured); https://abema.tv/assets/registry.1bbd6d267a32e228541e6.css (ABEMA's own shipped web-app CSS bundle: full :root token system + component classes, retrieved via web.archive.org snapshot 2025-12-31 because origin assets rotated during the outage); https://times.abema.tv (ABEMA TIMES, brand-owned media surface, live inspect 2026-06-10)
Tier 2 sources: none available (getdesign.md/abema and getdesign.md/abematv both NOT_FOUND; styles.refero.design ?q=abema returns no ABEMA listing)
Conflicts unresolved: none
--space: 4px); paddings compose as multiples (4, 8, 12, 16, 32)calc(var(--space)*n) — the unit is enforced in code, not convention--content-min-width / --content-max-width); VOD watch pages extend to 1280pxlinear-gradient(90deg, #000, transparent))#212121 cards rather than by borders or shadows.#000000 (or #212121 inside cards) at their edges, keeping the dark surface continuous.--radius: 4px, 278 declarations)| Level | Treatment | Use |
|---|---|---|
| Flat (Level 0) | No shadow, canvas #000000 | Page background, rails |
| Surface (Level 1) | Background shift to #212121, no shadow | Cards, inputs, tabs |
| Floating (Level 2) | 0 2px 16px rgba(0,0,0,.2) | Dropdowns, suggest panels, floating cards |
| Strong (Level 3) | 0 2px 4px rgba(0,0,0,.5) | Player chrome, compact overlays |
| Overlay (Level 4) | rgba(0,0,0,0.7) full-screen scrim | Modals |
Shadow Philosophy: On a black canvas, shadows barely read — so ABEMA's depth system leans on background-color steps (#0b0b0b → #171717 → #212121 → #373737) rather than elevation. The few shadows that exist are soft black glows used as separation hints for elements that float over imagery (dropdowns over thumbnails). Translucent surface tokens (rgba(33,33,33,.8), rgba(23,23,23,.8)) handle chrome that must sit over video without fully hiding it — depth through transparency, a player-first pattern.
#000000) and step surfaces up the named ladder (#0b0b0b, #171717, #212121, #373737)#ddaa00) for actions: primary buttons, links, checked states — hover to #dfb015#f0163a) for "live right now" badges first, destructive actions second#e6e6e6, with #999999 for secondary and #767676 for tertiaryrgba(23,23,23,.8)) for chrome floating over video#ffffff for body text — #e6e6e6 is the reading color; white is for badge text and icons#f0163a carries the specific meaning "broadcasting live" (and danger)#212121| Name | Width | Key Changes |
|---|---|---|
| Mobile | <640px | mb- type scale (titles 32→27, 27→20), badges shrink to 16px height / 10px font, tab rows 48px |
| Tablet/Min | 724px | --content-min-width floor for the desktop app layout |
| Desktop | 724-1024px | Standard rail layout at --content-max-width: 1024px |
| VOD Watch | up to 1280px | Player pages extend to --content-max-width-for-vod |
rgba(0,0,0,.6) over content)mb- twin — hierarchy compresses one step rather than reflowinghsla(0,0%,100%,.08) white veil lifts them#1c1c1c on #212121 cards#ddaa00), hover (#dfb015), label on yellow: #212121#f0163a), hover (#f34461)#000000)#212121, hover #373737#171717#e6e6e6; secondary #999999; tertiary #767676#333333#16deb5); premium: Purple (#a873ff); PPV: Cyan (#02d1d6); coins: Gold (#ffc400)#000000; components live on #212121; never use light surfaces except the EPG timetable#ddaa00 = action, crimson #f0163a = live/danger — never swap or dilute these meanings#e6e6e6 primary / #999999 secondary / #767676 tertiary; white only inside badges#212121 → #373737) or one tone shift (#ddaa00 → #dfb015); pressed = opacity 0.7; disabled = opacity 0.4rgba(0,0,0,.2) glows, not paper shadowsABEMA's voice is immediate, broadcast-warm, and unpretentious — the register of a television announcer translated into product copy. The service introduces itself as "新しい未来のテレビ" (the new future of television), and the copy keeps television's directness: short declaratives, time-anchored language (今・LIVE・最新), and zero subscription-guilt pressure on the free tier. Japanese politeness forms are used straightforwardly (です/ます) without corporate stiffness.
| Context | Tone |
|---|---|
| Service tagline | Mission-framed, plain. "無料動画・話題の作品が楽しめる新しい未来のテレビ" — benefit first, vision second. |
| Player / controls | Imperative and instant: "クリックでミュートを解除", "音声をオンにする". No fluff between user and playback. |
| Live signals | Single loud words: LIVE, NEW. The badge is the sentence. |
| Error / outage | Apologetic but composed: "申し訳ありません" + factual status + a link to official channels. |
| Category navigation | Bare nouns: ニュース、スポーツ、アニメ、将棋、麻雀 — a channel dial, not a menu essay. |
| Premium upsell | Direct benefit statements; the free tier is never shamed. |
Voice samples (verbatim):
Forbidden register: hype superlatives ("革命的"), aggressive FOMO countdowns outside genuinely live content, dense legalistic blocks in player UI, and casual slang that breaks the broadcaster's composure.
ABEMA launched in April 2016 as "AbemaTV", a joint venture led by CyberAgent (with TV Asahi as media partner) under CyberAgent founder 藤田晋 (Susumu Fujita), who framed the service as a bet on reinventing television for the internet generation: dozens of free, 24-hour linear channels — news, anime, sports, shogi, mahjong — streamed like broadcast TV but born on the web. The 2020 rebrand to ABEMA and the August 2021 product renewal formalized the idea in internal brand guidelines built around the concept of "テレビの再発明" (the reinvention of television), presented publicly by Chief Creative Director 佐藤洋介 at CyberAgent Developer Conference 2022 — the goal being to infuse the service itself with "意思" (intent) so every touchpoint carries the brand.
The design system reads as that thesis executed literally. The black canvas is the switched-on television in a dark living room; the yellow #ddaa00 primary is the tuning lamp; the crimson LIVE tag inherits the red light of a broadcast studio. Free linear channels remain the front door — the World Cup 2022, which ABEMA streamed free in its entirety, became the brand's defining proof that "the new future of television" could out-broadcast broadcast — while ABEMA Prime news and the shogi/mahjong channels built daily-habit audiences television had stopped serving.
What ABEMA refuses: the paywalled-catalog coldness of subscription-first streamers, light-mode editorial chrome, and interface decoration that competes with content. What it embraces: television's liveness culture (red means on-air), announcer-direct microcopy, broadcast-bold type, and a dark surface system disciplined enough to let thumbnails be the only color that matters.
#f0163a) is sacred vocabulary; surface "now broadcasting" aggressively and never use its red for mere decoration.#000000 background, #212121 component surfaces, no paper shadows — separation through darkness, color through thumbnails.#ddaa00 is the brand's entire action vocabulary. UI implication: links, primary CTAs, and checked states share the yellow; nothing else may borrow it, so the next action is never ambiguous.Personas below are fictional archetypes informed by publicly observable ABEMA audience segments (free linear-TV viewers, anime fans, shogi/mahjong communities, live-sports audiences), not individual people.
佐々木蓮, 24, 東京. A commuter who treats ABEMA as his pocket television — ABEMA Prime news in the morning, anime rails at night. Has never paid for a subscription and doesn't feel like a second-class user; the free linear front door is why he's loyal.
田中美咲, 31, 大阪. A premium subscriber who came for a World Cup match her friends were all watching live and stayed for on-demand dramas. Values that "live" in ABEMA means genuinely simultaneous — the crimson badge is her cue to join the shared moment.
山本健一, 58, 名古屋. A shogi devotee who keeps the shogi channel running for hours. Appreciates the dark, calm interface and the timetable's clarity; he navigates by the EPG like a newspaper TV section, exactly the metaphor ABEMA intends.
| State | Treatment |
|---|---|
| Empty (no results) | Dark canvas stays; single #e6e6e6 line stating no matches, with a #ddaa00 link back to genres. No illustration noise on the black field. |
| Empty (my-list, none yet) | #999999 one-liner explaining the list is empty plus a yellow path to discover — calm, no guilt. |
| Loading (page/onload) | Placeholder canvas at #0b0b0b (--onload-bg-placeholder); rails appear as they resolve. |
| Loading (cards) | Skeleton cards: #1c1c1c thumbnail fill on #212121 card body (--bg-card-placeholder), title bars in #212121 — flat pulse, no shimmer gloss. |
| Error (display failed) | Dedicated SorryPage on black: bold 24px/700 #e6e6e6 heading "ABEMAの表示に失敗しました", apology line, and #ddaa00 links to official status channels (measured live 2026-06-10). |
| Error (form/field) | Danger color #f0163a for the message text (--font-color-danger), field keeps its #212121 surface — error is typographic, not a glowing red box. |
| Maintenance / outage | Full-bleed dark maintenance shell retaining brand tokens: black canvas, rgba(23,23,23,.8) chrome, #ddaa00 links to x.com/ABEMA and help center. |
| Success (action saved) | Notification block: #212121 toast, 4px radius, leading #ddaa00 label, #e6e6e6 16px/700 message. Brief, no celebration. |
| Skeleton | #1c1c1c blocks at final dimensions inside #212121 cards; text rows as #212121 bars (--bg-card-texts-placeholder). |
| Disabled | Opacity 0.4 on the whole control (--button-opacity-disabled) — yellow stays yellow, just dimmed, preserving the action vocabulary. |
Durations:
| Token | Value | Use |
|---|---|---|
--fading-duration | 0.1s | Hover veils, button color/border transitions, suggest-list reveal |
| transition (buttons) | 0.1s ease-out | Border and label color shifts on com-a-Button |
--duration | 0.5s | Page-level / carousel slide movements |
--tooltip-controller-hover-delay | 0.3s | Tooltip appearance delay |
Easings:
| Curve | Use |
|---|---|
linear | Default (--easing: linear) — opacity fades, veil hovers |
ease-out | Button color/border transitions |
cubic-bezier(.33, 1, .68, 1) | Search-suggest panel reveal (easeOutCubic — fast in, soft settle) |
Motion rules: Motion is utilitarian and nearly invisible — 0.1s fades dominate because a television interface must never feel like it's animating between channels. Hover states are opacity/veil changes (hsla(0,0%,100%,.08) white veil at 0.1s linear) rather than transforms; pressed states drop to opacity 0.7 instantly. The 0.5s budget is reserved for spatial moves like carousel paging. No spring, no bounce, no scale pops — liveness comes from the content, not the chrome. Under prefers-reduced-motion: reduce, fades collapse to instant; nothing in the interface depends on animation to communicate state.
ABEMA is Japan's "new future of television" — a free, ad-supported linear-streaming hybrid from CyberAgent — and its interface is one of the most committed dark-surface systems in consumer streaming. The canvas is pure black (#000000), and content sits on a disciplined ladder of dark grays the brand names in its own CSS tokens: --dark-stronger (#0b0b0b
Brand
Accent
Neutrals
Semantic
Type Scale
Rendered in system-ui to clearly show scale & weight.
Fonts
Spacing
| Purpose | Value | Preview |
|---|---|---|
| Density | compact | |
| Base unit | 4px | |
| Section gap | 32px | |
| Card padding | 16px | |
| Element gap | 12px |
Border Radius
| Element | Value | Preview |
|---|---|---|
| checkboxesMicro | 2px | |
| buttonsStandard | 4px | |
| inputsStandard | 4px | |
| cardsStandard | 4px | |
| badgesStandard | 4px | |
| dialogsStandard | 4px | |
| Standard | 4px | |
| featuredRelaxed | 8px | |
| roundLarge | 12px | |
| promotionalLarge | 12px | |
| avatarsCircle | 50% | |
| radioCircle | 50% |
Elevation
Do and Don't guidelines parsed from DESIGN.md.
Do
Don't
Buttons
Badges
Inputs
Cards
Tabs
Toggles
Toasts