Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
3.6 kB
Markdown
@streamplace/components — redesign migration notes #
The Linear × YouTube redesign restructured the design-token system and primitives. Most public APIs are preserved via deprecated aliases; this file lists everything a downstream consumer might notice.
Typeface #
- Atkinson Hyperlegible → Geist / Geist Mono. Apps embedding the
components must load
Geist-Regular/Medium/SemiBoldandGeistMono-Regular/Medium/SemiBold(seejs/app/components/provider/provider.shared.tsxfor the expo-font map). Static weights only — the app does not load variable fonts. fontFamilies.light/extraLightnow aliasregular;bold/extraBoldaliassemiBold. The design system uses weights 400/500/600 only.
Tokens #
colors.primaryramp is now pink (#e955c2at 500), aligned with the web app's--primary;colors.secondaryis a teal ramp (#1abbc0at 500).theme.colors.primary/ringno longer use iOS systemBlue on iOS — one accent everywhere. Broadcaster branding overrides still apply.- New
theme.colorskeys:surface0–3,surfaceHover,text1–4,borderSubtle,borderStrong,live,liveDim,liveForeground,overlay,focus,danger. Legacy keys (background,card,popover,text,textMuted,textDisabled, …) remain and map onto the new scale. borderRadius:smis 4 (was 3);xl/2xl/3xlare deprecated aliases oflg(12).spacing: off-grid keys (5, 7, 9, 10, 11, 14, …) are deprecated; use the 4/8/12/16/24/32/48/64 grid (keys 1/2/3/4/6/8/12/16).typography.ios/typography.androidare deprecated remaps onto the single universal scale (12/13/14/16/20/24/32).typeScaleis the canonical scale.usePlatformTypography()returns remapped values.animationsis deprecated in favor ofmotion(fast120 /base200 /slow300,bezier,easingCss,sheetSpring).animations.fastchanged 150→120;slowernow equals 300 (was 500).- New exports:
surfaces,textAlphas,borderAlphas,statusColors,scrims,typeScale,fontWeights,tabularNums,motion.
Components #
- Button: canonical variants are
primary/secondary/ghost/dangerand sizessm/md/lg.outline→secondary,destructive→danger,success→primary,xl→lg,pill→pillprop,icon→use the newIconButton. Old names still compile. - Text:
sizevalues map to the new scale — notesmis now 13 (was 14),base14 (was 16),lg16 (was 18),3xl/4xlare 32.weightvalues outside normal/medium/semibold clamp to the nearest supported weight. Newtabularprop for counts/timers. - View: the
CardandSurfaceconvenience wrappers (View variants) were removed — both had no known usages. Use the new level-basedSurface/Cardfromcomponents/ui/surface. - New primitives:
Surface/Card,Badge/LiveBadge/LivePulseDot,Avatar(withlivering),Skeleton,Tabs,IconButton. - Focus rings: on web the root
ThemeProviderinjects a global:focus-visiblerule (2pxfocusring, 2px offset). Remove any custom outline resets that fight it. - ButtonPrimitive.Root accepts a new
pressedStyleprop; its style prop is now a Pressable style function internally.
App-internal (not published, listed for fork maintainers) #
js/app/components/home/avatar.tsx(unusedUserAvatar) removed.BottomMetadatagained acompactprop and now renders on mobile portrait watch layouts, not just full desktop.- Player control auto-hide is standardized at 3 s.