Skip to content
C.W.K.
Stream
Lesson 02 of 04 · published

Focus Mode Removes Chrome

~10 min · focus-mode, ui-state, accessibility, escape

Level 0Dry Nib
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Focus removes competition for attention, never the controls needed to remain safe."

The scene beside paper

Focus mode is subtraction, not a new destination. The passage remains the same entry while navigation, filters, job badges, and secondary controls step out of the visual field.

Make it interface state

Represent focus as reversible UI state. Preserve an obvious exit, keyboard Escape where available, scroll position, selected font size, and the current entry. Entering focus must not fork data or reload the passage.

When help becomes interference

Fullscreen without escape becomes a trap. Hiding status that explains a failed passage load removes necessary truth rather than distraction. Subtraction needs a hierarchy: peripheral chrome goes; essential content and recovery stay.

Focus invariant. Focus removes competition for attention, never the controls needed to remain safe.

Test from the hand outward

Do not judge “Focus Mode Removes Chrome” from a browser screenshot alone. Put a pen in one hand and touch the screen only when necessary; trace type size, button distance, scrolling, rotation, and failure. If one enhancement is denied, the passage must remain readable and transcribed state writable.

Verify it

List every element hidden in focus mode and justify every element that remains. Include a small phone, large tablet, bright and dark rooms, and keyboard-only use. Count how often the feature steals the eyes from the pen instead of merely admiring its appearance.

Disappearing still needs state

Hiding chrome, acquiring wakefulness, and attaching a photo must all be reversible. Exit, release, deletion, and failure copy let technology disappear while remaining able to explain itself when needed.

Code

Keep focus reversible·typescript
type FocusState = {
  active: boolean;
  entryId: string;
  scrollY: number;
  fontScale: number;
};

function enterFocus(entryId: string, fontScale: number): FocusState {
  return { active: true, entryId, scrollY: window.scrollY, fontScale };
}

function exitFocus(state: FocusState): FocusState {
  requestAnimationFrame(() => window.scrollTo({ top: state.scrollY }));
  return { ...state, active: false };
}

External links

Exercise

List every element hidden in focus mode and justify every element that remains.
Hint
Observe real hand movement and failure states.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.