© 2026 Loop · Operator desk for agent skills

SkillsSandboxSettingsFAQPrivacyTerms
LoopLoopLoooop
GitHub

© 2026 Loop · Operator desk for agent skills

SkillsSandboxSettingsFAQPrivacyTerms
LoopLoopLoooop
GitHub
← Back to skills
FrontendUserv16FreePublic

Frontend Frontier

v18v17v16v15v14

Design-forward frontend guidance for art direction, token systems, and motion; updated to include Chrome Soft Navigations origin trial (Apr 20, 2026) and Tailwind v4.1 utilities (Apr 3, 2025).

LoopLoopVerified11 sources · Updated 5d ago
Run in sandbox
AutomationActiveDailyNext in 1h11 sources1d ago · v18

Content

Frontend Frontier

The gap between a shipped page and a memorable page is art direction. Frontend Frontier is a skill for engineers who refuse to default to generic SaaS aesthetics. It covers choosing a visual thesis, building a tokenized design system, wiring up a coherent motion layer, and evaluating craft quality against manual-grade references.

When to use

  • Starting a greenfield marketing site, landing page, or product homepage that needs a distinctive look
  • Redesigning or upgrading an existing UI that looks like "every other AI SaaS"
  • Building a component library where tokens, motion, and depth need to feel intentional
  • Reviewing pull requests for design coherence, motion quality, and token compliance
  • Creating a hero scene that combines 3D, shaders, or heavy animation with readable UI
  • Choosing between editorial, cinematic, brutalist, or experimental visual directions

When NOT to use

  • Pure backend API work with no visual output — this skill is frontend-only
  • Simple CRUD admin dashboards where stock component libraries suffice — prefer Tailwind Design System or shadcn defaults
  • Documentation-heavy sites where readability beats spectacle — keep motion minimal
  • Accessibility-first audits — reach for the Accessible UI skill instead
  • Performance profiling without a design goal — use Web Performance

Platform & tooling updates (research)

Practical, versioned notes on browser and tooling signals that affect art direction and motion. Every claim below links to an authoritative source cited in research.

© 2026 Loop · Operator desk for agent skills

SkillsSandboxSettingsFAQPrivacyTerms
  • Chrome (Mar 27, 2026)

    • Element-scoped view transitions (Chrome 147) — Chrome 147 exposes element-scoped transitions via Element.startViewTransition(), which scopes snapshotting and the ::view-transition pseudo-tree to a subtree instead of the whole document. This enables concurrent and nested transitions, fixes many z-index and clipping issues from document-scoped transitions, and keeps the rest of the page interactive. See the Chrome blog announcement (Mar 27, 2026) and the developer guide and live demos for copy-pasteable examples.

    • Practical note: prefer element-scoped transitions for independently updating components (modals, list reorders, nested route panels). When nesting, follow the docs for view-transition-name, containment, and clipping to avoid visual leakage. Live demos and additional guidance: https://view-transitions.chrome.dev/.

    • Feature detection pattern (copy-pasteable, robust):

      // Support both Element.startViewTransition and document.startViewTransition
      async function runScopedTransition(root, mutate) {
        if (!root) return mutate();
      
        const start = root.startViewTransition;
        if (typeof start === 'function') {
          try {
            return root.startViewTransition(mutate);
          } catch (e) {
            // fall through to document-level or JS choreography
          }
        }
      
        if (typeof document.startViewTransition === 'function') {
          return document.startViewTransition(mutate);
        }
      
        // fallback: JS animation choreography (Motion, GSAP, or CSS transitions)
        return mutate();
      }
      
  • Chrome (Apr 20, 2026)

    • Soft Navigations origin trial (Chrome 147→149) — Chrome is running a final origin trial for the Soft Navigations API that detects SPA-style navigations where the URL changes but the document is not unloaded. The API emits SoftNavigationEntry and InteractionContentfulPaint performance entries which RUM and analytics can observe via PerformanceObserver to measure Core Web Vitals (for example, LCP for soft navigations). This is particularly relevant when you use client-side routing with view transitions or when you need browser-level timing for SPAs. See the Chrome blog announcement (Apr 20, 2026) for details and origin trial registration: https://developer.chrome.com/blog/final-soft-navigations-origin-trial?hl=en.
    • Practical note: add SoftNavigationEntry handling to your RUM instrumentation if your app uses client-side routing. Use PerformanceObserver to observe the soft-navigation and interaction-contentful-paint entry types so LCP and related metrics are captured for SPA navigations outside of full document loads.
  • Tailwind (v4.x)

    • Tailwind v4.1 (Apr 3, 2025) adds utilities useful for art direction: text-shadow utilities, mask utilities, colored drop-shadows, pointer-aware device variants (pointer/any-pointer), items-baseline-last, safe alignment, and assorted developer-experience variants. See the Tailwind v4.1 announcement for exact utilities and examples: https://tailwindcss.com/blog/tailwindcss-v4-1.
    • Tailwind v4.0 reworked the framework toward a CSS-first approach that exposes theme values as native CSS variables and improves container/query and runtime performance. Map Tailwind utilities to your canonical CSS variables or author tokens directly so framework, vanilla, and third-party integrations share the same token values.
  • Tailwind Plus (vanilla-JS Elements)

    • Tailwind Plus (the Tailwind UI product family) introduced vanilla-JS support for its UI blocks via headless custom elements (@tailwindplus/elements). Use the provided Elements in CDN or build contexts and map component classes or element CSS variables back to your token CSS variables so tokens remain authoritative across framework and vanilla integrations. See the Tailwind Plus Elements docs for examples: https://tailwindcss.com/plus/ui-blocks/documentation/elements.
  • Design tooling

    • Figma variables and token tooling: use variables to test font scaling and token variations in design so accessibility regressions surface in design review rather than code review.

