Skip to main content
Pulp
  • Company
Access Demo
    • human interfaces
    • critical decisions
    • persona engine
    • machine health
    • data storytelling
    • persuasive intelligence
    • workforce optimization
    • custom ai/ml
    • policy & governance
    • marketing & media
    • consulting & management
    • finance & markets
    • public engagement
    • thinkwell™ workstation
    • thinkwell™ plugin
    • pulp™ api
  • Company
Access Demo

Overview

  • Introduction
  • Getting started

Guides

  • From draft to decision
  • Score a Reddit thread
  • Ground a claim in evidence
  • Simulate an audience
  • AI Debate Tournament

SDKs

  • Server-Side SDK
    • Radiance
      • RootWords
        • Docs
        • Sections
        • Paras
        • Sentences
        • Clauses
        • Claims
        • Phrases
        • Named Entities
        • Words
        • Characters
        • Special Characters
        • Special Patterns
      • RootCause
      • StemReferences
      • AdCanopy
    • Windfall
      • TrueAura
        • Demographics
        • Psychographics
        • Mindstate
        • Environment
        • Memory
        • Vision
      • NectarRewards
      • PoisonIvy
      • GrapeVine
    • Groundwater
      • WebSoil
      • DomainCrust
      • CodeMantle
      • ServerCore
  • Web SDK
    • loosethreads UI/UX
      • WarpDisplays
      • WeftConversations
      • DyeMedia
      • BightInteractions
      • Component Library
        • Sandbox
          • Cards & panels
            • Expandable card
            • Debug panel
          • Text effects
            • Morphing text
            • Video text
          • Device & browser frames
            • Safari frame
            • iPhone frame
            • Android frame
          • Canvas & 3D
            • Crowd canvas
            • Interactive robot
          • Data & visualization
            • Location map
            • Leaderboard
            • Structured Discussion Bracket
          • Controls & inputs
            • Region Selector
          • Scroll effects
            • Scroll-stack cards
            • Perspective scroll showcase
            • Scroll Scrubber
        • Production

Reference

  • References catalogSoon
  • Conventions
  • PricingSoon
  • Status and roadmapSoon
Introduction
Getting started
$pip install pulp-sdk
From draft to decision
Score a Reddit thread
Ground a claim in evidence
Simulate an audience
AI Debate Tournament
Server-Side SDK
Radiance
RootWords
Docs
📄sample.txt2 paras · 160 chars
Sections
§1 Introduction
Paras
¶1: first paragraph block
¶2: second paragraph block
Sentences
S1S2S3S4
Clauses
C1C2C3C4C5C6
Claims
Claim 1Claim 2Claim 3
Phrases
NPVPNPVPPPNP
Named Entities
Pulp [ORG]
Words
ifwewaitforcertaintywewillbe+20 more
Characters
0 → 159
Special Characters
spaces × 27punct × 8nbsp × 0
Special Patterns
0 patterns detected
RootCause
Ethos
—
Pathos
—
Logos
—
Kairos
—
Style
—
Clarity
—
Focus
—
Awareness
—
Persuasive Velocity—
StemReferences
CensusFECCongressFed. Reg.RegulationsLegiScanGovInfoGDELTCivicWikimediaData.govPodcast Idx
AdCanopy
rank
Windfall
TrueAura
Demographics
life_stageyoung_adult
education_levelbachelors
locationurban
occupationtech
Psychographics
Impelling
Compelling
Repelling
Mindstate
alpha 10 Hzcalm
Environment
vision onhearing onsmell offtouch offtaste off
Memory
purchases 12content 48brands 5
Vision
motivationdesirefear
NectarRewards
define
PoisonIvy
apply
GrapeVine
post
Groundwater
WebSoil
heatmap
DomainCrust
price
CodeMantle
trace
ServerCore
uptimeresize
Web SDK
loosethreads UI/UX
WarpDisplays
📄q3-report.pdf
🖼chart.png
▶keynote.mp4
WeftConversations
ThreadsChatInlineSide panels
DyeMedia
TextToday
ImageToday
SoundSoon
VideoSoon
BightInteractions
MouseKeyboardVoice · soonCombos · soon
Component Library
Sandbox
Cards & panels
Expandable card
Debug panel
Text effects
Morphing text
Video text
Device & browser frames
Safari frame
iPhone frame
Android frame
Canvas & 3D
Crowd canvas
Interactive robot
Data & visualization
Location map
Leaderboard
Structured Discussion Bracket
Controls & inputs
Region Selector
Scroll effects
Scroll-stack cards
Perspective scroll showcase
Scroll Scrubber
Production
Coming soon
Conventions
  1. Web SDK
  2. loosethreads UI/UX
  3. Component Library
  4. Sandbox
  5. Device & browser frames
  6. iPhone frame

iPhone frame

Iphone wraps your screen in an iPhone 15 Pro device frame, Dynamic Island and all, filled with the Pulp iris gradient. Resize the column to see it scale while holding its shape.

Overview

Iphone renders an iPhone 15 Pro device frame: rounded body, side buttons, Dynamic Island, and camera lens. The screen is filled with the Pulp iris gradient and a centered wordmark, so the frame is fully self-contained and needs no screenshot or network image.

The screen geometry is expressed as percentages of the phone box, so the gradient overlay stays glued to the SVG bezel at any rendered width. The frame fills its container through width: 100% with a fixed aspect ratio, so it scales cleanly inside any column.

Installation

Import the pattern from loosethreads:

tsx
import { Iphone } from "@pulp/loosethreads/patterns"

Usage

Render it inside a container that sets the width you want. The frame fills that width and keeps its own aspect ratio:

tsx
import { Iphone } from "@pulp/loosethreads/patterns"

function DevicePreview() {
  return (
    <div style={{ width: "100%", maxWidth: 320 }}>
      <Iphone />
    </div>
  )
}

Configuration

Iphone takes no props. The screen fill, wordmark, and device colors are baked in from Pulp tokens, so the only thing you control is the rendered width of the wrapping element.

Sizing lives on the parent. The frame is width: 100% with a fixed aspect ratio, so wrap it in a box that caps its width (for example maxWidth: 320) rather than styling the component directly.

Anatomy

The frame is an absolutely positioned SVG over a screen-fill div. The outer body renders on --color-surface-elevated, the inner bezel on --color-surface, and the rail edges, screen well, and camera lens on --color-border. An SVG mask punches the rounded screen rect so the iris gradient div shows through the bezel, with the EB Garamond wordmark centered on top.

Accessibility

  • Role and label. The wrapper carries role="img" with a descriptive aria-label naming the device, so it is announced as a single image.
  • Decorative fill. The gradient screen layer is marked aria-hidden, so the wordmark and washes are not read out separately from the frame label.
  • Motion. Nothing animates, so no prefers-reduced-motion gate is needed.

Next: Android frame. Back to Device & browser frames.

Pulp