0
0
Remixframework~20 mins

CSS imports per route in Remix - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
CSS Route Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
How does Remix handle CSS imports per route?

Consider a Remix app with multiple routes. Each route imports its own CSS file. What happens when you navigate between routes?

Remix
export function links() {
  return [{ rel: 'stylesheet', href: '/styles/route.css' }];
}
AOnly the CSS for the current route is loaded and applied; previous route CSS is removed.
BAll CSS files from all routes are loaded once at app start and stay applied.
CCSS files are loaded but never applied to the page.
DCSS files from previous routes remain applied, causing style conflicts.
Attempts:
2 left
💡 Hint

Think about how Remix optimizes CSS loading for each route to avoid style conflicts.

📝 Syntax
intermediate
2:00remaining
Correct way to export CSS links in a Remix route

Which of the following links exports correctly imports a CSS file for a Remix route?

Aexport function links() { return [{ rel: 'stylesheet', href: '/styles/route.css' }]; }
Bexport default function links() { return [{ rel: 'stylesheet', href: '/styles/route.css' }]; }
Cexport const links = () => [{ rel: 'stylesheet', href: '/styles/route.css' }];
Dexport function links() { return '/styles/route.css'; }
Attempts:
2 left
💡 Hint

Remix expects links to be a named export returning an array of link descriptors.

🔧 Debug
advanced
2:00remaining
Why is CSS not applying on route change in Remix?

You imported CSS in a route's links export, but when navigating to that route, styles do not apply. What is the most likely cause?

Remix
export const links = () => [{ rel: 'stylesheet', href: '/styles/route.css' }];
ARemix does not support CSS imports in <code>links</code> exports.
BThe href path is missing the leading slash, so the CSS file is not found.
CThe CSS file is not imported using <code>@import</code> inside a JS file.
DThe CSS file must be imported with <code>import</code> statement, not via <code>links</code>.
Attempts:
2 left
💡 Hint

Check the URL path for the CSS file in the href attribute.

state_output
advanced
2:00remaining
What happens to CSS when navigating back to a previous route?

In a Remix app, you navigate from Route A to Route B, each with their own CSS imported via links. Then you navigate back to Route A. What is the state of CSS on the page?

ANo CSS is applied after navigating back to Route A.
BBoth Route A and Route B CSS remain applied, causing style conflicts.
CRoute B's CSS is removed and Route A's CSS is re-applied, reflecting Route A's styles.
DOnly Route B's CSS remains applied, Route A's CSS is lost.
Attempts:
2 left
💡 Hint

Think about how Remix manages CSS lifecycle per route.

🧠 Conceptual
expert
3:00remaining
Why does Remix prefer CSS imports via links over global CSS imports?

Remix encourages importing CSS files in each route's links export instead of importing global CSS in a root file. What is the main advantage of this approach?

AIt enables route-level CSS code splitting, improving load performance and avoiding unused styles.
BIt prevents any CSS from loading until the user clicks a button.
CIt disables CSS caching, ensuring styles always reload fresh.
DIt forces all CSS to load at once, simplifying caching.
Attempts:
2 left
💡 Hint

Consider how loading only needed CSS per route affects page speed and style conflicts.