Core concepts

Art direction modes

Every project starts by picking one primary visual thesis. Do not mix modes without intent.

ModeCharacterBest for
Editorial technicalDense type hierarchy, restrained color, data-forwardDevtools, analytics dashboards, API docs
Cinematic 3DDepth, camera movement, immersive heroProduct launches, portfolio pieces
Architectural blueprintGrid precision, diagrammatic clarity, technical rigorInfrastructure tools, system visualizers
Neo-brutalistHigh contrast, raw energy, anti-polishCreative tools, indie products
Experimental labNovelty-driven, research aesthetic, generative visualsResearch platforms, AI playgrounds
Premium AI SaaSTrust, restraint, subtle depth, enterprise credibilityB2B AI products competing on reliability

Motion layers

Motion is a three-layer system:

  1. Ambient — slow loops, shader drift, environmental life that exists without user input
  2. Interaction — hover, press, open, focus — immediate feedback tied to user actions
  3. Narrative — scroll-driven and route-change choreography that guides the user through a story

One strong hero move beats many small distractions. If a page has a heavy 3D or shader hero, quiet the rest of the UI motion.

When route or layout transitions are involved, prefer browser-level view transition APIs (use element-scoped view transitions for nested or concurrent transitions). Use JS-driven narrative choreography only when you need fine-grained control that the native API does not provide.

Token system

Before building any component, define tokens for: color, spacing, radii, shadows, border weights, type scale, z-index, blur, motion duration/easing, and (new) text-shadow and mask tokens where your design needs them.

Tailwind v4's CSS-first approach exposes theme values as native CSS variables. Prefer mapping Tailwind utilities to these variables (or author tokens directly in CSS using @theme) so tokens remain the single source of truth across components and third‑party bundles.

Workflow

1. Choose your art direction mode

Evaluate the product, audience, and competitive landscape. Pick one primary mode from the table above. Write it down in your project brief or design doc.

2. Set up the token system with Tailwind v4 @theme

  • Tailwind v4 encourages defining tokens as native CSS variables so they can be consumed by vanilla JS bundles, web components, and third‑party widgets.
  • Map new utilities (text-shadow, masks, colored drop-shadows, pointer-aware variants) to tokens instead of sprinkling class utilities directly across components.
  • If migrating, follow the Tailwind upgrade guide and release notes. Install the latest packages and run your visual regression suite against a modern-browser matrix.

Example token block (canonical and copy-pasteable):

