Skip to content

About

Zero-dependency schematic Steam Deck mockup frame for React — put your game on the Deck's screen. Ships a plain SVG too.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

react-steam-deck

npm version license: MIT zero dependencies

A zero-dependency, schematic Steam Deck mockup frame for React — put your game (or anything else) on the Deck's screen.

Steam Deck frame with a demo screen

Built for marketing sites and press pages of Deck-verified games: instead of a generic tablet-with-dots mockup, you get a device silhouette that actually reads as a Steam Deck — drawn at the real device's proportions (298×117 mm body, 7" 16:10 screen), with the control positions measured from a front reference photo: D-pad and A/B/X/Y at the top outboard corners, thumbsticks inboard beside them, the square trackpads below, STEAM / quick-access pills, and the speaker grilles.

  • Zero dependencies — one file, React only
  • Pure SVG — crisp at any size, no image assets
  • Your content on the screen — children render inside the glass
  • Themeable — line color, accent color, and screen background are props
  • Also ships a plain steam-deck.svg for non-React use (Figma, plain HTML, image embeds)

Install

npm install react-steam-deck

Or skip the dependency entirely — it's a single zero-dependency file, so you can just copy src/index.tsx into your project.

Usage

import { SteamDeckFrame } from "react-steam-deck";

<SteamDeckFrame>
  <img src="/screenshots/my-game.jpg" alt="My game running on Steam Deck" />
</SteamDeckFrame>;

The frame is responsive — it fills its container's width and keeps the device's aspect ratio. Children are absolutely positioned inside the screen glass, so a plain <img> or a <div> with your own layout both work.

<SteamDeckFrame
  lineColor="rgba(121, 216, 255, 0.4)"
  accentColor="#57d9ff"
  screenBackground="url(/nebula.jpg) center / cover"
>
  <div style={{ display: "grid", placeContent: "end start", height: "100%", padding: 24 }}>
    <strong>My Game</strong>
    <span>Steam Deck Verified</span>
  </div>
</SteamDeckFrame>

Props

Prop Type Default Description
children ReactNode — Rendered inside the screen glass
lineColor string rgba(148, 180, 200, 0.45) Stroke color for the line work
accentColor string #ff8a3d A button + thumbstick cap rings
screenBackground string #04070b CSS background of the screen behind children
showButtonLabels boolean true Render A/B/X/Y letters and the STEAM label
labelFontFamily string system-ui, sans-serif Font for the button labels
title string "Steam Deck handheld outline" Accessible name of the illustration
className string — Class on the wrapper element
style CSSProperties — Style on the wrapper element

Plain SVG

Not using React? steam-deck.svg is the same drawing as a standalone file. The screen area is the rectangle at x=298 y=46 w=604 h=380 in the 1200×472 viewBox (as percentages: left 24.83%, top 9.75%, width 50.33%, height 80.5%) — overlay your content there.

License & trademark note

MIT © Austin Spraggins.

This project is a fan-made schematic illustration and is not affiliated with, sponsored, or endorsed by Valve Corporation. Steam and Steam Deck are trademarks of Valve Corporation. Don't use this component in a way that implies endorsement by Valve.

About

Zero-dependency schematic Steam Deck mockup frame for React — put your game on the Deck's screen. Ships a plain SVG too.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages