Skip to content
Run here 100% in your browser, no upload, no login

Viewport Meta Generator

Build a viewport meta tag with width, scale limits, user-scalable and viewport-fit presets.

Presets

Generated tag

Blocking zoom hurts accessibility — WCAG 1.4.4 requires text to scale to 200%. Use the zoom-locked preset only when you have a concrete reason.

How to use it

  1. Set width — device-width for responsive layouts, or a pixel value when the layout is fixed.
  2. Set initial-scale; 1 is the usual choice, higher values zoom in on first paint.
  3. Tick minimum-scale or maximum-scale to include those limits, and set the values next to them.
  4. Pick user-scalable and viewport-fit, or leave them on auto to keep them out of the tag entirely.
  5. Press a Preset to fill the whole form, then Copy the generated tag.

The four presets cover mobile first, zoom locked, tablet friendly and notch safe. Each one just writes values into the form and runs the same generator, so you can tweak any preset afterwards.

Common use cases

Why it stays private

The tag is assembled from the values in the form. Nothing is uploaded, and no page of yours is fetched or analysed.

FAQ

Q: Is blocking zoom ever a good idea? A: Rarely. WCAG 1.4.4 expects text to scale to 200%, and pinching is how many people read small text. Keep user-scalable out of the tag unless a specific widget, such as a map, genuinely needs it.

Q: Do I still need the tag if my CSS is responsive? A: Yes. Without it mobile browsers assume a desktop width around 980 px and scale the page down, so your media queries never match the real device width.

Q: What does viewport-fit=cover do? A: It lets the page draw under rounded corners and the notch area. You then need env(safe-area-inset-*) padding in CSS so interactive content stays reachable.

Your data stays on this device

Viewport Meta Generator runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.

Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.