@theme {
  --color-surface: oklch(0.98 0.005 260);
  --color-surface-elevated: oklch(1 0 0);
  --color-accent: oklch(0.65 0.25 29);
  --color-accent-subtle: oklch(0.65 0.15 29 / 0.15);
  --color-text-primary: oklch(0.15 0.01 260);
  --color-text-secondary: oklch(0.45 0.01 260);

  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;

  --radius-sm: 0.375rem;
  --radius-md: 0.75rem;
  --radius-card: 1rem;
  --radius-pill: 9999px;

  --shadow-subtle: 0 1px 2px oklch(0 0 0 / 0.05);
  --shadow-elevated: 0 4px 12px oklch(0 0 0 / 0.08), 0 1px 3px oklch(0 0 0 / 0.04);

  /* text-shadow tokens (use Tailwind v4 utilities via token mapping) */
  --text-shadow-soft: 0 1px 2px rgba(0,0,0,0.06);
  --text-shadow-strong: 0 6px 18px rgba(0,0,0,0.12);

  --font-display: "Instrument Serif", serif;
  --font-sans: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", monospace;

  --duration-fast: 120ms;
  --duration-normal: 250ms;
  --duration-slow: 500ms;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

3. Wire up the Motion component layer

import { motion } from "motion/react";

function HeroHeadline({ children }: { children: React.ReactNode }) {
  return (
    <motion.h1
      initial={{ opacity: 0, y: 24, filter: "blur(8px)" }}
      animate={{ opacity: 1, y: 0, filter: "blur(0px)" }}
      transition={{ duration: 0.6, ease: [0.16, 1, 0.3, 1] }}
      className="font-display text-5xl text-text-primary"
    >
      {children}
    </motion.h1>
  );
}

When using route changes, prefer view transitions for layout swaps and reserve motion libraries for layered or sequenced narrative effects that need replay or complex timing.

4. Layer in GSAP for scroll choreography (when needed)

import { useRef, useEffect } from "react";
import gsap from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";

gsap.registerPlugin(ScrollTrigger);

function ScrollSection() {
  const ref = useRef<HTMLDivElement>(null);

  useEffect(() => {
    const ctx = gsap.context(() => {
      gsap.from(".reveal-item", {
        y: 60,
        opacity: 0,
        stagger: 0.12,
        scrollTrigger: {
          trigger: ref.current,
          start: "top 80%",
        },
      });
    }, ref);
    return () => ctx.revert();
  }, []);

  return <div ref={ref}>{/* children */}</div>;
}

Prefer native scroll-triggered APIs when available; use GSAP or a polyfill only when you need cross-browser consistency or richer sequencing.

5. Review against craft benchmarks

Compare your output against manual-grade references: userinterface.wiki, Rauno's site, Devouring Details, Interface Craft, UI Playbook. Ask: does this feel authored, or generated?

Examples

Example 1 — Premium AI SaaS hero section

Token-driven, restrained depth, subtle ambient motion:

<section className="relative overflow-hidden bg-surface px-space-xl py-space-3xl">
  <motion.div
    initial={{ opacity: 0, y: 32 }}
    animate={{ opacity: 1, y: 0 }}
    transition={{ duration: 0.7, ease: [0.16, 1, 0.3, 1] }}
    className="mx-auto max-w-3xl text-center"
  >
    <h1 className="font-display text-6xl text-text-primary text-balance">
      Intelligence you can trust
    </h1>
    <p className="mt-space-md text-lg text-text-secondary">
      Enterprise AI infrastructure that scales with your ambition.
    </p>
  </motion.div>
</section>

Example 2 — Neo-brutalist card

High contrast, raw borders, no soft shadows:

<div className="border-2 border-text-primary:bg-surface p-space-lg">
  <h3 className="font-mono text-sm uppercase tracking-widest text-accent">
    Module 04
  </h3>
  <p className="mt-space-sm font-sans text-xl font-bold text-text-primary">
    Break every assumption about what a card should look like.
  </p>
</div>

Tailwind Plus — mapping Elements to tokens (copy-pasteable)

If you use Tailwind Plus Elements (@tailwindplus/elements) in a vanilla context, ensure the elements pick up your token variables rather than hard-coded colors or sizes. The Elements library provides headless custom elements (<el-dropdown>, <el-menu>, etc.) which you style via classes or CSS. Example pattern:

  1. Include Elements (CDN):
<script src="https://cdn.jsdelivr.net/npm/@tailwindplus/elements@1" type="module"></script>
  1. Define your tokens in CSS (tokens.css):
:root {
  --color-accent: oklch(0.65 0.25 29);
  --color-surface: oklch(0.98 0.005 260);
  --space-md: 1rem;
  --radius-md: 0.75rem;
}
  1. Map utilities or component variables to tokens so both Tailwind utilities and Elements styles use the same values. Example using a small CSS shim that Elements will inherit:
.el-theme { /* shim class applied to a root container */
  --tp-accent: var(--color-accent);
  --tp-surface: var(--color-surface);
  --tp-gap: var(--space-md);
  --tp-radius: var(--radius-md);
}

/* Optional: provide utility aliases for tokens if your build expects Tailwind variables */
.el-theme .btn-primary {
  background-color: var(--tp-accent);
  border-radius: var(--tp-radius);
}
  1. Use Elements markup in your HTML and apply the shim class on a wrapper so the elements pick up the token values:
<div class="el-theme">
  <el-dropdown class="relative inline-block text-left">
    <button class="btn-primary">Options</button>
    <el-menu anchor="bottom end" popover class="w-56">...</el-menu>
  </el-dropdown>
</div>

This keeps tokens authoritative and prevents design drift when mixing Tailwind utilities, framework components, and vanilla Elements.

Decision tree

  • Need a distinctive landing page? → Start here with art direction mode selection
  • Need component animation? → Use Motion (Framer Motion skill)
  • Need scroll choreography? → Use GSAP + ScrollTrigger skill (or prefer native scroll-triggered APIs)
  • Need 3D hero scene? → Use React Three Fiber skill
  • Need token system only? → Use Tailwind Design System skill
  • Need performance audit? → Use Web Performance skill
  • Multiple concerns? → Start here, then delegate to specific skills

Edge cases and gotchas

  1. Heavy animation + readability conflict — Above-the-fold copy and CTA must remain readable while motion runs. Test by pausing the animation: if the page makes no sense frozen, the hierarchy is wrong.
  2. prefers-reduced-motion — Every ambient and narrative animation must degrade to static under prefers-reduced-motion: reduce. Interaction motion can simplify but should not vanish entirely (users still need feedback).
  3. Mobile performance — Canvas, heavy blur, backdrop-filter, and large shadow animations are expensive on mobile. Profile on a real mid-range device, not just DevTools throttling.
  4. Token drift — When tokens are not enforced, arbitrary values creep in within weeks. Use Tailwind's safelist/lint rules or a custom lint rule to flag raw values in design-critical properties.
  5. Art direction scope creep — Mixing two modes (e.g., editorial + cinematic) almost always produces mud. Pick one, commit, and only borrow from another mode for a specific justified element.
  6. Font loading flash — Display fonts cause layout shift if not preloaded. Use font-display: swap with a closely-matched system fallback and preload the font file.
  7. Web components collisions — If your design system exposes custom elements, register them with a scoped registry to avoid cross-library tag collisions when multiple component sets coexist on a page.
  8. Sanitizing HTML — Use the browser Sanitizer API for user or third-party HTML where available; keep a safe fallback sanitizer for other browsers.

Evaluation criteria

  • A single art direction mode is chosen and documented
  • Token system covers color, spacing, radii, shadow, type, motion, text-shadow/mask where used
  • Tokens are defined in @theme before any component styling
  • Motion follows the three-layer model (ambient, interaction, narrative)
  • Hero focal point is singular and does not compete with other animations
  • prefers-reduced-motion fallbacks are implemented
  • Mobile performance is profiled on a real device
  • No raw hex values, arbitrary spacing, or accidental radius drift
  • Above-the-fold copy is readable while motion runs
  • Output is compared against at least one craft reference

Research-backed changes

  • Chrome (Mar 27, 2026): element-scoped view transitions are shipping in Chrome 147 and enable concurrent and nested transitions for subtrees; prefer element-scoped transitions for isolated layout changes. Source: Chrome Developer Blog (Mar 27, 2026) — https://developer.chrome.com/blog/element-scoped-view-transitions?hl=en. See live demos and guidance at https://view-transitions.chrome.dev/.
  • Chrome (Apr 20, 2026): Soft Navigations origin trial — Chrome is running a final origin trial for the Soft Navigations API in Chrome 147 to 149. The API emits SoftNavigationEntry and InteractionContentfulPaint performance entries that RUM solutions can observe via PerformanceObserver to measure Core Web Vitals for SPA navigations (for example, LCP). If your app uses client-side routing or view transitions, add handling for these new entries so your RUM captures SPA navigation metrics. Source: Chrome Developer Blog (Apr 20, 2026) — https://developer.chrome.com/blog/final-soft-navigations-origin-trial?hl=en.
  • Tailwind v4.1 (Apr 3, 2025): v4.1 adds text-shadow, mask utilities, colored drop-shadows, pointer-aware device variants, items-baseline-last, and safe alignment. Source: Tailwind CSS blog (Apr 3, 2025) — https://tailwindcss.com/blog/tailwindcss-v4-1.
  • Tailwind Plus (Tailwind UI → Tailwind Plus): Tailwind Plus provides UI blocks and vanilla-JS Elements (@tailwindplus/elements) — map element variables to your tokens when using these elements to keep tokens authoritative across frameworks. Source: Tailwind Plus docs — https://tailwindcss.com/plus/ui-blocks/documentation/elements.

Next edits

  • Add one new tactic based on Tailwind Plus vanilla-JS integration (component mapping example) — done.
  • Rewrite the platform notes with explicit links and dates (completed).
  • Add a short agent prompt for upgrading a repo to Tailwind v4 (keep running checklist).
  • Add a sample RUM snippet that observes SoftNavigationEntry and InteractionContentfulPaint and flags missing LCP for SPA navigations.

Quick upgrade prompt (agent-ready)

Upgrade this repo to Tailwind v4. Checklist:

  1. Review Tailwind's official upgrade guide and release notes:
    • https://tailwindcss.com/docs/upgrade-guide
    • Release tag notes (example): https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.1.0
  2. Pin and install the target packages in a feature branch:
# choose the exact versions used in your project matrix
npm install tailwindcss@4.1.0 @tailwindcss/cli@latest
  1. Update config and plugin changes per the upgrade guide; run unit tests.
  2. Run visual regression tests across a modern-browser matrix (include Chrome 147+ to validate view transitions where used).
  3. If you use Tailwind Plus Elements, include @tailwindplus/elements and map element variables to your tokens as shown in the Tailwind Plus docs.

Activity

ActiveDaily · 9:00 AM11 sources

Automation & run history

Automation status and run history. Only the owner can trigger runs or edit the schedule.

View automation desk
Next runin 1h
ScheduleDaily · 9:00 AM
Runs this month30
Latest outcomev18
April 2026
SuMoTuWeThFrSa
Frontend Frontier refresh
Daily · 9:00 AM30 runsin 1h
Automation brief

Scrape tracked sources for new art-direction references, motion-library API changes, design-system tooling releases, and frontier CSS/JS features. If a new Tailwind, Motion, or Three.js release dropped, summarize breaking changes and update recommended patterns.

Latest refresh trace

Reasoning steps, source results, and the diff that landed.

Apr 26, 2026 · 9:44 AM
triggerAutomation
editoropenai/gpt-5-mini
duration195.5s
statussuccess
Revision: v18

This update incorporates authoritative Chrome and Tailwind signals discovered in April 2026 and 2025: it clarifies Element.startViewTransition behavior (Chrome 147) including containment and nested groups, documents the Soft Navigations origin trial and new PerformanceEntry types for SPA metrics, and confirms Tailwind v4.1 and Tailwind Plus Elements features. It also adds a copy-pasteable RUM snippet and tighter token/Elements mapping guidance.

- Updated "Platform & tooling updates (research)" with concrete Chrome 147 element-scoped behavior, containment notes, and demo links. - Expanded Soft Navigations notes with PerformanceEntry types and a robust PerformanceObserver RUM snippet. - Confirmed Tailwind v4.1 features and Tailwind Plus Elements vanilla-JS guidance with release dates and links. - Added two experiments: a lint rule for raw token usage and SPA LCP measurement using new Soft Navigation entries.

Agent steps
Step 1Started scanning 11 sources.
Step 2Vercel Blog: No fresh signals found.
Step 3Chrome Developer Blog: 10 fresh signals captured.
Step 4Smashing Magazine: 12 fresh signals captured.
Step 5Tailwind CSS Blog: 12 fresh signals captured.
Step 6Motion Releases: No fresh signals found.
Step 7Three.js Releases: No fresh signals found.
Step 8WICG View Transitions (GitHub): 12 fresh signals captured.
Step 9MDN View Transition API: 12 fresh signals captured.
Step 10Tailwind Plus Elements Docs: 12 fresh signals captured.
Step 11Chrome Developer Blog: 12 fresh signals captured.
Step 12Chrome View Transitions Demos: 12 fresh signals captured.
Step 13Agent is rewriting the skill body from the fetched source deltas.
Step 14v18 is live with body edits.
Sources
Vercel Blogdone

No fresh signals found.

Chrome Developer Blogdone

10 fresh signals captured.

Localization support for web app manifestsUnlock Structured Clone for Chrome Extension MessagingWhat's New in WebGPU (Chrome 147-148)
Smashing Magazinedone

12 fresh signals captured.

The UX Designer’s Nightmare: When “Production-Ready” Becomes A Design DeliverableSession Timeouts: The Overlooked Accessibility Barrier In Authentication DesignHow To Improve UX In Legacy Systems
Tailwind CSS Blogdone

12 fresh signals captured.

BlogVanilla JavaScript support for Tailwind PlusCompass: A starter kit for online courses
Motion Releasesdone

No fresh signals found.

Three.js Releasesdone

No fresh signals found.

WICG View Transitions (GitHub)done

12 fresh signals captured.

Sign inSign upview-transitions
MDN View Transition APIdone

12 fresh signals captured.

Basic View Transitions SPA demoBasic View Transitions MPA demoSmooth transitions with the View Transition API
Tailwind Plus Elements Docsdone

12 fresh signals captured.

IntroductionUI BlocksTemplates
Chrome Developer Blogdone

12 fresh signals captured.

บล็อกเอกสารกรณีศึกษา
Chrome View Transitions Demosdone

12 fresh signals captured.

View TransitionsSPA + TypesNavigation API (+ Types)
Diff preview
Latest skill diff
+20−19
Practical, versioned notes on browser and tooling signals that affect art direction and motion. Every claim below links to an authoritative source cited in research.
- Chrome (Mar 27, 2026)
+ - Element-scoped view transitions (Chrome 147) — Chrome 147 exposes element-scoped transitions via Element.startViewTransition(), which lets you start a view transition on a DOM subtree instead of the whole document. Key behavior:
+ - Scope roots are self-participating by default and automatically become transition roots.
+ - Scoped transitions use nested view transition groups so nested pseudos participate predictably.
+ - The ::view-transition-group-children() pseudo is available inside scoped transitions and will clip its contents when the scope root clips overflow.
+ - During the transition the user agent applies contain: layout and view-transition-scope: all onto the scope root to avoid layout leakage and layering issues with position:fixed content.
+ These changes enable concurrent and nested transitions, fix many z-index and clipping issues from document-scoped transitions, and keep the rest of the page interactive. Read the Chrome guide and see copy-pasteable demos at the View Transitions demo site: https://view-transitions.chrome.dev/. (Chrome blog: Mar 27, 2026)
− - Element-scoped view transitions (Chrome 147) — Chrome 147 exposes element-scoped transitions via Element.startViewTransition(), which scopes snapshotting and the ::view-transition pseudo-tree to a subtree instead of the whole document. This enables concurrent and nested transitions, fixes many z-index and clipping issues from document-scoped transitions, and keeps the rest of the page interactive. See the Chrome blog announcement (Mar 27, 2026) and the developer guide and live demos for copy-pasteable examples.
+ - Practical note: prefer element-scoped transitions for independently updating components (modals, list reorders, nested route panels). When nesting, follow the docs for view-transition-name, containment, and clipping to avoid visual leakage.
− - Practical note: prefer element-scoped transitions for independently updating components (modals, list reorders, nested route panels). When nesting, follow the docs for view-transition-name, containment, and clipping to avoid visual leakage. Live demos and additional guidance: https://view-transitions.chrome.dev/.
- Feature detection pattern (copy-pasteable, robust):
```js
− // Support both Element.startViewTransition and document.startViewTransition
+ // Support Element.startViewTransition and document.startViewTransition
async function runScopedTransition(root, mutate) {
if (!root) return mutate();
@@ −52 +57 @@
```
- Chrome (Apr 20, 2026)
+ - Soft Navigations origin trial (Chrome 147→149) — Chrome is running a final origin trial for the Soft Navigations API. A "soft navigation" is when JavaScript updates page content and the URL without unloading the document (typical SPA navigation). The API introduces two new PerformanceEntry types:
+ - SoftNavigationEntry: emitted when the soft navigation completes. Contains navigationId, interactionId, name (new URL), and paint timings useful to compute first/meaningful-content timings.
+ - InteractionContentfulPaint: emitted for contentful paints tied to an interaction; useful to measure LCP-like signals for SPA navigations.
+ Both entries can be observed with PerformanceObserver using the "soft-navigation" and "interaction-contentful-paint" types. This is important for RUM: browsers only emit LCP on full navigations, so SPAs need these entries to capture equivalent metrics. See the Chrome origin trial announcement for details and registration: https://developer.chrome.com/blog/final-soft-navigations-origin-trial?hl=en.
+
− - Soft Navigations origin trial (Chrome 147→149) — Chrome is running a final origin trial for the Soft Navigations API that detects SPA-style navigations where the URL changes but the document is not unloaded. The API emits SoftNavigationEntry and InteractionContentfulPaint performance entries which RUM and analytics can observe via PerformanceObserver to measure Core Web Vitals (for example, LCP for soft navigations). This is particularly relevant when you use client-side routing with view transitions or when you need browser-level timing for SPAs. See the Chrome blog announcement (Apr 20, 2026) for details and origin trial registration: https://developer.chrome.com/blog/final-soft-navigations-origin-trial?hl=en.
+ Example RUM snippet (copy-pasteable):
− - Practical note: add SoftNavigationEntry handling to your RUM instrumentation if your app uses client-side routing. Example RUM snippet (copy-pasteable):
```js
− // Observe browser soft navigation and interaction contentful paint entries
if (typeof PerformanceObserver !== 'undefined') {
− const handleEntry = (entry) => {
− // Send to your RUM backend or log for debugging
− // Example: convert to a shape your RUM expects and beacon it
− console.log('soft-navigation entry', entry);
− };
−
try {
− const obs = new PerformanceObserver((list) => {
+ const obs = new PerformanceObserver(list => {
for (const entry of list.getEntries()) {
if (entry.entryType === 'soft-navigation') {
− // entry.navigationId, entry.name (url), entry.interactionId, paint timings
navigator.sendBeacon('/rum', JSON.stringify({
type: 'soft-navigation',
navigationId: entry.navigationId,
url: entry.name,
+ timing: {
+ startTime: entry.startTime,
+ paintTiming: entry.paintTiming || null
− timing: entry
+ }
}));
}
if (entry.entryType === 'interaction-contentful-paint') {
− // Use this to approximate LCP for SPA navigations
navigator.sendBeacon('/rum', JSON.stringify({
type: 'interaction-contentful-paint',
interactionId: entry.interactionId,
size: entry.size,
− time: entry.startTime
+ startTime: entry.startTime
}));
}
}
@@ −92 +95 @@
obs.observe({ type: 'soft-navigation', buffered: true });
obs.observe({ type: 'interaction-contentful-paint', buffered: true });
} catch (e) {
− // Some browsers may not yet support these entry types — fallback to framework hooks
console.warn('Soft navigation PerformanceObserver not available', e);
}
}
```
−

Automations

ActiveDaily · 9:00 AM11 sources

Automation is managed by the skill owner.

Next runin 1h
ScheduleDaily · 9:00 AM
Runs this month30
Latest outcomev18
statussuccess
last run1d ago
triggerScheduled
editoropenai/gpt-5-mini
Automation brief

Scrape tracked sources for new art-direction references, motion-library API changes, design-system tooling releases, and frontier CSS/JS features. If a new Tailwind, Motion, or Three.js release dropped, summarize breaking changes and update recommended patterns.

Research engine

Frontend Frontier now combines 6 tracked sources with 1 trusted upstream skill packs. Instead of waiting on a single fixed link, it tracks canonical feeds, discovers new docs from index-like surfaces, and folds those deltas into sandbox-usable guidance.

11 sources5 Track6 Discover4 Official7 CommunityRank 12Quality 98
Why this is featured

Broadest appeal, strong upstream corpus, and directly useful for anyone shipping UI in anger.

Discovery process
1. Track canonical signals

Monitor 5 feed-like sources for release notes, changelog entries, and durable upstream deltas.

2. Discover net-new docs and leads

Scan 1 discovery-oriented sources such as docs indexes and sitemaps, then rank extracted links against explicit query hints instead of trusting nav order.

3. Transplant from trusted upstreams

Fold implementation patterns from Frontend Frontier so the skill inherits a real operating model instead of boilerplate prose.

4. Keep the sandbox honest

Ship prompts, MCP recommendations, and automation language that can actually be executed in Loop's sandbox instead of abstract advice theater.

Query hints
vercel blogvercelnext.jsfrontendchrome developer blogchromeweb-platformsmashing magazine
Trusted upstreams
Frontend Frontier

High-signal UI art direction, motion, and distinct frontend execution.

FrontendArt DirectionMotionFeatured

Sources

11 tracked

Vercel Blog

vercel · next.js · frontend

Open ↗

Chrome Developer Blog

chrome · web-platform

Open ↗

Smashing Magazine

frontend · design · ux

Open ↗

Tailwind CSS Blog

tailwind · css

Open ↗

Motion Releases

motion · animation

Open ↗

Three.js Releases

threejs · 3d · webgl

Open ↗

WICG View Transitions (GitHub)

view-transitions · web-animations

Open ↗

MDN View Transition API

view-transitions · api · browser

Open ↗

Tailwind Plus Elements Docs

tailwind-plus · components · vanilla-js

Open ↗

Chrome Developer Blog

view-transitions · css · chrome

Open ↗

Chrome View Transitions Demos

view-transitions · animation · chrome

Open ↗

Send this prompt to your agent to install the skill

Agent prompt
Use the skill at https://loooooop.vercel.app/api/skills/frontend-frontier/raw

Versions

v181d agov173d agov165d agov15Apr 19, 2026v14Apr 18, 2026v13Apr 16, 2026v12Apr 14, 2026v11Apr 13, 2026v10Apr 11, 2026v9Apr 9, 2026v8Apr 7, 2026v7Apr 5, 2026v6Apr 3, 2026v5Apr 2, 2026v4Apr 2, 2026v3Apr 2, 2026v2Mar 31, 2026v1Mar 29, 2026
Included files1
SKILL.md
Automation
Active
scheduleDaily · 9:00 AM
sources11
next runin 1h
last run1d ago
·Details·Desk

Latest refresh

5d ago

Added Chrome Soft Navigations coverage and practical RUM guidance; preserved existing recommendations for element-scoped view transitions and Tailwind v4 token mapping. This update ensures SPA navigation timing (LCP) and Tailwind Plus integrations are explicitly recommended and linked to primary sources.

what changed

- Added a new Chrome (Apr 20, 2026) Soft Navigations subsection with practical RUM guidance and link to the Chrome blog. - Updated Research-backed changes to include Soft Navigations entry and dates. - Updated the Platform & tooling updates section to clarify practical implications for SPAs and RUM.

11 sources scanned94 signals found
sections updated
Platform & tooling updates (research)Research-backed changesNext edits
status
success
triggerAutomation
editoropenai/gpt-5-mini
duration195.5s
Diff▶
+10−10
+Generated: 2026-04-22T09:41:13.118Z
+Summary: Added Chrome Soft Navigations coverage and practical RUM guidance; preserved existing recommendations for element-scoped view transitions and Tailwind v4 token mapping. This update ensures SPA navigation timing (LCP) and Tailwind Plus integrations are explicitly recommended and linked to primary sources.
+What changed: - Added a new Chrome (Apr 20, 2026) Soft Navigations subsection with practical RUM guidance and link to the Chrome blog.
+- Updated Research-backed changes to include Soft Navigations entry and dates.
+- Updated the Platform & tooling updates section to clarify practical implications for SPAs and RUM.
−Generated: 2026-04-19T09:41:20.490Z
+
−Summary: Updated platform notes and examples to include Chrome 147 element-scoped view transitions with demo link and precise Tailwind v4.1 release reference; added a Tailwind Plus Elements mapping example and an upgrade checklist.
−What changed: - Added live demos link and date for Chrome element-scoped view transitions (Platform & tooling updates, Research-backed changes)
−- Included Tailwind v4.1 release date and explicit link to the Tailwind blog
−- Clarified Tailwind Plus Elements mapping guidance and ensured the copy-pasteable example remains present
−- Updated Quick upgrade prompt to reference the Tailwind upgrade guide and release tag
Body changed: yes
Editor: openai/gpt-5-mini
−Changed sections: Platform & tooling updates (research), Research-backed changes, Tailwind Plus — mapping Elements to tokens, Quick upgrade prompt
+Changed sections: Platform & tooling updates (research), Research-backed changes, Next edits
Experiments:
+- Add an automated RUM audit script that flags missing SoftNavigationEntry handling and LCP instrumentation for SPAs (run on CI against staging).
−- Create a minimal demo repo that combines element-scoped view transitions + Tailwind v4 token mapping and run visual diff across Chrome 147 vs older browsers
+- Prototype a small Tailwind v4 token shim that maps Tailwind Plus Elements custom properties to @theme variables and include a visual regression test across Chrome 146–148 to validate view-transition snapshotting.
−- Measure PR churn and token drift when migrating 3 medium-sized repos from Tailwind v3 → v4 using a codified migration checklist
Signals:
+- Sign in (WICG View Transitions (GitHub))
- Sign up (WICG View Transitions (GitHub))
- view-transitions (WICG View Transitions (GitHub))
- media (WICG View Transitions (GitHub))
−- CONTRIBUTING.md (WICG View Transitions (GitHub))
Update history8▶
5d ago4 sources

Added Chrome Soft Navigations coverage and practical RUM guidance; preserved existing recommendations for element-scoped view transitions and Tailwind v4 token mapping. This update ensures SPA navigation timing (LCP) and Tailwind Plus integrations are explicitly recommended and linked to primary sources.

Apr 19, 20264 sources

Updated platform notes and examples to include Chrome 147 element-scoped view transitions with demo link and precise Tailwind v4.1 release reference; added a Tailwind Plus Elements mapping example and an upgrade checklist.

Apr 18, 20264 sources

Minor revisions: clarified platform/tooling notes, expanded Tailwind Plus mapping guidance, and added a concrete upgrade checklist for Tailwind v4. Kept core guidance and examples intact; all new claims reference tracked sources (Chrome and Tailwind blog docs).

Apr 16, 20264 sources

Updated platform notes with exact dates and authoritative links for Chrome element-scoped view transitions (Mar 27, 2026), Tailwind v4.1 (Apr 3, 2025), and Tailwind Plus vanilla-JS Elements (Jul 25, 2025). Added a more robust feature-detection snippet for Element.startViewTransition and clarified upgrade checklist commands.

Apr 14, 20264 sources

Updated platform notes with explicit, sourced references: Chrome element-scoped view transitions (Chrome 147, Mar 27, 2026), Tailwind v4.0 (Jan 22, 2025) and v4.1 (Apr 3, 2025) features, and Tailwind Plus vanilla-JS Elements (Jul 25, 2025). Improved feature-detection snippets and clarified migration guidance to be copy‑pasteable.

Apr 13, 20264 sources

Updated platform notes and migration guidance: aligned Tailwind upgrade steps with official v4.1 release notes, clarified element-scoped view transitions (Chrome 147) with doc links, and confirmed Tailwind Plus Elements CDN usage and token-mapping pattern.

Apr 11, 20264 sources

Updated platform notes to reflect Chrome 147 element-scoped view transitions and Tailwind v4/v4.1 features; added concrete Tailwind Plus Elements integration pattern and mapping example to keep tokens authoritative when using vanilla components.

Apr 9, 20264 sources

Updated platform notes with Chrome 147 element-scoped view transitions (concurrent/nested transitions), included Tailwind v4.1 utilities (text-shadow, masks, pointer-aware variants, colored drop-shadow) and Tailwind Plus vanilla-JS/@tailwindplus/elements details. Added precise migration checklist and authoritative links to Chrome and Tailwind posts.

Automations1
1 activeOpen desk →
Usage2h ago
views6
copies2
refreshes14
saves0
api calls0
Recent activity▶
Opened skill detail2h ago
Opened skill detail2h ago
Opened skill detail2h ago
Refreshed skill2h ago
Copied prompt6h ago
Copied raw skill link6h ago
Opened skill detail8h ago
Opened skill detail8h ago